alita-sdk 0.3.179__tar.gz → 0.3.181__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 (312) hide show
  1. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/PKG-INFO +2 -2
  2. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/clients/client.py +0 -2
  3. alita_sdk-0.3.181/alita_sdk/runtime/langchain/agents/react_agent.py +157 -0
  4. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/assistant.py +32 -72
  5. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/langraph_agent.py +1 -1
  6. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/llms/alita.py +4 -11
  7. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/utils/streamlit.py +7 -2
  8. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk.egg-info/PKG-INFO +2 -2
  9. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk.egg-info/SOURCES.txt +1 -0
  10. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk.egg-info/requires.txt +1 -1
  11. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/pyproject.toml +2 -2
  12. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/LICENSE +0 -0
  13. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/README.md +0 -0
  14. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/__init__.py +0 -0
  15. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/__init__.py +0 -0
  16. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/analysis/__init__.py +0 -0
  17. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/analysis/ado_analyse/__init__.py +0 -0
  18. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -0
  19. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/analysis/github_analyse/__init__.py +0 -0
  20. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -0
  21. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -0
  22. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -0
  23. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
  24. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
  25. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/community/utils.py +0 -0
  26. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/__init__.py +0 -0
  27. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/clients/__init__.py +0 -0
  28. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/clients/artifact.py +0 -0
  29. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/clients/datasource.py +0 -0
  30. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/clients/prompt.py +0 -0
  31. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/__init__.py +0 -0
  32. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
  33. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
  34. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
  35. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/constants.py +0 -0
  36. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
  37. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
  38. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
  39. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
  40. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
  41. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
  42. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
  43. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
  44. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
  45. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
  46. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
  47. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
  48. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
  49. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
  50. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/indexer.py +0 -0
  51. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
  52. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
  53. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
  54. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
  55. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
  56. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
  57. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
  58. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
  59. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
  60. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
  61. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/store_manager.py +0 -0
  62. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
  63. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
  64. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
  65. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
  66. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
  67. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
  68. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/git.py +0 -0
  69. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/log.py +0 -0
  70. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
  71. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/state.py +0 -0
  72. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
  73. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
  74. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/langchain/utils.py +0 -0
  75. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/llms/__init__.py +0 -0
  76. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/llms/preloaded.py +0 -0
  77. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/toolkits/__init__.py +0 -0
  78. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/toolkits/application.py +0 -0
  79. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/toolkits/artifact.py +0 -0
  80. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/toolkits/datasource.py +0 -0
  81. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/toolkits/prompt.py +0 -0
  82. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
  83. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/toolkits/tools.py +0 -0
  84. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
  85. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/__init__.py +0 -0
  86. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/agent.py +0 -0
  87. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/application.py +0 -0
  88. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/artifact.py +0 -0
  89. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/datasource.py +0 -0
  90. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/echo.py +0 -0
  91. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/function.py +0 -0
  92. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
  93. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/llm.py +0 -0
  94. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/loop.py +0 -0
  95. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/loop_output.py +0 -0
  96. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
  97. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
  98. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/prompt.py +0 -0
  99. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/router.py +0 -0
  100. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/tool.py +0 -0
  101. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/tools/vectorstore.py +0 -0
  102. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
  103. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/utils/__init__.py +0 -0
  104. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/utils/constants.py +0 -0
  105. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/utils/evaluate.py +0 -0
  106. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/utils/logging.py +0 -0
  107. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
  108. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/runtime/utils/utils.py +0 -0
  109. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/__init__.py +0 -0
  110. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/__init__.py +0 -0
  111. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/repos/__init__.py +0 -0
  112. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
  113. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
  114. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
  115. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/utils.py +0 -0
  116. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
  117. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
  118. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
  119. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
  120. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
  121. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
  122. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/azure_ai/__init__.py +0 -0
  123. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
  124. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
  125. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/base/__init__.py +0 -0
  126. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/base/tool.py +0 -0
  127. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/bitbucket/__init__.py +0 -0
  128. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
  129. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
  130. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
  131. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/bitbucket/tools.py +0 -0
  132. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/browser/__init__.py +0 -0
  133. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/browser/crawler.py +0 -0
  134. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
  135. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/browser/google_search_rag.py +0 -0
  136. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/browser/utils.py +0 -0
  137. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/browser/wiki.py +0 -0
  138. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/__init__.py +0 -0
  139. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
  140. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
  141. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
  142. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
  143. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
  144. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
  145. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
  146. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
  147. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
  148. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
  149. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
  150. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/tools.py +0 -0
  151. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
  152. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
  153. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/carrier/utils.py +0 -0
  154. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/__init__.py +0 -0
  155. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
  156. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
  157. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/constants.py +0 -0
  158. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
  159. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
  160. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
  161. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
  162. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
  163. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
  164. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
  165. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
  166. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
  167. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
  168. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
  169. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
  170. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
  171. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
  172. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
  173. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/models.py +0 -0
  174. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
  175. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
  176. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
  177. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
  178. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
  179. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/chunkers/utils.py +0 -0
  180. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/cloud/__init__.py +0 -0
  181. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
  182. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
  183. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
  184. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
  185. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
  186. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
  187. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
  188. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
  189. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/code/__init__.py +0 -0
  190. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/code/linter/__init__.py +0 -0
  191. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
  192. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
  193. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/code/sonar/__init__.py +0 -0
  194. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
  195. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/confluence/__init__.py +0 -0
  196. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
  197. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/confluence/loader.py +0 -0
  198. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/confluence/utils.py +0 -0
  199. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
  200. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
  201. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/elastic/__init__.py +0 -0
  202. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
  203. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/elitea_base.py +0 -0
  204. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/figma/__init__.py +0 -0
  205. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/figma/api_wrapper.py +0 -0
  206. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/github/__init__.py +0 -0
  207. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/github/api_wrapper.py +0 -0
  208. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/github/github_client.py +0 -0
  209. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
  210. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/github/schemas.py +0 -0
  211. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/github/tool.py +0 -0
  212. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/github/tool_prompts.py +0 -0
  213. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/gitlab/__init__.py +0 -0
  214. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
  215. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/gitlab/tools.py +0 -0
  216. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/gitlab/utils.py +0 -0
  217. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
  218. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
  219. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/gmail/__init__.py +0 -0
  220. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
  221. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/gmail/utils.py +0 -0
  222. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/google_places/__init__.py +0 -0
  223. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
  224. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/jira/__init__.py +0 -0
  225. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/jira/api_wrapper.py +0 -0
  226. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/keycloak/__init__.py +0 -0
  227. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
  228. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/llm/__init__.py +0 -0
  229. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/llm/img_utils.py +0 -0
  230. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/llm/llm_utils.py +0 -0
  231. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/localgit/__init__.py +0 -0
  232. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/localgit/local_git.py +0 -0
  233. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/localgit/tool.py +0 -0
  234. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/memory/__init__.py +0 -0
  235. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ocr/__init__.py +0 -0
  236. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
  237. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/ocr/text_detection.py +0 -0
  238. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/openapi/__init__.py +0 -0
  239. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/__init__.py +0 -0
  240. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
  241. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
  242. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
  243. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
  244. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
  245. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
  246. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
  247. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
  248. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
  249. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
  250. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
  251. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
  252. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
  253. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
  254. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
  255. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
  256. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
  257. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
  258. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/postman/__init__.py +0 -0
  259. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/postman/api_wrapper.py +0 -0
  260. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/postman/postman_analysis.py +0 -0
  261. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pptx/__init__.py +0 -0
  262. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
  263. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/qtest/__init__.py +0 -0
  264. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
  265. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/qtest/tool.py +0 -0
  266. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/rally/__init__.py +0 -0
  267. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/rally/api_wrapper.py +0 -0
  268. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/report_portal/__init__.py +0 -0
  269. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
  270. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
  271. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/salesforce/__init__.py +0 -0
  272. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
  273. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/salesforce/model.py +0 -0
  274. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/servicenow/__init__.py +0 -0
  275. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
  276. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
  277. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/sharepoint/__init__.py +0 -0
  278. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
  279. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
  280. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/sharepoint/utils.py +0 -0
  281. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/sql/__init__.py +0 -0
  282. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/sql/api_wrapper.py +0 -0
  283. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/sql/models.py +0 -0
  284. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/testio/__init__.py +0 -0
  285. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/testio/api_wrapper.py +0 -0
  286. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/testrail/__init__.py +0 -0
  287. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
  288. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/utils/__init__.py +0 -0
  289. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/utils/content_parser.py +0 -0
  290. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/xray/__init__.py +0 -0
  291. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/xray/api_wrapper.py +0 -0
  292. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/yagmail/__init__.py +0 -0
  293. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
  294. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
  295. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr/__init__.py +0 -0
  296. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
  297. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr/rest_client.py +0 -0
  298. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
  299. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
  300. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
  301. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
  302. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
  303. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
  304. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
  305. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
  306. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk.egg-info/dependency_links.txt +0 -0
  307. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/alita_sdk.egg-info/top_level.txt +0 -0
  308. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/setup.cfg +0 -0
  309. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/tests/test_ado_analysis.py +0 -0
  310. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/tests/test_github_analysis.py +0 -0
  311. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/tests/test_gitlab_analysis.py +0 -0
  312. {alita_sdk-0.3.179 → alita_sdk-0.3.181}/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.179
