alita-sdk 0.3.181__tar.gz → 0.3.183__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 (315) hide show
  1. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/PKG-INFO +3 -2
  2. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/clients/client.py +2 -0
  3. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/assistant.py +132 -59
  4. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/langraph_agent.py +66 -9
  5. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/llms/alita.py +12 -5
  6. alita_sdk-0.3.183/alita_sdk/runtime/tools/llm.py +293 -0
  7. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/mcp_server_tool.py +15 -0
  8. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/utils/streamlit.py +4 -8
  9. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/__init__.py +1 -0
  10. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +55 -3
  11. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/work_item/ado_wrapper.py +10 -6
  12. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/api_wrapper.py +3 -0
  13. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/backend_tests_tool.py +101 -7
  14. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/carrier_sdk.py +4 -0
  15. alita_sdk-0.3.183/alita_sdk/tools/slack/__init__.py +57 -0
  16. alita_sdk-0.3.183/alita_sdk/tools/slack/api_wrapper.py +190 -0
  17. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk.egg-info/PKG-INFO +3 -2
  18. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk.egg-info/SOURCES.txt +2 -1
  19. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk.egg-info/requires.txt +2 -1
  20. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/pyproject.toml +3 -3
  21. alita_sdk-0.3.181/alita_sdk/runtime/langchain/agents/react_agent.py +0 -157
  22. alita_sdk-0.3.181/alita_sdk/runtime/tools/llm.py +0 -74
  23. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/LICENSE +0 -0
  24. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/README.md +0 -0
  25. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/__init__.py +0 -0
  26. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/__init__.py +0 -0
  27. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/analysis/__init__.py +0 -0
  28. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/analysis/ado_analyse/__init__.py +0 -0
  29. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -0
  30. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/analysis/github_analyse/__init__.py +0 -0
  31. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -0
  32. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -0
  33. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -0
  34. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
  35. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
  36. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/community/utils.py +0 -0
  37. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/__init__.py +0 -0
  38. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/clients/__init__.py +0 -0
  39. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/clients/artifact.py +0 -0
  40. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/clients/datasource.py +0 -0
  41. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/clients/prompt.py +0 -0
  42. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/__init__.py +0 -0
  43. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  44. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  45. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  46. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/constants.py +0 -0
  47. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  48. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  49. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  50. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  51. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  52. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  53. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  54. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  55. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  56. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  57. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  58. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  59. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  60. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  61. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/indexer.py +0 -0
  62. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  63. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  64. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  65. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  66. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  67. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  68. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  69. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  70. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  71. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  72. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  73. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  74. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  75. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  76. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  77. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  78. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  79. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  80. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  81. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  82. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  83. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  84. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  85. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/langchain/utils.py +0 -0
  86. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/llms/__init__.py +0 -0
  87. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/llms/preloaded.py +0 -0
  88. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  89. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/toolkits/application.py +0 -0
  90. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  91. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  92. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  93. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  94. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/toolkits/tools.py +0 -0
  95. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  96. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/__init__.py +0 -0
  97. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/agent.py +0 -0
  98. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/application.py +0 -0
  99. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/artifact.py +0 -0
  100. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/datasource.py +0 -0
  101. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/echo.py +0 -0
  102. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/function.py +0 -0
  103. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  104. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/loop.py +0 -0
  105. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/loop_output.py +0 -0
  106. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  107. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/prompt.py +0 -0
  108. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/router.py +0 -0
  109. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/tool.py +0 -0
  110. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  111. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  112. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/utils/__init__.py +0 -0
  113. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/utils/constants.py +0 -0
  114. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/utils/evaluate.py +0 -0
  115. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/utils/logging.py +0 -0
  116. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  117. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/runtime/utils/utils.py +0 -0
  118. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/__init__.py +0 -0
  119. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  120. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  121. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  122. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/utils.py +0 -0
  123. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  124. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  125. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  126. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  127. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  128. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  129. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  130. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  131. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/base/__init__.py +0 -0
  132. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/base/tool.py +0 -0
  133. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  134. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  135. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  136. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  137. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/bitbucket/tools.py +0 -0
  138. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/browser/__init__.py +0 -0
  139. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/browser/crawler.py +0 -0
  140. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  141. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  142. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/browser/utils.py +0 -0
  143. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/browser/wiki.py +0 -0
  144. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/__init__.py +0 -0
  145. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
  146. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  147. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  148. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  149. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  150. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  151. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  152. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  153. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/tools.py +0 -0
  154. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  155. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  156. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/carrier/utils.py +0 -0
  157. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/__init__.py +0 -0
  158. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  159. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  160. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  161. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  162. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  163. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  164. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  165. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  166. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  167. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  168. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  169. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  170. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  171. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  172. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  173. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  174. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  175. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  176. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/models.py +0 -0
  177. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  178. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  179. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  180. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  181. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  182. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/chunkers/utils.py +0 -0
  183. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/cloud/__init__.py +0 -0
  184. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  185. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  186. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  187. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  188. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  189. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  190. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  191. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  192. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/code/__init__.py +0 -0
  193. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/code/linter/__init__.py +0 -0
  194. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  195. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  196. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  197. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  198. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/confluence/__init__.py +0 -0
  199. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  200. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/confluence/loader.py +0 -0
  201. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/confluence/utils.py +0 -0
  202. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  203. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  204. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/elastic/__init__.py +0 -0
  205. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  206. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/elitea_base.py +0 -0
  207. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/figma/__init__.py +0 -0
  208. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  209. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/github/__init__.py +0 -0
  210. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/github/api_wrapper.py +0 -0
  211. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/github/github_client.py +0 -0
  212. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  213. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/github/schemas.py +0 -0
  214. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/github/tool.py +0 -0
  215. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/github/tool_prompts.py +0 -0
  216. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/gitlab/__init__.py +0 -0
  217. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  218. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/gitlab/tools.py +0 -0
  219. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/gitlab/utils.py +0 -0
  220. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  221. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  222. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/gmail/__init__.py +0 -0
  223. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  224. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/gmail/utils.py +0 -0
  225. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/google_places/__init__.py +0 -0
  226. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  227. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/jira/__init__.py +0 -0
  228. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  229. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/keycloak/__init__.py +0 -0
  230. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  231. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/llm/__init__.py +0 -0
  232. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/llm/img_utils.py +0 -0
  233. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/llm/llm_utils.py +0 -0
  234. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/localgit/__init__.py +0 -0
  235. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/localgit/local_git.py +0 -0
  236. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/localgit/tool.py +0 -0
  237. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/memory/__init__.py +0 -0
  238. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ocr/__init__.py +0 -0
  239. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  240. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/ocr/text_detection.py +0 -0
  241. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/openapi/__init__.py +0 -0
  242. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/__init__.py +0 -0
  243. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  244. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  245. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  246. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  247. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  248. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  249. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  250. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  251. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  252. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  253. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  254. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  255. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  256. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  257. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  258. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  259. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  260. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  261. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/postman/__init__.py +0 -0
  262. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/postman/api_wrapper.py +0 -0
  263. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  264. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pptx/__init__.py +0 -0
  265. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  266. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/qtest/__init__.py +0 -0
  267. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  268. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/qtest/tool.py +0 -0
  269. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/rally/__init__.py +0 -0
  270. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  271. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/report_portal/__init__.py +0 -0
  272. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  273. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  274. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/salesforce/__init__.py +0 -0
  275. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  276. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/salesforce/model.py +0 -0
  277. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/servicenow/__init__.py +0 -0
  278. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  279. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  280. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  281. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  282. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  283. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/sharepoint/utils.py +0 -0
  284. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/sql/__init__.py +0 -0
  285. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  286. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/sql/models.py +0 -0
  287. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/testio/__init__.py +0 -0
  288. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  289. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/testrail/__init__.py +0 -0
  290. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  291. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/utils/__init__.py +0 -0
  292. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/utils/content_parser.py +0 -0
  293. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/xray/__init__.py +0 -0
  294. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  295. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/yagmail/__init__.py +0 -0
  296. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  297. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  298. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr/__init__.py +0 -0
  299. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  300. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  301. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  302. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  303. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  304. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  305. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  306. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  307. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  308. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  309. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk.egg-info/dependency_links.txt +0 -0
  310. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/alita_sdk.egg-info/top_level.txt +0 -0
  311. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/setup.cfg +0 -0
  312. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/tests/test_ado_analysis.py +0 -0
  313. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/tests/test_github_analysis.py +0 -0
  314. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/tests/test_gitlab_analysis.py +0 -0
  315. {alita_sdk-0.3.181 → alita_sdk-0.3.183}/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.181
