omninode-memory 0.18.2__tar.gz → 0.18.3__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 (599) hide show
  1. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/required-checks.yaml +14 -1
  2. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/auto-merge.yml +35 -1
  3. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/auto-tag-on-merge.yml +4 -0
  4. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/ban-hardcoded-runner-ip.yml +5 -1
  5. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/call-reject-skip.yml +4 -0
  6. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/check-handshake.yml +4 -0
  7. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/ci.yml +119 -2
  8. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/dep-provenance-gate.yml +4 -0
  9. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/docs-validate.yml +4 -0
  10. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/imperative-contract-guard.yml +4 -0
  11. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/kb-doc-gate.yml +5 -1
  12. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/main-target-guard.yml +4 -0
  13. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/omni-standards-compliance.yml +4 -0
  14. omninode_memory-0.18.3/.github/workflows/pin-resolvability-gate.yml +111 -0
  15. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/pr-title-check.yml +4 -0
  16. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/pre-commit.yml +4 -0
  17. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/public-repo-hygiene.yml +5 -1
  18. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/release.yml +18 -0
  19. omninode_memory-0.18.3/.github/workflows/secrets-baseline-wiring.yml +39 -0
  20. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/security-scan.yml +4 -0
  21. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/stale-todo-gate.yml +4 -0
  22. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/todo-audit-on-merge.yml +4 -0
  23. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/url-authority-gate.yml +4 -0
  24. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/validate-validator-requirements.yml +4 -0
  25. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.gitignore +40 -0
  26. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.pre-commit-config.yaml +110 -28
  27. omninode_memory-0.18.3/.secrets.baseline +500 -0
  28. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/CHANGELOG.md +10 -0
  29. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/PKG-INFO +1 -1
  30. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/architecture-handshakes/validator-requirements-baseline.yaml +0 -10
  31. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/pyproject.toml +7 -1
  32. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/check_no_hardcoded_bolt.sh +19 -5
  33. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/test_selection_adjacency.yaml +10 -0
  34. omninode_memory-0.18.3/scripts/ci/verify_pypi_pin_resolvability.py +348 -0
  35. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validate_ci_precommit_alignment.py +21 -0
  36. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/check_kafka_no_hardcoded_fallback.sh +8 -3
  37. omninode_memory-0.18.3/scripts/validation/check_no_internal_ips.sh +17 -0
  38. omninode_memory-0.18.3/scripts/validation/check_precommit_additional_dependencies.sh +82 -0
  39. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_naming.py +14 -9
  40. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_no_backward_compatibility.py +25 -11
  41. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_no_env_fallbacks.py +13 -2
  42. omninode_memory-0.18.3/tests/fixtures/omn19666/pre-commit-git-dependency.yaml +12 -0
  43. omninode_memory-0.18.3/tests/fixtures/omn19666/pre-commit-pypi-dependency.yaml +12 -0
  44. omninode_memory-0.18.3/tests/scripts/test_pin_resolvability_conflict_report.py +115 -0
  45. omninode_memory-0.18.3/tests/scripts/test_pin_resolvability_gate_workflow.py +129 -0
  46. omninode_memory-0.18.3/tests/test_precommit_additional_dependencies_omn19666.sh +23 -0
  47. omninode_memory-0.18.3/tests/test_precommit_staged_scope_omn19612.py +205 -0
  48. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_validate_ci_precommit_alignment.py +12 -1
  49. omninode_memory-0.18.3/tests/workflows/test_auto_merge_ready_for_review_omn19216.py +88 -0
  50. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/workflows/test_auto_merge_workflow.py +19 -0
  51. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/uv.lock +10 -10
  52. omninode_memory-0.18.2/.secrets.baseline +0 -196
  53. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.claude/architecture-handshake.md +0 -0
  54. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.env.example +0 -0
  55. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.flake8 +0 -0
  56. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/CODE_OF_CONDUCT.md +0 -0
  57. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/CONTRIBUTING.md +0 -0
  58. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  59. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  60. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  61. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/dependabot.yml +0 -0
  62. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/build-and-push-migrate-image.yml +0 -0
  63. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/call-occ-autobind.yml +0 -0
  64. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/call-occ-companion-effect.yml +0 -0
  65. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/contract-validation.yml +0 -0
  66. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/release-dry-run.yml +0 -0
  67. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/sibling-lock-refresh.yml +0 -0
  68. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.github/workflows/validator-runtime-profiles.yml +0 -0
  69. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.kb-doc-gate.yaml +0 -0
  70. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.markdown-link-check.json +0 -0
  71. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.onex_ratchets/noncanonical_class_allowlist.yaml +0 -0
  72. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.pre-commit-hooks/reject-deploy-gate-skip-token.sh +0 -0
  73. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.public-repo-hygiene.yaml +0 -0
  74. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.serena/project.yml +0 -0
  75. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/.yamlfmt +0 -0
  76. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/CLAUDE.md +0 -0
  77. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/LICENSE +0 -0
  78. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/README.md +0 -0
  79. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/SECURITY.md +0 -0
  80. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/architecture-handshakes/validator-requirements.yaml +0 -0
  81. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/contract.yaml +0 -0
  82. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/contracts/OMN-12245.yaml +0 -0
  83. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
  84. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/002_create_memories_table.sql +0 -0
  85. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
  86. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
  87. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations/005_backfill_null_checksums.sql +0 -0
  88. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +0 -0
  89. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
  90. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
  91. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/deployment/docker/Dockerfile.migrate +0 -0
  92. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docker-compose.prod.yml +0 -0
  93. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docker-compose.yml +0 -0
  94. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-icon-black.png +0 -0
  95. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-icon-full-color.svg +0 -0
  96. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-icon-white.png +0 -0
  97. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-inline-black.png +0 -0
  98. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-inline-full-color.svg +0 -0
  99. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-inline-white.png +0 -0
  100. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-stacked-black.png +0 -0
  101. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-stacked-full-color.svg +0 -0
  102. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-stacked-white.png +0 -0
  103. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-wordmark-black.svg +0 -0
  104. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-wordmark-grey.svg +0 -0
  105. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/docs/assets/brand/omninode-wordmark-white.svg +0 -0
  106. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/examples/__init__.py +0 -0
  107. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/examples/advanced_architecture_demo.py +0 -0
  108. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/pyrightconfig.json +0 -0
  109. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/__init__.py +0 -0
  110. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/check_dep_provenance.py +0 -0
  111. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/check_migration_freeze.sh +0 -0
  112. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/__init__.py +0 -0
  113. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/collect_changed_files.py +0 -0
  114. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/detect_test_paths.py +0 -0
  115. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/occ_manual_replay_precheck.py +0 -0
  116. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/run_runtime_profiles_validator.py +0 -0
  117. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/test_selection_loader.py +0 -0
  118. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/ci/test_selection_models.py +0 -0
  119. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/graphify_to_memgraph.py +0 -0
  120. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/graphify_to_qdrant.py +0 -0
  121. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/__init__.py +0 -0
  122. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/check_ai_slop.py +0 -0
  123. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/foundation_validation_common.py +0 -0
  124. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_enum_casing.py +0 -0
  125. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_http_imports.py +0 -0
  126. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_kafka_imports.py +0 -0
  127. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_model_locations.py +0 -0
  128. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_pydantic_patterns.py +0 -0
  129. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_secrets.py +0 -0
  130. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_single_class_per_file.py +0 -0
  131. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/scripts/validation/validate_spdx_headers.py +0 -0
  132. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/__init__.py +0 -0
  133. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/_compat_imports.py +0 -0
  134. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/__init__.py +0 -0
  135. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_concurrency.py +0 -0
  136. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_correlation_context.py +0 -0
  137. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_db_url.py +0 -0
  138. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_error_sanitizer.py +0 -0
  139. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_handler_constants.py +0 -0
  140. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_health_manager.py +0 -0
  141. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_metrics_counter.py +0 -0
  142. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_observability_wrapper.py +0 -0
  143. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_pii_detector.py +0 -0
  144. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_resource_manager.py +0 -0
  145. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/adapters/adapter_retry_utils.py +0 -0
  146. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/bootstrap.py +0 -0
  147. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/__init__.py +0 -0
  148. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/crawl/__init__.py +0 -0
  149. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
  150. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
  151. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
  152. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
  153. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_context_item_type.py +0 -0
  154. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_data_type.py +0 -0
  155. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
  156. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_error_code.py +0 -0
  157. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
  158. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
  159. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
  160. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
  161. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_memory_type.py +0 -0
  162. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_migration_status.py +0 -0
  163. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_node_type.py +0 -0
  164. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_operation_status.py +0 -0
  165. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_preferred_tone.py +0 -0
  166. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_priority_level.py +0 -0
  167. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
  168. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
  169. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_severity.py +0 -0
  170. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_subscription_status.py +0 -0
  171. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_technical_level.py +0 -0
  172. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/enums/enum_trust_level.py +0 -0
  173. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/errors/__init__.py +0 -0
  174. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/errors/embedding_errors.py +0 -0
  175. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/__init__.py +0 -0
  176. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/__init__.py +0 -0
  177. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
  178. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +0 -0
  179. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +0 -0
  180. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_intent_graph_contract.yaml +0 -0
  181. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
  182. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
  183. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
  184. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
  185. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
  186. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
  187. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/handler_intent.py +0 -0
  188. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/handler_subscription.py +0 -0
  189. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/handler_subscription_contract.yaml +0 -0
  190. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/models/__init__.py +0 -0
  191. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/handlers/models/model_handler_intent_config.py +0 -0
  192. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/__init__.py +0 -0
  193. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/__init__.py +0 -0
  194. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
  195. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
  196. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
  197. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
  198. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
  199. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
  200. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
  201. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/__init__.py +0 -0
  202. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
  203. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_embedding_config.py +0 -0
  204. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
  205. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
  206. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
  207. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
  208. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
  209. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_postgres_config.py +0 -0
  210. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
  211. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
  212. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
  213. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
  214. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
  215. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/container/__init__.py +0 -0
  216. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/__init__.py +0 -0
  217. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
  218. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
  219. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
  220. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
  221. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
  222. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/__init__.py +0 -0
  223. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_context.py +0 -0
  224. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
  225. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
  226. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_request.py +0 -0
  227. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_memory_response.py +0 -0
  228. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
  229. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
  230. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/core/model_provenance.py +0 -0
  231. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/__init__.py +0 -0
  232. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
  233. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
  234. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
  235. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
  236. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
  237. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
  238. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
  239. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/crawl/types.py +0 -0
  240. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/events/__init__.py +0 -0
  241. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
  242. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
  243. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/__init__.py +0 -0
  244. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
  245. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_configuration.py +0 -0
  246. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
  247. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_error_details.py +0 -0
  248. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
  249. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_health_response.py +0 -0
  250. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
  251. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
  252. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
  253. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_notes.py +0 -0
  254. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_priority.py +0 -0
  255. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
  256. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_semver.py +0 -0
  257. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
  258. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_system_health.py +0 -0
  259. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_tags.py +0 -0
  260. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
  261. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
  262. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/foundation/model_user.py +0 -0
  263. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/__init__.py +0 -0
  264. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
  265. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
  266. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
  267. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
  268. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
  269. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/__init__.py +0 -0
  270. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_memory_item.py +0 -0
  271. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_memory_query.py +0 -0
  272. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
  273. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
  274. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
  275. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/persona/__init__.py +0 -0
  276. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/persona/model_persona_signal.py +0 -0
  277. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/persona/model_user_persona_v1.py +0 -0
  278. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/scoring/__init__.py +0 -0
  279. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
  280. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
  281. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
  282. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/service/__init__.py +0 -0
  283. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/service/model_service_config.py +0 -0
  284. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/service/model_service_health.py +0 -0
  285. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/service/model_service_registry.py +0 -0
  286. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/__init__.py +0 -0
  287. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/constants.py +0 -0
  288. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
  289. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
  290. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/subscription/model_subscription.py +0 -0
  291. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/__init__.py +0 -0
  292. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_audit.py +0 -0
  293. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
  294. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
  295. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_concurrency.py +0 -0
  296. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
  297. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
  298. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
  299. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
  300. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_health_status.py +0 -0
  301. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
  302. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
  303. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_match.py +0 -0
  304. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
  305. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_pii_type.py +0 -0
  306. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
  307. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
  308. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_retry_config.py +0 -0
  309. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
  310. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
  311. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/models/utils/model_system_health.py +0 -0
  312. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/__init__.py +0 -0
  313. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/base.py +0 -0
  314. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/__init__.py +0 -0
  315. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/contract.yaml +0 -0
  316. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/__init__.py +0 -0
  317. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_request.py +0 -0
  318. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_response.py +0 -0
  319. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/__init__.py +0 -0
  320. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/adapters/__init__.py +0 -0
  321. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/contract.yaml +0 -0
  322. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/__init__.py +0 -0
  323. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/handler_agent_learning_retrieval.py +0 -0
  324. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/__init__.py +0 -0
  325. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_request.py +0 -0
  326. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_response.py +0 -0
  327. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/__init__.py +0 -0
  328. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/contract.yaml +0 -0
  329. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/handlers/__init__.py +0 -0
  330. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/handlers/handler_intent_query.py +0 -0
  331. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/mappers/__init__.py +0 -0
  332. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/mappers/util_intent_mapping.py +0 -0
  333. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/models/__init__.py +0 -0
  334. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/models/model_handler_intent_query_config.py +0 -0
  335. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/registry/__init__.py +0 -0
  336. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_query_effect/registry/registry_intent_query_effect.py +0 -0
  337. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/__init__.py +0 -0
  338. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/adapters/__init__.py +0 -0
  339. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/adapters/adapter_intent_storage.py +0 -0
  340. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/contract.yaml +0 -0
  341. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/models/__init__.py +0 -0
  342. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_request.py +0 -0
  343. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_response.py +0 -0
  344. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/__init__.py +0 -0
  345. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/__init__.py +0 -0
  346. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/adapter_kreuzberg_client.py +0 -0
  347. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/contract.yaml +0 -0
  348. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/handler_kreuzberg_parse.py +0 -0
  349. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/__init__.py +0 -0
  350. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_config.py +0 -0
  351. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_result.py +0 -0
  352. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_consolidator_reducer/__init__.py +0 -0
  353. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/__init__.py +0 -0
  354. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/__init__.py +0 -0
  355. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_postgres_deactivate_memory.py +0 -0
  356. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_runtime_tick_memory.py +0 -0
  357. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/contract.yaml +0 -0
  358. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/__init__.py +0 -0
  359. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_archive.py +0 -0
  360. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_expire.py +0 -0
  361. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_tick.py +0 -0
  362. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/models/__init__.py +0 -0
  363. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/__init__.py +0 -0
  364. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/validator_lifecycle_transition.py +0 -0
  365. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  366. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/__init__.py +0 -0
  367. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/adapter_embedding_client.py +0 -0
  368. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/contract.yaml +0 -0
  369. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/contract_descriptor.py +0 -0
  370. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/__init__.py +0 -0
  371. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_db_mock.py +0 -0
  372. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_decay.py +0 -0
  373. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_fusion.py +0 -0
  374. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_graph_mock.py +0 -0
  375. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_memory_retrieval.py +0 -0
  376. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +0 -0
  377. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant_mock.py +0 -0
  378. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/__init__.py +0 -0
  379. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_embedding_client_config.py +0 -0
  380. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_db_mock_config.py +0 -0
  381. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_graph_mock_config.py +0 -0
  382. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -0
  383. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +0 -0
  384. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_mock_config.py +0 -0
  385. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_request.py +0 -0
  386. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_response.py +0 -0
  387. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/__init__.py +0 -0
  388. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/adapters/__init__.py +0 -0
  389. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/adapters/adapter_filesystem.py +0 -0
  390. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/contract.yaml +0 -0
  391. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/models/__init__.py +0 -0
  392. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_request.py +0 -0
  393. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_response.py +0 -0
  394. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/__init__.py +0 -0
  395. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/contract.yaml +0 -0
  396. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/__init__.py +0 -0
  397. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/handler_navigation_history_reducer.py +0 -0
  398. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/models/__init__.py +0 -0
  399. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_request.py +0 -0
  400. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_response.py +0 -0
  401. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_session.py +0 -0
  402. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_navigation_history_reducer/node_navigation_history_reducer.py +0 -0
  403. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/__init__.py +0 -0
  404. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/contract.yaml +0 -0
  405. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/handlers/__init__.py +0 -0
  406. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/handlers/handler_persona_classify.py +0 -0
  407. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/models/__init__.py +0 -0
  408. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_request.py +0 -0
  409. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_result.py +0 -0
  410. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/__init__.py +0 -0
  411. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/adapters/__init__.py +0 -0
  412. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/adapters/adapter_postgres_persona.py +0 -0
  413. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/contract.yaml +0 -0
  414. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/models/__init__.py +0 -0
  415. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_request.py +0 -0
  416. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_response.py +0 -0
  417. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/__init__.py +0 -0
  418. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/contract.yaml +0 -0
  419. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/__init__.py +0 -0
  420. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/handler_semantic_compute.py +0 -0
  421. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/__init__.py +0 -0
  422. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_request.py +0 -0
  423. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_response.py +0 -0
  424. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_semantic_analyzer_compute/node_semantic_analyzer_compute.py +0 -0
  425. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/__init__.py +0 -0
  426. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/contract.yaml +0 -0
  427. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/handlers/__init__.py +0 -0
  428. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/handlers/handler_similarity_compute.py +0 -0
  429. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/models/__init__.py +0 -0
  430. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/models/model_handler_similarity_compute_config.py +0 -0
  431. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_request.py +0 -0
  432. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_response.py +0 -0
  433. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/nodes/node_similarity_compute/node_similarity_compute.py +0 -0
  434. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/__init__.py +0 -0
  435. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/base_protocols.py +0 -0
  436. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/data_models.py +0 -0
  437. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/error_models.py +0 -0
  438. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_embedding.py +0 -0
  439. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
  440. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_handler_intent.py +0 -0
  441. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +0 -0
  442. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
  443. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/__init__.py +0 -0
  444. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/adapters.py +0 -0
  445. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/contract_topics.py +0 -0
  446. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/dispatch_handlers.py +0 -0
  447. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/handler_lifecycle.py +0 -0
  448. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/handler_lifecycle_contract.yaml +0 -0
  449. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/introspection.py +0 -0
  450. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/message_type_registration.py +0 -0
  451. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/plugin.py +0 -0
  452. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/runtime/wiring.py +0 -0
  453. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/secrets.py +0 -0
  454. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/settings.py +0 -0
  455. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/tools/__init__.py +0 -0
  456. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/tools/contract_linter.py +0 -0
  457. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/tools/validators/__init__.py +0 -0
  458. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/tools/validators/validator_contract.py +0 -0
  459. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/src/omnimemory/topics.py +0 -0
  460. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/__init__.py +0 -0
  461. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/conftest.py +0 -0
  462. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/gates/__init__.py +0 -0
  463. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/gates/test_ban_hardcoded_runner_ip_scope.py +0 -0
  464. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/gates/test_consumer_group_name_authorization.py +0 -0
  465. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/__init__.py +0 -0
  466. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/__init__.py +0 -0
  467. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
  468. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
  469. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
  470. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
  471. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
  472. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
  473. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/test_handler_intent.py +0 -0
  474. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/handlers/test_handler_semantic_compute.py +0 -0
  475. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/__init__.py +0 -0
  476. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/conftest.py +0 -0
  477. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/nodes/__init__.py +0 -0
  478. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/nodes/test_kreuzberg_parse_effect.py +0 -0
  479. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
  480. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/nodes/test_navigation_history_reducer_integration.py +0 -0
  481. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_entry_point_discovery.py +0 -0
  482. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_golden_chain_memgraph_ingestion.py +0 -0
  483. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_golden_chain_qdrant_ingestion.py +0 -0
  484. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_handler_lifecycle_pattern.py +0 -0
  485. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_handler_subscription.py +0 -0
  486. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_node_agent_coordinator.py +0 -0
  487. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/integration/test_persona_round_trip.py +0 -0
  488. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/__init__.py +0 -0
  489. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/contracts/__init__.py +0 -0
  490. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/contracts/test_extended_contracts.py +0 -0
  491. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/events/__init__.py +0 -0
  492. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/events/test_model_intent_classified_event.py +0 -0
  493. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/models/test_frozen_boundary_models.py +0 -0
  494. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/__init__.py +0 -0
  495. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_query_effect/__init__.py +0 -0
  496. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_query_effect/conftest.py +0 -0
  497. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_query_effect/test_handler_intent_query_integration.py +0 -0
  498. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_storage_effect/__init__.py +0 -0
  499. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_intent_storage_effect/test_handler_intent_storage_adapter_integration.py +0 -0
  500. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  501. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_retrieval_effect/test_contract_descriptor.py +0 -0
  502. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_retrieval_effect/test_dispatch_entrypoint_contract.py +0 -0
  503. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_retrieval_effect/test_memory_retrieval_effect.py +0 -0
  504. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_storage_effect/__init__.py +0 -0
  505. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_memory_storage_effect/test_memory_storage_effect.py +0 -0
  506. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_navigation_history_reducer/__init__.py +0 -0
  507. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_navigation_history_reducer/test_navigation_history_reducer_unit.py +0 -0
  508. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_similarity_compute/__init__.py +0 -0
  509. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/nodes/node_similarity_compute/test_similarity_compute.py +0 -0
  510. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/scripts/__init__.py +0 -0
  511. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/scripts/test_check_dep_provenance.py +0 -0
  512. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_bootstrap.py +0 -0
  513. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_concurrency.py +0 -0
  514. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_config_models.py +0 -0
  515. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_contract_validation.py +0 -0
  516. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_contract_version.py +0 -0
  517. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_db_url.py +0 -0
  518. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_foundation.py +0 -0
  519. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_health_manager.py +0 -0
  520. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_migration_progress.py +0 -0
  521. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_node_enforcement.py +0 -0
  522. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_node_imports.py +0 -0
  523. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_observability_manager.py +0 -0
  524. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_observability_metrics.py +0 -0
  525. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_performance.py +0 -0
  526. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_resource_manager.py +0 -0
  527. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_secrets_provider.py +0 -0
  528. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_semantic_compute_policy_config.py +0 -0
  529. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_settings.py +0 -0
  530. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/test_validation_scripts.py +0 -0
  531. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/__init__.py +0 -0
  532. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/adapters/__init__.py +0 -0
  533. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/adapters/test_adapter_pii_detector.py +0 -0
  534. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/adapters/test_pii_live_call_paths.py +0 -0
  535. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/handlers/__init__.py +0 -0
  536. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/handlers/adapters/__init__.py +0 -0
  537. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
  538. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/handlers/test_subscription_typing.py +0 -0
  539. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/__init__.py +0 -0
  540. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/fixtures/omn16765/hybrid_retrieval_corpus.json +0 -0
  541. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_activation_decay.py +0 -0
  542. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_decay_ranking.py +0 -0
  543. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_handler_agent_learning_retrieval.py +0 -0
  544. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_handler_qdrant.py +0 -0
  545. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_handler_routing_boot_resolvable.py +0 -0
  546. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_hybrid_retrieval_fusion.py +0 -0
  547. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
  548. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +0 -0
  549. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
  550. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +0 -0
  551. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +0 -0
  552. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +0 -0
  553. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +0 -0
  554. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +0 -0
  555. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +0 -0
  556. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_model_handler_qdrant_config.py +0 -0
  557. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_navigation_history_reducer_contract.py +0 -0
  558. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_node_agent_learning_retrieval_models.py +0 -0
  559. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_persona_builder.py +0 -0
  560. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/nodes/test_persona_storage_retrieval.py +0 -0
  561. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/__init__.py +0 -0
  562. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/conftest.py +0 -0
  563. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_adapters.py +0 -0
  564. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_contract_handler_completeness.py +0 -0
  565. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_contract_topics.py +0 -0
  566. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
  567. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_introspection.py +0 -0
  568. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_memory_subscription_group_is_authorized.py +0 -0
  569. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_message_type_registration.py +0 -0
  570. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_plugin.py +0 -0
  571. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_plugin_graph_memory_wiring.py +0 -0
  572. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_plugin_integration_wiring.py +0 -0
  573. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_plugin_memory_validate_handshake.py +0 -0
  574. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_standalone_handler_contracts.py +0 -0
  575. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/runtime/test_wiring.py +0 -0
  576. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/scripts/__init__.py +0 -0
  577. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/scripts/test_check_ai_slop.py +0 -0
  578. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/scripts/test_collect_changed_files.py +0 -0
  579. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/scripts/test_occ_manual_replay_precheck.py +0 -0
  580. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_auto_tag_app_token_push_omn18662.py +0 -0
  581. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_ci_workflow_shape.py +0 -0
  582. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_contract_linter.py +0 -0
  583. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_detect_test_paths.py +0 -0
  584. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_dispatch_retrieval_config.py +0 -0
  585. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_entry_points.py +0 -0
  586. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_graphify_to_memgraph.py +0 -0
  587. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_graphify_to_qdrant.py +0 -0
  588. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
  589. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_ingestion_models.py +0 -0
  590. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_model_user_persona_v1.py +0 -0
  591. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_no_duplicate_node_uuids.py +0 -0
  592. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_occ_companion_effect_edited_trigger_omn_18334.py +0 -0
  593. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_persona_enums.py +0 -0
  594. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_scope_mapping_config.py +0 -0
  595. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_sql_placeholders.py +0 -0
  596. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/unit/test_validate_kafka_imports.py +0 -0
  597. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/tests/workflows/__init__.py +0 -0
  598. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/validate_architecture_improvements.py +0 -0
  599. {omninode_memory-0.18.2 → omninode_memory-0.18.3}/validation/runtime_profiles_allowlist.yaml +0 -0