3
+ Version: 0.3.181
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,>=0.4.8; extra == "runtime"
35
+ Requires-Dist: langgraph>=0.5; 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"
@@ -218,8 +218,6 @@ 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")
223
221
 
224
222
  def datasource(self, datasource_id: int) -> AlitaDataSource:
225
223
  url = f"{self.datasources}/{datasource_id}"
@@ -0,0 +1,157 @@
1
+ import logging
2
+ from typing import Any, Optional, Callable
3
+ from langchain_core.messages import BaseMessage, AIMessage, HumanMessage
4
+ from langchain_core.tools import BaseTool
5
+ from langgraph.prebuilt import create_react_agent
6
+ from langgraph.checkpoint.memory import MemorySaver
7
+
8
+ logger = logging.getLogger(__name__)
9
+
10
+ def create_react_agent_with_auto_continue(
11
+ prompt: Any,
12
+ model: Any,
13
+ tools: list[BaseTool],
14
+ memory: Optional[Any] = None,
15
+ debug: bool = False
16
+ ) -> Any:
17
+ """
18
+ Create a LangGraph React agent with auto-continue capability for when responses get truncated.
19
+ This provides better handling of length-limited responses compared to traditional AgentExecutor.
20
+ Uses simple in-memory checkpointing for auto-continue functionality.
21
+
22
+ Args:
23
+ prompt: The prompt template to use for the agent
24
+ model: The language model to use
25
+ tools: List of tools available to the agent
26
+ memory: Optional memory store for checkpointing (will create MemorySaver if None)
27
+ debug: Whether to enable debug mode
28
+
29
+ Returns:
30
+ A configured React agent with auto-continue capability
31
+
32
+ Note: Requires LangGraph 0.5.x or higher that supports post_model_hook.
33
+ """
34
+ # Use simple in-memory checkpointer for auto-continue functionality if not provided
35
+ if memory is None:
36
+ memory = MemorySaver()
37
+
38
+ # Set up parameters for the agent
39
+ kwargs = {
40
+ "prompt": prompt,
41
+ "model": model,
42
+ "tools": tools,
43
+ "checkpointer": memory,
44
+ "post_model_hook": _create_auto_continue_hook() # Auto-continue hook
45
+ }
46
+
47
+ # Create the base React agent with langgraph's prebuilt function
48
+ base_agent = create_react_agent(**kwargs)
49
+
50
+ return base_agent
51
+
52
+ def _create_auto_continue_hook() -> Callable:
53
+ """
54
+ Create a post-model hook for LangGraph 0.5.x that detects truncated responses
55
+ and adds continuation prompts.
56
+ This checks if the last AI message was truncated and automatically continues if needed.
57
+ """
58
+ MAX_CONTINUATIONS = 3 # Maximum number of auto-continuations allowed
59
+
60
+ def post_model_hook(state):
61
+ messages = state.get("messages", [])
62
+
63
+ # Count how many auto-continue messages we've already sent
64
+ continuation_count = sum(
65
+ 1 for msg in messages
66
+ if isinstance(msg, HumanMessage) and
67
+ "continue your previous response" in msg.content.lower()
68
+ )
69
+
70
+ # Don't continue if we've reached the limit
71
+ if continuation_count >= MAX_CONTINUATIONS:
72
+ return state
73
+
74
+ # Check if the last message is from AI and was truncated
75
+ if messages and isinstance(messages[-1], AIMessage):
76
+ last_ai_message = messages[-1]
77
+
78
+ # Check for truncation indicators
79
+ is_truncated = (
80
+ hasattr(last_ai_message, 'response_metadata') and
81
+ last_ai_message.response_metadata.get('finish_reason') == 'length'
82
+ ) or (
83
+ # Fallback: check if message seems to end abruptly
84
+ last_ai_message.content and
85
+ not last_ai_message.content.rstrip().endswith(('.', '!', '?', ':', ';'))
86
+ )
87
+
88
+ # Add continuation request if truncated
89
+ if is_truncated:
90
+ logger.info("Detected truncated response, adding continuation request")
91
+ new_messages = messages.copy()
92
+ new_messages.append(HumanMessage(content="Continue your previous response from where you left off"))
93
+ return {"messages": new_messages}
94
+
95
+ return state
96
+
97
+ return post_model_hook
98
+
99
+ def get_langgraph_agent_with_auto_continue(
100
+ prompt: Any,
101
+ model: Any,
102
+ tools: list[BaseTool],
103
+ memory: Optional[Any] = None,
104
+ debug: bool = False
105
+ ) -> Any:
106
+ """
107
+ Create a LangGraph agent with auto-continue capability for when responses get truncated.
108
+ This provides better handling of length-limited responses compared to traditional AgentExecutor.
109
+ Uses simple in-memory checkpointing for auto-continue functionality.
110
+
111
+ Args:
112
+ prompt: The prompt template to use for the agent
113
+ model: The language model to use
114
+ tools: List of tools available to the agent
115
+ memory: Optional memory store for checkpointing (will create MemorySaver if None)
116
+ debug: Whether to enable debug mode
117
+
118
+ Returns:
119
+ A configured LangGraphAgentRunnable with auto-continue capability
120
+
121
+ Note: Requires LangGraph 0.5.x or higher that supports post_model_hook.
122
+ """
123
+ from ...langchain.langraph_agent import LangGraphAgentRunnable
124
+
125
+ # Use simple in-memory checkpointer for auto-continue functionality if not provided
126
+ if memory is None:
127
+ memory = MemorySaver()
128
+
129
+ # Create the base React agent with auto-continue capability
130
+ base_agent = create_react_agent_with_auto_continue(
131
+ prompt=prompt,
132
+ model=model,
133
+ tools=tools,
134
+ memory=memory,
135
+ debug=debug
136
+ )
137
+
138
+ # Wrap the base agent in our custom LangGraphAgentRunnable to handle input properly
139
+ # This ensures that our invoke() input handling logic is applied
140
+ agent = LangGraphAgentRunnable(
141
+ builder=base_agent.builder,
142
+ config_type=base_agent.builder.config_schema,
143
+ nodes=base_agent.nodes,
144
+ channels=base_agent.channels,
145
+ input_channels=base_agent.input_channels,
146
+ stream_mode=base_agent.stream_mode,
147
+ output_channels=base_agent.output_channels,
148
+ stream_channels=base_agent.stream_channels,
149
+ checkpointer=memory,
150
+ interrupt_before_nodes=base_agent.interrupt_before_nodes,
151
+ interrupt_after_nodes=base_agent.interrupt_after_nodes,
152
+ debug=debug,
153
+ store=base_agent.store,
154
+ schema_to_mapper=base_agent.schema_to_mapper
155
+ )
156
+
157
+ return agent
@@ -12,6 +12,7 @@ from langgraph.store.base import BaseStore
12
12
  # For checkpointing in traditional agents, you need to migrate to LangGraph.
