omninode-memory 0.18.0__tar.gz → 0.18.2__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 (606) hide show
  1. omninode_memory-0.18.2/.github/workflows/auto-tag-on-merge.yml +146 -0
  2. omninode_memory-0.18.2/.github/workflows/ban-hardcoded-runner-ip.yml +32 -0
  3. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/call-occ-companion-effect.yml +28 -5
  4. omninode_memory-0.18.2/.github/workflows/kb-doc-gate.yml +42 -0
  5. omninode_memory-0.18.2/.github/workflows/public-repo-hygiene.yml +42 -0
  6. omninode_memory-0.18.2/.kb-doc-gate.yaml +15 -0
  7. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.pre-commit-config.yaml +14 -7
  8. omninode_memory-0.18.2/.public-repo-hygiene.yaml +59 -0
  9. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/CHANGELOG.md +41 -0
  10. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/CLAUDE.md +18 -1
  11. omninode_memory-0.18.2/PKG-INFO +146 -0
  12. omninode_memory-0.18.2/README.md +102 -0
  13. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/pyproject.toml +3 -3
  14. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/ci/test_selection_adjacency.yaml +22 -0
  15. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_pii_detector.py +28 -5
  16. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/handler_subscription.py +82 -93
  17. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_storage_effect/adapters/adapter_filesystem.py +23 -7
  18. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/introspection.py +7 -5
  19. omninode_memory-0.18.2/tests/gates/test_ban_hardcoded_runner_ip_scope.py +78 -0
  20. omninode_memory-0.18.2/tests/unit/adapters/test_adapter_pii_detector.py +796 -0
  21. omninode_memory-0.18.2/tests/unit/adapters/test_pii_live_call_paths.py +254 -0
  22. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_hybrid_retrieval_fusion.py +2 -1
  23. omninode_memory-0.18.2/tests/unit/test_auto_tag_app_token_push_omn18662.py +215 -0
  24. omninode_memory-0.18.2/tests/unit/test_occ_companion_effect_edited_trigger_omn_18334.py +71 -0
  25. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_validate_ci_precommit_alignment.py +1 -0
  26. omninode_memory-0.18.2/tests/workflows/__init__.py +2 -0
  27. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/uv.lock +144 -48
  28. omninode_memory-0.18.0/.github/workflows/auto-tag-on-merge.yml +0 -17
  29. omninode_memory-0.18.0/.github/workflows/ban-hardcoded-runner-ip.yml +0 -22
  30. omninode_memory-0.18.0/AGENT.md +0 -29
  31. omninode_memory-0.18.0/PKG-INFO +0 -310
  32. omninode_memory-0.18.0/README.md +0 -266
  33. omninode_memory-0.18.0/docs/PERFORMANCE_TESTING.md +0 -3
  34. omninode_memory-0.18.0/docs/architecture/ARCH_002_KAFKA_ABSTRACTION.md +0 -3
  35. omninode_memory-0.18.0/docs/architecture/MEMORY_DATA_OWNERSHIP.md +0 -3
  36. omninode_memory-0.18.0/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md +0 -3
  37. omninode_memory-0.18.0/docs/assets/brand/BRAND.md +0 -153
  38. omninode_memory-0.18.0/docs/ci/CI_MONITORING_GUIDE.md +0 -349
  39. omninode_memory-0.18.0/docs/db-split/fk-audit.md +0 -39
  40. omninode_memory-0.18.0/docs/design/OMN-16765-hybrid-retrieval.md +0 -552
  41. omninode_memory-0.18.0/docs/environment_variables.md +0 -3
  42. omninode_memory-0.18.0/docs/handler_reuse_matrix.md +0 -3
  43. omninode_memory-0.18.0/docs/migrations/MARKET_MIGRATION_BOUNDARY.md +0 -3
  44. omninode_memory-0.18.0/docs/pii_handling.md +0 -3
  45. omninode_memory-0.18.0/docs/runbooks/STARTING_MEMORY_SERVICES.md +0 -3
  46. omninode_memory-0.18.0/docs/runtime/RUNTIME_PLUGINS.md +0 -3
  47. omninode_memory-0.18.0/docs/stub_protocols.md +0 -58
  48. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.claude/architecture-handshake.md +0 -0
  49. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.env.example +0 -0
  50. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.flake8 +0 -0
  51. {omninode_memory-0.18.0 → omninode_memory-0.18.2/.github}/CODE_OF_CONDUCT.md +0 -0
  52. {omninode_memory-0.18.0 → omninode_memory-0.18.2/.github}/CONTRIBUTING.md +0 -0
  53. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  54. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  55. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  56. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/dependabot.yml +0 -0
  57. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/required-checks.yaml +0 -0
  58. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/auto-merge.yml +0 -0
  59. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/build-and-push-migrate-image.yml +0 -0
  60. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/call-occ-autobind.yml +0 -0
  61. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/call-reject-skip.yml +0 -0
  62. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/check-handshake.yml +0 -0
  63. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/ci.yml +0 -0
  64. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/contract-validation.yml +0 -0
  65. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/dep-provenance-gate.yml +0 -0
  66. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/docs-validate.yml +0 -0
  67. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/imperative-contract-guard.yml +0 -0
  68. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/main-target-guard.yml +0 -0
  69. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/omni-standards-compliance.yml +0 -0
  70. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/pr-title-check.yml +0 -0
  71. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/pre-commit.yml +0 -0
  72. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/release-dry-run.yml +0 -0
  73. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/release.yml +0 -0
  74. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/security-scan.yml +0 -0
  75. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/sibling-lock-refresh.yml +0 -0
  76. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/stale-todo-gate.yml +0 -0
  77. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/todo-audit-on-merge.yml +0 -0
  78. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/url-authority-gate.yml +0 -0
  79. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/validate-validator-requirements.yml +0 -0
  80. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.github/workflows/validator-runtime-profiles.yml +0 -0
  81. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.gitignore +0 -0
  82. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.markdown-link-check.json +0 -0
  83. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.onex_ratchets/noncanonical_class_allowlist.yaml +0 -0
  84. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.pre-commit-hooks/reject-deploy-gate-skip-token.sh +0 -0
  85. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.secrets.baseline +0 -0
  86. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.serena/project.yml +0 -0
  87. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/.yamlfmt +0 -0
  88. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/LICENSE +0 -0
  89. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/SECURITY.md +0 -0
  90. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/architecture-handshakes/validator-requirements-baseline.yaml +0 -0
  91. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/architecture-handshakes/validator-requirements.yaml +0 -0
  92. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/contract.yaml +0 -0
  93. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/contracts/OMN-12245.yaml +0 -0
  94. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
  95. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/deployment/database/migrations/002_create_memories_table.sql +0 -0
  96. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
  97. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
  98. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/deployment/database/migrations/005_backfill_null_checksums.sql +0 -0
  99. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +0 -0
  100. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
  101. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
  102. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/deployment/docker/Dockerfile.migrate +0 -0
  103. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docker-compose.prod.yml +0 -0
  104. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docker-compose.yml +0 -0
  105. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-icon-black.png +0 -0
  106. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-icon-full-color.svg +0 -0
  107. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-icon-white.png +0 -0
  108. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-inline-black.png +0 -0
  109. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-inline-full-color.svg +0 -0
  110. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-inline-white.png +0 -0
  111. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-stacked-black.png +0 -0
  112. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-stacked-full-color.svg +0 -0
  113. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-stacked-white.png +0 -0
  114. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-wordmark-black.svg +0 -0
  115. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-wordmark-grey.svg +0 -0
  116. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/docs/assets/brand/omninode-wordmark-white.svg +0 -0
  117. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/examples/__init__.py +0 -0
  118. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/examples/advanced_architecture_demo.py +0 -0
  119. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/pyrightconfig.json +0 -0
  120. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/__init__.py +0 -0
  121. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/check_dep_provenance.py +0 -0
  122. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/check_migration_freeze.sh +0 -0
  123. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/check_no_hardcoded_bolt.sh +0 -0
  124. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/ci/__init__.py +0 -0
  125. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/ci/collect_changed_files.py +0 -0
  126. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/ci/detect_test_paths.py +0 -0
  127. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/ci/occ_manual_replay_precheck.py +0 -0
  128. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/ci/run_runtime_profiles_validator.py +0 -0
  129. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/ci/test_selection_loader.py +0 -0
  130. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/ci/test_selection_models.py +0 -0
  131. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/graphify_to_memgraph.py +0 -0
  132. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/graphify_to_qdrant.py +0 -0
  133. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validate_ci_precommit_alignment.py +0 -0
  134. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/__init__.py +0 -0
  135. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/check_ai_slop.py +0 -0
  136. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/check_kafka_no_hardcoded_fallback.sh +0 -0
  137. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/foundation_validation_common.py +0 -0
  138. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_enum_casing.py +0 -0
  139. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_http_imports.py +0 -0
  140. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_kafka_imports.py +0 -0
  141. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_model_locations.py +0 -0
  142. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_naming.py +0 -0
  143. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_no_backward_compatibility.py +0 -0
  144. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_no_env_fallbacks.py +0 -0
  145. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_pydantic_patterns.py +0 -0
  146. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_secrets.py +0 -0
  147. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_single_class_per_file.py +0 -0
  148. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/scripts/validation/validate_spdx_headers.py +0 -0
  149. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/__init__.py +0 -0
  150. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/_compat_imports.py +0 -0
  151. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/__init__.py +0 -0
  152. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_concurrency.py +0 -0
  153. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_correlation_context.py +0 -0
  154. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_db_url.py +0 -0
  155. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_error_sanitizer.py +0 -0
  156. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_handler_constants.py +0 -0
  157. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_health_manager.py +0 -0
  158. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_metrics_counter.py +0 -0
  159. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_observability_wrapper.py +0 -0
  160. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_resource_manager.py +0 -0
  161. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/adapters/adapter_retry_utils.py +0 -0
  162. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/bootstrap.py +0 -0
  163. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/__init__.py +0 -0
  164. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/crawl/__init__.py +0 -0
  165. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
  166. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
  167. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
  168. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
  169. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_context_item_type.py +0 -0
  170. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_data_type.py +0 -0
  171. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
  172. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_error_code.py +0 -0
  173. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
  174. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
  175. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
  176. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
  177. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_memory_type.py +0 -0
  178. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_migration_status.py +0 -0
  179. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_node_type.py +0 -0
  180. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_operation_status.py +0 -0
  181. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_preferred_tone.py +0 -0
  182. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_priority_level.py +0 -0
  183. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
  184. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
  185. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_severity.py +0 -0
  186. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_subscription_status.py +0 -0
  187. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_technical_level.py +0 -0
  188. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/enums/enum_trust_level.py +0 -0
  189. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/errors/__init__.py +0 -0
  190. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/errors/embedding_errors.py +0 -0
  191. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/__init__.py +0 -0
  192. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/__init__.py +0 -0
  193. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
  194. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +0 -0
  195. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +0 -0
  196. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/adapter_intent_graph_contract.yaml +0 -0
  197. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
  198. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
  199. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
  200. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
  201. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
  202. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
  203. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/handler_intent.py +0 -0
  204. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/handler_subscription_contract.yaml +0 -0
  205. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/models/__init__.py +0 -0
  206. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/handlers/models/model_handler_intent_config.py +0 -0
  207. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/__init__.py +0 -0
  208. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/adapters/__init__.py +0 -0
  209. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
  210. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
  211. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
  212. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
  213. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
  214. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
  215. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
  216. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/__init__.py +0 -0
  217. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
  218. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_embedding_config.py +0 -0
  219. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
  220. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
  221. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
  222. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
  223. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
  224. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_postgres_config.py +0 -0
  225. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
  226. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
  227. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
  228. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
  229. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
  230. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/container/__init__.py +0 -0
  231. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/contracts/__init__.py +0 -0
  232. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
  233. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
  234. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
  235. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
  236. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
  237. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/core/__init__.py +0 -0
  238. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/core/model_memory_context.py +0 -0
  239. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
  240. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
  241. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/core/model_memory_request.py +0 -0
  242. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/core/model_memory_response.py +0 -0
  243. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
  244. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
  245. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/core/model_provenance.py +0 -0
  246. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/crawl/__init__.py +0 -0
  247. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
  248. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
  249. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
  250. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
  251. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
  252. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
  253. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
  254. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/crawl/types.py +0 -0
  255. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/events/__init__.py +0 -0
  256. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
  257. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
  258. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/__init__.py +0 -0
  259. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
  260. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_configuration.py +0 -0
  261. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
  262. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_error_details.py +0 -0
  263. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
  264. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_health_response.py +0 -0
  265. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
  266. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
  267. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
  268. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_notes.py +0 -0
  269. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_priority.py +0 -0
  270. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
  271. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_semver.py +0 -0
  272. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
  273. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_system_health.py +0 -0
  274. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_tags.py +0 -0
  275. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
  276. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
  277. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/foundation/model_user.py +0 -0
  278. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/intelligence/__init__.py +0 -0
  279. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
  280. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
  281. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
  282. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
  283. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
  284. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/memory/__init__.py +0 -0
  285. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/memory/model_memory_item.py +0 -0
  286. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/memory/model_memory_query.py +0 -0
  287. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
  288. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
  289. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
  290. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/persona/__init__.py +0 -0
  291. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/persona/model_persona_signal.py +0 -0
  292. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/persona/model_user_persona_v1.py +0 -0
  293. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/scoring/__init__.py +0 -0
  294. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
  295. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
  296. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
  297. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/service/__init__.py +0 -0
  298. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/service/model_service_config.py +0 -0
  299. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/service/model_service_health.py +0 -0
  300. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/service/model_service_registry.py +0 -0
  301. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/subscription/__init__.py +0 -0
  302. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/subscription/constants.py +0 -0
  303. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
  304. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
  305. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/subscription/model_subscription.py +0 -0
  306. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/__init__.py +0 -0
  307. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_audit.py +0 -0
  308. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
  309. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
  310. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_concurrency.py +0 -0
  311. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
  312. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
  313. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
  314. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
  315. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_health_status.py +0 -0
  316. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
  317. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
  318. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_pii_match.py +0 -0
  319. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
  320. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_pii_type.py +0 -0
  321. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
  322. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
  323. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_retry_config.py +0 -0
  324. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
  325. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
  326. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/models/utils/model_system_health.py +0 -0
  327. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/__init__.py +0 -0
  328. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/base.py +0 -0
  329. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/__init__.py +0 -0
  330. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/contract.yaml +0 -0
  331. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/__init__.py +0 -0
  332. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_request.py +0 -0
  333. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_response.py +0 -0
  334. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/__init__.py +0 -0
  335. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/adapters/__init__.py +0 -0
  336. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/contract.yaml +0 -0
  337. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/__init__.py +0 -0
  338. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/handler_agent_learning_retrieval.py +0 -0
  339. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/__init__.py +0 -0
  340. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_request.py +0 -0
  341. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_response.py +0 -0
  342. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/__init__.py +0 -0
  343. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/contract.yaml +0 -0
  344. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/handlers/__init__.py +0 -0
  345. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/handlers/handler_intent_query.py +0 -0
  346. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/mappers/__init__.py +0 -0
  347. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/mappers/util_intent_mapping.py +0 -0
  348. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/models/__init__.py +0 -0
  349. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/models/model_handler_intent_query_config.py +0 -0
  350. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/registry/__init__.py +0 -0
  351. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_query_effect/registry/registry_intent_query_effect.py +0 -0
  352. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_storage_effect/__init__.py +0 -0
  353. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_storage_effect/adapters/__init__.py +0 -0
  354. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_storage_effect/adapters/adapter_intent_storage.py +0 -0
  355. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_storage_effect/contract.yaml +0 -0
  356. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_storage_effect/models/__init__.py +0 -0
  357. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_request.py +0 -0
  358. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_response.py +0 -0
  359. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/__init__.py +0 -0
  360. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/__init__.py +0 -0
  361. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/adapter_kreuzberg_client.py +0 -0
  362. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/contract.yaml +0 -0
  363. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/handler_kreuzberg_parse.py +0 -0
  364. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/__init__.py +0 -0
  365. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_config.py +0 -0
  366. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_result.py +0 -0
  367. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_consolidator_reducer/__init__.py +0 -0
  368. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/__init__.py +0 -0
  369. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/__init__.py +0 -0
  370. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_postgres_deactivate_memory.py +0 -0
  371. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_runtime_tick_memory.py +0 -0
  372. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/contract.yaml +0 -0
  373. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/__init__.py +0 -0
  374. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_archive.py +0 -0
  375. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_expire.py +0 -0
  376. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_tick.py +0 -0
  377. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/models/__init__.py +0 -0
  378. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/__init__.py +0 -0
  379. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/validator_lifecycle_transition.py +0 -0
  380. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  381. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/__init__.py +0 -0
  382. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/adapter_embedding_client.py +0 -0
  383. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/contract.yaml +0 -0
  384. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/contract_descriptor.py +0 -0
  385. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/__init__.py +0 -0
  386. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_db_mock.py +0 -0
  387. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_decay.py +0 -0
  388. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_fusion.py +0 -0
  389. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_graph_mock.py +0 -0
  390. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_memory_retrieval.py +0 -0
  391. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +0 -0
  392. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant_mock.py +0 -0
  393. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/__init__.py +0 -0
  394. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_embedding_client_config.py +0 -0
  395. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_db_mock_config.py +0 -0
  396. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_graph_mock_config.py +0 -0
  397. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -0
  398. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +0 -0
  399. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_mock_config.py +0 -0
  400. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_request.py +0 -0
  401. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_response.py +0 -0
  402. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_storage_effect/__init__.py +0 -0
  403. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_storage_effect/adapters/__init__.py +0 -0
  404. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_storage_effect/contract.yaml +0 -0
  405. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_storage_effect/models/__init__.py +0 -0
  406. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_request.py +0 -0
  407. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_response.py +0 -0
  408. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_navigation_history_reducer/__init__.py +0 -0
  409. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_navigation_history_reducer/contract.yaml +0 -0
  410. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/__init__.py +0 -0
  411. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/handler_navigation_history_reducer.py +0 -0
  412. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/__init__.py +0 -0
  413. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_request.py +0 -0
  414. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_response.py +0 -0
  415. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_session.py +0 -0
  416. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_navigation_history_reducer/node_navigation_history_reducer.py +0 -0
  417. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_builder_compute/__init__.py +0 -0
  418. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_builder_compute/contract.yaml +0 -0
  419. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_builder_compute/handlers/__init__.py +0 -0
  420. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_builder_compute/handlers/handler_persona_classify.py +0 -0
  421. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_builder_compute/models/__init__.py +0 -0
  422. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_request.py +0 -0
  423. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_result.py +0 -0
  424. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_storage_effect/__init__.py +0 -0
  425. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_storage_effect/adapters/__init__.py +0 -0
  426. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_storage_effect/adapters/adapter_postgres_persona.py +0 -0
  427. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_storage_effect/contract.yaml +0 -0
  428. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_storage_effect/models/__init__.py +0 -0
  429. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_request.py +0 -0
  430. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_response.py +0 -0
  431. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/__init__.py +0 -0
  432. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/contract.yaml +0 -0
  433. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/__init__.py +0 -0
  434. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/handler_semantic_compute.py +0 -0
  435. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/__init__.py +0 -0
  436. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_request.py +0 -0
  437. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_response.py +0 -0
  438. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/node_semantic_analyzer_compute.py +0 -0
  439. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_similarity_compute/__init__.py +0 -0
  440. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_similarity_compute/contract.yaml +0 -0
  441. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_similarity_compute/handlers/__init__.py +0 -0
  442. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_similarity_compute/handlers/handler_similarity_compute.py +0 -0
  443. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_similarity_compute/models/__init__.py +0 -0
  444. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_similarity_compute/models/model_handler_similarity_compute_config.py +0 -0
  445. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_request.py +0 -0
  446. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_response.py +0 -0
  447. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/nodes/node_similarity_compute/node_similarity_compute.py +0 -0
  448. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/protocols/__init__.py +0 -0
  449. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/protocols/base_protocols.py +0 -0
  450. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/protocols/data_models.py +0 -0
  451. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/protocols/error_models.py +0 -0
  452. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/protocols/protocol_embedding.py +0 -0
  453. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
  454. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/protocols/protocol_handler_intent.py +0 -0
  455. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +0 -0
  456. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
  457. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/__init__.py +0 -0
  458. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/adapters.py +0 -0
  459. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/contract_topics.py +0 -0
  460. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/dispatch_handlers.py +0 -0
  461. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/handler_lifecycle.py +0 -0
  462. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/handler_lifecycle_contract.yaml +0 -0
  463. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/message_type_registration.py +0 -0
  464. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/plugin.py +0 -0
  465. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/runtime/wiring.py +0 -0
  466. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/secrets.py +0 -0
  467. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/settings.py +0 -0
  468. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/tools/__init__.py +0 -0
  469. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/tools/contract_linter.py +0 -0
  470. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/tools/validators/__init__.py +0 -0
  471. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/tools/validators/validator_contract.py +0 -0
  472. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/src/omnimemory/topics.py +0 -0
  473. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/__init__.py +0 -0
  474. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/conftest.py +0 -0
  475. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/gates/__init__.py +0 -0
  476. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/gates/test_consumer_group_name_authorization.py +0 -0
  477. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/__init__.py +0 -0
  478. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/adapters/__init__.py +0 -0
  479. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
  480. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
  481. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
  482. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
  483. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
  484. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
  485. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/test_handler_intent.py +0 -0
  486. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/handlers/test_handler_semantic_compute.py +0 -0
  487. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/__init__.py +0 -0
  488. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/conftest.py +0 -0
  489. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/nodes/__init__.py +0 -0
  490. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/nodes/test_kreuzberg_parse_effect.py +0 -0
  491. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
  492. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/nodes/test_navigation_history_reducer_integration.py +0 -0
  493. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/test_entry_point_discovery.py +0 -0
  494. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/test_golden_chain_memgraph_ingestion.py +0 -0
  495. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/test_golden_chain_qdrant_ingestion.py +0 -0
  496. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/test_handler_lifecycle_pattern.py +0 -0
  497. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/test_handler_subscription.py +0 -0
  498. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/test_node_agent_coordinator.py +0 -0
  499. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/integration/test_persona_round_trip.py +0 -0
  500. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/models/__init__.py +0 -0
  501. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/models/contracts/__init__.py +0 -0
  502. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/models/contracts/test_extended_contracts.py +0 -0
  503. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/models/events/__init__.py +0 -0
  504. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/models/events/test_model_intent_classified_event.py +0 -0
  505. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/models/test_frozen_boundary_models.py +0 -0
  506. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/__init__.py +0 -0
  507. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_intent_query_effect/__init__.py +0 -0
  508. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_intent_query_effect/conftest.py +0 -0
  509. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_intent_query_effect/test_handler_intent_query_integration.py +0 -0
  510. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_intent_storage_effect/__init__.py +0 -0
  511. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_intent_storage_effect/test_handler_intent_storage_adapter_integration.py +0 -0
  512. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  513. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_memory_retrieval_effect/test_contract_descriptor.py +0 -0
  514. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_memory_retrieval_effect/test_dispatch_entrypoint_contract.py +0 -0
  515. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_memory_retrieval_effect/test_memory_retrieval_effect.py +0 -0
  516. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_memory_storage_effect/__init__.py +0 -0
  517. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_memory_storage_effect/test_memory_storage_effect.py +0 -0
  518. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_navigation_history_reducer/__init__.py +0 -0
  519. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_navigation_history_reducer/test_navigation_history_reducer_unit.py +0 -0
  520. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_similarity_compute/__init__.py +0 -0
  521. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/nodes/node_similarity_compute/test_similarity_compute.py +0 -0
  522. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/scripts/__init__.py +0 -0
  523. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/scripts/test_check_dep_provenance.py +0 -0
  524. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_bootstrap.py +0 -0
  525. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_concurrency.py +0 -0
  526. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_config_models.py +0 -0
  527. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_contract_validation.py +0 -0
  528. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_contract_version.py +0 -0
  529. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_db_url.py +0 -0
  530. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_foundation.py +0 -0
  531. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_health_manager.py +0 -0
  532. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_migration_progress.py +0 -0
  533. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_node_enforcement.py +0 -0
  534. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_node_imports.py +0 -0
  535. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_observability_manager.py +0 -0
  536. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_observability_metrics.py +0 -0
  537. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_performance.py +0 -0
  538. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_resource_manager.py +0 -0
  539. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_secrets_provider.py +0 -0
  540. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_semantic_compute_policy_config.py +0 -0
  541. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_settings.py +0 -0
  542. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/test_validation_scripts.py +0 -0
  543. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/__init__.py +0 -0
  544. {omninode_memory-0.18.0/tests/unit/handlers → omninode_memory-0.18.2/tests/unit/adapters}/__init__.py +0 -0
  545. {omninode_memory-0.18.0/tests/unit/handlers/adapters → omninode_memory-0.18.2/tests/unit/handlers}/__init__.py +0 -0
  546. {omninode_memory-0.18.0/tests/unit/nodes → omninode_memory-0.18.2/tests/unit/handlers/adapters}/__init__.py +0 -0
  547. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
  548. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/handlers/test_subscription_typing.py +0 -0
  549. {omninode_memory-0.18.0/tests/unit/runtime → omninode_memory-0.18.2/tests/unit/nodes}/__init__.py +0 -0
  550. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/fixtures/omn16765/hybrid_retrieval_corpus.json +0 -0
  551. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_activation_decay.py +0 -0
  552. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_decay_ranking.py +0 -0
  553. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_handler_agent_learning_retrieval.py +0 -0
  554. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_handler_qdrant.py +0 -0
  555. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_handler_routing_boot_resolvable.py +0 -0
  556. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
  557. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +0 -0
  558. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
  559. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +0 -0
  560. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +0 -0
  561. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +0 -0
  562. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +0 -0
  563. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +0 -0
  564. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +0 -0
  565. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_model_handler_qdrant_config.py +0 -0
  566. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_navigation_history_reducer_contract.py +0 -0
  567. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_node_agent_learning_retrieval_models.py +0 -0
  568. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_persona_builder.py +0 -0
  569. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/nodes/test_persona_storage_retrieval.py +0 -0
  570. {omninode_memory-0.18.0/tests/unit/scripts → omninode_memory-0.18.2/tests/unit/runtime}/__init__.py +0 -0
  571. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/conftest.py +0 -0
  572. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_adapters.py +0 -0
  573. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_contract_handler_completeness.py +0 -0
  574. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_contract_topics.py +0 -0
  575. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
  576. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_introspection.py +0 -0
  577. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_memory_subscription_group_is_authorized.py +0 -0
  578. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_message_type_registration.py +0 -0
  579. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_plugin.py +0 -0
  580. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_plugin_graph_memory_wiring.py +0 -0
  581. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_plugin_integration_wiring.py +0 -0
  582. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_plugin_memory_validate_handshake.py +0 -0
  583. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_standalone_handler_contracts.py +0 -0
  584. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/runtime/test_wiring.py +0 -0
  585. {omninode_memory-0.18.0/tests/workflows → omninode_memory-0.18.2/tests/unit/scripts}/__init__.py +0 -0
  586. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/scripts/test_check_ai_slop.py +0 -0
  587. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/scripts/test_collect_changed_files.py +0 -0
  588. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/scripts/test_occ_manual_replay_precheck.py +0 -0
  589. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_ci_workflow_shape.py +0 -0
  590. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_contract_linter.py +0 -0
  591. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_detect_test_paths.py +0 -0
  592. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_dispatch_retrieval_config.py +0 -0
  593. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_entry_points.py +0 -0
  594. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_graphify_to_memgraph.py +0 -0
  595. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_graphify_to_qdrant.py +0 -0
  596. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
  597. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_ingestion_models.py +0 -0
  598. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_model_user_persona_v1.py +0 -0
  599. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_no_duplicate_node_uuids.py +0 -0
  600. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_persona_enums.py +0 -0
  601. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_scope_mapping_config.py +0 -0
  602. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_sql_placeholders.py +0 -0
  603. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/unit/test_validate_kafka_imports.py +0 -0
  604. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/tests/workflows/test_auto_merge_workflow.py +0 -0
  605. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/validate_architecture_improvements.py +0 -0
  606. {omninode_memory-0.18.0 → omninode_memory-0.18.2}/validation/runtime_profiles_allowlist.yaml +0 -0
