omninode-memory 0.7.2__tar.gz → 0.9.0__tar.gz

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.
Files changed (497) hide show
  1. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/workflows/build-and-push-migrate-image.yml +2 -2
  2. omninode_memory-0.9.0/.github/workflows/omni-standards-compliance.yml +52 -0
  3. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/workflows/pre-commit.yml +2 -1
  4. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/workflows/release.yml +46 -0
  5. omninode_memory-0.9.0/.github/workflows/security-scan.yml +29 -0
  6. omninode_memory-0.9.0/.markdown-link-check.json +17 -0
  7. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.pre-commit-config.yaml +22 -3
  8. omninode_memory-0.9.0/AGENT.md +28 -0
  9. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/CHANGELOG.md +16 -0
  10. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/CLAUDE.md +14 -14
  11. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/PKG-INFO +7 -17
  12. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/README.md +2 -12
  13. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/pyproject.toml +31 -8
  14. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_naming.py +3 -1
  15. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/handler_filesystem_crawler.py +7 -13
  16. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/handler_intent_event_consumer.py +15 -34
  17. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/contract.yaml +2 -3
  18. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/handler_kreuzberg_parse.py +3 -14
  19. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/runtime/plugin.py +13 -7
  20. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/settings.py +26 -4
  21. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/nodes/test_kreuzberg_parse_effect.py +0 -3
  22. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_filesystem_crawler_effect/test_handler_filesystem_crawler.py +5 -39
  23. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_intent_event_consumer_effect/test_handler_intent_event_consumer.py +25 -43
  24. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +3 -20
  25. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/test_dispatch_handlers.py +3 -3
  26. omninode_memory-0.9.0/tests/unit/test_entry_points.py +24 -0
  27. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/test_validate_ci_precommit_alignment.py +2 -0
  28. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/uv.lock +22 -630
  29. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.claude/architecture-handshake.md +0 -0
  30. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.env.example +0 -0
  31. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.flake8 +0 -0
  32. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  33. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  34. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  35. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/dependabot.yml +0 -0
  36. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/required-checks.yaml +0 -0
  37. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/workflows/auto-tag-on-merge.yml +0 -0
  38. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/workflows/contract-validation.yml +0 -0
  39. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/workflows/release-dry-run.yml +0 -0
  40. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.github/workflows/test.yml +0 -0
  41. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.gitignore +0 -0
  42. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.secrets.baseline +0 -0
  43. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.serena/memories/project_overview.md +0 -0
  44. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.serena/memories/suggested_commands.md +0 -0
  45. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.serena/project.yml +0 -0
  46. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/.yamlfmt +0 -0
  47. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/CODE_OF_CONDUCT.md +0 -0
  48. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/CONTRIBUTING.md +0 -0
  49. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/LICENSE +0 -0
  50. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/SECURITY.md +0 -0
  51. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/contract.yaml +0 -0
  52. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
  53. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/deployment/database/migrations/002_create_memories_table.sql +0 -0
  54. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
  55. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
  56. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/deployment/database/migrations/005_backfill_null_checksums.sql +0 -0
  57. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +0 -0
  58. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
  59. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
  60. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/deployment/docker/Dockerfile.migrate +0 -0
  61. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docker-compose.prod.yml +0 -0
  62. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docker-compose.yml +0 -0
  63. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/INDEX.md +0 -0
  64. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/PERFORMANCE_TESTING.md +0 -0
  65. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/architecture/ARCH_002_KAFKA_ABSTRACTION.md +0 -0
  66. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md +0 -0
  67. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/ci/CI_MONITORING_GUIDE.md +0 -0
  68. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/db-split/fk-audit-omn-2069.md +0 -0
  69. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/environment_variables.md +0 -0
  70. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/handler_reuse_matrix.md +0 -0
  71. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/pii_handling.md +0 -0
  72. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/runtime/RUNTIME_PLUGINS.md +0 -0
  73. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/docs/stub_protocols.md +0 -0
  74. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/examples/__init__.py +0 -0
  75. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/examples/advanced_architecture_demo.py +0 -0
  76. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/pyrightconfig.json +0 -0
  77. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/check_migration_freeze.sh +0 -0
  78. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/check_no_hardcoded_bolt.sh +0 -0
  79. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validate_ci_precommit_alignment.py +0 -0
  80. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validate_no_transport_imports.py +0 -0
  81. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/check_ai_slop.py +0 -0
  82. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/check_kafka_no_hardcoded_fallback.sh +0 -0
  83. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_enum_casing.py +0 -0
  84. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_http_imports.py +0 -0
  85. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_kafka_imports.py +0 -0
  86. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_model_locations.py +0 -0
  87. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_no_backward_compatibility.py +0 -0
  88. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_pydantic_patterns.py +0 -0
  89. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_secrets.py +0 -0
  90. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_single_class_per_file.py +0 -0
  91. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/scripts/validation/validate_spdx_headers.py +0 -0
  92. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/__init__.py +0 -0
  93. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/_compat_imports.py +0 -0
  94. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/audit/__init__.py +0 -0
  95. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/audit/__main__.py +0 -0
  96. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/audit/io_audit.py +0 -0
  97. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/bootstrap.py +0 -0
  98. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/__init__.py +0 -0
  99. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/crawl/__init__.py +0 -0
  100. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
  101. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
  102. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
  103. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
  104. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_context_item_type.py +0 -0
  105. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_data_type.py +0 -0
  106. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
  107. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_error_code.py +0 -0
  108. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
  109. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
  110. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
  111. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
  112. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_migration_status.py +0 -0
  113. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_node_type.py +0 -0
  114. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_operation_status.py +0 -0
  115. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_priority_level.py +0 -0
  116. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
  117. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
  118. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_severity.py +0 -0
  119. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_subscription_status.py +0 -0
  120. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/enums/enum_trust_level.py +0 -0
  121. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/errors/__init__.py +0 -0
  122. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/errors/embedding_errors.py +0 -0
  123. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/__init__.py +0 -0
  124. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/__init__.py +0 -0
  125. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
  126. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +0 -0
  127. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +0 -0
  128. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
  129. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
  130. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
  131. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
  132. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
  133. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
  134. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/handler_intent.py +0 -0
  135. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/handler_subscription.py +0 -0
  136. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/models/__init__.py +0 -0
  137. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/handlers/models/model_handler_intent_config.py +0 -0
  138. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/__init__.py +0 -0
  139. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/adapters/__init__.py +0 -0
  140. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
  141. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
  142. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
  143. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
  144. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
  145. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
  146. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
  147. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/__init__.py +0 -0
  148. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
  149. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_embedding_config.py +0 -0
  150. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
  151. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
  152. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
  153. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
  154. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
  155. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_postgres_config.py +0 -0
  156. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
  157. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
  158. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
  159. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
  160. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
  161. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/container/__init__.py +0 -0
  162. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/contracts/__init__.py +0 -0
  163. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
  164. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
  165. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
  166. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
  167. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
  168. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/core/__init__.py +0 -0
  169. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/core/model_memory_context.py +0 -0
  170. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
  171. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
  172. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/core/model_memory_request.py +0 -0
  173. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/core/model_memory_response.py +0 -0
  174. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
  175. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
  176. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/core/model_provenance.py +0 -0
  177. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/__init__.py +0 -0
  178. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/model_crawl_state_record.py +0 -0
  179. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
  180. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
  181. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
  182. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
  183. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
  184. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
  185. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
  186. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/crawl/types.py +0 -0
  187. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/events/__init__.py +0 -0
  188. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
  189. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
  190. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/__init__.py +0 -0
  191. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
  192. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_configuration.py +0 -0
  193. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
  194. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_error_details.py +0 -0
  195. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
  196. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_health_response.py +0 -0
  197. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
  198. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
  199. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
  200. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_notes.py +0 -0
  201. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_priority.py +0 -0
  202. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
  203. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_semver.py +0 -0
  204. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
  205. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_system_health.py +0 -0
  206. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_tags.py +0 -0
  207. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
  208. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
  209. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/foundation/model_user.py +0 -0
  210. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/intelligence/__init__.py +0 -0
  211. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
  212. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
  213. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
  214. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
  215. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
  216. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/memory/__init__.py +0 -0
  217. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/memory/model_memory_item.py +0 -0
  218. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/memory/model_memory_query.py +0 -0
  219. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
  220. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
  221. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
  222. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/scoring/__init__.py +0 -0
  223. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
  224. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
  225. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
  226. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/service/__init__.py +0 -0
  227. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/service/model_service_config.py +0 -0
  228. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/service/model_service_health.py +0 -0
  229. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/service/model_service_registry.py +0 -0
  230. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/subscription/__init__.py +0 -0
  231. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/subscription/constants.py +0 -0
  232. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
  233. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
  234. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/subscription/model_subscription.py +0 -0
  235. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/__init__.py +0 -0
  236. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_audit.py +0 -0
  237. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
  238. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
  239. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_concurrency.py +0 -0
  240. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
  241. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
  242. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
  243. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
  244. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_health_status.py +0 -0
  245. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
  246. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
  247. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_pii_match.py +0 -0
  248. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
  249. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_pii_type.py +0 -0
  250. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
  251. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
  252. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_retry_config.py +0 -0
  253. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
  254. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
  255. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/models/utils/model_system_health.py +0 -0
  256. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/__init__.py +0 -0
  257. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/base.py +0 -0
  258. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/__init__.py +0 -0
  259. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/contract.yaml +0 -0
  260. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/__init__.py +0 -0
  261. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_request.py +0 -0
  262. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_response.py +0 -0
  263. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/__init__.py +0 -0
  264. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/contract.yaml +0 -0
  265. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/__init__.py +0 -0
  266. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/model_filesystem_crawl_result.py +0 -0
  267. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/model_filesystem_crawler_config.py +0 -0
  268. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/__init__.py +0 -0
  269. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/contract.yaml +0 -0
  270. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/__init__.py +0 -0
  271. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/model_consumer_config.py +0 -0
  272. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/model_consumer_health.py +0 -0
  273. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/utils/__init__.py +0 -0
  274. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/utils/util_event_mapper.py +0 -0
  275. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/__init__.py +0 -0
  276. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/handlers/__init__.py +0 -0
  277. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/handlers/handler_intent_query.py +0 -0
  278. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/models/__init__.py +0 -0
  279. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/models/model_handler_intent_query_config.py +0 -0
  280. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/registry/__init__.py +0 -0
  281. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/registry/registry_intent_query_effect.py +0 -0
  282. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/utils/__init__.py +0 -0
  283. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_query_effect/utils/util_intent_mapping.py +0 -0
  284. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_storage_effect/__init__.py +0 -0
  285. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_storage_effect/adapters/__init__.py +0 -0
  286. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_storage_effect/adapters/adapter_intent_storage.py +0 -0
  287. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_storage_effect/contract.yaml +0 -0
  288. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_storage_effect/models/__init__.py +0 -0
  289. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_request.py +0 -0
  290. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_response.py +0 -0
  291. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/__init__.py +0 -0
  292. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/clients/__init__.py +0 -0
  293. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/clients/client_kreuzberg.py +0 -0
  294. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/contract.yaml +0 -0
  295. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/__init__.py +0 -0
  296. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_config.py +0 -0
  297. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_result.py +0 -0
  298. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_consolidator_reducer/__init__.py +0 -0
  299. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/__init__.py +0 -0
  300. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/__init__.py +0 -0
  301. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_postgres_deactivate_memory.py +0 -0
  302. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_runtime_tick_memory.py +0 -0
  303. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/contract.yaml +0 -0
  304. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/__init__.py +0 -0
  305. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_archive.py +0 -0
  306. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_expire.py +0 -0
  307. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_tick.py +0 -0
  308. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/models/__init__.py +0 -0
  309. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/__init__.py +0 -0
  310. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/validator_lifecycle_transition.py +0 -0
  311. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  312. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/clients/__init__.py +0 -0
  313. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/clients/embedding_client.py +0 -0
  314. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/contract.yaml +0 -0
  315. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/__init__.py +0 -0
  316. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_db_mock.py +0 -0
  317. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_graph_mock.py +0 -0
  318. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_memory_retrieval.py +0 -0
  319. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +0 -0
  320. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant_mock.py +0 -0
  321. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/__init__.py +0 -0
  322. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_embedding_client_config.py +0 -0
  323. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_db_mock_config.py +0 -0
  324. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_graph_mock_config.py +0 -0
  325. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -0
  326. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +0 -0
  327. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_mock_config.py +0 -0
  328. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_request.py +0 -0
  329. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_response.py +0 -0
  330. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_storage_effect/__init__.py +0 -0
  331. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_storage_effect/adapters/__init__.py +0 -0
  332. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_storage_effect/adapters/adapter_filesystem.py +0 -0
  333. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_storage_effect/contract.yaml +0 -0
  334. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_storage_effect/models/__init__.py +0 -0
  335. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_request.py +0 -0
  336. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_response.py +0 -0
  337. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_navigation_history_reducer/__init__.py +0 -0
  338. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/__init__.py +0 -0
  339. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/handler_navigation_history_reducer.py +0 -0
  340. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_navigation_history_reducer/models/__init__.py +0 -0
  341. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_request.py +0 -0
  342. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_response.py +0 -0
  343. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_session.py +0 -0
  344. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_navigation_history_reducer/node_navigation_history_reducer.py +0 -0
  345. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/__init__.py +0 -0
  346. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/contract.yaml +0 -0
  347. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/__init__.py +0 -0
  348. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/handler_semantic_compute.py +0 -0
  349. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/__init__.py +0 -0
  350. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_request.py +0 -0
  351. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_response.py +0 -0
  352. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/node_semantic_analyzer_compute.py +0 -0
  353. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_similarity_compute/__init__.py +0 -0
  354. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_similarity_compute/contract.yaml +0 -0
  355. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_similarity_compute/handlers/__init__.py +0 -0
  356. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_similarity_compute/handlers/handler_similarity_compute.py +0 -0
  357. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_similarity_compute/models/__init__.py +0 -0
  358. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_similarity_compute/models/model_handler_similarity_compute_config.py +0 -0
  359. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_request.py +0 -0
  360. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_response.py +0 -0
  361. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_similarity_compute/node_similarity_compute.py +0 -0
  362. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/nodes/node_statistics_reducer/__init__.py +0 -0
  363. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/__init__.py +0 -0
  364. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/base_protocols.py +0 -0
  365. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/data_models.py +0 -0
  366. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/error_models.py +0 -0
  367. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/protocol_crawl_state_repository.py +0 -0
  368. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/protocol_embedding.py +0 -0
  369. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
  370. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/protocol_handler_intent.py +0 -0
  371. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +0 -0
  372. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
  373. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/runtime/__init__.py +0 -0
  374. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/runtime/adapters.py +0 -0
  375. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/runtime/contract_topics.py +0 -0
  376. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/runtime/dispatch_handlers.py +0 -0
  377. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/runtime/introspection.py +0 -0
  378. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/runtime/message_type_registration.py +0 -0
  379. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/runtime/wiring.py +0 -0
  380. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/secrets.py +0 -0
  381. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/tools/__init__.py +0 -0
  382. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/tools/contract_linter.py +0 -0
  383. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/tools/stubs/__init__.py +0 -0
  384. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/tools/stubs/contract_validator.py +0 -0
  385. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/__init__.py +0 -0
  386. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/audit_logger.py +0 -0
  387. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/concurrency.py +0 -0
  388. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/db_url.py +0 -0
  389. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/error_sanitizer.py +0 -0
  390. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/handler_constants.py +0 -0
  391. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/health_manager.py +0 -0
  392. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/observability.py +0 -0
  393. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/pii_detector.py +0 -0
  394. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/resource_manager.py +0 -0
  395. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/src/omnimemory/utils/retry_utils.py +0 -0
  396. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/__init__.py +0 -0
  397. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/audit/io_audit_whitelist.yaml +0 -0
  398. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/audit/transport_import_whitelist.yaml +0 -0
  399. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/conftest.py +0 -0
  400. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/__init__.py +0 -0
  401. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/adapters/__init__.py +0 -0
  402. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
  403. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
  404. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
  405. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
  406. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
  407. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
  408. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/test_handler_intent.py +0 -0
  409. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/handlers/test_handler_semantic_compute.py +0 -0
  410. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/__init__.py +0 -0
  411. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/conftest.py +0 -0
  412. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/nodes/__init__.py +0 -0
  413. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
  414. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/nodes/test_navigation_history_reducer_integration.py +0 -0
  415. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/test_entry_point_discovery.py +0 -0
  416. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/test_handler_lifecycle_pattern.py +0 -0
  417. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/test_handler_subscription.py +0 -0
  418. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/integration/test_node_agent_coordinator.py +0 -0
  419. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/models/__init__.py +0 -0
  420. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/models/contracts/__init__.py +0 -0
  421. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/models/contracts/test_extended_contracts.py +0 -0
  422. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/models/events/__init__.py +0 -0
  423. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/models/events/test_model_intent_classified_event.py +0 -0
  424. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/models/test_frozen_boundary_models.py +0 -0
  425. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/__init__.py +0 -0
  426. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_filesystem_crawler_effect/__init__.py +0 -0
  427. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_intent_event_consumer_effect/__init__.py +0 -0
  428. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_intent_event_consumer_effect/test_model_consumer_health.py +0 -0
  429. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_intent_event_consumer_effect/test_util_event_mapper.py +0 -0
  430. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_intent_query_effect/__init__.py +0 -0
  431. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_intent_query_effect/conftest.py +0 -0
  432. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_intent_query_effect/test_handler_intent_query_integration.py +0 -0
  433. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_intent_storage_effect/__init__.py +0 -0
  434. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_intent_storage_effect/test_handler_intent_storage_adapter_integration.py +0 -0
  435. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  436. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_memory_retrieval_effect/test_memory_retrieval_effect.py +0 -0
  437. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_memory_storage_effect/__init__.py +0 -0
  438. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_memory_storage_effect/test_memory_storage_effect.py +0 -0
  439. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_navigation_history_reducer/__init__.py +0 -0
  440. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_navigation_history_reducer/test_navigation_history_reducer_unit.py +0 -0
  441. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_similarity_compute/__init__.py +0 -0
  442. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/nodes/node_similarity_compute/test_similarity_compute.py +0 -0
  443. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_bootstrap.py +0 -0
  444. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_concurrency.py +0 -0
  445. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_config_models.py +0 -0
  446. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_contract_validation.py +0 -0
  447. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_contract_version.py +0 -0
  448. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_db_url.py +0 -0
  449. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_foundation.py +0 -0
  450. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_health_manager.py +0 -0
  451. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_migration_progress.py +0 -0
  452. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_node_enforcement.py +0 -0
  453. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_node_imports.py +0 -0
  454. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_observability_metrics.py +0 -0
  455. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_performance.py +0 -0
  456. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_resource_manager.py +0 -0
  457. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_secrets_provider.py +0 -0
  458. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_semantic_compute_policy_config.py +0 -0
  459. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_settings.py +0 -0
  460. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/test_validation_scripts.py +0 -0
  461. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/__init__.py +0 -0
  462. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/handlers/__init__.py +0 -0
  463. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/handlers/adapters/__init__.py +0 -0
  464. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
  465. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/handlers/test_subscription_typing.py +0 -0
  466. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/__init__.py +0 -0
  467. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_handler_qdrant.py +0 -0
  468. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
  469. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
  470. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +0 -0
  471. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +0 -0
  472. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +0 -0
  473. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +0 -0
  474. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +0 -0
  475. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +0 -0
  476. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/nodes/test_model_handler_qdrant_config.py +0 -0
  477. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/__init__.py +0 -0
  478. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/conftest.py +0 -0
  479. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/test_adapters.py +0 -0
  480. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/test_contract_topics.py +0 -0
  481. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/test_introspection.py +0 -0
  482. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/test_message_type_registration.py +0 -0
  483. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/test_plugin.py +0 -0
  484. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/test_plugin_memory_validate_handshake.py +0 -0
  485. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/runtime/test_wiring.py +0 -0
  486. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/test_contract_linter.py +0 -0
  487. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
  488. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/test_ingestion_models.py +0 -0
  489. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/test_io_audit.py +0 -0
  490. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/test_scope_mapping_config.py +0 -0
  491. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/test_sql_placeholders.py +0 -0
  492. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/test_validate_kafka_imports.py +0 -0
  493. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/tests/unit/test_validate_no_transport_imports.py +0 -0
  494. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/validate_architecture_improvements.py +0 -0
  495. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/validate_foundation.py +0 -0
  496. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/validate_foundation_isolated.py +0 -0
  497. {omninode_memory-0.7.2 → omninode_memory-0.9.0}/validate_foundation_minimal.py +0 -0