13
13
 
14
14
  from .agents.xml_chat import create_xml_chat_agent
15
+ from .agents.react_agent import get_langgraph_agent_with_auto_continue
15
16
  from .langraph_agent import create_graph
16
17
  from langchain_core.messages import (
17
18
  BaseMessage, SystemMessage, HumanMessage, AIMessage
@@ -75,13 +76,31 @@ class Assistant:
75
76
  self.tools = get_tools(data['tools'], alita_client=alita, llm=self.client, memory_store=self.store)
76
77
  if app_type == "pipeline":
77
78
  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}")
78
99
  else:
79
100
  self.tools += tools
80
101
  messages = [SystemMessage(content=data['instructions'])]
81
102
  messages.append(MessagesPlaceholder("chat_history"))
82
- if app_type == "react":
83
- messages.append(HumanMessage(REACT_ADDON))
84
- elif app_type == "xml":
103
+ if app_type == "xml":
85
104
  messages.append(HumanMessage(XML_ADDON))
86
105
  elif app_type in ['openai', 'dial']:
87
106
  messages.append(HumanMessage("{{input}}"))
@@ -93,7 +112,7 @@ class Assistant:
93
112
  variables[variable['name']] = variable['value']
94
113
  else:
95
114
  input_variables.append(variable['name'])
