omninode-memory 0.18.3__tar.gz → 0.18.4__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 (603) hide show
  1. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/required-checks.yaml +37 -1
  2. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/ban-hardcoded-runner-ip.yml +2 -1
  3. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/call-occ-autobind.yml +9 -7
  4. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/call-occ-companion-effect.yml +3 -2
  5. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/call-reject-skip.yml +1 -1
  6. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/check-handshake.yml +2 -3
  7. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/ci.yml +172 -2
  8. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/contract-validation.yml +1 -1
  9. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/docs-validate.yml +1 -1
  10. omninode_memory-0.18.4/.github/workflows/hardcoded-model-config.yml +24 -0
  11. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/imperative-contract-guard.yml +2 -2
  12. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/kb-doc-gate.yml +1 -1
  13. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/public-repo-hygiene.yml +2 -2
  14. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/secrets-baseline-wiring.yml +1 -1
  15. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/security-scan.yml +1 -1
  16. omninode_memory-0.18.4/.onex_ratchets/canonical_file_shape_baseline.txt +75 -0
  17. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.pre-commit-config.yaml +43 -2
  18. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.public-repo-hygiene.yaml +1 -0
  19. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.secrets.baseline +2 -2
  20. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/CHANGELOG.md +10 -0
  21. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/CLAUDE.md +2 -2
  22. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/PKG-INFO +16 -16
  23. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/README.md +13 -13
  24. omninode_memory-0.18.4/config/hardcoded_model_config_baseline.yaml +53 -0
  25. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/pyproject.toml +3 -3
  26. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/ci/test_selection_adjacency.yaml +4 -0
  27. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validate_ci_precommit_alignment.py +20 -0
  28. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +1 -1
  29. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/contract.yaml +0 -9
  30. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/contract.yaml +5 -31
  31. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_storage_effect/contract.yaml +3 -23
  32. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/contract.yaml +3 -12
  33. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_navigation_history_reducer/contract.yaml +1 -4
  34. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_builder_compute/contract.yaml +3 -10
  35. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_semantic_analyzer_compute/contract.yaml +3 -12
  36. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_similarity_compute/contract.yaml +3 -12
  37. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/wiring.py +24 -29
  38. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/test_golden_chain_qdrant_ingestion.py +10 -1
  39. omninode_memory-0.18.4/tests/scripts/test_occ_eligibility_enforcement.py +165 -0
  40. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_contract_validation.py +58 -53
  41. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_handler_routing_boot_resolvable.py +1 -1
  42. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_wiring.py +41 -1
  43. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_validate_ci_precommit_alignment.py +11 -3
  44. omninode_memory-0.18.4/tests/unit/test_workflow_sibling_pins.py +94 -0
  45. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/uv.lock +12 -12
  46. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.claude/architecture-handshake.md +0 -0
  47. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.env.example +0 -0
  48. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.flake8 +0 -0
  49. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/CODE_OF_CONDUCT.md +0 -0
  50. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/CONTRIBUTING.md +0 -0
  51. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  52. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  53. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  54. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/dependabot.yml +0 -0
  55. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/auto-merge.yml +0 -0
  56. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/auto-tag-on-merge.yml +0 -0
  57. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/build-and-push-migrate-image.yml +0 -0
  58. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/dep-provenance-gate.yml +0 -0
  59. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/main-target-guard.yml +0 -0
  60. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/omni-standards-compliance.yml +0 -0
  61. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/pin-resolvability-gate.yml +0 -0
  62. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/pr-title-check.yml +0 -0
  63. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/pre-commit.yml +0 -0
  64. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/release-dry-run.yml +0 -0
  65. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/release.yml +0 -0
  66. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/sibling-lock-refresh.yml +0 -0
  67. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/stale-todo-gate.yml +0 -0
  68. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/todo-audit-on-merge.yml +0 -0
  69. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/url-authority-gate.yml +0 -0
  70. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/validate-validator-requirements.yml +0 -0
  71. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.github/workflows/validator-runtime-profiles.yml +0 -0
  72. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.gitignore +0 -0
  73. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.kb-doc-gate.yaml +0 -0
  74. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.markdown-link-check.json +0 -0
  75. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.onex_ratchets/noncanonical_class_allowlist.yaml +0 -0
  76. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.pre-commit-hooks/reject-deploy-gate-skip-token.sh +0 -0
  77. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.serena/project.yml +0 -0
  78. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/.yamlfmt +0 -0
  79. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/LICENSE +0 -0
  80. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/SECURITY.md +0 -0
  81. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/architecture-handshakes/validator-requirements-baseline.yaml +0 -0
  82. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/architecture-handshakes/validator-requirements.yaml +0 -0
  83. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/contract.yaml +0 -0
  84. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/contracts/OMN-12245.yaml +0 -0
  85. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
  86. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/deployment/database/migrations/002_create_memories_table.sql +0 -0
  87. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
  88. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
  89. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/deployment/database/migrations/005_backfill_null_checksums.sql +0 -0
  90. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +0 -0
  91. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
  92. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
  93. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/deployment/docker/Dockerfile.migrate +0 -0
  94. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docker-compose.prod.yml +0 -0
  95. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docker-compose.yml +0 -0
  96. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-icon-black.png +0 -0
  97. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-icon-full-color.svg +0 -0
  98. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-icon-white.png +0 -0
  99. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-inline-black.png +0 -0
  100. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-inline-full-color.svg +0 -0
  101. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-inline-white.png +0 -0
  102. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-stacked-black.png +0 -0
  103. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-stacked-full-color.svg +0 -0
  104. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-stacked-white.png +0 -0
  105. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-wordmark-black.svg +0 -0
  106. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-wordmark-grey.svg +0 -0
  107. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/docs/assets/brand/omninode-wordmark-white.svg +0 -0
  108. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/examples/__init__.py +0 -0
  109. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/examples/advanced_architecture_demo.py +0 -0
  110. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/pyrightconfig.json +0 -0
  111. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/__init__.py +0 -0
  112. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/check_dep_provenance.py +0 -0
  113. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/check_migration_freeze.sh +0 -0
  114. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/check_no_hardcoded_bolt.sh +0 -0
  115. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/ci/__init__.py +0 -0
  116. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/ci/collect_changed_files.py +0 -0
  117. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/ci/detect_test_paths.py +0 -0
  118. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/ci/occ_manual_replay_precheck.py +0 -0
  119. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/ci/run_runtime_profiles_validator.py +0 -0
  120. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/ci/test_selection_loader.py +0 -0
  121. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/ci/test_selection_models.py +0 -0
  122. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/ci/verify_pypi_pin_resolvability.py +0 -0
  123. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/graphify_to_memgraph.py +0 -0
  124. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/graphify_to_qdrant.py +0 -0
  125. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/__init__.py +0 -0
  126. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/check_ai_slop.py +0 -0
  127. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/check_kafka_no_hardcoded_fallback.sh +0 -0
  128. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/check_no_internal_ips.sh +0 -0
  129. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/check_precommit_additional_dependencies.sh +0 -0
  130. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/foundation_validation_common.py +0 -0
  131. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_enum_casing.py +0 -0
  132. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_http_imports.py +0 -0
  133. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_kafka_imports.py +0 -0
  134. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_model_locations.py +0 -0
  135. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_naming.py +0 -0
  136. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_no_backward_compatibility.py +0 -0
  137. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_no_env_fallbacks.py +0 -0
  138. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_pydantic_patterns.py +0 -0
  139. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_secrets.py +0 -0
  140. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_single_class_per_file.py +0 -0
  141. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/scripts/validation/validate_spdx_headers.py +0 -0
  142. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/__init__.py +0 -0
  143. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/_compat_imports.py +0 -0
  144. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/__init__.py +0 -0
  145. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_concurrency.py +0 -0
  146. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_correlation_context.py +0 -0
  147. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_db_url.py +0 -0
  148. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_error_sanitizer.py +0 -0
  149. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_handler_constants.py +0 -0
  150. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_health_manager.py +0 -0
  151. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_metrics_counter.py +0 -0
  152. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_observability_wrapper.py +0 -0
  153. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_pii_detector.py +0 -0
  154. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_resource_manager.py +0 -0
  155. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/adapters/adapter_retry_utils.py +0 -0
  156. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/bootstrap.py +0 -0
  157. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/__init__.py +0 -0
  158. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/crawl/__init__.py +0 -0
  159. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
  160. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
  161. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
  162. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
  163. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_context_item_type.py +0 -0
  164. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_data_type.py +0 -0
  165. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
  166. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_error_code.py +0 -0
  167. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
  168. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
  169. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
  170. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
  171. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_memory_type.py +0 -0
  172. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_migration_status.py +0 -0
  173. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_node_type.py +0 -0
  174. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_operation_status.py +0 -0
  175. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_preferred_tone.py +0 -0
  176. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_priority_level.py +0 -0
  177. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
  178. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
  179. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_severity.py +0 -0
  180. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_subscription_status.py +0 -0
  181. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_technical_level.py +0 -0
  182. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/enums/enum_trust_level.py +0 -0
  183. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/errors/__init__.py +0 -0
  184. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/errors/embedding_errors.py +0 -0
  185. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/__init__.py +0 -0
  186. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/__init__.py +0 -0
  187. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
  188. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +0 -0
  189. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/adapter_intent_graph_contract.yaml +0 -0
  190. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
  191. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
  192. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
  193. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
  194. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
  195. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
  196. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/handler_intent.py +0 -0
  197. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/handler_subscription.py +0 -0
  198. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/handler_subscription_contract.yaml +0 -0
  199. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/models/__init__.py +0 -0
  200. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/handlers/models/model_handler_intent_config.py +0 -0
  201. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/__init__.py +0 -0
  202. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/adapters/__init__.py +0 -0
  203. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
  204. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
  205. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
  206. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
  207. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
  208. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
  209. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
  210. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/__init__.py +0 -0
  211. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
  212. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_embedding_config.py +0 -0
  213. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
  214. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
  215. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
  216. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
  217. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
  218. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_postgres_config.py +0 -0
  219. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
  220. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
  221. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
  222. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
  223. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
  224. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/container/__init__.py +0 -0
  225. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/contracts/__init__.py +0 -0
  226. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
  227. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
  228. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
  229. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
  230. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
  231. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/core/__init__.py +0 -0
  232. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/core/model_memory_context.py +0 -0
  233. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
  234. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
  235. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/core/model_memory_request.py +0 -0
  236. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/core/model_memory_response.py +0 -0
  237. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
  238. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
  239. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/core/model_provenance.py +0 -0
  240. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/crawl/__init__.py +0 -0
  241. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
  242. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
  243. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
  244. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
  245. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
  246. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
  247. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
  248. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/crawl/types.py +0 -0
  249. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/events/__init__.py +0 -0
  250. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
  251. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
  252. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/__init__.py +0 -0
  253. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
  254. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_configuration.py +0 -0
  255. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
  256. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_error_details.py +0 -0
  257. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
  258. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_health_response.py +0 -0
  259. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
  260. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
  261. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
  262. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_notes.py +0 -0
  263. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_priority.py +0 -0
  264. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
  265. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_semver.py +0 -0
  266. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
  267. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_system_health.py +0 -0
  268. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_tags.py +0 -0
  269. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
  270. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
  271. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/foundation/model_user.py +0 -0
  272. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/intelligence/__init__.py +0 -0
  273. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
  274. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
  275. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
  276. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
  277. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
  278. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/memory/__init__.py +0 -0
  279. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/memory/model_memory_item.py +0 -0
  280. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/memory/model_memory_query.py +0 -0
  281. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
  282. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
  283. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
  284. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/persona/__init__.py +0 -0
  285. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/persona/model_persona_signal.py +0 -0
  286. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/persona/model_user_persona_v1.py +0 -0
  287. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/scoring/__init__.py +0 -0
  288. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
  289. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
  290. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
  291. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/service/__init__.py +0 -0
  292. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/service/model_service_config.py +0 -0
  293. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/service/model_service_health.py +0 -0
  294. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/service/model_service_registry.py +0 -0
  295. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/subscription/__init__.py +0 -0
  296. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/subscription/constants.py +0 -0
  297. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
  298. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
  299. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/subscription/model_subscription.py +0 -0
  300. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/__init__.py +0 -0
  301. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_audit.py +0 -0
  302. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
  303. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
  304. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_concurrency.py +0 -0
  305. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
  306. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
  307. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
  308. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
  309. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_health_status.py +0 -0
  310. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
  311. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
  312. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_pii_match.py +0 -0
  313. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
  314. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_pii_type.py +0 -0
  315. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
  316. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
  317. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_retry_config.py +0 -0
  318. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
  319. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
  320. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/models/utils/model_system_health.py +0 -0
  321. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/__init__.py +0 -0
  322. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/base.py +0 -0
  323. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/__init__.py +0 -0
  324. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/contract.yaml +0 -0
  325. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/__init__.py +0 -0
  326. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_request.py +0 -0
  327. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_response.py +0 -0
  328. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/__init__.py +0 -0
  329. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/adapters/__init__.py +0 -0
  330. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/__init__.py +0 -0
  331. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/handler_agent_learning_retrieval.py +0 -0
  332. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/__init__.py +0 -0
  333. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_request.py +0 -0
  334. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_response.py +0 -0
  335. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/__init__.py +0 -0
  336. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/handlers/__init__.py +0 -0
  337. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/handlers/handler_intent_query.py +0 -0
  338. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/mappers/__init__.py +0 -0
  339. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/mappers/util_intent_mapping.py +0 -0
  340. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/models/__init__.py +0 -0
  341. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/models/model_handler_intent_query_config.py +0 -0
  342. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/registry/__init__.py +0 -0
  343. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_query_effect/registry/registry_intent_query_effect.py +0 -0
  344. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_storage_effect/__init__.py +0 -0
  345. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_storage_effect/adapters/__init__.py +0 -0
  346. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_storage_effect/adapters/adapter_intent_storage.py +0 -0
  347. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_storage_effect/models/__init__.py +0 -0
  348. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_request.py +0 -0
  349. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_response.py +0 -0
  350. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_kreuzberg_parse_effect/__init__.py +0 -0
  351. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/__init__.py +0 -0
  352. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/adapter_kreuzberg_client.py +0 -0
  353. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_kreuzberg_parse_effect/contract.yaml +0 -0
  354. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_kreuzberg_parse_effect/handler_kreuzberg_parse.py +0 -0
  355. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/__init__.py +0 -0
  356. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_config.py +0 -0
  357. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_result.py +0 -0
  358. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_consolidator_reducer/__init__.py +0 -0
  359. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/__init__.py +0 -0
  360. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/__init__.py +0 -0
  361. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_postgres_deactivate_memory.py +0 -0
  362. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_runtime_tick_memory.py +0 -0
  363. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/__init__.py +0 -0
  364. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_archive.py +0 -0
  365. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_expire.py +0 -0
  366. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_tick.py +0 -0
  367. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/models/__init__.py +0 -0
  368. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/__init__.py +0 -0
  369. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/validator_lifecycle_transition.py +0 -0
  370. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  371. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/__init__.py +0 -0
  372. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/adapter_embedding_client.py +0 -0
  373. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/contract.yaml +0 -0
  374. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/contract_descriptor.py +0 -0
  375. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/__init__.py +0 -0
  376. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_db_mock.py +0 -0
  377. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_decay.py +0 -0
  378. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_fusion.py +0 -0
  379. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_graph_mock.py +0 -0
  380. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_memory_retrieval.py +0 -0
  381. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +0 -0
  382. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant_mock.py +0 -0
  383. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/models/__init__.py +0 -0
  384. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_embedding_client_config.py +0 -0
  385. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_db_mock_config.py +0 -0
  386. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_graph_mock_config.py +0 -0
  387. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -0
  388. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +0 -0
  389. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_mock_config.py +0 -0
  390. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_request.py +0 -0
  391. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_response.py +0 -0
  392. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_storage_effect/__init__.py +0 -0
  393. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_storage_effect/adapters/__init__.py +0 -0
  394. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_storage_effect/adapters/adapter_filesystem.py +0 -0
  395. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_storage_effect/contract.yaml +0 -0
  396. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_storage_effect/models/__init__.py +0 -0
  397. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_request.py +0 -0
  398. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_response.py +0 -0
  399. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_navigation_history_reducer/__init__.py +0 -0
  400. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/__init__.py +0 -0
  401. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/handler_navigation_history_reducer.py +0 -0
  402. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_navigation_history_reducer/models/__init__.py +0 -0
  403. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_request.py +0 -0
  404. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_response.py +0 -0
  405. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_session.py +0 -0
  406. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_navigation_history_reducer/node_navigation_history_reducer.py +0 -0
  407. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_builder_compute/__init__.py +0 -0
  408. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_builder_compute/handlers/__init__.py +0 -0
  409. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_builder_compute/handlers/handler_persona_classify.py +0 -0
  410. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_builder_compute/models/__init__.py +0 -0
  411. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_request.py +0 -0
  412. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_result.py +0 -0
  413. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_storage_effect/__init__.py +0 -0
  414. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_storage_effect/adapters/__init__.py +0 -0
  415. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_storage_effect/adapters/adapter_postgres_persona.py +0 -0
  416. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_storage_effect/contract.yaml +0 -0
  417. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_storage_effect/models/__init__.py +0 -0
  418. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_request.py +0 -0
  419. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_response.py +0 -0
  420. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_semantic_analyzer_compute/__init__.py +0 -0
  421. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/__init__.py +0 -0
  422. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/handler_semantic_compute.py +0 -0
  423. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/__init__.py +0 -0
  424. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_request.py +0 -0
  425. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_response.py +0 -0
  426. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_semantic_analyzer_compute/node_semantic_analyzer_compute.py +0 -0
  427. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_similarity_compute/__init__.py +0 -0
  428. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_similarity_compute/handlers/__init__.py +0 -0
  429. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_similarity_compute/handlers/handler_similarity_compute.py +0 -0
  430. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_similarity_compute/models/__init__.py +0 -0
  431. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_similarity_compute/models/model_handler_similarity_compute_config.py +0 -0
  432. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_request.py +0 -0
  433. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_response.py +0 -0
  434. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/nodes/node_similarity_compute/node_similarity_compute.py +0 -0
  435. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/protocols/__init__.py +0 -0
  436. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/protocols/base_protocols.py +0 -0
  437. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/protocols/data_models.py +0 -0
  438. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/protocols/error_models.py +0 -0
  439. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/protocols/protocol_embedding.py +0 -0
  440. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
  441. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/protocols/protocol_handler_intent.py +0 -0
  442. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +0 -0
  443. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
  444. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/__init__.py +0 -0
  445. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/adapters.py +0 -0
  446. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/contract_topics.py +0 -0
  447. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/dispatch_handlers.py +0 -0
  448. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/handler_lifecycle.py +0 -0
  449. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/handler_lifecycle_contract.yaml +0 -0
  450. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/introspection.py +0 -0
  451. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/message_type_registration.py +0 -0
  452. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/runtime/plugin.py +0 -0
  453. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/secrets.py +0 -0
  454. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/settings.py +0 -0
  455. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/tools/__init__.py +0 -0
  456. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/tools/contract_linter.py +0 -0
  457. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/tools/validators/__init__.py +0 -0
  458. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/tools/validators/validator_contract.py +0 -0
  459. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/src/omnimemory/topics.py +0 -0
  460. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/__init__.py +0 -0
  461. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/conftest.py +0 -0
  462. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/fixtures/omn19666/pre-commit-git-dependency.yaml +0 -0
  463. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/fixtures/omn19666/pre-commit-pypi-dependency.yaml +0 -0
  464. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/gates/__init__.py +0 -0
  465. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/gates/test_ban_hardcoded_runner_ip_scope.py +0 -0
  466. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/gates/test_consumer_group_name_authorization.py +0 -0
  467. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/__init__.py +0 -0
  468. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/adapters/__init__.py +0 -0
  469. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
  470. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
  471. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
  472. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
  473. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
  474. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
  475. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/test_handler_intent.py +0 -0
  476. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/handlers/test_handler_semantic_compute.py +0 -0
  477. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/__init__.py +0 -0
  478. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/conftest.py +0 -0
  479. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/nodes/__init__.py +0 -0
  480. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/nodes/test_kreuzberg_parse_effect.py +0 -0
  481. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
  482. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/nodes/test_navigation_history_reducer_integration.py +0 -0
  483. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/test_entry_point_discovery.py +0 -0
  484. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/test_golden_chain_memgraph_ingestion.py +0 -0
  485. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/test_handler_lifecycle_pattern.py +0 -0
  486. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/test_handler_subscription.py +0 -0
  487. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/test_node_agent_coordinator.py +0 -0
  488. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/integration/test_persona_round_trip.py +0 -0
  489. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/models/__init__.py +0 -0
  490. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/models/contracts/__init__.py +0 -0
  491. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/models/contracts/test_extended_contracts.py +0 -0
  492. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/models/events/__init__.py +0 -0
  493. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/models/events/test_model_intent_classified_event.py +0 -0
  494. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/models/test_frozen_boundary_models.py +0 -0
  495. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/__init__.py +0 -0
  496. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_intent_query_effect/__init__.py +0 -0
  497. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_intent_query_effect/conftest.py +0 -0
  498. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_intent_query_effect/test_handler_intent_query_integration.py +0 -0
  499. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_intent_storage_effect/__init__.py +0 -0
  500. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_intent_storage_effect/test_handler_intent_storage_adapter_integration.py +0 -0
  501. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  502. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_memory_retrieval_effect/test_contract_descriptor.py +0 -0
  503. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_memory_retrieval_effect/test_dispatch_entrypoint_contract.py +0 -0
  504. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_memory_retrieval_effect/test_memory_retrieval_effect.py +0 -0
  505. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_memory_storage_effect/__init__.py +0 -0
  506. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_memory_storage_effect/test_memory_storage_effect.py +0 -0
  507. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_navigation_history_reducer/__init__.py +0 -0
  508. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_navigation_history_reducer/test_navigation_history_reducer_unit.py +0 -0
  509. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_similarity_compute/__init__.py +0 -0
  510. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/nodes/node_similarity_compute/test_similarity_compute.py +0 -0
  511. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/scripts/__init__.py +0 -0
  512. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/scripts/test_check_dep_provenance.py +0 -0
  513. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/scripts/test_pin_resolvability_conflict_report.py +0 -0
  514. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/scripts/test_pin_resolvability_gate_workflow.py +0 -0
  515. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_bootstrap.py +0 -0
  516. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_concurrency.py +0 -0
  517. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_config_models.py +0 -0
  518. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_contract_version.py +0 -0
  519. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_db_url.py +0 -0
  520. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_foundation.py +0 -0
  521. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_health_manager.py +0 -0
  522. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_migration_progress.py +0 -0
  523. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_node_enforcement.py +0 -0
  524. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_node_imports.py +0 -0
  525. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_observability_manager.py +0 -0
  526. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_observability_metrics.py +0 -0
  527. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_performance.py +0 -0
  528. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_precommit_additional_dependencies_omn19666.sh +0 -0
  529. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_precommit_staged_scope_omn19612.py +0 -0
  530. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_resource_manager.py +0 -0
  531. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_secrets_provider.py +0 -0
  532. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_semantic_compute_policy_config.py +0 -0
  533. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_settings.py +0 -0
  534. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/test_validation_scripts.py +0 -0
  535. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/__init__.py +0 -0
  536. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/adapters/__init__.py +0 -0
  537. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/adapters/test_adapter_pii_detector.py +0 -0
  538. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/adapters/test_pii_live_call_paths.py +0 -0
  539. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/handlers/__init__.py +0 -0
  540. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/handlers/adapters/__init__.py +0 -0
  541. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
  542. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/handlers/test_subscription_typing.py +0 -0
  543. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/__init__.py +0 -0
  544. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/fixtures/omn16765/hybrid_retrieval_corpus.json +0 -0
  545. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_activation_decay.py +0 -0
  546. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_decay_ranking.py +0 -0
  547. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_handler_agent_learning_retrieval.py +0 -0
  548. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_handler_qdrant.py +0 -0
  549. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_hybrid_retrieval_fusion.py +0 -0
  550. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
  551. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +0 -0
  552. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
  553. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +0 -0
  554. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +0 -0
  555. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +0 -0
  556. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +0 -0
  557. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +0 -0
  558. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +0 -0
  559. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_model_handler_qdrant_config.py +0 -0
  560. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_navigation_history_reducer_contract.py +0 -0
  561. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_node_agent_learning_retrieval_models.py +0 -0
  562. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_persona_builder.py +0 -0
  563. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/nodes/test_persona_storage_retrieval.py +0 -0
  564. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/__init__.py +0 -0
  565. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/conftest.py +0 -0
  566. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_adapters.py +0 -0
  567. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_contract_handler_completeness.py +0 -0
  568. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_contract_topics.py +0 -0
  569. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
  570. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_introspection.py +0 -0
  571. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_memory_subscription_group_is_authorized.py +0 -0
  572. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_message_type_registration.py +0 -0
  573. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_plugin.py +0 -0
  574. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_plugin_graph_memory_wiring.py +0 -0
  575. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_plugin_integration_wiring.py +0 -0
  576. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_plugin_memory_validate_handshake.py +0 -0
  577. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/runtime/test_standalone_handler_contracts.py +0 -0
  578. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/scripts/__init__.py +0 -0
  579. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/scripts/test_check_ai_slop.py +0 -0
  580. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/scripts/test_collect_changed_files.py +0 -0
  581. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/scripts/test_occ_manual_replay_precheck.py +0 -0
  582. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_auto_tag_app_token_push_omn18662.py +0 -0
  583. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_ci_workflow_shape.py +0 -0
  584. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_contract_linter.py +0 -0
  585. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_detect_test_paths.py +0 -0
  586. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_dispatch_retrieval_config.py +0 -0
  587. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_entry_points.py +0 -0
  588. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_graphify_to_memgraph.py +0 -0
  589. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_graphify_to_qdrant.py +0 -0
  590. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
  591. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_ingestion_models.py +0 -0
  592. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_model_user_persona_v1.py +0 -0
  593. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_no_duplicate_node_uuids.py +0 -0
  594. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_occ_companion_effect_edited_trigger_omn_18334.py +0 -0
  595. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_persona_enums.py +0 -0
  596. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_scope_mapping_config.py +0 -0
  597. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_sql_placeholders.py +0 -0
  598. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/unit/test_validate_kafka_imports.py +0 -0
  599. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/workflows/__init__.py +0 -0
  600. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/workflows/test_auto_merge_ready_for_review_omn19216.py +0 -0
  601. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/tests/workflows/test_auto_merge_workflow.py +0 -0
  602. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/validate_architecture_improvements.py +0 -0
  603. {omninode_memory-0.18.3 → omninode_memory-0.18.4}/validation/runtime_profiles_allowlist.yaml +0 -0