3
+ Version: 0.3.183
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
@@ -32,7 +32,7 @@ Requires-Dist: langchain-openai~=0.3.0; extra == "runtime"
32
32
  Requires-Dist: langgraph-checkpoint-sqlite~=2.0.0; extra == "runtime"
33
33
  Requires-Dist: langgraph-checkpoint-postgres~=2.0.1; extra == "runtime"
34
34
  Requires-Dist: langsmith>=0.3.45; extra == "runtime"
35
- Requires-Dist: langgraph>=0.5; extra == "runtime"
35
+ Requires-Dist: langgraph<0.5,>=0.4.8; extra == "runtime"
36
36
  Requires-Dist: langchain_chroma~=0.2.2; extra == "runtime"
37
37
  Requires-Dist: langchain-unstructured~=0.1.6; extra == "runtime"
38
38
  Requires-Dist: langchain-postgres~=0.0.13; extra == "runtime"
@@ -124,6 +124,7 @@ Requires-Dist: shortuuid==1.0.13; extra == "tools"
124
124
  Requires-Dist: yarl==1.17.1; extra == "tools"
125
125
  Requires-Dist: langmem==0.0.27; extra == "tools"
126
126
  Requires-Dist: textract-py3==2.1.1; extra == "tools"
127
+ Requires-Dist: slack_sdk==3.35.0; extra == "tools"
127
128
  Provides-Extra: community
