omnibase_infra 0.2.1__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/cli/__init__.py +1 -0
- omnibase_infra/cli/commands.py +216 -0
- omnibase_infra/clients/__init__.py +0 -0
- omnibase_infra/contracts/handlers/filesystem/handler_contract.yaml +261 -0
- omnibase_infra/contracts/handlers/mcp/handler_contract.yaml +138 -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 +123 -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_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 +101 -0
- omnibase_infra/enums/enum_handler_loader_error.py +178 -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_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 +156 -0
- omnibase_infra/errors/error_architecture_violation.py +152 -0
- omnibase_infra/errors/error_chain_propagation.py +188 -0
- omnibase_infra/errors/error_compute_registry.py +92 -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 +102 -0
- omnibase_infra/errors/error_infra.py +608 -0
- omnibase_infra/errors/error_message_type_registry.py +101 -0
- omnibase_infra/errors/error_policy_registry.py +112 -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 +86 -0
- omnibase_infra/event_bus/event_bus_inmemory.py +743 -0
- omnibase_infra/event_bus/event_bus_kafka.py +1658 -0
- omnibase_infra/event_bus/mixin_kafka_broadcast.py +184 -0
- omnibase_infra/event_bus/mixin_kafka_dlq.py +765 -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 +725 -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/topic_constants.py +376 -0
- omnibase_infra/handlers/__init__.py +75 -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 +787 -0
- omnibase_infra/handlers/handler_db.py +1039 -0
- omnibase_infra/handlers/handler_filesystem.py +1478 -0
- omnibase_infra/handlers/handler_graph.py +1154 -0
- omnibase_infra/handlers/handler_http.py +920 -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 +748 -0
- omnibase_infra/handlers/handler_qdrant.py +1076 -0
- omnibase_infra/handlers/handler_vault.py +422 -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 +42 -0
- omnibase_infra/handlers/mixins/mixin_consul_initialization.py +349 -0
- omnibase_infra/handlers/mixins/mixin_consul_kv.py +337 -0
- omnibase_infra/handlers/mixins/mixin_consul_service.py +277 -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 +915 -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 +747 -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 +99 -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/mixins/__init__.py +71 -0
- omnibase_infra/mixins/mixin_async_circuit_breaker.py +655 -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 +2465 -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 +136 -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 +311 -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 +147 -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_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 +37 -0
- omnibase_infra/models/handlers/model_contract_discovery_result.py +80 -0
- omnibase_infra/models/handlers/model_handler_descriptor.py +185 -0
- omnibase_infra/models/handlers/model_handler_identifier.py +215 -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/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 +590 -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 +59 -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_introspection_metrics.py +253 -0
- omnibase_infra/models/registration/model_node_capabilities.py +179 -0
- omnibase_infra/models/registration/model_node_heartbeat_event.py +126 -0
- omnibase_infra/models/registration/model_node_introspection_event.py +175 -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 +40 -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 +280 -0
- omnibase_infra/models/runtime/model_loaded_handler.py +120 -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 +48 -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 +208 -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 +99 -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/effects/README.md +358 -0
- omnibase_infra/nodes/effects/__init__.py +26 -0
- omnibase_infra/nodes/effects/contract.yaml +172 -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/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 +475 -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 +609 -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 +525 -0
- omnibase_infra/nodes/node_registration_orchestrator/timeout_coordinator.py +392 -0
- omnibase_infra/nodes/node_registration_orchestrator/wiring.py +742 -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 +225 -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 +109 -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 +194 -0
- omnibase_infra/nodes/node_registry_effect/__init__.py +85 -0
- omnibase_infra/nodes/node_registry_effect/contract.yaml +682 -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 +416 -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 +214 -0
- omnibase_infra/nodes/reducers/__init__.py +30 -0
- omnibase_infra/nodes/reducers/models/__init__.py +32 -0
- omnibase_infra/nodes/reducers/models/model_payload_consul_register.py +76 -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 +1137 -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 +435 -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 +99 -0
- omnibase_infra/protocols/protocol_capability_projection.py +253 -0
- omnibase_infra/protocols/protocol_capability_query.py +251 -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 +296 -0
- omnibase_infra/runtime/binding_config_resolver.py +2706 -0
- omnibase_infra/runtime/chain_aware_dispatch.py +467 -0
- omnibase_infra/runtime/contract_handler_discovery.py +582 -0
- omnibase_infra/runtime/contract_loaders/__init__.py +42 -0
- omnibase_infra/runtime/contract_loaders/handler_routing_loader.py +464 -0
- omnibase_infra/runtime/dispatch_context_enforcer.py +427 -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/handler_contract_source.py +669 -0
- omnibase_infra/runtime/handler_plugin_loader.py +2029 -0
- omnibase_infra/runtime/handler_registry.py +321 -0
- omnibase_infra/runtime/invocation_security_enforcer.py +427 -0
- omnibase_infra/runtime/kernel.py +40 -0
- omnibase_infra/runtime/mixin_policy_validation.py +522 -0
- omnibase_infra/runtime/mixin_semver_cache.py +378 -0
- omnibase_infra/runtime/mixins/__init__.py +17 -0
- omnibase_infra/runtime/mixins/mixin_projector_sql_operations.py +757 -0
- omnibase_infra/runtime/models/__init__.py +192 -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_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 +228 -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_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_scheduler_config.py +624 -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_shutdown_batch_result.py +75 -0
- omnibase_infra/runtime/models/model_shutdown_config.py +94 -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 +1102 -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 +27 -0
- omnibase_infra/runtime/protocols/protocol_runtime_scheduler.py +468 -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 +444 -0
- omnibase_infra/runtime/registry_compute.py +1143 -0
- omnibase_infra/runtime/registry_dispatcher.py +678 -0
- omnibase_infra/runtime/registry_policy.py +1502 -0
- omnibase_infra/runtime/runtime_scheduler.py +1070 -0
- omnibase_infra/runtime/secret_resolver.py +2110 -0
- omnibase_infra/runtime/security_metadata_validator.py +776 -0
- omnibase_infra/runtime/service_kernel.py +1573 -0
- omnibase_infra/runtime/service_message_dispatch_engine.py +1805 -0
- omnibase_infra/runtime/service_runtime_host_process.py +2260 -0
- omnibase_infra/runtime/util_container_wiring.py +1123 -0
- omnibase_infra/runtime/util_validation.py +314 -0
- omnibase_infra/runtime/util_version.py +98 -0
- omnibase_infra/runtime/util_wiring.py +566 -0
- omnibase_infra/schemas/schema_registration_projection.sql +320 -0
- omnibase_infra/services/__init__.py +68 -0
- omnibase_infra/services/corpus_capture.py +678 -0
- omnibase_infra/services/service_capability_query.py +945 -0
- omnibase_infra/services/service_health.py +897 -0
- omnibase_infra/services/service_node_selector.py +530 -0
- omnibase_infra/services/service_timeout_emitter.py +682 -0
- omnibase_infra/services/service_timeout_scanner.py +390 -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/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 +21 -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 +89 -0
- omnibase_infra/utils/correlation.py +208 -0
- omnibase_infra/utils/util_datetime.py +372 -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_semver.py +233 -0
- omnibase_infra/validation/__init__.py +307 -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 +1486 -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 +1710 -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 +410 -0
- omnibase_infra/validation/validator_topic_category.py +1152 -0
- omnibase_infra-0.2.1.dist-info/METADATA +197 -0
- omnibase_infra-0.2.1.dist-info/RECORD +675 -0
- omnibase_infra-0.2.1.dist-info/WHEEL +4 -0
- omnibase_infra-0.2.1.dist-info/entry_points.txt +4 -0
- omnibase_infra-0.2.1.dist-info/licenses/LICENSE +21 -0
|
@@ -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,101 @@
|
|
|
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
|
+
Validation Errors:
|
|
47
|
+
DESCRIPTOR_VALIDATION_ERROR: Handler descriptor validation failed.
|
|
48
|
+
The handler descriptor (metadata, annotations, signature) does not
|
|
49
|
+
meet ONEX requirements for the declared handler type.
|
|
50
|
+
SECURITY_VALIDATION_ERROR: Security constraint violated.
|
|
51
|
+
The handler violates security policies such as introspection
|
|
52
|
+
restrictions, input validation requirements, or secret handling.
|
|
53
|
+
ARCHITECTURE_VALIDATION_ERROR: Architecture pattern violated.
|
|
54
|
+
The handler violates ONEX architectural patterns such as layering,
|
|
55
|
+
dependency injection, or node archetype responsibilities.
|
|
56
|
+
|
|
57
|
+
Execution Errors:
|
|
58
|
+
EXECUTION_SHAPE_VIOLATION: ONEX execution shape violated.
|
|
59
|
+
The handler violates execution shape constraints defined by the
|
|
60
|
+
4-node architecture (e.g., REDUCER returning events, direct publish).
|
|
61
|
+
See EnumExecutionShapeViolation for specific violation types.
|
|
62
|
+
|
|
63
|
+
Configuration Errors:
|
|
64
|
+
CONFIGURATION_ERROR: Handler configuration invalid.
|
|
65
|
+
The handler's configuration (environment variables, service endpoints,
|
|
66
|
+
container dependencies) is invalid or incomplete.
|
|
67
|
+
|
|
68
|
+
Registration Errors:
|
|
69
|
+
REGISTRATION_ERROR: Handler registration failed.
|
|
70
|
+
The handler could not be registered with the handler registry due to
|
|
71
|
+
duplicate registration, missing dependencies, or lifecycle failures.
|
|
72
|
+
|
|
73
|
+
Type Errors:
|
|
74
|
+
TYPE_MISMATCH_ERROR: Handler type doesn't match expected.
|
|
75
|
+
The handler's declared type (EFFECT, COMPUTE, REDUCER, ORCHESTRATOR)
|
|
76
|
+
does not match the contract specification or runtime behavior.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
# Contract errors
|
|
80
|
+
CONTRACT_PARSE_ERROR = "contract_parse_error"
|
|
81
|
+
CONTRACT_VALIDATION_ERROR = "contract_validation_error"
|
|
82
|
+
|
|
83
|
+
# Validation errors
|
|
84
|
+
DESCRIPTOR_VALIDATION_ERROR = "descriptor_validation_error"
|
|
85
|
+
SECURITY_VALIDATION_ERROR = "security_validation_error"
|
|
86
|
+
ARCHITECTURE_VALIDATION_ERROR = "architecture_validation_error"
|
|
87
|
+
|
|
88
|
+
# Execution errors
|
|
89
|
+
EXECUTION_SHAPE_VIOLATION = "execution_shape_violation"
|
|
90
|
+
|
|
91
|
+
# Configuration errors
|
|
92
|
+
CONFIGURATION_ERROR = "configuration_error"
|
|
93
|
+
|
|
94
|
+
# Registration errors
|
|
95
|
+
REGISTRATION_ERROR = "registration_error"
|
|
96
|
+
|
|
97
|
+
# Type errors
|
|
98
|
+
TYPE_MISMATCH_ERROR = "type_mismatch_error"
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
__all__ = ["EnumHandlerErrorType"]
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Handler Loader Error Code Enumeration.
|
|
4
|
+
|
|
5
|
+
Defines structured error codes for the HandlerPluginLoader system. These codes
|
|
6
|
+
enable precise error classification, debugging, and programmatic error handling
|
|
7
|
+
for handler contract discovery and loading operations.
|
|
8
|
+
|
|
9
|
+
Error Code Ranges:
|
|
10
|
+
- 001-009: File-level errors (load_from_contract)
|
|
11
|
+
- 010-019: Import errors (handler class loading)
|
|
12
|
+
- 020-029: Directory-level errors (load_from_directory)
|
|
13
|
+
- 030-039: Pattern errors (discover_and_load)
|
|
14
|
+
- 040-049: Configuration errors (ambiguous configurations)
|
|
15
|
+
|
|
16
|
+
Usage:
|
|
17
|
+
>>> from omnibase_infra.enums import EnumHandlerLoaderError
|
|
18
|
+
>>> error_code = EnumHandlerLoaderError.FILE_NOT_FOUND
|
|
19
|
+
>>> print(f"Error: {error_code.value}")
|
|
20
|
+
Error: HANDLER_LOADER_001
|
|
21
|
+
|
|
22
|
+
>>> # Check error code in exception handling
|
|
23
|
+
>>> try:
|
|
24
|
+
... loader.load_from_contract(path)
|
|
25
|
+
... except ProtocolConfigurationError as e:
|
|
26
|
+
... if e.model.context.get("loader_error") == EnumHandlerLoaderError.NOT_A_FILE.value:
|
|
27
|
+
... print("Path exists but is not a file")
|
|
28
|
+
|
|
29
|
+
See Also:
|
|
30
|
+
- HandlerPluginLoader: Implementation using these error codes
|
|
31
|
+
- ProtocolHandlerPluginLoader: Protocol defining error code contracts
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
from enum import Enum
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class EnumHandlerLoaderError(str, Enum):
|
|
38
|
+
"""Error codes for handler plugin loader operations.
|
|
39
|
+
|
|
40
|
+
These codes provide structured classification for failures during
|
|
41
|
+
handler contract discovery, parsing, validation, and class loading.
|
|
42
|
+
|
|
43
|
+
File-Level Errors (001-009):
|
|
44
|
+
FILE_NOT_FOUND: Contract file path does not exist.
|
|
45
|
+
The specified contract file path does not exist on the filesystem.
|
|
46
|
+
Verify the path is correct and the file has not been moved/deleted.
|
|
47
|
+
|
|
48
|
+
INVALID_YAML_SYNTAX: Contract file contains invalid YAML.
|
|
49
|
+
The contract file could not be parsed due to YAML syntax errors.
|
|
50
|
+
Check for proper indentation, quoting, and YAML structure.
|
|
51
|
+
|
|
52
|
+
SCHEMA_VALIDATION_FAILED: Contract fails schema validation.
|
|
53
|
+
The parsed YAML does not conform to the handler contract schema.
|
|
54
|
+
This includes empty files or files with only comments.
|
|
55
|
+
|
|
56
|
+
MISSING_REQUIRED_FIELDS: Contract is missing required fields.
|
|
57
|
+
Required fields (handler_name, handler_class, handler_type) are missing.
|
|
58
|
+
Add the missing fields to the contract file.
|
|
59
|
+
|
|
60
|
+
FILE_SIZE_EXCEEDED: Contract file exceeds size limit.
|
|
61
|
+
The contract file exceeds the maximum allowed size (10MB).
|
|
62
|
+
Contract files should be small configuration files.
|
|
63
|
+
|
|
64
|
+
PROTOCOL_NOT_IMPLEMENTED: Handler does not implement protocol.
|
|
65
|
+
The handler class does not implement the required ProtocolHandler
|
|
66
|
+
interface (missing required methods like describe, initialize, etc.).
|
|
67
|
+
|
|
68
|
+
NOT_A_FILE: Path exists but is not a regular file.
|
|
69
|
+
The specified path exists but is a directory, symlink, or other
|
|
70
|
+
non-regular file type. Only regular files can be loaded as contracts.
|
|
71
|
+
|
|
72
|
+
FILE_READ_ERROR: Failed to read contract file.
|
|
73
|
+
An I/O error occurred while reading the contract file contents.
|
|
74
|
+
Check file permissions and filesystem accessibility.
|
|
75
|
+
|
|
76
|
+
FILE_STAT_ERROR: Failed to stat contract file.
|
|
77
|
+
An I/O error occurred while checking file metadata (size, type).
|
|
78
|
+
Check file permissions and filesystem accessibility.
|
|
79
|
+
|
|
80
|
+
Import Errors (010-019):
|
|
81
|
+
MODULE_NOT_FOUND: Handler module not found.
|
|
82
|
+
The module specified in handler_class cannot be found.
|
|
83
|
+
Verify the module path and ensure it's installed/accessible.
|
|
84
|
+
|
|
85
|
+
CLASS_NOT_FOUND: Handler class not found in module.
|
|
86
|
+
The module exists but does not contain the specified class.
|
|
87
|
+
Verify the class name matches exactly (case-sensitive).
|
|
88
|
+
|
|
89
|
+
IMPORT_ERROR: Import error loading handler module.
|
|
90
|
+
The module exists but failed to import due to syntax errors,
|
|
91
|
+
missing dependencies, or circular imports.
|
|
92
|
+
|
|
93
|
+
NAMESPACE_NOT_ALLOWED: Handler module namespace not in allowed list.
|
|
94
|
+
The handler module's namespace (package prefix) is not in the
|
|
95
|
+
configured allowed_namespaces list. This is a security control to
|
|
96
|
+
prevent loading handlers from untrusted packages. Add the module's
|
|
97
|
+
namespace prefix to allowed_namespaces or remove the restriction.
|
|
98
|
+
|
|
99
|
+
Directory Errors (020-029):
|
|
100
|
+
DIRECTORY_NOT_FOUND: Directory does not exist.
|
|
101
|
+
The specified directory path does not exist on the filesystem.
|
|
102
|
+
|
|
103
|
+
PERMISSION_DENIED: Permission denied accessing directory.
|
|
104
|
+
Insufficient permissions to read the directory contents.
|
|
105
|
+
|
|
106
|
+
NOT_A_DIRECTORY: Path exists but is not a directory.
|
|
107
|
+
The specified path exists but is a file or other non-directory.
|
|
108
|
+
|
|
109
|
+
Pattern Errors (030-039):
|
|
110
|
+
EMPTY_PATTERNS_LIST: Patterns list cannot be empty.
|
|
111
|
+
The discover_and_load method requires at least one glob pattern.
|
|
112
|
+
|
|
113
|
+
INVALID_GLOB_PATTERN: Invalid glob pattern syntax.
|
|
114
|
+
The provided glob pattern has invalid syntax.
|
|
115
|
+
|
|
116
|
+
Configuration Errors (040-049):
|
|
117
|
+
AMBIGUOUS_CONTRACT_CONFIGURATION: Both handler_contract.yaml and contract.yaml
|
|
118
|
+
exist in the same directory. This is an ambiguous configuration that could
|
|
119
|
+
lead to duplicate handler registrations or unexpected behavior. Use only
|
|
120
|
+
ONE contract file per handler directory to avoid this error.
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
# File-level errors (001-009)
|
|
124
|
+
FILE_NOT_FOUND = "HANDLER_LOADER_001"
|
|
125
|
+
INVALID_YAML_SYNTAX = "HANDLER_LOADER_002"
|
|
126
|
+
SCHEMA_VALIDATION_FAILED = "HANDLER_LOADER_003"
|
|
127
|
+
MISSING_REQUIRED_FIELDS = "HANDLER_LOADER_004"
|
|
128
|
+
FILE_SIZE_EXCEEDED = "HANDLER_LOADER_005"
|
|
129
|
+
PROTOCOL_NOT_IMPLEMENTED = "HANDLER_LOADER_006"
|
|
130
|
+
NOT_A_FILE = "HANDLER_LOADER_007"
|
|
131
|
+
FILE_READ_ERROR = "HANDLER_LOADER_008"
|
|
132
|
+
FILE_STAT_ERROR = "HANDLER_LOADER_009"
|
|
133
|
+
|
|
134
|
+
# Import errors (010-019)
|
|
135
|
+
MODULE_NOT_FOUND = "HANDLER_LOADER_010"
|
|
136
|
+
CLASS_NOT_FOUND = "HANDLER_LOADER_011"
|
|
137
|
+
IMPORT_ERROR = "HANDLER_LOADER_012"
|
|
138
|
+
NAMESPACE_NOT_ALLOWED = "HANDLER_LOADER_013"
|
|
139
|
+
|
|
140
|
+
# Directory errors (020-029)
|
|
141
|
+
DIRECTORY_NOT_FOUND = "HANDLER_LOADER_020"
|
|
142
|
+
PERMISSION_DENIED = "HANDLER_LOADER_021"
|
|
143
|
+
NOT_A_DIRECTORY = "HANDLER_LOADER_022"
|
|
144
|
+
|
|
145
|
+
# Pattern errors (030-039)
|
|
146
|
+
EMPTY_PATTERNS_LIST = "HANDLER_LOADER_030"
|
|
147
|
+
INVALID_GLOB_PATTERN = "HANDLER_LOADER_031"
|
|
148
|
+
|
|
149
|
+
# Configuration errors (040-049)
|
|
150
|
+
AMBIGUOUS_CONTRACT_CONFIGURATION = "HANDLER_LOADER_040"
|
|
151
|
+
|
|
152
|
+
@property
|
|
153
|
+
def is_file_error(self) -> bool:
|
|
154
|
+
"""Check if this is a file-level error (001-009)."""
|
|
155
|
+
return self.value.startswith("HANDLER_LOADER_00")
|
|
156
|
+
|
|
157
|
+
@property
|
|
158
|
+
def is_import_error(self) -> bool:
|
|
159
|
+
"""Check if this is an import error (010-019)."""
|
|
160
|
+
return self.value.startswith("HANDLER_LOADER_01")
|
|
161
|
+
|
|
162
|
+
@property
|
|
163
|
+
def is_directory_error(self) -> bool:
|
|
164
|
+
"""Check if this is a directory error (020-029)."""
|
|
165
|
+
return self.value.startswith("HANDLER_LOADER_02")
|
|
166
|
+
|
|
167
|
+
@property
|
|
168
|
+
def is_pattern_error(self) -> bool:
|
|
169
|
+
"""Check if this is a pattern error (030-039)."""
|
|
170
|
+
return self.value.startswith("HANDLER_LOADER_03")
|
|
171
|
+
|
|
172
|
+
@property
|
|
173
|
+
def is_configuration_error(self) -> bool:
|
|
174
|
+
"""Check if this is a configuration error (040-049)."""
|
|
175
|
+
return self.value.startswith("HANDLER_LOADER_04")
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
__all__ = ["EnumHandlerLoaderError"]
|