@@ -24,8 +24,8 @@ jobs:
24
24
  runs-on: ubuntu-latest
25
25
  timeout-minutes: 15
26
26
  steps:
27
- - uses: actions/checkout@v4
28
- - uses: aws-actions/configure-aws-credentials@v4
27
+ - uses: actions/checkout@v6
28
+ - uses: aws-actions/configure-aws-credentials@v6
29
29
  with:
30
30
  role-to-assume: arn:aws:iam::${{ vars.AWS_ACCOUNT_ID }}:role/omninode-github-actions-role
31
31
  role-session-name: gha-build-migrate-omnimemory
@@ -0,0 +1,52 @@
1
+ # SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
2
+ # SPDX-License-Identifier: MIT
3
+ ---
4
+ name: Omni* Ecosystem Standards Compliance
5
+
6
+ on:
7
+ push:
8
+ branches: [main, develop, "jonah/*", "jonahgabriel/*"]
9
+ pull_request:
10
+ branches: [main, develop]
11
+ merge_group:
12
+ workflow_dispatch:
13
+
14
+ env:
15
+ PYTHON_VERSION: "3.12"
16
+ UV_VERSION: "0.8.3"
17
+ REPO_NAME: "omnimemory"
18
+
19
+ # ci-health-ok: blocking mypy --strict already enforced in test.yml lint job
20
+
21
+ jobs:
22
+ type-union-check:
23
+ name: PEP 604 Type Union Check (UP007)
24
+ # OMNINODE_SELF_HOSTED_RUNS_ON_V1 — do not edit inline; update plan + all occurrences together
25
+ runs-on: >-
26
+ ${{
27
+ (vars.USE_SELF_HOSTED_RUNNERS == 'true' &&
28
+ (github.event_name == 'push' ||
29
+ github.event_name == 'workflow_dispatch' ||
30
+ github.event_name == 'schedule'))
31
+ && fromJSON('["self-hosted","omnibase-ci"]')
32
+ || fromJSON('["ubuntu-latest"]')
33
+ }}
34
+ steps:
35
+ - name: Checkout code
36
+ uses: actions/checkout@v6
37
+
38
+ - name: Set up Python
39
+ uses: actions/setup-python@v6
40
+ with:
41
+ python-version: ${{ env.PYTHON_VERSION }}
42
+
43
+ - name: Install uv
44
+ uses: astral-sh/setup-uv@v7
45
+ with:
46
+ version: ${{ env.UV_VERSION }}
47
+
48
+ - name: Install dependencies
49
+ run: uv sync --all-extras
50
+
51
+ - name: Check for Optional/Union usage (PEP 604)
52
+ run: uv run ruff check src/ --select UP007,UP006
@@ -23,6 +23,7 @@ jobs:
23
23
  # - contract-linter -> contract-validation job
