hexdag 0.8.0.dev1__tar.gz → 0.8.0.dev3__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.
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/PKG-INFO +1 -1
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/lifecycle_runner.py +1 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/orchestrator_factory.py +10 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/pipeline_runner.py +4 -0
- hexdag-0.8.0.dev3/hexdag/stdlib/adapters/database/__init__.py +12 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/pyproject.toml +5 -4
- hexdag-0.8.0.dev1/hexdag/stdlib/adapters/database/__init__.py +0 -6
- hexdag-0.8.0.dev1/hexdag_plugins/.gitignore +0 -43
- hexdag-0.8.0.dev1/hexdag_plugins/README.md +0 -81
- hexdag-0.8.0.dev1/hexdag_plugins/__init__.py +0 -63
- hexdag-0.8.0.dev1/hexdag_plugins/_ports.py +0 -166
- hexdag-0.8.0.dev1/hexdag_plugins/azure/LICENSE +0 -21
- hexdag-0.8.0.dev1/hexdag_plugins/azure/README.md +0 -414
- hexdag-0.8.0.dev1/hexdag_plugins/azure/__init__.py +0 -37
- hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/__init__.py +0 -21
- hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/blob.py +0 -455
- hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/cosmos.py +0 -386
- hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/keyvault.py +0 -435
- hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/openai.py +0 -425
- hexdag-0.8.0.dev1/hexdag_plugins/azure/pyproject.toml +0 -107
- hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/__init__.py +0 -1
- hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/test_azure_blob_adapter.py +0 -350
- hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/test_azure_cosmos_adapter.py +0 -323
- hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/test_azure_keyvault_adapter.py +0 -519
- hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/test_azure_openai_adapter.py +0 -329
- hexdag-0.8.0.dev1/hexdag_plugins/email/__init__.py +0 -13
- hexdag-0.8.0.dev1/hexdag_plugins/email/adapters/__init__.py +0 -11
- hexdag-0.8.0.dev1/hexdag_plugins/email/adapters/graph.py +0 -491
- hexdag-0.8.0.dev1/hexdag_plugins/email/adapters/noop.py +0 -43
- hexdag-0.8.0.dev1/hexdag_plugins/email/tests/__init__.py +0 -0
- hexdag-0.8.0.dev1/hexdag_plugins/email/tests/test_noop_adapter.py +0 -67
- hexdag-0.8.0.dev1/hexdag_plugins/google/__init__.py +0 -5
- hexdag-0.8.0.dev1/hexdag_plugins/google/adapters/__init__.py +0 -5
- hexdag-0.8.0.dev1/hexdag_plugins/google/adapters/vertex.py +0 -801
- hexdag-0.8.0.dev1/hexdag_plugins/google/tests/__init__.py +0 -0
- hexdag-0.8.0.dev1/hexdag_plugins/google/tests/test_vertex_adapter.py +0 -287
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/README.md +0 -166
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/__init__.py +0 -53
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/examples/01_simple_pandas_transform.py +0 -287
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/examples/02_simple_pandas_only.py +0 -148
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/examples/03_file_io_pipeline.py +0 -109
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/examples/test_pandas_transform.py +0 -83
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag.toml +0 -25
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/__init__.py +0 -48
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/__init__.py +0 -15
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/api_extract.py +0 -234
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/base_node_factory.py +0 -181
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/file_io.py +0 -423
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/pandas_transform.py +0 -563
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/sql_extract_load.py +0 -127
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/pyproject.toml +0 -82
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/test_transform.py +0 -58
- hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/tests/test_plugin_integration.py +0 -65
- hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/LICENSE +0 -21
- hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/README.md +0 -232
- hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/__init__.py +0 -23
- hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/adapters/__init__.py +0 -5
- hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/adapters/mysql.py +0 -500
- hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/mysql_adapter.py +0 -401
- hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/pyproject.toml +0 -93
- hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/tests/test_mysql_adapter.py +0 -259
- hexdag-0.8.0.dev1/hexdag_plugins/ollama/__init__.py +0 -5
- hexdag-0.8.0.dev1/hexdag_plugins/ollama/adapters/__init__.py +0 -5
- hexdag-0.8.0.dev1/hexdag_plugins/ollama/adapters/ollama.py +0 -195
- hexdag-0.8.0.dev1/hexdag_plugins/ollama/tests/__init__.py +0 -0
- hexdag-0.8.0.dev1/hexdag_plugins/ollama/tests/test_ollama_adapter.py +0 -164
- hexdag-0.8.0.dev1/hexdag_plugins/pyproject.toml +0 -160
- hexdag-0.8.0.dev1/hexdag_plugins/storage/README.md +0 -183
- hexdag-0.8.0.dev1/hexdag_plugins/storage/__init__.py +0 -46
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/__init__.py +0 -35
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/file/__init__.py +0 -5
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/file/local.py +0 -313
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/__init__.py +0 -8
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/base.py +0 -297
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/collection_storage.py +0 -155
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/mysql.py +0 -47
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/postgresql.py +0 -50
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/vector/__init__.py +0 -7
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/vector/chromadb.py +0 -252
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/vector/in_memory.py +0 -289
- hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/vector/pgvector.py +0 -495
- hexdag-0.8.0.dev1/hexdag_plugins/storage/ports/__init__.py +0 -5
- hexdag-0.8.0.dev1/hexdag_plugins/storage/ports/vector_store.py +0 -233
- hexdag-0.8.0.dev1/hexdag_plugins/storage/tests/__init__.py +0 -1
- hexdag-0.8.0.dev1/hexdag_plugins/storage/tests/test_local_file_storage.py +0 -161
- hexdag-0.8.0.dev1/hexdag_plugins/storage/tests/test_sql_adapters.py +0 -212
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/.gitignore +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/LICENSE +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/README.md +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/__main__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/components.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/documentation.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/execution.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/export.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/logs.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/pipeline.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/processes.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/validation.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/vfs.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/__main__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/build_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/create_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/docs_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/generate_types_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/init_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/lint_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/pipeline_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/plugin_dev_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/plugins_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/studio_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/validate_cmd.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/main.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/component_instantiator.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/config_loader.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/pipeline_config.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/adapter_definition.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/config_definition.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/macro_definition.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/macro_entity.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/middleware_definition.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/node_entity.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/_type_guards.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/env_vars.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/include.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/template.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/py_tag.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/reference_resolver.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/system_builder.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/tag_discovery.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/yaml_builder.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/yaml_validator.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/docs/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/docs/extractors.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/docs/generators.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/docs/models.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/executors/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/executors/local_executor.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/http_client/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/http_client/http_client.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/observer_manager/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/observer_manager/local.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/pipeline_spawner/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/pipeline_spawner/local.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/local.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/lib_provider.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/proc_entities_provider.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/proc_runs_provider.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/sys_caps_provider.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/_alias_registry.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/config/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/config/loader.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/config/models.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/configurable.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/context/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/context/execution_context.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/discovery.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/agent_tools.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/caps.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/dag.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/entity_state.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/extraction_state.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/pipeline_config.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/pipeline_result.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/pipeline_run.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/system_config.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/vfs.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/exceptions.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/expression_parser.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/lib_base.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/linting/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/linting/models.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/linting/pipeline_rules.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/linting/rules.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/logging.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/models/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/models/base.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/body_executor.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/adapter_lifecycle_manager.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/checkpoint_manager.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/execution_coordinator.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/health_check_manager.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/input_mapper.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/lifecycle_manager.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/node_executor.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/secret_manager.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/constants.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/event_correlation.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/README.md +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/batching.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/decorators.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/events.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/observers/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/hook_context.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/hooks.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/models.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/orchestrator.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/port_wrappers.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/prompt/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/prompt/template.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/suspension.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/pipeline_builder/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/api_call.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/data_store.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/database.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/detection.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/dict_bridge.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/executor.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/healthcheck.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/llm.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/memory.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/observer_manager.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/pipeline_spawner.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/secret.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/tool_router.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/vector_search.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/vfs.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports_builder.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/protocols.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/resolver.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/schema/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/schema/generator.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/secrets.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/service.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/system.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/system_runner.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/types.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/async_warnings.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/caching.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/input_normalization.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/node_timer.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/schema_conversion.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/serialization.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/sql_validation.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/validation/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/validation/retry.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/validation/sanitized_types.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/validation/secure_json.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/yaml_macro.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/mcp_server.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/py.typed +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/_discovery.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/anthropic/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/anthropic/anthropic_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/base.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/csv/csv_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/pgvector/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/pgvector/pgvector_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/sqlalchemy/sqlalchemy_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/sqlite/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/sqlite/sqlite_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/local/README.md +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/local/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/collection_memory.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/file_memory_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/in_memory_memory.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/schemas.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/session_memory.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/sqlite_memory_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/state_memory.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/README.md +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/hexdag.yaml +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/mock_database.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/mock_embedding.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/mock_http.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/mock_llm.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/openai/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/openai/openai_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/redis/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/redis/redis_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/secret/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/secret/local_secret_adapter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/entity_state.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/extraction_job.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/observers/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/observers/core_observers.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/observers/port_call_observers.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/observers/state_transition_observer.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/pipeline_memory.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/process_registry.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/process_registry_observer.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/vfs_tools.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib_base.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/_discovery.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/conversation_agent.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/llm_macro.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/reasoning_agent.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/batch_generation.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/compose.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/distributed_cache.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/observable.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/observable_tool_router.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/rate_limiter.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/response_cache.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/retry.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/round_robin.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/structured_output.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/timeout.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/_discovery.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/agent_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/api_call_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/base_node_factory.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/composite_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/data_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/expression_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/function_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/llm_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/mapped_input.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/service_call_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/tool_utils.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/transition_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/wait_node.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/base.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/chat_prompts.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/error_correction_prompts.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/tool_prompts.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/build_ui.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/main.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/__init__.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/execute.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/export.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/files.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/plugins.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/validate.py +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/index.html +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/package-lock.json +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/package.json +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/postcss.config.js +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/public/hexdag.svg +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/App.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/Canvas.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/ContextMenu.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/FileBrowser.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/Header.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/HexdagNode.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/NodeInspector.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/NodePalette.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/NodePortsSection.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/PluginManager.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/PortsEditor.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/PythonEditor.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/ValidationPanel.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/YamlEditor.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/index.ts +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/index.css +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/lib/api.ts +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/lib/nodeTemplates.ts +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/lib/store.ts +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/main.tsx +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/types/index.ts +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/vite-env.d.ts +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/tailwind.config.js +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/tsconfig.json +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/tsconfig.node.json +0 -0
- {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/vite.config.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hexdag
|
|
3
|
-
Version: 0.8.0.
|
|
3
|
+
Version: 0.8.0.dev3
|
|
4
4
|
Summary: Operating system for AI agents — pipelines, ports, drivers, and stdlib so agents don't reinvent infrastructure
|
|
5
5
|
Project-URL: Homepage, https://hexdag.ai
|
|
6
6
|
Project-URL: Repository, https://github.com/omniviser/hexdag
|
|
@@ -67,6 +67,7 @@ class OrchestratorFactory:
|
|
|
67
67
|
additional_ports: dict[str, Any] | None = None,
|
|
68
68
|
pre_hook_config: "HookConfig | None" = None,
|
|
69
69
|
post_hook_config: "PostDagHookConfig | None" = None,
|
|
70
|
+
service_overrides: dict[str, Any] | None = None,
|
|
70
71
|
) -> Orchestrator:
|
|
71
72
|
"""Create an orchestrator instance from pipeline configuration.
|
|
72
73
|
|
|
@@ -86,6 +87,10 @@ class OrchestratorFactory:
|
|
|
86
87
|
Configuration for pre-DAG hooks (health checks, secrets, etc.)
|
|
87
88
|
post_hook_config : PostDagHookConfig | None, optional
|
|
88
89
|
Configuration for post-DAG hooks (cleanup, checkpoints, etc.)
|
|
90
|
+
service_overrides : dict[str, Any] | None, optional
|
|
91
|
+
Pre-instantiated services injected by a parent (e.g. System).
|
|
92
|
+
Merged before auto-registration guards so overrides prevent
|
|
93
|
+
fresh service creation.
|
|
89
94
|
|
|
90
95
|
Returns
|
|
91
96
|
-------
|
|
@@ -179,6 +184,11 @@ class OrchestratorFactory:
|
|
|
179
184
|
# Step 4: Instantiate services if configured
|
|
180
185
|
services = self._instantiate_services(pipeline_config, global_ports)
|
|
181
186
|
|
|
187
|
+
# Merge parent-injected services (e.g. System's shared EntityState).
|
|
188
|
+
# Must run before auto-registration guards so overrides take precedence.
|
|
189
|
+
if service_overrides:
|
|
190
|
+
services.update(service_overrides)
|
|
191
|
+
|
|
182
192
|
# Auto-register PipelineMemory (always available, like run_id)
|
|
183
193
|
if "pipeline_memory" not in services:
|
|
184
194
|
from hexdag.stdlib.lib.pipeline_memory import (
|
|
@@ -123,6 +123,7 @@ class PipelineRunner:
|
|
|
123
123
|
base_path: Path | None = None,
|
|
124
124
|
environment: str | None = None,
|
|
125
125
|
checkpoint_storage: Any | None = None,
|
|
126
|
+
service_overrides: dict[str, Any] | None = None,
|
|
126
127
|
) -> None:
|
|
127
128
|
self._config = config
|
|
128
129
|
# Inject checkpoint_storage as a dedicated checkpoint port.
|
|
@@ -181,6 +182,8 @@ class PipelineRunner:
|
|
|
181
182
|
self._builder = YamlPipelineBuilder(base_path=base_path)
|
|
182
183
|
self._factory = OrchestratorFactory()
|
|
183
184
|
|
|
185
|
+
self._service_overrides = service_overrides
|
|
186
|
+
|
|
184
187
|
# Runner-level secret cache: skip load_to_environ on repeat runs
|
|
185
188
|
self._secrets_loaded = False
|
|
186
189
|
|
|
@@ -645,6 +648,7 @@ class PipelineRunner:
|
|
|
645
648
|
additional_ports=self._port_overrides,
|
|
646
649
|
pre_hook_config=self._pre_hook_config,
|
|
647
650
|
post_hook_config=self._post_hook_config,
|
|
651
|
+
service_overrides=self._service_overrides,
|
|
648
652
|
)
|
|
649
653
|
|
|
650
654
|
# 6. Execute
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"""Database adapters for HexDAG."""
|
|
2
|
+
|
|
3
|
+
from hexdag.stdlib.adapters.database.sqlite.sqlite_adapter import SQLiteAdapter
|
|
4
|
+
|
|
5
|
+
__all__ = ["SQLiteAdapter"]
|
|
6
|
+
|
|
7
|
+
try:
|
|
8
|
+
from hexdag.stdlib.adapters.database.pgvector.pgvector_adapter import PgVectorAdapter
|
|
9
|
+
except ImportError:
|
|
10
|
+
pass
|
|
11
|
+
else:
|
|
12
|
+
__all__ += ["PgVectorAdapter"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "hexdag"
|
|
3
|
-
version = "0.8.0.
|
|
3
|
+
version = "0.8.0.dev3"
|
|
4
4
|
|
|
5
5
|
description = "Operating system for AI agents — pipelines, ports, drivers, and stdlib so agents don't reinvent infrastructure"
|
|
6
6
|
authors = [{ name = "hexDAG Team", email = "developers@omniviser.ai" }]
|
|
@@ -149,10 +149,10 @@ docs = [
|
|
|
149
149
|
|
|
150
150
|
|
|
151
151
|
[tool.hatch.build.targets.sdist]
|
|
152
|
-
packages = ["hexdag"
|
|
152
|
+
packages = ["hexdag"]
|
|
153
153
|
|
|
154
154
|
[tool.hatch.build.targets.wheel]
|
|
155
|
-
packages = ["hexdag"
|
|
155
|
+
packages = ["hexdag"]
|
|
156
156
|
|
|
157
157
|
# For local development with uv - points to local packages not yet on PyPI
|
|
158
158
|
[tool.uv.sources]
|
|
@@ -393,7 +393,7 @@ convention = "numpy"
|
|
|
393
393
|
"hexdag/compiler/yaml_builder.py" = ["E501"] # YAML examples can be long
|
|
394
394
|
|
|
395
395
|
[tool.ruff.lint.isort]
|
|
396
|
-
known-first-party = ["hexdag"]
|
|
396
|
+
known-first-party = ["hexdag", "hexdag_forge"]
|
|
397
397
|
|
|
398
398
|
[tool.vulture]
|
|
399
399
|
min_confidence = 90
|
|
@@ -474,6 +474,7 @@ exclude = [
|
|
|
474
474
|
"hexdag_plugins", # External plugin directories
|
|
475
475
|
"hexdag-studio", # Separate package with its own dependencies
|
|
476
476
|
"hexdag-studio/.venv", # Nested venv in studio package
|
|
477
|
+
"hexdag-forge", # Separate package with its own dependencies
|
|
477
478
|
]
|
|
478
479
|
|
|
479
480
|
# Per-rule ignores for specific packages
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# Python
|
|
2
|
-
__pycache__/
|
|
3
|
-
*.py[cod]
|
|
4
|
-
*$py.class
|
|
5
|
-
*.so
|
|
6
|
-
.Python
|
|
7
|
-
*.egg-info/
|
|
8
|
-
dist/
|
|
9
|
-
build/
|
|
10
|
-
*.egg
|
|
11
|
-
|
|
12
|
-
# Testing
|
|
13
|
-
.coverage
|
|
14
|
-
.pytest_cache/
|
|
15
|
-
htmlcov/
|
|
16
|
-
.tox/
|
|
17
|
-
.hypothesis/
|
|
18
|
-
|
|
19
|
-
# IDE
|
|
20
|
-
.idea/
|
|
21
|
-
.vscode/
|
|
22
|
-
*.swp
|
|
23
|
-
*.swo
|
|
24
|
-
*~
|
|
25
|
-
.DS_Store
|
|
26
|
-
|
|
27
|
-
# Virtual environments
|
|
28
|
-
venv/
|
|
29
|
-
env/
|
|
30
|
-
ENV/
|
|
31
|
-
|
|
32
|
-
# Mypy
|
|
33
|
-
.mypy_cache/
|
|
34
|
-
.dmypy.json
|
|
35
|
-
dmypy.json
|
|
36
|
-
|
|
37
|
-
# Ruff
|
|
38
|
-
.ruff_cache/
|
|
39
|
-
|
|
40
|
-
# Plugin builds
|
|
41
|
-
*/dist/
|
|
42
|
-
*/build/
|
|
43
|
-
*/*.egg-info/
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# hexDAG Plugins
|
|
2
|
-
|
|
3
|
-
This directory contains plugins that extend hexDAG's functionality.
|
|
4
|
-
|
|
5
|
-
## Available Plugins
|
|
6
|
-
|
|
7
|
-
| Plugin | Description | Port |
|
|
8
|
-
|--------|-------------|------|
|
|
9
|
-
| `mysql_adapter` | Production MySQL adapter with JSON support | database |
|
|
10
|
-
|
|
11
|
-
## Simple Plugin Workflow
|
|
12
|
-
|
|
13
|
-
Each plugin is a standalone Python package. Just use standard Python tools:
|
|
14
|
-
|
|
15
|
-
### Install & Test
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
# Install a plugin
|
|
19
|
-
uv pip install -e hexdag_plugins/mysql_adapter/
|
|
20
|
-
|
|
21
|
-
# Run tests
|
|
22
|
-
uv run pytest hexdag_plugins/mysql_adapter/tests/
|
|
23
|
-
|
|
24
|
-
# Format code (uses settings from plugin's pyproject.toml)
|
|
25
|
-
cd hexdag_plugins/mysql_adapter
|
|
26
|
-
uv run ruff format .
|
|
27
|
-
uv run ruff check --fix .
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Pre-commit Integration
|
|
31
|
-
|
|
32
|
-
Plugin files are automatically handled by the main pre-commit configuration. When you commit:
|
|
33
|
-
- **Plugin files** (`hexdag_plugins/`) use plugin-specific hooks with relaxed rules
|
|
34
|
-
- **Main code** (`hexdag/`) uses strict project hooks
|
|
35
|
-
|
|
36
|
-
This happens automatically - just commit normally and the right hooks run!
|
|
37
|
-
|
|
38
|
-
### Plugin Structure
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
hexdag_plugins/
|
|
42
|
-
└── my_plugin/
|
|
43
|
-
├── pyproject.toml # Plugin configuration & dependencies
|
|
44
|
-
├── __init__.py
|
|
45
|
-
├── my_plugin.py # Implementation
|
|
46
|
-
└── tests/
|
|
47
|
-
└── test_my_plugin.py
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Creating a New Plugin
|
|
51
|
-
|
|
52
|
-
1. Copy an existing plugin directory as a template
|
|
53
|
-
2. Update `pyproject.toml` with your plugin details
|
|
54
|
-
3. Implement the required port interface
|
|
55
|
-
4. Write tests
|
|
56
|
-
|
|
57
|
-
The `pyproject.toml` contains all configuration:
|
|
58
|
-
- Dependencies
|
|
59
|
-
- Tool settings (ruff, mypy, pytest)
|
|
60
|
-
- Plugin metadata for hexDAG
|
|
61
|
-
|
|
62
|
-
## Using Plugins
|
|
63
|
-
|
|
64
|
-
Plugins are used by referencing their full module path in YAML:
|
|
65
|
-
|
|
66
|
-
```yaml
|
|
67
|
-
spec:
|
|
68
|
-
ports:
|
|
69
|
-
database:
|
|
70
|
-
adapter: hexdag_plugins.mysql_adapter.MySQLAdapter
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Or import directly in Python:
|
|
74
|
-
|
|
75
|
-
```python
|
|
76
|
-
from hexdag_plugins.mysql_adapter import MySQLAdapter
|
|
77
|
-
|
|
78
|
-
adapter = MySQLAdapter(host="localhost", database="mydb")
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
That's it! No complex scripts or build tools needed.
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"""External plugins for hexDAG framework.
|
|
2
|
-
|
|
3
|
-
Plugin Convention
|
|
4
|
-
-----------------
|
|
5
|
-
All plugins in this namespace follow a standard structure::
|
|
6
|
-
|
|
7
|
-
hexdag_plugins/
|
|
8
|
-
├── <plugin_name>/
|
|
9
|
-
│ ├── __init__.py # Re-exports from adapters/nodes/tools
|
|
10
|
-
│ ├── adapters/ # Adapter implementations
|
|
11
|
-
│ │ ├── __init__.py
|
|
12
|
-
│ │ └── my_adapter.py
|
|
13
|
-
│ ├── nodes/ # Custom node types
|
|
14
|
-
│ │ ├── __init__.py
|
|
15
|
-
│ │ └── my_node.py
|
|
16
|
-
│ ├── tools/ # Agent tools
|
|
17
|
-
│ │ ├── __init__.py
|
|
18
|
-
│ │ └── my_tool.py
|
|
19
|
-
│ └── ports/ # Custom port protocols (optional)
|
|
20
|
-
│ └── __init__.py
|
|
21
|
-
|
|
22
|
-
Adapter Requirements
|
|
23
|
-
--------------------
|
|
24
|
-
Adapters MUST inherit from their port protocol to be auto-discovered:
|
|
25
|
-
|
|
26
|
-
- LLM adapters: inherit from ``LLM``, ``SupportsGeneration``, etc.
|
|
27
|
-
- Memory adapters: inherit from ``Memory``
|
|
28
|
-
- Database adapters: inherit from ``Database`` or ``SQLAdapter``
|
|
29
|
-
- Secret adapters: inherit from ``SecretStore``
|
|
30
|
-
- Storage adapters: inherit from ``FileStorage`` or ``VectorStorePort``
|
|
31
|
-
- Tool adapters: inherit from ``ToolRouter``
|
|
32
|
-
|
|
33
|
-
Example::
|
|
34
|
-
|
|
35
|
-
from hexdag.kernel.ports.llm import LLM
|
|
36
|
-
|
|
37
|
-
class MyCustomLLMAdapter(LLM):
|
|
38
|
-
async def aresponse(self, messages):
|
|
39
|
-
...
|
|
40
|
-
|
|
41
|
-
Node Requirements
|
|
42
|
-
-----------------
|
|
43
|
-
Custom nodes should inherit from ``BaseNodeFactory``::
|
|
44
|
-
|
|
45
|
-
from hexdag.stdlib.nodes.base_node_factory import BaseNodeFactory
|
|
46
|
-
|
|
47
|
-
class MyCustomNode(BaseNodeFactory):
|
|
48
|
-
def __call__(self, name: str, **kwargs) -> NodeSpec:
|
|
49
|
-
...
|
|
50
|
-
|
|
51
|
-
Available Plugins
|
|
52
|
-
-----------------
|
|
53
|
-
- ``azure``: Azure cloud adapters (OpenAI, Cosmos, KeyVault, Blob)
|
|
54
|
-
- ``storage``: File and vector storage adapters
|
|
55
|
-
- ``hexdag_etl``: ETL pipeline nodes
|
|
56
|
-
"""
|
|
57
|
-
|
|
58
|
-
try:
|
|
59
|
-
from importlib.metadata import version as _meta_version
|
|
60
|
-
|
|
61
|
-
__version__ = _meta_version("hexdag-plugins")
|
|
62
|
-
except Exception:
|
|
63
|
-
__version__ = "0.0.0.dev0" # Fallback for development installs
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
"""Port protocols used by hexdag_plugins.
|
|
2
|
-
|
|
3
|
-
These protocols were previously in hexdag.kernel.ports but were moved here
|
|
4
|
-
because they are only used by the plugins package, not by core hexDAG.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
import html as html_mod
|
|
8
|
-
import re
|
|
9
|
-
from datetime import datetime
|
|
10
|
-
from html.parser import HTMLParser
|
|
11
|
-
from typing import Any, Protocol, runtime_checkable
|
|
12
|
-
|
|
13
|
-
from hexdag.kernel.ports.dict_bridge import dict_bridge_call
|
|
14
|
-
from hexdag.kernel.ports.healthcheck import HealthStatus
|
|
15
|
-
from pydantic import BaseModel
|
|
16
|
-
|
|
17
|
-
# ---------------------------------------------------------------------------
|
|
18
|
-
# Email port
|
|
19
|
-
# ---------------------------------------------------------------------------
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class SendEmailRequest(BaseModel):
|
|
23
|
-
"""Email send request."""
|
|
24
|
-
|
|
25
|
-
to_addresses: list[str]
|
|
26
|
-
subject: str
|
|
27
|
-
body_text: str
|
|
28
|
-
body_html: str | None = None
|
|
29
|
-
cc_addresses: list[str] | None = None
|
|
30
|
-
in_reply_to: str | None = None
|
|
31
|
-
conversation_id: str | None = None
|
|
32
|
-
metadata: dict[str, Any] | None = None
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class SendEmailResult(BaseModel):
|
|
36
|
-
"""Email send result."""
|
|
37
|
-
|
|
38
|
-
message_id: str
|
|
39
|
-
conversation_id: str | None = None
|
|
40
|
-
sent_at: datetime
|
|
41
|
-
success: bool = True
|
|
42
|
-
error_message: str | None = None
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
@runtime_checkable
|
|
46
|
-
class SupportsEmail(Protocol):
|
|
47
|
-
"""Protocol for email adapters.
|
|
48
|
-
|
|
49
|
-
The adapter handles sending pre-composed emails and fetching
|
|
50
|
-
new inbound emails. Template rendering is handled separately
|
|
51
|
-
(e.g. by TemplatedEmailNode).
|
|
52
|
-
"""
|
|
53
|
-
|
|
54
|
-
async def send_email(self, request: SendEmailRequest) -> SendEmailResult:
|
|
55
|
-
"""Send an email."""
|
|
56
|
-
...
|
|
57
|
-
|
|
58
|
-
async def send_email_from_dict(self, request: dict) -> dict:
|
|
59
|
-
"""Send email from dict (for node compatibility).
|
|
60
|
-
|
|
61
|
-
Default implementation delegates to :meth:`send_email` via Pydantic
|
|
62
|
-
``model_validate`` / ``model_dump(mode="json")``. Adapters do NOT
|
|
63
|
-
need to override this.
|
|
64
|
-
"""
|
|
65
|
-
return await dict_bridge_call(self.send_email, request, SendEmailRequest)
|
|
66
|
-
|
|
67
|
-
async def fetch_emails(self, since: datetime | None = None, limit: int = 50) -> list[dict]:
|
|
68
|
-
"""Fetch recent inbound emails from inbox.
|
|
69
|
-
|
|
70
|
-
Args:
|
|
71
|
-
since: Only fetch emails received after this datetime.
|
|
72
|
-
limit: Maximum number of emails to return.
|
|
73
|
-
|
|
74
|
-
Returns:
|
|
75
|
-
List of email dicts with fields: message_id, conversation_id,
|
|
76
|
-
in_reply_to, from_address, to_addresses, cc_addresses, subject,
|
|
77
|
-
body_text, body_html, received_at, has_attachments.
|
|
78
|
-
"""
|
|
79
|
-
...
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
# ---------------------------------------------------------------------------
|
|
83
|
-
# Email utilities
|
|
84
|
-
# ---------------------------------------------------------------------------
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
class _HTMLTextExtractor(HTMLParser):
|
|
88
|
-
"""Strips HTML tags and returns plain text."""
|
|
89
|
-
|
|
90
|
-
def __init__(self) -> None:
|
|
91
|
-
super().__init__()
|
|
92
|
-
self._pieces: list[str] = []
|
|
93
|
-
self._skip = False
|
|
94
|
-
|
|
95
|
-
def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None:
|
|
96
|
-
if tag in ("script", "style"):
|
|
97
|
-
self._skip = True
|
|
98
|
-
elif tag in ("br", "p", "div", "tr", "li"):
|
|
99
|
-
self._pieces.append("\n")
|
|
100
|
-
|
|
101
|
-
def handle_endtag(self, tag: str) -> None:
|
|
102
|
-
if tag in ("script", "style"):
|
|
103
|
-
self._skip = False
|
|
104
|
-
|
|
105
|
-
def handle_data(self, data: str) -> None:
|
|
106
|
-
if not self._skip:
|
|
107
|
-
self._pieces.append(data)
|
|
108
|
-
|
|
109
|
-
def get_text(self) -> str:
|
|
110
|
-
return "".join(self._pieces)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
def html_to_plain_text(html_content: str) -> str:
|
|
114
|
-
"""Convert HTML to plain text using stdlib parser.
|
|
115
|
-
|
|
116
|
-
Args:
|
|
117
|
-
html_content: Raw HTML string.
|
|
118
|
-
|
|
119
|
-
Returns:
|
|
120
|
-
Plain text with HTML tags stripped, entities decoded, and
|
|
121
|
-
excessive whitespace collapsed.
|
|
122
|
-
"""
|
|
123
|
-
if not html_content:
|
|
124
|
-
return ""
|
|
125
|
-
extractor = _HTMLTextExtractor()
|
|
126
|
-
extractor.feed(html_content)
|
|
127
|
-
text = extractor.get_text()
|
|
128
|
-
text = html_mod.unescape(text)
|
|
129
|
-
text = re.sub(r"\n{3,}", "\n\n", text)
|
|
130
|
-
return text.strip()
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
@runtime_checkable
|
|
134
|
-
class FileStorage(Protocol):
|
|
135
|
-
"""Port for file storage operations.
|
|
136
|
-
|
|
137
|
-
Provides a unified interface for local and cloud file storage.
|
|
138
|
-
"""
|
|
139
|
-
|
|
140
|
-
async def aupload(self, local_path: str, remote_path: str) -> dict:
|
|
141
|
-
"""Upload a file."""
|
|
142
|
-
...
|
|
143
|
-
|
|
144
|
-
async def adownload(self, remote_path: str, local_path: str) -> dict:
|
|
145
|
-
"""Download a file."""
|
|
146
|
-
...
|
|
147
|
-
|
|
148
|
-
async def adelete(self, remote_path: str) -> dict:
|
|
149
|
-
"""Delete a file."""
|
|
150
|
-
...
|
|
151
|
-
|
|
152
|
-
async def alist(self, prefix: str = "") -> list[str]:
|
|
153
|
-
"""List files with optional prefix."""
|
|
154
|
-
...
|
|
155
|
-
|
|
156
|
-
async def aexists(self, remote_path: str) -> bool:
|
|
157
|
-
"""Check if file exists."""
|
|
158
|
-
...
|
|
159
|
-
|
|
160
|
-
async def aget_metadata(self, remote_path: str) -> dict:
|
|
161
|
-
"""Get file metadata."""
|
|
162
|
-
...
|
|
163
|
-
|
|
164
|
-
async def ahealth_check(self) -> HealthStatus:
|
|
165
|
-
"""Check storage health."""
|
|
166
|
-
...
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 HexDAG Team
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|