128
129
  Requires-Dist: retry-extended==0.2.3; extra == "community"
129
130
  Requires-Dist: pyobjtojson==0.3; extra == "community"
@@ -218,6 +218,8 @@ class AlitaClient:
218
218
  return LangChainAssistant(self, data, client,
219
219
  chat_history, app_type,
220
220
  tools=tools, memory=memory, store=store).runnable()
221
+ elif runtime == 'llama':
222
+ raise NotImplementedError("LLama runtime is not supported")
221
223
 
222
224
  def datasource(self, datasource_id: int) -> AlitaDataSource:
223
225
  url = f"{self.datasources}/{datasource_id}"
@@ -6,16 +6,10 @@ from langchain.agents import (
6
6
  AgentExecutor, create_openai_tools_agent,
7
7
  create_json_chat_agent)
8
8
  from langgraph.store.base import BaseStore
9
-
10
- # Note: Traditional LangChain agents (OpenAI, XML, JSON) do not support
11
- # checkpointing natively. Only LangGraph agents support checkpointing.
12
- # For checkpointing in traditional agents, you need to migrate to LangGraph.
13
-
14
9
  from .agents.xml_chat import create_xml_chat_agent
15
- from .agents.react_agent import get_langgraph_agent_with_auto_continue
16
10
  from .langraph_agent import create_graph
17
11
  from langchain_core.messages import (
18
- BaseMessage, SystemMessage, HumanMessage, AIMessage
12
+ BaseMessage, SystemMessage, HumanMessage
19
13
  )
20
14
  from langchain_core.prompts import MessagesPlaceholder
21
15
  from .constants import REACT_ADDON, REACT_VARS, XML_ADDON
@@ -34,8 +28,7 @@ class Assistant:
34
28
  app_type: str = "openai",
35
29
  tools: Optional[list] = [],
36
30
  memory: Optional[Any] = None,
37
- store: Optional[BaseStore] = None,
38
- use_checkpointing: bool = False):
31
+ store: Optional[BaseStore] = None):
39
32
 
40
33
  self.client = copy(client)
41
34
  self.client.max_tokens = data['llm_settings']['max_tokens']
@@ -48,7 +41,6 @@ class Assistant:
48
41
  self.app_type = app_type
49
42
  self.memory = memory
50
43
  self.store = store
51
- self.use_checkpointing = use_checkpointing
52
44
 
53
45
  logger.debug("Data for agent creation: %s", data)
54
46
  logger.info("App type: %s", app_type)
@@ -74,33 +66,17 @@ class Assistant:
74
66
  # Lazy import to avoid circular dependency
75
67
  from ..toolkits.tools import get_tools
76
68
  self.tools = get_tools(data['tools'], alita_client=alita, llm=self.client, memory_store=self.store)