24
24
  # - io-audit -> io-audit job
25
25
  # - mypy -> lint job (pre-push stage, not triggered here anyway)
26
+ # - onex-validate-links -> requires uv (not available in pre-commit CI env)
26
27
  - uses: pre-commit/action@v3.0.1
27
28
  env:
28
- SKIP: contract-linter,io-audit,check-ai-slop
29
+ SKIP: contract-linter,io-audit,check-ai-slop,onex-validate-links
@@ -21,6 +21,8 @@ concurrency:
21
21
  jobs:
22
22
  release:
23
23
  runs-on: ubuntu-latest
24
+ outputs:
25
+ version: ${{ steps.tag.outputs.tag }}
24
26
  steps:
25
27
  - uses: actions/checkout@v6
26
28
  with:
@@ -99,3 +101,47 @@ jobs:
99
101
  dist/SHA256SUMS.txt
100
102
  generate_release_notes: true
101
103
  prerelease: ${{ contains(github.ref_name, 'rc') }}
104
+
105
+ # ---------------------------------------------------------------------------
106
+ # Post-release: trigger Dockerfile.runtime pin cascade (OMN-5137)
107
+ # ---------------------------------------------------------------------------
108
+ # When omnimemory is released, notify omnibase_infra so its
109
+ # plugin-pin-cascade workflow can bump Dockerfile.runtime pins automatically.
110
+ #
111
+ # REQUIREMENT: CROSS_REPO_PAT secret must be a GitHub PAT with `repo` scope
112
+ # on OmniNode-ai/omnibase_infra (same pattern as omnibase_infra's
113
+ # trigger-runtime-rebuild job).
114
+ notify-plugin-pin-cascade:
115
+ name: Notify Plugin Pin Cascade
116
+ needs: release
117
+ if: ${{ !contains(needs.release.outputs.version, 'rc') }}
118
+ runs-on: ubuntu-latest
119
+ steps:
120
+ - name: Check CROSS_REPO_PAT is configured
121
+ id: token_check
122
+ env:
123
+ CROSS_REPO_PAT: ${{ secrets.CROSS_REPO_PAT }}
124
+ run: |
125
+ if [ -z "$CROSS_REPO_PAT" ]; then
126
+ echo "::warning::CROSS_REPO_PAT secret is not set. Skipping cross-repo dispatch." \
127
+ "Set a PAT with 'repo' scope on OmniNode-ai/omnibase_infra" \
128
+ "as the CROSS_REPO_PAT repository secret to enable plugin pin cascade."
129
+ echo "has_token=false" >> "$GITHUB_OUTPUT"
130
+ else
131
+ echo "has_token=true" >> "$GITHUB_OUTPUT"
132
+ fi
133
+
134
+ - name: Dispatch plugin-release to omnibase_infra
135
+ if: steps.token_check.outputs.has_token == 'true'
136
+ uses: peter-evans/repository-dispatch@v4
137
+ with:
138
+ token: ${{ secrets.CROSS_REPO_PAT }}
139
+ repository: OmniNode-ai/omnibase_infra
140
+ event-type: plugin-release
141
+ client-payload: >-
142
+ {
143
+ "package": "omninode-memory",
144
+ "version": "${{ needs.release.outputs.version }}",
145
+ "source_repo": "${{ github.repository }}",
146
+ "source_sha": "${{ github.sha }}"
147
+ }
@@ -0,0 +1,29 @@
1
+ # SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ # CodeQL security and quality analysis for omnimemory.
5
+ # Calls the reusable workflow in onex_change_control.
6
+ # OMN-5424
7
+
8
+ name: Security Scan
9
+
10
+ on:
11
+ push:
12
+ branches: [main]
13
+ pull_request:
14
+ branches: [main]
15
+ schedule:
16
+ # Run weekly on Monday at 06:00 UTC
17
+ - cron: "0 6 * * 1"
18
+
19
+ jobs:
20
+ codeql:
21
+ name: CodeQL
22
+ uses: OmniNode-ai/onex_change_control/.github/workflows/codeql-reusable.yml@main
23
+ with:
24
+ language: python
25
+ query_suite: security-and-quality
26
+ permissions:
27
+ actions: read
28
+ contents: read
29
+ security-events: write
@@ -0,0 +1,17 @@
1
+ {
2
+ "ignorePatterns": [
3
+ {"pattern": "^https://linear\\.app"},
4
+ {"pattern": "^https://github\\.com/OmniNode-ai"},
5
+ {"pattern": "^http://localhost"},
6
+ {"pattern": "^https://localhost"}
7
+ ],
8
+ "excludeFiles": [
9
+ ".pytest_cache/**",
10
+ ".venv/**",
11
+ "venv/**",
12
+ "node_modules/**",
13
+ "archived/**"
14
+ ],
15
+ "checkExternal": false,
16
+ "externalTimeout": 5000
17
+ }
@@ -76,6 +76,16 @@
76
76
  # pre-commit run --all-files --hook-stage pre-push # Run pre-push hooks