96
- if app_type in ["react", "xml"]:
115
+ if app_type in ["xml"]:
97
116
  input_variables = list(set(input_variables + REACT_VARS))
98
117
 
99
118
  if chat_history and isinstance(chat_history, list):
@@ -186,75 +205,16 @@ class Assistant:
186
205
  Create a LangGraph agent with auto-continue capability for when responses get truncated.
187
206
  This provides better handling of length-limited responses compared to traditional AgentExecutor.
188
207
  Uses simple in-memory checkpointing for auto-continue functionality.
189
- """
190
- from langgraph.prebuilt import create_react_agent
191
- from langgraph.checkpoint.memory import MemorySaver
192
-
193
- # Use simple in-memory checkpointer for auto-continue functionality
194
- # This ensures clean, predictable behavior for continuation logic
195
- memory = MemorySaver()
196
208
 
197
- # Filter tools to only include BaseTool instances
198
- simple_tools = [t for t in self.tools if isinstance(t, BaseTool)]
199
-
200
- # Create the agent with checkpointing enabled
201
- agent = create_react_agent(
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(
202
214
  prompt=self.prompt,
203
215
  model=self.client,
204
- tools=simple_tools,
205
- checkpointer=memory,
206
- state_modifier=self._create_auto_continue_state_modifier()
216
+ tools=self.tools,
217
+ memory=self.memory,
218
+ debug=True
207
219
  )
208
-
209
- return agent
210
-
211
- def _create_auto_continue_state_modifier(self):
212
- """
213
- Create a state modifier that implements auto-continue logic.
214
- This checks if the last AI response was truncated and automatically continues if needed.
215
- Limits auto-continue to prevent infinite loops.
216
- """
217
- MAX_CONTINUATIONS = 3 # Maximum number of auto-continuations allowed
218
-
219
- def auto_continue_modifier(state):
220
- messages = state.get("messages", [])
221
-
222
- # Count how many auto-continue messages we've already sent
223
- continuation_count = sum(
224
- 1 for msg in messages
225
- if isinstance(msg, HumanMessage) and
226
- "continue your previous response" in msg.content.lower()
227
- )
228
-
229
- # Don't continue if we've reached the limit
230
- if continuation_count >= MAX_CONTINUATIONS:
231
- return state
232
-
233
- # Check if the last AI message was truncated
234
- if messages and isinstance(messages[-1], AIMessage):
235
- last_ai_message = messages[-1]
236
-
237
- # Check for truncation indicators
238
- is_truncated = (
239
- hasattr(last_ai_message, 'response_metadata') and
240
- last_ai_message.response_metadata.get('finish_reason') == 'length'
241
- ) or (
242
- # Fallback: check if message seems to end abruptly
243
- last_ai_message.content and
244
- not last_ai_message.content.rstrip().endswith(('.', '!', '?', ':', ';'))
245
- )
246
-
247
- # Add continuation logic
248
- if is_truncated:
249
- # Add a human message to continue
250
- continuation_msg = HumanMessage(
251
- content="Continue your previous response from where you left off"
252
- )
253
- return {
254
- **state,
255
- "messages": messages + [continuation_msg]
256
- }
257
-
258
- return state
259
-
260
- return auto_continue_modifier
220
+
@@ -12,7 +12,7 @@ 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.graph import END, START
15
+ from langgraph.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
@@ -12,31 +12,24 @@
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
-
20
15
  import logging
21
16
  import requests
22
17
  from time import sleep
23
18
  from traceback import format_exc
24
19
 
25
- from typing import Any, List, Optional, AsyncIterator, Dict, Iterator, Mapping, Type
20
+ from typing import Any, List, Optional, AsyncIterator, Dict, Iterator
26
21
  from tiktoken import get_encoding, encoding_for_model
27
22
  from langchain_core.callbacks import (
28
23
  AsyncCallbackManagerForLLMRun,
29
24
  CallbackManagerForLLMRun,
30
25
  )
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)
26
+ from langchain_core.language_models import BaseChatModel
27
+ from langchain_core.messages import AIMessageChunk, BaseMessage
35
28
  from langchain_core.outputs import ChatGeneration, ChatGenerationChunk, ChatResult
36
29
  from langchain_core.runnables import run_in_executor
37
30
  from langchain_community.chat_models.openai import generate_from_stream, _convert_delta_to_message_chunk
38
31
  from ..clients import AlitaClient
39
- from pydantic import Field, model_validator, field_validator, ValidationInfo
32
+ from pydantic import Field, model_validator
40
33
 
41
34
  logger = logging.getLogger(__name__)
42
35
 
@@ -1038,9 +1038,14 @@ def run_streamlit(st, ai_icon=None, user_icon=None):
1038
1038
  {"input": prompt, "chat_history": st.session_state.messages[:-1]},
1039
1039
  { 'callbacks': [st_cb], 'configurable': {"thread_id": st.session_state.thread_id}}
1040
1040
  )
1041
- st.write(response["output"])
1041
+ try:
1042
+ output =response["output"]
1043
+ except KeyError:
1044
+ logger.info(response)
1045
+ output = response['messages'][0].content
1046
+ st.write(output)
1042
1047
  st.session_state.thread_id = response.get("thread_id", None)
1043
- st.session_state.messages.append({"role": "assistant", "content": response["output"]})
1048
+ st.session_state.messages.append({"role": "assistant", "content": output})
1044
1049
 
1045
1050
  elif st.session_state.llm and st.session_state.show_toolkit_testing and st.session_state.configured_toolkit:
1046
1051
  # Toolkit Testing Main View
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.179
3
+ Version: 0.3.181
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,>=0.4.8; extra == "runtime"
35
+ Requires-Dist: langgraph>=0.5; 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"
@@ -35,6 +35,7 @@ alita_sdk/runtime/langchain/mixedAgentRenderes.py
35
35
  alita_sdk/runtime/langchain/store_manager.py
36
36
  alita_sdk/runtime/langchain/utils.py
37
37
  alita_sdk/runtime/langchain/agents/__init__.py
38
+ alita_sdk/runtime/langchain/agents/react_agent.py
38
39
  alita_sdk/runtime/langchain/agents/xml_chat.py
39
40
  alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py
40
41
  alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py
@@ -37,7 +37,7 @@ langchain-openai~=0.3.0
37
37
  langgraph-checkpoint-sqlite~=2.0.0
38
38
  langgraph-checkpoint-postgres~=2.0.1
39
39
  langsmith>=0.3.45
40
- langgraph<0.5,>=0.4.8
40
+ langgraph>=0.5
41
41
  langchain_chroma~=0.2.2
42
42
  langchain-unstructured~=0.1.6
43
43
  langchain-postgres~=0.0.13
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "alita_sdk"
7
- version = "0.3.179"
7
+ version = "0.3.181"
8
8
  description = "SDK for building langchain agents using resources from Alita"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -32,7 +32,7 @@ name = "Artem Dubrovskiy"
32
32
  email = "ad13box@gmail.com"
33
33
 
34
34
  [project.optional-dependencies]
35
- runtime = [ "langchain_core==0.3.49", "langchain<=0.3.22", "langchain_community~=0.3.7", "langchain-openai~=0.3.0", "langgraph-checkpoint-sqlite~=2.0.0", "langgraph-checkpoint-postgres~=2.0.1", "langsmith>=0.3.45", "langgraph>=0.4.8,<0.5", "langchain_chroma~=0.2.2", "langchain-unstructured~=0.1.6", "langchain-postgres~=0.0.13", "keybert==0.8.3", "charset_normalizer==3.3.2", "unstructured[local-inference]==0.16.23", "unstructured_pytesseract==0.3.13", "unstructured_inference==0.8.7", "python-pptx==1.0.2", "pdf2image==1.16.3", "pikepdf==8.7.1", "pypdf==4.3.1", "pdfminer.six==20240706", "opencv-python==4.11.0.86", "python-docx==1.1.2", "openpyxl==3.1.2", "markdown==3.5.1", "beautifulsoup4==4.12.2", "gensim==4.3.3", "chromadb==0.5.20", "pgvector==0.2.5", "scipy==1.13.1", "pytesseract==0.3.13", "reportlab==4.2.5", "svglib==1.5.1", "rlpycairo==0.3.0", "cairocffi==1.7.1", "docx2txt==0.8", "mammoth==1.9.0", "opentelemetry-exporter-otlp-proto-grpc==1.25.0", "opentelemetry_api==1.25.0", "opentelemetry_instrumentation==0.46b0", "grpcio_status==1.63.0rc1", "protobuf==4.25.7", "sentence-transformers==2.7.0",]
35
+ runtime = [ "langchain_core==0.3.49", "langchain<=0.3.22", "langchain_community~=0.3.7", "langchain-openai~=0.3.0", "langgraph-checkpoint-sqlite~=2.0.0", "langgraph-checkpoint-postgres~=2.0.1", "langsmith>=0.3.45", "langgraph>=0.5", "langchain_chroma~=0.2.2", "langchain-unstructured~=0.1.6", "langchain-postgres~=0.0.13", "keybert==0.8.3", "charset_normalizer==3.3.2", "unstructured[local-inference]==0.16.23", "unstructured_pytesseract==0.3.13", "unstructured_inference==0.8.7", "python-pptx==1.0.2", "pdf2image==1.16.3", "pikepdf==8.7.1", "pypdf==4.3.1", "pdfminer.six==20240706", "opencv-python==4.11.0.86", "python-docx==1.1.2", "openpyxl==3.1.2", "markdown==3.5.1", "beautifulsoup4==4.12.2", "gensim==4.3.3", "chromadb==0.5.20", "pgvector==0.2.5", "scipy==1.13.1", "pytesseract==0.3.13", "reportlab==4.2.5", "svglib==1.5.1", "rlpycairo==0.3.0", "cairocffi==1.7.1", "docx2txt==0.8", "mammoth==1.9.0", "opentelemetry-exporter-otlp-proto-grpc==1.25.0", "opentelemetry_api==1.25.0", "opentelemetry_instrumentation==0.46b0", "grpcio_status==1.63.0rc1", "protobuf==4.25.7", "sentence-transformers==2.7.0",]
36
36
  tools = [ "dulwich==0.21.6", "paramiko==3.3.1", "pygithub==2.3.0", "python-gitlab==4.5.0", "gitpython==3.1.43", "atlassian-python-api~=3.41", "atlassian_python_api==3.41.16", "jira==3.8.0", "qtest-swagger-client==0.0.3", "testrail-api==1.13.2", "azure-devops==7.1.0b4", "msrest==0.7.1", "python-graphql-client~=0.4.3", "zephyr-python-api==0.1.0", "pyral==1.6.0", "boto3>=1.37.23", "azure-core==1.30.2", "azure-identity==1.16.0", "azure-keyvault-keys==4.9.0", "azure-keyvault-secrets==4.8.0", "azure-mgmt-core==1.4.0", "azure-mgmt-resource==23.0.1", "azure-mgmt-storage==21.1.0", "azure-storage-blob==12.23.1", "azure-search-documents==11.5.2", "PyMySQL==1.1.1", "psycopg2-binary==2.9.10", "Office365-REST-Python-Client==2.5.14", "python-docx==1.1.2", "python-pptx==1.0.2", "pypdf2~=3.0.1", "FigmaPy==2018.1.0", "pandas==2.2.3", "factor_analyzer==0.5.1", "statsmodels==0.14.4", "tabulate==0.9.0", "tree_sitter==0.20.2", "tree-sitter-languages==1.10.2", "astor~=0.8.1", "markdownify~=1.1.0", "requests_openapi==1.0.5", "duckduckgo_search==5.3.0", "playwright>=1.52.0", "google-api-python-client==2.154.0", "wikipedia==1.4.0", "lxml==5.2.2", "beautifulsoup4", "pymupdf==1.24.9", "googlemaps==4.10.0", "yagmail==0.15.293", "pysnc==1.1.10", "shortuuid==1.0.13", "yarl==1.17.1", "langmem==0.0.27", "textract-py3==2.1.1",]
37
37
  community = [ "retry-extended==0.2.3", "pyobjtojson==0.3", "elitea-analyse==0.1.2",]
38
38
  all = [ "alita-sdk[runtime]", "alita-sdk[tools]", "alita-sdk[community]",]
File without changes
File without changes