omnibase_infra 0.2.1__py3-none-any.whl → 0.2.2__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 +1 -1
- omnibase_infra/adapters/adapter_onex_tool_execution.py +446 -0
- omnibase_infra/cli/commands.py +1 -1
- omnibase_infra/configs/widget_mapping.yaml +176 -0
- omnibase_infra/contracts/handlers/filesystem/handler_contract.yaml +4 -1
- omnibase_infra/contracts/handlers/mcp/handler_contract.yaml +4 -1
- omnibase_infra/errors/error_compute_registry.py +4 -1
- omnibase_infra/errors/error_event_bus_registry.py +4 -1
- omnibase_infra/errors/error_infra.py +3 -1
- omnibase_infra/errors/error_policy_registry.py +4 -1
- omnibase_infra/handlers/handler_db.py +2 -1
- omnibase_infra/handlers/handler_graph.py +10 -5
- omnibase_infra/handlers/handler_mcp.py +736 -63
- omnibase_infra/handlers/mixins/mixin_consul_kv.py +4 -3
- omnibase_infra/handlers/mixins/mixin_consul_service.py +2 -1
- omnibase_infra/handlers/service_discovery/handler_service_discovery_consul.py +301 -4
- omnibase_infra/handlers/service_discovery/models/model_service_info.py +10 -0
- omnibase_infra/mixins/mixin_async_circuit_breaker.py +3 -2
- omnibase_infra/mixins/mixin_node_introspection.py +24 -7
- omnibase_infra/mixins/mixin_retry_execution.py +1 -1
- omnibase_infra/models/handlers/__init__.py +10 -0
- omnibase_infra/models/handlers/model_bootstrap_handler_descriptor.py +162 -0
- omnibase_infra/models/handlers/model_handler_descriptor.py +15 -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/registration/model_node_capabilities.py +11 -0
- omnibase_infra/nodes/architecture_validator/contract_architecture_validator.yaml +0 -5
- omnibase_infra/nodes/architecture_validator/registry/registry_infra_architecture_validator.py +17 -10
- omnibase_infra/nodes/effects/contract.yaml +0 -5
- omnibase_infra/nodes/node_registration_orchestrator/contract.yaml +7 -0
- omnibase_infra/nodes/node_registration_orchestrator/handlers/handler_node_introspected.py +86 -1
- omnibase_infra/nodes/node_registration_orchestrator/introspection_event_router.py +3 -3
- omnibase_infra/nodes/node_registration_orchestrator/registry/registry_infra_node_registration_orchestrator.py +9 -8
- omnibase_infra/nodes/node_registration_orchestrator/wiring.py +14 -13
- omnibase_infra/nodes/node_registration_storage_effect/contract.yaml +0 -5
- omnibase_infra/nodes/node_registration_storage_effect/registry/registry_infra_registration_storage.py +46 -25
- omnibase_infra/nodes/node_registry_effect/contract.yaml +0 -5
- omnibase_infra/nodes/node_registry_effect/handlers/handler_partial_retry.py +2 -1
- omnibase_infra/nodes/node_service_discovery_effect/registry/registry_infra_service_discovery.py +24 -19
- omnibase_infra/plugins/examples/plugin_json_normalizer.py +2 -2
- omnibase_infra/plugins/examples/plugin_json_normalizer_error_handling.py +2 -2
- omnibase_infra/plugins/plugin_compute_base.py +16 -2
- omnibase_infra/protocols/protocol_event_projector.py +1 -1
- omnibase_infra/runtime/__init__.py +51 -1
- omnibase_infra/runtime/binding_config_resolver.py +102 -37
- omnibase_infra/runtime/constants_notification.py +75 -0
- omnibase_infra/runtime/contract_handler_discovery.py +6 -1
- omnibase_infra/runtime/handler_bootstrap_source.py +514 -0
- omnibase_infra/runtime/handler_contract_config_loader.py +603 -0
- omnibase_infra/runtime/handler_contract_source.py +289 -167
- omnibase_infra/runtime/handler_plugin_loader.py +4 -2
- omnibase_infra/runtime/mixin_semver_cache.py +25 -1
- omnibase_infra/runtime/mixins/__init__.py +7 -0
- omnibase_infra/runtime/mixins/mixin_projector_notification_publishing.py +566 -0
- omnibase_infra/runtime/mixins/mixin_projector_sql_operations.py +31 -10
- omnibase_infra/runtime/models/__init__.py +24 -0
- omnibase_infra/runtime/models/model_health_check_result.py +2 -1
- omnibase_infra/runtime/models/model_projector_notification_config.py +171 -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 +1 -1
- omnibase_infra/runtime/projector_shell.py +229 -1
- omnibase_infra/runtime/protocols/__init__.py +10 -0
- omnibase_infra/runtime/registry/registry_protocol_binding.py +3 -2
- omnibase_infra/runtime/registry_policy.py +9 -326
- omnibase_infra/runtime/secret_resolver.py +4 -2
- omnibase_infra/runtime/service_kernel.py +10 -2
- omnibase_infra/runtime/service_message_dispatch_engine.py +4 -2
- omnibase_infra/runtime/service_runtime_host_process.py +225 -15
- omnibase_infra/runtime/transition_notification_outbox.py +1190 -0
- omnibase_infra/runtime/transition_notification_publisher.py +764 -0
- omnibase_infra/runtime/util_container_wiring.py +6 -5
- omnibase_infra/runtime/util_wiring.py +5 -1
- omnibase_infra/schemas/schema_transition_notification_outbox.sql +245 -0
- omnibase_infra/services/mcp/__init__.py +31 -0
- omnibase_infra/services/mcp/mcp_server_lifecycle.py +443 -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 +547 -0
- omnibase_infra/services/registry_api/__init__.py +40 -0
- omnibase_infra/services/registry_api/main.py +243 -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 +846 -0
- omnibase_infra/services/service_capability_query.py +4 -4
- omnibase_infra/services/service_health.py +3 -2
- omnibase_infra/services/service_timeout_emitter.py +13 -2
- omnibase_infra/utils/util_dsn_validation.py +1 -1
- omnibase_infra/validation/__init__.py +3 -19
- omnibase_infra/validation/contracts/security.validation.yaml +114 -0
- omnibase_infra/validation/infra_validators.py +35 -24
- omnibase_infra/validation/validation_exemptions.yaml +113 -9
- omnibase_infra/validation/validator_chain_propagation.py +2 -2
- omnibase_infra/validation/validator_runtime_shape.py +1 -1
- omnibase_infra/validation/validator_security.py +473 -370
- {omnibase_infra-0.2.1.dist-info → omnibase_infra-0.2.2.dist-info}/METADATA +2 -2
- {omnibase_infra-0.2.1.dist-info → omnibase_infra-0.2.2.dist-info}/RECORD +116 -74
- {omnibase_infra-0.2.1.dist-info → omnibase_infra-0.2.2.dist-info}/WHEEL +0 -0
- {omnibase_infra-0.2.1.dist-info → omnibase_infra-0.2.2.dist-info}/entry_points.txt +0 -0
- {omnibase_infra-0.2.1.dist-info → omnibase_infra-0.2.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
This module defines the EventBusRegistryError for event bus registry operations.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
+
from typing import Any, cast
|
|
9
|
+
|
|
8
10
|
from omnibase_infra.errors.error_infra import RuntimeHostError
|
|
9
11
|
from omnibase_infra.models.errors.model_infra_error_context import (
|
|
10
12
|
ModelInfraErrorContext,
|
|
@@ -92,10 +94,11 @@ class EventBusRegistryError(RuntimeHostError):
|
|
|
92
94
|
if existing_class is not None:
|
|
93
95
|
extra_context["existing_class"] = existing_class
|
|
94
96
|
|
|
97
|
+
# NOTE: Cast required for mypy - **dict[str, object] doesn't satisfy **context: Any
|
|
95
98
|
super().__init__(
|
|
96
99
|
message=message,
|
|
97
100
|
context=context,
|
|
98
|
-
**extra_context,
|
|
101
|
+
**cast("dict[str, Any]", extra_context),
|
|
99
102
|
)
|
|
100
103
|
|
|
101
104
|
|
|
@@ -68,6 +68,7 @@ NOT_FOUND Classification Patterns:
|
|
|
68
68
|
- Optional keys, cache lookups: Use discriminated union responses
|
|
69
69
|
"""
|
|
70
70
|
|
|
71
|
+
from typing import Any, cast
|
|
71
72
|
from uuid import uuid4
|
|
72
73
|
|
|
73
74
|
from omnibase_core.enums import EnumCoreErrorCode
|
|
@@ -145,11 +146,12 @@ class RuntimeHostError(ModelOnexError):
|
|
|
145
146
|
correlation_id = uuid4()
|
|
146
147
|
|
|
147
148
|
# Initialize base error with default error code
|
|
149
|
+
# NOTE: Cast required for mypy - **dict[str, object] doesn't satisfy **context: Any
|
|
148
150
|
super().__init__(
|
|
149
151
|
message=message,
|
|
150
152
|
error_code=error_code or EnumCoreErrorCode.OPERATION_FAILED,
|
|
151
153
|
correlation_id=correlation_id,
|
|
152
|
-
**structured_context,
|
|
154
|
+
**cast("dict[str, Any]", structured_context),
|
|
153
155
|
)
|
|
154
156
|
|
|
155
157
|
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
This module defines the PolicyRegistryError for policy registry operations.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
+
from typing import Any, cast
|
|
9
|
+
|
|
8
10
|
from omnibase_infra.enums import EnumPolicyType
|
|
9
11
|
from omnibase_infra.errors.error_infra import RuntimeHostError
|
|
10
12
|
from omnibase_infra.models.errors.model_infra_error_context import (
|
|
@@ -102,10 +104,11 @@ class PolicyRegistryError(RuntimeHostError):
|
|
|
102
104
|
else policy_type
|
|
103
105
|
)
|
|
104
106
|
|
|
107
|
+
# NOTE: Cast required for mypy - **dict[str, object] doesn't satisfy **context: Any
|
|
105
108
|
super().__init__(
|
|
106
109
|
message=message,
|
|
107
110
|
context=context,
|
|
108
|
-
**extra_context,
|
|
111
|
+
**cast("dict[str, Any]", extra_context),
|
|
109
112
|
)
|
|
110
113
|
|
|
111
114
|
|
|
@@ -76,6 +76,7 @@ from uuid import UUID, uuid4
|
|
|
76
76
|
import asyncpg
|
|
77
77
|
|
|
78
78
|
from omnibase_core.models.dispatch import ModelHandlerOutput
|
|
79
|
+
from omnibase_core.types import JsonType
|
|
79
80
|
from omnibase_infra.enums import (
|
|
80
81
|
EnumHandlerType,
|
|
81
82
|
EnumHandlerTypeCategory,
|
|
@@ -1020,7 +1021,7 @@ class HandlerDb(MixinAsyncCircuitBreaker, MixinEnvelopeExtraction):
|
|
|
1020
1021
|
- docs/architecture/HANDLER_PROTOCOL_DRIVEN_ARCHITECTURE.md
|
|
1021
1022
|
"""
|
|
1022
1023
|
# Get circuit breaker state if initialized
|
|
1023
|
-
cb_state: dict[str,
|
|
1024
|
+
cb_state: dict[str, JsonType] | None = None
|
|
1024
1025
|
if self._circuit_breaker_initialized:
|
|
1025
1026
|
cb_state = self._get_circuit_breaker_state()
|
|
1026
1027
|
|
|
@@ -464,9 +464,11 @@ class HandlerGraph(MixinAsyncCircuitBreaker, ProtocolGraphDatabaseHandler):
|
|
|
464
464
|
try:
|
|
465
465
|
for query, params in queries:
|
|
466
466
|
query_start = time.perf_counter()
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
467
|
+
tx_result = await tx.run(
|
|
468
|
+
query, dict(params) if params else {}
|
|
469
|
+
)
|
|
470
|
+
records_data = await tx_result.data()
|
|
471
|
+
summary = await tx_result.consume()
|
|
470
472
|
query_time_ms = (time.perf_counter() - query_start) * 1000
|
|
471
473
|
|
|
472
474
|
results.append(
|
|
@@ -497,8 +499,11 @@ class HandlerGraph(MixinAsyncCircuitBreaker, ProtocolGraphDatabaseHandler):
|
|
|
497
499
|
else:
|
|
498
500
|
# Execute queries individually without transaction
|
|
499
501
|
for query, params in queries:
|
|
500
|
-
|
|
501
|
-
|
|
502
|
+
# Type assertion: execute_query returns ModelGraphQueryResult in this handler
|
|
503
|
+
query_result: ModelGraphQueryResult = await self.execute_query(
|
|
504
|
+
query, params
|
|
505
|
+
) # type: ignore[assignment]
|
|
506
|
+
results.append(query_result)
|
|
502
507
|
|
|
503
508
|
return ModelGraphBatchResult(
|
|
504
509
|
results=results,
|