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,132 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""ONEX Infrastructure Enumerations Module.
|
|
4
|
+
|
|
5
|
+
Provides infrastructure-specific enumerations for transport types,
|
|
6
|
+
protocol identification, policy classification, dispatch status,
|
|
7
|
+
message categories, topic types, topic standards, chain validation,
|
|
8
|
+
registration states, handler types, handler error types, handler source types,
|
|
9
|
+
node archetypes, introspection reasons, contract types, circuit breaker states, retry error categories,
|
|
10
|
+
any type violations, security validation, validation severity, selection strategies, backend types,
|
|
11
|
+
registration status, confirmation events, and other infrastructure concerns.
|
|
12
|
+
|
|
13
|
+
Exports:
|
|
14
|
+
EnumAnyTypeViolation: Any type violation categories for strong typing validation
|
|
15
|
+
EnumBackendType: Infrastructure backend types (CONSUL, POSTGRES)
|
|
16
|
+
EnumChainViolationType: Chain violation types for correlation/causation validation
|
|
17
|
+
EnumCircuitState: Circuit breaker states (CLOSED, OPEN, HALF_OPEN)
|
|
18
|
+
EnumConfirmationEventType: Registration confirmation event types
|
|
19
|
+
EnumConsumerGroupPurpose: Consumer group purpose (CONSUME, INTROSPECTION, REPLAY, AUDIT, BACKFILL)
|
|
20
|
+
EnumContractType: Contract types for ONEX nodes (effect, compute, reducer, orchestrator)
|
|
21
|
+
EnumDispatchStatus: Dispatch operation status enumeration
|
|
22
|
+
EnumEnvironment: Deployment environment classification (DEVELOPMENT, STAGING, PRODUCTION, CI)
|
|
23
|
+
EnumExecutionShapeViolation: Specific execution shape violation types
|
|
24
|
+
EnumHandlerErrorType: Handler error types for validation and lifecycle
|
|
25
|
+
EnumHandlerLoaderError: Handler loader error codes for plugin loading
|
|
26
|
+
EnumResponseStatus: Handler response status (SUCCESS, ERROR)
|
|
27
|
+
EnumHandlerSourceMode: Handler source modes for loading strategy (BOOTSTRAP, CONTRACT, HYBRID)
|
|
28
|
+
EnumHandlerSourceType: Handler validation error source types
|
|
29
|
+
EnumHandlerType: Handler architectural roles (INFRA_HANDLER, NODE_HANDLER)
|
|
30
|
+
EnumHandlerTypeCategory: Behavioral classification (COMPUTE, EFFECT)
|
|
31
|
+
EnumInfraTransportType: Infrastructure transport type enumeration
|
|
32
|
+
EnumIntrospectionReason: Introspection event reasons (STARTUP, SHUTDOWN, etc.)
|
|
33
|
+
EnumKafkaAcks: Kafka producer acknowledgment policy (ALL, NONE, LEADER, ALL_REPLICAS)
|
|
34
|
+
EnumMessageCategory: Message categories (EVENT, COMMAND, INTENT)
|
|
35
|
+
EnumNodeArchetype: 4-node architecture (EFFECT, COMPUTE, REDUCER, ORCHESTRATOR)
|
|
36
|
+
EnumNodeOutputType: Node output types for execution shape validation
|
|
37
|
+
EnumNonRetryableErrorCategory: Non-retryable error categories for DLQ
|
|
38
|
+
EnumPolicyType: Policy types for RegistryPolicy plugins
|
|
39
|
+
EnumRegistrationState: Registration FSM states for two-way registration
|
|
40
|
+
EnumRegistrationStatus: Registration workflow status (IDLE, PENDING, PARTIAL, COMPLETE, FAILED)
|
|
41
|
+
EnumRegistryResponseStatus: Registry operation response status (SUCCESS, PARTIAL, FAILED)
|
|
42
|
+
EnumRetryErrorCategory: Error categories for retry decision making
|
|
43
|
+
EnumSecurityRuleId: Security validation rule identifiers for OMN-1098
|
|
44
|
+
EnumSelectionStrategy: Selection strategies for capability-based discovery (FIRST, RANDOM, ROUND_ROBIN, LEAST_LOADED)
|
|
45
|
+
EnumTopicStandard: Topic standards (ONEX_KAFKA, ENVIRONMENT_AWARE)
|
|
46
|
+
EnumTopicType: Topic types (EVENTS, COMMANDS, INTENTS, SNAPSHOTS)
|
|
47
|
+
EnumValidationSeverity: Validation error severity levels (ERROR, CRITICAL, WARNING)
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
from omnibase_core.enums import EnumTopicType
|
|
51
|
+
from omnibase_infra.enums.enum_any_type_violation import EnumAnyTypeViolation
|
|
52
|
+
from omnibase_infra.enums.enum_backend_type import EnumBackendType
|
|
53
|
+
from omnibase_infra.enums.enum_capture_outcome import EnumCaptureOutcome
|
|
54
|
+
from omnibase_infra.enums.enum_capture_state import EnumCaptureState
|
|
55
|
+
from omnibase_infra.enums.enum_chain_violation_type import EnumChainViolationType
|
|
56
|
+
from omnibase_infra.enums.enum_circuit_state import EnumCircuitState
|
|
57
|
+
from omnibase_infra.enums.enum_confirmation_event_type import EnumConfirmationEventType
|
|
58
|
+
from omnibase_infra.enums.enum_consumer_group_purpose import EnumConsumerGroupPurpose
|
|
59
|
+
from omnibase_infra.enums.enum_contract_type import EnumContractType
|
|
60
|
+
from omnibase_infra.enums.enum_dedupe_strategy import EnumDedupeStrategy
|
|
61
|
+
from omnibase_infra.enums.enum_dispatch_status import EnumDispatchStatus
|
|
62
|
+
from omnibase_infra.enums.enum_environment import EnumEnvironment
|
|
63
|
+
from omnibase_infra.enums.enum_execution_shape_violation import (
|
|
64
|
+
EnumExecutionShapeViolation,
|
|
65
|
+
)
|
|
66
|
+
from omnibase_infra.enums.enum_handler_error_type import EnumHandlerErrorType
|
|
67
|
+
from omnibase_infra.enums.enum_handler_loader_error import EnumHandlerLoaderError
|
|
68
|
+
from omnibase_infra.enums.enum_handler_source_mode import EnumHandlerSourceMode
|
|
69
|
+
from omnibase_infra.enums.enum_handler_source_type import EnumHandlerSourceType
|
|
70
|
+
from omnibase_infra.enums.enum_handler_type import EnumHandlerType
|
|
71
|
+
from omnibase_infra.enums.enum_handler_type_category import EnumHandlerTypeCategory
|
|
72
|
+
from omnibase_infra.enums.enum_infra_transport_type import EnumInfraTransportType
|
|
73
|
+
from omnibase_infra.enums.enum_introspection_reason import EnumIntrospectionReason
|
|
74
|
+
from omnibase_infra.enums.enum_kafka_acks import EnumKafkaAcks
|
|
75
|
+
from omnibase_infra.enums.enum_message_category import EnumMessageCategory
|
|
76
|
+
from omnibase_infra.enums.enum_node_archetype import EnumNodeArchetype
|
|
77
|
+
from omnibase_infra.enums.enum_node_output_type import EnumNodeOutputType
|
|
78
|
+
from omnibase_infra.enums.enum_non_retryable_error_category import (
|
|
79
|
+
EnumNonRetryableErrorCategory,
|
|
80
|
+
)
|
|
81
|
+
from omnibase_infra.enums.enum_policy_type import EnumPolicyType
|
|
82
|
+
from omnibase_infra.enums.enum_registration_state import EnumRegistrationState
|
|
83
|
+
from omnibase_infra.enums.enum_registration_status import EnumRegistrationStatus
|
|
84
|
+
from omnibase_infra.enums.enum_registry_response_status import (
|
|
85
|
+
EnumRegistryResponseStatus,
|
|
86
|
+
)
|
|
87
|
+
from omnibase_infra.enums.enum_response_status import EnumResponseStatus
|
|
88
|
+
from omnibase_infra.enums.enum_retry_error_category import EnumRetryErrorCategory
|
|
89
|
+
from omnibase_infra.enums.enum_security_rule_id import EnumSecurityRuleId
|
|
90
|
+
from omnibase_infra.enums.enum_selection_strategy import EnumSelectionStrategy
|
|
91
|
+
from omnibase_infra.enums.enum_topic_standard import EnumTopicStandard
|
|
92
|
+
from omnibase_infra.enums.enum_validation_severity import EnumValidationSeverity
|
|
93
|
+
|
|
94
|
+
__all__: list[str] = [
|
|
95
|
+
"EnumAnyTypeViolation",
|
|
96
|
+
"EnumBackendType",
|
|
97
|
+
"EnumCaptureOutcome",
|
|
98
|
+
"EnumCaptureState",
|
|
99
|
+
"EnumChainViolationType",
|
|
100
|
+
"EnumCircuitState",
|
|
101
|
+
"EnumConfirmationEventType",
|
|
102
|
+
"EnumConsumerGroupPurpose",
|
|
103
|
+
"EnumContractType",
|
|
104
|
+
"EnumDedupeStrategy",
|
|
105
|
+
"EnumDispatchStatus",
|
|
106
|
+
"EnumEnvironment",
|
|
107
|
+
"EnumExecutionShapeViolation",
|
|
108
|
+
"EnumHandlerErrorType",
|
|
109
|
+
"EnumHandlerLoaderError",
|
|
110
|
+
"EnumHandlerSourceMode",
|
|
111
|
+
"EnumHandlerSourceType",
|
|
112
|
+
"EnumHandlerType",
|
|
113
|
+
"EnumHandlerTypeCategory",
|
|
114
|
+
"EnumInfraTransportType",
|
|
115
|
+
"EnumIntrospectionReason",
|
|
116
|
+
"EnumKafkaAcks",
|
|
117
|
+
"EnumMessageCategory",
|
|
118
|
+
"EnumNodeArchetype",
|
|
119
|
+
"EnumNodeOutputType",
|
|
120
|
+
"EnumNonRetryableErrorCategory",
|
|
121
|
+
"EnumPolicyType",
|
|
122
|
+
"EnumRegistrationState",
|
|
123
|
+
"EnumRegistrationStatus",
|
|
124
|
+
"EnumRegistryResponseStatus",
|
|
125
|
+
"EnumResponseStatus",
|
|
126
|
+
"EnumRetryErrorCategory",
|
|
127
|
+
"EnumSecurityRuleId",
|
|
128
|
+
"EnumSelectionStrategy",
|
|
129
|
+
"EnumTopicStandard",
|
|
130
|
+
"EnumTopicType",
|
|
131
|
+
"EnumValidationSeverity",
|
|
132
|
+
]
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Enum for Any type violation categories.
|
|
4
|
+
|
|
5
|
+
Defines the specific violation types detected by the Any type validator.
|
|
6
|
+
Following the ADR policy:
|
|
7
|
+
- Any is BLOCKED in function signatures (parameters, return types)
|
|
8
|
+
- Any is ALLOWED only in Pydantic Field() definitions WITH required NOTE comment
|
|
9
|
+
- All other Any usage is BLOCKED
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from enum import Enum
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class EnumAnyTypeViolation(str, Enum):
|
|
16
|
+
"""Violation types for Any type usage detection.
|
|
17
|
+
|
|
18
|
+
These violation types correspond to the ONEX Any type policy as defined
|
|
19
|
+
in the ADR. The policy aims to maintain strong typing throughout the
|
|
20
|
+
codebase while allowing controlled exceptions for legitimate use cases
|
|
21
|
+
like JSON-like data structures.
|
|
22
|
+
|
|
23
|
+
Attributes:
|
|
24
|
+
FUNCTION_PARAMETER: Any used as function parameter type annotation.
|
|
25
|
+
RETURN_TYPE: Any used as function return type annotation.
|
|
26
|
+
FIELD_MISSING_NOTE: Any used in Pydantic Field() without required NOTE comment.
|
|
27
|
+
VARIABLE_ANNOTATION: Any used as variable type annotation.
|
|
28
|
+
TYPE_ALIAS: Any used in type alias definition.
|
|
29
|
+
CLASS_ATTRIBUTE: Any used as class attribute type annotation.
|
|
30
|
+
GENERIC_ARGUMENT: Any used as generic type argument (e.g., list[Any]).
|
|
31
|
+
SYNTAX_ERROR: File has Python syntax error, cannot validate.
|
|
32
|
+
|
|
33
|
+
Policy Summary:
|
|
34
|
+
- ALLOWED: ``field: Any = Field(...) # NOTE: Using Any for JSON-like data``
|
|
35
|
+
- BLOCKED: ``def func(data: Any) -> Any:``
|
|
36
|
+
- BLOCKED: ``result: Any = some_call()``
|
|
37
|
+
- BLOCKED: ``JsonType = dict[str, Any]``
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
FUNCTION_PARAMETER = "function_parameter"
|
|
41
|
+
RETURN_TYPE = "return_type"
|
|
42
|
+
FIELD_MISSING_NOTE = "field_missing_note"
|
|
43
|
+
VARIABLE_ANNOTATION = "variable_annotation"
|
|
44
|
+
TYPE_ALIAS = "type_alias"
|
|
45
|
+
CLASS_ATTRIBUTE = "class_attribute"
|
|
46
|
+
GENERIC_ARGUMENT = "generic_argument"
|
|
47
|
+
SYNTAX_ERROR = "syntax_error"
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def is_exemptable(self) -> bool:
|
|
51
|
+
"""Check if this violation type can be exempted.
|
|
52
|
+
|
|
53
|
+
Some violations like SYNTAX_ERROR cannot be exempted because
|
|
54
|
+
they indicate fundamental issues with the source file.
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
True if the violation type can be exempted via decorator or comment.
|
|
58
|
+
"""
|
|
59
|
+
return self != EnumAnyTypeViolation.SYNTAX_ERROR
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
def suggestion(self) -> str:
|
|
63
|
+
"""Get the suggested fix for this violation type.
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
Human-readable suggestion for fixing the violation.
|
|
67
|
+
"""
|
|
68
|
+
suggestions = {
|
|
69
|
+
EnumAnyTypeViolation.FUNCTION_PARAMETER: (
|
|
70
|
+
"Replace Any with specific type (e.g., object, Union, Protocol) "
|
|
71
|
+
"or use a typed model for complex data structures."
|
|
72
|
+
),
|
|
73
|
+
EnumAnyTypeViolation.RETURN_TYPE: (
|
|
74
|
+
"Replace Any with specific type. If the return type varies, "
|
|
75
|
+
"consider using Union types or Protocol for duck typing."
|
|
76
|
+
),
|
|
77
|
+
EnumAnyTypeViolation.FIELD_MISSING_NOTE: (
|
|
78
|
+
"Add a NOTE comment explaining why Any is needed. "
|
|
79
|
+
"Example: # NOTE: Using Any instead of JsonType for JSON payload"
|
|
80
|
+
),
|
|
81
|
+
EnumAnyTypeViolation.VARIABLE_ANNOTATION: (
|
|
82
|
+
"Replace Any with specific type. Use object if truly generic, "
|
|
83
|
+
"or create a typed model for structured data."
|
|
84
|
+
),
|
|
85
|
+
EnumAnyTypeViolation.TYPE_ALIAS: (
|
|
86
|
+
"Replace Any in type alias with specific types. "
|
|
87
|
+
"Consider using TypedDict, Protocol, or explicit Union types."
|
|
88
|
+
),
|
|
89
|
+
EnumAnyTypeViolation.CLASS_ATTRIBUTE: (
|
|
90
|
+
"Replace Any with specific type annotation. "
|
|
91
|
+
"For Pydantic models, use Field() with a NOTE comment if Any is required."
|
|
92
|
+
),
|
|
93
|
+
EnumAnyTypeViolation.GENERIC_ARGUMENT: (
|
|
94
|
+
"Replace Any in generic type with specific type. "
|
|
95
|
+
"Example: list[object] instead of list[Any]."
|
|
96
|
+
),
|
|
97
|
+
EnumAnyTypeViolation.SYNTAX_ERROR: (
|
|
98
|
+
"Fix the Python syntax error before Any type validation can proceed."
|
|
99
|
+
),
|
|
100
|
+
}
|
|
101
|
+
return suggestions.get(self, "Replace Any with a specific type.")
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
__all__ = ["EnumAnyTypeViolation"]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Backend type enumeration.
|
|
4
|
+
|
|
5
|
+
This module defines the backend type enumeration for infrastructure
|
|
6
|
+
registration and service discovery operations.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from enum import Enum
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class EnumBackendType(str, Enum):
|
|
13
|
+
"""Infrastructure backend types.
|
|
14
|
+
|
|
15
|
+
Identifies the backend infrastructure service for registration
|
|
16
|
+
and service discovery operations.
|
|
17
|
+
|
|
18
|
+
Attributes:
|
|
19
|
+
CONSUL: HashiCorp Consul for service discovery and health checking
|
|
20
|
+
POSTGRES: PostgreSQL database for persistent registration storage
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
CONSUL = "consul"
|
|
24
|
+
POSTGRES = "postgres"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
__all__: list[str] = ["EnumBackendType"]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 OmniNode Team <info@omninode.ai>
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
"""
|
|
5
|
+
Capture outcome enum for corpus capture service.
|
|
6
|
+
|
|
7
|
+
.. versionadded:: 0.5.0
|
|
8
|
+
Added for CorpusCapture (OMN-1203)
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from enum import Enum
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class EnumCaptureOutcome(str, Enum):
|
|
15
|
+
"""Outcome of a capture attempt."""
|
|
16
|
+
|
|
17
|
+
CAPTURED = "captured"
|
|
18
|
+
"""Execution was successfully captured."""
|
|
19
|
+
|
|
20
|
+
SKIPPED_HANDLER_FILTER = "skipped_handler_filter"
|
|
21
|
+
"""Skipped due to handler filter (not in whitelist)."""
|
|
22
|
+
|
|
23
|
+
SKIPPED_TIME_WINDOW = "skipped_time_window"
|
|
24
|
+
"""Skipped due to time window filter."""
|
|
25
|
+
|
|
26
|
+
SKIPPED_SAMPLE_RATE = "skipped_sample_rate"
|
|
27
|
+
"""Skipped due to sampling (random selection)."""
|
|
28
|
+
|
|
29
|
+
SKIPPED_DUPLICATE = "skipped_duplicate"
|
|
30
|
+
"""Skipped due to deduplication."""
|
|
31
|
+
|
|
32
|
+
SKIPPED_CORPUS_FULL = "skipped_corpus_full"
|
|
33
|
+
"""Skipped because corpus is at max_executions."""
|
|
34
|
+
|
|
35
|
+
SKIPPED_NOT_CAPTURING = "skipped_not_capturing"
|
|
36
|
+
"""Skipped because capture is not active."""
|
|
37
|
+
|
|
38
|
+
SKIPPED_TIMEOUT = "skipped_timeout"
|
|
39
|
+
"""Skipped because capture operation timed out."""
|
|
40
|
+
|
|
41
|
+
FAILED = "failed"
|
|
42
|
+
"""Capture failed due to an error."""
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 OmniNode Team <info@omninode.ai>
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
"""
|
|
5
|
+
Corpus capture state enum.
|
|
6
|
+
|
|
7
|
+
Defines the lifecycle states for corpus capture operations.
|
|
8
|
+
|
|
9
|
+
.. versionadded:: 0.5.0
|
|
10
|
+
Added for CorpusCapture (OMN-1203)
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from enum import Enum
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class EnumCaptureState(str, Enum):
|
|
17
|
+
"""
|
|
18
|
+
Lifecycle states for corpus capture.
|
|
19
|
+
|
|
20
|
+
The capture service transitions through these states during its lifecycle:
|
|
21
|
+
|
|
22
|
+
State Transitions::
|
|
23
|
+
|
|
24
|
+
IDLE ──create_corpus()──> READY
|
|
25
|
+
READY ──start_capture()──> CAPTURING
|
|
26
|
+
CAPTURING ──pause_capture()──> PAUSED
|
|
27
|
+
CAPTURING ──max_executions reached──> FULL
|
|
28
|
+
PAUSED ──resume_capture()──> CAPTURING
|
|
29
|
+
PAUSED ──close_corpus()──> CLOSED
|
|
30
|
+
CAPTURING ──close_corpus()──> CLOSED
|
|
31
|
+
FULL ──close_corpus()──> CLOSED
|
|
32
|
+
READY ──close_corpus()──> CLOSED
|
|
33
|
+
|
|
34
|
+
.. versionadded:: 0.5.0
|
|
35
|
+
Added for CorpusCapture (OMN-1203)
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
IDLE = "idle"
|
|
39
|
+
"""No active corpus. Initial state or after corpus is archived."""
|
|
40
|
+
|
|
41
|
+
READY = "ready"
|
|
42
|
+
"""Corpus created and configured, but not yet capturing."""
|
|
43
|
+
|
|
44
|
+
CAPTURING = "capturing"
|
|
45
|
+
"""Actively capturing executions into the corpus."""
|
|
46
|
+
|
|
47
|
+
PAUSED = "paused"
|
|
48
|
+
"""Capture temporarily suspended. Can be resumed."""
|
|
49
|
+
|
|
50
|
+
FULL = "full"
|
|
51
|
+
"""Corpus has reached max_executions limit. Can only close."""
|
|
52
|
+
|
|
53
|
+
CLOSED = "closed"
|
|
54
|
+
"""Corpus finalized and sealed. No more captures allowed."""
|
|
55
|
+
|
|
56
|
+
def can_capture(self) -> bool:
|
|
57
|
+
"""Check if captures are allowed in this state."""
|
|
58
|
+
return self == EnumCaptureState.CAPTURING
|
|
59
|
+
|
|
60
|
+
def can_transition_to(self, target: "EnumCaptureState") -> bool:
|
|
61
|
+
"""
|
|
62
|
+
Check if transition to target state is valid.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
target: The target state to transition to.
|
|
66
|
+
|
|
67
|
+
Returns:
|
|
68
|
+
True if the transition is valid.
|
|
69
|
+
"""
|
|
70
|
+
valid_transitions: dict[EnumCaptureState, set[EnumCaptureState]] = {
|
|
71
|
+
EnumCaptureState.IDLE: {EnumCaptureState.READY},
|
|
72
|
+
EnumCaptureState.READY: {
|
|
73
|
+
EnumCaptureState.CAPTURING,
|
|
74
|
+
EnumCaptureState.CLOSED,
|
|
75
|
+
},
|
|
76
|
+
EnumCaptureState.CAPTURING: {
|
|
77
|
+
EnumCaptureState.PAUSED,
|
|
78
|
+
EnumCaptureState.FULL,
|
|
79
|
+
EnumCaptureState.CLOSED,
|
|
80
|
+
},
|
|
81
|
+
EnumCaptureState.PAUSED: {
|
|
82
|
+
EnumCaptureState.CAPTURING,
|
|
83
|
+
EnumCaptureState.CLOSED,
|
|
84
|
+
},
|
|
85
|
+
EnumCaptureState.FULL: {EnumCaptureState.CLOSED},
|
|
86
|
+
EnumCaptureState.CLOSED: set(), # Terminal state
|
|
87
|
+
}
|
|
88
|
+
return target in valid_transitions.get(self, set())
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Chain Violation Type Enumeration.
|
|
4
|
+
|
|
5
|
+
Defines violation types for correlation and causation chain validation.
|
|
6
|
+
Used by the chain validation system to classify violations in message
|
|
7
|
+
propagation chains.
|
|
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 __future__ import annotations
|
|
15
|
+
|
|
16
|
+
from enum import Enum, unique
|
|
17
|
+
|
|
18
|
+
# Module-level cached descriptions for O(1) lookup without repeated dict creation.
|
|
19
|
+
# Must be defined outside the enum class since enums don't support ClassVar attributes
|
|
20
|
+
# in the same way regular classes do.
|
|
21
|
+
_CHAIN_VIOLATION_DESCRIPTIONS: dict[str, str] = {
|
|
22
|
+
"correlation_mismatch": (
|
|
23
|
+
"correlation_id doesn't match parent message's correlation_id"
|
|
24
|
+
),
|
|
25
|
+
"causation_chain_broken": (
|
|
26
|
+
"causation_id doesn't equal parent message's message_id"
|
|
27
|
+
),
|
|
28
|
+
"causation_ancestor_skipped": (
|
|
29
|
+
"causation chain skips one or more ancestors in the message lineage"
|
|
30
|
+
),
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@unique
|
|
35
|
+
class EnumChainViolationType(str, Enum):
|
|
36
|
+
"""Violation types for correlation and causation chain validation.
|
|
37
|
+
|
|
38
|
+
Represents specific types of violations that can occur when validating
|
|
39
|
+
that messages properly maintain their correlation and causation chains
|
|
40
|
+
during propagation through the system.
|
|
41
|
+
|
|
42
|
+
Values:
|
|
43
|
+
CORRELATION_MISMATCH: correlation_id doesn't match parent message's
|
|
44
|
+
correlation_id. All messages in a chain must share the same
|
|
45
|
+
correlation_id to enable distributed tracing.
|
|
46
|
+
CAUSATION_CHAIN_BROKEN: causation_id doesn't equal parent's message_id.
|
|
47
|
+
Each message's causation_id must reference its direct parent.
|
|
48
|
+
CAUSATION_ANCESTOR_SKIPPED: causation chain skips one or more ancestors.
|
|
49
|
+
The causation chain must form an unbroken sequence back to the
|
|
50
|
+
original message.
|
|
51
|
+
|
|
52
|
+
Example:
|
|
53
|
+
>>> violation_type = EnumChainViolationType.CORRELATION_MISMATCH
|
|
54
|
+
>>> str(violation_type)
|
|
55
|
+
'correlation_mismatch'
|
|
56
|
+
>>> violation_type.get_description()
|
|
57
|
+
"correlation_id doesn't match parent message's correlation_id"
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
CORRELATION_MISMATCH = "correlation_mismatch"
|
|
61
|
+
"""correlation_id doesn't match parent message's correlation_id."""
|
|
62
|
+
|
|
63
|
+
CAUSATION_CHAIN_BROKEN = "causation_chain_broken"
|
|
64
|
+
"""causation_id doesn't equal parent message's message_id."""
|
|
65
|
+
|
|
66
|
+
CAUSATION_ANCESTOR_SKIPPED = "causation_ancestor_skipped"
|
|
67
|
+
"""causation chain skips one or more ancestors in the message lineage."""
|
|
68
|
+
|
|
69
|
+
def __str__(self) -> str:
|
|
70
|
+
"""Return the string value for serialization."""
|
|
71
|
+
return self.value
|
|
72
|
+
|
|
73
|
+
def get_description(self) -> str:
|
|
74
|
+
"""Get a human-readable description of the violation type.
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
A human-readable description of what this violation type means.
|
|
78
|
+
|
|
79
|
+
Example:
|
|
80
|
+
>>> EnumChainViolationType.CORRELATION_MISMATCH.get_description()
|
|
81
|
+
"correlation_id doesn't match parent message's correlation_id"
|
|
82
|
+
"""
|
|
83
|
+
return _CHAIN_VIOLATION_DESCRIPTIONS.get(
|
|
84
|
+
self.value, "Unknown chain violation type"
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
def is_correlation_violation(self) -> bool:
|
|
88
|
+
"""Check if this is a correlation-related violation.
|
|
89
|
+
|
|
90
|
+
Returns:
|
|
91
|
+
True if the violation relates to correlation_id propagation.
|
|
92
|
+
|
|
93
|
+
Example:
|
|
94
|
+
>>> EnumChainViolationType.CORRELATION_MISMATCH.is_correlation_violation()
|
|
95
|
+
True
|
|
96
|
+
>>> EnumChainViolationType.CAUSATION_CHAIN_BROKEN.is_correlation_violation()
|
|
97
|
+
False
|
|
98
|
+
"""
|
|
99
|
+
return self == EnumChainViolationType.CORRELATION_MISMATCH
|
|
100
|
+
|
|
101
|
+
def is_causation_violation(self) -> bool:
|
|
102
|
+
"""Check if this is a causation-related violation.
|
|
103
|
+
|
|
104
|
+
Returns:
|
|
105
|
+
True if the violation relates to causation_id propagation.
|
|
106
|
+
|
|
107
|
+
Example:
|
|
108
|
+
>>> EnumChainViolationType.CAUSATION_CHAIN_BROKEN.is_causation_violation()
|
|
109
|
+
True
|
|
110
|
+
>>> EnumChainViolationType.CORRELATION_MISMATCH.is_causation_violation()
|
|
111
|
+
False
|
|
112
|
+
"""
|
|
113
|
+
return self in {
|
|
114
|
+
EnumChainViolationType.CAUSATION_CHAIN_BROKEN,
|
|
115
|
+
EnumChainViolationType.CAUSATION_ANCESTOR_SKIPPED,
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
__all__ = ["EnumChainViolationType"]
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Circuit breaker state enumeration.
|
|
4
|
+
|
|
5
|
+
This module defines the state enumeration for the circuit breaker pattern
|
|
6
|
+
used in infrastructure components for fault tolerance.
|
|
7
|
+
|
|
8
|
+
See Also:
|
|
9
|
+
- MixinAsyncCircuitBreaker: Mixin implementing the circuit breaker pattern
|
|
10
|
+
- docs/patterns/circuit_breaker_implementation.md: Implementation guide
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
from enum import Enum
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class EnumCircuitState(str, Enum):
|
|
19
|
+
"""Circuit breaker state machine.
|
|
20
|
+
|
|
21
|
+
The circuit breaker implements a 3-state pattern for fault tolerance:
|
|
22
|
+
|
|
23
|
+
States:
|
|
24
|
+
CLOSED: Normal operation
|
|
25
|
+
- All requests are allowed
|
|
26
|
+
- Failures are counted
|
|
27
|
+
- Transitions to OPEN when failure threshold is reached
|
|
28
|
+
|
|
29
|
+
OPEN: Circuit tripped
|
|
30
|
+
- All requests are blocked
|
|
31
|
+
- Raises InfraUnavailableError immediately
|
|
32
|
+
- Automatically transitions to HALF_OPEN after reset timeout
|
|
33
|
+
|
|
34
|
+
HALF_OPEN: Testing recovery
|
|
35
|
+
- Limited requests allowed for testing
|
|
36
|
+
- First success transitions to CLOSED
|
|
37
|
+
- First failure transitions back to OPEN
|
|
38
|
+
|
|
39
|
+
State Transitions:
|
|
40
|
+
CLOSED -> OPEN: Failure count >= threshold
|
|
41
|
+
OPEN -> HALF_OPEN: Current time - last_failure_time > reset_timeout
|
|
42
|
+
HALF_OPEN -> CLOSED: First successful operation
|
|
43
|
+
HALF_OPEN -> OPEN: First failed operation
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
CLOSED = "closed"
|
|
47
|
+
OPEN = "open"
|
|
48
|
+
HALF_OPEN = "half_open"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
__all__: list[str] = ["EnumCircuitState"]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
# Copyright (c) 2025 OmniNode Team
|
|
3
|
+
"""Confirmation event type enumeration.
|
|
4
|
+
|
|
5
|
+
This module defines the event type enumeration for registration confirmation
|
|
6
|
+
events emitted by infrastructure backends.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from enum import Enum
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class EnumConfirmationEventType(str, Enum):
|
|
13
|
+
"""Registration confirmation event types.
|
|
14
|
+
|
|
15
|
+
Identifies the type of confirmation event emitted when a backend
|
|
16
|
+
successfully processes a registration operation.
|
|
17
|
+
|
|
18
|
+
Attributes:
|
|
19
|
+
CONSUL_REGISTERED: Service successfully registered with Consul
|
|
20
|
+
POSTGRES_REGISTRATION_UPSERTED: Registration record upserted in PostgreSQL
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
CONSUL_REGISTERED = "consul.registered"
|
|
24
|
+
POSTGRES_REGISTRATION_UPSERTED = "postgres.registration_upserted"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
__all__: list[str] = ["EnumConfirmationEventType"]
|