alita-sdk 0.3.256__tar.gz → 0.3.258__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.256 → alita_sdk-0.3.258}/PKG-INFO +1 -1
- alita_sdk-0.3.258/alita_sdk/configurations/github.py +87 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/client.py +2 -2
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/__init__.py +2 -1
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/repos/__init__.py +3 -8
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -9
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -5
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -12
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -5
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/base_indexer_toolkit.py +2 -4
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/tools.py +1 -1
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/__init__.py +3 -1
- alita_sdk-0.3.258/alita_sdk/tools/chunkers/sematic/json_chunker.py +24 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/jira/api_wrapper.py +36 -36
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/qtest/__init__.py +1 -1
- alita_sdk-0.3.258/alita_sdk/tools/utils/available_tools_decorator.py +6 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/xray/__init__.py +3 -6
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +18 -13
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_essential/api_wrapper.py +40 -30
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_scale/api_wrapper.py +35 -31
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/PKG-INFO +1 -1
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/SOURCES.txt +2 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/pyproject.toml +1 -1
- alita_sdk-0.3.256/alita_sdk/configurations/github.py +0 -45
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/LICENSE +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/README.md +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/community/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/community/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/ado.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/azure_search.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/bigquery.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/bitbucket.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/confluence.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/delta_lake.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/embedding.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/figma.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/gitlab.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/jira.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/pgvector.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/postman.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/qtest.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/rally.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/service_now.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/slack.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/testrail.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/xray.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/zephyr.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/configurations/zephyr_enterprise.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/artifact.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/datasource.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/clients/prompt.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/assistant.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/constants.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaPDFLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaPowerPointLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/AlitaTextLoader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/indexer.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/langraph_agent.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/store_manager.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/git.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/log.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/state.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/langchain/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/llms/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/llms/preloaded.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/application.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/artifact.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/configurations.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/datasource.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/prompt.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/tools.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/agent.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/application.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/artifact.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/datasource.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/echo.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/function.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/llm.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/loop.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/loop_output.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/prompt.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/router.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/vectorstore.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/tools/vectorstore_base.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/constants.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/evaluate.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/logging.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/streamlit.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/toolkit_runtime.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/toolkit_utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/runtime/utils/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/delta_lake/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/delta_lake/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/delta_lake/schemas.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/aws/delta_lake/tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/azure_ai/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/base/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/base/tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/crawler.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/google_search_rag.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/browser/wiki.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/tools.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/carrier/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/constants.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/models.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/chunkers/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/linter/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/sonar/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/confluence/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/confluence/loader.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/confluence/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/elastic/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/elitea_base.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/figma/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/figma/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/github_client.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/schemas.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/github/tool_prompts.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab/tools.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gmail/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/gmail/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/bigquery/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/bigquery/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/bigquery/schemas.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google/bigquery/tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google_places/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/jira/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/keycloak/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/llm/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/llm/img_utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/llm/llm_utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/localgit/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/localgit/local_git.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/localgit/tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/memory/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/non_code_indexer_toolkit.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ocr/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/ocr/text_detection.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/openapi/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/postman/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/postman/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/postman/postman_analysis.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pptx/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/qtest/tool.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/rally/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/rally/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/report_portal/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/salesforce/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/salesforce/model.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/servicenow/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sharepoint/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sharepoint/utils.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/slack/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/slack/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sql/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sql/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/sql/models.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/testio/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/testio/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/testrail/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/utils/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/utils/content_parser.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/vector_adapters/VectorStoreAdapter.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/vector_adapters/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/xray/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/yagmail/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr/rest_client.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_essential/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_essential/client.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/dependency_links.txt +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/requires.txt +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/alita_sdk.egg-info/top_level.txt +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/setup.cfg +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/tests/test_ado_analysis.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/tests/test_github_analysis.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/tests/test_gitlab_analysis.py +0 -0
- {alita_sdk-0.3.256 → alita_sdk-0.3.258}/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.258
|
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
|
@@ -0,0 +1,87 @@
|
|
1
|
+
from typing import Optional
|
2
|
+
|
3
|
+
from pydantic import BaseModel, ConfigDict, Field, SecretStr, model_validator
|
4
|
+
|
5
|
+
|
6
|
+
class GithubConfiguration(BaseModel):
|
7
|
+
model_config = ConfigDict(
|
8
|
+
json_schema_extra={
|
9
|
+
"metadata": {
|
10
|
+
"label": "GitHub",
|
11
|
+
"icon_url": None,
|
12
|
+
"sections": {
|
13
|
+
"auth": {
|
14
|
+
"required": False,
|
15
|
+
"subsections": [
|
16
|
+
{
|
17
|
+
"name": "Token",
|
18
|
+
"fields": ["access_token"]
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"name": "Password",
|
22
|
+
"fields": ["username", "password"]
|
23
|
+
},
|
24
|
+
{
|
25
|
+
"name": "App private key",
|
26
|
+
"fields": ["app_id", "app_private_key"]
|
27
|
+
}
|
28
|
+
]
|
29
|
+
},
|
30
|
+
},
|
31
|
+
"section": "credentials",
|
32
|
+
"type": "github",
|
33
|
+
"categories": ["code repositories"],
|
34
|
+
"extra_categories": ["github", "git", "repository", "code", "version control"],
|
35
|
+
}
|
36
|
+
}
|
37
|
+
)
|
38
|
+
|
39
|
+
base_url: Optional[str] = Field(description="Base API URL", default="https://api.github.com")
|
40
|
+
app_id: Optional[str] = Field(description="Github APP ID", default=None)
|
41
|
+
app_private_key: Optional[SecretStr] = Field(description="Github APP private key", default=None)
|
42
|
+
|
43
|
+
access_token: Optional[SecretStr] = Field(description="Github Access Token", default=None)
|
44
|
+
|
45
|
+
username: Optional[str] = Field(description="Github Username", default=None)
|
46
|
+
password: Optional[SecretStr] = Field(description="Github Password", default=None)
|
47
|
+
|
48
|
+
@model_validator(mode='before')
|
49
|
+
@classmethod
|
50
|
+
def validate_auth_sections(cls, data):
|
51
|
+
if not isinstance(data, dict):
|
52
|
+
return data
|
53
|
+
|
54
|
+
has_token = bool(data.get('access_token') and str(data.get('access_token')).strip())
|
55
|
+
has_password = bool(
|
56
|
+
data.get('username') and str(data.get('username')).strip() and
|
57
|
+
data.get('password') and str(data.get('password')).strip()
|
58
|
+
)
|
59
|
+
has_app_key = bool(
|
60
|
+
data.get('app_id') and str(data.get('app_id')).strip() and
|
61
|
+
data.get('app_private_key') and str(data.get('app_private_key')).strip()
|
62
|
+
)
|
63
|
+
|
64
|
+
# If any method is partially configured, raise exception
|
65
|
+
if (
|
66
|
+
(data.get('username') and not data.get('password')) or
|
67
|
+
(data.get('password') and not data.get('username')) or
|
68
|
+
(data.get('app_id') and not data.get('app_private_key')) or
|
69
|
+
(data.get('app_private_key') and not data.get('app_id'))
|
70
|
+
):
|
71
|
+
raise ValueError(
|
72
|
+
"Authentication is misconfigured: both username and password, or both app_id and app_private_key, must be provided together."
|
73
|
+
)
|
74
|
+
|
75
|
+
# If all are missing, allow anonymous
|
76
|
+
if not (has_token or has_password or has_app_key):
|
77
|
+
return data
|
78
|
+
|
79
|
+
# If any method is fully configured
|
80
|
+
if has_token or has_password or has_app_key:
|
81
|
+
return data
|
82
|
+
|
83
|
+
raise ValueError(
|
84
|
+
"Authentication is misconfigured: provide either Token (access_token), "
|
85
|
+
"Password (username + password), App private key (app_id + app_private_key), "
|
86
|
+
"or leave all blank for anonymous access."
|
87
|
+
)
|
@@ -364,8 +364,8 @@ class AlitaClient:
|
|
364
364
|
return data.content
|
365
365
|
|
366
366
|
def delete_artifact(self, bucket_name, artifact_name):
|
367
|
-
url = f'{self.artifact_url}/{bucket_name}
|
368
|
-
data = requests.delete(url, headers=self.headers, verify=False)
|
367
|
+
url = f'{self.artifact_url}/{bucket_name}'
|
368
|
+
data = requests.delete(url, headers=self.headers, verify=False, params={'filename': quote(artifact_name)})
|
369
369
|
return self._process_requst(data)
|
370
370
|
|
371
371
|
def _prepare_messages(self, messages: list[BaseMessage]):
|
@@ -14,11 +14,12 @@ def get_tools(tool_type, tool):
|
|
14
14
|
"limit": tool['settings'].get('limit', 5),
|
15
15
|
"toolkit_name": tool.get('toolkit_name', ''),
|
16
16
|
# indexer settings
|
17
|
+
"alita": tool['settings'].get('alita', None),
|
17
18
|
"llm": tool['settings'].get('llm', None),
|
18
19
|
"pgvector_configuration": tool['settings'].get('pgvector_configuration', {}),
|
19
20
|
"collection_name": tool['toolkit_name'],
|
20
21
|
"doctype": 'doc',
|
21
|
-
"embedding_model": tool['settings'].get('
|
22
|
+
"embedding_model": tool['settings'].get('embedding_model'),
|
22
23
|
"vectorstore_type": "PGVector"
|
23
24
|
}
|
24
25
|
if tool_type == 'ado_plans':
|
@@ -23,10 +23,9 @@ def _get_toolkit(tool) -> BaseToolkit:
|
|
23
23
|
active_branch=tool['settings'].get('active_branch', ""),
|
24
24
|
toolkit_name=tool['settings'].get('toolkit_name', ""),
|
25
25
|
pgvector_configuration=tool['settings'].get('pgvector_configuration', {}),
|
26
|
-
collection_name=tool['toolkit_name'],
|
27
|
-
doctype='code',
|
28
26
|
embedding_model=tool['settings'].get('embedding_model'),
|
29
|
-
|
27
|
+
collection_name=tool['toolkit_name'],
|
28
|
+
alita=tool['settings'].get('alita', None),
|
30
29
|
)
|
31
30
|
|
32
31
|
def get_toolkit():
|
@@ -62,11 +61,6 @@ class AzureDevOpsReposToolkit(BaseToolkit):
|
|
62
61
|
"icon_url": "ado-repos-icon.svg",
|
63
62
|
"categories": ["code repositories"],
|
64
63
|
"extra_categories": ["code", "repository", "version control"],
|
65
|
-
# "configuration_group": {
|
66
|
-
# "name": "ado_repos",
|
67
|
-
# "label": "Azure DevOps Repositories",
|
68
|
-
# "icon_url": "ado-repos-icon.svg",
|
69
|
-
# }
|
70
64
|
}}}
|
71
65
|
)
|
72
66
|
|
@@ -95,6 +89,7 @@ class AzureDevOpsReposToolkit(BaseToolkit):
|
|
95
89
|
**kwargs,
|
96
90
|
# TODO use ado_repos_configuration fields
|
97
91
|
**kwargs['ado_repos_configuration'],
|
92
|
+
**kwargs['ado_repos_configuration']['ado_configuration'],
|
98
93
|
**(kwargs.get('pgvector_configuration') or {}),
|
99
94
|
}
|
100
95
|
azure_devops_repos_wrapper = ReposApiWrapper(**wrapper_payload)
|
@@ -251,15 +251,6 @@ class ReposApiWrapper(BaseCodeToolApiWrapper):
|
|
251
251
|
token: Optional[SecretStr]
|
252
252
|
_client: Optional[GitClient] = PrivateAttr()
|
253
253
|
|
254
|
-
llm: Optional[Any] = None
|
255
|
-
# Vector store configuration
|
256
|
-
connection_string: Optional[SecretStr] = None
|
257
|
-
collection_name: Optional[str] = None
|
258
|
-
doctype: Optional[str] = 'code'
|
259
|
-
embedding_model: Optional[str] = "HuggingFaceEmbeddings"
|
260
|
-
embedding_model_params: Optional[dict] = {"model_name": "sentence-transformers/all-MiniLM-L6-v2"}
|
261
|
-
vectorstore_type: Optional[str] = "PGVector"
|
262
|
-
|
263
254
|
class Config:
|
264
255
|
arbitrary_types_allowed = True
|
265
256
|
|
@@ -16,11 +16,6 @@ from pydantic.fields import FieldInfo as Field
|
|
16
16
|
from ..work_item import AzureDevOpsApiWrapper
|
17
17
|
from ...elitea_base import BaseVectorStoreToolApiWrapper, extend_with_vector_tools
|
18
18
|
|
19
|
-
try:
|
20
|
-
from alita_sdk.runtime.langchain.interfaces.llm_processor import get_embeddings
|
21
|
-
except ImportError:
|
22
|
-
from alita_sdk.langchain.interfaces.llm_processor import get_embeddings
|
23
|
-
|
24
19
|
logger = logging.getLogger(__name__)
|
25
20
|
|
26
21
|
# Input models for Test Plan operations
|
@@ -17,11 +17,6 @@ from pydantic.fields import Field
|
|
17
17
|
|
18
18
|
from ...elitea_base import BaseVectorStoreToolApiWrapper, extend_with_vector_tools
|
19
19
|
|
20
|
-
try:
|
21
|
-
from alita_sdk.runtime.langchain.interfaces.llm_processor import get_embeddings
|
22
|
-
except ImportError:
|
23
|
-
from alita_sdk.langchain.interfaces.llm_processor import get_embeddings
|
24
|
-
|
25
20
|
logger = logging.getLogger(__name__)
|
26
21
|
|
27
22
|
GetWikiInput = create_model(
|
@@ -68,13 +63,6 @@ class AzureDevOpsApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
68
63
|
_client: Optional[WikiClient] = PrivateAttr() # Private attribute for the wiki client
|
69
64
|
_core_client: Optional[CoreClient] = PrivateAttr() # Private attribute for the CoreClient client
|
70
65
|
|
71
|
-
llm: Any = None
|
72
|
-
connection_string: Optional[SecretStr] = None
|
73
|
-
collection_name: Optional[str] = None
|
74
|
-
embedding_model: Optional[str] = "HuggingFaceEmbeddings"
|
75
|
-
embedding_model_params: Optional[Dict[str, Any]] = {"model_name": "sentence-transformers/all-MiniLM-L6-v2"}
|
76
|
-
vectorstore_type: Optional[str] = "PGVector"
|
77
|
-
|
78
66
|
class Config:
|
79
67
|
arbitrary_types_allowed = True # Allow arbitrary types (e.g., WorkItemTrackingClient)
|
80
68
|
|
@@ -16,11 +16,6 @@ from pydantic.fields import Field
|
|
16
16
|
|
17
17
|
from alita_sdk.tools.non_code_indexer_toolkit import NonCodeIndexerToolkit
|
18
18
|
|
19
|
-
try:
|
20
|
-
from alita_sdk.runtime.langchain.interfaces.llm_processor import get_embeddings
|
21
|
-
except ImportError:
|
22
|
-
from alita_sdk.langchain.interfaces.llm_processor import get_embeddings
|
23
|
-
|
24
19
|
logger = logging.getLogger(__name__)
|
25
20
|
|
26
21
|
create_wi_field = """JSON of the work item fields to create in Azure DevOps, i.e.
|
@@ -5,7 +5,6 @@ from typing import Any, Optional, List, Literal, Dict, Generator
|
|
5
5
|
from langchain_core.documents import Document
|
6
6
|
from pydantic import create_model, Field, SecretStr
|
7
7
|
|
8
|
-
# from alita_sdk.runtime.langchain.interfaces.llm_processor import get_embeddings
|
9
8
|
from .utils.content_parser import process_content_by_type
|
10
9
|
from .vector_adapters.VectorStoreAdapter import VectorStoreAdapterFactory
|
11
10
|
from ..runtime.tools.vectorstore_base import VectorStoreWrapperBase
|
@@ -95,7 +94,6 @@ BaseIndexDataParams = create_model(
|
|
95
94
|
description="Optional step size for progress reporting during indexing")),
|
96
95
|
clean_index=(Optional[bool], Field(default=False,
|
97
96
|
description="Optional flag to enforce clean existing index before indexing new data")),
|
98
|
-
chunking_tool=(Literal[None,'markdown', 'statistical', 'proposal'], Field(description="Name of chunking tool", default=None)),
|
99
97
|
chunking_config=(Optional[dict], Field(description="Chunking tool configuration", default_factory=dict)),
|
100
98
|
)
|
101
99
|
|
@@ -162,7 +160,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
|
|
162
160
|
chunking_config = kwargs.get("chunking_config")
|
163
161
|
#
|
164
162
|
if clean_index:
|
165
|
-
self._clean_index()
|
163
|
+
self._clean_index(collection_suffix)
|
166
164
|
#
|
167
165
|
documents = self._base_loader(**kwargs)
|
168
166
|
documents = self._reduce_duplicates(documents, collection_suffix)
|
@@ -173,7 +171,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
|
|
173
171
|
return self._save_index(list(documents), collection_suffix=collection_suffix, progress_step=progress_step)
|
174
172
|
|
175
173
|
def _apply_loaders_chunkers(self, documents: Generator[Document, None, None], chunking_tool: str=None, chunking_config=None) -> Generator[Document, None, None]:
|
176
|
-
from alita_sdk.tools.chunkers import
|
174
|
+
from alita_sdk.tools.chunkers import __all__ as chunkers
|
177
175
|
|
178
176
|
if chunking_config is None:
|
179
177
|
chunking_config = {}
|
@@ -134,7 +134,7 @@ class ListBranchesTool(BaseTool):
|
|
134
134
|
name: str = "list_branches_in_repo"
|
135
135
|
description: str = """This tool is a wrapper for the Bitbucket API to fetch a list of all branches in the repository.
|
136
136
|
It will return the name of each branch. No input parameters are required."""
|
137
|
-
args_schema: Type[BaseModel] =
|
137
|
+
args_schema: Type[BaseModel] = create_model("NoInput")
|
138
138
|
|
139
139
|
def _run(self):
|
140
140
|
try:
|
@@ -2,13 +2,15 @@ from .code.codeparser import parse_code_files_for_db
|
|
2
2
|
from .sematic.statistical_chunker import statistical_chunker
|
3
3
|
from .sematic.markdown_chunker import markdown_chunker
|
4
4
|
from .sematic.proposal_chunker import proposal_chunker
|
5
|
+
from .sematic.json_chunker import json_chunker
|
5
6
|
from .models import StatisticalChunkerConfig, MarkdownChunkerConfig, ProposalChunkerConfig
|
6
7
|
|
7
8
|
__all__ = {
|
8
9
|
'code_parser': parse_code_files_for_db,
|
9
10
|
'statistical': statistical_chunker,
|
10
11
|
'markdown': markdown_chunker,
|
11
|
-
'proposal': proposal_chunker
|
12
|
+
'proposal': proposal_chunker,
|
13
|
+
'json': json_chunker
|
12
14
|
}
|
13
15
|
|
14
16
|
__confluence_chunkers__ = {
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import json
|
2
|
+
import logging
|
3
|
+
from typing import Generator
|
4
|
+
from langchain_text_splitters import RecursiveJsonSplitter
|
5
|
+
from langchain_core.documents import Document
|
6
|
+
|
7
|
+
def json_chunker(file_content_generator: Generator[Document, None, None], config: dict, *args, **kwargs) -> Generator[Document, None, None]:
|
8
|
+
max_tokens = config.get("max_tokens", 512)
|
9
|
+
for doc in file_content_generator:
|
10
|
+
try:
|
11
|
+
data_dict = json.loads(doc.page_content)
|
12
|
+
chunks = RecursiveJsonSplitter(max_chunk_size=max_tokens).split_json(json_data=data_dict, convert_lists=True)
|
13
|
+
if len(chunks) == 1:
|
14
|
+
yield doc
|
15
|
+
continue
|
16
|
+
chunk_id = 1
|
17
|
+
for chunk in chunks:
|
18
|
+
metadata = doc.metadata.copy()
|
19
|
+
metadata['chunk_id'] = chunk_id
|
20
|
+
chunk_id += 1
|
21
|
+
yield Document(page_content=json.dumps(chunk), metadata=metadata)
|
22
|
+
except Exception as e:
|
23
|
+
logging.error(f"Failed to chunk document: {e}")
|
24
|
+
yield doc
|
@@ -1237,11 +1237,11 @@ class JiraApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
1237
1237
|
jql = kwargs.get('jql')
|
1238
1238
|
fields_to_extract = kwargs.get('fields_to_extract')
|
1239
1239
|
fields_to_index = kwargs.get('fields_to_index')
|
1240
|
-
include_attachments = kwargs.get('include_attachments', False)
|
1241
1240
|
max_total_issues = kwargs.get('max_total_issues', 1000)
|
1242
1241
|
|
1243
|
-
# set values for skipped attachment
|
1242
|
+
# set values for skipped attachment extension
|
1244
1243
|
self._skipped_attachment_extensions = kwargs.get('skip_attachment_extensions', [])
|
1244
|
+
self._include_attachments = kwargs.get('include_attachments', False)
|
1245
1245
|
self._included_fields = fields_to_extract.copy() if fields_to_extract else []
|
1246
1246
|
|
1247
1247
|
try:
|
@@ -1252,7 +1252,7 @@ class JiraApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
1252
1252
|
if fields_to_extract:
|
1253
1253
|
fields.extend(fields_to_extract)
|
1254
1254
|
|
1255
|
-
if
|
1255
|
+
if self._include_attachments:
|
1256
1256
|
fields.append('attachment')
|
1257
1257
|
|
1258
1258
|
# Use provided JQL query or default to all issues
|
@@ -1292,36 +1292,36 @@ class JiraApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
1292
1292
|
|
1293
1293
|
issue_key = base_document.metadata.get('issue_key')
|
1294
1294
|
# get attachments content
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1295
|
+
if self._include_attachments:
|
1296
|
+
issue = self._client.issue(issue_key, fields="attachment")
|
1297
|
+
attachments = issue.get('fields', {}).get('attachment', [])
|
1298
|
+
for attachment in attachments:
|
1299
|
+
# get extension
|
1300
|
+
ext = f".{attachment['filename'].split('.')[-1].lower()}"
|
1301
|
+
if ext not in self._skipped_attachment_extensions:
|
1302
|
+
attachment_id = f"attach_{attachment['id']}"
|
1303
|
+
base_document.metadata.setdefault(IndexerKeywords.DEPENDENT_DOCS.value, []).append(attachment_id)
|
1304
|
+
try:
|
1305
|
+
attachment_content = self._client.get_attachment_content(attachment['id'])
|
1306
|
+
except Exception as e:
|
1307
|
+
logger.error(f"Failed to download attachment {attachment['filename']} for issue {issue_key}: {str(e)}")
|
1308
|
+
attachment_content = self._client.get(path=f"secure/attachment/{attachment['id']}/{attachment['filename']}", not_json_response=True)
|
1309
|
+
content = load_content_from_bytes(attachment_content, ext, llm=self.llm) if ext not in '.pdf' \
|
1310
|
+
else parse_file_content(file_content=attachment_content, file_name=attachment['filename'], llm=self.llm, is_capture_image=True)
|
1311
|
+
if not content:
|
1312
|
+
continue
|
1313
|
+
yield Document(page_content=content,
|
1314
|
+
metadata={
|
1315
|
+
'id': attachment_id,
|
1316
|
+
'issue_key': issue_key,
|
1317
|
+
'source': f"{self.base_url}/browse/{issue_key}",
|
1318
|
+
'filename': attachment['filename'],
|
1319
|
+
'created': attachment['created'],
|
1320
|
+
'mimeType': attachment['mimeType'],
|
1321
|
+
'author': attachment.get('author', {}).get('name'),
|
1322
|
+
IndexerKeywords.PARENT.value: base_document.metadata.get('id', None),
|
1323
|
+
'type': 'attachment',
|
1324
|
+
})
|
1325
1325
|
|
1326
1326
|
def _jql_get_tickets(self, jql, fields="*all", start=0, limit=None, expand=None, validate_query=None):
|
1327
1327
|
"""
|
@@ -1430,9 +1430,9 @@ class JiraApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
1430
1430
|
Field(description="Whether to include attachment content in indexing",
|
1431
1431
|
default=False)),
|
1432
1432
|
'max_total_issues': (Optional[int], Field(description="Maximum number of issues to index", default=1000)),
|
1433
|
-
'skip_attachment_extensions': (Optional[str], Field(
|
1434
|
-
description="
|
1435
|
-
default=
|
1433
|
+
'skip_attachment_extensions': (Optional[List[str]], Field(
|
1434
|
+
description="List of file extensions to skip when processing attachments: i.e. ['.png', '.jpg']",
|
1435
|
+
default=[])),
|
1436
1436
|
}
|
1437
1437
|
|
1438
1438
|
# def index_data(self,
|
@@ -35,7 +35,7 @@ class QtestToolkit(BaseToolkit):
|
|
35
35
|
name,
|
36
36
|
qtest_configuration=(Optional[QtestConfiguration], Field(description="QTest API token", json_schema_extra={
|
37
37
|
'configuration_types': ['qtest']})),
|
38
|
-
qtest_project_id=(int, Field(description="QTest project id", json_schema_extra={'toolkit_name': True,
|
38
|
+
qtest_project_id=(int, Field(default=None, description="QTest project id", json_schema_extra={'toolkit_name': True,
|
39
39
|
'max_toolkit_length': QtestToolkit.toolkit_max_length})),
|
40
40
|
selected_tools=(List[Literal[tuple(selected_tools)]],
|
41
41
|
Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
@@ -17,9 +17,7 @@ name = "xray_cloud"
|
|
17
17
|
def get_tools(tool):
|
18
18
|
return XrayToolkit().get_toolkit(
|
19
19
|
selected_tools=tool['settings'].get('selected_tools', []),
|
20
|
-
|
21
|
-
client_id=tool['settings'].get('client_id', None),
|
22
|
-
client_secret=tool['settings'].get('client_secret', None),
|
20
|
+
xray_configuration=tool['settings'].get('xray_configuration', {}),
|
23
21
|
limit=tool['settings'].get('limit', 20),
|
24
22
|
verify_ssl=tool['settings'].get('verify_ssl', True),
|
25
23
|
toolkit_name=tool.get('toolkit_name'),
|
@@ -29,7 +27,6 @@ def get_tools(tool):
|
|
29
27
|
pgvector_configuration=tool['settings'].get('pgvector_configuration', {}),
|
30
28
|
embedding_model=tool['settings'].get('embedding_model'),
|
31
29
|
collection_name=str(tool['toolkit_name']),
|
32
|
-
vectorstore_type="PGVector"
|
33
30
|
).get_tools()
|
34
31
|
|
35
32
|
|
@@ -44,7 +41,7 @@ class XrayToolkit(BaseToolkit):
|
|
44
41
|
return create_model(
|
45
42
|
name,
|
46
43
|
limit=(Optional[int], Field(description="Limit", default=100)),
|
47
|
-
xray_configuration=(
|
44
|
+
xray_configuration=(XrayConfiguration, Field(description="Xray Configuration", json_schema_extra={'configuration_types': ['xray']})),
|
48
45
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(default=None,
|
49
46
|
description="PgVector Configuration",
|
50
47
|
json_schema_extra={
|
@@ -71,7 +68,7 @@ class XrayToolkit(BaseToolkit):
|
|
71
68
|
wrapper_payload = {
|
72
69
|
**kwargs,
|
73
70
|
# Use xray_configuration fields
|
74
|
-
**kwargs.get('xray_configuration'
|
71
|
+
**(kwargs.get('xray_configuration') or {}),
|
75
72
|
**(kwargs.get('pgvector_configuration') or {}),
|
76
73
|
}
|
77
74
|
xray_api_wrapper = XrayApiWrapper(**wrapper_payload)
|
@@ -1,14 +1,13 @@
|
|
1
1
|
import logging
|
2
|
-
from
|
3
|
-
from operator import ifloordiv
|
4
|
-
from typing import Optional, List, Generator
|
2
|
+
from typing import Optional, List, Generator, Literal
|
5
3
|
|
6
4
|
from langchain_core.tools import ToolException
|
7
5
|
from pydantic import create_model, model_validator, PrivateAttr, Field, SecretStr
|
8
6
|
|
9
7
|
from langchain_core.documents import Document
|
10
8
|
from .zephyr_enterprise import ZephyrClient
|
11
|
-
from ..
|
9
|
+
from ..non_code_indexer_toolkit import NonCodeIndexerToolkit
|
10
|
+
from ..utils.available_tools_decorator import extend_with_parent_available_tools
|
12
11
|
|
13
12
|
logger = logging.getLogger(__name__)
|
14
13
|
|
@@ -23,7 +22,7 @@ zql_description = """
|
|
23
22
|
"folder=\"TestToolkit\"", "name~\"TestToolkit5\"
|
24
23
|
"""
|
25
24
|
|
26
|
-
class ZephyrApiWrapper(
|
25
|
+
class ZephyrApiWrapper(NonCodeIndexerToolkit):
|
27
26
|
base_url: str
|
28
27
|
token: SecretStr
|
29
28
|
_client: Optional[ZephyrClient] = PrivateAttr()
|
@@ -34,7 +33,7 @@ class ZephyrApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
34
33
|
base_url = values.get('base_url')
|
35
34
|
token = values.get('token')
|
36
35
|
cls._client = ZephyrClient(base_url=base_url, token=token)
|
37
|
-
return values
|
36
|
+
return super().validate_toolkit(values)
|
38
37
|
|
39
38
|
def get_test_case(self, testcase_id: str):
|
40
39
|
|
@@ -153,7 +152,8 @@ class ZephyrApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
153
152
|
Returns a list of fields for index_data args schema.
|
154
153
|
"""
|
155
154
|
return {
|
156
|
-
"zql": (str, Field(description=zql_description, examples=["folder=\"TestToolkit\"", "name~\"TestToolkit5\""]))
|
155
|
+
"zql": (str, Field(description=zql_description, examples=["folder=\"TestToolkit\"", "name~\"TestToolkit5\""])),
|
156
|
+
'chunking_tool': (Literal['json'], Field(description="Name of chunking tool", default='json'))
|
157
157
|
}
|
158
158
|
|
159
159
|
def _base_loader(self, zql: str, **kwargs) -> Generator[Document, None, None]:
|
@@ -166,12 +166,17 @@ class ZephyrApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
166
166
|
}
|
167
167
|
yield Document(page_content='', metadata=metadata)
|
168
168
|
|
169
|
-
def
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
169
|
+
def _extend_data(self, documents: Generator[Document, None, None]) -> Generator[Document, None, None]:
|
170
|
+
for document in documents:
|
171
|
+
try:
|
172
|
+
id = document.metadata['id']
|
173
|
+
test_case_content = self.get_test_case_steps(id)
|
174
|
+
document.page_content = test_case_content
|
175
|
+
except Exception as e:
|
176
|
+
logging.error(f"Failed to process document: {e}")
|
177
|
+
yield document
|
178
|
+
|
179
|
+
@extend_with_parent_available_tools
|
175
180
|
def get_available_tools(self):
|
176
181
|
return [
|
177
182
|
{
|