alita-sdk 0.3.177__tar.gz → 0.3.179__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.
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/PKG-INFO +1 -1
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/assistant.py +93 -4
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/__init__.py +22 -18
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk.egg-info/PKG-INFO +1 -1
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/pyproject.toml +1 -1
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/LICENSE +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/README.md +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/ado_analyse/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/github_analyse/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/clients/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/clients/artifact.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/clients/client.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/clients/datasource.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/clients/prompt.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/constants.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/indexer.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/store_manager.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/git.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/log.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/state.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/llms/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/llms/alita.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/llms/preloaded.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/toolkits/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/toolkits/application.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/toolkits/artifact.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/toolkits/datasource.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/toolkits/prompt.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/toolkits/tools.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/agent.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/application.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/artifact.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/datasource.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/echo.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/function.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/llm.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/loop.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/loop_output.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/prompt.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/router.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/tools/vectorstore.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/utils/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/utils/constants.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/utils/evaluate.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/utils/logging.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/utils/streamlit.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/utils/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/repos/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/azure_ai/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/base/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/base/tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/bitbucket/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/bitbucket/tools.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/browser/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/browser/crawler.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/browser/google_search_rag.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/browser/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/browser/wiki.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/tools.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/carrier/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/constants.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/models.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/chunkers/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/cloud/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/code/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/code/linter/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/code/sonar/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/confluence/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/confluence/loader.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/confluence/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/elastic/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/elitea_base.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/figma/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/figma/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/github/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/github/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/github/github_client.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/github/schemas.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/github/tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/github/tool_prompts.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/gitlab/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/gitlab/tools.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/gitlab/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/gmail/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/gmail/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/google_places/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/jira/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/jira/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/keycloak/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/llm/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/llm/img_utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/llm/llm_utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/localgit/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/localgit/local_git.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/localgit/tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/memory/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ocr/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/ocr/text_detection.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/openapi/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/postman/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/postman/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/postman/postman_analysis.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pptx/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/qtest/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/qtest/tool.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/rally/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/rally/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/report_portal/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/salesforce/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/salesforce/model.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/servicenow/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/sharepoint/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/sharepoint/utils.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/sql/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/sql/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/sql/models.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/testio/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/testio/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/testrail/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/utils/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/utils/content_parser.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/xray/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/xray/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/yagmail/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr/rest_client.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk.egg-info/SOURCES.txt +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk.egg-info/dependency_links.txt +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk.egg-info/requires.txt +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk.egg-info/top_level.txt +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/setup.cfg +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/tests/test_ado_analysis.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/tests/test_github_analysis.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/tests/test_gitlab_analysis.py +0 -0
- {alita_sdk-0.3.177 → alita_sdk-0.3.179}/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.
|
3
|
+
Version: 0.3.179
|
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
|
@@ -7,10 +7,14 @@ from langchain.agents import (
|
|
7
7
|
create_json_chat_agent)
|
8
8
|
from langgraph.store.base import BaseStore
|
9
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
|
+
|
10
14
|
from .agents.xml_chat import create_xml_chat_agent
|
11
15
|
from .langraph_agent import create_graph
|
12
16
|
from langchain_core.messages import (
|
13
|
-
BaseMessage, SystemMessage, HumanMessage
|
17
|
+
BaseMessage, SystemMessage, HumanMessage, AIMessage
|
14
18
|
)
|
15
19
|
from langchain_core.prompts import MessagesPlaceholder
|
16
20
|
from .constants import REACT_ADDON, REACT_VARS, XML_ADDON
|
@@ -29,7 +33,8 @@ class Assistant:
|
|
29
33
|
app_type: str = "openai",
|
30
34
|
tools: Optional[list] = [],
|
31
35
|
memory: Optional[Any] = None,
|
32
|
-
store: Optional[BaseStore] = None
|
36
|
+
store: Optional[BaseStore] = None,
|
37
|
+
use_checkpointing: bool = False):
|
33
38
|
|
34
39
|
self.client = copy(client)
|
35
40
|
self.client.max_tokens = data['llm_settings']['max_tokens']
|
@@ -42,6 +47,7 @@ class Assistant:
|
|
42
47
|
self.app_type = app_type
|
43
48
|
self.memory = memory
|
44
49
|
self.store = store
|
50
|
+
self.use_checkpointing = use_checkpointing
|
45
51
|
|
46
52
|
logger.debug("Data for agent creation: %s", data)
|
47
53
|
logger.info("App type: %s", app_type)
|
@@ -118,12 +124,17 @@ class Assistant:
|
|
118
124
|
if self.app_type == 'pipeline':
|
119
125
|
return self.pipeline()
|
120
126
|
elif self.app_type == 'openai':
|
127
|
+
# Check if checkpointing is enabled - if so, use LangGraph for auto-continue capability
|
128
|
+
if self.use_checkpointing:
|
129
|
+
return self.getLangGraphAgentWithAutoContinue()
|
121
130
|
return self.getOpenAIToolsAgentExecutor()
|
122
131
|
elif self.app_type == 'xml':
|
132
|
+
# Check if checkpointing is enabled - if so, use LangGraph for auto-continue capability
|
133
|
+
if self.use_checkpointing:
|
134
|
+
return self.getLangGraphAgentWithAutoContinue()
|
123
135
|
return self.getXMLAgentExecutor()
|
124
136
|
else:
|
125
|
-
self.
|
126
|
-
return self.getAgentExecutor()
|
137
|
+
return self.getLangGraphAgentWithAutoContinue()
|
127
138
|
|
128
139
|
def _agent_executor(self, agent: Any):
|
129
140
|
return AgentExecutor.from_agent_and_tools(agent=agent, tools=self.tools,
|
@@ -169,3 +180,81 @@ class Assistant:
|
|
169
180
|
|
170
181
|
def predict(self, messages: list[BaseMessage]):
|
171
182
|
return self.client.invoke(messages)
|
183
|
+
|
184
|
+
def getLangGraphAgentWithAutoContinue(self):
|
185
|
+
"""
|
186
|
+
Create a LangGraph agent with auto-continue capability for when responses get truncated.
|
187
|
+
This provides better handling of length-limited responses compared to traditional AgentExecutor.
|
188
|
+
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
|
+
|
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(
|
202
|
+
prompt=self.prompt,
|
203
|
+
model=self.client,
|
204
|
+
tools=simple_tools,
|
205
|
+
checkpointer=memory,
|
206
|
+
state_modifier=self._create_auto_continue_state_modifier()
|
207
|
+
)
|
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
|
@@ -15,19 +15,19 @@ def _safe_import_tool(tool_name, module_path, get_tools_name=None, toolkit_class
|
|
15
15
|
"""Safely import a tool module and register available functions/classes."""
|
16
16
|
try:
|
17
17
|
module = __import__(f'alita_sdk.tools.{module_path}', fromlist=[''])
|
18
|
-
|
18
|
+
|
19
19
|
imported = {}
|
20
20
|
if get_tools_name and hasattr(module, get_tools_name):
|
21
21
|
imported['get_tools'] = getattr(module, get_tools_name)
|
22
|
-
|
22
|
+
|
23
23
|
if toolkit_class_name and hasattr(module, toolkit_class_name):
|
24
24
|
imported['toolkit_class'] = getattr(module, toolkit_class_name)
|
25
25
|
AVAILABLE_TOOLKITS[toolkit_class_name] = getattr(module, toolkit_class_name)
|
26
|
-
|
26
|
+
|
27
27
|
if imported:
|
28
28
|
AVAILABLE_TOOLS[tool_name] = imported
|
29
29
|
logger.debug(f"Successfully imported {tool_name}")
|
30
|
-
|
30
|
+
|
31
31
|
except Exception as e:
|
32
32
|
FAILED_IMPORTS[tool_name] = str(e)
|
33
33
|
logger.debug(f"Failed to import {tool_name}: {e}")
|
@@ -92,7 +92,7 @@ def get_tools(tools_list, alita, llm, store: Optional[BaseStore] = None, *args,
|
|
92
92
|
for tool_name in tool.get('settings', {}).get('selected_tools', []):
|
93
93
|
if isinstance(tool_name, str) and tool_name.startswith('_'):
|
94
94
|
raise ValueError(f"Tool name '{tool_name}' from toolkit '{tool.get('type', '')}' cannot start with '_'")
|
95
|
-
|
95
|
+
|
96
96
|
tool['settings']['alita'] = alita
|
97
97
|
tool['settings']['llm'] = llm
|
98
98
|
tool['settings']['store'] = store
|
@@ -107,10 +107,10 @@ def get_tools(tools_list, alita, llm, store: Optional[BaseStore] = None, *args,
|
|
107
107
|
try:
|
108
108
|
get_tools_func = AVAILABLE_TOOLS[tool_type]['get_tools']
|
109
109
|
tools.extend(get_tools_func(tool))
|
110
|
-
|
110
|
+
|
111
111
|
except Exception as e:
|
112
112
|
logger.error(f"Error getting tools for {tool_type}: {e}")
|
113
|
-
|
113
|
+
|
114
114
|
# Handle ADO repos special case (it might be requested as azure_devops_repos)
|
115
115
|
elif tool_type in ['ado_repos', 'azure_devops_repos'] and 'ado_repos' in AVAILABLE_TOOLS:
|
116
116
|
try:
|
@@ -118,31 +118,35 @@ def get_tools(tools_list, alita, llm, store: Optional[BaseStore] = None, *args,
|
|
118
118
|
tools.extend(get_tools_func(tool))
|
119
119
|
except Exception as e:
|
120
120
|
logger.error(f"Error getting ADO repos tools: {e}")
|
121
|
-
|
121
|
+
|
122
122
|
# Handle custom modules
|
123
123
|
elif tool.get("settings", {}).get("module"):
|
124
124
|
try:
|
125
125
|
settings = tool.get("settings", {})
|
126
126
|
mod = import_module(settings.pop("module"))
|
127
127
|
tkitclass = getattr(mod, settings.pop("class"))
|
128
|
-
|
128
|
+
#
|
129
|
+
get_toolkit_params = tool["settings"].copy()
|
130
|
+
get_toolkit_params["name"] = tool.get("name")
|
131
|
+
#
|
132
|
+
toolkit = tkitclass.get_toolkit(**get_toolkit_params)
|
129
133
|
tools.extend(toolkit.get_tools())
|
130
134
|
except Exception as e:
|
131
135
|
logger.error(f"Error in getting custom toolkit: {e}")
|
132
|
-
|
136
|
+
|
133
137
|
else:
|
134
138
|
# Tool not available or not found
|
135
139
|
if tool_type in FAILED_IMPORTS:
|
136
140
|
logger.warning(f"Tool '{tool_type}' is not available: {FAILED_IMPORTS[tool_type]}")
|
137
141
|
else:
|
138
142
|
logger.warning(f"Unknown tool type: {tool_type}")
|
139
|
-
|
143
|
+
|
140
144
|
return tools
|
141
145
|
|
142
146
|
def get_toolkits():
|
143
147
|
"""Return toolkit configurations for all successfully imported toolkits."""
|
144
148
|
toolkit_configs = []
|
145
|
-
|
149
|
+
|
146
150
|
for toolkit_name, toolkit_class in AVAILABLE_TOOLKITS.items():
|
147
151
|
try:
|
148
152
|
if hasattr(toolkit_class, 'toolkit_config_schema'):
|
@@ -151,7 +155,7 @@ def get_toolkits():
|
|
151
155
|
logger.debug(f"Toolkit {toolkit_name} does not have toolkit_config_schema method")
|
152
156
|
except Exception as e:
|
153
157
|
logger.error(f"Error getting config schema for {toolkit_name}: {e}")
|
154
|
-
|
158
|
+
|
155
159
|
logger.info(f"Successfully loaded {len(toolkit_configs)} toolkit configurations")
|
156
160
|
return toolkit_configs
|
157
161
|
|
@@ -172,13 +176,13 @@ def diagnose_imports():
|
|
172
176
|
available_count = len(AVAILABLE_TOOLS)
|
173
177
|
failed_count = len(FAILED_IMPORTS)
|
174
178
|
total_count = available_count + failed_count
|
175
|
-
|
179
|
+
|
176
180
|
print(f"=== Tool Import Diagnostic ===")
|
177
181
|
print(f"Total tools: {total_count}")
|
178
182
|
print(f"Successfully imported: {available_count}")
|
179
183
|
print(f"Failed imports: {failed_count}")
|
180
184
|
print(f"Success rate: {(available_count/total_count*100):.1f}%")
|
181
|
-
|
185
|
+
|
182
186
|
if AVAILABLE_TOOLS:
|
183
187
|
print(f"\n✅ Available tools ({len(AVAILABLE_TOOLS)}):")
|
184
188
|
for tool_name in sorted(AVAILABLE_TOOLS.keys()):
|
@@ -188,12 +192,12 @@ def diagnose_imports():
|
|
188
192
|
if 'toolkit_class' in AVAILABLE_TOOLS[tool_name]:
|
189
193
|
functions.append('toolkit')
|
190
194
|
print(f" - {tool_name}: {', '.join(functions)}")
|
191
|
-
|
195
|
+
|
192
196
|
if FAILED_IMPORTS:
|
193
197
|
print(f"\n❌ Failed imports ({len(FAILED_IMPORTS)}):")
|
194
198
|
for tool_name, error in FAILED_IMPORTS.items():
|
195
199
|
print(f" - {tool_name}: {error}")
|
196
|
-
|
200
|
+
|
197
201
|
if AVAILABLE_TOOLKITS:
|
198
202
|
print(f"\n🔧 Available toolkits ({len(AVAILABLE_TOOLKITS)}):")
|
199
203
|
for toolkit_name in sorted(AVAILABLE_TOOLKITS.keys()):
|
@@ -204,7 +208,7 @@ __all__ = [
|
|
204
208
|
'get_tools',
|
205
209
|
'get_toolkits',
|
206
210
|
'get_available_tools',
|
207
|
-
'get_failed_imports',
|
211
|
+
'get_failed_imports',
|
208
212
|
'get_available_toolkits',
|
209
213
|
'diagnose_imports'
|
210
214
|
]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: alita_sdk
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.179
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/ado_analyse/__init__.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/ado_analyse/api_wrapper.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/github_analyse/__init__.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/github_analyse/api_wrapper.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/gitlab_analyse/__init__.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/jira_analyse/__init__.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/community/analysis/jira_analyse/api_wrapper.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/chat_message_template.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/__init__.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/constants.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/document_loaders/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/interfaces/kwextractor.py
RENAMED
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/interfaces/llm_processor.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py
RENAMED
File without changes
|
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py
RENAMED
File without changes
|
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{alita_sdk-0.3.177 → alita_sdk-0.3.179}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|