77
77
 
78
78
  repos:
79
+ # No hardcoded ONEX topic strings — sourced from onex_change_control (OMN-5259)
80
+ - repo: https://github.com/OmniNode-ai/onex_change_control
81
+ rev: 39a09ffb2432b8b7d3f47b334b869b55c9cb4fc6 # pragma: allowlist secret
82
+ hooks:
83
+ - id: no-hardcoded-topics
84
+ # Pre-existing violations — pending migration to canonical topic constants
85
+ exclude: >-
86
+ ^src/omnimemory/nodes/(node_filesystem_crawler_effect|node_intent_event_consumer_effect|node_kreuzberg_parse_effect)/models/
87
+ stages: [pre-commit]
88
+
79
89
  # Stub implementation detection — sourced from omnibase_core (OMN-4472)
80
90
  - repo: https://github.com/OmniNode-ai/omnibase_core
81
91
  rev: 30a06f85bb5849902d33c8d0bdb90fc6cba0c346 # pragma: allowlist secret
@@ -158,7 +168,7 @@ repos:
158
168
  - id: mypy-type-check
159
169
  name: mypy (type checking - strict)
160
170
  # SYNCHRONIZED WITH CI: Identical to .github/workflows/test.yml lint job
161
- entry: poetry run mypy --show-error-codes --no-error-summary src/omnimemory
171
+ entry: uv run mypy --show-error-codes --no-error-summary src/omnimemory
162
172
  language: system