@@ -14,7 +14,7 @@
14
14
  #
15
15
  # Applied via: gh api repos/OmniNode-ai/omnimemory/branches/main/protection -X PUT
16
16
  # Mode: strict (branch must be up-to-date before merging)
17
- # Total required checks: 11
17
+ # Total required checks: 12
18
18
 
19
19
  required_checks:
20
20
  # -- Phase 1: Quick Validation (parallel, ~2-5 min) -------------------------
@@ -75,6 +75,19 @@ required_checks:
75
75
  condition: "Skipped when no Python/Markdown files changed in the PR diff"
76
76
  rationale: "Prevents AI-generated slop patterns from entering the codebase (OMN-2972)"
77
77
 
78
+ - name: "Detect Secrets"
79
+ workflow: ci.yml
80
+ job_id: detect-secrets
81
+ conditional: false
82
+ rationale: >-
83
+ OMN-18669. Judges the tracked set against .secrets.baseline with
84
+ detect-secrets-hook. Gates merges through the required CI Summary
85
+ context, which needs: this job and accepts only a success result --
86
+ skipped, cancelled and failure all block. Its selection and exclusions
87
+ are identical to the detect-secrets pre-commit hook by construction;
88
+ tests/unit/test_validate_ci_precommit_alignment.py fails if the pair
89
+ drifts apart.
90
+
78
91
  # -- Phase 2: Full Test Suite ------------------------------------------------
