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.
Files changed (380) hide show
  1. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/PKG-INFO +1 -1
  2. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/lifecycle_runner.py +1 -0
  3. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/orchestrator_factory.py +10 -0
  4. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/pipeline_runner.py +4 -0
  5. hexdag-0.8.0.dev3/hexdag/stdlib/adapters/database/__init__.py +12 -0
  6. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/pyproject.toml +5 -4
  7. hexdag-0.8.0.dev1/hexdag/stdlib/adapters/database/__init__.py +0 -6
  8. hexdag-0.8.0.dev1/hexdag_plugins/.gitignore +0 -43
  9. hexdag-0.8.0.dev1/hexdag_plugins/README.md +0 -81
  10. hexdag-0.8.0.dev1/hexdag_plugins/__init__.py +0 -63
  11. hexdag-0.8.0.dev1/hexdag_plugins/_ports.py +0 -166
  12. hexdag-0.8.0.dev1/hexdag_plugins/azure/LICENSE +0 -21
  13. hexdag-0.8.0.dev1/hexdag_plugins/azure/README.md +0 -414
  14. hexdag-0.8.0.dev1/hexdag_plugins/azure/__init__.py +0 -37
  15. hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/__init__.py +0 -21
  16. hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/blob.py +0 -455
  17. hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/cosmos.py +0 -386
  18. hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/keyvault.py +0 -435
  19. hexdag-0.8.0.dev1/hexdag_plugins/azure/adapters/openai.py +0 -425
  20. hexdag-0.8.0.dev1/hexdag_plugins/azure/pyproject.toml +0 -107
  21. hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/__init__.py +0 -1
  22. hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/test_azure_blob_adapter.py +0 -350
  23. hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/test_azure_cosmos_adapter.py +0 -323
  24. hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/test_azure_keyvault_adapter.py +0 -519
  25. hexdag-0.8.0.dev1/hexdag_plugins/azure/tests/test_azure_openai_adapter.py +0 -329
  26. hexdag-0.8.0.dev1/hexdag_plugins/email/__init__.py +0 -13
  27. hexdag-0.8.0.dev1/hexdag_plugins/email/adapters/__init__.py +0 -11
  28. hexdag-0.8.0.dev1/hexdag_plugins/email/adapters/graph.py +0 -491
  29. hexdag-0.8.0.dev1/hexdag_plugins/email/adapters/noop.py +0 -43
  30. hexdag-0.8.0.dev1/hexdag_plugins/email/tests/__init__.py +0 -0
  31. hexdag-0.8.0.dev1/hexdag_plugins/email/tests/test_noop_adapter.py +0 -67
  32. hexdag-0.8.0.dev1/hexdag_plugins/google/__init__.py +0 -5
  33. hexdag-0.8.0.dev1/hexdag_plugins/google/adapters/__init__.py +0 -5
  34. hexdag-0.8.0.dev1/hexdag_plugins/google/adapters/vertex.py +0 -801
  35. hexdag-0.8.0.dev1/hexdag_plugins/google/tests/__init__.py +0 -0
  36. hexdag-0.8.0.dev1/hexdag_plugins/google/tests/test_vertex_adapter.py +0 -287
  37. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/README.md +0 -166
  38. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/__init__.py +0 -53
  39. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/examples/01_simple_pandas_transform.py +0 -287
  40. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/examples/02_simple_pandas_only.py +0 -148
  41. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/examples/03_file_io_pipeline.py +0 -109
  42. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/examples/test_pandas_transform.py +0 -83
  43. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag.toml +0 -25
  44. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/__init__.py +0 -48
  45. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/__init__.py +0 -15
  46. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/api_extract.py +0 -234
  47. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/base_node_factory.py +0 -181
  48. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/file_io.py +0 -423
  49. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/pandas_transform.py +0 -563
  50. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/hexdag_etl/nodes/sql_extract_load.py +0 -127
  51. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/pyproject.toml +0 -82
  52. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/test_transform.py +0 -58
  53. hexdag-0.8.0.dev1/hexdag_plugins/hexdag_etl/tests/test_plugin_integration.py +0 -65
  54. hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/LICENSE +0 -21
  55. hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/README.md +0 -232
  56. hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/__init__.py +0 -23
  57. hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/adapters/__init__.py +0 -5
  58. hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/adapters/mysql.py +0 -500
  59. hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/mysql_adapter.py +0 -401
  60. hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/pyproject.toml +0 -93
  61. hexdag-0.8.0.dev1/hexdag_plugins/mysql_adapter/tests/test_mysql_adapter.py +0 -259
  62. hexdag-0.8.0.dev1/hexdag_plugins/ollama/__init__.py +0 -5
  63. hexdag-0.8.0.dev1/hexdag_plugins/ollama/adapters/__init__.py +0 -5
  64. hexdag-0.8.0.dev1/hexdag_plugins/ollama/adapters/ollama.py +0 -195
  65. hexdag-0.8.0.dev1/hexdag_plugins/ollama/tests/__init__.py +0 -0
  66. hexdag-0.8.0.dev1/hexdag_plugins/ollama/tests/test_ollama_adapter.py +0 -164
  67. hexdag-0.8.0.dev1/hexdag_plugins/pyproject.toml +0 -160
  68. hexdag-0.8.0.dev1/hexdag_plugins/storage/README.md +0 -183
  69. hexdag-0.8.0.dev1/hexdag_plugins/storage/__init__.py +0 -46
  70. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/__init__.py +0 -35
  71. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/file/__init__.py +0 -5
  72. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/file/local.py +0 -313
  73. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/__init__.py +0 -8
  74. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/base.py +0 -297
  75. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/collection_storage.py +0 -155
  76. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/mysql.py +0 -47
  77. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/sql/postgresql.py +0 -50
  78. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/vector/__init__.py +0 -7
  79. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/vector/chromadb.py +0 -252
  80. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/vector/in_memory.py +0 -289
  81. hexdag-0.8.0.dev1/hexdag_plugins/storage/adapters/vector/pgvector.py +0 -495
  82. hexdag-0.8.0.dev1/hexdag_plugins/storage/ports/__init__.py +0 -5
  83. hexdag-0.8.0.dev1/hexdag_plugins/storage/ports/vector_store.py +0 -233
  84. hexdag-0.8.0.dev1/hexdag_plugins/storage/tests/__init__.py +0 -1
  85. hexdag-0.8.0.dev1/hexdag_plugins/storage/tests/test_local_file_storage.py +0 -161
  86. hexdag-0.8.0.dev1/hexdag_plugins/storage/tests/test_sql_adapters.py +0 -212
  87. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/.gitignore +0 -0
  88. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/LICENSE +0 -0
  89. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/README.md +0 -0
  90. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/__init__.py +0 -0
  91. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/__main__.py +0 -0
  92. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/__init__.py +0 -0
  93. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/components.py +0 -0
  94. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/documentation.py +0 -0
  95. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/execution.py +0 -0
  96. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/export.py +0 -0
  97. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/logs.py +0 -0
  98. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/pipeline.py +0 -0
  99. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/processes.py +0 -0
  100. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/validation.py +0 -0
  101. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/api/vfs.py +0 -0
  102. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/__init__.py +0 -0
  103. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/__main__.py +0 -0
  104. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/__init__.py +0 -0
  105. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/build_cmd.py +0 -0
  106. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/create_cmd.py +0 -0
  107. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/docs_cmd.py +0 -0
  108. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/generate_types_cmd.py +0 -0
  109. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/init_cmd.py +0 -0
  110. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/lint_cmd.py +0 -0
  111. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/pipeline_cmd.py +0 -0
  112. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/plugin_dev_cmd.py +0 -0
  113. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/plugins_cmd.py +0 -0
  114. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/studio_cmd.py +0 -0
  115. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/commands/validate_cmd.py +0 -0
  116. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/cli/main.py +0 -0
  117. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/__init__.py +0 -0
  118. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/component_instantiator.py +0 -0
  119. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/config_loader.py +0 -0
  120. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/pipeline_config.py +0 -0
  121. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/__init__.py +0 -0
  122. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/adapter_definition.py +0 -0
  123. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/config_definition.py +0 -0
  124. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/macro_definition.py +0 -0
  125. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/macro_entity.py +0 -0
  126. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/middleware_definition.py +0 -0
  127. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/plugins/node_entity.py +0 -0
  128. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/__init__.py +0 -0
  129. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/_type_guards.py +0 -0
  130. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/env_vars.py +0 -0
  131. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/include.py +0 -0
  132. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/preprocessing/template.py +0 -0
  133. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/py_tag.py +0 -0
  134. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/reference_resolver.py +0 -0
  135. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/system_builder.py +0 -0
  136. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/tag_discovery.py +0 -0
  137. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/yaml_builder.py +0 -0
  138. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/compiler/yaml_validator.py +0 -0
  139. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/docs/__init__.py +0 -0
  140. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/docs/extractors.py +0 -0
  141. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/docs/generators.py +0 -0
  142. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/docs/models.py +0 -0
  143. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/executors/__init__.py +0 -0
  144. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/executors/local_executor.py +0 -0
  145. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/http_client/__init__.py +0 -0
  146. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/http_client/http_client.py +0 -0
  147. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/observer_manager/__init__.py +0 -0
  148. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/observer_manager/local.py +0 -0
  149. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/pipeline_spawner/__init__.py +0 -0
  150. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/pipeline_spawner/local.py +0 -0
  151. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/__init__.py +0 -0
  152. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/local.py +0 -0
  153. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/__init__.py +0 -0
  154. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/lib_provider.py +0 -0
  155. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/proc_entities_provider.py +0 -0
  156. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/proc_runs_provider.py +0 -0
  157. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/drivers/vfs/providers/sys_caps_provider.py +0 -0
  158. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/__init__.py +0 -0
  159. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/_alias_registry.py +0 -0
  160. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/config/__init__.py +0 -0
  161. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/config/loader.py +0 -0
  162. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/config/models.py +0 -0
  163. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/configurable.py +0 -0
  164. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/context/__init__.py +0 -0
  165. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/context/execution_context.py +0 -0
  166. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/discovery.py +0 -0
  167. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/__init__.py +0 -0
  168. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/agent_tools.py +0 -0
  169. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/caps.py +0 -0
  170. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/dag.py +0 -0
  171. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/entity_state.py +0 -0
  172. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/extraction_state.py +0 -0
  173. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/pipeline_config.py +0 -0
  174. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/pipeline_result.py +0 -0
  175. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/pipeline_run.py +0 -0
  176. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/system_config.py +0 -0
  177. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/domain/vfs.py +0 -0
  178. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/exceptions.py +0 -0
  179. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/expression_parser.py +0 -0
  180. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/lib_base.py +0 -0
  181. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/linting/__init__.py +0 -0
  182. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/linting/models.py +0 -0
  183. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/linting/pipeline_rules.py +0 -0
  184. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/linting/rules.py +0 -0
  185. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/logging.py +0 -0
  186. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/models/__init__.py +0 -0
  187. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/models/base.py +0 -0
  188. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/__init__.py +0 -0
  189. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/body_executor.py +0 -0
  190. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/__init__.py +0 -0
  191. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/adapter_lifecycle_manager.py +0 -0
  192. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/checkpoint_manager.py +0 -0
  193. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/execution_coordinator.py +0 -0
  194. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/health_check_manager.py +0 -0
  195. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/input_mapper.py +0 -0
  196. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/lifecycle_manager.py +0 -0
  197. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/node_executor.py +0 -0
  198. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/components/secret_manager.py +0 -0
  199. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/constants.py +0 -0
  200. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/event_correlation.py +0 -0
  201. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/README.md +0 -0
  202. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/__init__.py +0 -0
  203. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/batching.py +0 -0
  204. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/decorators.py +0 -0
  205. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/events.py +0 -0
  206. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/events/observers/__init__.py +0 -0
  207. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/hook_context.py +0 -0
  208. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/hooks.py +0 -0
  209. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/models.py +0 -0
  210. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/orchestrator.py +0 -0
  211. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/port_wrappers.py +0 -0
  212. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/prompt/__init__.py +0 -0
  213. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/prompt/template.py +0 -0
  214. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/orchestration/suspension.py +0 -0
  215. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/pipeline_builder/__init__.py +0 -0
  216. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/__init__.py +0 -0
  217. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/api_call.py +0 -0
  218. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/data_store.py +0 -0
  219. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/database.py +0 -0
  220. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/detection.py +0 -0
  221. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/dict_bridge.py +0 -0
  222. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/executor.py +0 -0
  223. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/healthcheck.py +0 -0
  224. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/llm.py +0 -0
  225. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/memory.py +0 -0
  226. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/observer_manager.py +0 -0
  227. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/pipeline_spawner.py +0 -0
  228. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/secret.py +0 -0
  229. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/tool_router.py +0 -0
  230. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/vector_search.py +0 -0
  231. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports/vfs.py +0 -0
  232. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/ports_builder.py +0 -0
  233. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/protocols.py +0 -0
  234. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/resolver.py +0 -0
  235. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/schema/__init__.py +0 -0
  236. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/schema/generator.py +0 -0
  237. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/secrets.py +0 -0
  238. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/service.py +0 -0
  239. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/system.py +0 -0
  240. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/system_runner.py +0 -0
  241. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/types.py +0 -0
  242. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/async_warnings.py +0 -0
  243. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/caching.py +0 -0
  244. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/input_normalization.py +0 -0
  245. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/node_timer.py +0 -0
  246. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/schema_conversion.py +0 -0
  247. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/serialization.py +0 -0
  248. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/utils/sql_validation.py +0 -0
  249. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/validation/__init__.py +0 -0
  250. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/validation/retry.py +0 -0
  251. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/validation/sanitized_types.py +0 -0
  252. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/validation/secure_json.py +0 -0
  253. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/kernel/yaml_macro.py +0 -0
  254. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/mcp_server.py +0 -0
  255. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/py.typed +0 -0
  256. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/__init__.py +0 -0
  257. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/__init__.py +0 -0
  258. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/_discovery.py +0 -0
  259. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/anthropic/__init__.py +0 -0
  260. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/anthropic/anthropic_adapter.py +0 -0
  261. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/base.py +0 -0
  262. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/csv/csv_adapter.py +0 -0
  263. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/pgvector/__init__.py +0 -0
  264. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/pgvector/pgvector_adapter.py +0 -0
  265. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/sqlalchemy/sqlalchemy_adapter.py +0 -0
  266. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/sqlite/__init__.py +0 -0
  267. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/database/sqlite/sqlite_adapter.py +0 -0
  268. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/local/README.md +0 -0
  269. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/local/__init__.py +0 -0
  270. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/__init__.py +0 -0
  271. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/collection_memory.py +0 -0
  272. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/file_memory_adapter.py +0 -0
  273. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/in_memory_memory.py +0 -0
  274. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/schemas.py +0 -0
  275. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/session_memory.py +0 -0
  276. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/sqlite_memory_adapter.py +0 -0
  277. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/memory/state_memory.py +0 -0
  278. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/README.md +0 -0
  279. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/__init__.py +0 -0
  280. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/hexdag.yaml +0 -0
  281. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/mock_database.py +0 -0
  282. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/mock_embedding.py +0 -0
  283. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/mock_http.py +0 -0
  284. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/mock/mock_llm.py +0 -0
  285. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/openai/__init__.py +0 -0
  286. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/openai/openai_adapter.py +0 -0
  287. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/redis/__init__.py +0 -0
  288. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/redis/redis_adapter.py +0 -0
  289. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/secret/__init__.py +0 -0
  290. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/adapters/secret/local_secret_adapter.py +0 -0
  291. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/__init__.py +0 -0
  292. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/entity_state.py +0 -0
  293. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/extraction_job.py +0 -0
  294. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/observers/__init__.py +0 -0
  295. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/observers/core_observers.py +0 -0
  296. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/observers/port_call_observers.py +0 -0
  297. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/observers/state_transition_observer.py +0 -0
  298. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/pipeline_memory.py +0 -0
  299. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/process_registry.py +0 -0
  300. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/process_registry_observer.py +0 -0
  301. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib/vfs_tools.py +0 -0
  302. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/lib_base.py +0 -0
  303. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/__init__.py +0 -0
  304. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/_discovery.py +0 -0
  305. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/conversation_agent.py +0 -0
  306. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/llm_macro.py +0 -0
  307. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/macros/reasoning_agent.py +0 -0
  308. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/__init__.py +0 -0
  309. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/batch_generation.py +0 -0
  310. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/compose.py +0 -0
  311. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/distributed_cache.py +0 -0
  312. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/observable.py +0 -0
  313. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/observable_tool_router.py +0 -0
  314. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/rate_limiter.py +0 -0
  315. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/response_cache.py +0 -0
  316. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/retry.py +0 -0
  317. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/round_robin.py +0 -0
  318. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/structured_output.py +0 -0
  319. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/middleware/timeout.py +0 -0
  320. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/__init__.py +0 -0
  321. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/_discovery.py +0 -0
  322. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/agent_node.py +0 -0
  323. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/api_call_node.py +0 -0
  324. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/base_node_factory.py +0 -0
  325. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/composite_node.py +0 -0
  326. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/data_node.py +0 -0
  327. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/expression_node.py +0 -0
  328. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/function_node.py +0 -0
  329. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/llm_node.py +0 -0
  330. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/mapped_input.py +0 -0
  331. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/service_call_node.py +0 -0
  332. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/tool_utils.py +0 -0
  333. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/transition_node.py +0 -0
  334. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/nodes/wait_node.py +0 -0
  335. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/__init__.py +0 -0
  336. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/base.py +0 -0
  337. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/chat_prompts.py +0 -0
  338. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/error_correction_prompts.py +0 -0
  339. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/stdlib/prompts/tool_prompts.py +0 -0
  340. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/__init__.py +0 -0
  341. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/build_ui.py +0 -0
  342. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/__init__.py +0 -0
  343. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/main.py +0 -0
  344. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/__init__.py +0 -0
  345. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/execute.py +0 -0
  346. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/export.py +0 -0
  347. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/files.py +0 -0
  348. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/plugins.py +0 -0
  349. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/server/routes/validate.py +0 -0
  350. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/index.html +0 -0
  351. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/package-lock.json +0 -0
  352. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/package.json +0 -0
  353. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/postcss.config.js +0 -0
  354. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/public/hexdag.svg +0 -0
  355. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/App.tsx +0 -0
  356. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/Canvas.tsx +0 -0
  357. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/ContextMenu.tsx +0 -0
  358. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/FileBrowser.tsx +0 -0
  359. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/Header.tsx +0 -0
  360. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/HexdagNode.tsx +0 -0
  361. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/NodeInspector.tsx +0 -0
  362. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/NodePalette.tsx +0 -0
  363. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/NodePortsSection.tsx +0 -0
  364. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/PluginManager.tsx +0 -0
  365. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/PortsEditor.tsx +0 -0
  366. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/PythonEditor.tsx +0 -0
  367. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/ValidationPanel.tsx +0 -0
  368. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/YamlEditor.tsx +0 -0
  369. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/components/index.ts +0 -0
  370. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/index.css +0 -0
  371. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/lib/api.ts +0 -0
  372. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/lib/nodeTemplates.ts +0 -0
  373. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/lib/store.ts +0 -0
  374. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/main.tsx +0 -0
  375. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/types/index.ts +0 -0
  376. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/src/vite-env.d.ts +0 -0
  377. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/tailwind.config.js +0 -0
  378. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/tsconfig.json +0 -0
  379. {hexdag-0.8.0.dev1 → hexdag-0.8.0.dev3}/hexdag/studio/ui/tsconfig.node.json +0 -0
  380. {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.dev1
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
@@ -502,6 +502,7 @@ class LifecycleRunner:
502
502
  config=self._config,
503
503
  port_overrides=self._port_overrides,
504
504
  base_path=self._base_path,
505
+ service_overrides={"entity_state": self._entity_state},
505
506
  )
506
507
 
507
508
  try:
@@ -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.dev1"
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", "hexdag_plugins"]
152
+ packages = ["hexdag"]
153
153
 
154
154
  [tool.hatch.build.targets.wheel]
155
- packages = ["hexdag", "hexdag_plugins"]
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,6 +0,0 @@
1
- """Database adapters for HexDAG."""
2
-
3
- from hexdag.stdlib.adapters.database.pgvector.pgvector_adapter import PgVectorAdapter
4
- from hexdag.stdlib.adapters.database.sqlite.sqlite_adapter import SQLiteAdapter
5
-
6
- __all__ = ["PgVectorAdapter", "SQLiteAdapter"]
@@ -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.