alita-sdk 0.3.163__tar.gz → 0.3.164__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.163 → alita_sdk-0.3.164}/PKG-INFO +4 -3
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/assistant.py +2 -2
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/store_manager.py +22 -1
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/toolkits/tools.py +1 -1
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/__init__.py +6 -1
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/api_wrapper.py +2 -2
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/backend_reports_tool.py +31 -12
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/backend_tests_tool.py +14 -8
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/carrier_sdk.py +34 -18
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +1 -1
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/memory/__init__.py +7 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/postman/__init__.py +7 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/postman/api_wrapper.py +335 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk.egg-info/PKG-INFO +4 -3
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk.egg-info/requires.txt +3 -2
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/pyproject.toml +3 -3
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/LICENSE +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/README.md +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/analysis/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/analysis/ado_analyse/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/analysis/github_analyse/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/analysis/jira_analyse/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/browseruse/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/browseruse/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/baseclass.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/knowledge_gap_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/long_writer_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/planner_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/proofreader_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/thinking_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/tool_agents/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/tool_agents/crawl_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/tool_agents/search_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/tool_selector_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/utils/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/utils/parse_output.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/agents/writer_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/deep_research.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/examples/deep_example.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/examples/iterative_example.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/examples/report_plan_example.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/iterative_research.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/llm_config.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/main.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/tools/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/tools/crawl_website.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/tools/web_search.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/utils/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/utils/md_to_pdf.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/deep_researcher/utils/os.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/community/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/clients/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/clients/artifact.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/clients/client.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/clients/datasource.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/clients/prompt.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/constants.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/indexer.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/git.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/log.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/state.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/langchain/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/llms/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/llms/alita.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/llms/preloaded.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/toolkits/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/toolkits/application.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/toolkits/artifact.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/toolkits/datasource.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/toolkits/prompt.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/agent.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/application.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/artifact.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/datasource.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/echo.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/function.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/llm.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/loop.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/loop_output.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/prompt.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/router.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/tools/vectorstore.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/utils/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/utils/constants.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/utils/evaluate.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/utils/logging.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/utils/streamlit.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/runtime/utils/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/repos/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/azure_ai/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/base/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/base/tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/bitbucket/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/bitbucket/tools.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/browser/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/browser/crawler.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/browser/google_search_rag.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/browser/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/browser/wiki.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/tools.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/constants.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/models.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/chunkers/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/cloud/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/code/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/code/linter/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/code/sonar/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/confluence/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/confluence/loader.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/confluence/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/elastic/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/elitea_base.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/figma/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/figma/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/github/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/github/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/github/github_client.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/github/schemas.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/github/tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/github/tool_prompts.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/gitlab/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/gitlab/tools.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/gitlab/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/gmail/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/gmail/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/google_places/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/jira/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/jira/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/keycloak/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/llm/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/llm/img_utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/llm/llm_utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/localgit/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/localgit/local_git.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/localgit/tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ocr/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/ocr/text_detection.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/openapi/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/postman/postman_analysis.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pptx/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/qtest/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/qtest/tool.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/rally/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/rally/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/report_portal/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/salesforce/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/salesforce/model.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/servicenow/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/sharepoint/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/sharepoint/utils.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/sql/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/sql/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/sql/models.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/testio/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/testio/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/testrail/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/utils/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/utils/content_parser.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/xray/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/xray/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/yagmail/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr/rest_client.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk.egg-info/SOURCES.txt +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk.egg-info/dependency_links.txt +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk.egg-info/top_level.txt +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/setup.cfg +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/tests/test_ado_analysis.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/tests/test_github_analysis.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/tests/test_gitlab_analysis.py +0 -0
- {alita_sdk-0.3.163 → alita_sdk-0.3.164}/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.164
|
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>
|
6
6
|
License-Expression: Apache-2.0
|
@@ -31,8 +31,8 @@ Requires-Dist: langchain_community~=0.3.7; extra == "runtime"
|
|
31
31
|
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
|
-
Requires-Dist: langsmith
|
35
|
-
Requires-Dist: langgraph
|
34
|
+
Requires-Dist: langsmith>=0.3.45; extra == "runtime"
|
35
|
+
Requires-Dist: langgraph>=0.4.8; extra == "runtime"
|
36
36
|
Requires-Dist: langchain_chroma~=0.2.2; extra == "runtime"
|
37
37
|
Requires-Dist: langchain-unstructured~=0.1.6; extra == "runtime"
|
38
38
|
Requires-Dist: langchain-postgres~=0.0.13; extra == "runtime"
|
@@ -122,6 +122,7 @@ Requires-Dist: yagmail==0.15.293; extra == "tools"
|
|
122
122
|
Requires-Dist: pysnc==1.1.10; extra == "tools"
|
123
123
|
Requires-Dist: shortuuid==1.0.13; extra == "tools"
|
124
124
|
Requires-Dist: yarl==1.17.1; extra == "tools"
|
125
|
+
Requires-Dist: langmem==0.0.27; extra == "tools"
|
125
126
|
Provides-Extra: community
|
126
127
|
Requires-Dist: retry-extended==0.2.3; extra == "community"
|
127
128
|
Requires-Dist: browser-use==0.1.43; extra == "community"
|
@@ -61,8 +61,8 @@ class Assistant:
|
|
61
61
|
"Review toolkits configuration or use pipeline as master agent.")
|
62
62
|
|
63
63
|
# configure memory store if memory tool is defined
|
64
|
-
|
65
|
-
|
64
|
+
memory_tool = next((tool for tool in data['tools'] if tool['type'] == 'memory'), None)
|
65
|
+
self._configure_store(memory_tool)
|
66
66
|
|
67
67
|
# Lazy import to avoid circular dependency
|
68
68
|
from ..toolkits.tools import get_tools
|
@@ -1,6 +1,8 @@
|
|
1
1
|
import threading
|
2
2
|
import atexit
|
3
3
|
import logging
|
4
|
+
from urllib.parse import urlparse, unquote
|
5
|
+
|
4
6
|
from psycopg import Connection
|
5
7
|
from langgraph.store.postgres import PostgresStore
|
6
8
|
|
@@ -18,11 +20,30 @@ class StoreManager:
|
|
18
20
|
cls._instance._stores = {}
|
19
21
|
return cls._instance
|
20
22
|
|
23
|
+
def _parse_connection_string(self, conn_str: str) -> dict:
|
24
|
+
"""
|
25
|
+
Parse the connection string from SQLAlchemy style to args dict.
|
26
|
+
"""
|
27
|
+
if conn_str.startswith("postgresql+psycopg://"):
|
28
|
+
url = conn_str[len("postgresql+psycopg://"):]
|
29
|
+
|
30
|
+
parsed = urlparse(f"//{url}")
|
31
|
+
|
32
|
+
return {
|
33
|
+
"user": unquote(parsed.username) if parsed.username else None,
|
34
|
+
"password": unquote(parsed.password) if parsed.password else None,
|
35
|
+
"host": parsed.hostname,
|
36
|
+
"port": parsed.port,
|
37
|
+
"dbname": parsed.path.lstrip("/") if parsed.path else None
|
38
|
+
}
|
39
|
+
|
21
40
|
def get_store(self, conn_str: str) -> PostgresStore:
|
22
41
|
store = self._stores.get(conn_str)
|
23
42
|
if store is None:
|
24
43
|
logger.info(f"Creating new PostgresStore for connection: {conn_str}")
|
25
|
-
|
44
|
+
conn_params = self._parse_connection_string(conn_str)
|
45
|
+
conn_params.update({'autocommit': True, 'prepare_threshold': 0})
|
46
|
+
conn = Connection.connect(**conn_params)
|
26
47
|
store = PostgresStore(conn)
|
27
48
|
store.setup()
|
28
49
|
self._stores[conn_str] = store
|
@@ -95,7 +95,7 @@ def get_tools(tools_list: list, alita_client, llm, memory_store: BaseStore = Non
|
|
95
95
|
# Add community tools
|
96
96
|
tools += community_tools(tools_list, alita_client, llm)
|
97
97
|
# Add alita tools
|
98
|
-
tools += alita_tools(tools_list, alita_client, llm)
|
98
|
+
tools += alita_tools(tools_list, alita_client, llm, memory_store)
|
99
99
|
# Add MCP tools
|
100
100
|
tools += _mcp_tools(tools_list, alita_client)
|
101
101
|
|
@@ -1,5 +1,8 @@
|
|
1
1
|
import logging
|
2
2
|
from importlib import import_module
|
3
|
+
from typing import Optional
|
4
|
+
|
5
|
+
from langgraph.store.base import BaseStore
|
3
6
|
|
4
7
|
logger = logging.getLogger(__name__)
|
5
8
|
|
@@ -74,6 +77,7 @@ _safe_import_tool('carrier', 'carrier', 'get_tools', 'AlitaCarrierToolkit')
|
|
74
77
|
_safe_import_tool('ocr', 'ocr', 'get_tools', 'OCRToolkit')
|
75
78
|
_safe_import_tool('pptx', 'pptx', 'get_tools', 'PPTXToolkit')
|
76
79
|
_safe_import_tool('postman', 'postman', 'get_tools', 'PostmanToolkit')
|
80
|
+
_safe_import_tool('memory', 'memory', 'get_tools', 'MemoryToolkit')
|
77
81
|
_safe_import_tool('zephyr_squad', 'zephyr_squad', 'get_tools', 'ZephyrSquadToolkit')
|
78
82
|
|
79
83
|
# Log import summary
|
@@ -81,7 +85,7 @@ available_count = len(AVAILABLE_TOOLS)
|
|
81
85
|
total_attempted = len(AVAILABLE_TOOLS) + len(FAILED_IMPORTS)
|
82
86
|
logger.info(f"Tool imports completed: {available_count}/{total_attempted} successful")
|
83
87
|
|
84
|
-
def get_tools(tools_list, alita, llm, *args, **kwargs):
|
88
|
+
def get_tools(tools_list, alita, llm, store: Optional[BaseStore] = None, *args, **kwargs):
|
85
89
|
tools = []
|
86
90
|
for tool in tools_list:
|
87
91
|
# validate tool name syntax - it cannot be started with _
|
@@ -91,6 +95,7 @@ def get_tools(tools_list, alita, llm, *args, **kwargs):
|
|
91
95
|
|
92
96
|
tool['settings']['alita'] = alita
|
93
97
|
tool['settings']['llm'] = llm
|
98
|
+
tool['settings']['store'] = store
|
94
99
|
tool_type = tool['type']
|
95
100
|
|
96
101
|
# Check if tool is available and has get_tools function
|
@@ -80,8 +80,8 @@ class CarrierAPIWrapper(BaseModel):
|
|
80
80
|
def get_report_file_log(self, bucket: str, file_name: str):
|
81
81
|
return self._client.get_report_file_log(bucket, file_name)
|
82
82
|
|
83
|
-
def
|
84
|
-
return self._client.
|
83
|
+
def upload_file(self, bucket_name: str, file_name: str):
|
84
|
+
return self._client.upload_file(bucket_name, file_name)
|
85
85
|
|
86
86
|
def get_ui_reports_list(self) -> List[Dict[str, Any]]:
|
87
87
|
"""Get list of UI test reports from the Carrier platform."""
|
@@ -1,6 +1,8 @@
|
|
1
1
|
import logging
|
2
2
|
from datetime import datetime
|
3
3
|
import json
|
4
|
+
import zipfile
|
5
|
+
from itertools import islice
|
4
6
|
import traceback
|
5
7
|
from typing import Type
|
6
8
|
from langchain_core.tools import BaseTool, ToolException
|
@@ -78,14 +80,31 @@ class GetReportByIDTool(BaseTool):
|
|
78
80
|
|
79
81
|
def _run(self, report_id: str):
|
80
82
|
try:
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
83
|
+
report, test_log_file_path, errors_log_file_path = self.api_wrapper.get_report_file_name(report_id)
|
84
|
+
try:
|
85
|
+
with open(errors_log_file_path, mode='r') as f:
|
86
|
+
# Use islice to read up to 100 lines
|
87
|
+
errors = list(islice(f, 100))
|
88
|
+
report["errors_log"] = errors
|
89
|
+
# Archive with errors log file path
|
90
|
+
zip_file_path = f'/tmp/{report["build_id"]}_error_log_archive.zip'
|
91
|
+
|
92
|
+
# Create zip archive
|
93
|
+
with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
|
94
|
+
arcname = os.path.basename(errors_log_file_path)
|
95
|
+
zipf.write(errors_log_file_path, arcname)
|
96
|
+
|
97
|
+
bucket_name = report["name"].replace("_", "").replace(" ", "").lower()
|
98
|
+
self.api_wrapper.upload_file(bucket_name, zip_file_path)
|
99
|
+
report["link_to_errors_file"] = f"{self.api_wrapper.url.rstrip('/')}/api/v1/artifacts/artifact/default/" \
|
100
|
+
f"{self.api_wrapper.project_id}/{bucket_name}/" \
|
101
|
+
f"{zip_file_path.replace('/tmp/', '')}"
|
102
|
+
except Exception as e:
|
103
|
+
logger.error(e)
|
104
|
+
report["errors_log"] = []
|
105
|
+
report["link_to_errors_file"] = "link is not available"
|
106
|
+
|
107
|
+
return json.dumps(report)
|
89
108
|
except Exception:
|
90
109
|
stacktrace = traceback.format_exc()
|
91
110
|
logger.error(f"Error downloading reports: {stacktrace}")
|
@@ -164,17 +183,17 @@ class CreateExcelReportTool(BaseTool):
|
|
164
183
|
|
165
184
|
def _process_report_by_id(self, report_id, parameters):
|
166
185
|
"""Process report using report ID."""
|
167
|
-
report,
|
186
|
+
report, test_log_file_path, errors_log_file_path = self.api_wrapper.get_report_file_name(report_id)
|
168
187
|
carrier_report = f"{self.api_wrapper.url.rstrip('/')}/-/performance/backend/results?result_id={report_id}"
|
169
188
|
lg_type = report.get("lg_type")
|
170
189
|
excel_report_file_name = f'/tmp/reports_test_results_{report["build_id"]}_excel_report.xlsx'
|
171
190
|
bucket_name = report["name"].replace("_", "").replace(" ", "").lower()
|
172
191
|
|
173
|
-
result_stats_j = self._parse_report(
|
192
|
+
result_stats_j = self._parse_report(test_log_file_path, lg_type, parameters["think_time"], is_absolute_file_path=True)
|
174
193
|
calc_thr_j = self._calculate_thresholds(result_stats_j, parameters)
|
175
194
|
|
176
195
|
return self._generate_and_upload_report(
|
177
|
-
result_stats_j, carrier_report, calc_thr_j, parameters, excel_report_file_name, bucket_name,
|
196
|
+
result_stats_j, carrier_report, calc_thr_j, parameters, excel_report_file_name, bucket_name, test_log_file_path
|
178
197
|
)
|
179
198
|
|
180
199
|
def _process_report_by_file(self, bucket, file_name, parameters):
|
@@ -233,7 +252,7 @@ class CreateExcelReportTool(BaseTool):
|
|
233
252
|
excel_reporter_object.prepare_headers_and_titles()
|
234
253
|
excel_reporter_object.write_to_excel(result_stats_j, carrier_report, calc_thr_j, parameters["pct"])
|
235
254
|
|
236
|
-
self.api_wrapper.
|
255
|
+
self.api_wrapper.upload_file(bucket_name, excel_report_file_name)
|
237
256
|
|
238
257
|
# Clean up
|
239
258
|
self._cleanup(file_path, excel_report_file_name)
|
@@ -80,22 +80,28 @@ class RunTestByIDTool(BaseTool):
|
|
80
80
|
description: str = "Execute test plan from the Carrier platform."
|
81
81
|
args_schema: Type[BaseModel] = create_model(
|
82
82
|
"RunTestByIdInput",
|
83
|
-
test_id=(str, Field(default=
|
83
|
+
test_id=(str, Field(default=None, description="Test id to execute")),
|
84
|
+
name=(str, Field(default=None, description="Test name to execute")),
|
84
85
|
test_parameters=(dict, Field(default=None, description="Test parameters to override")),
|
85
86
|
)
|
86
87
|
|
87
|
-
def _run(self, test_id
|
88
|
+
def _run(self, test_id=None, name=None, test_parameters=None):
|
88
89
|
try:
|
90
|
+
if not test_id and not name:
|
91
|
+
return {"message": "Please provide test id or test name to start"}
|
92
|
+
|
89
93
|
# Fetch test data
|
90
94
|
tests = self.api_wrapper.get_tests_list()
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
95
|
+
|
96
|
+
# Find the test data based on test_id or name
|
97
|
+
test_data = next(
|
98
|
+
(test for test in tests if
|
99
|
+
(test_id and str(test["id"]) == test_id) or (name and str(test["name"]) == name)),
|
100
|
+
None
|
101
|
+
)
|
96
102
|
|
97
103
|
if not test_data:
|
98
|
-
raise ValueError(f"Test with id {test_id} not found.")
|
104
|
+
raise ValueError(f"Test with id {test_id} or name {name} not found.")
|
99
105
|
|
100
106
|
# Default test parameters
|
101
107
|
default_test_parameters = test_data.get("test_parameters", [])
|
@@ -128,15 +128,17 @@ class CarrierClient(BaseModel):
|
|
128
128
|
for file_name in file_list:
|
129
129
|
if file_name.startswith(report_archive_prefix) and "excel_report" not in file_name:
|
130
130
|
report_files_list.append(file_name)
|
131
|
-
|
131
|
+
test_log_file_path, errors_log_file_path = self.download_and_merge_reports(report_files_list, lg_type, bucket_name, extract_to)
|
132
132
|
|
133
|
-
return report_info,
|
133
|
+
return report_info, test_log_file_path, errors_log_file_path
|
134
134
|
|
135
|
-
def download_and_merge_reports(self, report_files_list: list, lg_type: str, bucket: str, extract_to: str = "/tmp")
|
135
|
+
def download_and_merge_reports(self, report_files_list: list, lg_type: str, bucket: str, extract_to: str = "/tmp"):
|
136
136
|
if lg_type == "jmeter":
|
137
137
|
summary_log_file_path = f"summary_{bucket}_jmeter.jtl"
|
138
|
+
error_log_file_path = f"error_{bucket}_jmeter.log"
|
138
139
|
else:
|
139
140
|
summary_log_file_path = f"summary_{bucket}_simulation.log"
|
141
|
+
error_log_file_path = f"error_{bucket}_simulation.log"
|
140
142
|
extracted_reports = []
|
141
143
|
for each in report_files_list:
|
142
144
|
endpoint = f"api/v1/artifacts/artifact/{self.credentials.project_id}/{bucket}/{each}"
|
@@ -158,10 +160,21 @@ class CarrierClient(BaseModel):
|
|
158
160
|
os.remove(local_file_path)
|
159
161
|
extracted_reports.append(extract_dir)
|
160
162
|
|
161
|
-
# get files from extract_dirs and merge to summary_log_file_path
|
163
|
+
# get files from extract_dirs and merge to summary_log_file_path and error_log_file_path
|
162
164
|
self.merge_log_files(summary_log_file_path, extracted_reports, lg_type)
|
165
|
+
try:
|
166
|
+
self.merge_error_files(error_log_file_path, extracted_reports)
|
167
|
+
except Exception as e:
|
168
|
+
logger.error(f"Failed to merge errors log: {e}")
|
169
|
+
|
170
|
+
# Clean up
|
171
|
+
for each in extracted_reports:
|
172
|
+
try:
|
173
|
+
shutil.rmtree(each)
|
174
|
+
except Exception as e:
|
175
|
+
logger.error(e)
|
163
176
|
|
164
|
-
return summary_log_file_path
|
177
|
+
return summary_log_file_path, error_log_file_path
|
165
178
|
|
166
179
|
def merge_log_files(self, summary_file, extracted_reports, lg_type):
|
167
180
|
with open(summary_file, mode='w') as summary:
|
@@ -178,11 +191,14 @@ class CarrierClient(BaseModel):
|
|
178
191
|
else:
|
179
192
|
# Skip the first line (header) for subsequent files
|
180
193
|
summary.writelines(lines[1:])
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
194
|
+
|
195
|
+
def merge_error_files(self, error_file, extracted_reports):
|
196
|
+
with open(error_file, mode='w') as summary_errors:
|
197
|
+
for i, log_file in enumerate(extracted_reports):
|
198
|
+
report_file = f"{log_file}/simulation-errors.log"
|
199
|
+
with open(report_file, mode='r') as f:
|
200
|
+
lines = f.readlines()
|
201
|
+
summary_errors.writelines(lines)
|
186
202
|
|
187
203
|
def get_report_file_log(self, bucket: str, file_name: str):
|
188
204
|
bucket_endpoint = f"api/v1/artifacts/artifact/default/{self.credentials.project_id}/{bucket}/{file_name}"
|
@@ -195,10 +211,10 @@ class CarrierClient(BaseModel):
|
|
195
211
|
f.write(response.content)
|
196
212
|
return file_path
|
197
213
|
|
198
|
-
def
|
214
|
+
def upload_file(self, bucket_name: str, file_name: str):
|
199
215
|
upload_url = f'api/v1/artifacts/artifacts/{self.credentials.project_id}/{bucket_name}'
|
200
216
|
full_url = f"{self.credentials.url.rstrip('/')}/{upload_url.lstrip('/')}"
|
201
|
-
files = {'file': open(
|
217
|
+
files = {'file': open(file_name, 'rb')}
|
202
218
|
headers = {'Authorization': f'bearer {self.credentials.token}'}
|
203
219
|
s3_config = {'integration_id': 1, 'is_local': False}
|
204
220
|
requests.post(full_url, params=s3_config, allow_redirects=True, files=files, headers=headers)
|
@@ -231,22 +247,22 @@ class CarrierClient(BaseModel):
|
|
231
247
|
def create_ui_test(self, json_body: Dict[str, Any]) -> Dict[str, Any]:
|
232
248
|
"""Create a new UI test."""
|
233
249
|
endpoint = f"api/v1/ui_performance/tests/{self.credentials.project_id}"
|
234
|
-
|
250
|
+
|
235
251
|
# Print full JSON POST body for debugging
|
236
252
|
print("=" * 60)
|
237
253
|
print("DEBUG: Full JSON POST body for create_ui_test:")
|
238
254
|
print("=" * 60)
|
239
255
|
print(json.dumps(json_body, indent=2))
|
240
256
|
print("=" * 60)
|
241
|
-
|
257
|
+
|
242
258
|
# Use multipart/form-data with data field containing the JSON body
|
243
259
|
form_data = {'data': json.dumps(json_body)}
|
244
|
-
|
260
|
+
|
245
261
|
# Temporarily remove Content-Type header to let requests set it for multipart
|
246
262
|
original_headers = self.session.headers.copy()
|
247
263
|
if 'Content-Type' in self.session.headers:
|
248
264
|
del self.session.headers['Content-Type']
|
249
|
-
|
265
|
+
|
250
266
|
try:
|
251
267
|
full_url = f"{self.credentials.url.rstrip('/')}/{endpoint.lstrip('/')}"
|
252
268
|
response = self.session.post(full_url, data=form_data)
|
@@ -265,7 +281,7 @@ class CarrierClient(BaseModel):
|
|
265
281
|
def cancel_ui_test(self, test_id: str) -> Dict[str, Any]:
|
266
282
|
"""Cancel a UI test by setting its status to Canceled."""
|
267
283
|
endpoint = f"api/v1/ui_performance/report_status/{self.credentials.project_id}/{test_id}"
|
268
|
-
|
284
|
+
|
269
285
|
cancel_body = {
|
270
286
|
"test_status": {
|
271
287
|
"status": "Canceled",
|
@@ -273,5 +289,5 @@ class CarrierClient(BaseModel):
|
|
273
289
|
"description": "Test was canceled"
|
274
290
|
}
|
275
291
|
}
|
276
|
-
|
292
|
+
|
277
293
|
return self.request('put', endpoint, json=cancel_body)
|
{alita_sdk-0.3.163 → alita_sdk-0.3.164}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py
RENAMED
@@ -148,7 +148,7 @@ class CreateUIExcelReportTool(BaseTool):
|
|
148
148
|
bucket_name = report_name.replace("_", "").replace(" ", "").lower()
|
149
149
|
excel_file_basename = os.path.basename(excel_file_name)
|
150
150
|
|
151
|
-
self.api_wrapper.
|
151
|
+
self.api_wrapper.upload_file(bucket_name, excel_file_name)
|
152
152
|
|
153
153
|
# Clean up temporary file
|
154
154
|
if os.path.exists(excel_file_name):
|
@@ -15,6 +15,13 @@ from pydantic import create_model, BaseModel, ConfigDict, Field, SecretStr
|
|
15
15
|
|
16
16
|
name = "memory"
|
17
17
|
|
18
|
+
def get_tools(tool):
|
19
|
+
return MemoryToolkit().get_toolkit(
|
20
|
+
namespace=tool['settings'].get('namespace', str(tool['id'])),
|
21
|
+
store=tool['settings'].get('store', None),
|
22
|
+
toolkit_name=tool.get('toolkit_name', '')
|
23
|
+
).get_tools()
|
24
|
+
|
18
25
|
class MemoryToolkit(BaseToolkit):
|
19
26
|
tools: List[BaseTool] = []
|
20
27
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
from typing import List, Literal, Optional, Type
|
2
|
+
import json
|
2
3
|
|
3
4
|
import requests
|
4
5
|
from langchain_core.tools import BaseToolkit, BaseTool
|
@@ -25,6 +26,8 @@ class PostmanAction(BaseAction):
|
|
25
26
|
return v.replace(' ', '')
|
26
27
|
|
27
28
|
def get_tools(tool):
|
29
|
+
# Parse environment_config if it's a string (from UI)
|
30
|
+
environment_config = tool['settings'].get('environment_config', {})
|
28
31
|
toolkit = PostmanToolkit.get_toolkit(
|
29
32
|
selected_tools=tool['settings'].get('selected_tools', []),
|
30
33
|
api_key=tool['settings'].get('api_key', None),
|
@@ -32,6 +35,7 @@ def get_tools(tool):
|
|
32
35
|
'base_url', 'https://api.getpostman.com'),
|
33
36
|
collection_id=tool['settings'].get('collection_id', None),
|
34
37
|
workspace_id=tool['settings'].get('workspace_id', None),
|
38
|
+
environment_config=environment_config,
|
35
39
|
toolkit_name=tool.get('toolkit_name')
|
36
40
|
)
|
37
41
|
return toolkit.tools
|
@@ -57,6 +61,9 @@ class PostmanToolkit(BaseToolkit):
|
|
57
61
|
'toolkit_name': True, 'max_toolkit_length': PostmanToolkit.toolkit_max_length})),
|
58
62
|
workspace_id=(str, Field(description="Default workspace ID",
|
59
63
|
default="", json_schema_extra={'configuration': True})),
|
64
|
+
environment_config=(dict, Field(
|
65
|
+
description="JSON configuration for request execution (auth headers, project IDs, base URLs, etc.)",
|
66
|
+
default={})),
|
60
67
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(
|
61
68
|
default=[], json_schema_extra={'args_schemas': selected_tools})),
|
62
69
|
__config__=ConfigDict(json_schema_extra={'metadata': {
|