omnibase_infra 0.2.6__py3-none-any.whl
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.
- omnibase_infra/__init__.py +101 -0
- omnibase_infra/adapters/adapter_onex_tool_execution.py +451 -0
- omnibase_infra/capabilities/__init__.py +15 -0
- omnibase_infra/capabilities/capability_inference_rules.py +211 -0
- omnibase_infra/capabilities/contract_capability_extractor.py +221 -0
- omnibase_infra/capabilities/intent_type_extractor.py +160 -0
- omnibase_infra/cli/__init__.py +1 -0
- omnibase_infra/cli/commands.py +216 -0
- omnibase_infra/clients/__init__.py +0 -0
- omnibase_infra/configs/widget_mapping.yaml +176 -0
- omnibase_infra/constants_topic_patterns.py +26 -0
- omnibase_infra/contracts/handlers/filesystem/handler_contract.yaml +264 -0
- omnibase_infra/contracts/handlers/mcp/handler_contract.yaml +141 -0
- omnibase_infra/decorators/__init__.py +29 -0
- omnibase_infra/decorators/allow_any.py +109 -0
- omnibase_infra/dlq/__init__.py +90 -0
- omnibase_infra/dlq/constants_dlq.py +57 -0
- omnibase_infra/dlq/models/__init__.py +26 -0
- omnibase_infra/dlq/models/enum_replay_status.py +37 -0
- omnibase_infra/dlq/models/model_dlq_replay_record.py +135 -0
- omnibase_infra/dlq/models/model_dlq_tracking_config.py +184 -0
- omnibase_infra/dlq/service_dlq_tracking.py +611 -0
- omnibase_infra/enums/__init__.py +132 -0
- omnibase_infra/enums/enum_any_type_violation.py +104 -0
- omnibase_infra/enums/enum_backend_type.py +27 -0
- omnibase_infra/enums/enum_capture_outcome.py +42 -0
- omnibase_infra/enums/enum_capture_state.py +88 -0
- omnibase_infra/enums/enum_chain_violation_type.py +119 -0
- omnibase_infra/enums/enum_circuit_state.py +51 -0
- omnibase_infra/enums/enum_confirmation_event_type.py +27 -0
- omnibase_infra/enums/enum_consumer_group_purpose.py +92 -0
- omnibase_infra/enums/enum_contract_type.py +84 -0
- omnibase_infra/enums/enum_dedupe_strategy.py +46 -0
- omnibase_infra/enums/enum_dispatch_status.py +191 -0
- omnibase_infra/enums/enum_environment.py +46 -0
- omnibase_infra/enums/enum_execution_shape_violation.py +103 -0
- omnibase_infra/enums/enum_handler_error_type.py +111 -0
- omnibase_infra/enums/enum_handler_loader_error.py +178 -0
- omnibase_infra/enums/enum_handler_source_mode.py +86 -0
- omnibase_infra/enums/enum_handler_source_type.py +87 -0
- omnibase_infra/enums/enum_handler_type.py +77 -0
- omnibase_infra/enums/enum_handler_type_category.py +61 -0
- omnibase_infra/enums/enum_infra_transport_type.py +73 -0
- omnibase_infra/enums/enum_introspection_reason.py +154 -0
- omnibase_infra/enums/enum_kafka_acks.py +99 -0
- omnibase_infra/enums/enum_message_category.py +213 -0
- omnibase_infra/enums/enum_node_archetype.py +74 -0
- omnibase_infra/enums/enum_node_output_type.py +185 -0
- omnibase_infra/enums/enum_non_retryable_error_category.py +224 -0
- omnibase_infra/enums/enum_policy_type.py +32 -0
- omnibase_infra/enums/enum_registration_state.py +261 -0
- omnibase_infra/enums/enum_registration_status.py +33 -0
- omnibase_infra/enums/enum_registry_response_status.py +28 -0
- omnibase_infra/enums/enum_response_status.py +26 -0
- omnibase_infra/enums/enum_retry_error_category.py +98 -0
- omnibase_infra/enums/enum_security_rule_id.py +103 -0
- omnibase_infra/enums/enum_selection_strategy.py +91 -0
- omnibase_infra/enums/enum_topic_standard.py +42 -0
- omnibase_infra/enums/enum_validation_severity.py +78 -0
- omnibase_infra/errors/__init__.py +160 -0
- omnibase_infra/errors/error_architecture_violation.py +152 -0
- omnibase_infra/errors/error_binding_resolution.py +128 -0
- omnibase_infra/errors/error_chain_propagation.py +188 -0
- omnibase_infra/errors/error_compute_registry.py +95 -0
- omnibase_infra/errors/error_consul.py +132 -0
- omnibase_infra/errors/error_container_wiring.py +243 -0
- omnibase_infra/errors/error_event_bus_registry.py +105 -0
- omnibase_infra/errors/error_infra.py +610 -0
- omnibase_infra/errors/error_message_type_registry.py +101 -0
- omnibase_infra/errors/error_policy_registry.py +115 -0
- omnibase_infra/errors/error_vault.py +123 -0
- omnibase_infra/event_bus/__init__.py +72 -0
- omnibase_infra/event_bus/configs/kafka_event_bus_config.yaml +84 -0
- omnibase_infra/event_bus/event_bus_inmemory.py +797 -0
- omnibase_infra/event_bus/event_bus_kafka.py +1716 -0
- omnibase_infra/event_bus/mixin_kafka_broadcast.py +180 -0
- omnibase_infra/event_bus/mixin_kafka_dlq.py +771 -0
- omnibase_infra/event_bus/models/__init__.py +29 -0
- omnibase_infra/event_bus/models/config/__init__.py +20 -0
- omnibase_infra/event_bus/models/config/model_kafka_event_bus_config.py +693 -0
- omnibase_infra/event_bus/models/model_dlq_event.py +206 -0
- omnibase_infra/event_bus/models/model_dlq_metrics.py +304 -0
- omnibase_infra/event_bus/models/model_event_headers.py +115 -0
- omnibase_infra/event_bus/models/model_event_message.py +60 -0
- omnibase_infra/event_bus/testing/__init__.py +26 -0
- omnibase_infra/event_bus/testing/adapter_protocol_event_publisher_inmemory.py +418 -0
- omnibase_infra/event_bus/testing/model_publisher_metrics.py +64 -0
- omnibase_infra/event_bus/topic_constants.py +376 -0
- omnibase_infra/handlers/__init__.py +82 -0
- omnibase_infra/handlers/filesystem/__init__.py +48 -0
- omnibase_infra/handlers/filesystem/enum_file_system_operation.py +35 -0
- omnibase_infra/handlers/filesystem/model_file_system_request.py +298 -0
- omnibase_infra/handlers/filesystem/model_file_system_result.py +166 -0
- omnibase_infra/handlers/handler_consul.py +795 -0
- omnibase_infra/handlers/handler_db.py +1046 -0
- omnibase_infra/handlers/handler_filesystem.py +1478 -0
- omnibase_infra/handlers/handler_graph.py +2015 -0
- omnibase_infra/handlers/handler_http.py +926 -0
- omnibase_infra/handlers/handler_intent.py +387 -0
- omnibase_infra/handlers/handler_manifest_persistence.contract.yaml +184 -0
- omnibase_infra/handlers/handler_manifest_persistence.py +1539 -0
- omnibase_infra/handlers/handler_mcp.py +1430 -0
- omnibase_infra/handlers/handler_qdrant.py +1076 -0
- omnibase_infra/handlers/handler_vault.py +428 -0
- omnibase_infra/handlers/mcp/__init__.py +19 -0
- omnibase_infra/handlers/mcp/adapter_onex_to_mcp.py +446 -0
- omnibase_infra/handlers/mcp/protocols.py +178 -0
- omnibase_infra/handlers/mcp/transport_streamable_http.py +352 -0
- omnibase_infra/handlers/mixins/__init__.py +47 -0
- omnibase_infra/handlers/mixins/mixin_consul_initialization.py +349 -0
- omnibase_infra/handlers/mixins/mixin_consul_kv.py +338 -0
- omnibase_infra/handlers/mixins/mixin_consul_service.py +542 -0
- omnibase_infra/handlers/mixins/mixin_consul_topic_index.py +585 -0
- omnibase_infra/handlers/mixins/mixin_vault_initialization.py +338 -0
- omnibase_infra/handlers/mixins/mixin_vault_retry.py +412 -0
- omnibase_infra/handlers/mixins/mixin_vault_secrets.py +450 -0
- omnibase_infra/handlers/mixins/mixin_vault_token.py +365 -0
- omnibase_infra/handlers/models/__init__.py +286 -0
- omnibase_infra/handlers/models/consul/__init__.py +81 -0
- omnibase_infra/handlers/models/consul/enum_consul_operation_type.py +57 -0
- omnibase_infra/handlers/models/consul/model_consul_deregister_payload.py +51 -0
- omnibase_infra/handlers/models/consul/model_consul_handler_config.py +153 -0
- omnibase_infra/handlers/models/consul/model_consul_handler_payload.py +89 -0
- omnibase_infra/handlers/models/consul/model_consul_kv_get_found_payload.py +55 -0
- omnibase_infra/handlers/models/consul/model_consul_kv_get_not_found_payload.py +49 -0
- omnibase_infra/handlers/models/consul/model_consul_kv_get_recurse_payload.py +50 -0
- omnibase_infra/handlers/models/consul/model_consul_kv_item.py +33 -0
- omnibase_infra/handlers/models/consul/model_consul_kv_put_payload.py +41 -0
- omnibase_infra/handlers/models/consul/model_consul_register_payload.py +53 -0
- omnibase_infra/handlers/models/consul/model_consul_retry_config.py +66 -0
- omnibase_infra/handlers/models/consul/model_payload_consul.py +66 -0
- omnibase_infra/handlers/models/consul/registry_payload_consul.py +214 -0
- omnibase_infra/handlers/models/graph/__init__.py +35 -0
- omnibase_infra/handlers/models/graph/enum_graph_operation_type.py +20 -0
- omnibase_infra/handlers/models/graph/model_graph_execute_payload.py +38 -0
- omnibase_infra/handlers/models/graph/model_graph_handler_config.py +54 -0
- omnibase_infra/handlers/models/graph/model_graph_handler_payload.py +44 -0
- omnibase_infra/handlers/models/graph/model_graph_query_payload.py +40 -0
- omnibase_infra/handlers/models/graph/model_graph_record.py +22 -0
- omnibase_infra/handlers/models/http/__init__.py +50 -0
- omnibase_infra/handlers/models/http/enum_http_operation_type.py +29 -0
- omnibase_infra/handlers/models/http/model_http_body_content.py +45 -0
- omnibase_infra/handlers/models/http/model_http_get_payload.py +88 -0
- omnibase_infra/handlers/models/http/model_http_handler_payload.py +90 -0
- omnibase_infra/handlers/models/http/model_http_post_payload.py +88 -0
- omnibase_infra/handlers/models/http/model_payload_http.py +66 -0
- omnibase_infra/handlers/models/http/registry_payload_http.py +212 -0
- omnibase_infra/handlers/models/mcp/__init__.py +23 -0
- omnibase_infra/handlers/models/mcp/enum_mcp_operation_type.py +24 -0
- omnibase_infra/handlers/models/mcp/model_mcp_handler_config.py +40 -0
- omnibase_infra/handlers/models/mcp/model_mcp_tool_call.py +32 -0
- omnibase_infra/handlers/models/mcp/model_mcp_tool_result.py +45 -0
- omnibase_infra/handlers/models/model_consul_handler_response.py +96 -0
- omnibase_infra/handlers/models/model_db_describe_response.py +83 -0
- omnibase_infra/handlers/models/model_db_query_payload.py +95 -0
- omnibase_infra/handlers/models/model_db_query_response.py +60 -0
- omnibase_infra/handlers/models/model_filesystem_config.py +98 -0
- omnibase_infra/handlers/models/model_filesystem_delete_payload.py +54 -0
- omnibase_infra/handlers/models/model_filesystem_delete_result.py +77 -0
- omnibase_infra/handlers/models/model_filesystem_directory_entry.py +75 -0
- omnibase_infra/handlers/models/model_filesystem_ensure_directory_payload.py +54 -0
- omnibase_infra/handlers/models/model_filesystem_ensure_directory_result.py +60 -0
- omnibase_infra/handlers/models/model_filesystem_list_directory_payload.py +60 -0
- omnibase_infra/handlers/models/model_filesystem_list_directory_result.py +68 -0
- omnibase_infra/handlers/models/model_filesystem_read_payload.py +62 -0
- omnibase_infra/handlers/models/model_filesystem_read_result.py +61 -0
- omnibase_infra/handlers/models/model_filesystem_write_payload.py +70 -0
- omnibase_infra/handlers/models/model_filesystem_write_result.py +55 -0
- omnibase_infra/handlers/models/model_graph_handler_response.py +98 -0
- omnibase_infra/handlers/models/model_handler_response.py +103 -0
- omnibase_infra/handlers/models/model_http_handler_response.py +101 -0
- omnibase_infra/handlers/models/model_manifest_metadata.py +75 -0
- omnibase_infra/handlers/models/model_manifest_persistence_config.py +62 -0
- omnibase_infra/handlers/models/model_manifest_query_payload.py +90 -0
- omnibase_infra/handlers/models/model_manifest_query_result.py +97 -0
- omnibase_infra/handlers/models/model_manifest_retrieve_payload.py +44 -0
- omnibase_infra/handlers/models/model_manifest_retrieve_result.py +98 -0
- omnibase_infra/handlers/models/model_manifest_store_payload.py +47 -0
- omnibase_infra/handlers/models/model_manifest_store_result.py +67 -0
- omnibase_infra/handlers/models/model_operation_context.py +187 -0
- omnibase_infra/handlers/models/model_qdrant_handler_response.py +98 -0
- omnibase_infra/handlers/models/model_retry_state.py +162 -0
- omnibase_infra/handlers/models/model_vault_handler_response.py +98 -0
- omnibase_infra/handlers/models/qdrant/__init__.py +44 -0
- omnibase_infra/handlers/models/qdrant/enum_qdrant_operation_type.py +26 -0
- omnibase_infra/handlers/models/qdrant/model_qdrant_collection_payload.py +42 -0
- omnibase_infra/handlers/models/qdrant/model_qdrant_delete_payload.py +36 -0
- omnibase_infra/handlers/models/qdrant/model_qdrant_handler_config.py +42 -0
- omnibase_infra/handlers/models/qdrant/model_qdrant_handler_payload.py +54 -0
- omnibase_infra/handlers/models/qdrant/model_qdrant_search_payload.py +42 -0
- omnibase_infra/handlers/models/qdrant/model_qdrant_search_result.py +30 -0
- omnibase_infra/handlers/models/qdrant/model_qdrant_upsert_payload.py +36 -0
- omnibase_infra/handlers/models/vault/__init__.py +69 -0
- omnibase_infra/handlers/models/vault/enum_vault_operation_type.py +35 -0
- omnibase_infra/handlers/models/vault/model_payload_vault.py +66 -0
- omnibase_infra/handlers/models/vault/model_vault_delete_payload.py +57 -0
- omnibase_infra/handlers/models/vault/model_vault_handler_config.py +148 -0
- omnibase_infra/handlers/models/vault/model_vault_handler_payload.py +101 -0
- omnibase_infra/handlers/models/vault/model_vault_list_payload.py +58 -0
- omnibase_infra/handlers/models/vault/model_vault_renew_token_payload.py +67 -0
- omnibase_infra/handlers/models/vault/model_vault_retry_config.py +66 -0
- omnibase_infra/handlers/models/vault/model_vault_secret_payload.py +106 -0
- omnibase_infra/handlers/models/vault/model_vault_write_payload.py +66 -0
- omnibase_infra/handlers/models/vault/registry_payload_vault.py +213 -0
- omnibase_infra/handlers/registration_storage/__init__.py +43 -0
- omnibase_infra/handlers/registration_storage/handler_registration_storage_mock.py +392 -0
- omnibase_infra/handlers/registration_storage/handler_registration_storage_postgres.py +922 -0
- omnibase_infra/handlers/registration_storage/models/__init__.py +23 -0
- omnibase_infra/handlers/registration_storage/models/model_delete_registration_request.py +58 -0
- omnibase_infra/handlers/registration_storage/models/model_update_registration_request.py +73 -0
- omnibase_infra/handlers/registration_storage/protocol_registration_persistence.py +191 -0
- omnibase_infra/handlers/service_discovery/__init__.py +43 -0
- omnibase_infra/handlers/service_discovery/handler_service_discovery_consul.py +1051 -0
- omnibase_infra/handlers/service_discovery/handler_service_discovery_mock.py +258 -0
- omnibase_infra/handlers/service_discovery/models/__init__.py +22 -0
- omnibase_infra/handlers/service_discovery/models/model_discovery_result.py +64 -0
- omnibase_infra/handlers/service_discovery/models/model_registration_result.py +138 -0
- omnibase_infra/handlers/service_discovery/models/model_service_info.py +109 -0
- omnibase_infra/handlers/service_discovery/protocol_discovery_operations.py +170 -0
- omnibase_infra/idempotency/__init__.py +94 -0
- omnibase_infra/idempotency/models/__init__.py +43 -0
- omnibase_infra/idempotency/models/model_idempotency_check_result.py +85 -0
- omnibase_infra/idempotency/models/model_idempotency_guard_config.py +130 -0
- omnibase_infra/idempotency/models/model_idempotency_record.py +86 -0
- omnibase_infra/idempotency/models/model_idempotency_store_health_check_result.py +81 -0
- omnibase_infra/idempotency/models/model_idempotency_store_metrics.py +140 -0
- omnibase_infra/idempotency/models/model_postgres_idempotency_store_config.py +299 -0
- omnibase_infra/idempotency/protocol_idempotency_store.py +184 -0
- omnibase_infra/idempotency/store_inmemory.py +265 -0
- omnibase_infra/idempotency/store_postgres.py +923 -0
- omnibase_infra/infrastructure/__init__.py +0 -0
- omnibase_infra/migrations/001_create_event_ledger.sql +166 -0
- omnibase_infra/migrations/001_drop_event_ledger.sql +18 -0
- omnibase_infra/mixins/__init__.py +71 -0
- omnibase_infra/mixins/mixin_async_circuit_breaker.py +656 -0
- omnibase_infra/mixins/mixin_dict_like_accessors.py +146 -0
- omnibase_infra/mixins/mixin_envelope_extraction.py +119 -0
- omnibase_infra/mixins/mixin_node_introspection.py +2670 -0
- omnibase_infra/mixins/mixin_retry_execution.py +386 -0
- omnibase_infra/mixins/protocol_circuit_breaker_aware.py +133 -0
- omnibase_infra/models/__init__.py +144 -0
- omnibase_infra/models/bindings/__init__.py +59 -0
- omnibase_infra/models/bindings/constants.py +144 -0
- omnibase_infra/models/bindings/model_binding_resolution_result.py +103 -0
- omnibase_infra/models/bindings/model_operation_binding.py +44 -0
- omnibase_infra/models/bindings/model_operation_bindings_subcontract.py +152 -0
- omnibase_infra/models/bindings/model_parsed_binding.py +52 -0
- omnibase_infra/models/corpus/__init__.py +17 -0
- omnibase_infra/models/corpus/model_capture_config.py +133 -0
- omnibase_infra/models/corpus/model_capture_result.py +86 -0
- omnibase_infra/models/discovery/__init__.py +42 -0
- omnibase_infra/models/discovery/model_dependency_spec.py +319 -0
- omnibase_infra/models/discovery/model_discovered_capabilities.py +50 -0
- omnibase_infra/models/discovery/model_introspection_config.py +330 -0
- omnibase_infra/models/discovery/model_introspection_performance_metrics.py +169 -0
- omnibase_infra/models/discovery/model_introspection_task_config.py +116 -0
- omnibase_infra/models/dispatch/__init__.py +155 -0
- omnibase_infra/models/dispatch/model_debug_trace_snapshot.py +114 -0
- omnibase_infra/models/dispatch/model_dispatch_context.py +439 -0
- omnibase_infra/models/dispatch/model_dispatch_error.py +336 -0
- omnibase_infra/models/dispatch/model_dispatch_log_context.py +400 -0
- omnibase_infra/models/dispatch/model_dispatch_metadata.py +228 -0
- omnibase_infra/models/dispatch/model_dispatch_metrics.py +496 -0
- omnibase_infra/models/dispatch/model_dispatch_outcome.py +317 -0
- omnibase_infra/models/dispatch/model_dispatch_outputs.py +231 -0
- omnibase_infra/models/dispatch/model_dispatch_result.py +436 -0
- omnibase_infra/models/dispatch/model_dispatch_route.py +279 -0
- omnibase_infra/models/dispatch/model_dispatcher_metrics.py +275 -0
- omnibase_infra/models/dispatch/model_dispatcher_registration.py +352 -0
- omnibase_infra/models/dispatch/model_materialized_dispatch.py +141 -0
- omnibase_infra/models/dispatch/model_parsed_topic.py +135 -0
- omnibase_infra/models/dispatch/model_topic_parser.py +725 -0
- omnibase_infra/models/dispatch/model_tracing_context.py +285 -0
- omnibase_infra/models/errors/__init__.py +45 -0
- omnibase_infra/models/errors/model_handler_validation_error.py +594 -0
- omnibase_infra/models/errors/model_infra_error_context.py +99 -0
- omnibase_infra/models/errors/model_message_type_registry_error_context.py +71 -0
- omnibase_infra/models/errors/model_timeout_error_context.py +110 -0
- omnibase_infra/models/handlers/__init__.py +80 -0
- omnibase_infra/models/handlers/model_bootstrap_handler_descriptor.py +162 -0
- omnibase_infra/models/handlers/model_contract_discovery_result.py +82 -0
- omnibase_infra/models/handlers/model_handler_descriptor.py +200 -0
- omnibase_infra/models/handlers/model_handler_identifier.py +215 -0
- omnibase_infra/models/handlers/model_handler_source_config.py +220 -0
- omnibase_infra/models/health/__init__.py +9 -0
- omnibase_infra/models/health/model_health_check_result.py +40 -0
- omnibase_infra/models/lifecycle/__init__.py +39 -0
- omnibase_infra/models/logging/__init__.py +51 -0
- omnibase_infra/models/logging/model_log_context.py +756 -0
- omnibase_infra/models/mcp/__init__.py +15 -0
- omnibase_infra/models/mcp/model_mcp_contract_config.py +80 -0
- omnibase_infra/models/mcp/model_mcp_server_config.py +67 -0
- omnibase_infra/models/mcp/model_mcp_tool_definition.py +73 -0
- omnibase_infra/models/mcp/model_mcp_tool_parameter.py +35 -0
- omnibase_infra/models/model_node_identity.py +126 -0
- omnibase_infra/models/model_retry_error_classification.py +78 -0
- omnibase_infra/models/projection/__init__.py +43 -0
- omnibase_infra/models/projection/model_capability_fields.py +112 -0
- omnibase_infra/models/projection/model_registration_projection.py +434 -0
- omnibase_infra/models/projection/model_registration_snapshot.py +322 -0
- omnibase_infra/models/projection/model_sequence_info.py +182 -0
- omnibase_infra/models/projection/model_snapshot_topic_config.py +591 -0
- omnibase_infra/models/projectors/__init__.py +41 -0
- omnibase_infra/models/projectors/model_projector_column.py +289 -0
- omnibase_infra/models/projectors/model_projector_discovery_result.py +65 -0
- omnibase_infra/models/projectors/model_projector_index.py +270 -0
- omnibase_infra/models/projectors/model_projector_schema.py +415 -0
- omnibase_infra/models/projectors/model_projector_validation_error.py +63 -0
- omnibase_infra/models/projectors/util_sql_identifiers.py +115 -0
- omnibase_infra/models/registration/__init__.py +68 -0
- omnibase_infra/models/registration/commands/__init__.py +15 -0
- omnibase_infra/models/registration/commands/model_node_registration_acked.py +108 -0
- omnibase_infra/models/registration/events/__init__.py +56 -0
- omnibase_infra/models/registration/events/model_node_became_active.py +103 -0
- omnibase_infra/models/registration/events/model_node_liveness_expired.py +103 -0
- omnibase_infra/models/registration/events/model_node_registration_accepted.py +98 -0
- omnibase_infra/models/registration/events/model_node_registration_ack_received.py +98 -0
- omnibase_infra/models/registration/events/model_node_registration_ack_timed_out.py +112 -0
- omnibase_infra/models/registration/events/model_node_registration_initiated.py +107 -0
- omnibase_infra/models/registration/events/model_node_registration_rejected.py +104 -0
- omnibase_infra/models/registration/model_event_bus_topic_entry.py +59 -0
- omnibase_infra/models/registration/model_introspection_metrics.py +253 -0
- omnibase_infra/models/registration/model_node_capabilities.py +190 -0
- omnibase_infra/models/registration/model_node_event_bus_config.py +99 -0
- omnibase_infra/models/registration/model_node_heartbeat_event.py +126 -0
- omnibase_infra/models/registration/model_node_introspection_event.py +195 -0
- omnibase_infra/models/registration/model_node_metadata.py +79 -0
- omnibase_infra/models/registration/model_node_registration.py +162 -0
- omnibase_infra/models/registration/model_node_registration_record.py +162 -0
- omnibase_infra/models/registry/__init__.py +29 -0
- omnibase_infra/models/registry/model_domain_constraint.py +202 -0
- omnibase_infra/models/registry/model_message_type_entry.py +271 -0
- omnibase_infra/models/resilience/__init__.py +9 -0
- omnibase_infra/models/resilience/model_circuit_breaker_config.py +227 -0
- omnibase_infra/models/routing/__init__.py +25 -0
- omnibase_infra/models/routing/model_routing_entry.py +52 -0
- omnibase_infra/models/routing/model_routing_subcontract.py +70 -0
- omnibase_infra/models/runtime/__init__.py +49 -0
- omnibase_infra/models/runtime/model_contract_security_config.py +41 -0
- omnibase_infra/models/runtime/model_discovery_error.py +81 -0
- omnibase_infra/models/runtime/model_discovery_result.py +162 -0
- omnibase_infra/models/runtime/model_discovery_warning.py +74 -0
- omnibase_infra/models/runtime/model_failed_plugin_load.py +63 -0
- omnibase_infra/models/runtime/model_handler_contract.py +296 -0
- omnibase_infra/models/runtime/model_loaded_handler.py +129 -0
- omnibase_infra/models/runtime/model_plugin_load_context.py +93 -0
- omnibase_infra/models/runtime/model_plugin_load_summary.py +124 -0
- omnibase_infra/models/security/__init__.py +50 -0
- omnibase_infra/models/security/classification_levels.py +99 -0
- omnibase_infra/models/security/model_environment_policy.py +145 -0
- omnibase_infra/models/security/model_handler_security_policy.py +107 -0
- omnibase_infra/models/security/model_security_error.py +81 -0
- omnibase_infra/models/security/model_security_validation_result.py +328 -0
- omnibase_infra/models/security/model_security_warning.py +67 -0
- omnibase_infra/models/snapshot/__init__.py +27 -0
- omnibase_infra/models/snapshot/model_field_change.py +65 -0
- omnibase_infra/models/snapshot/model_snapshot.py +270 -0
- omnibase_infra/models/snapshot/model_snapshot_diff.py +203 -0
- omnibase_infra/models/snapshot/model_subject_ref.py +81 -0
- omnibase_infra/models/types/__init__.py +71 -0
- omnibase_infra/models/validation/__init__.py +89 -0
- omnibase_infra/models/validation/model_any_type_validation_result.py +118 -0
- omnibase_infra/models/validation/model_any_type_violation.py +141 -0
- omnibase_infra/models/validation/model_category_match_result.py +345 -0
- omnibase_infra/models/validation/model_chain_violation.py +166 -0
- omnibase_infra/models/validation/model_coverage_metrics.py +316 -0
- omnibase_infra/models/validation/model_execution_shape_rule.py +159 -0
- omnibase_infra/models/validation/model_execution_shape_validation.py +208 -0
- omnibase_infra/models/validation/model_execution_shape_validation_result.py +294 -0
- omnibase_infra/models/validation/model_execution_shape_violation.py +122 -0
- omnibase_infra/models/validation/model_localhandler_validation_result.py +139 -0
- omnibase_infra/models/validation/model_localhandler_violation.py +100 -0
- omnibase_infra/models/validation/model_output_validation_params.py +74 -0
- omnibase_infra/models/validation/model_validate_and_raise_params.py +84 -0
- omnibase_infra/models/validation/model_validation_error_params.py +84 -0
- omnibase_infra/models/validation/model_validation_outcome.py +287 -0
- omnibase_infra/nodes/__init__.py +57 -0
- omnibase_infra/nodes/architecture_validator/__init__.py +79 -0
- omnibase_infra/nodes/architecture_validator/contract.yaml +252 -0
- omnibase_infra/nodes/architecture_validator/contract_architecture_validator.yaml +203 -0
- omnibase_infra/nodes/architecture_validator/mixins/__init__.py +16 -0
- omnibase_infra/nodes/architecture_validator/mixins/mixin_file_path_rule.py +92 -0
- omnibase_infra/nodes/architecture_validator/models/__init__.py +36 -0
- omnibase_infra/nodes/architecture_validator/models/model_architecture_validation_request.py +56 -0
- omnibase_infra/nodes/architecture_validator/models/model_architecture_validation_result.py +311 -0
- omnibase_infra/nodes/architecture_validator/models/model_architecture_violation.py +163 -0
- omnibase_infra/nodes/architecture_validator/models/model_rule_check_result.py +265 -0
- omnibase_infra/nodes/architecture_validator/models/model_validation_request.py +105 -0
- omnibase_infra/nodes/architecture_validator/models/model_validation_result.py +314 -0
- omnibase_infra/nodes/architecture_validator/node.py +262 -0
- omnibase_infra/nodes/architecture_validator/node_architecture_validator.py +383 -0
- omnibase_infra/nodes/architecture_validator/protocols/__init__.py +9 -0
- omnibase_infra/nodes/architecture_validator/protocols/protocol_architecture_rule.py +225 -0
- omnibase_infra/nodes/architecture_validator/registry/__init__.py +28 -0
- omnibase_infra/nodes/architecture_validator/registry/registry_infra_architecture_validator.py +106 -0
- omnibase_infra/nodes/architecture_validator/validators/__init__.py +104 -0
- omnibase_infra/nodes/architecture_validator/validators/validator_no_direct_dispatch.py +422 -0
- omnibase_infra/nodes/architecture_validator/validators/validator_no_handler_publishing.py +481 -0
- omnibase_infra/nodes/architecture_validator/validators/validator_no_orchestrator_fsm.py +491 -0
- omnibase_infra/nodes/contract_registry_reducer/__init__.py +29 -0
- omnibase_infra/nodes/contract_registry_reducer/contract.yaml +255 -0
- omnibase_infra/nodes/contract_registry_reducer/models/__init__.py +38 -0
- omnibase_infra/nodes/contract_registry_reducer/models/model_contract_registry_state.py +266 -0
- omnibase_infra/nodes/contract_registry_reducer/models/model_payload_cleanup_topic_references.py +55 -0
- omnibase_infra/nodes/contract_registry_reducer/models/model_payload_deactivate_contract.py +58 -0
- omnibase_infra/nodes/contract_registry_reducer/models/model_payload_mark_stale.py +49 -0
- omnibase_infra/nodes/contract_registry_reducer/models/model_payload_update_heartbeat.py +71 -0
- omnibase_infra/nodes/contract_registry_reducer/models/model_payload_update_topic.py +66 -0
- omnibase_infra/nodes/contract_registry_reducer/models/model_payload_upsert_contract.py +92 -0
- omnibase_infra/nodes/contract_registry_reducer/node.py +121 -0
- omnibase_infra/nodes/contract_registry_reducer/reducer.py +784 -0
- omnibase_infra/nodes/contract_registry_reducer/registry/__init__.py +9 -0
- omnibase_infra/nodes/contract_registry_reducer/registry/registry_infra_contract_registry_reducer.py +101 -0
- omnibase_infra/nodes/effects/README.md +358 -0
- omnibase_infra/nodes/effects/__init__.py +26 -0
- omnibase_infra/nodes/effects/contract.yaml +167 -0
- omnibase_infra/nodes/effects/models/__init__.py +32 -0
- omnibase_infra/nodes/effects/models/model_backend_result.py +190 -0
- omnibase_infra/nodes/effects/models/model_effect_idempotency_config.py +92 -0
- omnibase_infra/nodes/effects/models/model_registry_request.py +132 -0
- omnibase_infra/nodes/effects/models/model_registry_response.py +263 -0
- omnibase_infra/nodes/effects/protocol_consul_client.py +89 -0
- omnibase_infra/nodes/effects/protocol_effect_idempotency_store.py +143 -0
- omnibase_infra/nodes/effects/protocol_postgres_adapter.py +96 -0
- omnibase_infra/nodes/effects/registry_effect.py +525 -0
- omnibase_infra/nodes/effects/store_effect_idempotency_inmemory.py +425 -0
- omnibase_infra/nodes/handlers/consul/contract.yaml +85 -0
- omnibase_infra/nodes/handlers/db/contract.yaml +72 -0
- omnibase_infra/nodes/handlers/graph/contract.yaml +127 -0
- omnibase_infra/nodes/handlers/http/contract.yaml +74 -0
- omnibase_infra/nodes/handlers/intent/contract.yaml +66 -0
- omnibase_infra/nodes/handlers/mcp/contract.yaml +69 -0
- omnibase_infra/nodes/handlers/vault/contract.yaml +91 -0
- omnibase_infra/nodes/node_intent_storage_effect/__init__.py +50 -0
- omnibase_infra/nodes/node_intent_storage_effect/contract.yaml +194 -0
- omnibase_infra/nodes/node_intent_storage_effect/models/__init__.py +24 -0
- omnibase_infra/nodes/node_intent_storage_effect/models/model_intent_storage_input.py +141 -0
- omnibase_infra/nodes/node_intent_storage_effect/models/model_intent_storage_output.py +130 -0
- omnibase_infra/nodes/node_intent_storage_effect/node.py +94 -0
- omnibase_infra/nodes/node_intent_storage_effect/registry/__init__.py +35 -0
- omnibase_infra/nodes/node_intent_storage_effect/registry/registry_infra_intent_storage.py +294 -0
- omnibase_infra/nodes/node_ledger_projection_compute/__init__.py +50 -0
- omnibase_infra/nodes/node_ledger_projection_compute/contract.yaml +104 -0
- omnibase_infra/nodes/node_ledger_projection_compute/node.py +284 -0
- omnibase_infra/nodes/node_ledger_projection_compute/registry/__init__.py +29 -0
- omnibase_infra/nodes/node_ledger_projection_compute/registry/registry_infra_ledger_projection.py +118 -0
- omnibase_infra/nodes/node_ledger_write_effect/__init__.py +82 -0
- omnibase_infra/nodes/node_ledger_write_effect/contract.yaml +200 -0
- omnibase_infra/nodes/node_ledger_write_effect/handlers/__init__.py +22 -0
- omnibase_infra/nodes/node_ledger_write_effect/handlers/handler_ledger_append.py +372 -0
- omnibase_infra/nodes/node_ledger_write_effect/handlers/handler_ledger_query.py +597 -0
- omnibase_infra/nodes/node_ledger_write_effect/models/__init__.py +31 -0
- omnibase_infra/nodes/node_ledger_write_effect/models/model_ledger_append_result.py +54 -0
- omnibase_infra/nodes/node_ledger_write_effect/models/model_ledger_entry.py +92 -0
- omnibase_infra/nodes/node_ledger_write_effect/models/model_ledger_query.py +53 -0
- omnibase_infra/nodes/node_ledger_write_effect/models/model_ledger_query_result.py +41 -0
- omnibase_infra/nodes/node_ledger_write_effect/node.py +89 -0
- omnibase_infra/nodes/node_ledger_write_effect/protocols/__init__.py +13 -0
- omnibase_infra/nodes/node_ledger_write_effect/protocols/protocol_ledger_persistence.py +127 -0
- omnibase_infra/nodes/node_ledger_write_effect/registry/__init__.py +9 -0
- omnibase_infra/nodes/node_ledger_write_effect/registry/registry_infra_ledger_write.py +121 -0
- omnibase_infra/nodes/node_registration_orchestrator/README.md +542 -0
- omnibase_infra/nodes/node_registration_orchestrator/__init__.py +120 -0
- omnibase_infra/nodes/node_registration_orchestrator/contract.yaml +482 -0
- omnibase_infra/nodes/node_registration_orchestrator/dispatchers/__init__.py +53 -0
- omnibase_infra/nodes/node_registration_orchestrator/dispatchers/dispatcher_node_introspected.py +376 -0
- omnibase_infra/nodes/node_registration_orchestrator/dispatchers/dispatcher_node_registration_acked.py +376 -0
- omnibase_infra/nodes/node_registration_orchestrator/dispatchers/dispatcher_runtime_tick.py +373 -0
- omnibase_infra/nodes/node_registration_orchestrator/handlers/__init__.py +62 -0
- omnibase_infra/nodes/node_registration_orchestrator/handlers/handler_node_heartbeat.py +376 -0
- omnibase_infra/nodes/node_registration_orchestrator/handlers/handler_node_introspected.py +694 -0
- omnibase_infra/nodes/node_registration_orchestrator/handlers/handler_node_registration_acked.py +458 -0
- omnibase_infra/nodes/node_registration_orchestrator/handlers/handler_runtime_tick.py +364 -0
- omnibase_infra/nodes/node_registration_orchestrator/introspection_event_router.py +544 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/__init__.py +75 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_consul_intent_payload.py +194 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_consul_registration_intent.py +67 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_intent_execution_result.py +50 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_node_liveness_expired.py +107 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_orchestrator_config.py +67 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_orchestrator_input.py +41 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_orchestrator_output.py +166 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_postgres_intent_payload.py +235 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_postgres_upsert_intent.py +68 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_reducer_execution_result.py +384 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_reducer_state.py +60 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_registration_intent.py +177 -0
- omnibase_infra/nodes/node_registration_orchestrator/models/model_registry_intent.py +247 -0
- omnibase_infra/nodes/node_registration_orchestrator/node.py +195 -0
- omnibase_infra/nodes/node_registration_orchestrator/plugin.py +909 -0
- omnibase_infra/nodes/node_registration_orchestrator/protocols.py +439 -0
- omnibase_infra/nodes/node_registration_orchestrator/registry/__init__.py +41 -0
- omnibase_infra/nodes/node_registration_orchestrator/registry/registry_infra_node_registration_orchestrator.py +528 -0
- omnibase_infra/nodes/node_registration_orchestrator/timeout_coordinator.py +393 -0
- omnibase_infra/nodes/node_registration_orchestrator/wiring.py +743 -0
- omnibase_infra/nodes/node_registration_reducer/__init__.py +15 -0
- omnibase_infra/nodes/node_registration_reducer/contract.yaml +301 -0
- omnibase_infra/nodes/node_registration_reducer/models/__init__.py +38 -0
- omnibase_infra/nodes/node_registration_reducer/models/model_validation_result.py +113 -0
- omnibase_infra/nodes/node_registration_reducer/node.py +139 -0
- omnibase_infra/nodes/node_registration_reducer/registry/__init__.py +9 -0
- omnibase_infra/nodes/node_registration_reducer/registry/registry_infra_node_registration_reducer.py +79 -0
- omnibase_infra/nodes/node_registration_storage_effect/__init__.py +41 -0
- omnibase_infra/nodes/node_registration_storage_effect/contract.yaml +220 -0
- omnibase_infra/nodes/node_registration_storage_effect/models/__init__.py +44 -0
- omnibase_infra/nodes/node_registration_storage_effect/models/model_delete_result.py +132 -0
- omnibase_infra/nodes/node_registration_storage_effect/models/model_registration_record.py +199 -0
- omnibase_infra/nodes/node_registration_storage_effect/models/model_registration_update.py +155 -0
- omnibase_infra/nodes/node_registration_storage_effect/models/model_storage_health_check_details.py +123 -0
- omnibase_infra/nodes/node_registration_storage_effect/models/model_storage_health_check_result.py +117 -0
- omnibase_infra/nodes/node_registration_storage_effect/models/model_storage_query.py +100 -0
- omnibase_infra/nodes/node_registration_storage_effect/models/model_storage_result.py +136 -0
- omnibase_infra/nodes/node_registration_storage_effect/models/model_upsert_result.py +127 -0
- omnibase_infra/nodes/node_registration_storage_effect/node.py +112 -0
- omnibase_infra/nodes/node_registration_storage_effect/protocols/__init__.py +22 -0
- omnibase_infra/nodes/node_registration_storage_effect/protocols/protocol_registration_persistence.py +333 -0
- omnibase_infra/nodes/node_registration_storage_effect/registry/__init__.py +23 -0
- omnibase_infra/nodes/node_registration_storage_effect/registry/registry_infra_registration_storage.py +215 -0
- omnibase_infra/nodes/node_registry_effect/__init__.py +85 -0
- omnibase_infra/nodes/node_registry_effect/contract.yaml +677 -0
- omnibase_infra/nodes/node_registry_effect/handlers/__init__.py +70 -0
- omnibase_infra/nodes/node_registry_effect/handlers/handler_consul_deregister.py +211 -0
- omnibase_infra/nodes/node_registry_effect/handlers/handler_consul_register.py +212 -0
- omnibase_infra/nodes/node_registry_effect/handlers/handler_partial_retry.py +417 -0
- omnibase_infra/nodes/node_registry_effect/handlers/handler_postgres_deactivate.py +215 -0
- omnibase_infra/nodes/node_registry_effect/handlers/handler_postgres_upsert.py +208 -0
- omnibase_infra/nodes/node_registry_effect/models/__init__.py +43 -0
- omnibase_infra/nodes/node_registry_effect/models/model_partial_retry_request.py +92 -0
- omnibase_infra/nodes/node_registry_effect/node.py +165 -0
- omnibase_infra/nodes/node_registry_effect/registry/__init__.py +27 -0
- omnibase_infra/nodes/node_registry_effect/registry/registry_infra_registry_effect.py +196 -0
- omnibase_infra/nodes/node_service_discovery_effect/__init__.py +111 -0
- omnibase_infra/nodes/node_service_discovery_effect/contract.yaml +246 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/__init__.py +67 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/enum_health_status.py +72 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/enum_service_discovery_operation.py +58 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/model_discovery_query.py +99 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/model_discovery_result.py +98 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/model_health_check_config.py +121 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/model_query_metadata.py +63 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/model_registration_result.py +130 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/model_service_discovery_health_check_details.py +111 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/model_service_discovery_health_check_result.py +119 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/model_service_info.py +106 -0
- omnibase_infra/nodes/node_service_discovery_effect/models/model_service_registration.py +121 -0
- omnibase_infra/nodes/node_service_discovery_effect/node.py +111 -0
- omnibase_infra/nodes/node_service_discovery_effect/protocols/__init__.py +14 -0
- omnibase_infra/nodes/node_service_discovery_effect/protocols/protocol_discovery_operations.py +279 -0
- omnibase_infra/nodes/node_service_discovery_effect/registry/__init__.py +13 -0
- omnibase_infra/nodes/node_service_discovery_effect/registry/registry_infra_service_discovery.py +222 -0
- omnibase_infra/nodes/reducers/__init__.py +30 -0
- omnibase_infra/nodes/reducers/models/__init__.py +37 -0
- omnibase_infra/nodes/reducers/models/model_payload_consul_register.py +87 -0
- omnibase_infra/nodes/reducers/models/model_payload_ledger_append.py +133 -0
- omnibase_infra/nodes/reducers/models/model_payload_postgres_upsert_registration.py +60 -0
- omnibase_infra/nodes/reducers/models/model_registration_confirmation.py +166 -0
- omnibase_infra/nodes/reducers/models/model_registration_state.py +433 -0
- omnibase_infra/nodes/reducers/registration_reducer.py +1138 -0
- omnibase_infra/observability/__init__.py +143 -0
- omnibase_infra/observability/constants_metrics.py +91 -0
- omnibase_infra/observability/factory_observability_sink.py +525 -0
- omnibase_infra/observability/handlers/__init__.py +118 -0
- omnibase_infra/observability/handlers/handler_logging_structured.py +967 -0
- omnibase_infra/observability/handlers/handler_metrics_prometheus.py +1120 -0
- omnibase_infra/observability/handlers/model_logging_handler_config.py +71 -0
- omnibase_infra/observability/handlers/model_logging_handler_response.py +77 -0
- omnibase_infra/observability/handlers/model_metrics_handler_config.py +172 -0
- omnibase_infra/observability/handlers/model_metrics_handler_payload.py +135 -0
- omnibase_infra/observability/handlers/model_metrics_handler_response.py +101 -0
- omnibase_infra/observability/hooks/__init__.py +74 -0
- omnibase_infra/observability/hooks/hook_observability.py +1223 -0
- omnibase_infra/observability/models/__init__.py +30 -0
- omnibase_infra/observability/models/enum_required_log_context_key.py +77 -0
- omnibase_infra/observability/models/model_buffered_log_entry.py +117 -0
- omnibase_infra/observability/models/model_logging_sink_config.py +73 -0
- omnibase_infra/observability/models/model_metrics_sink_config.py +156 -0
- omnibase_infra/observability/sinks/__init__.py +69 -0
- omnibase_infra/observability/sinks/sink_logging_structured.py +809 -0
- omnibase_infra/observability/sinks/sink_metrics_prometheus.py +710 -0
- omnibase_infra/plugins/__init__.py +27 -0
- omnibase_infra/plugins/examples/__init__.py +28 -0
- omnibase_infra/plugins/examples/plugin_json_normalizer.py +271 -0
- omnibase_infra/plugins/examples/plugin_json_normalizer_error_handling.py +210 -0
- omnibase_infra/plugins/models/__init__.py +21 -0
- omnibase_infra/plugins/models/model_plugin_context.py +76 -0
- omnibase_infra/plugins/models/model_plugin_input_data.py +58 -0
- omnibase_infra/plugins/models/model_plugin_output_data.py +62 -0
- omnibase_infra/plugins/plugin_compute_base.py +449 -0
- omnibase_infra/projectors/__init__.py +30 -0
- omnibase_infra/projectors/contracts/__init__.py +63 -0
- omnibase_infra/projectors/contracts/registration_projector.yaml +370 -0
- omnibase_infra/projectors/projection_reader_registration.py +1559 -0
- omnibase_infra/projectors/snapshot_publisher_registration.py +1329 -0
- omnibase_infra/protocols/__init__.py +104 -0
- omnibase_infra/protocols/protocol_capability_projection.py +253 -0
- omnibase_infra/protocols/protocol_capability_query.py +251 -0
- omnibase_infra/protocols/protocol_container_aware.py +200 -0
- omnibase_infra/protocols/protocol_dispatch_engine.py +152 -0
- omnibase_infra/protocols/protocol_event_bus_like.py +127 -0
- omnibase_infra/protocols/protocol_event_projector.py +96 -0
- omnibase_infra/protocols/protocol_idempotency_store.py +142 -0
- omnibase_infra/protocols/protocol_message_dispatcher.py +247 -0
- omnibase_infra/protocols/protocol_message_type_registry.py +306 -0
- omnibase_infra/protocols/protocol_plugin_compute.py +368 -0
- omnibase_infra/protocols/protocol_projector_schema_validator.py +82 -0
- omnibase_infra/protocols/protocol_registry_metrics.py +215 -0
- omnibase_infra/protocols/protocol_snapshot_publisher.py +396 -0
- omnibase_infra/protocols/protocol_snapshot_store.py +567 -0
- omnibase_infra/runtime/__init__.py +445 -0
- omnibase_infra/runtime/binding_config_resolver.py +2771 -0
- omnibase_infra/runtime/binding_resolver.py +753 -0
- omnibase_infra/runtime/chain_aware_dispatch.py +467 -0
- omnibase_infra/runtime/constants_notification.py +75 -0
- omnibase_infra/runtime/constants_security.py +70 -0
- omnibase_infra/runtime/contract_handler_discovery.py +587 -0
- omnibase_infra/runtime/contract_loaders/__init__.py +51 -0
- omnibase_infra/runtime/contract_loaders/handler_routing_loader.py +464 -0
- omnibase_infra/runtime/contract_loaders/operation_bindings_loader.py +789 -0
- omnibase_infra/runtime/dispatch_context_enforcer.py +427 -0
- omnibase_infra/runtime/emit_daemon/__init__.py +97 -0
- omnibase_infra/runtime/emit_daemon/cli.py +844 -0
- omnibase_infra/runtime/emit_daemon/client.py +811 -0
- omnibase_infra/runtime/emit_daemon/config.py +535 -0
- omnibase_infra/runtime/emit_daemon/daemon.py +812 -0
- omnibase_infra/runtime/emit_daemon/event_registry.py +477 -0
- omnibase_infra/runtime/emit_daemon/model_daemon_request.py +139 -0
- omnibase_infra/runtime/emit_daemon/model_daemon_response.py +191 -0
- omnibase_infra/runtime/emit_daemon/queue.py +618 -0
- omnibase_infra/runtime/enums/__init__.py +18 -0
- omnibase_infra/runtime/enums/enum_config_ref_scheme.py +33 -0
- omnibase_infra/runtime/enums/enum_scheduler_status.py +170 -0
- omnibase_infra/runtime/envelope_validator.py +179 -0
- omnibase_infra/runtime/event_bus_subcontract_wiring.py +466 -0
- omnibase_infra/runtime/handler_bootstrap_source.py +507 -0
- omnibase_infra/runtime/handler_contract_config_loader.py +603 -0
- omnibase_infra/runtime/handler_contract_source.py +750 -0
- omnibase_infra/runtime/handler_identity.py +81 -0
- omnibase_infra/runtime/handler_plugin_loader.py +2046 -0
- omnibase_infra/runtime/handler_registry.py +329 -0
- omnibase_infra/runtime/handler_source_resolver.py +367 -0
- omnibase_infra/runtime/invocation_security_enforcer.py +427 -0
- omnibase_infra/runtime/kafka_contract_source.py +984 -0
- omnibase_infra/runtime/kernel.py +40 -0
- omnibase_infra/runtime/mixin_policy_validation.py +522 -0
- omnibase_infra/runtime/mixin_semver_cache.py +402 -0
- omnibase_infra/runtime/mixins/__init__.py +24 -0
- omnibase_infra/runtime/mixins/mixin_projector_notification_publishing.py +566 -0
- omnibase_infra/runtime/mixins/mixin_projector_sql_operations.py +778 -0
- omnibase_infra/runtime/models/__init__.py +229 -0
- omnibase_infra/runtime/models/model_batch_lifecycle_result.py +217 -0
- omnibase_infra/runtime/models/model_binding_config.py +168 -0
- omnibase_infra/runtime/models/model_binding_config_cache_stats.py +135 -0
- omnibase_infra/runtime/models/model_binding_config_resolver_config.py +329 -0
- omnibase_infra/runtime/models/model_cached_secret.py +138 -0
- omnibase_infra/runtime/models/model_compute_key.py +138 -0
- omnibase_infra/runtime/models/model_compute_registration.py +97 -0
- omnibase_infra/runtime/models/model_config_cache_entry.py +61 -0
- omnibase_infra/runtime/models/model_config_ref.py +331 -0
- omnibase_infra/runtime/models/model_config_ref_parse_result.py +125 -0
- omnibase_infra/runtime/models/model_contract_load_result.py +224 -0
- omnibase_infra/runtime/models/model_domain_plugin_config.py +92 -0
- omnibase_infra/runtime/models/model_domain_plugin_result.py +270 -0
- omnibase_infra/runtime/models/model_duplicate_response.py +54 -0
- omnibase_infra/runtime/models/model_enabled_protocols_config.py +61 -0
- omnibase_infra/runtime/models/model_event_bus_config.py +54 -0
- omnibase_infra/runtime/models/model_failed_component.py +55 -0
- omnibase_infra/runtime/models/model_health_check_response.py +168 -0
- omnibase_infra/runtime/models/model_health_check_result.py +229 -0
- omnibase_infra/runtime/models/model_lifecycle_result.py +245 -0
- omnibase_infra/runtime/models/model_logging_config.py +42 -0
- omnibase_infra/runtime/models/model_optional_correlation_id.py +167 -0
- omnibase_infra/runtime/models/model_optional_string.py +94 -0
- omnibase_infra/runtime/models/model_optional_uuid.py +110 -0
- omnibase_infra/runtime/models/model_policy_context.py +100 -0
- omnibase_infra/runtime/models/model_policy_key.py +138 -0
- omnibase_infra/runtime/models/model_policy_registration.py +139 -0
- omnibase_infra/runtime/models/model_policy_result.py +103 -0
- omnibase_infra/runtime/models/model_policy_type_filter.py +157 -0
- omnibase_infra/runtime/models/model_projector_notification_config.py +171 -0
- omnibase_infra/runtime/models/model_projector_plugin_loader_config.py +47 -0
- omnibase_infra/runtime/models/model_protocol_registration_config.py +65 -0
- omnibase_infra/runtime/models/model_retry_policy.py +105 -0
- omnibase_infra/runtime/models/model_runtime_config.py +150 -0
- omnibase_infra/runtime/models/model_runtime_contract_config.py +268 -0
- omnibase_infra/runtime/models/model_runtime_scheduler_config.py +625 -0
- omnibase_infra/runtime/models/model_runtime_scheduler_metrics.py +233 -0
- omnibase_infra/runtime/models/model_runtime_tick.py +193 -0
- omnibase_infra/runtime/models/model_secret_cache_stats.py +82 -0
- omnibase_infra/runtime/models/model_secret_mapping.py +63 -0
- omnibase_infra/runtime/models/model_secret_resolver_config.py +107 -0
- omnibase_infra/runtime/models/model_secret_resolver_metrics.py +111 -0
- omnibase_infra/runtime/models/model_secret_source_info.py +72 -0
- omnibase_infra/runtime/models/model_secret_source_spec.py +66 -0
- omnibase_infra/runtime/models/model_security_config.py +109 -0
- omnibase_infra/runtime/models/model_shutdown_batch_result.py +75 -0
- omnibase_infra/runtime/models/model_shutdown_config.py +94 -0
- omnibase_infra/runtime/models/model_transition_notification_outbox_config.py +112 -0
- omnibase_infra/runtime/models/model_transition_notification_outbox_metrics.py +140 -0
- omnibase_infra/runtime/models/model_transition_notification_publisher_metrics.py +357 -0
- omnibase_infra/runtime/projector_plugin_loader.py +1462 -0
- omnibase_infra/runtime/projector_schema_manager.py +565 -0
- omnibase_infra/runtime/projector_shell.py +1330 -0
- omnibase_infra/runtime/protocol_contract_descriptor.py +92 -0
- omnibase_infra/runtime/protocol_contract_source.py +92 -0
- omnibase_infra/runtime/protocol_domain_plugin.py +474 -0
- omnibase_infra/runtime/protocol_handler_discovery.py +221 -0
- omnibase_infra/runtime/protocol_handler_plugin_loader.py +327 -0
- omnibase_infra/runtime/protocol_lifecycle_executor.py +435 -0
- omnibase_infra/runtime/protocol_policy.py +366 -0
- omnibase_infra/runtime/protocols/__init__.py +37 -0
- omnibase_infra/runtime/protocols/protocol_runtime_scheduler.py +468 -0
- omnibase_infra/runtime/publisher_topic_scoped.py +294 -0
- omnibase_infra/runtime/registry/__init__.py +93 -0
- omnibase_infra/runtime/registry/mixin_message_type_query.py +326 -0
- omnibase_infra/runtime/registry/mixin_message_type_registration.py +354 -0
- omnibase_infra/runtime/registry/registry_event_bus_binding.py +268 -0
- omnibase_infra/runtime/registry/registry_message_type.py +542 -0
- omnibase_infra/runtime/registry/registry_protocol_binding.py +445 -0
- omnibase_infra/runtime/registry_compute.py +1143 -0
- omnibase_infra/runtime/registry_contract_source.py +693 -0
- omnibase_infra/runtime/registry_dispatcher.py +678 -0
- omnibase_infra/runtime/registry_policy.py +1185 -0
- omnibase_infra/runtime/runtime_contract_config_loader.py +406 -0
- omnibase_infra/runtime/runtime_scheduler.py +1070 -0
- omnibase_infra/runtime/secret_resolver.py +2112 -0
- omnibase_infra/runtime/security_metadata_validator.py +776 -0
- omnibase_infra/runtime/service_kernel.py +1651 -0
- omnibase_infra/runtime/service_message_dispatch_engine.py +2350 -0
- omnibase_infra/runtime/service_runtime_host_process.py +3493 -0
- omnibase_infra/runtime/transition_notification_outbox.py +1190 -0
- omnibase_infra/runtime/transition_notification_publisher.py +765 -0
- omnibase_infra/runtime/util_container_wiring.py +1124 -0
- omnibase_infra/runtime/util_validation.py +314 -0
- omnibase_infra/runtime/util_version.py +98 -0
- omnibase_infra/runtime/util_wiring.py +723 -0
- omnibase_infra/schemas/schema_registration_projection.sql +320 -0
- omnibase_infra/schemas/schema_transition_notification_outbox.sql +245 -0
- omnibase_infra/services/__init__.py +89 -0
- omnibase_infra/services/corpus_capture.py +684 -0
- omnibase_infra/services/mcp/__init__.py +31 -0
- omnibase_infra/services/mcp/mcp_server_lifecycle.py +449 -0
- omnibase_infra/services/mcp/service_mcp_tool_discovery.py +411 -0
- omnibase_infra/services/mcp/service_mcp_tool_registry.py +329 -0
- omnibase_infra/services/mcp/service_mcp_tool_sync.py +565 -0
- omnibase_infra/services/registry_api/__init__.py +40 -0
- omnibase_infra/services/registry_api/main.py +261 -0
- omnibase_infra/services/registry_api/models/__init__.py +66 -0
- omnibase_infra/services/registry_api/models/model_capability_widget_mapping.py +38 -0
- omnibase_infra/services/registry_api/models/model_pagination_info.py +48 -0
- omnibase_infra/services/registry_api/models/model_registry_discovery_response.py +73 -0
- omnibase_infra/services/registry_api/models/model_registry_health_response.py +49 -0
- omnibase_infra/services/registry_api/models/model_registry_instance_view.py +88 -0
- omnibase_infra/services/registry_api/models/model_registry_node_view.py +88 -0
- omnibase_infra/services/registry_api/models/model_registry_summary.py +60 -0
- omnibase_infra/services/registry_api/models/model_response_list_instances.py +43 -0
- omnibase_infra/services/registry_api/models/model_response_list_nodes.py +51 -0
- omnibase_infra/services/registry_api/models/model_warning.py +49 -0
- omnibase_infra/services/registry_api/models/model_widget_defaults.py +28 -0
- omnibase_infra/services/registry_api/models/model_widget_mapping.py +51 -0
- omnibase_infra/services/registry_api/routes.py +371 -0
- omnibase_infra/services/registry_api/service.py +837 -0
- omnibase_infra/services/service_capability_query.py +945 -0
- omnibase_infra/services/service_health.py +898 -0
- omnibase_infra/services/service_node_selector.py +530 -0
- omnibase_infra/services/service_timeout_emitter.py +699 -0
- omnibase_infra/services/service_timeout_scanner.py +394 -0
- omnibase_infra/services/session/__init__.py +56 -0
- omnibase_infra/services/session/config_consumer.py +137 -0
- omnibase_infra/services/session/config_store.py +139 -0
- omnibase_infra/services/session/consumer.py +1007 -0
- omnibase_infra/services/session/protocol_session_aggregator.py +117 -0
- omnibase_infra/services/session/store.py +997 -0
- omnibase_infra/services/snapshot/__init__.py +31 -0
- omnibase_infra/services/snapshot/service_snapshot.py +647 -0
- omnibase_infra/services/snapshot/store_inmemory.py +637 -0
- omnibase_infra/services/snapshot/store_postgres.py +1279 -0
- omnibase_infra/shared/__init__.py +8 -0
- omnibase_infra/testing/__init__.py +10 -0
- omnibase_infra/testing/utils.py +23 -0
- omnibase_infra/topics/__init__.py +45 -0
- omnibase_infra/topics/platform_topic_suffixes.py +140 -0
- omnibase_infra/topics/util_topic_composition.py +95 -0
- omnibase_infra/types/__init__.py +48 -0
- omnibase_infra/types/type_cache_info.py +49 -0
- omnibase_infra/types/type_dsn.py +173 -0
- omnibase_infra/types/type_infra_aliases.py +60 -0
- omnibase_infra/types/typed_dict/__init__.py +29 -0
- omnibase_infra/types/typed_dict/typed_dict_envelope_build_params.py +115 -0
- omnibase_infra/types/typed_dict/typed_dict_introspection_cache.py +128 -0
- omnibase_infra/types/typed_dict/typed_dict_performance_metrics_cache.py +140 -0
- omnibase_infra/types/typed_dict_capabilities.py +64 -0
- omnibase_infra/utils/__init__.py +117 -0
- omnibase_infra/utils/correlation.py +208 -0
- omnibase_infra/utils/util_atomic_file.py +261 -0
- omnibase_infra/utils/util_consumer_group.py +232 -0
- omnibase_infra/utils/util_datetime.py +372 -0
- omnibase_infra/utils/util_db_transaction.py +239 -0
- omnibase_infra/utils/util_dsn_validation.py +333 -0
- omnibase_infra/utils/util_env_parsing.py +264 -0
- omnibase_infra/utils/util_error_sanitization.py +457 -0
- omnibase_infra/utils/util_pydantic_validators.py +477 -0
- omnibase_infra/utils/util_retry_optimistic.py +281 -0
- omnibase_infra/utils/util_semver.py +233 -0
- omnibase_infra/validation/__init__.py +307 -0
- omnibase_infra/validation/contracts/security.validation.yaml +114 -0
- omnibase_infra/validation/enums/__init__.py +11 -0
- omnibase_infra/validation/enums/enum_contract_violation_severity.py +13 -0
- omnibase_infra/validation/infra_validators.py +1514 -0
- omnibase_infra/validation/linter_contract.py +907 -0
- omnibase_infra/validation/mixin_any_type_classification.py +120 -0
- omnibase_infra/validation/mixin_any_type_exemption.py +580 -0
- omnibase_infra/validation/mixin_any_type_reporting.py +106 -0
- omnibase_infra/validation/mixin_execution_shape_violation_checks.py +596 -0
- omnibase_infra/validation/mixin_node_archetype_detection.py +254 -0
- omnibase_infra/validation/models/__init__.py +15 -0
- omnibase_infra/validation/models/model_contract_lint_result.py +101 -0
- omnibase_infra/validation/models/model_contract_violation.py +41 -0
- omnibase_infra/validation/service_validation_aggregator.py +395 -0
- omnibase_infra/validation/validation_exemptions.yaml +2033 -0
- omnibase_infra/validation/validator_any_type.py +715 -0
- omnibase_infra/validation/validator_chain_propagation.py +839 -0
- omnibase_infra/validation/validator_execution_shape.py +465 -0
- omnibase_infra/validation/validator_localhandler.py +261 -0
- omnibase_infra/validation/validator_registration_security.py +410 -0
- omnibase_infra/validation/validator_routing_coverage.py +1020 -0
- omnibase_infra/validation/validator_runtime_shape.py +915 -0
- omnibase_infra/validation/validator_security.py +513 -0
- omnibase_infra/validation/validator_topic_category.py +1152 -0
- omnibase_infra-0.2.6.dist-info/METADATA +197 -0
- omnibase_infra-0.2.6.dist-info/RECORD +833 -0
- omnibase_infra-0.2.6.dist-info/WHEEL +4 -0
- omnibase_infra-0.2.6.dist-info/entry_points.txt +5 -0
- omnibase_infra-0.2.6.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Consumer group purpose enumeration.
|
|
4
|
+
|
|
5
|
+
This module defines the purpose classification for Kafka consumer groups,
|
|
6
|
+
enabling semantic differentiation of consumer behavior and offset policies.
|
|
7
|
+
|
|
8
|
+
Consumer Group Purpose Categories:
|
|
9
|
+
- CONSUME: Standard event consumption (default behavior)
|
|
10
|
+
- INTROSPECTION: Node introspection and discovery operations
|
|
11
|
+
- REPLAY: Reprocess historical data from earliest offset
|
|
12
|
+
- AUDIT: Compliance and read-only consumption
|
|
13
|
+
- BACKFILL: One-shot bounded consumers for populating derived state
|
|
14
|
+
|
|
15
|
+
The purpose determines consumer group naming conventions and default
|
|
16
|
+
offset reset policies in the Kafka adapter layer.
|
|
17
|
+
|
|
18
|
+
Thread Safety:
|
|
19
|
+
All enums in this module are immutable and thread-safe.
|
|
20
|
+
Enum values can be safely shared across threads without synchronization.
|
|
21
|
+
|
|
22
|
+
See Also:
|
|
23
|
+
- ModelKafkaConsumerConfig: Consumer configuration using this enum
|
|
24
|
+
- docs/decisions/adr-consumer-group-naming.md: Naming conventions
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
from __future__ import annotations
|
|
28
|
+
|
|
29
|
+
from enum import Enum
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class EnumConsumerGroupPurpose(str, Enum):
|
|
33
|
+
"""Consumer group purpose classification for Kafka consumers.
|
|
34
|
+
|
|
35
|
+
Defines the semantic purpose of a consumer group, which influences:
|
|
36
|
+
- Consumer group naming conventions (suffix added to group ID)
|
|
37
|
+
- Default offset reset policy (earliest vs latest)
|
|
38
|
+
- Expected consumption patterns (continuous vs bounded)
|
|
39
|
+
|
|
40
|
+
Values:
|
|
41
|
+
CONSUME: Standard event consumption for normal processing.
|
|
42
|
+
- Default offset reset: latest
|
|
43
|
+
- Naming: {base_group_id}-consume
|
|
44
|
+
- Pattern: Continuous consumption
|
|
45
|
+
|
|
46
|
+
INTROSPECTION: Node introspection and service discovery.
|
|
47
|
+
- Default offset reset: latest
|
|
48
|
+
- Naming: {base_group_id}-introspection
|
|
49
|
+
- Pattern: Targeted discovery queries
|
|
50
|
+
|
|
51
|
+
REPLAY: Reprocess historical data from the beginning.
|
|
52
|
+
- Default offset reset: earliest
|
|
53
|
+
- Naming: {base_group_id}-replay
|
|
54
|
+
- Pattern: Full topic reprocessing
|
|
55
|
+
|
|
56
|
+
AUDIT: Compliance and read-only consumption.
|
|
57
|
+
- Default offset reset: earliest
|
|
58
|
+
- Naming: {base_group_id}-audit
|
|
59
|
+
- Pattern: Full audit trail capture
|
|
60
|
+
|
|
61
|
+
BACKFILL: One-shot bounded consumers for derived state.
|
|
62
|
+
- Default offset reset: earliest
|
|
63
|
+
- Naming: {base_group_id}-backfill
|
|
64
|
+
- Pattern: Bounded consumption until caught up
|
|
65
|
+
|
|
66
|
+
Example:
|
|
67
|
+
>>> purpose = EnumConsumerGroupPurpose.REPLAY
|
|
68
|
+
>>> f"order-processor-{purpose.value}"
|
|
69
|
+
'order-processor-replay'
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
CONSUME = "consume"
|
|
73
|
+
"""Standard event consumption (default)."""
|
|
74
|
+
|
|
75
|
+
INTROSPECTION = "introspection"
|
|
76
|
+
"""Node introspection and discovery."""
|
|
77
|
+
|
|
78
|
+
REPLAY = "replay"
|
|
79
|
+
"""Reprocess historical data from earliest offset."""
|
|
80
|
+
|
|
81
|
+
AUDIT = "audit"
|
|
82
|
+
"""Compliance/read-only consumption."""
|
|
83
|
+
|
|
84
|
+
BACKFILL = "backfill"
|
|
85
|
+
"""One-shot bounded consumers for populating derived state."""
|
|
86
|
+
|
|
87
|
+
def __str__(self) -> str:
|
|
88
|
+
"""Return the string value for serialization."""
|
|
89
|
+
return self.value
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
__all__: list[str] = ["EnumConsumerGroupPurpose"]
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Contract Type Enumeration for ONEX Nodes.
|
|
4
|
+
|
|
5
|
+
Defines the valid contract types for ONEX node contracts. Contract types
|
|
6
|
+
correspond to the 4-node architecture (effect, compute, reducer, orchestrator)
|
|
7
|
+
plus an 'unknown' fallback for backfill scenarios where the type cannot be
|
|
8
|
+
determined from capabilities or node metadata.
|
|
9
|
+
|
|
10
|
+
This enum is distinct from EnumNodeArchetype in that:
|
|
11
|
+
- EnumNodeArchetype: Execution shape validation (what outputs are allowed)
|
|
12
|
+
- EnumContractType: Contract metadata (contract.yaml node_type field)
|
|
13
|
+
|
|
14
|
+
The UNKNOWN value exists specifically for data migration/backfill scenarios
|
|
15
|
+
where historical records may not have a determinable contract type. It is
|
|
16
|
+
NOT a valid type for new node registrations.
|
|
17
|
+
|
|
18
|
+
Related Tickets:
|
|
19
|
+
- OMN-1134: Registry Projection Extensions for Capabilities
|
|
20
|
+
|
|
21
|
+
See Also:
|
|
22
|
+
- EnumNodeArchetype: Node archetypes for execution shape validation
|
|
23
|
+
- EnumNodeKind: Core node kind enumeration (omnibase_core)
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
from enum import StrEnum
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class EnumContractType(StrEnum):
|
|
30
|
+
"""Contract type for ONEX nodes.
|
|
31
|
+
|
|
32
|
+
Defines the valid contract types used in node contract metadata,
|
|
33
|
+
registration projections, and capability discovery queries.
|
|
34
|
+
|
|
35
|
+
Attributes:
|
|
36
|
+
EFFECT: External interaction nodes (API calls, DB operations).
|
|
37
|
+
COMPUTE: Pure data processing and transformation nodes.
|
|
38
|
+
REDUCER: State management and persistence nodes.
|
|
39
|
+
ORCHESTRATOR: Workflow coordination nodes.
|
|
40
|
+
UNKNOWN: Fallback for backfill when type cannot be determined.
|
|
41
|
+
NOT valid for new node registrations.
|
|
42
|
+
|
|
43
|
+
Example:
|
|
44
|
+
>>> from omnibase_infra.enums import EnumContractType
|
|
45
|
+
>>> contract_type = EnumContractType.EFFECT
|
|
46
|
+
>>> contract_type.value
|
|
47
|
+
'effect'
|
|
48
|
+
>>> EnumContractType("reducer")
|
|
49
|
+
<EnumContractType.REDUCER: 'reducer'>
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
EFFECT = "effect"
|
|
53
|
+
COMPUTE = "compute"
|
|
54
|
+
REDUCER = "reducer"
|
|
55
|
+
ORCHESTRATOR = "orchestrator"
|
|
56
|
+
UNKNOWN = "unknown"
|
|
57
|
+
|
|
58
|
+
@classmethod
|
|
59
|
+
def valid_types(cls) -> tuple["EnumContractType", ...]:
|
|
60
|
+
"""Return valid contract types (excludes UNKNOWN).
|
|
61
|
+
|
|
62
|
+
UNKNOWN is a fallback for backfill scenarios and is not a valid
|
|
63
|
+
type for new node registrations.
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
Tuple of valid EnumContractType values (EFFECT, COMPUTE,
|
|
67
|
+
REDUCER, ORCHESTRATOR).
|
|
68
|
+
"""
|
|
69
|
+
return (cls.EFFECT, cls.COMPUTE, cls.REDUCER, cls.ORCHESTRATOR)
|
|
70
|
+
|
|
71
|
+
@classmethod
|
|
72
|
+
def valid_type_values(cls) -> tuple[str, ...]:
|
|
73
|
+
"""Return valid contract type string values (excludes 'unknown').
|
|
74
|
+
|
|
75
|
+
Convenience method for validation contexts where string values
|
|
76
|
+
are needed.
|
|
77
|
+
|
|
78
|
+
Returns:
|
|
79
|
+
Tuple of valid contract type strings.
|
|
80
|
+
"""
|
|
81
|
+
return tuple(t.value for t in cls.valid_types())
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
__all__ = ["EnumContractType"]
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 OmniNode Team <info@omninode.ai>
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
"""
|
|
5
|
+
Deduplication strategy enum for corpus capture.
|
|
6
|
+
|
|
7
|
+
Defines how duplicate executions are detected and handled.
|
|
8
|
+
|
|
9
|
+
.. versionadded:: 0.5.0
|
|
10
|
+
Added for CorpusCapture (OMN-1203)
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from enum import Enum
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class EnumDedupeStrategy(str, Enum):
|
|
17
|
+
"""
|
|
18
|
+
Deduplication strategies for corpus capture.
|
|
19
|
+
|
|
20
|
+
When capturing executions, duplicates can be detected and filtered
|
|
21
|
+
using different strategies based on what constitutes a "duplicate".
|
|
22
|
+
|
|
23
|
+
.. versionadded:: 0.5.0
|
|
24
|
+
Added for CorpusCapture (OMN-1203)
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
NONE = "none"
|
|
28
|
+
"""No deduplication. All executions are captured."""
|
|
29
|
+
|
|
30
|
+
INPUT_HASH = "input_hash"
|
|
31
|
+
"""
|
|
32
|
+
Deduplicate based on input hash.
|
|
33
|
+
|
|
34
|
+
Two executions with the same handler and input data are considered
|
|
35
|
+
duplicates. This is useful for capturing unique test cases without
|
|
36
|
+
redundant variations.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
FULL_MANIFEST_HASH = "full_manifest_hash"
|
|
40
|
+
"""
|
|
41
|
+
Deduplicate based on full manifest hash.
|
|
42
|
+
|
|
43
|
+
Only exact duplicates (same handler, input, output, timing, etc.)
|
|
44
|
+
are filtered. This preserves executions that had different outcomes
|
|
45
|
+
even with the same input.
|
|
46
|
+
"""
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""
|
|
4
|
+
Dispatch Status Enumeration.
|
|
5
|
+
|
|
6
|
+
Defines status values for message dispatch operations in the runtime dispatch engine.
|
|
7
|
+
Used to track the outcome of routing and handler execution.
|
|
8
|
+
|
|
9
|
+
Thread Safety:
|
|
10
|
+
All enums in this module are immutable and thread-safe.
|
|
11
|
+
Enum values can be safely shared across threads without synchronization.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from enum import Enum, unique
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@unique
|
|
18
|
+
class EnumDispatchStatus(str, Enum):
|
|
19
|
+
"""
|
|
20
|
+
Status values for dispatch operations.
|
|
21
|
+
|
|
22
|
+
Represents the outcome of a message dispatch operation, from initial
|
|
23
|
+
routing through handler execution and result publishing.
|
|
24
|
+
|
|
25
|
+
Values:
|
|
26
|
+
SUCCESS: Message was successfully routed, handled, and outputs published
|
|
27
|
+
ROUTED: Message was successfully routed to a dispatcher (not yet executed)
|
|
28
|
+
NO_DISPATCHER: No dispatcher was registered for the message type/topic
|
|
29
|
+
HANDLER_ERROR: Dispatcher execution failed with an exception
|
|
30
|
+
TIMEOUT: Dispatcher execution exceeded the configured timeout
|
|
31
|
+
INVALID_MESSAGE: Message failed validation before dispatch
|
|
32
|
+
PUBLISH_FAILED: Dispatcher succeeded but output publishing failed
|
|
33
|
+
SKIPPED: Message was intentionally skipped (e.g., filtered, deduplicated)
|
|
34
|
+
INTERNAL_ERROR: Internal error during dispatch result construction
|
|
35
|
+
|
|
36
|
+
Example:
|
|
37
|
+
>>> status = EnumDispatchStatus.SUCCESS
|
|
38
|
+
>>> status.is_terminal()
|
|
39
|
+
True
|
|
40
|
+
>>> EnumDispatchStatus.ROUTED.is_successful()
|
|
41
|
+
False
|
|
42
|
+
>>> str(EnumDispatchStatus.HANDLER_ERROR)
|
|
43
|
+
'handler_error'
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
SUCCESS = "success"
|
|
47
|
+
"""Message was successfully routed, handled, and outputs published."""
|
|
48
|
+
|
|
49
|
+
ROUTED = "routed"
|
|
50
|
+
"""Message was successfully routed to a dispatcher (pending execution)."""
|
|
51
|
+
|
|
52
|
+
NO_DISPATCHER = "no_dispatcher"
|
|
53
|
+
"""No dispatcher was registered for the message type/topic."""
|
|
54
|
+
|
|
55
|
+
HANDLER_ERROR = "handler_error"
|
|
56
|
+
"""Dispatcher execution failed with an exception."""
|
|
57
|
+
|
|
58
|
+
TIMEOUT = "timeout"
|
|
59
|
+
"""Dispatcher execution exceeded the configured timeout."""
|
|
60
|
+
|
|
61
|
+
INVALID_MESSAGE = "invalid_message"
|
|
62
|
+
"""Message failed validation before dispatch."""
|
|
63
|
+
|
|
64
|
+
PUBLISH_FAILED = "publish_failed"
|
|
65
|
+
"""Dispatcher succeeded but output publishing failed."""
|
|
66
|
+
|
|
67
|
+
SKIPPED = "skipped"
|
|
68
|
+
"""Message was intentionally skipped (e.g., filtered, deduplicated)."""
|
|
69
|
+
|
|
70
|
+
INTERNAL_ERROR = "internal_error"
|
|
71
|
+
"""Internal error during dispatch result construction (e.g., Pydantic ValidationError)."""
|
|
72
|
+
|
|
73
|
+
def __str__(self) -> str:
|
|
74
|
+
"""Return the string value for serialization."""
|
|
75
|
+
return self.value
|
|
76
|
+
|
|
77
|
+
def is_terminal(self) -> bool:
|
|
78
|
+
"""
|
|
79
|
+
Check if this status represents a terminal state.
|
|
80
|
+
|
|
81
|
+
Terminal states indicate the dispatch operation has completed
|
|
82
|
+
(either successfully or with a failure).
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
True if the status represents a terminal state, False otherwise
|
|
86
|
+
|
|
87
|
+
Example:
|
|
88
|
+
>>> EnumDispatchStatus.SUCCESS.is_terminal()
|
|
89
|
+
True
|
|
90
|
+
>>> EnumDispatchStatus.ROUTED.is_terminal()
|
|
91
|
+
False
|
|
92
|
+
"""
|
|
93
|
+
return self in {
|
|
94
|
+
EnumDispatchStatus.SUCCESS,
|
|
95
|
+
EnumDispatchStatus.NO_DISPATCHER,
|
|
96
|
+
EnumDispatchStatus.HANDLER_ERROR,
|
|
97
|
+
EnumDispatchStatus.TIMEOUT,
|
|
98
|
+
EnumDispatchStatus.INVALID_MESSAGE,
|
|
99
|
+
EnumDispatchStatus.PUBLISH_FAILED,
|
|
100
|
+
EnumDispatchStatus.SKIPPED,
|
|
101
|
+
EnumDispatchStatus.INTERNAL_ERROR,
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
def is_successful(self) -> bool:
|
|
105
|
+
"""
|
|
106
|
+
Check if this status represents a successful dispatch.
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
True only if status is SUCCESS, False otherwise
|
|
110
|
+
|
|
111
|
+
Example:
|
|
112
|
+
>>> EnumDispatchStatus.SUCCESS.is_successful()
|
|
113
|
+
True
|
|
114
|
+
>>> EnumDispatchStatus.ROUTED.is_successful()
|
|
115
|
+
False
|
|
116
|
+
"""
|
|
117
|
+
return self == EnumDispatchStatus.SUCCESS
|
|
118
|
+
|
|
119
|
+
def is_error(self) -> bool:
|
|
120
|
+
"""
|
|
121
|
+
Check if this status represents an error condition.
|
|
122
|
+
|
|
123
|
+
Returns:
|
|
124
|
+
True if the status represents an error, False otherwise
|
|
125
|
+
|
|
126
|
+
Example:
|
|
127
|
+
>>> EnumDispatchStatus.HANDLER_ERROR.is_error()
|
|
128
|
+
True
|
|
129
|
+
>>> EnumDispatchStatus.SUCCESS.is_error()
|
|
130
|
+
False
|
|
131
|
+
"""
|
|
132
|
+
return self in {
|
|
133
|
+
EnumDispatchStatus.NO_DISPATCHER,
|
|
134
|
+
EnumDispatchStatus.HANDLER_ERROR,
|
|
135
|
+
EnumDispatchStatus.TIMEOUT,
|
|
136
|
+
EnumDispatchStatus.INVALID_MESSAGE,
|
|
137
|
+
EnumDispatchStatus.PUBLISH_FAILED,
|
|
138
|
+
EnumDispatchStatus.INTERNAL_ERROR,
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
def requires_retry(self) -> bool:
|
|
142
|
+
"""
|
|
143
|
+
Check if this status indicates the operation should be retried.
|
|
144
|
+
|
|
145
|
+
Only transient failures (timeout, publish_failed) should be retried.
|
|
146
|
+
Permanent failures (no_dispatcher, invalid_message) should not be retried.
|
|
147
|
+
|
|
148
|
+
Returns:
|
|
149
|
+
True if the operation should be retried, False otherwise
|
|
150
|
+
|
|
151
|
+
Example:
|
|
152
|
+
>>> EnumDispatchStatus.TIMEOUT.requires_retry()
|
|
153
|
+
True
|
|
154
|
+
>>> EnumDispatchStatus.NO_DISPATCHER.requires_retry()
|
|
155
|
+
False
|
|
156
|
+
"""
|
|
157
|
+
return self in {
|
|
158
|
+
EnumDispatchStatus.TIMEOUT,
|
|
159
|
+
EnumDispatchStatus.PUBLISH_FAILED,
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@classmethod
|
|
163
|
+
def get_description(cls, status: "EnumDispatchStatus") -> str:
|
|
164
|
+
"""
|
|
165
|
+
Get a human-readable description of the dispatch status.
|
|
166
|
+
|
|
167
|
+
Args:
|
|
168
|
+
status: The dispatch status to describe
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
A human-readable description of the status
|
|
172
|
+
|
|
173
|
+
Example:
|
|
174
|
+
>>> EnumDispatchStatus.get_description(EnumDispatchStatus.SUCCESS)
|
|
175
|
+
'Message was successfully routed, handled, and outputs published'
|
|
176
|
+
"""
|
|
177
|
+
descriptions = {
|
|
178
|
+
cls.SUCCESS: "Message was successfully routed, handled, and outputs published",
|
|
179
|
+
cls.ROUTED: "Message was successfully routed to a dispatcher (pending execution)",
|
|
180
|
+
cls.NO_DISPATCHER: "No dispatcher was registered for the message type/topic",
|
|
181
|
+
cls.HANDLER_ERROR: "Dispatcher execution failed with an exception",
|
|
182
|
+
cls.TIMEOUT: "Dispatcher execution exceeded the configured timeout",
|
|
183
|
+
cls.INVALID_MESSAGE: "Message failed validation before dispatch",
|
|
184
|
+
cls.PUBLISH_FAILED: "Dispatcher succeeded but output publishing failed",
|
|
185
|
+
cls.SKIPPED: "Message was intentionally skipped",
|
|
186
|
+
cls.INTERNAL_ERROR: "Internal error during dispatch result construction",
|
|
187
|
+
}
|
|
188
|
+
return descriptions.get(status, "Unknown dispatch status")
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
__all__ = ["EnumDispatchStatus"]
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Environment enumeration for deployment target classification.
|
|
4
|
+
|
|
5
|
+
This module defines the deployment environment types used for security policy
|
|
6
|
+
validation and configuration management. Environment-aware security policies
|
|
7
|
+
can enforce different constraints based on the deployment target.
|
|
8
|
+
|
|
9
|
+
Usage:
|
|
10
|
+
The EnumEnvironment is used in security policy models to define
|
|
11
|
+
environment-specific constraints and in configuration to specify
|
|
12
|
+
the current deployment target.
|
|
13
|
+
|
|
14
|
+
See Also:
|
|
15
|
+
- ModelEnvironmentPolicy: Uses this enum for environment-specific constraints
|
|
16
|
+
- ModelHandlerSecurityPolicy: Handler-declared security requirements
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
from enum import Enum
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class EnumEnvironment(str, Enum):
|
|
23
|
+
"""Deployment environment classification.
|
|
24
|
+
|
|
25
|
+
Defines the deployment environments for security policy enforcement
|
|
26
|
+
and configuration management. Each environment has different security
|
|
27
|
+
postures and permitted capabilities.
|
|
28
|
+
|
|
29
|
+
Attributes:
|
|
30
|
+
DEVELOPMENT: Local development environment.
|
|
31
|
+
Most permissive, allows debugging features and relaxed security.
|
|
32
|
+
STAGING: Pre-production testing environment.
|
|
33
|
+
Production-like but allows some testing features.
|
|
34
|
+
PRODUCTION: Live production environment.
|
|
35
|
+
Most restrictive, enforces all security constraints.
|
|
36
|
+
CI: Continuous integration environment.
|
|
37
|
+
Automated testing, may have elevated permissions for test execution.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
DEVELOPMENT = "development"
|
|
41
|
+
STAGING = "staging"
|
|
42
|
+
PRODUCTION = "production"
|
|
43
|
+
CI = "ci"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
__all__ = ["EnumEnvironment"]
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Execution Shape Violation Enumeration.
|
|
4
|
+
|
|
5
|
+
Defines the canonical violation types for the ONEX execution shape validator.
|
|
6
|
+
These violations represent constraint breaches in the ONEX 4-node architecture
|
|
7
|
+
that would compromise system integrity or determinism guarantees.
|
|
8
|
+
|
|
9
|
+
Violation Categories:
|
|
10
|
+
- Return Type Violations: Handler returning forbidden output types
|
|
11
|
+
- Direct Publish Violations: Handler bypassing event bus routing
|
|
12
|
+
- Determinism Violations: Handler accessing non-deterministic resources
|
|
13
|
+
- Topic Mismatch Violations: Handler subscribed to wrong topic category
|
|
14
|
+
|
|
15
|
+
Note on PROJECTION Violations:
|
|
16
|
+
PROJECTION is a valid node output type (EnumNodeOutputType.PROJECTION) that
|
|
17
|
+
ONLY REDUCERs may produce. It is NOT a message routing category (not in
|
|
18
|
+
EnumMessageCategory). This distinction is critical:
|
|
19
|
+
|
|
20
|
+
- EnumNodeOutputType: Defines what a node CAN produce (includes PROJECTION)
|
|
21
|
+
- EnumMessageCategory: Defines how messages are ROUTED (excludes PROJECTION)
|
|
22
|
+
|
|
23
|
+
Projections represent aggregated state from REDUCER nodes. They are not
|
|
24
|
+
routed via Kafka topics like EVENTs, COMMANDs, and INTENTs. Violations like
|
|
25
|
+
ORCHESTRATOR_RETURNS_PROJECTIONS or EFFECT_RETURNS_PROJECTIONS indicate a
|
|
26
|
+
non-REDUCER node is incorrectly trying to produce aggregated state output.
|
|
27
|
+
|
|
28
|
+
See Also:
|
|
29
|
+
- EnumNodeOutputType: Defines valid node output types (includes PROJECTION)
|
|
30
|
+
- EnumMessageCategory: Defines message categories for routing (excludes PROJECTION)
|
|
31
|
+
- EnumHandlerType: Defines the 4-node architecture handler types
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
from enum import Enum
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class EnumExecutionShapeViolation(str, Enum):
|
|
38
|
+
"""Execution shape violation types for ONEX architecture compliance.
|
|
39
|
+
|
|
40
|
+
These represent constraint violations detected during static analysis
|
|
41
|
+
of ONEX handlers. Each violation type indicates a specific breach of
|
|
42
|
+
the 4-node architecture rules.
|
|
43
|
+
|
|
44
|
+
Return Type Violations:
|
|
45
|
+
FORBIDDEN_RETURN_TYPE: Generic violation for handler returning forbidden type.
|
|
46
|
+
Used as fallback when no specific violation type is mapped.
|
|
47
|
+
REDUCER_RETURNS_EVENTS: Reducer handlers cannot emit events.
|
|
48
|
+
Reducers manage state; event emission is an effect operation.
|
|
49
|
+
ORCHESTRATOR_RETURNS_INTENTS: Orchestrators cannot emit intents.
|
|
50
|
+
Intents originate from external systems, not orchestration.
|
|
51
|
+
ORCHESTRATOR_RETURNS_PROJECTIONS: Orchestrators cannot produce projections.
|
|
52
|
+
PROJECTION is a node output type (EnumNodeOutputType.PROJECTION), NOT a
|
|
53
|
+
message routing category (EnumMessageCategory). Projections represent
|
|
54
|
+
aggregated state and are ONLY valid for REDUCER node output types.
|
|
55
|
+
Orchestrators coordinate workflows and should return COMMANDs or EVENTs.
|
|
56
|
+
EFFECT_RETURNS_PROJECTIONS: Effect handlers cannot produce projections.
|
|
57
|
+
PROJECTION is a node output type (EnumNodeOutputType.PROJECTION), NOT a
|
|
58
|
+
message routing category (EnumMessageCategory). Projections represent
|
|
59
|
+
aggregated state and are ONLY valid for REDUCER node output types.
|
|
60
|
+
Effect handlers interact with external systems and should return
|
|
61
|
+
EVENTs or COMMANDs.
|
|
62
|
+
|
|
63
|
+
Operation Violations:
|
|
64
|
+
HANDLER_DIRECT_PUBLISH: Handler bypasses event bus for direct publish.
|
|
65
|
+
All message routing must go through the event bus abstraction.
|
|
66
|
+
REDUCER_ACCESSES_SYSTEM_TIME: Reducer accesses non-deterministic time.
|
|
67
|
+
Reducers must be deterministic for replay consistency.
|
|
68
|
+
|
|
69
|
+
Topic Violations:
|
|
70
|
+
TOPIC_CATEGORY_MISMATCH: Handler subscribed to wrong topic category.
|
|
71
|
+
Event handlers should subscribe to event topics, etc.
|
|
72
|
+
|
|
73
|
+
Routing Violations:
|
|
74
|
+
UNMAPPED_MESSAGE_ROUTE: Message type is not registered in routing.
|
|
75
|
+
All message types must have explicit route registrations.
|
|
76
|
+
|
|
77
|
+
Syntax/Parse Violations:
|
|
78
|
+
SYNTAX_ERROR: File contains invalid Python syntax.
|
|
79
|
+
File could not be parsed for analysis due to syntax errors.
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
# Return type violations
|
|
83
|
+
FORBIDDEN_RETURN_TYPE = "forbidden_return_type"
|
|
84
|
+
REDUCER_RETURNS_EVENTS = "reducer_returns_events"
|
|
85
|
+
ORCHESTRATOR_RETURNS_INTENTS = "orchestrator_returns_intents"
|
|
86
|
+
ORCHESTRATOR_RETURNS_PROJECTIONS = "orchestrator_returns_projections"
|
|
87
|
+
EFFECT_RETURNS_PROJECTIONS = "effect_returns_projections"
|
|
88
|
+
|
|
89
|
+
# Operation violations
|
|
90
|
+
HANDLER_DIRECT_PUBLISH = "handler_direct_publish"
|
|
91
|
+
REDUCER_ACCESSES_SYSTEM_TIME = "reducer_accesses_system_time"
|
|
92
|
+
|
|
93
|
+
# Topic violations
|
|
94
|
+
TOPIC_CATEGORY_MISMATCH = "topic_category_mismatch"
|
|
95
|
+
|
|
96
|
+
# Routing violations
|
|
97
|
+
UNMAPPED_MESSAGE_ROUTE = "unmapped_message_route"
|
|
98
|
+
|
|
99
|
+
# Syntax/parse violations
|
|
100
|
+
SYNTAX_ERROR = "syntax_error"
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
__all__ = ["EnumExecutionShapeViolation"]
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Handler Error Type Enumeration.
|
|
4
|
+
|
|
5
|
+
Defines the canonical error types for handler validation and lifecycle management.
|
|
6
|
+
These error types represent failures that can occur during handler registration,
|
|
7
|
+
validation, configuration, and execution within the ONEX infrastructure.
|
|
8
|
+
|
|
9
|
+
Error Categories:
|
|
10
|
+
- Contract Errors: YAML parsing and schema validation failures
|
|
11
|
+
- Validation Errors: Descriptor and constraint validation failures
|
|
12
|
+
- Configuration Errors: Handler configuration and setup failures
|
|
13
|
+
- Registration Errors: Handler registration and lifecycle failures
|
|
14
|
+
- Type Errors: Handler type mismatches and compatibility issues
|
|
15
|
+
- Security Errors: Security constraint violations
|
|
16
|
+
- Architecture Errors: ONEX architecture pattern violations
|
|
17
|
+
- Execution Errors: Runtime execution shape violations
|
|
18
|
+
|
|
19
|
+
These error types provide structured classification for handler-related failures,
|
|
20
|
+
enabling precise error reporting, debugging, and recovery strategies.
|
|
21
|
+
|
|
22
|
+
See Also:
|
|
23
|
+
- EnumExecutionShapeViolation: Specific execution shape violations
|
|
24
|
+
- EnumHandlerType: Defines the 4-node architecture handler types
|
|
25
|
+
- ModelHandlerValidationError: Structured error reporting model
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
from enum import Enum
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class EnumHandlerErrorType(str, Enum):
|
|
32
|
+
"""Handler error types for validation and lifecycle management.
|
|
33
|
+
|
|
34
|
+
These represent structured error classifications for failures that occur
|
|
35
|
+
during handler validation, registration, configuration, and execution.
|
|
36
|
+
Each error type indicates a specific category of failure.
|
|
37
|
+
|
|
38
|
+
Contract Errors:
|
|
39
|
+
CONTRACT_PARSE_ERROR: Contract YAML parsing failed.
|
|
40
|
+
The handler's contract.yaml file could not be parsed due to
|
|
41
|
+
invalid YAML syntax or structure.
|
|
42
|
+
CONTRACT_VALIDATION_ERROR: Contract field validation failed.
|
|
43
|
+
The parsed contract contains invalid field values or violates
|
|
44
|
+
schema constraints defined in the ONEX contract specification.
|
|
45
|
+
|
|
46
|
+
Discovery Errors:
|
|
47
|
+
DISCOVERY_ERROR: Handler discovery failed due to infrastructure issues.
|
|
48
|
+
The handler could not be discovered due to connection failures,
|
|
49
|
+
timeouts, or other infrastructure problems (e.g., Consul unavailable,
|
|
50
|
+
network errors). This is distinct from parse/validation errors which
|
|
51
|
+
occur AFTER the contract is successfully retrieved.
|
|
52
|
+
|
|
53
|
+
Validation Errors:
|
|
54
|
+
DESCRIPTOR_VALIDATION_ERROR: Handler descriptor validation failed.
|
|
55
|
+
The handler descriptor (metadata, annotations, signature) does not
|
|
56
|
+
meet ONEX requirements for the declared handler type.
|
|
57
|
+
SECURITY_VALIDATION_ERROR: Security constraint violated.
|
|
58
|
+
The handler violates security policies such as introspection
|
|
59
|
+
restrictions, input validation requirements, or secret handling.
|
|
60
|
+
ARCHITECTURE_VALIDATION_ERROR: Architecture pattern violated.
|
|
61
|
+
The handler violates ONEX architectural patterns such as layering,
|
|
62
|
+
dependency injection, or node archetype responsibilities.
|
|
63
|
+
|
|
64
|
+
Execution Errors:
|
|
65
|
+
EXECUTION_SHAPE_VIOLATION: ONEX execution shape violated.
|
|
66
|
+
The handler violates execution shape constraints defined by the
|
|
67
|
+
4-node architecture (e.g., REDUCER returning events, direct publish).
|
|
68
|
+
See EnumExecutionShapeViolation for specific violation types.
|
|
69
|
+
|
|
70
|
+
Configuration Errors:
|
|
71
|
+
CONFIGURATION_ERROR: Handler configuration invalid.
|
|
72
|
+
The handler's configuration (environment variables, service endpoints,
|
|
73
|
+
container dependencies) is invalid or incomplete.
|
|
74
|
+
|
|
75
|
+
Registration Errors:
|
|
76
|
+
REGISTRATION_ERROR: Handler registration failed.
|
|
77
|
+
The handler could not be registered with the handler registry due to
|
|
78
|
+
duplicate registration, missing dependencies, or lifecycle failures.
|
|
79
|
+
|
|
80
|
+
Type Errors:
|
|
81
|
+
TYPE_MISMATCH_ERROR: Handler type doesn't match expected.
|
|
82
|
+
The handler's declared type (EFFECT, COMPUTE, REDUCER, ORCHESTRATOR)
|
|
83
|
+
does not match the contract specification or runtime behavior.
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
# Contract errors
|
|
87
|
+
CONTRACT_PARSE_ERROR = "contract_parse_error"
|
|
88
|
+
CONTRACT_VALIDATION_ERROR = "contract_validation_error"
|
|
89
|
+
|
|
90
|
+
# Discovery errors
|
|
91
|
+
DISCOVERY_ERROR = "discovery_error"
|
|
92
|
+
|
|
93
|
+
# Validation errors
|
|
94
|
+
DESCRIPTOR_VALIDATION_ERROR = "descriptor_validation_error"
|
|
95
|
+
SECURITY_VALIDATION_ERROR = "security_validation_error"
|
|
96
|
+
ARCHITECTURE_VALIDATION_ERROR = "architecture_validation_error"
|
|
97
|
+
|
|
98
|
+
# Execution errors
|
|
99
|
+
EXECUTION_SHAPE_VIOLATION = "execution_shape_violation"
|
|
100
|
+
|
|
101
|
+
# Configuration errors
|
|
102
|
+
CONFIGURATION_ERROR = "configuration_error"
|
|
103
|
+
|
|
104
|
+
# Registration errors
|
|
105
|
+
REGISTRATION_ERROR = "registration_error"
|
|
106
|
+
|
|
107
|
+
# Type errors
|
|
108
|
+
TYPE_MISMATCH_ERROR = "type_mismatch_error"
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
__all__ = ["EnumHandlerErrorType"]
|