163
173
  types: [python]
164
174
  pass_filenames: false
@@ -347,7 +357,7 @@ repos:
347
357
  - id: contract-linter
348
358
  name: ONEX Contract Linter
349
359
  description: Validates node contract YAML files. Requires Poetry (poetry install).
350
- entry: poetry run python -m omnimemory.tools.contract_linter
360
+ entry: uv run python -m omnimemory.tools.contract_linter
351
361
  language: system
352
362
  pass_filenames: true
353
363
  # SYNC: CI uses `find src/omnimemory -name contract.yaml` with graceful
@@ -367,7 +377,7 @@ repos:
367
377
  - id: io-audit
368
378
  name: I/O Audit (ONEX node purity)
369
379
  description: Audits node purity for forbidden I/O. Requires Poetry (poetry install).
370
- entry: poetry run python -m omnimemory.audit
380
+ entry: uv run python -m omnimemory.audit
371
381
  language: system
372
382
  pass_filenames: false
373
383
  types: [python]
@@ -470,6 +480,15 @@ repos:
470
480
  exclude: ^(archived/|archive/)
471
481
  stages: [pre-commit]
472
482
 
483
+ # Markdown link validation (OMN-5086) — uses onex-validate-links from omnibase_core
484
+ - id: onex-validate-links
485
+ name: Validate markdown links
486
+ entry: uv run onex-validate-links --verbose
487
+ language: system
488
+ types: [markdown]
489
+ pass_filenames: false
490
+ stages: [pre-commit]
491
+
473
492
  # Configuration
474
493
  default_install_hook_types: [pre-commit, pre-push]
475
494
  default_stages: [pre-commit]