@@ -14,9 +14,23 @@
14
14
  #
15
15
  # Applied via: gh api repos/OmniNode-ai/omnimemory/branches/main/protection -X PUT
16
16
  # Mode: strict (branch must be up-to-date before merging)
17
- # Total required checks: 12
17
+ # Manifest entries (including CI Summary members): 15
18
18
 
19
19
  required_checks:
20
+ # OMN-18854: this is an umbrella member, not a separate protection context.
21
+ - name: "occ-preflight / eligibility"
22
+ workflow: ci.yml
23
+ job_id: occ-preflight
24
+ conditional: true
25
+ condition: "Required on pull_request and merge_group; not applicable on push or workflow_dispatch"
26
+ rationale: >-
27
+ OMN-18854. The shared eligibility validator feeds the required CI Summary
28
+ through the OCC Eligibility Admission job. On pull_request and
29
+ merge_group, only successful preflight passes admission; CI Summary
30
+ requires a successful admission verdict on every event. Failed,
31
+ cancelled, skipped and absent results block. The caller and validator
32
+ source use the same immutable omnibase_core revision.
33
+
20
34
  # -- Phase 1: Quick Validation (parallel, ~2-5 min) -------------------------
21
35
 
22
36
  - name: "Migration Freeze Check"
@@ -88,6 +102,28 @@ required_checks:
88
102
  tests/unit/test_validate_ci_precommit_alignment.py fails if the pair