77
- if app_type == "pipeline":
69
+ if app_type in ["pipeline", "predict", "react"]:
78
70
  self.prompt = data['instructions']
79
- elif app_type == "react":
80
- self.tools += tools
81
- messages = [SystemMessage(content=data['instructions'])]
82
- # messages.append(HumanMessage("{{input}}"))
83
- self.prompt = Jinja2TemplatedChatMessagesTemplate(messages=messages)
84
- variables = {}
85
- input_variables = []
86
- for variable in data['variables']:
87
- if variable['value'] != "":
88
- variables[variable['name']] = variable['value']
89
- else:
90
- input_variables.append(variable['name'])
91
- if input_variables:
92
- self.prompt.input_variables = input_variables
93
- if variables:
94
- self.prompt.partial_variables = variables
95
- try:
96
- logger.info(f"Client was created with client setting: temperature - {self.client._get_model_default_parameters}")
97
- except Exception as e:
98
- logger.info(f"Client was created with client setting: temperature - {self.client.temperature} : {self.client.max_tokens}")
71
+ if tools:
72
+ self.tools += tools
99
73
  else:
100
74
  self.tools += tools
101
75
  messages = [SystemMessage(content=data['instructions'])]
102
76
  messages.append(MessagesPlaceholder("chat_history"))
103
- if app_type == "xml":
77
+ if app_type == "react":
78
+ messages.append(HumanMessage(REACT_ADDON))
79
+ elif app_type == "xml":
104
80
  messages.append(HumanMessage(XML_ADDON))
105
81
  elif app_type in ['openai', 'dial']:
106
82
  messages.append(HumanMessage("{{input}}"))
@@ -112,7 +88,7 @@ class Assistant:
112
88
  variables[variable['name']] = variable['value']
113
89
  else:
114
90
  input_variables.append(variable['name'])
115
- if app_type in ["xml"]:
91
+ if app_type in ["react", "xml"]:
116
92
  input_variables = list(set(input_variables + REACT_VARS))
117
93
 
118
94
  if chat_history and isinstance(chat_history, list):
@@ -143,17 +119,14 @@ class Assistant:
143
119
  if self.app_type == 'pipeline':
144
120
  return self.pipeline()
145
121
  elif self.app_type == 'openai':
146
- # Check if checkpointing is enabled - if so, use LangGraph for auto-continue capability
147
- if self.use_checkpointing:
148
- return self.getLangGraphAgentWithAutoContinue()
149
122
  return self.getOpenAIToolsAgentExecutor()
150
123
  elif self.app_type == 'xml':
151
- # Check if checkpointing is enabled - if so, use LangGraph for auto-continue capability
152
- if self.use_checkpointing:
153
- return self.getLangGraphAgentWithAutoContinue()
154
124
  return self.getXMLAgentExecutor()
125
+ elif self.app_type in ['predict', 'react']:
126
+ return self.getLangGraphReactAgent()
155
127
  else:
156
- return self.getLangGraphAgentWithAutoContinue()
128
+ self.tools = [EchoTool()] + self.tools
129
+ return self.getAgentExecutor()
157
130
 
158
131
  def _agent_executor(self, agent: Any):