@@ -0,0 +1,28 @@
1
+ # AGENT.md -- omnimemory
2
+
3
+ > LLM navigation guide. Points to context sources -- does not duplicate them.
4
+
5
+ ## Context
6
+
7
+ - **Architecture**: `docs/architecture/`
8
+ - **Stub status**: `docs/stub_protocols.md`
9
+ - **PII handling**: `docs/pii_handling.md`
10
+ - **Conventions**: `CLAUDE.md`
11
+
12
+ ## Commands
13
+
14
+ - Tests: `uv run pytest -m unit`
15
+ - Lint: `uv run ruff check src/ tests/`
16
+ - Type check: `uv run mypy src/omnimemory/`
17
+ - Pre-commit: `pre-commit run --all-files`
18
+
19
+ ## Cross-Repo
20
+
21
+ - Shared platform standards: `~/.claude/CLAUDE.md`
22
+ - Core models: `omnibase_core/CLAUDE.md`
23
+
24
+ ## Rules
25
+
26
+ - Qdrant for vector storage, PostgreSQL for metadata
27
+ - Document ingestion + semantic retrieval pipeline
28
+ - PII detection required before storage
@@ -1,3 +1,19 @@
1
+ ## v0.9.0 (2026-03-19)
2
+
3
+ ### Added
4
+ - feat(ci): deploy CodeQL security scanning to omnimemory [OMN-5424] (#179)
5
+ - feat: add onex.node_package entry point for contract discovery [OMN-5370] (#177)
6
+ - feat: PluginMemory.should_activate() infers from OMNIMEMORY_MEMGRAPH_HOST [OMN-5359] (#175)
7
+ - feat: infer OMNIMEMORY__POSTGRES_ENABLED and QDRANT_ENABLED from connection URLs [OMN-5362] (#176)
8
+
9
+ ### Fixed
10
+ - fix: remove env_prefix topic prefixing from handlers [OMN-5214] (#171, #172)
11
+
12
+ ### Changed
13
+ - ci(omnimemory): add ruff UP007 standards compliance workflow [OMN-5132] (#178)
14
+ - chore: wire no-hardcoded-topics pre-commit hook [OMN-5259] (#174)
15
+ - chore(deps): bump omnibase-core to 0.29.0, omnibase-spi to 0.18.0, omnibase-infra to 0.22.0
16
+
1
17
  ## v0.7.2 (2026-03-13)
2
18
 
3
19
  ### Other Changes
@@ -1,6 +1,6 @@
1
1
  # CLAUDE.md - OmniMemory
2
2
 
3
- > **Python**: 3.12+ | **Framework**: ONEX 4.0 | **Package Manager**: Poetry | **Shared Standards**: See **`~/.claude/CLAUDE.md`** for shared development standards (Python, Git, testing, architecture principles) and infrastructure configuration (PostgreSQL, Kafka/Redpanda, Docker networking, environment variables).
3
+ > **Python**: 3.12+ | **Framework**: ONEX 4.0 | **Package Manager**: uv (hatchling backend) | **Shared Standards**: See **`~/.claude/CLAUDE.md`** for shared development standards (Python, Git, testing, architecture principles) and infrastructure configuration (PostgreSQL, Kafka/Redpanda, Docker networking, environment variables).
4
4
 
5
5
  ---
6
6
 
@@ -49,22 +49,22 @@ OmniMemory explicitly does **NOT**:
49
49
 
50
50
  ```bash
51
51
  # Setup
52
- poetry install
52
+ uv sync --group dev
53
53
  pre-commit install
54
54
  pre-commit install --hook-type pre-push
55
55
 
56
56
  # Format and lint
57
- poetry run ruff format src/ tests/
58
- poetry run ruff check --fix src/ tests/
57
+ uv run ruff format src/ tests/
58
+ uv run ruff check --fix src/ tests/
59
59
 
60
60
  # Type checking
61
- poetry run mypy src/omnimemory
61
+ uv run mypy src/omnimemory
62
62
 
63
63
  # Testing
64
- poetry run pytest # All tests
65
- poetry run pytest -m unit # Unit tests only
66
- poetry run pytest -m integration # Integration tests
67
- poetry run pytest --cov # With coverage report
64
+ uv run pytest # All tests
65
+ uv run pytest -m unit # Unit tests only
66
+ uv run pytest -m integration # Integration tests
67
+ uv run pytest --cov # With coverage report
68
68
 
69
69
  # Pre-commit validation
70
70
  pre-commit run --all-files
@@ -77,12 +77,12 @@ pre-commit run --all-files --hook-stage pre-push
77
77
 
78
78
  ## Package Manager
79
79
 
80
- This repository uses **Poetry** for dependency management. All Python commands must be run via `poetry run`.
80
+ This repository uses **uv** for dependency management. All Python commands must be run via `uv run`.
81
81
 
82
82
  ```bash
83
- poetry install # Install all dependencies
84
- poetry run <command> # Run command in venv
85
- poetry lock # Regenerate lockfile
83
+ uv sync # Install all dependencies
84
+ uv run <command> # Run command in venv
85
+ uv lock # Regenerate lockfile
86
86
  ```
87
87
 
88
88
  ---
@@ -247,4 +247,4 @@ For project overview, mission, and technology stack, see `README.md`.
247
247
 
248
248
  ---
249
249
 
250
- **Python**: 3.12+ | **Package Manager**: Poetry | **ONEX**: 4.0+
250
+ **Python**: 3.12+ | **Package Manager**: uv | **ONEX**: 4.0+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omninode-memory
3
- Version: 0.7.2
3
+ Version: 0.9.0
4
4
  Summary: OmniNode document ingestion and semantic retrieval
5
5
  Project-URL: Homepage, https://github.com/OmniNode-ai/omnimemory
6
6
  Project-URL: Repository, https://github.com/OmniNode-ai/omnimemory
@@ -11,7 +11,7 @@ Author-email: "OmniNode.ai" <contact@omninode.ai>
11
11
  License: MIT
12
12
  License-File: LICENSE
13
13
  Keywords: embeddings,memory,omninode,onex,rag,semantic-search
14
- Requires-Python: <4.0,>=3.12
14
+ Requires-Python: <3.14,>=3.12
15
15
  Requires-Dist: aiohttp<4.0.0,>=3.12.15
16
16
  Requires-Dist: alembic<2.0.0,>=1.13.0
17
17
  Requires-Dist: asyncio-mqtt<1.0.0,>=0.16.0
@@ -20,9 +20,9 @@ Requires-Dist: cachetools<8.0.0,>=6.2.4
20
20
  Requires-Dist: fastapi<1.0.0,>=0.120.1
21
21
  Requires-Dist: httpx<1.0.0,>=0.28.0
22
22
  Requires-Dist: mcp<2.0.0,>=1.8.0
23
- Requires-Dist: omnibase-core==0.27.0
24
- Requires-Dist: omnibase-infra==0.20.0
25
- Requires-Dist: omnibase-spi>=0.16.1
23
+ Requires-Dist: omnibase-core==0.29.0
24
+ Requires-Dist: omnibase-infra==0.22.0
25
+ Requires-Dist: omnibase-spi==0.18.0
26
26
  Requires-Dist: pinecone-client<7.0.0,>=4.1.0
27
27
  Requires-Dist: psutil<8.0.0,>=7.0.0
28
28
  Requires-Dist: psycopg2-binary<3.0.0,>=2.9.10
@@ -48,19 +48,9 @@ Description-Content-Type: text/markdown
48
48
 
49
49
  **Memory persistence, recall, and semantic retrieval for the OmniNode platform.** OmniMemory provides ONEX-compliant nodes and handlers for storing agent context, indexing embeddings, querying intent graphs, and managing the full memory lifecycle across distributed omni agents.
50
50
 
51
- ## Four-Node Architecture
51
+ ## Architecture
52
52
 
53
- ```text
54
- ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
55
- │ EFFECT │───▶│ COMPUTE │───▶│ REDUCER │───▶│ ORCHESTRATOR │
56
- │ (store/fetch) │ │ (embed/analyze) │ │ (consolidate) │ │ (coordinate) │
57
- └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
58
- ```
59
-
60
- - **EFFECT**: Memory storage, retrieval, and intent query against external backends
61
- - **COMPUTE**: Semantic analysis, similarity scoring, embedding generation
62
- - **REDUCER**: Memory consolidation, statistics aggregation, lifecycle state management
63
- - **ORCHESTRATOR**: Agent coordination, multi-step memory lifecycle workflows
53
+ Follows the [ONEX Four-Node Architecture](https://github.com/OmniNode-ai/omnibase_core/blob/main/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md) (EFFECT, COMPUTE, REDUCER, ORCHESTRATOR) applied to memory operations.
64
54
 
65
55
  ## What This Repo Provides
66
56
 
@@ -8,19 +8,9 @@
8
8
 
9
9
  **Memory persistence, recall, and semantic retrieval for the OmniNode platform.** OmniMemory provides ONEX-compliant nodes and handlers for storing agent context, indexing embeddings, querying intent graphs, and managing the full memory lifecycle across distributed omni agents.
10
10
 
11
- ## Four-Node Architecture
11
+ ## Architecture
12
12
 
13
- ```text
14
- ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
15
- │ EFFECT │───▶│ COMPUTE │───▶│ REDUCER │───▶│ ORCHESTRATOR │
16
- │ (store/fetch) │ │ (embed/analyze) │ │ (consolidate) │ │ (coordinate) │
17
- └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘
18
- ```
19
-
20
- - **EFFECT**: Memory storage, retrieval, and intent query against external backends
21
- - **COMPUTE**: Semantic analysis, similarity scoring, embedding generation
22
- - **REDUCER**: Memory consolidation, statistics aggregation, lifecycle state management
23
- - **ORCHESTRATOR**: Agent coordination, multi-step memory lifecycle workflows
13
+ Follows the [ONEX Four-Node Architecture](https://github.com/OmniNode-ai/omnibase_core/blob/main/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md) (EFFECT, COMPUTE, REDUCER, ORCHESTRATOR) applied to memory operations.
24
14
 
25
15
  ## What This Repo Provides
26
16
 
@@ -7,10 +7,10 @@ build-backend = "hatchling.build"
7
7
 
8
8
  [project]
9
9
  name = "omninode-memory"
10
- version = "0.7.2"
10
+ version = "0.9.0"
11
11
  description = "OmniNode document ingestion and semantic retrieval"
12
12
  readme = "README.md"
13
- requires-python = ">=3.12,<4.0"
13
+ requires-python = ">=3.12,<3.14"
14
14
  license = { text = "MIT" }
15
15
  authors = [{ name = "OmniNode.ai", email = "contact@omninode.ai" }]
16
16
  keywords = ["omninode", "memory", "rag", "embeddings", "semantic-search", "onex"]
@@ -59,9 +59,9 @@ dependencies = [
59
59
  "pyyaml>=6.0.2,<7.0.0",
60
60
 
61
61
  # ONEX dependencies - versioned releases from PyPI
62
- "omnibase-core==0.27.0",
63
- "omnibase-spi>=0.16.1",
64
- "omnibase-infra==0.20.0",
62
+ "omnibase-core==0.29.0",
63
+ "omnibase-spi==0.18.0",
64
+ "omnibase-infra==0.22.0",
65
65
 
66
66
  # Logging and monitoring
67
67
  # Version ^23.3.0 required for compatibility with omnibase-infra (requires ^23.2.0)
@@ -84,6 +84,9 @@ Changelog = "https://github.com/OmniNode-ai/omnimemory/blob/main/CHANGELOG.md"
84
84
  [project.entry-points."onex.domain_plugins"]
85
85
  memory = "omnimemory.runtime.plugin:PluginMemory"
86
86
 
87
+ [project.entry-points."onex.node_package"]
88
+ omnimemory = "omnimemory.nodes"
89
+
87
90
  [tool.hatch.build.targets.wheel]
88
91
  packages = ["src/omnimemory"]
89
92
 
@@ -217,7 +220,7 @@ ignore = [
217
220
  "N806", # Variable in function should be lowercase
218
221
  "PTH123", # Use Path.open() instead of open()
219
222
  "TID252", # Prefer absolute imports over relative from parent
220
- "T201", # print() found (use logging instead)
223
+ # T201 (print) is NOT ignored — enforced per standardization plan
221
224
  "S311", # Random not suitable for crypto (acceptable for non-crypto)
222
225
  "RUF022", # __all__ is not sorted
223
226
  "RUF012", # Mutable class attrs should be ClassVar
@@ -269,6 +272,11 @@ known-first-party = ["omnimemory"]
269
272
  "src/omnimemory/audit/*" = [
270
273
  "N802", # AST visitor methods use CamelCase (visit_Import, visit_Call, etc.)
271
274
  ]
275
+ # CLI entry points — intentional print() for user-facing output
276
+ "src/omnimemory/audit/__main__.py" = ["T201"]
277
+ "src/omnimemory/tools/contract_linter.py" = ["T201"]
278
+ # Performance benchmark test — uses print() for results output
279
+ "tests/test_performance.py" = ["T201"]
272
280
  # Test-only rules - acceptable in test files
273
281
  "tests/**/*" = [
274
282
  "SLF001", # Private member accessed (tests need to verify internals)
@@ -329,9 +337,15 @@ warn_untyped_fields = true
329
337
  asyncio_mode = "auto"
330
338
  asyncio_default_fixture_loop_scope = "function"
331
339
  testpaths = ["tests"]
340
+ pythonpath = ["src", "."]
332
341
  python_files = ["test_*.py"]
333
342
  python_functions = ["test_*"]
334
- addopts = "-v --tb=short --strict-markers"
343
+ addopts = [
344
+ "--strict-markers",
345
+ "--strict-config",
346
+ "-ra",
347
+ "--tb=short",
348
+ ]
335
349
  # Filter deprecation warnings from third-party libraries we can't fix
336
350
  filterwarnings = [
337
351
  # Google protobuf PyType_Spec metaclass warning - upstream issue, can't fix
@@ -347,4 +361,13 @@ markers = [
347
361
  ]
348
362
 
349
363
  [tool.uv]
350
- # No override-dependencies needed — omnibase-infra>=0.14.0 + omnibase-core>=0.23.0 resolve cleanly.
364
+ # Override omnibase-infra's transitive pins on core/spi so our direct pins win.
365
+ override-dependencies = [
366
+ "omnibase-core==0.29.0",
367
+ "omnibase-spi==0.18.0",
368
+ ]
369
+
370
+ [tool.uv.sources]
371
+ omnibase-core = { git = "https://github.com/OmniNode-ai/omnibase_core.git", branch = "release/v0.29.0" }
372
+ omnibase-spi = { git = "https://github.com/OmniNode-ai/omnibase_spi.git", branch = "release/v0.18.0" }
373
+ omnibase-infra = { git = "https://github.com/OmniNode-ai/omnibase_infra.git", branch = "release/v0.22.0" }
@@ -356,7 +356,9 @@ def detect_expected_prefix_from_bases(
356
356
  return None, None
357
357
 
358
358
 
359
- def validate_file(filepath: Path) -> list[Violation]: # stub-ok: docstring uses ModelXxx/ServiceXxx as naming examples, not TODO markers
359
+ def validate_file( # stub-ok: docstring uses ModelXxx/ServiceXxx as naming examples, not TODO markers
360
+ filepath: Path,
361
+ ) -> list[Violation]:
360
362
  """Validate a single Python file.
361
363
 
362
364
  Validates:
@@ -50,7 +50,6 @@ Example::
50
50
  correlation_id=uuid4(),
51
51
  crawl_scope="omninode/omnimemory",
52
52
  trigger_source="scheduled",
53
- env_prefix="dev",
54
53
  publish_callback=publisher,
55
54
  )
56
55
  print(f"discovered={result.discovered_count}")
@@ -353,7 +352,6 @@ class HandlerFilesystemCrawler:
353
352
  correlation_id: UUID,
354
353
  crawl_scope: str,
355
354
  trigger_source: TriggerSource,
356
- env_prefix: str,
357
355
  publish_callback: Callable[
358
356
  [str, dict[str, object]], Coroutine[object, object, None]
359
357
  ],
@@ -373,9 +371,8 @@ class HandlerFilesystemCrawler:
373
371
  correlation_id: Threaded from the originating crawl tick command.
374
372
  crawl_scope: Scope string from the crawl tick command.
375
373
  trigger_source: What triggered this crawl run.
376
- env_prefix: Deployment environment prefix (e.g. "dev").
377
374
  publish_callback: Async callback for publishing events.
378
- Signature: (full_topic, message_dict) -> Coroutine[..., None].
375
+ Signature: (topic, message_dict) -> Coroutine[..., None].
379
376
  scope_mappings: Optional list of (path_prefix, scope_ref) pairs
380
377
  for scope resolution. If None, DEFAULT_SCOPE_REF is used
381
378
  for all files.
@@ -607,7 +604,7 @@ class HandlerFilesystemCrawler:
607
604
  )
608
605
  await _publish_event(
609
606
  publish_callback,
610
- f"{env_prefix}.{self._config.publish_topic_discovered}",
607
+ self._config.publish_topic_discovered,
611
608
  discovered_event.model_dump(mode="json"),
612
609
  correlation_id,
613
610
  )
@@ -626,7 +623,7 @@ class HandlerFilesystemCrawler:
626
623
  )
627
624
  await _publish_event(
628
625
  publish_callback,
629
- f"{env_prefix}.{self._config.publish_topic_indexed}",
626
+ self._config.publish_topic_indexed,
630
627
  indexed_event.model_dump(mode="json"),
631
628
  correlation_id,
632
629
  )
@@ -682,7 +679,7 @@ class HandlerFilesystemCrawler:
682
679
  )
683
680
  await _publish_event(
684
681
  publish_callback,
685
- f"{env_prefix}.{self._config.publish_topic_changed}",
682
+ self._config.publish_topic_changed,
686
683
  changed_event.model_dump(mode="json"),
687
684
  correlation_id,
688
685
  )
@@ -701,7 +698,7 @@ class HandlerFilesystemCrawler:
701
698
  )
702
699
  await _publish_event(
703
700
  publish_callback,
704
- f"{env_prefix}.{self._config.publish_topic_indexed}",
701
+ self._config.publish_topic_indexed,
705
702
  indexed_event.model_dump(mode="json"),
706
703
  correlation_id,
707
704
  )
@@ -744,7 +741,6 @@ class HandlerFilesystemCrawler:
744
741
  emitted_at_utc=now_utc,
745
742
  crawl_scope=crawl_scope,
746
743
  trigger_source=trigger_source,
747
- env_prefix=env_prefix,
748
744
  publish_callback=publish_callback,
749
745
  resolved_mappings=resolved_mappings,
750
746
  )
@@ -789,7 +785,6 @@ class HandlerFilesystemCrawler:
789
785
  emitted_at_utc: datetime,
790
786
  crawl_scope: str,
791
787
  trigger_source: TriggerSource,
792
- env_prefix: str,
793
788
  publish_callback: Callable[
794
789
  [str, dict[str, object]], Coroutine[object, object, None]
795
790
  ],
@@ -816,7 +811,6 @@ class HandlerFilesystemCrawler:
816
811
  emitted_at_utc: UTC datetime when the crawl run started.
817
812
  crawl_scope: Scope string from the originating crawl tick command.
818
813
  trigger_source: What triggered the crawl run.
819
- env_prefix: Environment prefix for topic construction.
820
814
  publish_callback: Async publish callback.
821
815
  resolved_mappings: Scope mappings for source_type resolution.
822
816
 
@@ -874,7 +868,7 @@ class HandlerFilesystemCrawler:
874
868
  )
875
869
  await _publish_event(
876
870
  publish_callback,
877
- f"{env_prefix}.{self._config.publish_topic_removed}",
871
+ self._config.publish_topic_removed,
878
872
  removed_event.model_dump(mode="json"),
879
873
  correlation_id,
880
874
  )
@@ -925,7 +919,7 @@ async def _publish_event(
925
919
 
926
920
  Args:
927
921
  publish_callback: Caller-supplied async publish function.
928
- topic: Full topic name (env prefix already applied).
922
+ topic: Full canonical ONEX topic name.
929
923
  payload: Serialized event dict.
930
924
  correlation_id: Used in error log for traceability.
931
925
  """