omnibase_infra 0.2.5__py3-none-any.whl → 0.2.7__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/constants_topic_patterns.py +26 -0
- omnibase_infra/enums/__init__.py +3 -0
- omnibase_infra/enums/enum_consumer_group_purpose.py +92 -0
- omnibase_infra/enums/enum_handler_source_mode.py +16 -2
- omnibase_infra/errors/__init__.py +4 -0
- omnibase_infra/errors/error_binding_resolution.py +128 -0
- omnibase_infra/event_bus/configs/kafka_event_bus_config.yaml +0 -2
- omnibase_infra/event_bus/event_bus_inmemory.py +64 -10
- omnibase_infra/event_bus/event_bus_kafka.py +105 -47
- omnibase_infra/event_bus/mixin_kafka_broadcast.py +3 -7
- omnibase_infra/event_bus/mixin_kafka_dlq.py +12 -6
- omnibase_infra/event_bus/models/config/model_kafka_event_bus_config.py +0 -81
- 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/handlers/handler_consul.py +2 -0
- omnibase_infra/handlers/mixins/__init__.py +5 -0
- omnibase_infra/handlers/mixins/mixin_consul_service.py +274 -10
- omnibase_infra/handlers/mixins/mixin_consul_topic_index.py +585 -0
- omnibase_infra/handlers/models/model_filesystem_config.py +4 -4
- omnibase_infra/migrations/001_create_event_ledger.sql +166 -0
- omnibase_infra/migrations/001_drop_event_ledger.sql +18 -0
- omnibase_infra/mixins/mixin_node_introspection.py +189 -19
- omnibase_infra/models/__init__.py +8 -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/discovery/model_introspection_config.py +25 -17
- omnibase_infra/models/dispatch/__init__.py +8 -0
- omnibase_infra/models/dispatch/model_debug_trace_snapshot.py +114 -0
- omnibase_infra/models/dispatch/model_materialized_dispatch.py +141 -0
- omnibase_infra/models/handlers/model_handler_source_config.py +1 -1
- omnibase_infra/models/model_node_identity.py +126 -0
- omnibase_infra/models/projection/model_snapshot_topic_config.py +3 -2
- omnibase_infra/models/registration/__init__.py +9 -0
- omnibase_infra/models/registration/model_event_bus_topic_entry.py +59 -0
- omnibase_infra/models/registration/model_node_event_bus_config.py +99 -0
- omnibase_infra/models/registration/model_node_introspection_event.py +11 -0
- omnibase_infra/models/runtime/__init__.py +9 -0
- omnibase_infra/models/validation/model_coverage_metrics.py +2 -2
- omnibase_infra/nodes/__init__.py +9 -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/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_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/registry/registry_infra_node_registration_orchestrator.py +7 -5
- omnibase_infra/nodes/reducers/models/__init__.py +7 -2
- omnibase_infra/nodes/reducers/models/model_payload_consul_register.py +11 -0
- omnibase_infra/nodes/reducers/models/model_payload_ledger_append.py +133 -0
- omnibase_infra/nodes/reducers/registration_reducer.py +1 -0
- omnibase_infra/protocols/__init__.py +3 -0
- omnibase_infra/protocols/protocol_dispatch_engine.py +152 -0
- omnibase_infra/runtime/__init__.py +60 -0
- omnibase_infra/runtime/binding_resolver.py +753 -0
- omnibase_infra/runtime/constants_security.py +70 -0
- omnibase_infra/runtime/contract_loaders/__init__.py +9 -0
- omnibase_infra/runtime/contract_loaders/operation_bindings_loader.py +789 -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/event_bus_subcontract_wiring.py +466 -0
- omnibase_infra/runtime/handler_source_resolver.py +43 -2
- omnibase_infra/runtime/kafka_contract_source.py +984 -0
- omnibase_infra/runtime/models/__init__.py +13 -0
- omnibase_infra/runtime/models/model_contract_load_result.py +224 -0
- omnibase_infra/runtime/models/model_runtime_contract_config.py +268 -0
- omnibase_infra/runtime/models/model_runtime_scheduler_config.py +4 -3
- omnibase_infra/runtime/models/model_security_config.py +109 -0
- omnibase_infra/runtime/publisher_topic_scoped.py +294 -0
- omnibase_infra/runtime/runtime_contract_config_loader.py +406 -0
- omnibase_infra/runtime/service_kernel.py +76 -6
- omnibase_infra/runtime/service_message_dispatch_engine.py +558 -15
- omnibase_infra/runtime/service_runtime_host_process.py +770 -20
- omnibase_infra/runtime/transition_notification_publisher.py +3 -2
- omnibase_infra/runtime/util_wiring.py +206 -62
- omnibase_infra/services/mcp/service_mcp_tool_sync.py +27 -9
- omnibase_infra/services/session/config_consumer.py +25 -8
- omnibase_infra/services/session/config_store.py +2 -2
- omnibase_infra/services/session/consumer.py +1 -1
- 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/typed_dict/__init__.py +9 -1
- omnibase_infra/types/typed_dict/typed_dict_envelope_build_params.py +115 -0
- omnibase_infra/utils/__init__.py +9 -0
- omnibase_infra/utils/util_consumer_group.py +232 -0
- omnibase_infra/validation/infra_validators.py +18 -1
- omnibase_infra/validation/validation_exemptions.yaml +192 -0
- {omnibase_infra-0.2.5.dist-info → omnibase_infra-0.2.7.dist-info}/METADATA +3 -3
- {omnibase_infra-0.2.5.dist-info → omnibase_infra-0.2.7.dist-info}/RECORD +139 -52
- {omnibase_infra-0.2.5.dist-info → omnibase_infra-0.2.7.dist-info}/entry_points.txt +1 -0
- {omnibase_infra-0.2.5.dist-info → omnibase_infra-0.2.7.dist-info}/WHEEL +0 -0
- {omnibase_infra-0.2.5.dist-info → omnibase_infra-0.2.7.dist-info}/licenses/LICENSE +0 -0
|
@@ -89,6 +89,23 @@ skip_directories:
|
|
|
89
89
|
# These handle method count, parameter count, naming, and style violations
|
|
90
90
|
pattern_exemptions:
|
|
91
91
|
# ==========================================================================
|
|
92
|
+
# ModelRuntimeContractConfig Exemptions (OMN-1519)
|
|
93
|
+
# ==========================================================================
|
|
94
|
+
# Data model with cohesive accessor properties for querying loaded contracts.
|
|
95
|
+
# All methods serve same purpose: querying contract_results collection.
|
|
96
|
+
# Properties: all_successful, success_rate, successful_results, failed_results,
|
|
97
|
+
# handler_routing_configs, operation_bindings_configs, error_messages
|
|
98
|
+
# Methods: get_routing_for_contract, get_bindings_for_contract, __bool__, __str__
|
|
99
|
+
- file_pattern: 'model_runtime_contract_config\.py'
|
|
100
|
+
class_pattern: "Class 'ModelRuntimeContractConfig'"
|
|
101
|
+
violation_pattern: 'has \d+ methods'
|
|
102
|
+
reason: >
|
|
103
|
+
Cohesive data model with accessor properties that all query the same contract_results collection. Properties provide convenient typed access to loaded configs, success metrics, and error details. Breaking into smaller classes would reduce cohesion without meaningful benefit.
|
|
104
|
+
|
|
105
|
+
documentation:
|
|
106
|
+
- OMN-1519 PR description
|
|
107
|
+
ticket: OMN-1519
|
|
108
|
+
# ==========================================================================
|
|
92
109
|
# EventBusKafka Exemptions (OMN-934, OMN-1305)
|
|
93
110
|
# ==========================================================================
|
|
94
111
|
# Event bus pattern requires many methods for lifecycle (start/stop/health),
|
|
@@ -1762,10 +1779,185 @@ pattern_exemptions:
|
|
|
1762
1779
|
- CLAUDE.md (Type Annotation Conventions)
|
|
1763
1780
|
- Consul service discovery documentation
|
|
1764
1781
|
ticket: OMN-1278
|
|
1782
|
+
# ==========================================================================
|
|
1783
|
+
# ==========================================================================
|
|
1784
|
+
# OperationBindingResolver.resolve() requires multiple parameters for binding
|
|
1785
|
+
# resolution: operation, bindings_subcontract, envelope, context, correlation_id.
|
|
1786
|
+
# These are distinct inputs required for the resolution process.
|
|
1787
|
+
- file_pattern: 'binding_resolver\.py'
|
|
1788
|
+
# Declarative Operation Bindings Exemptions (OMN-1518)
|
|
1789
|
+
|
|
1790
|
+
method_pattern: "Function 'resolve'"
|
|
1791
|
+
violation_pattern: 'has \d+ parameters'
|
|
1792
|
+
reason: >
|
|
1793
|
+
resolve() requires distinct parameters for binding resolution: operation name, bindings subcontract, envelope data, optional context, and correlation_id for error context. Breaking into multiple calls would require intermediate state or complex configuration objects that reduce API clarity.
|
|
1794
|
+
|
|
1795
|
+
documentation:
|
|
1796
|
+
- docs/decisions/adr-declarative-operation-bindings.md
|
|
1797
|
+
ticket: OMN-1518
|
|
1798
|
+
# parameter_name in binding models is the handler parameter name being bound,
|
|
1799
|
+
# NOT an entity reference. It's a simple string identifier for the target parameter.
|
|
1800
|
+
- file_pattern: 'model_operation_binding\.py'
|
|
1801
|
+
violation_pattern: "Field 'parameter_name' might reference an entity"
|
|
1802
|
+
reason: >
|
|
1803
|
+
parameter_name is the target handler input field name (e.g., "correlation_id", "sql"). This is a Python function parameter name, NOT an entity reference. It maps to the handler's function signature parameter.
|
|
1804
|
+
|
|
1805
|
+
documentation:
|
|
1806
|
+
- docs/decisions/adr-declarative-operation-bindings.md
|
|
1807
|
+
ticket: OMN-1518
|
|
1808
|
+
- file_pattern: 'model_parsed_binding\.py'
|
|
1809
|
+
violation_pattern: "Field 'parameter_name' might reference an entity"
|
|
1810
|
+
reason: >
|
|
1811
|
+
parameter_name is the target handler input field name (e.g., "correlation_id", "sql"). This is a Python function parameter name, NOT an entity reference. It maps to the handler's function signature parameter.
|
|
1812
|
+
|
|
1813
|
+
documentation:
|
|
1814
|
+
- docs/decisions/adr-declarative-operation-bindings.md
|
|
1815
|
+
ticket: OMN-1518
|
|
1816
|
+
# operation_name in ModelBindingResolutionResult is the operation that was
|
|
1817
|
+
# resolved (e.g., "db.query"), NOT an entity reference. It's a dispatch key.
|
|
1818
|
+
- file_pattern: 'model_binding_resolution_result\.py'
|
|
1819
|
+
violation_pattern: "Field 'operation_name' might reference an entity"
|
|
1820
|
+
reason: >
|
|
1821
|
+
operation_name is the dispatch operation key that was resolved (e.g., "db.query", "consul.register"). This is a routing identifier, NOT an entity reference. It identifies which operation's bindings were resolved.
|
|
1822
|
+
|
|
1823
|
+
documentation:
|
|
1824
|
+
- docs/decisions/adr-declarative-operation-bindings.md
|
|
1825
|
+
ticket: OMN-1518
|
|
1826
|
+
# ==========================================================================
|
|
1827
|
+
# ModelNodeIdentity node_name Exemption (OMN-1602)
|
|
1828
|
+
# ==========================================================================
|
|
1829
|
+
# node_name in ModelNodeIdentity is a canonical identifier for the node within
|
|
1830
|
+
# the ONEX infrastructure, NOT a foreign key reference to another entity.
|
|
1831
|
+
# It is one of the four dimensions (env, service, node_name, version) that
|
|
1832
|
+
# uniquely identify a node instance.
|
|
1833
|
+
- file_pattern: 'model_node_identity\.py'
|
|
1834
|
+
violation_pattern: "Field 'node_name' might reference an entity"
|
|
1835
|
+
reason: >
|
|
1836
|
+
node_name is a canonical identifier (e.g., "claude_hook_event_effect") that uniquely identifies a node within its service. It is NOT a foreign key reference - it is the node's own name from its contract. Combined with env, service, and version, it forms the node's identity.
|
|
1837
|
+
|
|
1838
|
+
documentation:
|
|
1839
|
+
- docs/architecture/REGISTRATION_ORCHESTRATOR_ARCHITECTURE.md
|
|
1840
|
+
ticket: OMN-1602
|
|
1841
|
+
# ==========================================================================
|
|
1842
|
+
# Emit Daemon Field Type Exemptions (OMN-1610)
|
|
1843
|
+
# ==========================================================================
|
|
1844
|
+
# Fields that are intentionally str instead of UUID for specific reasons
|
|
1845
|
+
- file_pattern: 'emit_daemon/queue\.py'
|
|
1846
|
+
violation_pattern: "Field 'event_id' should use UUID type instead of str"
|
|
1847
|
+
reason: event_id is a string representation of a UUID for JSON serialization compatibility.
|
|
1848
|
+
documentation:
|
|
1849
|
+
- src/omnibase_infra/runtime/emit_daemon/queue.py
|
|
1850
|
+
ticket: OMN-1610
|
|
1851
|
+
- file_pattern: 'emit_daemon/model_daemon_response\.py'
|
|
1852
|
+
violation_pattern: "Field 'event_id' should use UUID type instead of str"
|
|
1853
|
+
reason: event_id is returned as a string in the daemon protocol for JSON serialization compatibility. Matches queue.py event_id.
|
|
1854
|
+
documentation:
|
|
1855
|
+
- src/omnibase_infra/runtime/emit_daemon/model_daemon_response.py
|
|
1856
|
+
ticket: OMN-1610
|
|
1857
|
+
- file_pattern: 'emit_daemon/config\.py'
|
|
1858
|
+
violation_pattern: "Field 'kafka_client_id' should use UUID type instead of str"
|
|
1859
|
+
reason: kafka_client_id is a Kafka client identifier string, not a UUID.
|
|
1860
|
+
documentation:
|
|
1861
|
+
- Kafka client.id documentation
|
|
1862
|
+
ticket: OMN-1610
|
|
1863
|
+
# ==========================================================================
|
|
1864
|
+
# Contract Registry Reducer Handler Exemptions (OMN-1653)
|
|
1865
|
+
# ==========================================================================
|
|
1866
|
+
# Pure reducer handlers follow the pattern: (self, state, event, topic, partition, offset)
|
|
1867
|
+
# This 6-parameter signature is standard for event-sourced reducers that need:
|
|
1868
|
+
# - state: immutable input state
|
|
1869
|
+
# - event: typed domain event
|
|
1870
|
+
# - topic/partition/offset: Kafka position for idempotency tracking
|
|
1871
|
+
- file_pattern: 'nodes/contract_registry_reducer/reducer\.py'
|
|
1872
|
+
method_pattern: '_on_contract_registered'
|
|
1873
|
+
violation_pattern: 'has 6 parameters'
|
|
1874
|
+
reason: >
|
|
1875
|
+
Standard reducer handler signature for event-sourced reducers. The 6 parameters provide: self, state (immutable input), event (typed domain event), and Kafka position (topic/partition/offset) for idempotency tracking. This is the canonical pattern for ONEX reducers.
|
|
1876
|
+
|
|
1877
|
+
documentation:
|
|
1878
|
+
- CLAUDE.md (Node Archetypes - NodeReducer)
|
|
1879
|
+
- docs/patterns/reducer_pattern.md
|
|
1880
|
+
ticket: OMN-1653
|
|
1881
|
+
- file_pattern: 'nodes/contract_registry_reducer/reducer\.py'
|
|
1882
|
+
method_pattern: '_on_contract_deregistered'
|
|
1883
|
+
violation_pattern: 'has 6 parameters'
|
|
1884
|
+
reason: Same as _on_contract_registered - standard reducer handler signature.
|
|
1885
|
+
documentation:
|
|
1886
|
+
- CLAUDE.md (Node Archetypes - NodeReducer)
|
|
1887
|
+
ticket: OMN-1653
|
|
1888
|
+
- file_pattern: 'nodes/contract_registry_reducer/reducer\.py'
|
|
1889
|
+
method_pattern: '_on_heartbeat'
|
|
1890
|
+
violation_pattern: 'has 6 parameters'
|
|
1891
|
+
reason: Same as _on_contract_registered - standard reducer handler signature.
|
|
1892
|
+
documentation:
|
|
1893
|
+
- CLAUDE.md (Node Archetypes - NodeReducer)
|
|
1894
|
+
ticket: OMN-1653
|
|
1895
|
+
- file_pattern: 'nodes/contract_registry_reducer/reducer\.py'
|
|
1896
|
+
method_pattern: '_on_runtime_tick'
|
|
1897
|
+
violation_pattern: 'has 6 parameters'
|
|
1898
|
+
reason: Same as _on_contract_registered - standard reducer handler signature.
|
|
1899
|
+
documentation:
|
|
1900
|
+
- CLAUDE.md (Node Archetypes - NodeReducer)
|
|
1901
|
+
ticket: OMN-1653
|
|
1902
|
+
# Contract ID is a derived natural key (node_name:major.minor.patch), not a UUID.
|
|
1903
|
+
# This is intentional per the contract registry design where contracts are identified
|
|
1904
|
+
# by their name and version, enabling human-readable queries and deduplication.
|
|
1905
|
+
- file_pattern: 'nodes/contract_registry_reducer/models/model_payload_.*\.py'
|
|
1906
|
+
violation_pattern: "Field 'contract_id' should use UUID"
|
|
1907
|
+
reason: >
|
|
1908
|
+
contract_id is a derived natural key (node_name:major.minor.patch), not a UUID. This design enables human-readable queries, version-based deduplication, and matches the contract.yaml identification pattern used throughout ONEX.
|
|
1909
|
+
|
|
1910
|
+
documentation:
|
|
1911
|
+
- CLAUDE.md (Intent Model Architecture - Contract Identity)
|
|
1912
|
+
ticket: OMN-1653
|
|
1913
|
+
# node_name is the contract's semantic name, not an entity reference requiring ID + display_name.
|
|
1914
|
+
- file_pattern: 'nodes/contract_registry_reducer/models/model_payload_.*\.py'
|
|
1915
|
+
violation_pattern: "Field 'node_name' might reference an entity"
|
|
1916
|
+
reason: >
|
|
1917
|
+
node_name is the contract's semantic identifier from contract.yaml, not a reference to a separate entity. Contracts are identified by name, making this a primary attribute not a foreign key.
|
|
1918
|
+
|
|
1919
|
+
documentation:
|
|
1920
|
+
- CLAUDE.md (Contract-Driven - node_name conventions)
|
|
1921
|
+
ticket: OMN-1653
|
|
1765
1922
|
# Architecture validator exemptions
|
|
1766
1923
|
# These handle one-model-per-file violations for domain-grouped protocols
|
|
1767
1924
|
architecture_exemptions:
|
|
1768
1925
|
# ==========================================================================
|
|
1926
|
+
# Emit Daemon Config Input Model Exemption (OMN-1610)
|
|
1927
|
+
# ==========================================================================
|
|
1928
|
+
# config.py contains ModelEmitDaemonConfigInput (intermediate input model)
|
|
1929
|
+
# and ModelEmitDaemonConfig (final validated config). The input model is
|
|
1930
|
+
# tightly coupled and only used internally by with_env_overrides() factory.
|
|
1931
|
+
- file_pattern: 'emit_daemon/config\.py'
|
|
1932
|
+
violation_pattern: '\d+ models in one file'
|
|
1933
|
+
reason: >
|
|
1934
|
+
ModelEmitDaemonConfigInput is an intermediate input model used only by ModelEmitDaemonConfig.with_env_overrides() factory method. It provides early validation for environment variable parsing and is tightly coupled with the main config model. Separating would add complexity without benefit.
|
|
1935
|
+
|
|
1936
|
+
documentation:
|
|
1937
|
+
- CLAUDE.md (Protocol File Naming - domain-grouping convention)
|
|
1938
|
+
ticket: OMN-1610
|
|
1939
|
+
# ==========================================================================
|
|
1940
|
+
# Emit Daemon Protocol Models Exemption (OMN-1610)
|
|
1941
|
+
# ==========================================================================
|
|
1942
|
+
# Request and response models form discriminated unions that are always used
|
|
1943
|
+
# together. Separating into individual files would break the cohesive API.
|
|
1944
|
+
- file_pattern: 'emit_daemon/model_daemon_request\.py'
|
|
1945
|
+
violation_pattern: '\d+ models in one file'
|
|
1946
|
+
reason: >
|
|
1947
|
+
ModelDaemonPingRequest and ModelDaemonEmitRequest form a discriminated union (ModelDaemonRequest) for the daemon protocol. These request types are always parsed together via parse_daemon_request(). Per CLAUDE.md domain-grouping convention for protocol messages.
|
|
1948
|
+
|
|
1949
|
+
documentation:
|
|
1950
|
+
- CLAUDE.md (Protocol File Naming - domain-grouping convention)
|
|
1951
|
+
ticket: OMN-1610
|
|
1952
|
+
- file_pattern: 'emit_daemon/model_daemon_response\.py'
|
|
1953
|
+
violation_pattern: '\d+ models in one file'
|
|
1954
|
+
reason: >
|
|
1955
|
+
ModelDaemonPingResponse, ModelDaemonQueuedResponse, and ModelDaemonErrorResponse form a discriminated union (ModelDaemonResponse) for the daemon protocol. These response types are always parsed together via parse_daemon_response(). Per CLAUDE.md domain-grouping convention for protocol messages.
|
|
1956
|
+
|
|
1957
|
+
documentation:
|
|
1958
|
+
- CLAUDE.md (Protocol File Naming - domain-grouping convention)
|
|
1959
|
+
ticket: OMN-1610
|
|
1960
|
+
# ==========================================================================
|
|
1769
1961
|
# Contract Linter Models Exemption (PR #57)
|
|
1770
1962
|
# ==========================================================================
|
|
1771
1963
|
# linter_contract.py contains domain-grouped validation models and enums
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omnibase_infra
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.7
|
|
4
4
|
Summary: ONEX Infrastructure - Service integration and database infrastructure tools
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -28,8 +28,8 @@ Requires-Dist: jinja2 (>=3.1.6,<4.0.0)
|
|
|
28
28
|
Requires-Dist: jsonschema (>=4.20.0,<5.0.0)
|
|
29
29
|
Requires-Dist: mcp (>=1.25.0,<2.0.0)
|
|
30
30
|
Requires-Dist: neo4j (>=5.15.0,<6.0.0)
|
|
31
|
-
Requires-Dist: omnibase-core (>=0.9.
|
|
32
|
-
Requires-Dist: omnibase-spi (>=0.6.
|
|
31
|
+
Requires-Dist: omnibase-core (>=0.9.10,<0.10.0)
|
|
32
|
+
Requires-Dist: omnibase-spi (>=0.6.3,<0.7.0)
|
|
33
33
|
Requires-Dist: opentelemetry-api (>=1.27.0,<2.0.0)
|
|
34
34
|
Requires-Dist: opentelemetry-exporter-otlp (>=1.27.0,<2.0.0)
|
|
35
35
|
Requires-Dist: opentelemetry-instrumentation (>=0.48b0,<0.49)
|