79
92
 
80
93
  - name: "Tests"
@@ -21,11 +21,21 @@
21
21
  # workflow is NOT a required status check on dev, so narrowing it cannot
22
22
  # wedge branch protection (verified live via required_status_checks readback
23
23
  # before landing).
24
+ # OMN-19216 (2026-09-22): RE-ADD `ready_for_review` to the pull_request
25
+ # trigger, by operator decision. OMN-14777 dropped it because the ready
26
+ # flip force-armed PRs someone meant to hold; since then a PR opened as a
27
+ # draft was never armed by its flip and needed a manual arming step.
28
+ # This repository has no OMN-18179 hold gate; the author gate below and
29
+ # the already-armed guard are what bound arming on the flip.
30
+ # Arming stays limited to the allowed author (the resolve step reads the
31
+ # PR author from the payload, not the sender who flipped it), and the
32
+ # Enable step returns early when the PR is already armed, so a ready flip
33
+ # racing a check_suite or review event cannot arm twice.
24
34
  name: Auto-Merge
25
35
 
26
36
  on:
27
37
  pull_request:
28
- types: [opened]
38
+ types: [opened, ready_for_review]
29
39
  pull_request_review:
30
40
  types: [submitted, dismissed]
31
41
  check_suite:
@@ -41,6 +51,22 @@ permissions:
41
51
  contents: write