89
103
  drifts apart.
90
104
 
105
+ - name: "Shape-Gate Independence (OMN-20298)"
106
+ workflow: ci.yml
107
+ job_id: shape-gate-independence
108
+ conditional: false
109
+ rationale: >-
110
+ OMN-20298. Refuses any shape-gate detector job that depends on the
111
+ change-control preflight. Unconditional (no needs, no if); gates merges
112
+ through the required CI Summary context, which needs: this job and
113
+ accepts only a success result.
114
+
115
+ - name: "Canonical File Shape (OMN-20304)"
116
+ workflow: ci.yml
117
+ job_id: canonical-file-shape
118
+ conditional: false
119
+ rationale: >-
120
+ OMN-20304. Refuses a new code file outside the canonical locations, new
121
+ imperative SKILL.md lines and any new baseline, allowlist or suppression
122
+ entry, against the shrink-only
123
+ .onex_ratchets/canonical_file_shape_baseline.txt. Gates merges through
124
+ the required CI Summary context, which needs: this job and accepts only a
125
+ success result.
126
+
91
127
  # -- Phase 2: Full Test Suite ------------------------------------------------
92
128
 
93
129
  - name: "Tests"
@@ -31,6 +31,7 @@ jobs:
31
31
  # OMN-17993: pinned to an exact SHA, not @main. omniclaude main lags dev by