@@ -0,0 +1,146 @@
1
+ name: Auto-Tag on Merge
2
+
3
+ on:
4
+ pull_request:
5
+ types: [closed]
6
+
7
+ # OMN-18662: this job used to delegate to omnibase_core's shared
8
+ # `auto-tag-reusable.yml`, which pushes the release tag with the job's default
9
+ # workflow token. A push made with that token delivers no push event, so
10
+ # `release.yml` -- whose only automatic trigger is `push: tags:` -- never
11
+ # started, the tag sat unconsumed, and every cut needed a hand
12
+ # `workflow_dispatch`.
13
+ #
14
+ # An App-token push DOES start push-driven CI in this org (omni_home/CLAUDE.md,
15
+ # corrected 2026-09-16 under OMN-18273; live proof: omnibase_spi run
16
+ # 35134173847, `event: push`, `actor: onexbot-occ-writer[bot]`). Two conditions
17
+ # make that true, and both are properties of this job rather than of the token:
18
+ #
19
+ # 1. the checkout does not persist credentials. A default `actions/checkout`
20
+ # writes a basic-auth `http.<origin>.extraheader` carrying the workflow
21
+ # token, and that header OVERRIDES any credential in the remote URL -- the
22
+ # confound that produced the wrong org-wide finding in August.
23
+ # 2. the mint fails closed. No `|| secrets.GITHUB_TOKEN` fallback anywhere in
24
+ # the job: a fallback silently restores the workflow token, the push is
25
+ # suppressed again, and the job still reports success.
26
+ #
27
+ # Why this is inlined here rather than fixed in the shared reusable: the caller
28
+ # pinned that reusable at a ref on omnibase_core's `main`, which is
29
+ # release-synced (OMN-16289) and only advances when a release publishes -- so a
30
+ # fix landed there would not be live for the NEXT cut, only the one after it,
31
+ # which is the cut this ticket exists to stop hand-dispatching. The reusable
32
+ # also cannot see the org App credentials unless every caller passes them. It is
33
+ # left byte-unchanged for whatever still calls it. Precedent and shape:
34
+ # omnibase_core#1703 and omnibase_spi#308, under OMN-18658.
35
+
36
+ jobs:
37
+ auto-tag:
38
+ if: >-
39
+ github.event.pull_request.merged == true &&
40
+ (contains(github.event.pull_request.labels.*.name, 'release') ||
41
+ startsWith(github.event.pull_request.title, 'release:') ||
42
+ startsWith(github.event.pull_request.title, 'chore: release') ||
43
+ startsWith(github.event.pull_request.title, 'chore(release)'))
44
+ # OMNI_RUNNER_SELECTOR_V1 - trusted events default to self-hosted omnibase-ci; pull_request defaults to ubuntu-latest
45
+ runs-on: >-
46
+ ${{
47
+ (github.event_name == 'pull_request' &&
48
+ github.event.pull_request.head.repo.full_name != github.repository)
49
+ && fromJSON(vars.OMNI_PUBLIC_PR_RUNS_ON_JSON || '["ubuntu-latest"]')
50
+ || fromJSON(vars.OMNI_TRUSTED_CI_RUNS_ON_JSON || '["self-hosted","omnibase-ci"]')
51
+ }}
52
+ permissions:
53
+ contents: read
54
+ steps:
55
+ # Condition 1. `persist-credentials: false` is load-bearing, not hygiene:
56
+ # with the default `true`, checkout v7 writes the workflow token into a
57
+ # separate credential file and includes it through `includeIf.gitdir`, so
58
+ # it overrides the App credential in the push URL below and the push
59
+ # authenticates as github-actions[bot] again.
60
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
61
+ with:
62
+ persist-credentials: false
63
+
64
+ - name: Extract version from pyproject.toml
65
+ id: version
66
+ run: |
67
+ set -euo pipefail
68
+ VERSION=$(grep -m1 '^version' pyproject.toml | sed 's/.*"\(.*\)".*/\1/')
69
+ if [ -z "$VERSION" ]; then
70
+ echo "::error::could not read a version from pyproject.toml"
71
+ exit 1
72
+ fi
73
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
74
+ echo "tag=v$VERSION" >> "$GITHUB_OUTPUT"
75
+ echo "Detected version: $VERSION (tag: v$VERSION)"
76
+
77
+ - name: Check if tag already exists
78
+ id: check
79
+ run: |
80
+ set -euo pipefail
81
+ if git rev-parse "refs/tags/${{ steps.version.outputs.tag }}" >/dev/null 2>&1; then
82
+ echo "exists=true" >> "$GITHUB_OUTPUT"
83
+ echo "Tag ${{ steps.version.outputs.tag }} already exists — skipping"
84
+ else
85
+ echo "exists=false" >> "$GITHUB_OUTPUT"
86
+ fi
87
+
88
+ # Condition 2. `actions/create-github-app-token` fails the step when it
89
+ # cannot mint, which fails the job. There is deliberately no `||`
90
+ # expression joining this output to the workflow token: an unmintable
91
+ # token must stop the tag from being pushed at all, because a tag pushed
92
+ # with the workflow token is worse than no tag -- it is unconsumable and
93
+ # cannot be re-pushed without deleting it first.
94
+ #
95
+ # `permission-*` REPLACES the installation's permission set with exactly
96
+ # what is listed. Both scopes are required: `contents` to create the ref,
97
+ # `workflows` because a release commit can legitimately carry changes
98
+ # under .github/workflows/ and GitHub refuses a push that introduces them
99
+ # without it.
100
+ - name: Mint onexbot-occ-writer app token
101
+ id: app-token
102
+ if: steps.check.outputs.exists == 'false'
103
+ uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
104
+ with:
105
+ app-id: ${{ secrets.ONEXBOT_OCC_APP_ID }}
106
+ private-key: ${{ secrets.ONEXBOT_OCC_PRIVATE_KEY }}
107
+ owner: ${{ github.repository_owner }}
108
+ repositories: ${{ github.event.repository.name }}
109
+ permission-contents: write
110
+ permission-workflows: write
111
+
112
+ - name: Create and push tag
113
+ if: steps.check.outputs.exists == 'false'
114
+ env:
115
+ TAG: ${{ steps.version.outputs.tag }}
116
+ APP_TOKEN: ${{ steps.app-token.outputs.token }}
117
+ run: |
118
+ set -euo pipefail
119
+
120
+ # Belt-and-braces on the fail-closed mint. The action above already
121
+ # fails the step when it cannot mint, but an empty token here would
122
+ # otherwise produce an unauthenticated push whose failure mode is a
123
+ # confusing 403 rather than a named one.
124
+ if [ -z "${APP_TOKEN}" ]; then
125
+ echo "::error::onexbot-occ-writer token is empty; refusing to push ${TAG}"
126
+ exit 1
127
+ fi
128
+
129
+ # An annotated tag carries a tagger identity. Use the App's real
130
+ # account address -- the numeric prefix is what links it to the bot
131
+ # account; a fabricated address renders unlinked and proves nothing
132
+ # (OMN-18273 AC-4).
133
+ git config user.name "onexbot-occ-writer[bot]"
134
+ git config user.email "307849072+onexbot-occ-writer[bot]@users.noreply.github.com"
135
+
136
+ git tag "${TAG}" -m "Release ${TAG}"
137
+
138
+ # The credential travels in the remote URL for this one command. With
139
+ # `persist-credentials: false` above there is no `extraheader` left to
140
+ # override it, which is the whole point of the pair.
141
+ git push \
142
+ "https://x-access-token:${APP_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" \
143
+ "refs/tags/${TAG}"
144
+
145
+ echo "Pushed tag ${TAG} as onexbot-occ-writer[bot]"
146
+ echo "release.yml is expected to start from this push, with event=push and no workflow_dispatch"
@@ -0,0 +1,32 @@
1
+ ---
2
+ # SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
3
+ # SPDX-License-Identifier: MIT
4
+
5
+ # Calls the reusable ban-hardcoded-runner-ip check from omniclaude.
6
+ # Implements OMN-10603.
7
+ #
8
+ # OMN-17993: the paths: filter must list every path the reusable scans. It
9
+ # listed workflows only, while the reusable also scans tests/** — the blind
10
+ # spot that let omnibase_compat, a repository that ships this same gate, carry
11
+ # the exact banned literal as a test fixture. A widened scanner behind a filter
12
+ # that still excludes tests/ is never triggered by the change that introduces
13
+ # the violation.
14
+
15
+ name: Ban Hardcoded Runner IP
16
+
17
+ on:
18
+ pull_request:
19
+ branches: [main, dev]
20
+ paths:
21
+ - .github/workflows/**
22
+ - tests/**
23
+ merge_group:
24
+
25
+ jobs:
26
+ ban-hardcoded-runner-ip:
27
+ # OMN-17993: pinned to an exact SHA, not @main. omniclaude main lags dev by
28
+ # design (release-synced), so @main still resolves to the pre-widening scanner
29
+ # body that scans workflow files only and exits 0 on a tests-only diff.
30
+ uses: OmniNode-ai/omniclaude/.github/workflows/ban-hardcoded-runner-ip.yml@6f965a67ea2873fd76df955bca54b3a6472d2a91
31
+ permissions:
32
+ contents: read
@@ -56,10 +56,21 @@
56
56
  # main, re-pin this `uses:` to `@main` or a main SHA so the caller no longer
57
57
  # tracks a moving dev branch.
58
58
  #
59
- # SECRET-FREE: no `secrets: inherit` — the dev-lane broker comes from
60
- # omnimarket's committed config/ci_bus_lanes.yaml overlay (OMN-14813), and the
61
- # dev-lane listener is plaintext. This repo needs no Kafka secrets for this
62
- # workflow.
59
+ # BROKER-SECRET-FREE, SASL-CREDENTIALLED (OMN-14813 + OMN-18012). The paragraph
60
+ # this replaces asserted that this workflow needs no Kafka secrets because the
61
+ # dev-lane listener was unauthenticated. The BROKER half still holds and always
62
+ # will:
63
+ # it comes from omnimarket's committed config/ci_bus_lanes.yaml overlay and must
64
+ # never be a secret, because an opaque broker value is the OMN-14800 silent-
65
+ # repoint surface. The transport half expired at ~16:40Z on 2026-09-07, when
66
+ # OMN-18012 Phase B enabled SASL/SCRAM-SHA-256 on the dev-lane listener. The
67
+ # overlay now DECLARES that transport (SASL_PLAINTEXT / SCRAM-SHA-256 —
68
+ # authenticated, not encrypted) and omnimarket's publisher reads the protocol
69
+ # from it rather than inferring TLS from credential presence. `secrets: inherit`
70
+ # is therefore required below so KAFKA_SASL_{USERNAME,PASSWORD} reach the
71
+ # publisher; without them it fail-fasts on the declared SASL lane instead of
72
+ # publishing unauthenticated. A credential is not a broker address and
73
+ # re-creates none of the OMN-14800 surface.
63
74
  #
64
75
  # MANUAL REPLAY ENTRYPOINT (OMN-14993): `workflow_dispatch` lets an operator
65
76
  # manually re-request a mint for a PR whose original `pull_request` event was
@@ -104,7 +115,7 @@ name: OCC Companion Effect Publisher
104
115
 
105
116
  on:
106
117
  pull_request:
107
- types: [opened, synchronize, reopened, ready_for_review]
118
+ types: [opened, edited, synchronize, reopened, ready_for_review]
108
119
  workflow_dispatch:
109
120
  inputs:
110
121
  pr_number:
@@ -147,6 +158,13 @@ jobs:
147
158
  (contains(github.event.pull_request.title, 'OMN-') ||
148
159
  contains(github.event.pull_request.head.ref, 'OMN-'))
149
160
  uses: OmniNode-ai/omniclaude/.github/workflows/call-occ-companion-effect-reusable.yml@dev
161
+ # OMN-18012: the dev lane declares SASL_PLAINTEXT/SCRAM-SHA-256, so the
162
+ # publisher needs the KAFKA_SASL_* credentials. The broker is still
163
+ # resolved from omnimarket's committed overlay, never from a secret.
164
+ # pragma: allowlist secret -- `secrets: inherit` is a GHA syntax keyword,
165
+ # not a literal secret; the repo secret scanner's Secret Keyword heuristic
166
+ # false-positives on the word "secrets:" here.
167
+ secrets: inherit # pragma: allowlist secret
150
168
  with:
151
169
  lane: dev
152
170
 
@@ -228,6 +246,11 @@ jobs:
228
246
 
229
247
  - name: Publish onex.cmd.omnimarket.occ-companion-effect-requested.v1 (manual replay)
230
248
  env:
249
+ # OMN-18012: same declared-SASL lane as the reusable this job
250
+ # mirrors. The recovery path must not be the one that cannot
251
+ # authenticate.
252
+ KAFKA_SASL_USERNAME: ${{ secrets.KAFKA_SASL_USERNAME }}
253
+ KAFKA_SASL_PASSWORD: ${{ secrets.KAFKA_SASL_PASSWORD }}
231
254
  RUNNER_IS_TRUSTED: "true"
232
255
  PR_REPO: ${{ github.repository }}
233
256
  LANE: dev
@@ -0,0 +1,42 @@
1
+ # SPDX-FileCopyrightText: 2026 OmniNode.ai Inc.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ # KB Doc Gate — thin caller. OMN-17172 (fleet rollout; OMN-16589 built the gate).
5
+ #
6
+ # Canonical docs live in the knowledge-base repo. This gate keeps this repo's
7
+ # markdown inside the allowed set stated by the operator ruling of 2026-09-01:
8
+ # root README.md, root CLAUDE.md or anything under .claude/, CHANGELOG*.md,
9
+ # LICENSE*, root SECURITY.md, .github/**, skills|commands|agents/**, and the
10
+ # tests/**/{fixtures,data,golden}/** subtrees. Everything else is documentation
11
+ # that must leave.
12
+ #
13
+ # mode: strict — fails if ANY markdown outside the allowed set EXISTS on the
14
+ # branch, not merely when a PR touches one. This repo's KB Wave-4 migration
15
+ # landed in OMN-16602 and its residual doc count is zero, which is the
16
+ # precondition for strict; running it earlier would have blocked every
17
+ # unrelated PR against the then-existing sprawl. The authoritative setting is
18
+ # .kb-doc-gate.yaml at this repo's root — a `mode:` there always wins over the
19
+ # `with: mode:` argument below, which is kept in sync for legibility.
20
+ #
21
+ # Validator + reusable workflow live in omniclaude (mirrors deploy-gate.yml's
22
+ # thin-caller pattern). Pinned by immutable SHA, not @main: omniclaude's main is
23
+ # release-synced and carries neither the reusable workflow nor
24
+ # scripts/kb_doc_gate.py. The pin is a SINGLE source of truth — the reusable
25
+ # checks its validator out at github.job_workflow_sha, i.e. this very SHA — so
26
+ # advancing the gate is one line here, via a normal PR.
27
+ #
28
+ # REQUIRED status check: the surfaced context is 'kb-doc-gate / kb-doc-gate'
29
+ # (this job's id / the reusable job's name). Removing this file wedges the
30
+ # branch rather than silently dropping the gate.
31
+
32
+ name: KB Doc Gate
33
+
34
+ on:
35
+ pull_request:
36
+ branches: [dev]
37
+
38
+ jobs:
39
+ kb-doc-gate:
40
+ uses: OmniNode-ai/omniclaude/.github/workflows/kb-doc-gate-reusable.yml@6f965a67ea2873fd76df955bca54b3a6472d2a91
41
+ with:
42
+ mode: strict
@@ -0,0 +1,42 @@
1
+ # SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ # Public Repo Hygiene -- thin caller. OMN-18016, epic OMN-17992.
5
+ #
6
+ # This repository is PUBLIC. The gate refuses internal operating detail landing
7
+ # in it: an undeclared top-level directory, an agent-state or evidence tree, a
8
+ # misplaced dated document, a brand asset, an env file, cloud identity, a
9
+ # private address, an operator machine path, a private repository name, and
10
+ # internal-KB prose in a public README.
11
+ #
12
+ # mode: report. The gate records every finding and exits 0, so it lands without
13
+ # blocking unrelated PRs on a repository that carries pre-existing residue. It
14
+ # flips to enforce when that residue is FIXED -- never by moving it into
15
+ # .public-repo-hygiene.yaml.
16
+ #
17
+ # Layer (a) reads .public-repo-hygiene.yaml at this repo's root; the gate
18
+ # refuses to run without it rather than treating an absent config as an empty
19
+ # allowlist.
20
+ #
21
+ # `secrets: inherit` IS REQUIRED: the denylist vocabulary lives in a private
22
+ # repository and the reusable workflow mints an installation token to read it.
23
+ # Without the secrets the gate fails CLOSED, which is the correct behaviour and
24
+ # a loud one.
25
+ #
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
28
+ # and the script can never drift apart. Pin to an omniclaude commit on `dev`;
29
+ # `main` is release-synced and does not carry the gate.
30
+
31
+ name: Public Repo Hygiene
32
+
33
+ on:
34
+ pull_request:
35
+ branches: [dev]
36
+
37
+ jobs:
38
+ public-repo-hygiene:
39
+ uses: OmniNode-ai/omniclaude/.github/workflows/public-repo-hygiene-reusable.yml@5003030a79b410a0b08337c9f273b53e0db807e3
40
+ with:
41
+ mode: report
42
+ secrets: inherit
@@ -0,0 +1,15 @@
1
+ # KB doc gate config — OMN-16602 (omnimemory Wave-4 documentation migration).
2
+ #
3
+ # Canonical docs live in the OmniNode knowledge base; this repo's markdown is
4
+ # now zero outside the allowed set, so the gate runs in whole-tree `strict`
5
+ # mode rather than `diff`. Strict fails a PR when ANY tracked markdown outside
6
+ # the allowed set exists on the branch, which is what keeps a scrubbed repo
7
+ # scrubbed. Validator + allowed set: omniclaude/scripts/kb_doc_gate.py.
8
+ #
9
+ # No repo-specific `allowed:` entries: everything that survives here
10
+ # (README.md, CLAUDE.md, .claude/**, CHANGELOG.md, LICENSE, SECURITY.md,
11
+ # .github/**) is already in the validator's DEFAULT_ALLOWED. Do not add an
12
+ # `allowed:` glob to keep a new doc — move the doc to the knowledge base.
13
+ #
14
+ # A `mode:` here always wins over the caller workflow's `--mode` argument.
15
+ mode: strict
@@ -139,15 +139,17 @@ repos:
139
139
  rev: v0.21.0
140
140
  hooks:
141
141
  - id: yamlfmt
142
- exclude: ^\.github/
142
+ # .kb-doc-gate.yaml and .public-repo-hygiene.yaml are excluded
143
+ # deliberately (OMN-16602 / OMN-18016): the shared .yamlfmt sets
144
+ # include_document_start:true, and the gate validators' restricted YAML
145
+ # parsers fail closed (exit 2) on the bare '---' marker yamlfmt would
146
+ # insert.
147
+ exclude: ^(\.github/|\.kb-doc-gate\.yaml$|\.public-repo-hygiene\.yaml$)
143
148
 
144
149
  # Essential file formatting (standard across ecosystem)
145
150
  - repo: https://github.com/pre-commit/pre-commit-hooks
146
151
  rev: v6.0.0
147
152
  hooks:
148
- - id: trailing-whitespace
149
- args: [--markdown-linebreak-ext=md]
150
- exclude: ^\.github/workflows/
151
153
  - id: end-of-file-fixer
152
154
  exclude: ^(\.github/workflows/|\.mcp\.json$)
153
155
  - id: check-merge-conflict
@@ -412,8 +414,7 @@ repos:
412
414
  entry: >
413
415
  bash -c 'PLAN_FILES=$(git diff --cached --name-only -- "docs/plans/"); if [ -n "$PLAN_FILES"
414
416
  ]; then echo "ERROR: Planning docs must live in omni_home/docs/plans/, not in this repo:"; echo
415
- "$PLAN_FILES"; echo ""; echo "Move your file to: /Volumes/PRO-G40/Code/omni_home/docs/plans/";
416
- exit 1; fi'
417
+ "$PLAN_FILES"; echo ""; echo "Move your file to: \$OMNI_HOME/docs/plans/"; exit 1; fi'
417
418
  language: system
418
419
  pass_filenames: false
419
420
  always_run: true
@@ -554,6 +555,12 @@ repos:
554
555
  language: script
555
556
  pass_filenames: true
556
557
  stages: [commit-msg]
558
+ - id: strip-ai-coauthor-trailer
559
+ name: Strip AI-generated Co-Authored-By trailers from commit messages
560
+ entry: perl -i -ne 'print unless /^co-authored-by:.*claude.*noreply\@anthropic\.com/i'
561
+ language: system
562
+ pass_filenames: true
563
+ stages: [commit-msg]
557
564
 
558
565
  # OMN-13291 (W0): validator-requirements fleet gate. Reports ALL missing
559
566
  # required gates for omnimemory against omnibase_core's
@@ -575,7 +582,7 @@ repos:
575
582
  - architecture-handshakes/validator-requirements-baseline.yaml
576
583
 
577
584
  # Configuration
578
- default_install_hook_types: [pre-commit, pre-push]
585
+ default_install_hook_types: [pre-commit, pre-push, commit-msg]
579
586
  default_stages: [pre-commit]
580
587
  fail_fast: false
581
588
 
@@ -0,0 +1,59 @@
1
+ # Public-repository hygiene gate — this repo's declaration (OMN-18014).
2
+ #
3
+ # Layer (a) of the gate: the TOP-LEVEL PATH ALLOWLIST. Anything tracked at the
4
+ # repository root that is not named below fails. This is the half that refuses
5
+ # the next junk directory nobody has invented yet — a denylist must anticipate
6
+ # that directory, an allowlist does not.
7
+ #
8
+ # Seeded from OmniNode-ai/omnimemory@dev at adoption time, MINUS the entries that
9
+ # are themselves findings. Adding an entry here is a decision to publish that
10
+ # directory, not a formality.
11
+ #
12
+ # WITHHELD AT ADOPTION, and they must stay withheld:
13
+ # (none — every root entry in this repo is legitimate)
14
+ #
15
+ # mode: report — the gate records every finding with a per-class count and
16
+ # exits 0. It flips to enforce when the residue is FIXED, never by moving the
17
+ # residue into this file: that is the recurrence mechanism the OMN-17992
18
+ # programme exists to remove.
19
+
20
+ mode: report
21
+ suppression_registry: ".public-repo-hygiene-suppressions.yaml"
22
+
23
+ allowed_top_level:
24
+ - ".claude"
25
+ - ".env.example"
26
+ - ".flake8"
27
+ - ".github"
28
+ - ".gitignore"
29
+ - ".kb-doc-gate.yaml"
30
+ - ".markdown-link-check.json"
31
+ - ".onex_ratchets"
32
+ - ".pre-commit-config.yaml"
33
+ - ".pre-commit-hooks"
34
+ - ".public-repo-hygiene-suppressions.yaml"
35
+ - ".public-repo-hygiene.yaml"
36
+ - ".secrets.baseline"
37
+ - ".serena"
38
+ - ".yamlfmt"
39
+ - "CHANGELOG.md"
40
+ - "CLAUDE.md"
41
+ - "LICENSE"
42
+ - "README.md"
43
+ - "SECURITY.md"
44
+ - "architecture-handshakes"
45
+ - "contract.yaml"
46
+ - "contracts"
47
+ - "deployment"
48
+ - "docker-compose.prod.yml"
49
+ - "docker-compose.yml"
50
+ - "docs"
51
+ - "examples"
52
+ - "pyproject.toml"
53
+ - "pyrightconfig.json"
54
+ - "scripts"
55
+ - "src"
56
+ - "tests"
57
+ - "uv.lock"
58
+ - "validate_architecture_improvements.py"
59
+ - "validation"
@@ -1,3 +1,44 @@
1
+ ## v0.18.2 (2026-09-18)
2
+
3
+ ### Release
4
+ - Cut omnimemory from dev at 0.18.2 by the scheduled release train.
5
+ - 3 release-relevant commit(s) merged since v0.18.1.
6
+ - Opened by the release train, which cuts only when the repo's declared lab-evidence premise holds for the exact candidate commit.
7
+
8
+ ### Included Since v0.18.1
9
+ - chore(deps, OMN-13902): refresh omninode sibling locks [bot] (#504)
10
+ - docs(OMN-16602): scrub omnimemory docs to zero residual and require kb-doc-gate strict (#473)
11
+ - build(deps-dev): update neo4j requirement from <6.0.0,>=5.0.0 to >=5.0.0,<7.0.0 (#471)
12
+
13
+ ## v0.18.1 (2026-08-31)
14
+
15
+ Patch release cut to ship the OMN-17236 PII detector pattern fixes, which merged
16
+ to `dev` about four hours after the v0.18.0 tag and so missed that release.
17
+
18
+ ### Security
19
+ - fix(OMN-17236): PHONE pattern gains leading/trailing boundary guards. Without
20
+ them any ten-digit run matched inside a longer token, and because PHONE is
21
+ registered before CREDIT_CARD at equal confidence it won overlap dedup — a
22
+ Visa number sanitized to `***-***-****111111`, leaking the card's trailing six
23
+ digits into stored content. The same false positive matched UUIDs, so storage
24
+ requests whose `user_context` carried a run/session UUID were refused. (#466)
25
+ - fix(OMN-17236): SSN area/group/serial validity exclusions now apply to the
26
+ separated form as well as the undashed one, and the space separator is
27
+ detected (`123 45 6789` previously passed through unredacted). (#466)
28
+ - fix(OMN-17236): Discover added to the CREDIT_CARD pattern. It had been masked
29
+ only by accident, as a PHONE false positive; once the PHONE boundary guard
30
+ landed it would otherwise have passed through entirely unredacted. (#466)
31
+ - fix(OMN-17184): close all 14 open Dependabot alerts (8 high). (#467)
32
+
33
+ ### Tests
34
+ - test(OMN-17236): 170 behavioral tests for the live PII detector across two
35
+ modules, covering both live call paths. The detector previously had none. (#466)
36
+
37
+ ### Chores
38
+ - chore(OMN-16997): bump omnibase-infra to 0.38.14. (#464)
39
+ - chore(deps): refresh omninode sibling locks. (#468)
40
+ - docs(OMN-16933): drop the deleted cr-thread-gate row from the CI guide. (#469)
41
+
1
42
  ## v0.16.0 (2026-05-21)
2
43
 
3
44
  ### Features
@@ -31,6 +31,23 @@ pre-commit run --all-files
31
31
 
32
32
  MIT SPDX headers required in `src/`, `tests/`, `scripts/`, `examples/` (spec: `omnibase_core/docs/conventions/FILE_HEADERS.md`). Stamp: `onex spdx fix src tests scripts examples` (add `--check` to dry-run). TRAP: the `# spdx-skip: <reason>` bypass is honored by the `onex spdx` CLI only — the local `validate-spdx-headers` pre-commit hook just scans the first 512 bytes for `SPDX-License-Identifier: MIT` and ignores the skip token.
33
33
 
34
+ ## Cross-Repo
35
+
36
+ - Shared platform standards: `~/.claude/CLAUDE.md`
37
+ - Core models and ONEX kernel: [`omnibase_core`](https://github.com/OmniNode-ai/omnibase_core)
38
+ - Platform protocols: [`omnibase_spi`](https://github.com/OmniNode-ai/omnibase_spi)
39
+ - Event bus and PostgreSQL: [`omnibase_infra`](https://github.com/OmniNode-ai/omnibase_infra)
40
+
41
+ ## Domain Rules
42
+
43
+ - Qdrant for vector storage, Memgraph for intent/relationship graphs, PostgreSQL for metadata.
44
+ - Document ingestion + semantic retrieval pipeline; PII detection runs before storage.
45
+ - Runnable node handlers (`contract.yaml`) are migrating to `omnimarket`; protocols, models, adapters and `PluginMemory` stay here.
46
+
34
47
  ## Documentation
35
48
 
36
- Documentation lives in the [OmniNode knowledge base](https://github.com/OmniNode-ai/knowledge-base); the README carries the full pointer index and every migrated path under `docs/` is a stub pointing at its page. Three full documents deliberately remain: `docs/ci/CI_MONITORING_GUIDE.md`, `docs/stub_protocols.md`, `docs/db-split/fk-audit.md`. High-traffic: [Environment Variables](https://github.com/OmniNode-ai/knowledge-base/blob/main/reference/omnimemory-environment-variables.md) (Memgraph/Qdrant/Postgres/embedding env vars), [Starting OmniMemory Services](https://github.com/OmniNode-ai/knowledge-base/blob/main/runbooks/omnimemory-starting-memory-services.md), [ONEX Four-Node Architecture](https://github.com/OmniNode-ai/knowledge-base/blob/main/architecture/omnimemory-four-node-architecture.md). What stays in-repo: this file, `AGENT.md`, `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, `CHANGELOG.md`, and the CI/agent-config and point-in-time files under `docs/` that are out of scope for the public knowledge base.
49
+ Every OmniMemory document lives in the OmniNode knowledge base, not in this repository. The only markdown that remains here is this file, the root `README.md`, `CHANGELOG.md`, `LICENSE`, `SECURITY.md`, and the `.claude/` and `.github/` trees — enforced by the required `kb-doc-gate` check running in `strict` mode (`.kb-doc-gate.yaml`). A pointer stub is not a removal: the README's Documentation section carries the signposting role for the whole repo and is the full page index.
50
+
51
+ - Public: <https://github.com/OmniNode-ai/knowledge-base>
52
+
53
+ High-traffic pages: [Environment Variables](https://github.com/OmniNode-ai/knowledge-base/blob/main/reference/omnimemory-environment-variables.md), [Starting OmniMemory Services](https://github.com/OmniNode-ai/knowledge-base/blob/main/runbooks/omnimemory-starting-memory-services.md), [ONEX Four-Node Architecture](https://github.com/OmniNode-ai/knowledge-base/blob/main/architecture/omnimemory-four-node-architecture.md), [PII Handling](https://github.com/OmniNode-ai/knowledge-base/blob/main/guides/omnimemory-pii-handling.md).