42
52
  pull-requests: write
43
53
 
54
+ # OMN-19216: one arming run per PR at a time. A newer event queues behind
55
+ # a running one instead of racing it; the already-armed guard makes the
56
+ # queued run a no-op. Every arming path carries a PR number. The constant
57
+ # fallback covers only a check_suite with no associated PR, which the
58
+ # resolve step skips, and it keeps those in one group rather than giving
59
+ # each run a unique key that would serialize nothing.
60
+ concurrency:
61
+ group: >-
62
+ ${{ github.workflow }}-${{
63
+ github.event.pull_request.number ||
64
+ github.event.inputs.pr_number ||
65
+ github.event.check_suite.pull_requests[0].number ||
66
+ 'no-pr'
67
+ }}
68
+ cancel-in-progress: false
69
+
44
70
  jobs:
45
71
  auto-merge:
46
72
  name: Enable Auto-Merge
@@ -96,6 +122,14 @@ jobs:
96
122
  PR: ${{ steps.resolve.outputs.pr }}
97
123
  run: |
98
124
  set -euo pipefail
125
+ # OMN-19216: a ready flip, a check_suite completion and a review can each
126
+ # reach this step for one PR. An already-armed PR is left alone rather
127
+ # than armed a second time.
128
+ armed="$(gh pr view "$PR" --repo "$GH_REPO" --json autoMergeRequest --jq '.autoMergeRequest != null')"
129
+ if [ "$armed" = "true" ]; then
130
+ echo "PR #${PR} is already armed; not arming again (OMN-19216)."
131
+ exit 0
132
+ fi
99
133
  # OMN-13138/13214: on a queue-controlled branch the merge method is