32
32
  # design (release-synced), so @main still resolves to the pre-widening scanner
33
33
  # body that scans workflow files only and exits 0 on a tests-only diff.
34
- uses: OmniNode-ai/omniclaude/.github/workflows/ban-hardcoded-runner-ip.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
34
+ uses: OmniNode-ai/omniclaude/.github/workflows/ban-hardcoded-runner-ip.yml@3ea5bfc90dec0efd386214247b38c8c2cc46508d
35
35
  permissions:
36
36
  contents: read
37
+ pull-requests: read
@@ -100,15 +100,17 @@ jobs:
100
100
  github.actor != 'renovate[bot]' &&
101
101
  (contains(github.event.pull_request.title, 'OMN-') ||
102
102
  contains(github.event.pull_request.head.ref, 'OMN-'))
103
- # OMN-14941 (F1 repin): pinned `@dev` until the reusable promotes to
104
- # omniclaude main (call-occ-autobind-reusable.yml exists only on
105
- # omniclaude dev today); then re-pin to `@main` or a main SHA (OMN-14812).
106
- # tests/ci/test_workflow_uses_refs_resolve.py fails closed on any
107
- # cross-repo `uses:` pin that does not resolve live.
108
- uses: OmniNode-ai/omniclaude/.github/workflows/call-occ-autobind-reusable.yml@dev
103
+ # OMN-20001: the reusable and the omnimarket publisher it sources are both
104
+ # pinned to immutable revs (omniclaude 2a4123cf, omnimarket v0.4.276), never
105
+ # a sibling's live branch, so a merge there cannot turn this repo red.
106
+ # Bump both together in a consumer PR after an integration test of the new
107
+ # revs; tests/unit/test_workflow_sibling_pins.py fails closed on any
108
+ # sibling `uses:` / checkout without a 40-hex rev.
109
+ uses: OmniNode-ai/omniclaude/.github/workflows/call-occ-autobind-reusable.yml@3ea5bfc90dec0efd386214247b38c8c2cc46508d
109
110
  secrets: inherit