159
132
  return AgentExecutor.from_agent_and_tools(agent=agent, tools=self.tools,
@@ -179,6 +152,125 @@ class Assistant:
179
152
  agent = create_openai_tools_agent(llm=self.client, tools=simple_tools, prompt=self.prompt)
180
153
  return self._agent_executor(agent)
181
154
 
155
+ def getLangGraphReactAgent(self):
156
+ """
157
+ Create a LangGraph react agent using a tool-calling agent pattern.
158
+ This creates a proper LangGraphAgentRunnable with modern tool support.
159
+ """
160
+ # Exclude compiled graph runnables from simple tool agents
161
+ simple_tools = [t for t in self.tools if isinstance(t, BaseTool)]
162
+
163
+ # Set up memory/checkpointer if available
164
+ checkpointer = None
165
+ if self.memory is not None:
166
+ checkpointer = self.memory
167
+ elif self.store is not None:
168
+ # Convert store to checkpointer if needed
169
+ from langgraph.checkpoint.memory import MemorySaver
170
+ checkpointer = MemorySaver()
171
+ else:
172
+ # Ensure we have a checkpointer for conversation persistence
173
+ from langgraph.checkpoint.memory import MemorySaver
174
+ checkpointer = MemorySaver()
175
+ logger.info("Using default MemorySaver for conversation persistence")
176
+
177
+ # Extract all messages from prompt/chat history for LangGraph
178
+ chat_history_messages = []
179
+ prompt_instructions = None
180
+
181
+ if hasattr(self.prompt, 'messages') and self.prompt.messages:
182
+ # Extract all messages from the prompt to use as chat history
183
+ for message in self.prompt.messages:
184
+ # Skip placeholders (MessagesPlaceholder instances) as they are not actual messages
185
+ if hasattr(message, 'variable_name'): # MessagesPlaceholder has variable_name attribute
186
+ continue
187
+ # Skip template messages (contains {{variable}} patterns)
188
+ if hasattr(message, 'content') and isinstance(message.content, str) and '{{' in message.content and '}}' in message.content:
189
+ continue
190
+ # Include actual chat history messages
191
+ chat_history_messages.append(message)
192
+
193
+ # Only use prompt_instructions if explicitly specified (for predict app_type)
194
+ if self.app_type == "predict" and isinstance(self.prompt, str):
195
+ prompt_instructions = self.prompt
196
+
197
+ # Create a unified YAML schema with conditional tool binding
198
+ # Build the base node configuration
199
+ node_config = {
200
+ 'id': 'agent',
201
+ 'type': 'llm',
202
+ 'prompt': {
203
+ 'template': prompt_instructions or "You are a helpful assistant."
204
+ },
205
+ 'input': ['messages'],
206
+ 'output': ['messages'],
207
+ 'transition': 'END'
208
+ }
209
+
210
+ # Add tool binding only if tools are present
211
+ if simple_tools:
212
+ tool_names = [tool.name for tool in simple_tools]
213
+ tool_names_yaml = str(tool_names).replace("'", '"') # Convert to YAML-compatible format
214
+ node_config['tool_names'] = tool_names_yaml
215
+ logger.info("Binding tools: %s", tool_names)
216
+
217
+ # Properly setup the prompt for YAML
218
+ import yaml
219
+ escaped_prompt = prompt_instructions or "You are a helpful assistant."
220
+
221
+ # Create the schema as a dictionary first, then convert to YAML
222
+ state_messages_config = {'type': 'list'}
223
+
224
+ # Only set initial messages if there's actual conversation history (not just system prompts)
225
+ actual_conversation_messages = [
226
+ msg for msg in chat_history_messages
227
+ if not isinstance(msg, SystemMessage) # Exclude system messages as they're handled by prompt template
228
+ ]
229
+
230
+ if actual_conversation_messages:
231
+ state_messages_config['value'] = actual_conversation_messages
232
+ logger.info(f"Setting initial conversation history with {len(actual_conversation_messages)} messages")
233
+
234
+ schema_dict = {
235
+ 'name': 'react_agent',
236
+ 'state': {
237
+ 'messages': state_messages_config
238
+ },
239
+ 'nodes': [{
240
+ 'id': 'agent',
241
+ 'type': 'llm',
242
+ 'prompt': {
243
+ 'template': escaped_prompt
244
+ },
245
+ 'input': ['messages'],
246
+ 'output': ['messages'],
247
+ 'transition': 'END'
248
+ }],
249
+ 'entry_point': 'agent'
250
+ }
251
+
252
+ # Add tool-specific parameters only if tools exist
253
+ if simple_tools:
254
+ schema_dict['nodes'][0]['tool_names'] = tool_names
255
+
256
+ # Convert to YAML string
257
+ yaml_schema = yaml.dump(schema_dict, default_flow_style=False, allow_unicode=True)
258
+
259
+ # Use create_graph function to build the agent like other graph types
260
+ from .langraph_agent import create_graph
261
+
262
+ agent = create_graph(
263
+ client=self.client,
264
+ yaml_schema=yaml_schema,
265
+ tools=simple_tools,
266
+ memory=checkpointer,
267
+ store=self.store,
268
+ debug=False,
269
+ for_subgraph=False
270
+ )
271
+
272
+ return agent
273
+
182
274
  def pipeline(self):
183
275
  memory = self.memory
184
276
  #
@@ -199,22 +291,3 @@ class Assistant:
199
291
 
200
292
  def predict(self, messages: list[BaseMessage]):
201
293
  return self.client.invoke(messages)
202
-
203
- def getLangGraphAgentWithAutoContinue(self):
204
- """
205
- Create a LangGraph agent with auto-continue capability for when responses get truncated.
206
- This provides better handling of length-limited responses compared to traditional AgentExecutor.
207
- Uses simple in-memory checkpointing for auto-continue functionality.
208
-
209
- Note: Requires LangGraph 0.5.x or higher that supports post_model_hook.
210
- """
211
-
212
- # Use the function from react_agent.py to create the agent
213
- return get_langgraph_agent_with_auto_continue(
214
- prompt=self.prompt,
215
- model=self.client,
216
- tools=self.tools,
217
- memory=self.memory,
218
- debug=True
219
- )
220
-
@@ -6,13 +6,13 @@ from typing import Dict
6
6
  import yaml
7
7
  import ast
8
8
  from langchain_core.callbacks import dispatch_custom_event
9
- from langchain_core.messages import HumanMessage
9
+ from langchain_core.messages import HumanMessage, AIMessage, SystemMessage, BaseMessage
10
10
  from langchain_core.runnables import Runnable
11
11
  from langchain_core.runnables import RunnableConfig
12
12
  from langchain_core.tools import BaseTool
13
13
  from langgraph.channels.ephemeral_value import EphemeralValue
14
14
  from langgraph.graph import StateGraph
15
- from langgraph.graph import END, START
15
+ from langgraph.graph.graph import END, START
16
16
  from langgraph.graph.state import CompiledStateGraph
17
17
  from langgraph.managed.base import is_managed_value
18
18
  from langgraph.prebuilt import InjectedStore
@@ -498,14 +498,36 @@ def create_graph(
498
498
  var: get_type_hints(state_class).get(var, str).__name__
499
499
  for var in output_vars
500
500
  }
501
+
502
+ # Check if tools should be bound to this LLM node
503
+ tool_names = node.get('tool_names', []) if isinstance(node.get('tool_names'), list) else []
504
+
505
+ # Filter tools if specific tool names are provided
506
+ available_tools = []
507
+
508
+ if tool_names:
509
+ # Filter tools by name
510
+ tool_dict = {tool.name: tool for tool in tools if isinstance(tool, BaseTool)}
511
+ available_tools = [tool_dict[name] for name in tool_names if name in tool_dict]
512
+ if len(available_tools) != len(tool_names):
513
+ missing_tools = [name for name in tool_names if name not in tool_dict]
514
+ logger.warning(f"Some tools not found for LLM node {node_id}: {missing_tools}")
515
+ else:
516
+ # Use all available tools
517
+ available_tools = [tool for tool in tools if isinstance(tool, BaseTool)]
518
+
501
519
  lg_builder.add_node(node_id, LLMNode(
502
- client=client, prompt=node.get('prompt', {}),
503
- name=node['id'], return_type='dict',
520
+ client=client,
521
+ prompt=node.get('prompt', {}),
522
+ name=node['id'],
523
+ return_type='dict',
504
524
  response_key=node.get('response_key', 'messages'),
505
525
  structured_output_dict=output_vars_dict,
506
526
  output_variables=output_vars,
507
527
  input_variables=node.get('input', ['messages']),
508
- structured_output=node.get('structured_output', False)))
528
+ structured_output=node.get('structured_output', False),
529
+ available_tools=available_tools,
530
+ tool_names=tool_names))
509
531
  elif node_type == 'router':