100
134
  # set by the merge queue, so passing an explicit --squash is
101
135
  # rejected ("The merge strategy for dev is set by the merge queue")
@@ -33,6 +33,10 @@ on:
33
33
  # left byte-unchanged for whatever still calls it. Precedent and shape:
34
34
  # omnibase_core#1703 and omnibase_spi#308, under OMN-18658.
35
35
 
36
+ concurrency:
37
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
38
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
39
+
36
40
  jobs:
37
41
  auto-tag:
38
42
  if: >-
@@ -22,11 +22,15 @@ on:
22
22
  - tests/**
23
23
  merge_group:
24
24
 
25
+ concurrency:
26
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
27
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
28
+
25
29
  jobs:
26
30
  ban-hardcoded-runner-ip:
27
31
  # OMN-17993: pinned to an exact SHA, not @main. omniclaude main lags dev by
28
32
  # design (release-synced), so @main still resolves to the pre-widening scanner
29
33
  # 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
34
+ uses: OmniNode-ai/omniclaude/.github/workflows/ban-hardcoded-runner-ip.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
31
35
  permissions:
32
36
  contents: read
@@ -18,6 +18,10 @@ on:
18
18
  branches: [main, dev]
19
19
  merge_group:
20
20
 
21
+ concurrency:
22
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
23
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
24
+
21
25
  permissions:
22
26
  contents: read
23
27
  pull-requests: read
@@ -10,6 +10,10 @@ on:
10
10
  merge_group:
11
11
  workflow_dispatch:
12
12
 
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
15
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
16
+
13
17
  jobs:
14
18
  check-handshake:
15
19
  name: Check architecture handshake
@@ -150,7 +150,7 @@ jobs:
150
150
  onex-validation:
151
151
  name: ONEX Validation
152
152
  runs-on: ubuntu-latest
153
- timeout-minutes: 5
153
+ timeout-minutes: 30
154
154
 
155
155
  steps:
156
156
  - name: Checkout code
@@ -162,6 +162,9 @@ jobs:
162
162
  - name: Install dependencies
163
163
  run: uv sync --locked --reinstall-package omnibase-core --reinstall-package omnibase-spi --reinstall-package omnibase-infra
164
164
 
165
+ - name: Run the whole-tree pre-commit suite
166
+ run: uv run pre-commit run --all-files --show-diff-on-failure
167
+
165
168
  # SYNC: Pre-commit hook 'validate-pydantic-patterns' at pre-commit stage
166
169
  - name: Validate Pydantic patterns
167
170
  run: uv run python scripts/validation/validate_pydantic_patterns.py src/
@@ -202,6 +205,33 @@ jobs:
202
205
  - name: Validate no silent env fallbacks
203
206
  run: uv run python scripts/validation/validate_no_env_fallbacks.py
204
207
 
208
+ # SYNC: Pre-commit hook 'validate-model-locations' at pre-commit stage
209
+ - name: Validate model locations
210
+ run: uv run python scripts/validation/validate_model_locations.py src/
211
+
212
+ # SYNC: Pre-commit hook 'no-hardcoded-bolt-fallback' at pre-commit stage
213
+ - name: Validate no hardcoded bolt fallback (whole-tree backstop)
214
+ run: bash scripts/check_no_hardcoded_bolt.sh
215
+
216
+ # SYNC: Pre-commit hook 'kafka-no-hardcoded-fallback' at pre-commit stage
217
+ - name: Validate no hardcoded Kafka fallback (whole-tree backstop)
218
+ run: bash scripts/validation/check_kafka_no_hardcoded_fallback.sh
219
+
220
+ # SYNC: Pre-commit hook 'no-internal-ips' at pre-commit stage
221
+ - name: Validate no internal IPs (whole-tree backstop)
222
+ run: bash scripts/validation/check_no_internal_ips.sh
223
+
224
+ # CI counterpart of the no-git-precommit-additional-dependencies hook.
225
+ - name: Pre-commit dependencies come from package indexes (OMN-19666)
226
+ run: bash tests/test_precommit_additional_dependencies_omn19666.sh
227
+
228
+ # SYNC: Pre-commit hook 'validate-gitignore-baseline' at pre-commit stage (OMN-18033)
229
+ # This step and the hook both pin released omnibase-core==0.47.23,
230
+ # matching uv.lock and carrying the packaged baseline spec; move them together.
231
+ # OMN-19666: do not use git+ URLs for this validator.
232
+ - name: Validate gitignore baseline (OMN-18033)
233
+ run: uv run --isolated --no-project --with "omnibase-core==0.47.23" python -m omnibase_core.validators.gitignore_baseline .
234
+
205
235
  - name: ONEX validation summary
206
236
  if: always()
207
237
  run: |
@@ -218,6 +248,9 @@ jobs:
218
248
  echo "- Kafka import boundary enforcement (ARCH-002)" >> $GITHUB_STEP_SUMMARY
219
249
  echo "- Pydantic model location enforcement" >> $GITHUB_STEP_SUMMARY
220
250
  echo "- No silent env fallbacks (OMN-10735)" >> $GITHUB_STEP_SUMMARY
251
+ echo "- No hardcoded bolt fallback" >> $GITHUB_STEP_SUMMARY
252
+ echo "- No hardcoded Kafka fallback" >> $GITHUB_STEP_SUMMARY
253
+ echo "- No hardcoded internal IPs" >> $GITHUB_STEP_SUMMARY
221
254
 
222
255
  # Phase 1 - Transport Import Guard (ARCH-002)
223
256
  # SYNC: Pre-commit hook 'validate-no-transport-imports' (omnibase_core remote hook)
@@ -624,10 +657,87 @@ jobs:
624
657
  --allowlist .onex_ratchets/noncanonical_class_allowlist.yaml \
625
658
  src/omnimemory
626
659
 
660
+ # ============================================================================
661
+ # Detect Secrets - the CI half of the .secrets.baseline gate (OMN-18669)
662
+ # ============================================================================
663
+ # This repository carried a committed `.secrets.baseline` that NO hook and NO
664
+ # workflow read. Measured 2026-09-18 (integration probe R9): the file was
665
+ # present, the repository looked protected, and a full scan against it
666
+ # surfaced 47 findings in 18 files nothing had ever been asked to approve.
667
+ # Nobody had loosened a gate -- there was no gate.
668
+ #
669
+ # Uses detect-secrets-hook, which compares findings to the baseline on the
670
+ # full equality model (hashed_secret + type) and exits non-zero only for
671
+ # findings NOT already baselined. Same pin, same baseline and the same
672
+ # exclusions as the `detect-secrets` pre-commit hook in
673
+ # .pre-commit-config.yaml -- if the two selections differ, a commit passes
674
+ # locally and this check fails, or worse, the reverse.
675
+ #
676
+ # Wired into the required `CI Summary` context through needs: below, with a
677
+ # strict success-only verdict, so it gates merges rather than advising.
678
+ detect-secrets:
679
+ name: Detect Secrets
680
+ runs-on: ubuntu-latest
681
+ timeout-minutes: 5
682
+
683
+ steps:
684
+ - name: Checkout code
685
+ uses: actions/checkout@v7
686
+
687
+ - name: Set up Python
688
+ uses: actions/setup-python@v7
689
+ with:
690
+ python-version: "3.12"
691
+
692
+ # detect-secrets is a CI-only scanning tool, not a project dependency.
693
+ # Installed via pip (not uv) because it is not declared in pyproject.toml.
694
+ - name: Install detect-secrets
695
+ run: pip install detect-secrets==1.5.0
696
+
697
+ - name: Run detect-secrets-hook
698
+ run: |
699
+ # -n/--no-verify (OMN-15063): several plugins (SlackDetector,
700
+ # StripeDetector, ...) call the live vendor API to "verify" each
701
+ # regex-matched candidate, then silently drop anything that comes
702
+ # back VERIFIED_FALSE. A negative or uncertain live-verification
703
+ # result must not silently remove a finding (fail-closed). Never
704
+ # remove this flag without re-proving the miss is fixed another way.
705
+ set +e
706
+ git ls-files -z | xargs -0 detect-secrets-hook \
707
+ --no-verify \
708
+ --baseline .secrets.baseline \
709
+ --exclude-files 'uv\.lock' \
710
+ --exclude-files '\.venv/' \
711
+ --exclude-files 'tests/fixtures/' \
712
+ --exclude-files '\.git/' \
713
+ --exclude-files '\.secrets\.baseline' \
714
+ --exclude-files '\.github/workflows/.*\.ya?ml' # workflow YAML legitimately references the secrets context
715
+ HOOK_EXIT=$?
716
+ set -e
717
+
718
+ if [[ $HOOK_EXIT -eq 0 ]]; then
719
+ echo "## Secrets Scan" >> $GITHUB_STEP_SUMMARY
720
+ echo "No new secrets detected (all findings are baselined)." >> $GITHUB_STEP_SUMMARY
721
+ else
722
+ echo "## New Secrets Detected" >> $GITHUB_STEP_SUMMARY
723
+ echo "" >> $GITHUB_STEP_SUMMARY
724
+ echo "Findings are present that .secrets.baseline does not carry." >> $GITHUB_STEP_SUMMARY
725
+ echo "" >> $GITHUB_STEP_SUMMARY
726
+ echo "If they are real, remove them and rotate under the credential-rotation" >> $GITHUB_STEP_SUMMARY
727
+ echo "runbook. If they are false positives, audit them into the baseline:" >> $GITHUB_STEP_SUMMARY
728
+ echo '```' >> $GITHUB_STEP_SUMMARY
729
+ echo 'detect-secrets scan --no-verify --exclude-files "uv\.lock" --exclude-files "\.venv/" --exclude-files "tests/fixtures/" --exclude-files "\.git/" --exclude-files "\.secrets\.baseline" --exclude-files "\.github/workflows/.*\.ya?ml" --force-use-all-plugins > .secrets.baseline' >> $GITHUB_STEP_SUMMARY
730
+ echo 'detect-secrets audit .secrets.baseline' >> $GITHUB_STEP_SUMMARY
731
+ echo '```' >> $GITHUB_STEP_SUMMARY
732
+ echo "" >> $GITHUB_STEP_SUMMARY
733
+ echo "Never loosen the hook or widen the exclusions to clear this." >> $GITHUB_STEP_SUMMARY
734
+ exit $HOOK_EXIT
735
+ fi
736
+
627
737
  ci-summary:
628
738
  name: CI Summary
629
739
  runs-on: ubuntu-latest
630
- needs: [migration-freeze, lint, pyright, onex-validation, transport-import-guard, contract-validation, io-audit, check-handshake, test-select, tests-gate, compliance, contract-compliance, no-noncanonical-lifecycle-classes]
740
+ needs: [migration-freeze, lint, pyright, onex-validation, transport-import-guard, contract-validation, io-audit, check-handshake, test-select, tests-gate, compliance, contract-compliance, no-noncanonical-lifecycle-classes, detect-secrets]
631
741
  if: always()
632
742
 
633
743
  steps:
@@ -640,6 +750,13 @@ jobs:
640
750
  echo "::error::no-noncanonical-lifecycle-classes ratchet did not pass (result: ${{ needs.no-noncanonical-lifecycle-classes.result }}) - fail-closed (OMN-14350)"
641
751
  exit 1
642
752
  fi
753
+ # OMN-18669: strict fail-closed gate on the secrets scan - only 'success'
754
+ # passes; skipped/cancelled/failure ALL block. A secrets gate that a
755
+ # skipped job can satisfy is the state this ticket exists to remove.
756
+ if [[ "${{ needs.detect-secrets.result }}" != "success" ]]; then
757
+ echo "::error::detect-secrets did not pass (result: ${{ needs.detect-secrets.result }}) - fail-closed (OMN-18669)"
758
+ exit 1
759
+ fi
643
760
  migration_freeze="${{ needs.migration-freeze.result }}"
644
761
  lint="${{ needs.lint.result }}"
645
762
  pyright="${{ needs.pyright.result }}"
@@ -36,6 +36,10 @@ on:
36
36
  branches: [main, dev]
37
37
  merge_group:
38
38
 
39
+ concurrency:
40
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
41
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
42
+
39
43
  permissions:
40
44
  contents: read
41
45
 
@@ -9,6 +9,10 @@ on:
9
9
  branches: [main, 'hotfix/**']
10
10
  merge_group:
11
11
 
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
14
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
15
+
12
16
  jobs:
13
17
  call:
14
18
  uses: OmniNode-ai/omnibase_core/.github/workflows/validate-docs.yml@main
@@ -6,6 +6,10 @@ on:
6
6
  branches:
7
7
  - main
8
8
 
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
11
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
12
+
9
13
  permissions:
10
14
  contents: read
11
15
 
@@ -35,8 +35,12 @@ on:
35
35
  pull_request:
36
36
  branches: [dev]
37
37
 
38
+ concurrency:
39
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
40
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
41
+
38
42
  jobs:
39
43
  kb-doc-gate:
40
- uses: OmniNode-ai/omniclaude/.github/workflows/kb-doc-gate-reusable.yml@6f965a67ea2873fd76df955bca54b3a6472d2a91
44
+ uses: OmniNode-ai/omniclaude/.github/workflows/kb-doc-gate-reusable.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
41
45
  with:
42
46
  mode: strict
@@ -12,6 +12,10 @@ on:
12
12
  pull_request:
13
13
  types: [opened, edited, synchronize]
14
14
 
15
+ concurrency:
16
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
17
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
18
+
15
19
  jobs:
16
20
  main-target-guard:
17
21
  name: main-target-guard
@@ -11,6 +11,10 @@ on:
11
11
  merge_group:
12
12
  workflow_dispatch:
13
13
 
14
+ concurrency:
15
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
16
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
17
+
14
18
  env:
15
19
  PYTHON_VERSION: "3.12"
16
20
  UV_VERSION: "0.8.3"
@@ -0,0 +1,111 @@
1
+ ---
2
+ # SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
3
+ # SPDX-License-Identifier: MIT
4
+ #
5
+ # PYPI DEPENDENCY-PIN RESOLVABILITY, BEFORE MERGE. OMN-19655.
6
+ #
7
+ # WHY THIS EXISTS
8
+ # The release workflow already refuses to publish a wheel whose declared
9
+ # dependencies cannot be installed from the published PyPI index
10
+ # (scripts/ci/verify_pypi_pin_resolvability.py, OMN-14070 / OMN-18034). That
11
+ # step runs AFTER the merge, so it detects and never enforces (CLAUDE.md rule
12
+ # 5). Twice in two days a pull request raised omnimarket's omnibase-core floor
13
+ # to a version no published omnibase-infra pinned (omnimarket#2819 on
14
+ # 2026-09-24, omnimarket#2896 on 2026-09-25), merged green, and then failed
15
+ # every release on merge until an upstream release caught up.
16
+ #
17
+ # This job runs the SAME script on the pull request's own wheel, so the
18
+ # verdict before merge is the verdict the release job would reach after it.
19
+ # There is one implementation; this file is only a caller.
20
+ #
21
+ # WHEN IT JUDGES
22
+ # On a pull request it judges when the change touches pyproject.toml, uv.lock,
23
+ # the script or this file, and reports "not applicable" (success) otherwise:
24
+ # a change that moves no declared dependency cannot change what resolves. The
25
+ # nightly schedule judges dev unconditionally, because the index moves under
26
+ # an unchanged pyproject.toml (a yank, or a sibling's new exact pin).
27
+ #
28
+ # NO `paths:` FILTER AND NO JOB-LEVEL `if:`, deliberately, so this context is
29
+ # minted on every pull request and can be made required without wedging the
30
+ # pull requests it does not apply to.
31
+
32
+ name: PyPI Pin Resolvability
33
+
34
+ on:
35
+ pull_request:
36
+ merge_group:
37
+ schedule:
38
+ # 06:23 UTC daily, off the hour and before the 07:11 release train.
39
+ - cron: "23 6 * * *"
40
+ workflow_dispatch:
41
+
42
+ concurrency:
43
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
44
+ cancel-in-progress: true
45
+
46
+ permissions:
47
+ contents: read
48
+
49
+ jobs:
50
+ pin-resolvability:
51
+ name: pypi-pin-resolvability
52
+ # OMNI_RUNNER_SELECTOR_V1 - trusted CI defaults to self-hosted omnibase-ci;
53
+ # public forks default to ubuntu-latest. The untrusted test is the FORK
54
+ # test and only the fork test (OMN-18205). Read live from the routing
55
+ # seam; this workflow never writes a routing variable.
56
+ runs-on: >-
57
+ ${{
58
+ (github.event_name == 'pull_request' &&
59
+ github.event.pull_request.head.repo.full_name != github.repository)
60
+ && fromJSON(vars.OMNI_PUBLIC_PR_RUNS_ON_JSON || '["ubuntu-latest"]')
61
+ || fromJSON(vars.OMNI_TRUSTED_CI_RUNS_ON_JSON || '["self-hosted","omnibase-ci"]')
62
+ }}
63
+ timeout-minutes: 30
64
+ steps:
65
+ - name: Checkout
66
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
67
+ with:
68
+ # The pull_request checkout is the synthetic merge commit; its first
69
+ # parent is the base branch tip, so HEAD^1..HEAD is exactly the change
70
+ # this pull request makes to the base as it stands now.
71
+ fetch-depth: 2
72
+ persist-credentials: false
73
+
74
+ - name: Decide whether the declared dependencies can have changed
75
+ id: scope
76
+ env:
77
+ EVENT_NAME: ${{ github.event_name }}
78
+ run: |
79
+ set -euo pipefail
80
+ if [ "${EVENT_NAME}" != "pull_request" ]; then
81
+ echo "applies=true" >>"${GITHUB_OUTPUT}"
82
+ echo "event ${EVENT_NAME}: judging unconditionally"
83
+ exit 0
84
+ fi
85
+ changed=$(git diff --name-only HEAD^1 HEAD)
86
+ printf 'changed files:\n%s\n' "${changed}"
87
+ if printf '%s\n' "${changed}" | grep -Eq \
88
+ '^(pyproject\.toml|uv\.lock|scripts/ci/verify_pypi_pin_resolvability\.py|\.github/workflows/pin-resolvability-gate\.yml)$'; then
89
+ echo "applies=true" >>"${GITHUB_OUTPUT}"
90
+ else
91
+ echo "applies=false" >>"${GITHUB_OUTPUT}"
92
+ echo "::notice title=PyPI pin resolvability::not applicable: this change touches no declared dependency"
93
+ fi
94
+
95
+ - name: Install uv
96
+ if: steps.scope.outputs.applies == 'true'
97
+ uses: astral-sh/setup-uv@v7
98
+ with:
99
+ python-version: '3.12'
100
+
101
+ - name: Build the wheel this change would release
102
+ if: steps.scope.outputs.applies == 'true'
103
+ run: uv build --wheel --out-dir "${RUNNER_TEMP}/pin-resolvability-dist"
104
+
105
+ - name: Verify PyPI dependency-pin resolvability (OMN-14070, OMN-19655)
106
+ if: steps.scope.outputs.applies == 'true'
107
+ env:
108
+ # Same budget the release job's step uses (OMN-16047): a timeout is a
109
+ # throughput fault, reported as such, never as a broken pin.
110
+ PYPI_PIN_RESOLVE_TIMEOUT_SECONDS: '900'
111
+ run: python3 scripts/ci/verify_pypi_pin_resolvability.py "${RUNNER_TEMP}/pin-resolvability-dist"
@@ -10,6 +10,10 @@ on:
10
10
  merge_group:
11
11
  types: [checks_requested]
12
12
 
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
15
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
16
+
13
17
  jobs:
14
18
  pr-title:
15
19
  if: github.event_name == 'pull_request'
@@ -9,6 +9,10 @@ on:
9
9
  branches: [main, 'hotfix/**']
10
10
  merge_group:
11
11
 
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
14
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
15
+
12
16
  jobs:
13
17
  pre-commit:
14
18
  runs-on: ubuntu-latest
@@ -34,9 +34,13 @@ on:
34
34
  pull_request:
35
35
  branches: [dev]
36
36
 
37
+ concurrency:
38
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
39
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
40
+
37
41
  jobs:
38
42
  public-repo-hygiene:
39
- uses: OmniNode-ai/omniclaude/.github/workflows/public-repo-hygiene-reusable.yml@5003030a79b410a0b08337c9f273b53e0db807e3
43
+ uses: OmniNode-ai/omniclaude/.github/workflows/public-repo-hygiene-reusable.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
40
44
  with:
41
45
  mode: report
42
46
  secrets: inherit
@@ -92,6 +92,24 @@ jobs:
92
92
  exit 1
93
93
  }
94
94
 
95
+ - name: Verify PyPI dependency-pin resolvability (OMN-14070, OMN-19655)
96
+ # This repository published to PyPI with no resolvability check at all
97
+ # until OMN-19655, while its four publishing siblings refused a wheel
98
+ # whose declared dependencies cannot be installed from the published
99
+ # index (omnimarket 0.4.6 pinned a nonexistent omnibase-compat, OMN-14064;
100
+ # omnimarket 0.4.21-0.4.24 needed an omnibase-core no published
101
+ # omnibase-infra allowed, OMN-18034). The script is vendored
102
+ # byte-for-byte from omnibase_infra and is the same one
103
+ # pin-resolvability-gate.yml runs before merge, so the pre-merge and
104
+ # release verdicts are one implementation. It installs the built wheel
105
+ # with `uv pip install` into a bare scratch venv, where
106
+ # [tool.uv.sources] is unreachable, so a broken pin fails here, before
107
+ # `uv publish` runs. A timeout is reported as a throughput fault, never
108
+ # as a broken pin (OMN-16047).
109
+ env:
110
+ PYPI_PIN_RESOLVE_TIMEOUT_SECONDS: '900'
111
+ run: python3 scripts/ci/verify_pypi_pin_resolvability.py dist/
112
+
95
113
  - name: Publish to PyPI
96
114
  run: |
97
115
  uv publish --token "$UV_PUBLISH_TOKEN" dist/*.whl dist/*.tar.gz
@@ -0,0 +1,39 @@
1
+ # SPDX-FileCopyrightText: 2026 OmniNode.ai Inc.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ # Secrets Baseline Wiring Gate — thin caller. OMN-18669.
5
+ #
6
+ # This repository carries `.secrets.baseline`. That file is the allowlist a
7
+ # detect-secrets scan is judged against, and on its own it is inert: it blocks
8
+ # nothing, it proves nothing, and it looks exactly like a repository that is
9
+ # protected. Measured 2026-09-18 across the registry, one repo carried a
10
+ # baseline no hook and no workflow read; a full scan against it surfaced 47
11
+ # findings in 18 files nothing had ever been asked to approve.
12
+ #
13
+ # So this gate refuses the silent state: a repo carrying the baseline owes BOTH
14
+ # a pre-commit entry and a CI workflow that read it, and neither substitutes for
15
+ # the other. A repo with no baseline passes — the gate never demands one.
16
+ #
17
+ # Validator + reusable workflow live in omniclaude, pinned by immutable SHA and
18
+ # never @main: omniclaude's main is release-synced and does not carry either.
19
+ # The pin is a SINGLE source of truth — the reusable checks its validator out at
20
+ # github.job_workflow_sha, i.e. this very SHA — so advancing the gate is one
21
+ # line here, plus the matching `rev:` in .pre-commit-config.yaml, in one PR.
22
+ #
23
+ # Surfaced context: 'secrets-baseline-wiring / secrets-baseline-wiring' (this
24
+ # job's id / the reusable job's name). Removing this file removes the CI half
25
+ # and the local hook then fails the repo on its own next commit.
26
+
27
+ name: Secrets Baseline Wiring Gate
28
+
29
+ on:
30
+ pull_request:
31
+ branches: [dev]
32
+
33
+ concurrency:
34
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
35
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
36
+
37
+ jobs:
38
+ secrets-baseline-wiring:
39
+ uses: OmniNode-ai/omniclaude/.github/workflows/secrets-baseline-wiring-reusable.yml@7fa1298149c7cd32bf76c4dee0290030110667d2
@@ -17,6 +17,10 @@ on:
17
17
  # Run weekly on Monday at 06:00 UTC
18
18
  - cron: "0 6 * * 1"
19
19
 
20
+ concurrency:
21
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
22
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
23
+
20
24
  jobs:
21
25
  codeql:
22
26
  name: CodeQL
@@ -22,6 +22,10 @@ on:
22
22
  branches: [main, dev]
23
23
  merge_group:
24
24
 
25
+ concurrency:
26
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
27
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
28
+
25
29
  jobs:
26
30
  stale-todo-gate:
27
31
  name: Stale TODO Gate
@@ -30,6 +30,10 @@ on:
30
30
  - main
31
31
  - dev
32
32
 
33
+ concurrency:
34
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
35
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
36
+
33
37
  jobs:
34
38
  todo-audit:
35
39
  name: TODO Audit
@@ -29,6 +29,10 @@ on:
29
29
  branches: [main, dev]
30
30
  merge_group:
31
31
 
32
+ concurrency:
33
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
34
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
35
+
32
36
  permissions:
33
37
  contents: read
34
38
 
@@ -12,6 +12,10 @@ on:
12
12
  merge_group:
13
13
  workflow_dispatch:
14
14
 
15
+ concurrency:
16
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
17
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
18
+
15
19
  jobs:
16
20
  validate-validator-requirements:
17
21
  name: Enforce validator-requirements.yaml (OMN-13291)