110
111
  with:
111
112
  lane: dev
113
+ omnimarket-ref: e11987165b960cb86cdeab7d0ad3fe1884bb2572 # omnimarket v0.4.276
112
114
 
113
115
  occ-autobind-manual-replay:
114
116
  # OMN-14993: manual re-publish entrypoint, gated to the workflow_dispatch
@@ -160,7 +162,7 @@ jobs:
160
162
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
161
163
  with:
162
164
  repository: OmniNode-ai/omnimarket
163
- ref: dev
165
+ ref: e11987165b960cb86cdeab7d0ad3fe1884bb2572 # omnimarket v0.4.276
164
166
  path: .occ-autobind-src
165
167
  persist-credentials: false
166
168
  sparse-checkout: |
@@ -157,7 +157,7 @@ jobs:
157
157
  github.actor != 'renovate[bot]' &&
158
158
  (contains(github.event.pull_request.title, 'OMN-') ||
159
159
  contains(github.event.pull_request.head.ref, 'OMN-'))
160
- uses: OmniNode-ai/omniclaude/.github/workflows/call-occ-companion-effect-reusable.yml@dev
160
+ uses: OmniNode-ai/omniclaude/.github/workflows/call-occ-companion-effect-reusable.yml@3ea5bfc90dec0efd386214247b38c8c2cc46508d
161
161
  # OMN-18012: the dev lane declares SASL_PLAINTEXT/SCRAM-SHA-256, so the
162
162
  # publisher needs the KAFKA_SASL_* credentials. The broker is still
163
163
  # resolved from omnimarket's committed overlay, never from a secret.
@@ -167,6 +167,7 @@ jobs:
167
167
  secrets: inherit # pragma: allowlist secret
168
168
  with:
169
169
  lane: dev
170
+ omnimarket-ref: e11987165b960cb86cdeab7d0ad3fe1884bb2572 # omnimarket v0.4.276
170
171
 
171
172
  occ-companion-effect-manual-replay:
172
173
  # OMN-14993: manual re-publish entrypoint, gated to the workflow_dispatch
@@ -226,7 +227,7 @@ jobs:
226
227
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
227
228
  with:
228
229
  repository: OmniNode-ai/omnimarket
229
- ref: dev
230
+ ref: e11987165b960cb86cdeab7d0ad3fe1884bb2572 # omnimarket v0.4.276
230
231
  path: .occ-companion-effect-src
231
232
  persist-credentials: false
232
233
  sparse-checkout: |
@@ -28,5 +28,5 @@ permissions:
28
28
 
29
29
  jobs:
30
30
  call-reject-skip-token:
31
- uses: OmniNode-ai/omniclaude/.github/workflows/reject-deploy-gate-skip.yml@main
31
+ uses: OmniNode-ai/omniclaude/.github/workflows/reject-deploy-gate-skip.yml@3ea5bfc90dec0efd386214247b38c8c2cc46508d
32
32
  secrets: inherit
@@ -28,9 +28,8 @@ jobs:
28
28
  uses: actions/checkout@v7
29
29
  with:
30
30
  repository: OmniNode-ai/omnibase_core
31
- # Pinned to omnibase_core main as of 2026-03-22.
32
- # Update by running: gh api repos/OmniNode-ai/omnibase_core/commits/main --jq '.sha'
33
- ref: 330a344cdb9c5dedd04a46dfbb0b63dae0baccfb
31
+ # Auto-bumped by omnibase_core publish-downstream-pin-bump.yml to 2f90bd814b14.
32
+ ref: 2f90bd814b140ed8f8dad74cc499b0976807e47d
34
33
  path: omnibase_core
35
34
 
36
35
  - name: Verify omnibase_core checkout
@@ -8,6 +8,8 @@ on:
8
8
  branches: [main, 'hotfix/**']
9
9
  pull_request:
10
10
  branches: [main, dev]
11
+ # OMN-18854: marking a draft ready must re-evaluate evidence admission.
12
+ types: [opened, synchronize, reopened, ready_for_review]
11
13
  merge_group:
12
14
  workflow_dispatch:
13
15
 
@@ -21,6 +23,37 @@ env:
21
23
  CACHE_VERSION: "0.1.0"
22
24
 
23
25
  jobs:
26
+ # OMN-18854: the existing eligibility validator must feed the required
27
+ # CI Summary. Other validations remain independent of this evidence gate.
28
+ occ-preflight:
29
+ if: github.event_name == 'pull_request' || github.event_name == 'merge_group'
30
+ permissions:
31
+ contents: read
32
+ pull-requests: read
33
+ uses: OmniNode-ai/omnibase_core/.github/workflows/occ-preflight.yml@13ceae69c246a33c9fc8fc4b33f83fb66b89edc6
34
+ with:
35
+ core-ref: 13ceae69c246a33c9fc8fc4b33f83fb66b89edc6
36
+ contracts-dir: contracts
37
+ receipts-dir: drift/dod_receipts
38
+
39
+ # OMN-18854: evidence admission has its own verdict; shape detectors and
40
+ # their result aggregation do not branch directly on the evidence preflight.
41
+ occ-eligibility:
42
+ name: OCC Eligibility Admission
43
+ runs-on: ubuntu-latest
44
+ needs: occ-preflight
45
+ if: always()
46
+ steps:
47
+ - name: Require eligible evidence on admission events
48
+ run: |
49
+ event="${{ github.event_name }}"
50
+ if [[ "$event" == "pull_request" || "$event" == "merge_group" ]]; then
51
+ if [[ "${{ needs.occ-preflight.result }}" != "success" ]]; then
52
+ echo "::error::occ-preflight did not pass (result: ${{ needs.occ-preflight.result }})"
53
+ exit 1
54
+ fi
55
+ fi
56
+
24
57
  # =============================================================================
