alita-sdk 0.3.553__tar.gz → 0.3.558__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.
Potentially problematic release.
This version of alita-sdk might be problematic. Click here for more details.
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/PKG-INFO +6 -6
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/langraph_agent.py +2 -2
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/tools.py +15 -0
- alita_sdk-0.3.558/alita_sdk/runtime/tools/data_analysis.py +183 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/__init__.py +1 -1
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab/api_wrapper.py +84 -36
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/__init__.py +8 -3
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/api_wrapper.py +9 -23
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/PKG-INFO +6 -6
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/SOURCES.txt +1 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/requires.txt +5 -5
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/pyproject.toml +2 -2
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/LICENSE +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/README.md +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/__main__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent/default.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent_executor.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent_loader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agent_ui.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/agents.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/callbacks.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/cli.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/config.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/cleanup.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/manager.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/message.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/strategies.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/context/token_estimation.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/formatting.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/input_handler.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/inventory.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/mcp_loader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/toolkit.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/toolkit_loader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/approval.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/filesystem.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/planning.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/cli/tools/terminal.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/config.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/enrichment.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/extractors.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/ingestion.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/knowledge_graph.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/base.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/csharp_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/go_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/html_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/java_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/javascript_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/kotlin_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/markdown_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/python_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/rust_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/swift_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/text_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/parsers/yaml_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/patterns/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/patterns/ast_adapter.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/patterns/loader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/patterns/registry.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/presets.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/retrieval.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/toolkit.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/toolkit_utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/inventory/visualize.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/community/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/ado.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/azure_search.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/bigquery.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/bitbucket.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/browser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/carrier.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/confluence.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/delta_lake.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/embedding.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/figma.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/github.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/gitlab.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/google_places.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/jira.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/openapi.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/pgvector.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/postman.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/qtest.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/rally.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/report_portal.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/salesforce.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/service_now.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/sharepoint.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/slack.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/sonar.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/sql.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/testio.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/testrail.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/xray.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/zephyr.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/zephyr_enterprise.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/configurations/zephyr_essential.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/artifact.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/datasource.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/mcp_discovery.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/mcp_manager.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/prompt.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/clients/sandbox_client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/agents/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/agents/xml_chat.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/assistant.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/chat_message_template.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/constants.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaBDDScenariosLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaCSVLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaConfluenceLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaDirectoryLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaDocxMammothLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaExcelLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaGitRepoLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaImageLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLinesLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaJSONLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaJiraLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaMarkdownLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaPDFLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaPowerPointLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaPythonLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaQtestLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaTableLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/AlitaTextLoader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/ImageParser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/constants.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/document_loaders/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/indexer.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/kwextractor.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/llm_processor.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/loaders.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/interfaces/splitters.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/mixedAgentParser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/mixedAgentRenderes.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/retrievers/VectorstoreRetriever.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/retrievers/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/store_manager.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_exceptions.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/bdd_parser/parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/git.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/log.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/quota.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/state.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/tools/vector.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/langchain/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/llms/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/llms/preloaded.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/models/mcp_models.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/callbacks.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/discovery.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/executor.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/input_builder.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/models.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/registry.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/skills/skill_runner.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/application.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/artifact.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/configurations.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/datasource.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/mcp.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/planning.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/prompt.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/skill_router.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/subgraph.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/toolkits/vectorstore.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/agent.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/application.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/artifact.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/datasource.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/echo.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/function.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/graph.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/image_generation.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/indexer_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/llm.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/loop.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/loop_output.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/mcp_inspect_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/mcp_remote_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/mcp_server_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/pgvector_search.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/planning/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/planning/models.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/planning/wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/prompt.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/router.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/sandbox.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/skill_router.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/vectorstore.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/tools/vectorstore_base.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/AlitaCallback.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/constants.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/evaluate.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/logging.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/mcp_client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/mcp_oauth.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/mcp_sse_client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/mcp_tools_discovery.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/save_dataframe.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/streamlit.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/toolkit_runtime.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/toolkit_utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/runtime/utils/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/repos/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/repos/repos_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/test_plan/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/wiki/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/wiki/ado_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/work_item/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ado/work_item/ado_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/advanced_jira_mining/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/delta_lake/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/delta_lake/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/delta_lake/schemas.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/aws/delta_lake/tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/azure_ai/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/azure_ai/search/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/azure_ai/search/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/base/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/base/tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/base_indexer_toolkit.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/bitbucket/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/bitbucket/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/bitbucket/bitbucket_constants.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/bitbucket/cloud_api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/crawler.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/duck_duck_go_search.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/google_search_rag.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/browser/wiki.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/backend_reports_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/backend_tests_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/cancel_ui_test_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/carrier_sdk.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/create_ui_excel_report_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/create_ui_test_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/excel_reporter.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/lighthouse_excel_reporter.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/run_ui_test_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/tickets_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/tools.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/ui_reports_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/update_ui_test_schedule_tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/carrier/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/codeparser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/constants.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_c.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cpp.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_cs.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_go.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_hs.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_java.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_js.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_kt.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_py.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rb.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_registry.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_rs.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/code/treesitter/treesitter_ts.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/models.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/base.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/json_chunker.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/markdown_chunker.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/proposal_chunker.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/sematic/statistical_chunker.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/universal_chunker.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/chunkers/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/aws/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/aws/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/azure/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/azure/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/gcp/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/gcp/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/k8s/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/cloud/k8s/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/linter/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/linter/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/loaders/codesearcher.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/sonar/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code/sonar/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/code_indexer_toolkit.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/confluence/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/confluence/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/confluence/loader.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/confluence/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/custom_open_api/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/custom_open_api/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/elastic/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/elastic/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/elitea_base.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/figma/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/figma/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/github_client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/graphql_client_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/schemas.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/github/tool_prompts.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab/tools.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab_org/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gitlab_org/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gmail/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gmail/gmail_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/gmail/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/bigquery/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/bigquery/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/bigquery/schemas.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google/bigquery/tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google_places/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/google_places/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/jira/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/jira/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/keycloak/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/keycloak/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/llm/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/llm/img_utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/llm/llm_utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/localgit/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/localgit/local_git.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/localgit/tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/memory/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/non_code_indexer_toolkit.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ocr/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ocr/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/ocr/text_detection.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/openapi/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/openapi/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/openapi/tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/errors.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/executor/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/executor/code_environment.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/executor/code_executor.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/generator/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/generator/base.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/generator/code_cleaning.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/generator/code_validator.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/prompts.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/serializer.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/dataframe/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/base_stats.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/descriptive.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/hypothesis_testing.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pandas/statsmodels/regression.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/postman/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/postman/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/postman/postman_analysis.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pptx/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/pptx/pptx_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/qtest/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/qtest/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/qtest/tool.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/rally/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/rally/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/report_portal/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/report_portal/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/report_portal/report_portal_client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/salesforce/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/salesforce/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/salesforce/model.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/servicenow/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/servicenow/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/servicenow/servicenow_client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sharepoint/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sharepoint/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sharepoint/authorization_helper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sharepoint/utils.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/slack/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/slack/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sql/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sql/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/sql/models.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/testio/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/testio/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/testrail/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/testrail/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/utils/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/utils/available_tools_decorator.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/utils/content_parser.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/utils/text_operations.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/vector_adapters/VectorStoreAdapter.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/vector_adapters/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/xray/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/xray/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/yagmail/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/yagmail/yagmail_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr/Zephyr.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr/rest_client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_enterprise/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_enterprise/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_essential/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_essential/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_essential/client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_scale/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_scale/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_squad/__init__.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_squad/api_wrapper.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/dependency_links.txt +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/entry_points.txt +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/alita_sdk.egg-info/top_level.txt +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/setup.cfg +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/tests/test_ado_analysis.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/tests/test_github_analysis.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/tests/test_gitlab_analysis.py +0 -0
- {alita_sdk-0.3.553 → alita_sdk-0.3.558}/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.558
|
|
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 <lifedj27@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -68,11 +68,11 @@ Requires-Dist: pytesseract==0.3.13; extra == "runtime"
|
|
|
68
68
|
Requires-Dist: markdown==3.5.1; extra == "runtime"
|
|
69
69
|
Requires-Dist: beautifulsoup4==4.12.2; extra == "runtime"
|
|
70
70
|
Requires-Dist: charset_normalizer==3.3.2; extra == "runtime"
|
|
71
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc
|
|
72
|
-
Requires-Dist: opentelemetry_api
|
|
73
|
-
Requires-Dist: opentelemetry_instrumentation
|
|
74
|
-
Requires-Dist: grpcio_status
|
|
75
|
-
Requires-Dist: protobuf
|
|
71
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.25.0; extra == "runtime"
|
|
72
|
+
Requires-Dist: opentelemetry_api>=1.25.0; extra == "runtime"
|
|
73
|
+
Requires-Dist: opentelemetry_instrumentation>=0.46b0; extra == "runtime"
|
|
74
|
+
Requires-Dist: grpcio_status>=1.63.0rc1; extra == "runtime"
|
|
75
|
+
Requires-Dist: protobuf>=4.25.7; extra == "runtime"
|
|
76
76
|
Requires-Dist: langchain-sandbox>=0.0.6; extra == "runtime"
|
|
77
77
|
Provides-Extra: tools
|
|
78
78
|
Requires-Dist: dulwich==0.21.6; extra == "tools"
|
|
@@ -967,7 +967,7 @@ class LangGraphAgentRunnable(CompiledStateGraph):
|
|
|
967
967
|
(msg.content for msg in reversed(messages)
|
|
968
968
|
if not isinstance(msg, HumanMessage)),
|
|
969
969
|
messages[-1].content
|
|
970
|
-
)
|
|
970
|
+
) if messages else result.get('output')
|
|
971
971
|
elif printer_output is not None:
|
|
972
972
|
# Printer node has output (interrupted state)
|
|
973
973
|
output = printer_output
|
|
@@ -981,7 +981,7 @@ class LangGraphAgentRunnable(CompiledStateGraph):
|
|
|
981
981
|
)
|
|
982
982
|
except Exception:
|
|
983
983
|
# Fallback: try to get last value or last message
|
|
984
|
-
output = list(result.values())[-1] if result else
|
|
984
|
+
output = str(list(result.values())[-1]) if result else 'Output is undefined'
|
|
985
985
|
config_state = self.get_state(config)
|
|
986
986
|
is_execution_finished = not config_state.next
|
|
987
987
|
if is_execution_finished:
|
|
@@ -18,6 +18,7 @@ from .skill_router import SkillRouterToolkit
|
|
|
18
18
|
from ..tools.mcp_server_tool import McpServerTool
|
|
19
19
|
from ..tools.sandbox import SandboxToolkit
|
|
20
20
|
from ..tools.image_generation import ImageGenerationToolkit
|
|
21
|
+
from ..tools.data_analysis import DataAnalysisToolkit
|
|
21
22
|
# Import community tools
|
|
22
23
|
from ...community import get_toolkits as community_toolkits, get_tools as community_tools
|
|
23
24
|
from ...tools.memory import MemoryToolkit
|
|
@@ -36,6 +37,7 @@ def get_toolkits():
|
|
|
36
37
|
VectorStoreToolkit.toolkit_config_schema(),
|
|
37
38
|
SandboxToolkit.toolkit_config_schema(),
|
|
38
39
|
ImageGenerationToolkit.toolkit_config_schema(),
|
|
40
|
+
DataAnalysisToolkit.toolkit_config_schema(),
|
|
39
41
|
McpToolkit.toolkit_config_schema(),
|
|
40
42
|
SkillRouterToolkit.toolkit_config_schema()
|
|
41
43
|
]
|
|
@@ -135,6 +137,19 @@ def get_tools(tools_list: list, alita_client=None, llm=None, memory_store: BaseS
|
|
|
135
137
|
pgvector_configuration=tool.get('settings', {}).get('pgvector_configuration'),
|
|
136
138
|
conversation_id=conversation_id,
|
|
137
139
|
).get_tools()
|
|
140
|
+
elif tool['name'] == 'data_analysis':
|
|
141
|
+
# Data Analysis internal tool - uses conversation attachment bucket
|
|
142
|
+
settings = tool.get('settings', {})
|
|
143
|
+
bucket_name = settings.get('bucket_name')
|
|
144
|
+
if bucket_name:
|
|
145
|
+
tools += DataAnalysisToolkit.get_toolkit(
|
|
146
|
+
alita_client=alita_client,
|
|
147
|
+
llm=llm,
|
|
148
|
+
bucket_name=bucket_name,
|
|
149
|
+
).get_tools()
|
|
150
|
+
else:
|
|
151
|
+
logger.warning("Data Analysis internal tool requested "
|
|
152
|
+
"but no bucket_name provided in settings")
|
|
138
153
|
elif tool['type'] == 'artifact':
|
|
139
154
|
tool_handled = True
|
|
140
155
|
toolkit_tools = ArtifactToolkit.get_toolkit(
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Data Analysis internal tool for Alita SDK.
|
|
3
|
+
|
|
4
|
+
This tool provides Pandas-based data analysis capabilities as an internal tool,
|
|
5
|
+
accessible through the "Enable internal tools" dropdown menu.
|
|
6
|
+
|
|
7
|
+
It uses the conversation attachment bucket for file storage, providing seamless
|
|
8
|
+
integration with drag-and-drop file uploads in chat.
|
|
9
|
+
"""
|
|
10
|
+
import logging
|
|
11
|
+
from typing import Any, List, Literal, Optional, Type
|
|
12
|
+
|
|
13
|
+
from langchain_core.tools import BaseTool, BaseToolkit
|
|
14
|
+
from pydantic import BaseModel, ConfigDict, create_model, Field
|
|
15
|
+
|
|
16
|
+
logger = logging.getLogger(__name__)
|
|
17
|
+
|
|
18
|
+
name = "data_analysis"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def get_tools(tools_list: list, alita_client=None, llm=None, memory_store=None):
|
|
22
|
+
"""
|
|
23
|
+
Get data analysis tools for the provided tool configurations.
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
tools_list: List of tool configurations
|
|
27
|
+
alita_client: Alita client instance (required for data analysis)
|
|
28
|
+
llm: LLM client instance (required for code generation)
|
|
29
|
+
memory_store: Optional memory store instance (unused)
|
|
30
|
+
|
|
31
|
+
Returns:
|
|
32
|
+
List of data analysis tools
|
|
33
|
+
"""
|
|
34
|
+
all_tools = []
|
|
35
|
+
|
|
36
|
+
for tool in tools_list:
|
|
37
|
+
if (tool.get('type') == 'data_analysis' or
|
|
38
|
+
tool.get('toolkit_name') == 'data_analysis'):
|
|
39
|
+
try:
|
|
40
|
+
if not alita_client:
|
|
41
|
+
logger.error("Alita client is required for data analysis tools")
|
|
42
|
+
continue
|
|
43
|
+
|
|
44
|
+
settings = tool.get('settings', {})
|
|
45
|
+
bucket_name = settings.get('bucket_name')
|
|
46
|
+
|
|
47
|
+
if not bucket_name:
|
|
48
|
+
logger.error("bucket_name is required for data analysis tools")
|
|
49
|
+
continue
|
|
50
|
+
|
|
51
|
+
toolkit_instance = DataAnalysisToolkit.get_toolkit(
|
|
52
|
+
alita_client=alita_client,
|
|
53
|
+
llm=llm,
|
|
54
|
+
bucket_name=bucket_name,
|
|
55
|
+
toolkit_name=tool.get('toolkit_name', '')
|
|
56
|
+
)
|
|
57
|
+
all_tools.extend(toolkit_instance.get_tools())
|
|
58
|
+
except Exception as e:
|
|
59
|
+
logger.error(f"Error in data analysis toolkit get_tools: {e}")
|
|
60
|
+
logger.error(f"Tool config: {tool}")
|
|
61
|
+
raise
|
|
62
|
+
|
|
63
|
+
return all_tools
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class DataAnalysisToolkit(BaseToolkit):
|
|
67
|
+
"""
|
|
68
|
+
Data Analysis toolkit providing Pandas-based data analysis capabilities.
|
|
69
|
+
|
|
70
|
+
This is an internal tool that uses the conversation attachment bucket
|
|
71
|
+
for file storage, enabling seamless integration with chat file uploads.
|
|
72
|
+
"""
|
|
73
|
+
tools: List[BaseTool] = []
|
|
74
|
+
|
|
75
|
+
@staticmethod
|
|
76
|
+
def toolkit_config_schema() -> Type[BaseModel]:
|
|
77
|
+
"""Get the configuration schema for the data analysis toolkit."""
|
|
78
|
+
# Import PandasWrapper to get available tools schema
|
|
79
|
+
from alita_sdk.tools.pandas.api_wrapper import PandasWrapper
|
|
80
|
+
|
|
81
|
+
selected_tools = {
|
|
82
|
+
x['name']: x['args_schema'].model_json_schema()
|
|
83
|
+
for x in PandasWrapper.model_construct().get_available_tools()
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return create_model(
|
|
87
|
+
'data_analysis',
|
|
88
|
+
bucket_name=(
|
|
89
|
+
Optional[str],
|
|
90
|
+
Field(
|
|
91
|
+
default=None,
|
|
92
|
+
title="Bucket name",
|
|
93
|
+
description="Bucket where files are stored (auto-injected from conversation)"
|
|
94
|
+
)
|
|
95
|
+
),
|
|
96
|
+
selected_tools=(
|
|
97
|
+
List[Literal[tuple(selected_tools)]],
|
|
98
|
+
Field(
|
|
99
|
+
default=[],
|
|
100
|
+
json_schema_extra={'args_schemas': selected_tools}
|
|
101
|
+
)
|
|
102
|
+
),
|
|
103
|
+
__config__=ConfigDict(json_schema_extra={
|
|
104
|
+
'metadata': {
|
|
105
|
+
"label": "Data Analysis",
|
|
106
|
+
"icon_url": "data-analysis.svg",
|
|
107
|
+
"hidden": True, # Hidden from regular toolkit menu
|
|
108
|
+
"categories": ["internal_tool"],
|
|
109
|
+
"extra_categories": ["data analysis", "pandas", "dataframes", "data science"],
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
@classmethod
|
|
115
|
+
def get_toolkit(
|
|
116
|
+
cls,
|
|
117
|
+
alita_client=None,
|
|
118
|
+
llm=None,
|
|
119
|
+
bucket_name: str = None,
|
|
120
|
+
toolkit_name: Optional[str] = None,
|
|
121
|
+
selected_tools: Optional[List[str]] = None,
|
|
122
|
+
**kwargs
|
|
123
|
+
):
|
|
124
|
+
"""
|
|
125
|
+
Get toolkit with data analysis tools.
|
|
126
|
+
|
|
127
|
+
Args:
|
|
128
|
+
alita_client: Alita client instance (required)
|
|
129
|
+
llm: LLM for code generation (optional, uses alita_client.llm if not provided)
|
|
130
|
+
bucket_name: Conversation attachment bucket (required)
|
|
131
|
+
toolkit_name: Optional name prefix for tools
|
|
132
|
+
selected_tools: Optional list of tool names to include (default: all)
|
|
133
|
+
**kwargs: Additional arguments
|
|
134
|
+
|
|
135
|
+
Returns:
|
|
136
|
+
DataAnalysisToolkit instance with configured tools
|
|
137
|
+
|
|
138
|
+
Raises:
|
|
139
|
+
ValueError: If alita_client or bucket_name is not provided
|
|
140
|
+
"""
|
|
141
|
+
if not alita_client:
|
|
142
|
+
raise ValueError("Alita client is required for data analysis")
|
|
143
|
+
|
|
144
|
+
if not bucket_name:
|
|
145
|
+
raise ValueError("bucket_name is required for data analysis (should be conversation attachment bucket)")
|
|
146
|
+
|
|
147
|
+
# Import the PandasWrapper from existing toolkit
|
|
148
|
+
from alita_sdk.tools.pandas.api_wrapper import PandasWrapper
|
|
149
|
+
from alita_sdk.tools.base.tool import BaseAction
|
|
150
|
+
|
|
151
|
+
# Create wrapper with conversation bucket
|
|
152
|
+
wrapper = PandasWrapper(
|
|
153
|
+
alita=alita_client,
|
|
154
|
+
llm=llm,
|
|
155
|
+
bucket_name=bucket_name
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
# Get tools from wrapper
|
|
159
|
+
available_tools = wrapper.get_available_tools()
|
|
160
|
+
tools = []
|
|
161
|
+
|
|
162
|
+
for tool in available_tools:
|
|
163
|
+
# Filter by selected_tools if provided
|
|
164
|
+
if selected_tools and tool["name"] not in selected_tools:
|
|
165
|
+
continue
|
|
166
|
+
|
|
167
|
+
description = tool["description"]
|
|
168
|
+
if toolkit_name:
|
|
169
|
+
description = f"Toolkit: {toolkit_name}\n{description}"
|
|
170
|
+
description = description[:1000]
|
|
171
|
+
|
|
172
|
+
tools.append(BaseAction(
|
|
173
|
+
api_wrapper=wrapper,
|
|
174
|
+
name=tool["name"],
|
|
175
|
+
description=description,
|
|
176
|
+
args_schema=tool["args_schema"],
|
|
177
|
+
metadata={"toolkit_name": toolkit_name} if toolkit_name else {}
|
|
178
|
+
))
|
|
179
|
+
|
|
180
|
+
return cls(tools=tools)
|
|
181
|
+
|
|
182
|
+
def get_tools(self):
|
|
183
|
+
return self.tools
|
|
@@ -102,7 +102,7 @@ _safe_import_tool('k8s', 'cloud.k8s', None, 'KubernetesToolkit')
|
|
|
102
102
|
_safe_import_tool('elastic', 'elastic', None, 'ElasticToolkit')
|
|
103
103
|
_safe_import_tool('keycloak', 'keycloak', None, 'KeycloakToolkit')
|
|
104
104
|
_safe_import_tool('localgit', 'localgit', None, 'AlitaLocalGitToolkit')
|
|
105
|
-
|
|
105
|
+
# pandas toolkit removed - use Data Analysis internal tool instead
|
|
106
106
|
_safe_import_tool('azure_search', 'azure_ai.search', 'get_tools', 'AzureSearchToolkit')
|
|
107
107
|
_safe_import_tool('figma', 'figma', 'get_tools', 'FigmaToolkit')
|
|
108
108
|
_safe_import_tool('salesforce', 'salesforce', 'get_tools', 'SalesforceToolkit')
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import fnmatch
|
|
3
3
|
from typing import Any, Dict, List, Optional
|
|
4
4
|
|
|
5
|
+
from gitlab import GitlabGetError
|
|
5
6
|
from langchain_core.tools import ToolException
|
|
6
7
|
from pydantic import create_model, Field, model_validator, SecretStr, PrivateAttr
|
|
7
8
|
|
|
@@ -9,6 +10,7 @@ from ..code_indexer_toolkit import CodeIndexerToolkit
|
|
|
9
10
|
from ..utils.available_tools_decorator import extend_with_parent_available_tools
|
|
10
11
|
from ..elitea_base import extend_with_file_operations, BaseCodeToolApiWrapper
|
|
11
12
|
from ..utils.content_parser import parse_file_content
|
|
13
|
+
from .utils import get_position
|
|
12
14
|
|
|
13
15
|
AppendFileModel = create_model(
|
|
14
16
|
"AppendFileModel",
|
|
@@ -35,7 +37,7 @@ ReadFileModel = create_model(
|
|
|
35
37
|
)
|
|
36
38
|
UpdateFileModel = create_model(
|
|
37
39
|
"UpdateFileModel",
|
|
38
|
-
file_query=(str, Field(description="The file query string")),
|
|
40
|
+
file_query=(str, Field(description="The file query string containing file path on first line, followed by OLD/NEW markers. Format: file_path\\nOLD <<<< old content >>>> OLD\\nNEW <<<< new content >>>> NEW")),
|
|
39
41
|
branch=(str, Field(description="The branch to update the file in")),
|
|
40
42
|
)
|
|
41
43
|
CommentOnIssueModel = create_model(
|
|
@@ -90,9 +92,9 @@ GetPRChangesModel = create_model(
|
|
|
90
92
|
CreatePRChangeCommentModel = create_model(
|
|
91
93
|
"CreatePRChangeCommentModel",
|
|
92
94
|
pr_number=(int, Field(description="GitLab Merge Request (Pull Request) number")),
|
|
93
|
-
file_path=(str, Field(description="File path of the changed file")),
|
|
94
|
-
line_number=(int, Field(description="Line
|
|
95
|
-
comment=(str, Field(description="Comment content")),
|
|
95
|
+
file_path=(str, Field(description="File path of the changed file as shown in the diff")),
|
|
96
|
+
line_number=(int, Field(description="Line index (0-based) from the diff output. Use get_pr_changes first to see the diff and identify the correct line index to comment on.")),
|
|
97
|
+
comment=(str, Field(description="Comment content to add to the specific line")),
|
|
96
98
|
)
|
|
97
99
|
GetCommitsModel = create_model(
|
|
98
100
|
"GetCommitsModel",
|
|
@@ -235,6 +237,8 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
|
|
|
235
237
|
Returns:
|
|
236
238
|
File content as string
|
|
237
239
|
"""
|
|
240
|
+
# Default to active branch if branch is None, consistent with other methods
|
|
241
|
+
branch = branch if branch else self._active_branch
|
|
238
242
|
return self.read_file(file_path, branch)
|
|
239
243
|
|
|
240
244
|
def create_branch(self, branch_name: str) -> str:
|
|
@@ -323,6 +327,8 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
|
|
|
323
327
|
return "Unable to make comment due to error:\n" + str(e)
|
|
324
328
|
|
|
325
329
|
def create_file(self, file_path: str, file_contents: str, branch: str) -> str:
|
|
330
|
+
# Default to active branch if branch is None
|
|
331
|
+
branch = branch if branch else self._active_branch
|
|
326
332
|
try:
|
|
327
333
|
self.set_active_branch(branch)
|
|
328
334
|
self.repo_instance.files.get(file_path, branch)
|
|
@@ -339,6 +345,8 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
|
|
|
339
345
|
return "Created file " + file_path
|
|
340
346
|
|
|
341
347
|
def read_file(self, file_path: str, branch: str) -> str:
|
|
348
|
+
# Default to active branch if branch is None
|
|
349
|
+
branch = branch if branch else self._active_branch
|
|
342
350
|
self.set_active_branch(branch)
|
|
343
351
|
file = self.repo_instance.files.get(file_path, branch)
|
|
344
352
|
return parse_file_content(file_name=file_path,
|
|
@@ -406,43 +414,52 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
|
|
|
406
414
|
raise ToolException(f"Unable to write file {file_path}: {str(e)}")
|
|
407
415
|
|
|
408
416
|
def update_file(self, file_query: str, branch: str) -> str:
|
|
417
|
+
"""
|
|
418
|
+
Update file using edit_file functionality.
|
|
419
|
+
|
|
420
|
+
This method now delegates to edit_file which uses OLD/NEW markers.
|
|
421
|
+
For backwards compatibility, it extracts the file_path from the query.
|
|
422
|
+
|
|
423
|
+
Expected format:
|
|
424
|
+
file_path
|
|
425
|
+
OLD <<<<
|
|
426
|
+
old content
|
|
427
|
+
>>>> OLD
|
|
428
|
+
NEW <<<<
|
|
429
|
+
new content
|
|
430
|
+
>>>> NEW
|
|
431
|
+
|
|
432
|
+
Args:
|
|
433
|
+
file_query: File path on first line, followed by OLD/NEW markers
|
|
434
|
+
branch: Branch to update the file in
|
|
435
|
+
|
|
436
|
+
Returns:
|
|
437
|
+
Success or error message
|
|
438
|
+
"""
|
|
409
439
|
if branch == self.branch:
|
|
410
440
|
return (
|
|
411
|
-
"You're attempting to commit
|
|
441
|
+
"You're attempting to commit directly "
|
|
412
442
|
f"to the {self.branch} branch, which is protected. "
|
|
413
443
|
"Please create a new branch and try again."
|
|
414
444
|
)
|
|
415
445
|
try:
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
updated_file_content = file_content
|
|
420
|
-
for old, new in self.extract_old_new_pairs(file_query):
|
|
421
|
-
if not old.strip():
|
|
422
|
-
continue
|
|
423
|
-
updated_file_content = updated_file_content.replace(old, new)
|
|
424
|
-
|
|
425
|
-
if file_content == updated_file_content:
|
|
446
|
+
# Extract file path from first line
|
|
447
|
+
lines = file_query.split("\n", 1)
|
|
448
|
+
if len(lines) < 2:
|
|
426
449
|
return (
|
|
427
|
-
"
|
|
428
|
-
"
|
|
429
|
-
"
|
|
450
|
+
"Invalid file_query format. Expected:\n"
|
|
451
|
+
"file_path\n"
|
|
452
|
+
"OLD <<<< old content >>>> OLD\n"
|
|
453
|
+
"NEW <<<< new content >>>> NEW"
|
|
430
454
|
)
|
|
431
455
|
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
"file_path": file_path,
|
|
439
|
-
"content": updated_file_content,
|
|
440
|
-
}
|
|
441
|
-
],
|
|
442
|
-
}
|
|
456
|
+
file_path = lines[0].strip()
|
|
457
|
+
edit_content = lines[1] if len(lines) > 1 else ""
|
|
458
|
+
|
|
459
|
+
# Delegate to edit_file method with appropriate commit message
|
|
460
|
+
commit_message = f"Update {file_path}"
|
|
461
|
+
return self.edit_file(file_path, edit_content, branch, commit_message)
|
|
443
462
|
|
|
444
|
-
self.repo_instance.commits.create(commit)
|
|
445
|
-
return "Updated file " + file_path
|
|
446
463
|
except Exception as e:
|
|
447
464
|
return "Unable to update file due to error:\n" + str(e)
|
|
448
465
|
|
|
@@ -494,10 +511,41 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
|
|
|
494
511
|
return res
|
|
495
512
|
|
|
496
513
|
def create_pr_change_comment(self, pr_number: int, file_path: str, line_number: int, comment: str) -> str:
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
514
|
+
"""
|
|
515
|
+
Create a comment on a specific line in a pull request (merge request) change in GitLab.
|
|
516
|
+
|
|
517
|
+
This method adds an inline comment to a specific line in the diff of a merge request.
|
|
518
|
+
The line_number parameter refers to the line index in the diff output (0-based),
|
|
519
|
+
not the line number in the original file.
|
|
520
|
+
|
|
521
|
+
**Important**: Use get_pr_changes first to see the diff and identify the correct
|
|
522
|
+
line index for commenting.
|
|
523
|
+
|
|
524
|
+
Parameters:
|
|
525
|
+
pr_number: GitLab Merge Request number
|
|
526
|
+
file_path: Path to the file being commented on (as shown in the diff)
|
|
527
|
+
line_number: Line index from the diff (0-based index)
|
|
528
|
+
comment: Comment text to add
|
|
529
|
+
|
|
530
|
+
Returns:
|
|
531
|
+
Success message or error description
|
|
532
|
+
"""
|
|
533
|
+
try:
|
|
534
|
+
mr = self.repo_instance.mergerequests.get(pr_number)
|
|
535
|
+
except GitlabGetError as e:
|
|
536
|
+
if e.response_code == 404:
|
|
537
|
+
raise ToolException(f"Merge request number {pr_number} wasn't found: {e}")
|
|
538
|
+
raise ToolException(f"Error retrieving merge request {pr_number}: {e}")
|
|
539
|
+
|
|
540
|
+
try:
|
|
541
|
+
# Calculate proper position with SHA references and line mappings
|
|
542
|
+
position = get_position(file_path=file_path, line_number=line_number, mr=mr)
|
|
543
|
+
|
|
544
|
+
# Create discussion with the comment
|
|
545
|
+
mr.discussions.create({"body": comment, "position": position})
|
|
546
|
+
return f"Comment added successfully to line {line_number} in {file_path} on MR #{pr_number}"
|
|
547
|
+
except Exception as e:
|
|
548
|
+
raise ToolException(f"Failed to create comment on MR #{pr_number}: {e}")
|
|
501
549
|
|
|
502
550
|
def get_commits(self, sha: Optional[str] = None, path: Optional[str] = None, since: Optional[str] = None, until: Optional[str] = None, author: Optional[str] = None):
|
|
503
551
|
params = {}
|
|
@@ -620,7 +668,7 @@ class GitLabAPIWrapper(CodeIndexerToolkit):
|
|
|
620
668
|
{
|
|
621
669
|
"name": "create_pr_change_comment",
|
|
622
670
|
"ref": self.create_pr_change_comment,
|
|
623
|
-
"description": "Create
|
|
671
|
+
"description": self.create_pr_change_comment.__doc__ or "Create an inline comment on a specific line in a pull request change. Use get_pr_changes first to see the diff and identify the line index for commenting. The line_number is a 0-based index from the diff output, not the file line number.",
|
|
624
672
|
"args_schema": CreatePRChangeCommentModel,
|
|
625
673
|
},
|
|
626
674
|
{
|
|
@@ -29,9 +29,14 @@ class PandasToolkit(BaseToolkit):
|
|
|
29
29
|
name,
|
|
30
30
|
bucket_name=(str, Field(default=None, title="Bucket name", description="Bucket where the content file is stored")),
|
|
31
31
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
|
32
|
-
__config__=ConfigDict(json_schema_extra={'metadata': {
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
__config__=ConfigDict(json_schema_extra={'metadata': {
|
|
33
|
+
"label": "Pandas (Deprecated)",
|
|
34
|
+
"icon_url": "pandas-icon.svg",
|
|
35
|
+
"categories": ["analysis"],
|
|
36
|
+
"deprecated": True,
|
|
37
|
+
"deprecation_message": "This toolkit is deprecated. Use the 'Data Analysis' internal tool instead. Enable it via the 'Internal Tools' menu in chat.",
|
|
38
|
+
"extra_categories": ["data science", "data manipulation", "dataframes"]
|
|
39
|
+
}})
|
|
35
40
|
)
|
|
36
41
|
|
|
37
42
|
@classmethod
|
|
@@ -158,21 +158,17 @@ class PandasWrapper(BaseToolApiWrapper):
|
|
|
158
158
|
f"Retrying Code Generation ({attempts}/{max_retries})..."
|
|
159
159
|
)
|
|
160
160
|
|
|
161
|
-
def
|
|
162
|
-
"""Analyze
|
|
161
|
+
def analyse_data(self, query: str, filename: str) -> str:
|
|
162
|
+
"""Analyze data from a file using natural language query. Supports CSV, Excel, Parquet, JSON, and other common data formats."""
|
|
163
163
|
df = self._get_dataframe(filename)
|
|
164
164
|
code = self.generate_code_with_retries(df, query)
|
|
165
|
-
self._log_tool_event(tool_name="
|
|
165
|
+
self._log_tool_event(tool_name="analyse_data",
|
|
166
166
|
message=f"Executing generated code... \n\n```python\n{code}\n```")
|
|
167
167
|
try:
|
|
168
168
|
result = self.execute_code(df, code)
|
|
169
169
|
except Exception as e:
|
|
170
170
|
logger.error(f"Code execution failed: {format_exc()}")
|
|
171
|
-
self._log_tool_event(tool_name="process_query",
|
|
172
|
-
message=f"Executing generated code... \n\n```python\n{code}\n```")
|
|
173
171
|
raise
|
|
174
|
-
self._log_tool_event(tool_name="process_query",
|
|
175
|
-
message=f"Executing generated code... \n\n```python\n{code}\n```")
|
|
176
172
|
if result.get("df") is not None:
|
|
177
173
|
df = result.pop("df")
|
|
178
174
|
# Not saving dataframe to artifact repo for now
|
|
@@ -253,23 +249,13 @@ class PandasWrapper(BaseToolApiWrapper):
|
|
|
253
249
|
def get_available_tools(self):
|
|
254
250
|
return [
|
|
255
251
|
{
|
|
256
|
-
"name": "
|
|
257
|
-
"ref": self.
|
|
258
|
-
"description": self.
|
|
259
|
-
"args_schema": create_model(
|
|
260
|
-
"ProcessQueryModel",
|
|
261
|
-
query=(str, Field(description="Task to solve")),
|
|
262
|
-
filename=(str, Field(description="File to be processed"))
|
|
263
|
-
)
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
"name": "save_dataframe",
|
|
267
|
-
"ref": self.save_dataframe,
|
|
268
|
-
"description": self.save_dataframe.__doc__,
|
|
252
|
+
"name": "analyse_data",
|
|
253
|
+
"ref": self.analyse_data,
|
|
254
|
+
"description": self.analyse_data.__doc__,
|
|
269
255
|
"args_schema": create_model(
|
|
270
|
-
"
|
|
271
|
-
|
|
272
|
-
|
|
256
|
+
"AnalyseDataModel",
|
|
257
|
+
query=(str, Field(description="Natural language query describing what analysis to perform on the data")),
|
|
258
|
+
filename=(str, Field(description="Name of the file to analyze (e.g., 'data.csv', 'report.xlsx')"))
|
|
273
259
|
)
|
|
274
260
|
}
|
|
275
261
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alita_sdk
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.558
|
|
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 <lifedj27@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -68,11 +68,11 @@ Requires-Dist: pytesseract==0.3.13; extra == "runtime"
|
|
|
68
68
|
Requires-Dist: markdown==3.5.1; extra == "runtime"
|
|
69
69
|
Requires-Dist: beautifulsoup4==4.12.2; extra == "runtime"
|
|
70
70
|
Requires-Dist: charset_normalizer==3.3.2; extra == "runtime"
|
|
71
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc
|
|
72
|
-
Requires-Dist: opentelemetry_api
|
|
73
|
-
Requires-Dist: opentelemetry_instrumentation
|
|
74
|
-
Requires-Dist: grpcio_status
|
|
75
|
-
Requires-Dist: protobuf
|
|
71
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.25.0; extra == "runtime"
|
|
72
|
+
Requires-Dist: opentelemetry_api>=1.25.0; extra == "runtime"
|
|
73
|
+
Requires-Dist: opentelemetry_instrumentation>=0.46b0; extra == "runtime"
|
|
74
|
+
Requires-Dist: grpcio_status>=1.63.0rc1; extra == "runtime"
|
|
75
|
+
Requires-Dist: protobuf>=4.25.7; extra == "runtime"
|
|
76
76
|
Requires-Dist: langchain-sandbox>=0.0.6; extra == "runtime"
|
|
77
77
|
Provides-Extra: tools
|
|
78
78
|
Requires-Dist: dulwich==0.21.6; extra == "tools"
|
|
@@ -190,6 +190,7 @@ alita_sdk/runtime/tools/__init__.py
|
|
|
190
190
|
alita_sdk/runtime/tools/agent.py
|
|
191
191
|
alita_sdk/runtime/tools/application.py
|
|
192
192
|
alita_sdk/runtime/tools/artifact.py
|
|
193
|
+
alita_sdk/runtime/tools/data_analysis.py
|
|
193
194
|
alita_sdk/runtime/tools/datasource.py
|
|
194
195
|
alita_sdk/runtime/tools/echo.py
|
|
195
196
|
alita_sdk/runtime/tools/function.py
|
|
@@ -80,11 +80,11 @@ pytesseract==0.3.13
|
|
|
80
80
|
markdown==3.5.1
|
|
81
81
|
beautifulsoup4==4.12.2
|
|
82
82
|
charset_normalizer==3.3.2
|
|
83
|
-
opentelemetry-exporter-otlp-proto-grpc
|
|
84
|
-
opentelemetry_api
|
|
85
|
-
opentelemetry_instrumentation
|
|
86
|
-
grpcio_status
|
|
87
|
-
protobuf
|
|
83
|
+
opentelemetry-exporter-otlp-proto-grpc>=1.25.0
|
|
84
|
+
opentelemetry_api>=1.25.0
|
|
85
|
+
opentelemetry_instrumentation>=0.46b0
|
|
86
|
+
grpcio_status>=1.63.0rc1
|
|
87
|
+
protobuf>=4.25.7
|
|
88
88
|
langchain-sandbox>=0.0.6
|
|
89
89
|
|
|
90
90
|
[tools]
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "alita_sdk"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.558"
|
|
8
8
|
description = "SDK for building langchain agents using resources from Alita"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -32,7 +32,7 @@ name = "Artem Dubrovskiy"
|
|
|
32
32
|
email = "ad13box@gmail.com"
|
|
33
33
|
|
|
34
34
|
[project.optional-dependencies]
|
|
35
|
-
runtime = [ "streamlit>=1.28.0", "langchain_core>=0.3.76,<0.4.0", "langchain>=0.3.22,<0.4.0", "langchain_community>=0.3.7,<0.4.0", "langchain-openai>=0.3.0,<0.4.0", "langchain-anthropic>=0.3.20,<0.4.0", "anthropic>=0.57.0", "langgraph>=0.4.8,<0.5", "langgraph-prebuilt==0.5.2", "langgraph-checkpoint-sqlite~=2.0.0", "langgraph-checkpoint-postgres==2.0.21", "langsmith>=0.3.45", "langchain_chroma>=0.2.2,<0.3.0", "chromadb==0.5.20", "pgvector==0.2.5", "langchain-unstructured~=0.1.6", "langchain-postgres~=0.0.13", "unstructured[local-inference]==0.16.23", "unstructured_pytesseract==0.3.13", "unstructured_inference==0.8.7", "python-pptx==1.0.2", "python-docx==1.1.2", "openpyxl==3.1.2", "pypdf==4.3.1", "pdfminer.six==20240706", "pdf2image==1.16.3", "pikepdf==8.7.1", "docx2txt==0.8", "mammoth==1.9.0", "reportlab==4.2.5", "svglib==1.5.1", "cairocffi==1.7.1", "rlpycairo==0.3.0", "keybert==0.8.3", "sentence-transformers==2.7.0", "gensim==4.3.3", "scipy==1.13.1", "opencv-python==4.11.0.86", "pytesseract==0.3.13", "markdown==3.5.1", "beautifulsoup4==4.12.2", "charset_normalizer==3.3.2", "opentelemetry-exporter-otlp-proto-grpc
|
|
35
|
+
runtime = [ "streamlit>=1.28.0", "langchain_core>=0.3.76,<0.4.0", "langchain>=0.3.22,<0.4.0", "langchain_community>=0.3.7,<0.4.0", "langchain-openai>=0.3.0,<0.4.0", "langchain-anthropic>=0.3.20,<0.4.0", "anthropic>=0.57.0", "langgraph>=0.4.8,<0.5", "langgraph-prebuilt==0.5.2", "langgraph-checkpoint-sqlite~=2.0.0", "langgraph-checkpoint-postgres==2.0.21", "langsmith>=0.3.45", "langchain_chroma>=0.2.2,<0.3.0", "chromadb==0.5.20", "pgvector==0.2.5", "langchain-unstructured~=0.1.6", "langchain-postgres~=0.0.13", "unstructured[local-inference]==0.16.23", "unstructured_pytesseract==0.3.13", "unstructured_inference==0.8.7", "python-pptx==1.0.2", "python-docx==1.1.2", "openpyxl==3.1.2", "pypdf==4.3.1", "pdfminer.six==20240706", "pdf2image==1.16.3", "pikepdf==8.7.1", "docx2txt==0.8", "mammoth==1.9.0", "reportlab==4.2.5", "svglib==1.5.1", "cairocffi==1.7.1", "rlpycairo==0.3.0", "keybert==0.8.3", "sentence-transformers==2.7.0", "gensim==4.3.3", "scipy==1.13.1", "opencv-python==4.11.0.86", "pytesseract==0.3.13", "markdown==3.5.1", "beautifulsoup4==4.12.2", "charset_normalizer==3.3.2", "opentelemetry-exporter-otlp-proto-grpc>=1.25.0", "opentelemetry_api>=1.25.0", "opentelemetry_instrumentation>=0.46b0", "grpcio_status>=1.63.0rc1", "protobuf>=4.25.7", "langchain-sandbox>=0.0.6",]
|
|
36
36
|
tools = [ "dulwich==0.21.6", "paramiko==3.3.1", "pygithub==2.3.0", "python-gitlab==4.5.0", "gitpython==3.1.43", "atlassian-python-api~=4.0.7", "jira==3.8.0", "qtest-swagger-client==0.0.3", "testrail-api==1.13.4", "azure-devops==7.1.0b4", "msrest==0.7.1", "python-graphql-client~=0.4.3", "zephyr-python-api==0.1.0", "pyral==1.6.0", "boto3>=1.37.23", "azure-core==1.30.2", "azure-identity==1.16.0", "azure-keyvault-keys==4.9.0", "azure-keyvault-secrets==4.8.0", "azure-mgmt-core==1.4.0", "azure-mgmt-resource==23.0.1", "azure-mgmt-storage==21.1.0", "azure-storage-blob==12.23.1", "azure-search-documents==11.5.2", "PyMySQL==1.1.1", "psycopg2-binary==2.9.10", "Office365-REST-Python-Client==2.5.14", "pypdf2~=3.0.1", "FigmaPy==2018.1.0", "pandas==2.2.3", "factor_analyzer==0.5.1", "statsmodels==0.14.4", "tabulate==0.9.0", "tree_sitter==0.20.2", "tree-sitter-languages==1.10.2", "astor~=0.8.1", "markdownify~=1.1.0", "requests_openapi==1.0.5", "duckduckgo_search==5.3.0", "playwright>=1.52.0", "google-api-python-client==2.154.0", "wikipedia==1.4.0", "lxml==5.2.2", "pymupdf==1.24.9", "googlemaps==4.10.0", "yagmail==0.15.293", "pysnc==1.1.10", "shortuuid==1.0.13", "yarl==1.17.1", "langmem==0.0.27", "textract-py3==2.1.1", "slack_sdk==3.35.0", "deltalake==1.0.2", "google_cloud_bigquery==3.34.0", "python-calamine==0.5.3",]
|
|
37
37
|
community = [ "retry-extended==0.2.3", "pyobjtojson==0.3", "elitea-analyse==0.1.2", "networkx>=3.0",]
|
|
38
38
|
all = [ "alita-sdk[runtime]", "alita-sdk[tools]", "alita-sdk[community]",]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|