510
532
  # Add a RouterNode as an independent node
511
533
  lg_builder.add_node(node_id, RouterNode(
@@ -604,6 +626,29 @@ def create_graph(
604
626
  return compiled.validate()
605
627
 
606
628
 
629
+ def convert_dict_to_message(msg_dict):
630
+ """Convert a dictionary message to a LangChain message object."""
631
+ if isinstance(msg_dict, BaseMessage):
632
+ return msg_dict # Already a LangChain message
633
+
634
+ if isinstance(msg_dict, dict):
635
+ role = msg_dict.get('role', 'user')
636
+ content = msg_dict.get('content', '')
637
+
638
+ if role == 'user':
639
+ return HumanMessage(content=content)
640
+ elif role == 'assistant':
641
+ return AIMessage(content=content)
642
+ elif role == 'system':
643
+ return SystemMessage(content=content)
644
+ else:
645
+ # Default to HumanMessage for unknown roles
646
+ return HumanMessage(content=content)
647
+
648
+ # If it's neither dict nor BaseMessage, convert to string and make HumanMessage
649
+ return HumanMessage(content=str(msg_dict))
650
+
651
+
607
652
  class LangGraphAgentRunnable(CompiledStateGraph):
608
653
  def __init__(self, *args, output_variables=None, **kwargs):
609
654
  super().__init__(*args, **kwargs)
@@ -612,16 +657,28 @@ class LangGraphAgentRunnable(CompiledStateGraph):
612
657
  def invoke(self, input: Union[dict[str, Any], Any],
613
658
  config: Optional[RunnableConfig] = None,
614
659
  *args, **kwargs):
615
-
660
+ logger.info(f"Incomming Input: {input}")
616
661
  if not config.get("configurable", {}).get("thread_id"):
617
662
  config["configurable"] = {"thread_id": str(uuid4())}
618
663
  thread_id = config.get("configurable", {}).get("thread_id")
664
+ # Handle chat history and current input properly
619
665
  if input.get('chat_history') and not input.get('messages'):
620
- input['messages'] = input.pop('chat_history')
666
+ # Convert chat history dict messages to LangChain message objects
667
+ chat_history = input.pop('chat_history')
668
+ input['messages'] = [convert_dict_to_message(msg) for msg in chat_history]
669
+
670
+ # Append current input to existing messages instead of overwriting
621
671
  if input.get('input'):
622
- input['messages'] = [{"role": "user", "content": input.get('input')}]
672
+ current_message = HumanMessage(content=input.get('input'))
673
+ if input.get('messages'):
674
+ # Ensure existing messages are LangChain objects
675
+ input['messages'] = [convert_dict_to_message(msg) for msg in input['messages']]
676
+ # Append to existing messages
677
+ input['messages'].append(current_message)
678
+ else:
679
+ # No existing messages, create new list
680
+ input['messages'] = [current_message]
623
681
  logging.info(f"Input: {thread_id} - {input}")
624
-
625
682
  if self.checkpointer and self.checkpointer.get_tuple(config):
626
683
  self.update_state(config, input)
627
684
  result = super().invoke(None, config=config, *args, **kwargs)
@@ -12,24 +12,31 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+
16
+ #
17
+ # This is adoption of https://github.com/langchain-ai/langchain/blob/master/libs/community/langchain_community/chat_models/openai.py
18
+ #
19
+
15
20
  import logging
16
21
  import requests
17
22
  from time import sleep
18
23
  from traceback import format_exc
19
24
 
20
- from typing import Any, List, Optional, AsyncIterator, Dict, Iterator
25
+ from typing import Any, List, Optional, AsyncIterator, Dict, Iterator, Mapping, Type
21
26
  from tiktoken import get_encoding, encoding_for_model
22
27
  from langchain_core.callbacks import (
23
28
  AsyncCallbackManagerForLLMRun,
24
29
  CallbackManagerForLLMRun,
25
30
  )
26
- from langchain_core.language_models import BaseChatModel
27
- from langchain_core.messages import AIMessageChunk, BaseMessage
31
+ from langchain_core.language_models import BaseChatModel, SimpleChatModel
32
+ from langchain_core.messages import (AIMessageChunk, BaseMessage, HumanMessage, HumanMessageChunk, ChatMessageChunk,
33
+ FunctionMessageChunk, SystemMessageChunk, ToolMessageChunk, BaseMessageChunk,
34
+ AIMessage)
28
35
  from langchain_core.outputs import ChatGeneration, ChatGenerationChunk, ChatResult
29
36
  from langchain_core.runnables import run_in_executor
30
37
  from langchain_community.chat_models.openai import generate_from_stream, _convert_delta_to_message_chunk
31
- from ..clients import AlitaClient
32
- from pydantic import Field, model_validator
38
+ from ..clients.client import AlitaClient
39
+ from pydantic import Field, model_validator, field_validator, ValidationInfo
33
40
 
34
41
  logger = logging.getLogger(__name__)
35
42