25
58
  # JOB ORDERING RATIONALE (Fail-Fast Optimization)
26
59
  # =============================================================================
@@ -225,6 +258,10 @@ jobs:
225
258
  - name: Pre-commit dependencies come from package indexes (OMN-19666)
226
259
  run: bash tests/test_precommit_additional_dependencies_omn19666.sh
227
260
 
261
+ # OMN-18854: the same focused regression runs before commit and in CI.
262
+ - name: Verify OCC eligibility enforcement (OMN-18854)
263
+ run: uv run pytest tests/scripts/test_occ_eligibility_enforcement.py -q
264
+
228
265
  # SYNC: Pre-commit hook 'validate-gitignore-baseline' at pre-commit stage (OMN-18033)
229
266
  # This step and the hook both pin released omnibase-core==0.47.23,
230
267
  # matching uv.lock and carrying the packaged baseline spec; move them together.
@@ -342,10 +379,21 @@ jobs:
342
379
  # Uses default GITHUB_TOKEN which has read access to public repos in the org.
343
380
  # Same pattern as omniclaude ci-cd.yml. If omnibase_core becomes private,
344
381
  # add: token: ${{ secrets.OMNIBASE_CORE_ACCESS_TOKEN }}
382
+ # OMN-20001: read the omnibase_core rev this repo has PINNED (the one the
383
+ # omnibase_core downstream pin-bump bot maintains in check-handshake.yml),
384
+ # never core's live default branch.
385
+ - name: Resolve pinned omnibase_core rev
386
+ id: core-pin
387
+ run: |
388
+ rev="$(grep -E '^[[:space:]]+ref: [0-9a-f]{40}$' .github/workflows/check-handshake.yml | awk '{print $2}')"
389
+ [[ "$rev" =~ ^[0-9a-f]{40}$ ]] || { echo "::error::no single pinned omnibase_core rev in check-handshake.yml"; exit 1; }
390
+ echo "rev=$rev" >> "$GITHUB_OUTPUT"
391
+
345
392
  - name: Checkout omnibase_core
346
393
  uses: actions/checkout@v7
347
394
  with:
348
395
  repository: OmniNode-ai/omnibase_core
396
+ ref: ${{ steps.core-pin.outputs.rev }}
349
397
  path: omnibase_core
350
398
 
351
399
  - name: Verify handshake is current
@@ -604,10 +652,20 @@ jobs:
604
652
  if: github.event_name == 'pull_request' || github.event_name == 'merge_group' || github.event_name == 'push'
605
653
  steps:
606
654
  - uses: actions/checkout@v7
655
+ # OMN-20001: read the onex_change_control rev pinned in pyproject.toml,
656
+ # never OCC's live default branch.
657
+ - name: Resolve pinned onex_change_control rev
658
+ id: occ-pin
659
+ run: |
660
+ rev="$(grep -oE 'onex_change_control\.git@[0-9a-f]{40}' pyproject.toml | head -1 | cut -d@ -f2)"
661
+ [[ "$rev" =~ ^[0-9a-f]{40}$ ]] || { echo "::error::no pinned onex_change_control rev in pyproject.toml"; exit 1; }
662
+ echo "rev=$rev" >> "$GITHUB_OUTPUT"
663
+
607
664
  - name: Checkout onex_change_control
608
665
  uses: actions/checkout@v7
609
666
  with:
610
667
  repository: OmniNode-ai/onex_change_control
668
+ ref: ${{ steps.occ-pin.outputs.rev }}
611
669
  path: onex_change_control
612
670
 
613
671
  - uses: astral-sh/setup-uv@v7
@@ -651,12 +709,36 @@ jobs:
651
709
  - name: Ratchet non-canonical lifecycle-word classes against frozen allowlist (OMN-14350)
652
710
  run: |
653
711
  uv run --no-project \
654
- --with 'omnibase-core @ git+https://github.com/OmniNode-ai/omnibase_core@63635097705d832e0ee9c4811093efb31349105c' \
712
+ --with 'omnibase-core @ git+https://github.com/OmniNode-ai/omnibase_core@f50d00fc7918d0b12ccd0d3497160325e32e7ac5' \
655
713
  python -m omnibase_core.validators.no_noncanonical_lifecycle_classes \
656
714
  --check-stale \
657
715
  --allowlist .onex_ratchets/noncanonical_class_allowlist.yaml \
658
716
  src/omnimemory
659
717
 
718
+ shape-gate-independence:
719
+ name: Shape-Gate Independence (OMN-20298)
720
+ # OMN-20298: no shape-gate detector may depend on the change-control preflight.
721
+ # Unconditional (no needs, no if); wired into required CI Summary via needs: +
722
+ # strict success-only verdict check.
723
+ runs-on: ubuntu-latest
724
+ timeout-minutes: 10
725
+ steps:
726
+ - name: Checkout code
727
+ uses: actions/checkout@v7
728
+ - name: Set up Python
729
+ uses: actions/setup-python@v7
730
+ with:
731
+ python-version: "3.12"
732
+ - name: Install uv
733
+ uses: astral-sh/setup-uv@v7
734
+ with:
735
+ version: "0.8.3"
736
+ - name: Refuse shape-gate detectors that depend on the preflight (OMN-20298)
737
+ run: |
738
+ uv run --no-project \
739
+ --with 'omnibase-core @ git+https://github.com/OmniNode-ai/omnibase_core@7f20b97895f01996c5858dde385ba8991c06e708' \
740
+ python -m omnibase_core.handlers.handler_shape_gate_independence
741
+
660
742
  # ============================================================================
661
743
  # Detect Secrets - the CI half of the .secrets.baseline gate (OMN-18669)
662
744
  # ============================================================================
@@ -707,6 +789,7 @@ jobs:
707
789
  --no-verify \
708
790
  --baseline .secrets.baseline \
709
791
  --exclude-files 'uv\.lock' \
792
+ --exclude-files 'hardcoded_model_config_baseline\.yaml' \
710
793
  --exclude-files '\.venv/' \
711
794
  --exclude-files 'tests/fixtures/' \
712
795
  --exclude-files '\.git/' \
@@ -734,15 +817,90 @@ jobs:
734
817
  exit $HOOK_EXIT
735
818
  fi
736
819
 
820
+ # Canonical-file-shape ratchet (OMN-20304). Operator ruling 2026-10-01: no
821
+ # new scripts, plugins or exceptions in any repository. Refuses a new code
822
+ # file outside src/<pkg>/{nodes,handlers,models,protocols,contracts,enums}/,
823
+ # tests/ and docs/, new imperative lines in a SKILL.md, and any new baseline,
824
+ # allowlist, waiver or suppression entry. Existing files sit in the
825
+ # shrink-only .onex_ratchets/canonical_file_shape_baseline.txt. Same module
826
+ # and same omnibase_core commit as the canonical-file-shape pre-commit hook.
827
+ # Unconditional: no `if:`, no `needs:`. The positive-control step plants a
828
+ # bad sample on every run and fails unless the ratchet refuses it.
829
+ canonical-file-shape:
830
+ name: Canonical File Shape (OMN-20304)
831
+ runs-on: ubuntu-latest
832
+ timeout-minutes: 15
833
+ env:
834
+ CANONICAL_FILE_SHAPE_CORE: "omnibase-core @ git+https://github.com/OmniNode-ai/omnibase_core@f50d00fc7918d0b12ccd0d3497160325e32e7ac5"
835
+ steps:
836
+ - name: Checkout code
837
+ uses: actions/checkout@v7
838
+ with:
839
+ fetch-depth: 0
840
+ - name: Set up Python
841
+ uses: actions/setup-python@v7
842
+ with:
843
+ python-version: "3.12"
844
+ - name: Install uv
845
+ uses: astral-sh/setup-uv@v7
846
+ with:
847
+ version: "0.8.3"
848
+ - name: Positive control (planted bad sample refused, clean sample accepted)
849
+ run: |
850
+ set -u
851
+ ratchet() {
852
+ uv run --no-project --with "$CANONICAL_FILE_SHAPE_CORE" \
853
+ python -m omnibase_core.validators.canonical_file_shape "$@"
854
+ }
855
+ mkdir -p bin tests
856
+ printf '#!/bin/sh\necho planted\n' > bin/zz_canary_planted
857
+ git add bin/zz_canary_planted
858
+ if ratchet; then
859
+ echo "POSITIVE CONTROL FAILED: planted bin/zz_canary_planted was accepted"
860
+ exit 1
861
+ fi
862
+ echo "positive control: planted bad sample refused"
863
+ git rm -q --cached bin/zz_canary_planted
864
+ rm bin/zz_canary_planted
865
+ printf 'def test_canary() -> None:\n assert True\n' > tests/zz_canary_clean.py
866
+ git add tests/zz_canary_clean.py
867
+ ratchet
868
+ echo "positive control: clean sample accepted"
869
+ git rm -q --cached tests/zz_canary_clean.py
870
+ rm tests/zz_canary_clean.py
871
+ - name: Refuse new non-canonical files and new exceptions
872
+ env:
873
+ PR_BASE: ${{ github.event.pull_request.base.sha }}
874
+ MQ_BASE: ${{ github.event.merge_group.base_sha }}
875
+ PUSH_BEFORE: ${{ github.event.before }}
876
+ run: |
877
+ set -u
878
+ base="${PR_BASE:-${MQ_BASE:-${PUSH_BEFORE:-}}}"
879
+ if [ -n "$base" ] && git cat-file -e "${base}^{commit}" 2>/dev/null; then
880
+ base="$(git merge-base "$base" HEAD)"
881
+ uv run --no-project --with "$CANONICAL_FILE_SHAPE_CORE" \
882
+ python -m omnibase_core.validators.canonical_file_shape --base "$base" --head HEAD
883
+ else
884
+ echo "no base revision on this event; checking the tree against the baseline only"
885
+ uv run --no-project --with "$CANONICAL_FILE_SHAPE_CORE" \
886
+ python -m omnibase_core.validators.canonical_file_shape --head HEAD
887
+ fi
888
+
737
889
  ci-summary:
738
890
  name: CI Summary
739
891
  runs-on: ubuntu-latest
740
- needs: [migration-freeze, lint, pyright, onex-validation, transport-import-guard, contract-validation, io-audit, check-handshake, test-select, tests-gate, compliance, contract-compliance, no-noncanonical-lifecycle-classes, detect-secrets]
892
+ needs: [migration-freeze, lint, pyright, onex-validation, transport-import-guard, contract-validation, io-audit, check-handshake, test-select, tests-gate, compliance, contract-compliance, no-noncanonical-lifecycle-classes, detect-secrets, shape-gate-independence, canonical-file-shape, occ-eligibility]
741
893
  if: always()
742
894
 
743
895
  steps:
744
896
  - name: Check test results
745
897
  run: |
898
+ # OMN-18854: require the admission verdict on every event. That job
899
+ # judges eligibility on PR/queue events and passes non-admission events.
900
+ if [[ "${{ needs.occ-eligibility.result }}" != "success" ]]; then
901
+ echo "::error::occ-eligibility did not pass (result: ${{ needs.occ-eligibility.result }})"
902
+ exit 1
903
+ fi
746
904
  # OMN-14350: strict fail-closed gate on the non-canonical lifecycle-class
747
905
  # ratchet - only 'success' passes; skipped/cancelled/failure ALL block. It is
748
906
  # in needs: so this job WAITS for it (no race).
@@ -750,6 +908,12 @@ jobs:
750
908
  echo "::error::no-noncanonical-lifecycle-classes ratchet did not pass (result: ${{ needs.no-noncanonical-lifecycle-classes.result }}) - fail-closed (OMN-14350)"
751
909
  exit 1
752
910
  fi
911
+ # OMN-20298: strict fail-closed gate on shape-gate independence - only
912
+ # 'success' passes; skipped/cancelled/failure ALL block.
913
+ if [[ "${{ needs.shape-gate-independence.result }}" != "success" ]]; then
914
+ echo "::error::shape-gate-independence did not pass (result: ${{ needs.shape-gate-independence.result }}) - fail-closed (OMN-20298)"
915
+ exit 1
916
+ fi
753
917
  # OMN-18669: strict fail-closed gate on the secrets scan - only 'success'
754
918
  # passes; skipped/cancelled/failure ALL block. A secrets gate that a
755
919
  # skipped job can satisfy is the state this ticket exists to remove.
@@ -757,6 +921,12 @@ jobs:
757
921
  echo "::error::detect-secrets did not pass (result: ${{ needs.detect-secrets.result }}) - fail-closed (OMN-18669)"
758
922
  exit 1
759
923
  fi
924
+ # OMN-20304: strict fail-closed gate on the canonical-file-shape ratchet -
925
+ # only 'success' passes; skipped/cancelled/failure ALL block.
926
+ if [[ "${{ needs.canonical-file-shape.result }}" != "success" ]]; then
927
+ echo "::error::canonical-file-shape ratchet did not pass (result: ${{ needs.canonical-file-shape.result }}) - fail-closed (OMN-20304)"
928
+ exit 1
929
+ fi
760
930
  migration_freeze="${{ needs.migration-freeze.result }}"
761
931
  lint="${{ needs.lint.result }}"
762
932
  pyright="${{ needs.pyright.result }}"
@@ -95,7 +95,7 @@ jobs:
95
95
  - name: Run contract validation
96
96
  id: validate-contract
97
97
  if: steps.resolve-branch.outputs.skip_validation != 'true'
98
- uses: OmniNode-ai/onex_change_control/.github/actions/validate-contract@main
98
+ uses: OmniNode-ai/onex_change_control/.github/actions/validate-contract@725d2967b031d7065efd41d0751f903638202cc1
99
99
  with:
100
100
  branch-name: ${{ steps.resolve-branch.outputs.resolved_branch }}
101
101
  contracts-path: contracts
@@ -15,4 +15,4 @@ concurrency:
15
15
 
16
16
  jobs:
17
17
  call:
18
- uses: OmniNode-ai/omnibase_core/.github/workflows/validate-docs.yml@main
18
+ uses: OmniNode-ai/omnibase_core/.github/workflows/validate-docs.yml@95d9e3e01f8ed82c0b618a8e7d3315e96e560e52
@@ -0,0 +1,24 @@
1
+ # SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ # OMN-19183, plan beta/plans/2026-09-23-remove-hardcoded-model-config.md task A3.
5
+ # Guard is blocking; baseline may only shrink.
6
+
7
+ name: Hardcoded Model Config
8
+
9
+ on:
10
+ pull_request:
11
+ branches: [dev]
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ concurrency:
17
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
18
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
19
+
20
+ jobs:
21
+ hardcoded-model-config:
22
+ uses: OmniNode-ai/omniclaude/.github/workflows/hardcoded-model-config-reusable.yml@3ea5bfc90dec0efd386214247b38c8c2cc46508d
23
+ with:
24
+ core_ref: f873d2c30201c05d4be020fa0b281b5edbfb8307
@@ -16,6 +16,6 @@ permissions:
16
16
  jobs:
17
17
  imperative-contract-guard:
18
18
  # self-gating-ok: central guard is intentionally shared across repos; caller PRs do not modify the referenced workflow.
19
- uses: OmniNode-ai/onex_change_control/.github/workflows/imperative-contract-guard.yml@main
19
+ uses: OmniNode-ai/onex_change_control/.github/workflows/imperative-contract-guard.yml@725d2967b031d7065efd41d0751f903638202cc1
20
20
  with:
21
- onex-change-control-ref: dev
21
+ onex-change-control-ref: 725d2967b031d7065efd41d0751f903638202cc1
@@ -41,6 +41,6 @@ concurrency:
41
41
 
42
42
  jobs:
43
43
  kb-doc-gate:
44
- uses: OmniNode-ai/omniclaude/.github/workflows/kb-doc-gate-reusable.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
44
+ uses: OmniNode-ai/omniclaude/.github/workflows/kb-doc-gate-reusable.yml@3ea5bfc90dec0efd386214247b38c8c2cc46508d
45
45
  with:
46
46
  mode: strict
@@ -24,7 +24,7 @@
24
24
  # a loud one.
25
25
  #
26
26
  # The pin is a SINGLE source of truth: the reusable workflow checks its own
27
- # validator out at github.job_workflow_sha, i.e. this very SHA, so the workflow
27
+ # validator out at validated job.workflow_sha, i.e. this very SHA, so the workflow
28
28
  # and the script can never drift apart. Pin to an omniclaude commit on `dev`;
29
29
  # `main` is release-synced and does not carry the gate.
30
30
 
@@ -40,7 +40,7 @@ concurrency:
40
40
 
41
41
  jobs:
42
42
  public-repo-hygiene:
43
- uses: OmniNode-ai/omniclaude/.github/workflows/public-repo-hygiene-reusable.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
43
+ uses: OmniNode-ai/omniclaude/.github/workflows/public-repo-hygiene-reusable.yml@3ea5bfc90dec0efd386214247b38c8c2cc46508d
44
44
  with:
45
45
  mode: report
46
46
  secrets: inherit
@@ -36,4 +36,4 @@ concurrency:
36
36
 
37
37
  jobs:
38
38
  secrets-baseline-wiring:
39
- uses: OmniNode-ai/omniclaude/.github/workflows/secrets-baseline-wiring-reusable.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
39
+ uses: OmniNode-ai/omniclaude/.github/workflows/secrets-baseline-wiring-reusable.yml@3ea5bfc90dec0efd386214247b38c8c2cc46508d
@@ -24,7 +24,7 @@ concurrency:
24
24
  jobs:
25
25
  codeql:
26
26
  name: CodeQL
27
- uses: OmniNode-ai/onex_change_control/.github/workflows/codeql-reusable.yml@main
27
+ uses: OmniNode-ai/onex_change_control/.github/workflows/codeql-reusable.yml@725d2967b031d7065efd41d0751f903638202cc1
28
28
  with:
29
29
  language: python
30
30
  query_suite: security-and-quality
@@ -0,0 +1,75 @@
1
+ # canonical-file-shape baseline. Shrink-only.
2
+ # Every line is a code file outside a canonical location that existed
3
+ # when the ratchet was installed. Delete a line when its file is removed,
4
+ # moved into a canonical location or rewritten as contract + node +
5
+ # handler. A new line is refused.
6
+ .pre-commit-hooks/reject-deploy-gate-skip-token.sh
7
+ deployment/database/migrations_pending/004_create_navigation_paths_collection.py
8
+ examples/__init__.py
9
+ examples/advanced_architecture_demo.py
10
+ scripts/__init__.py
11
+ scripts/check_dep_provenance.py
12
+ scripts/check_migration_freeze.sh
13
+ scripts/check_no_hardcoded_bolt.sh
14
+ scripts/ci/__init__.py
15
+ scripts/ci/collect_changed_files.py
16
+ scripts/ci/detect_test_paths.py
17
+ scripts/ci/occ_manual_replay_precheck.py
18
+ scripts/ci/run_runtime_profiles_validator.py
19
+ scripts/ci/test_selection_loader.py
20
+ scripts/ci/test_selection_models.py
21
+ scripts/ci/verify_pypi_pin_resolvability.py
22
+ scripts/graphify_to_memgraph.py
23
+ scripts/graphify_to_qdrant.py
24
+ scripts/validate_ci_precommit_alignment.py
25
+ scripts/validation/__init__.py
26
+ scripts/validation/check_ai_slop.py
27
+ scripts/validation/check_kafka_no_hardcoded_fallback.sh
28
+ scripts/validation/check_no_internal_ips.sh
29
+ scripts/validation/check_precommit_additional_dependencies.sh
30
+ scripts/validation/foundation_validation_common.py
31
+ scripts/validation/validate_enum_casing.py
32
+ scripts/validation/validate_http_imports.py
33
+ scripts/validation/validate_kafka_imports.py
34
+ scripts/validation/validate_model_locations.py
35
+ scripts/validation/validate_naming.py
36
+ scripts/validation/validate_no_backward_compatibility.py
37
+ scripts/validation/validate_no_env_fallbacks.py
38
+ scripts/validation/validate_pydantic_patterns.py
39
+ scripts/validation/validate_secrets.py
40
+ scripts/validation/validate_single_class_per_file.py
41
+ scripts/validation/validate_spdx_headers.py
42
+ src/omnimemory/__init__.py
43
+ src/omnimemory/_compat_imports.py
44
+ src/omnimemory/adapters/__init__.py
45
+ src/omnimemory/adapters/adapter_concurrency.py
46
+ src/omnimemory/adapters/adapter_correlation_context.py
47
+ src/omnimemory/adapters/adapter_db_url.py
48
+ src/omnimemory/adapters/adapter_error_sanitizer.py
49
+ src/omnimemory/adapters/adapter_handler_constants.py
50
+ src/omnimemory/adapters/adapter_health_manager.py
51
+ src/omnimemory/adapters/adapter_metrics_counter.py
52
+ src/omnimemory/adapters/adapter_observability_wrapper.py
53
+ src/omnimemory/adapters/adapter_pii_detector.py
54
+ src/omnimemory/adapters/adapter_resource_manager.py
55
+ src/omnimemory/adapters/adapter_retry_utils.py
56
+ src/omnimemory/bootstrap.py
57
+ src/omnimemory/errors/__init__.py
58
+ src/omnimemory/errors/embedding_errors.py
59
+ src/omnimemory/runtime/__init__.py
60
+ src/omnimemory/runtime/adapters.py
61
+ src/omnimemory/runtime/contract_topics.py
62
+ src/omnimemory/runtime/dispatch_handlers.py
63
+ src/omnimemory/runtime/handler_lifecycle.py
64
+ src/omnimemory/runtime/introspection.py
65
+ src/omnimemory/runtime/message_type_registration.py
66
+ src/omnimemory/runtime/plugin.py
67
+ src/omnimemory/runtime/wiring.py
68
+ src/omnimemory/secrets.py
69
+ src/omnimemory/settings.py
70
+ src/omnimemory/tools/__init__.py
71
+ src/omnimemory/tools/contract_linter.py
72
+ src/omnimemory/tools/validators/__init__.py
73
+ src/omnimemory/tools/validators/validator_contract.py
74
+ src/omnimemory/topics.py
75
+ validate_architecture_improvements.py