omninode-memory 0.6.4__tar.gz → 0.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. omninode_memory-0.7.0/.github/workflows/build-and-push-migrate-image.yml +42 -0
  2. omninode_memory-0.7.0/.github/workflows/contract-validation.yml +135 -0
  3. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/pre-commit.yml +2 -2
  4. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/release-dry-run.yml +1 -1
  5. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/release.yml +1 -1
  6. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/test.yml +23 -23
  7. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.pre-commit-config.yaml +42 -0
  8. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/CLAUDE.md +13 -1
  9. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/PKG-INFO +4 -4
  10. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +13 -3
  11. omninode_memory-0.7.0/deployment/docker/Dockerfile.migrate +16 -0
  12. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/handler_reuse_matrix.md +0 -5
  13. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/pyproject.toml +4 -4
  14. omninode_memory-0.7.0/scripts/check_no_hardcoded_bolt.sh +34 -0
  15. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validate_no_transport_imports.py +1 -1
  16. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/check_ai_slop.py +0 -1
  17. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_http_imports.py +2 -2
  18. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_kafka_imports.py +1 -4
  19. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_model_locations.py +6 -4
  20. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_naming.py +2 -2
  21. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_secrets.py +1 -1
  22. omninode_memory-0.7.0/scripts/validation/validate_spdx_headers.py +39 -0
  23. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/__init__.py +7 -1
  24. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_error_code.py +9 -3
  25. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/__init__.py +2 -2
  26. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/__init__.py +2 -2
  27. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +3 -3
  28. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +3 -3
  29. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_valkey.py +3 -1
  30. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/handler_intent.py +3 -3
  31. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/models/model_handler_intent_config.py +7 -7
  32. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_indexed_event.py +2 -0
  33. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/nodes/__init__.py +20 -20
  34. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/__init__.py +1 -1
  35. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/contract.yaml +1 -1
  36. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/models/model_request.py +1 -1
  37. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/models/model_response.py +1 -1
  38. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_filesystem_crawler_effect}/__init__.py +3 -3
  39. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_filesystem_crawler_effect}/contract.yaml +2 -2
  40. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_filesystem_crawler_effect}/handler_filesystem_crawler.py +3 -3
  41. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_filesystem_crawler_effect}/models/__init__.py +2 -2
  42. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_event_consumer_effect}/__init__.py +2 -2
  43. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_event_consumer_effect}/contract.yaml +2 -2
  44. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_event_consumer_effect}/handler_intent_event_consumer.py +7 -7
  45. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_event_consumer_effect}/models/__init__.py +2 -2
  46. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_event_consumer_effect}/utils/__init__.py +1 -1
  47. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_event_consumer_effect}/utils/util_event_mapper.py +1 -1
  48. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/__init__.py +8 -6
  49. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/contract.yaml +1 -1
  50. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/handlers/__init__.py +3 -3
  51. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/handlers/handler_intent_query.py +7 -7
  52. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/models/__init__.py +1 -1
  53. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/models/model_handler_intent_query_config.py +1 -1
  54. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/registry/__init__.py +2 -2
  55. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/registry/registry_intent_query_effect.py +13 -9
  56. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/utils/__init__.py +1 -1
  57. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_query_effect}/utils/util_intent_mapping.py +1 -1
  58. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_storage_effect}/adapters/adapter_intent_storage.py +4 -4
  59. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_storage_effect}/contract.yaml +3 -3
  60. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_kreuzberg_parse_effect}/contract.yaml +2 -2
  61. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_kreuzberg_parse_effect}/handler_kreuzberg_parse.py +5 -5
  62. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_kreuzberg_parse_effect}/models/__init__.py +2 -2
  63. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/__init__.py +2 -2
  64. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/adapters/__init__.py +2 -2
  65. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/adapters/adapter_postgres_deactivate_memory.py +2 -2
  66. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/adapters/adapter_runtime_tick_memory.py +2 -2
  67. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/contract.yaml +6 -6
  68. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/handlers/__init__.py +3 -3
  69. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/handlers/handler_memory_archive.py +1 -1
  70. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/handlers/handler_memory_expire.py +1 -1
  71. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/validators/__init__.py +1 -1
  72. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/__init__.py +1 -1
  73. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/clients/__init__.py +1 -1
  74. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/clients/embedding_client.py +1 -1
  75. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/contract.yaml +3 -3
  76. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/handler_db_mock.py +1 -1
  77. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/handler_graph_mock.py +1 -1
  78. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/handler_memory_retrieval.py +10 -8
  79. omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +365 -0
  80. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/handler_qdrant_mock.py +1 -1
  81. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/models/__init__.py +2 -0
  82. omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +94 -0
  83. omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +106 -0
  84. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_memory_retrieval_request.py +1 -1
  85. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_memory_retrieval_response.py +1 -1
  86. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_storage_effect}/adapters/__init__.py +1 -1
  87. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_storage_effect}/adapters/adapter_filesystem.py +7 -7
  88. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_storage_effect}/contract.yaml +5 -5
  89. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_storage_effect}/models/model_memory_storage_request.py +1 -1
  90. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_storage_effect}/models/model_memory_storage_response.py +1 -1
  91. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_navigation_history_reducer}/__init__.py +5 -3
  92. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_navigation_history_reducer}/handlers/__init__.py +2 -0
  93. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_navigation_history_reducer}/handlers/handler_navigation_history_reducer.py +5 -3
  94. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_navigation_history_reducer}/models/__init__.py +2 -0
  95. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_navigation_history_reducer}/models/model_navigation_history_request.py +3 -1
  96. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_navigation_history_reducer}/models/model_navigation_history_response.py +2 -0
  97. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_navigation_history_reducer}/models/model_navigation_session.py +2 -0
  98. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_navigation_history_reducer}/node_navigation_history_reducer.py +3 -1
  99. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_semantic_analyzer_compute}/__init__.py +4 -4
  100. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_semantic_analyzer_compute}/contract.yaml +1 -1
  101. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_semantic_analyzer_compute}/handlers/__init__.py +1 -1
  102. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_semantic_analyzer_compute}/handlers/handler_semantic_compute.py +1 -1
  103. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_semantic_analyzer_compute}/node_semantic_analyzer_compute.py +1 -1
  104. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_similarity_compute}/__init__.py +4 -4
  105. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_similarity_compute}/contract.yaml +1 -1
  106. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_similarity_compute}/handlers/__init__.py +3 -3
  107. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_similarity_compute}/handlers/handler_similarity_compute.py +2 -2
  108. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_similarity_compute}/models/model_similarity_compute_request.py +1 -1
  109. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_similarity_compute}/models/model_similarity_compute_response.py +1 -1
  110. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_similarity_compute}/node_similarity_compute.py +1 -1
  111. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_handler_intent.py +2 -2
  112. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +1 -1
  113. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/contract_topics.py +13 -11
  114. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/dispatch_handlers.py +9 -7
  115. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/introspection.py +9 -9
  116. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/message_type_registration.py +10 -10
  117. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/plugin.py +74 -7
  118. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/wiring.py +2 -2
  119. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/tools/stubs/contract_validator.py +1 -1
  120. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/observability.py +1 -1
  121. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/pii_detector.py +6 -2
  122. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/audit/io_audit_whitelist.yaml +5 -5
  123. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/audit/transport_import_whitelist.yaml +5 -5
  124. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/conftest.py +8 -8
  125. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/nodes/test_kreuzberg_parse_effect.py +4 -4
  126. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/nodes/test_navigation_history_reducer_integration.py +6 -4
  127. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/test_handler_lifecycle_pattern.py +1 -1
  128. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/test_node_agent_coordinator.py +2 -2
  129. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/test_frozen_boundary_models.py +2 -2
  130. {omninode_memory-0.6.4/tests/nodes/filesystem_crawler_effect → omninode_memory-0.7.0/tests/nodes/node_filesystem_crawler_effect}/test_handler_filesystem_crawler.py +3 -3
  131. {omninode_memory-0.6.4/tests/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/tests/nodes/node_intent_event_consumer_effect}/test_handler_intent_event_consumer.py +3 -3
  132. {omninode_memory-0.6.4/tests/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/tests/nodes/node_intent_event_consumer_effect}/test_model_consumer_health.py +1 -1
  133. {omninode_memory-0.6.4/tests/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/tests/nodes/node_intent_event_consumer_effect}/test_util_event_mapper.py +1 -1
  134. {omninode_memory-0.6.4/tests/nodes/intent_query_effect → omninode_memory-0.7.0/tests/nodes/node_intent_query_effect}/test_handler_intent_query_integration.py +45 -31
  135. {omninode_memory-0.6.4/tests/nodes/intent_storage_effect → omninode_memory-0.7.0/tests/nodes/node_intent_storage_effect}/test_handler_intent_storage_adapter_integration.py +2 -2
  136. {omninode_memory-0.6.4/tests/nodes/memory_retrieval_effect → omninode_memory-0.7.0/tests/nodes/node_memory_retrieval_effect}/test_memory_retrieval_effect.py +6 -6
  137. {omninode_memory-0.6.4/tests/nodes/memory_storage_effect → omninode_memory-0.7.0/tests/nodes/node_memory_storage_effect}/test_memory_storage_effect.py +3 -3
  138. {omninode_memory-0.6.4/tests/nodes/navigation_history_reducer → omninode_memory-0.7.0/tests/nodes/node_navigation_history_reducer}/test_navigation_history_reducer_unit.py +5 -3
  139. {omninode_memory-0.6.4/tests/nodes/similarity_compute → omninode_memory-0.7.0/tests/nodes/node_similarity_compute}/test_similarity_compute.py +4 -4
  140. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_contract_version.py +20 -12
  141. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_node_imports.py +4 -4
  142. omninode_memory-0.7.0/tests/unit/handlers/__init__.py +2 -0
  143. omninode_memory-0.7.0/tests/unit/handlers/adapters/__init__.py +2 -0
  144. omninode_memory-0.7.0/tests/unit/nodes/__init__.py +2 -0
  145. omninode_memory-0.7.0/tests/unit/nodes/test_handler_qdrant.py +272 -0
  146. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +5 -5
  147. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +2 -2
  148. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +1 -1
  149. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +1 -1
  150. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +1 -1
  151. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +1 -1
  152. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +1 -1
  153. omninode_memory-0.7.0/tests/unit/nodes/test_model_handler_qdrant_config.py +86 -0
  154. omninode_memory-0.7.0/tests/unit/runtime/__init__.py +2 -0
  155. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_contract_topics.py +23 -22
  156. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_message_type_registration.py +16 -16
  157. omninode_memory-0.7.0/tests/unit/runtime/test_plugin_memory_validate_handshake.py +44 -0
  158. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_validate_ci_precommit_alignment.py +4 -0
  159. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/uv.lock +38 -27
  160. omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -54
  161. omninode_memory-0.6.4/tests/nodes/navigation_history_reducer/__init__.py +0 -0
  162. omninode_memory-0.6.4/tests/unit/handlers/__init__.py +0 -0
  163. omninode_memory-0.6.4/tests/unit/handlers/adapters/__init__.py +0 -0
  164. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.claude/architecture-handshake.md +0 -0
  165. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.env.example +0 -0
  166. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.flake8 +0 -0
  167. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  168. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  169. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  170. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/dependabot.yml +0 -0
  171. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/required-checks.yaml +0 -0
  172. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/auto-tag-on-merge.yml +0 -0
  173. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.gitignore +0 -0
  174. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.secrets.baseline +0 -0
  175. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.serena/memories/project_overview.md +0 -0
  176. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.serena/memories/suggested_commands.md +0 -0
  177. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.serena/project.yml +0 -0
  178. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.yamlfmt +0 -0
  179. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/CHANGELOG.md +0 -0
  180. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/CODE_OF_CONDUCT.md +0 -0
  181. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/CONTRIBUTING.md +0 -0
  182. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/LICENSE +0 -0
  183. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/README.md +0 -0
  184. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/SECURITY.md +0 -0
  185. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/contract.yaml +0 -0
  186. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
  187. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations/002_create_memories_table.sql +0 -0
  188. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
  189. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
  190. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
  191. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
  192. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docker-compose.prod.yml +0 -0
  193. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docker-compose.yml +0 -0
  194. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/INDEX.md +0 -0
  195. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/PERFORMANCE_TESTING.md +0 -0
  196. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/architecture/ARCH_002_KAFKA_ABSTRACTION.md +0 -0
  197. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md +0 -0
  198. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/ci/CI_MONITORING_GUIDE.md +0 -0
  199. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/db-split/fk-audit-omn-2069.md +0 -0
  200. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/environment_variables.md +0 -0
  201. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/pii_handling.md +0 -0
  202. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/runtime/RUNTIME_PLUGINS.md +0 -0
  203. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/stub_protocols.md +0 -0
  204. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/examples/__init__.py +0 -0
  205. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/examples/advanced_architecture_demo.py +0 -0
  206. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/pyrightconfig.json +0 -0
  207. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/check_migration_freeze.sh +0 -0
  208. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validate_ci_precommit_alignment.py +0 -0
  209. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_enum_casing.py +0 -0
  210. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_no_backward_compatibility.py +0 -0
  211. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_pydantic_patterns.py +0 -0
  212. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_single_class_per_file.py +0 -0
  213. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/_compat_imports.py +0 -0
  214. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/audit/__init__.py +0 -0
  215. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/audit/__main__.py +0 -0
  216. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/audit/io_audit.py +0 -0
  217. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/bootstrap.py +0 -0
  218. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/__init__.py +0 -0
  219. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/crawl/__init__.py +0 -0
  220. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
  221. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
  222. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
  223. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
  224. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_context_item_type.py +0 -0
  225. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_data_type.py +0 -0
  226. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
  227. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
  228. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
  229. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
  230. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
  231. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_migration_status.py +0 -0
  232. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_node_type.py +0 -0
  233. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_operation_status.py +0 -0
  234. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_priority_level.py +0 -0
  235. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
  236. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
  237. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_severity.py +0 -0
  238. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_subscription_status.py +0 -0
  239. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_trust_level.py +0 -0
  240. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/errors/__init__.py +0 -0
  241. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/errors/embedding_errors.py +0 -0
  242. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
  243. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
  244. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
  245. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
  246. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
  247. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
  248. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/handler_subscription.py +0 -0
  249. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/models/__init__.py +0 -0
  250. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/__init__.py +0 -0
  251. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/__init__.py +0 -0
  252. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
  253. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
  254. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
  255. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
  256. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
  257. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
  258. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
  259. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/__init__.py +0 -0
  260. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
  261. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_embedding_config.py +0 -0
  262. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
  263. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
  264. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
  265. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
  266. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
  267. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_postgres_config.py +0 -0
  268. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
  269. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
  270. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
  271. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
  272. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
  273. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/container/__init__.py +0 -0
  274. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/__init__.py +0 -0
  275. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
  276. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
  277. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
  278. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
  279. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
  280. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/__init__.py +0 -0
  281. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_context.py +0 -0
  282. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
  283. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
  284. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_request.py +0 -0
  285. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_response.py +0 -0
  286. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
  287. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
  288. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_provenance.py +0 -0
  289. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/__init__.py +0 -0
  290. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_crawl_state_record.py +0 -0
  291. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
  292. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
  293. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
  294. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
  295. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
  296. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
  297. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/types.py +0 -0
  298. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/events/__init__.py +0 -0
  299. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
  300. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
  301. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/__init__.py +0 -0
  302. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
  303. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_configuration.py +0 -0
  304. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
  305. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_error_details.py +0 -0
  306. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
  307. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_health_response.py +0 -0
  308. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
  309. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
  310. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
  311. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_notes.py +0 -0
  312. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_priority.py +0 -0
  313. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
  314. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_semver.py +0 -0
  315. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
  316. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_system_health.py +0 -0
  317. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_tags.py +0 -0
  318. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
  319. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
  320. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_user.py +0 -0
  321. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/__init__.py +0 -0
  322. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
  323. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
  324. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
  325. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
  326. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
  327. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/__init__.py +0 -0
  328. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_memory_item.py +0 -0
  329. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_memory_query.py +0 -0
  330. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
  331. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
  332. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
  333. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/scoring/__init__.py +0 -0
  334. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
  335. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
  336. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
  337. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/service/__init__.py +0 -0
  338. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/service/model_service_config.py +0 -0
  339. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/service/model_service_health.py +0 -0
  340. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/service/model_service_registry.py +0 -0
  341. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/__init__.py +0 -0
  342. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/constants.py +0 -0
  343. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
  344. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
  345. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/model_subscription.py +0 -0
  346. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/__init__.py +0 -0
  347. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_audit.py +0 -0
  348. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
  349. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
  350. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_concurrency.py +0 -0
  351. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
  352. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
  353. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
  354. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
  355. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_health_status.py +0 -0
  356. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
  357. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
  358. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_match.py +0 -0
  359. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
  360. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_type.py +0 -0
  361. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
  362. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
  363. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_retry_config.py +0 -0
  364. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
  365. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
  366. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_system_health.py +0 -0
  367. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/nodes/base.py +0 -0
  368. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/models/__init__.py +0 -0
  369. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_filesystem_crawler_effect}/models/model_filesystem_crawl_result.py +0 -0
  370. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_filesystem_crawler_effect}/models/model_filesystem_crawler_config.py +0 -0
  371. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_event_consumer_effect}/models/model_consumer_config.py +0 -0
  372. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_event_consumer_effect}/models/model_consumer_health.py +0 -0
  373. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_storage_effect}/__init__.py +0 -0
  374. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_storage_effect}/adapters/__init__.py +0 -0
  375. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_storage_effect}/models/__init__.py +0 -0
  376. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_storage_effect}/models/model_intent_storage_request.py +0 -0
  377. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_intent_storage_effect}/models/model_intent_storage_response.py +0 -0
  378. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_kreuzberg_parse_effect}/__init__.py +0 -0
  379. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_kreuzberg_parse_effect}/clients/__init__.py +0 -0
  380. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_kreuzberg_parse_effect}/clients/client_kreuzberg.py +0 -0
  381. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_kreuzberg_parse_effect}/models/model_kreuzberg_parse_config.py +0 -0
  382. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_kreuzberg_parse_effect}/models/model_kreuzberg_parse_result.py +0 -0
  383. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_consolidator_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_consolidator_reducer}/__init__.py +0 -0
  384. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/handlers/handler_memory_tick.py +0 -0
  385. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/models/__init__.py +0 -0
  386. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/validators/validator_lifecycle_transition.py +0 -0
  387. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/__init__.py +0 -0
  388. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_embedding_client_config.py +0 -0
  389. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_handler_db_mock_config.py +0 -0
  390. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_handler_graph_mock_config.py +0 -0
  391. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_handler_qdrant_mock_config.py +0 -0
  392. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_storage_effect}/__init__.py +0 -0
  393. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_storage_effect}/models/__init__.py +0 -0
  394. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_semantic_analyzer_compute}/models/__init__.py +0 -0
  395. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_semantic_analyzer_compute}/models/model_semantic_analyzer_compute_request.py +0 -0
  396. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_semantic_analyzer_compute}/models/model_semantic_analyzer_compute_response.py +0 -0
  397. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_similarity_compute}/models/__init__.py +0 -0
  398. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.7.0/src/omnimemory/nodes/node_similarity_compute}/models/model_handler_similarity_compute_config.py +0 -0
  399. {omninode_memory-0.6.4/src/omnimemory/nodes/statistics_reducer → omninode_memory-0.7.0/src/omnimemory/nodes/node_statistics_reducer}/__init__.py +0 -0
  400. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/__init__.py +0 -0
  401. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/base_protocols.py +0 -0
  402. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/data_models.py +0 -0
  403. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/error_models.py +0 -0
  404. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_crawl_state_repository.py +0 -0
  405. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_embedding.py +0 -0
  406. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
  407. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
  408. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/__init__.py +0 -0
  409. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/adapters.py +0 -0
  410. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/secrets.py +0 -0
  411. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/settings.py +0 -0
  412. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/tools/__init__.py +0 -0
  413. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/tools/contract_linter.py +0 -0
  414. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/tools/stubs/__init__.py +0 -0
  415. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/__init__.py +0 -0
  416. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/audit_logger.py +0 -0
  417. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/concurrency.py +0 -0
  418. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/db_url.py +0 -0
  419. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/error_sanitizer.py +0 -0
  420. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/handler_constants.py +0 -0
  421. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/health_manager.py +0 -0
  422. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/resource_manager.py +0 -0
  423. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/retry_utils.py +0 -0
  424. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/__init__.py +0 -0
  425. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/__init__.py +0 -0
  426. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/__init__.py +0 -0
  427. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
  428. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
  429. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
  430. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
  431. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
  432. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
  433. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/test_handler_intent.py +0 -0
  434. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/test_handler_semantic_compute.py +0 -0
  435. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/__init__.py +0 -0
  436. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/conftest.py +0 -0
  437. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/nodes/__init__.py +0 -0
  438. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
  439. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/test_entry_point_discovery.py +0 -0
  440. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/test_handler_subscription.py +0 -0
  441. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/__init__.py +0 -0
  442. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/contracts/__init__.py +0 -0
  443. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/contracts/test_extended_contracts.py +0 -0
  444. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/events/__init__.py +0 -0
  445. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/events/test_model_intent_classified_event.py +0 -0
  446. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/nodes/__init__.py +0 -0
  447. {omninode_memory-0.6.4/tests/nodes/filesystem_crawler_effect → omninode_memory-0.7.0/tests/nodes/node_filesystem_crawler_effect}/__init__.py +0 -0
  448. {omninode_memory-0.6.4/tests/nodes/intent_event_consumer_effect → omninode_memory-0.7.0/tests/nodes/node_intent_event_consumer_effect}/__init__.py +0 -0
  449. {omninode_memory-0.6.4/tests/nodes/intent_query_effect → omninode_memory-0.7.0/tests/nodes/node_intent_query_effect}/__init__.py +0 -0
  450. {omninode_memory-0.6.4/tests/nodes/intent_query_effect → omninode_memory-0.7.0/tests/nodes/node_intent_query_effect}/conftest.py +0 -0
  451. {omninode_memory-0.6.4/tests/nodes/intent_storage_effect → omninode_memory-0.7.0/tests/nodes/node_intent_storage_effect}/__init__.py +0 -0
  452. {omninode_memory-0.6.4/tests/nodes/memory_retrieval_effect → omninode_memory-0.7.0/tests/nodes/node_memory_retrieval_effect}/__init__.py +0 -0
  453. {omninode_memory-0.6.4/tests/nodes/memory_storage_effect → omninode_memory-0.7.0/tests/nodes/node_memory_storage_effect}/__init__.py +0 -0
  454. {omninode_memory-0.6.4/tests/unit/runtime → omninode_memory-0.7.0/tests/nodes/node_navigation_history_reducer}/__init__.py +0 -0
  455. {omninode_memory-0.6.4/tests/nodes/similarity_compute → omninode_memory-0.7.0/tests/nodes/node_similarity_compute}/__init__.py +0 -0
  456. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_bootstrap.py +0 -0
  457. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_concurrency.py +0 -0
  458. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_config_models.py +0 -0
  459. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_contract_validation.py +0 -0
  460. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_db_url.py +0 -0
  461. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_foundation.py +0 -0
  462. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_health_manager.py +0 -0
  463. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_migration_progress.py +0 -0
  464. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_node_enforcement.py +0 -0
  465. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_observability_metrics.py +0 -0
  466. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_performance.py +0 -0
  467. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_resource_manager.py +0 -0
  468. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_secrets_provider.py +0 -0
  469. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_semantic_compute_policy_config.py +0 -0
  470. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_settings.py +0 -0
  471. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_validation_scripts.py +0 -0
  472. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/__init__.py +0 -0
  473. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
  474. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/handlers/test_subscription_typing.py +0 -0
  475. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
  476. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
  477. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/conftest.py +0 -0
  478. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_adapters.py +0 -0
  479. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
  480. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_introspection.py +0 -0
  481. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_plugin.py +0 -0
  482. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_wiring.py +0 -0
  483. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_contract_linter.py +0 -0
  484. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
  485. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_ingestion_models.py +0 -0
  486. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_io_audit.py +0 -0
  487. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_scope_mapping_config.py +0 -0
  488. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_sql_placeholders.py +0 -0
  489. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_validate_kafka_imports.py +0 -0
  490. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_validate_no_transport_imports.py +0 -0
  491. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/validate_architecture_improvements.py +0 -0
  492. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/validate_foundation.py +0 -0
  493. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/validate_foundation_isolated.py +0 -0
  494. {omninode_memory-0.6.4 → omninode_memory-0.7.0}/validate_foundation_minimal.py +0 -0
@@ -0,0 +1,42 @@
1
+ # SPDX-License-Identifier: MIT
2
+ # Copyright (c) 2026 OmniNode Team
3
+ name: Build and push migration image to ECR
4
+ on:
5
+ push:
6
+ branches: [main]
7
+ paths:
8
+ - 'deployment/docker/Dockerfile.migrate'
9
+ - 'deployment/database/migrations/**'
10
+ - '.github/workflows/build-and-push-migrate-image.yml'
11
+ workflow_dispatch:
12
+ concurrency:
13
+ group: build-migrate-${{ github.ref }}
14
+ cancel-in-progress: false
15
+ permissions:
16
+ id-token: write
17
+ contents: read
18
+ env:
19
+ AWS_REGION: us-east-1
20
+ ECR_REGISTRY: ${{ vars.AWS_ACCOUNT_ID }}.dkr.ecr.us-east-1.amazonaws.com
21
+ ECR_REPOSITORY: omnimemory-migrate
22
+ jobs:
23
+ build-and-push:
24
+ runs-on: ubuntu-latest
25
+ timeout-minutes: 15
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ - uses: aws-actions/configure-aws-credentials@v4
29
+ with:
30
+ role-to-assume: arn:aws:iam::${{ vars.AWS_ACCOUNT_ID }}:role/omninode-github-actions-role
31
+ role-session-name: gha-build-migrate-omnimemory
32
+ aws-region: ${{ env.AWS_REGION }}
33
+ - run: aws sts get-caller-identity
34
+ - uses: aws-actions/amazon-ecr-login@v2
35
+ - name: Build and push
36
+ env:
37
+ IMAGE_URI: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}
38
+ COMMIT_SHA: ${{ github.sha }}
39
+ run: |
40
+ docker build -f deployment/docker/Dockerfile.migrate -t "${IMAGE_URI}:${COMMIT_SHA}" -t "${IMAGE_URI}:latest" .
41
+ docker push "${IMAGE_URI}:${COMMIT_SHA}"
42
+ docker push "${IMAGE_URI}:latest"
@@ -0,0 +1,135 @@
1
+ # SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ # Contract Validation Gate
5
+ #
6
+ # Validates ONEX ticket contracts for PRs in omnimemory using the
7
+ # reusable composite action from onex_change_control.
8
+ #
9
+ # Required status check: "contract-validation"
10
+ # Must pass (or skip) before merging to main.
11
+ #
12
+ # The validation is intentionally lenient on missing contracts:
13
+ # - If branch name has no OMN-XXXX ticket ID → skipped
14
+ # - If contracts/<ticket_id>.yaml does not exist → skipped
15
+ # - If contract file exists but fails schema validation → fails
16
+ #
17
+ # This prevents blocking PRs that legitimately have no contract
18
+ # (e.g., dependency bumps, docs-only changes) while enforcing schema
19
+ # correctness when a contract is present.
20
+
21
+ name: Contract Validation
22
+
23
+ on:
24
+ pull_request:
25
+ branches: [main, develop]
26
+ merge_group:
27
+ workflow_dispatch:
28
+ inputs:
29
+ branch-name:
30
+ description: "Branch name to validate contracts for (defaults to current branch)"
31
+ required: false
32
+ default: ""
33
+
34
+ # Allow concurrent runs on different PRs; cancel stale runs on the same ref
35
+ concurrency:
36
+ group: contract-validation-${{ github.ref }}
37
+ cancel-in-progress: true
38
+
39
+ jobs:
40
+ contract-validation:
41
+ name: contract-validation
42
+ # OMNINODE_SELF_HOSTED_RUNS_ON_V1 — do not edit inline; update plan + all occurrences together
43
+ runs-on: >-
44
+ ${{
45
+ (vars.USE_SELF_HOSTED_RUNNERS == 'true' &&
46
+ (github.event_name == 'push' ||
47
+ github.event_name == 'workflow_dispatch' ||
48
+ github.event_name == 'schedule'))
49
+ && fromJSON('["self-hosted","omnibase-ci"]')
50
+ || fromJSON('["ubuntu-latest"]')
51
+ }}
52
+ timeout-minutes: 10
53
+
54
+ steps:
55
+ - name: Auth preflight — confirm onex_change_control action is accessible
56
+ id: auth-preflight
57
+ env:
58
+ GH_TOKEN: ${{ github.token }}
59
+ run: |
60
+ echo "Checking visibility of OmniNode-ai/onex_change_control..."
61
+ if gh api repos/OmniNode-ai/onex_change_control --silent; then
62
+ echo "::notice::onex_change_control repo is accessible."
63
+ else
64
+ echo "::error::Cannot reach OmniNode-ai/onex_change_control. Composite action will not resolve."
65
+ exit 1
66
+ fi
67
+
68
+ - name: Resolve branch name
69
+ id: resolve-branch
70
+ env:
71
+ WORKFLOW_INPUT_BRANCH: ${{ inputs.branch-name }}
72
+ GITHUB_HEAD_REF: ${{ github.head_ref }}
73
+ GITHUB_REF_NAME: ${{ github.ref_name }}
74
+ EVENT_NAME: ${{ github.event_name }}
75
+ run: |
76
+ # merge_group events run on gh-readonly-queue/... branches with no PR head ref.
77
+ # Contract validation is not meaningful in this context — skip immediately.
78
+ if [[ "$EVENT_NAME" == "merge_group" ]]; then
79
+ echo "resolved_branch=" >> "$GITHUB_OUTPUT"
80
+ echo "skip_validation=true" >> "$GITHUB_OUTPUT"
81
+ echo "::notice::merge_group event — contract validation skipped (validated on PR branch instead)."
82
+ exit 0
83
+ fi
84
+
85
+ echo "skip_validation=false" >> "$GITHUB_OUTPUT"
86
+
87
+ # Prefer workflow_dispatch input, then PR head ref, then ref name
88
+ if [[ -n "$WORKFLOW_INPUT_BRANCH" ]]; then
89
+ BRANCH="$WORKFLOW_INPUT_BRANCH"
90
+ elif [[ -n "$GITHUB_HEAD_REF" ]]; then
91
+ BRANCH="$GITHUB_HEAD_REF"
92
+ else
93
+ BRANCH="$GITHUB_REF_NAME"
94
+ fi
95
+ echo "resolved_branch=$BRANCH" >> "$GITHUB_OUTPUT"
96
+ echo "::notice::Resolved branch name: $BRANCH"
97
+
98
+ - name: Run contract validation
99
+ id: validate-contract
100
+ if: steps.resolve-branch.outputs.skip_validation != 'true'
101
+ uses: OmniNode-ai/onex_change_control/.github/actions/validate-contract@main
102
+ with:
103
+ branch-name: ${{ steps.resolve-branch.outputs.resolved_branch }}
104
+ contracts-path: contracts
105
+
106
+ - name: Report validation result
107
+ if: always()
108
+ env:
109
+ TICKET_ID: ${{ steps.validate-contract.outputs.ticket-id }}
110
+ VALIDATION_STATUS: ${{ steps.validate-contract.outputs.validation-status }}
111
+ SKIP_VALIDATION: ${{ steps.resolve-branch.outputs.skip_validation }}
112
+ run: |
113
+ if [[ "$SKIP_VALIDATION" == "true" ]]; then
114
+ echo "::notice::Contract validation SKIPPED — merge_group event."
115
+ exit 0
116
+ fi
117
+ case "$VALIDATION_STATUS" in
118
+ passed)
119
+ echo "::notice::Contract validation PASSED for ticket $TICKET_ID"
120
+ ;;
121
+ skipped)
122
+ if [[ -z "$TICKET_ID" ]]; then
123
+ echo "::notice::Contract validation SKIPPED — no OMN-XXXX ticket ID found in branch name."
124
+ else
125
+ echo "::notice::Contract validation SKIPPED — no contract file found for $TICKET_ID in contracts/."
126
+ fi
127
+ ;;
128
+ failed)
129
+ echo "::error::Contract validation FAILED for ticket $TICKET_ID. See validate-contract step for details."
130
+ exit 1
131
+ ;;
132
+ *)
133
+ echo "::warning::Unexpected validation status: '$VALIDATION_STATUS'. Treating as skipped."
134
+ ;;
135
+ esac
@@ -12,9 +12,9 @@ jobs:
12
12
  pre-commit:
13
13
  runs-on: ubuntu-latest
14
14
  steps:
15
- - uses: actions/checkout@v4
15
+ - uses: actions/checkout@v6
16
16
 
17
- - uses: actions/setup-python@v5
17
+ - uses: actions/setup-python@v6
18
18
  with:
19
19
  python-version: '3.12'
20
20
 
@@ -13,7 +13,7 @@ jobs:
13
13
  dry-run:
14
14
  runs-on: ubuntu-latest
15
15
  steps:
16
- - uses: actions/checkout@v4
16
+ - uses: actions/checkout@v6
17
17
  with:
18
18
  fetch-depth: 0
19
19
  - uses: astral-sh/setup-uv@v7
@@ -22,7 +22,7 @@ jobs:
22
22
  release:
23
23
  runs-on: ubuntu-latest
24
24
  steps:
25
- - uses: actions/checkout@v4
25
+ - uses: actions/checkout@v6
26
26
  with:
27
27
  fetch-depth: 0
28
28
  ref: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref }}
@@ -34,12 +34,12 @@ jobs:
34
34
  #
35
35
  # Phase 2 - Full Test Suite (after Phase 1 completes):
36
36
  # - test: Run all tests (depends on lint, pyright, onex-validation)
37
- # Note: check-handshake runs independently and is evaluated in test-summary,
37
+ # Note: check-handshake runs independently and is evaluated in ci-summary,
38
38
  # NOT in test's needs, because it may be skipped on fork PRs and GitHub Actions
39
39
  # propagates skipped status to dependent jobs.
40
40
  #
41
41
  # Phase 3 - Aggregation:
42
- # - test-summary: Aggregates all job results
42
+ # - ci-summary: Aggregates all job results
43
43
  #
44
44
  # CONFIGURATION SYNC NOTE:
45
45
  # These validations are synchronized with .pre-commit-config.yaml
@@ -84,7 +84,7 @@ jobs:
84
84
 
85
85
  steps:
86
86
  - name: Checkout code
87
- uses: actions/checkout@v4
87
+ uses: actions/checkout@v6
88
88
  with:
89
89
  fetch-depth: 0 # Needed for three-dot diff (merge-base with origin/main)
90
90
 
@@ -101,13 +101,13 @@ jobs:
101
101
 
102
102
  steps:
103
103
  - name: Checkout code
104
- uses: actions/checkout@v4
104
+ uses: actions/checkout@v6
105
105
 
106
106
  - name: Install uv
107
107
  uses: astral-sh/setup-uv@v7
108
108
 
109
109
  - name: Install dependencies
110
- run: uv sync
110
+ run: uv sync --reinstall-package omnibase-core --reinstall-package omnibase-spi --reinstall-package omnibase-infra
111
111
 
112
112
  # SYNC: Pre-commit hook 'ruff-format' at pre-commit stage
113
113
  # Both pre-commit and CI use --check for consistent validation
@@ -132,13 +132,13 @@ jobs:
132
132
 
133
133
  steps:
134
134
  - name: Checkout code
135
- uses: actions/checkout@v4
135
+ uses: actions/checkout@v6
136
136
 
137
137
  - name: Install uv
138
138
  uses: astral-sh/setup-uv@v7
139
139
 
140
140
  - name: Install dependencies
141
- run: uv sync
141
+ run: uv sync --reinstall-package omnibase-core --reinstall-package omnibase-spi --reinstall-package omnibase-infra
142
142
 
143
143
  # SYNC: Pre-commit hook 'pyright-type-check' at pre-push stage
144
144
  # Uses pyrightconfig.json for project-level settings
@@ -153,13 +153,13 @@ jobs:
153
153
 
154
154
  steps:
155
155
  - name: Checkout code
156
- uses: actions/checkout@v4
156
+ uses: actions/checkout@v6
157
157
 
158
158
  - name: Install uv
159
159
  uses: astral-sh/setup-uv@v7
160
160
 
161
161
  - name: Install dependencies
162
- run: uv sync
162
+ run: uv sync --reinstall-package omnibase-core --reinstall-package omnibase-spi --reinstall-package omnibase-infra
163
163
 
164
164
  # SYNC: Pre-commit hook 'validate-pydantic-patterns' at pre-commit stage
165
165
  - name: Validate Pydantic patterns
@@ -222,10 +222,10 @@ jobs:
222
222
 
223
223
  steps:
224
224
  - name: Checkout code
225
- uses: actions/checkout@v4
225
+ uses: actions/checkout@v6
226
226
 
227
227
  - name: Set up Python
228
- uses: actions/setup-python@v5
228
+ uses: actions/setup-python@v6
229
229
  with:
230
230
  python-version: ${{ env.PYTHON_VERSION }}
231
231
 
@@ -245,13 +245,13 @@ jobs:
245
245
 
246
246
  steps:
247
247
  - name: Checkout code
248
- uses: actions/checkout@v4
248
+ uses: actions/checkout@v6
249
249
 
250
250
  - name: Install uv
251
251
  uses: astral-sh/setup-uv@v7
252
252
 
253
253
  - name: Install dependencies
254
- run: uv sync
254
+ run: uv sync --reinstall-package omnibase-core --reinstall-package omnibase-spi --reinstall-package omnibase-infra
255
255
 
256
256
  - name: Find and validate contract YAML files
257
257
  run: |
@@ -275,13 +275,13 @@ jobs:
275
275
 
276
276
  steps:
277
277
  - name: Checkout code
278
- uses: actions/checkout@v4
278
+ uses: actions/checkout@v6
279
279
 
280
280
  - name: Install uv
281
281
  uses: astral-sh/setup-uv@v7
282
282
 
283
283
  - name: Install dependencies
284
- run: uv sync
284
+ run: uv sync --reinstall-package omnibase-core --reinstall-package omnibase-spi --reinstall-package omnibase-infra
285
285
 
286
286
  - name: Run I/O audit
287
287
  run: uv run python -m omnimemory.audit
@@ -295,13 +295,13 @@ jobs:
295
295
  if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name != 'pull_request'
296
296
  steps:
297
297
  - name: Checkout code
298
- uses: actions/checkout@v4
298
+ uses: actions/checkout@v6
299
299
 
300
300
  # Uses default GITHUB_TOKEN which has read access to public repos in the org.
301
301
  # Same pattern as omniclaude ci-cd.yml. If omnibase_core becomes private,
302
302
  # add: token: ${{ secrets.OMNIBASE_CORE_ACCESS_TOKEN }}
303
303
  - name: Checkout omnibase_core
304
- uses: actions/checkout@v4
304
+ uses: actions/checkout@v6
305
305
  with:
306
306
  repository: OmniNode-ai/omnibase_core
307
307
  path: omnibase_core
@@ -344,13 +344,13 @@ jobs:
344
344
 
345
345
  steps:
346
346
  - name: Checkout code
347
- uses: actions/checkout@v4
347
+ uses: actions/checkout@v6
348
348
 
349
349
  - name: Install uv
350
350
  uses: astral-sh/setup-uv@v7
351
351
 
352
352
  - name: Install dependencies
353
- run: uv sync
353
+ run: uv sync --reinstall-package omnibase-core --reinstall-package omnibase-spi --reinstall-package omnibase-infra
354
354
 
355
355
  - name: Run tests
356
356
  run: |
@@ -381,8 +381,8 @@ jobs:
381
381
  retention-days: 7
382
382
 
383
383
  # Phase 3 - Aggregation
384
- test-summary:
385
- name: Test Summary
384
+ ci-summary:
385
+ name: CI Summary
386
386
  runs-on: ubuntu-latest
387
387
  needs: [migration-freeze, lint, pyright, onex-validation, transport-import-guard, contract-validation, io-audit, check-handshake, test]
388
388
  if: always()
@@ -438,11 +438,11 @@ jobs:
438
438
  name: AI-Slop Pattern Check (strict, PR diff)
439
439
  runs-on: ubuntu-latest
440
440
  steps:
441
- - uses: actions/checkout@v4
441
+ - uses: actions/checkout@v6
442
442
  with:
443
443
  fetch-depth: 0
444
444
  - name: Set up Python
445
- uses: actions/setup-python@v5
445
+ uses: actions/setup-python@v6
446
446
  with:
447
447
  python-version: '3.12'
448
448
  - name: Compute changed Python/Markdown files vs PR base
@@ -76,6 +76,11 @@
76
76
  # pre-commit run --all-files --hook-stage pre-push # Run pre-push hooks
77
77
 
78
78
  repos:
79
+ # Stub implementation detection — sourced from omnibase_core (OMN-4472)
80
+ - repo: https://github.com/OmniNode-ai/omnibase_core
81
+ rev: 30a06f85bb5849902d33c8d0bdb90fc6cba0c346 # pragma: allowlist secret
82
+ hooks:
83
+ - id: check-stub-implementations
79
84
  # YAML formatting (standard across ecosystem)
80
85
  # Configuration in .yamlfmt file (ecosystem-aligned settings)
81
86
  - repo: https://github.com/google/yamlfmt
@@ -101,6 +106,10 @@ repos:
101
106
  - id: check-toml
102
107
  - id: debug-statements
103
108
 
109
+ # ONEX String Version Anti-Pattern Detection
110
+ # TODO(OMN-3832-followup): Re-enable once validate-string-versions is packaged as a
111
+ # proper Python CLI entrypoint in omnibase_core (currently only works as a local script).
112
+
104
113
  # Python code quality with ruff (replaces black, isort, flake8 - 10-100x faster)
105
114
  # Configuration: pyproject.toml [tool.ruff] section (shared with CI)
106
115
  # Using official ruff-pre-commit repo for CI compatibility (no Poetry dependency)
@@ -415,6 +424,39 @@ repos:
415
424
  always_run: true
416
425
  stages: [pre-commit]
417
426
 
427
+ # --------------------------------------------------------------------------
428
+ # Bolt URI Hardcode Guard (OMN-4314)
429
+ # Validates: No bolt://localhost literal strings in production Python source.
430
+ # Scope: src/ (non-test files). Test files exempt (*test_*, *conftest*, */tests/*).
431
+ # Purpose: Catches the class of bug where a developer hardcodes
432
+ # connection_uri="bolt://localhost:7687" in production code.
433
+ # bolt://localhost resolves to the container itself inside Docker,
434
+ # not the Memgraph service (omnibase-infra-memgraph). Always read
435
+ # OMNIMEMORY_MEMGRAPH_HOST/PORT from environment instead.
436
+ # Parallel to: kafka-no-hardcoded-fallback in omnibase_infra
437
+ # --------------------------------------------------------------------------
438
+ - id: no-hardcoded-bolt-fallback
439
+ name: "No hardcoded bolt://localhost URIs"
440
+ language: script
441
+ entry: scripts/check_no_hardcoded_bolt.sh
442
+ pass_filenames: false
443
+ types: [python]
444
+ stages: [pre-commit]
445
+
446
+ # --------------------------------------------------------------------------
447
+ # SPDX Header Enforcement (ONEX canonical)
448
+ # Validates: All eligible source files carry MIT SPDX headers
449
+ # Scope: src/, tests/, scripts/, examples/ (py, sh, bash, yml, yaml, toml)
450
+ # --------------------------------------------------------------------------
451
+ - id: validate-spdx-headers
452
+ name: ONEX SPDX Header Requirement
453
+ entry: python scripts/validation/validate_spdx_headers.py
454
+ language: system
455
+ pass_filenames: true
456
+ files: ^(src|tests|scripts|examples)/.*\.py$
457
+ exclude: ^(archived/|archive/)
458
+ stages: [pre-commit]
459
+
418
460
  # Configuration
419
461
  default_install_hook_types: [pre-commit, pre-push]
420
462
  default_stages: [pre-commit]
@@ -13,7 +13,8 @@
13
13
  5. [Forbidden Patterns](#forbidden-patterns)
14
14
  6. [Required Patterns](#required-patterns)
15
15
  7. [Model Exemption Pattern](#model-exemption-pattern)
16
- 8. [Documentation](#documentation)
16
+ 8. [SPDX Headers](#spdx-headers)
17
+ 9. [Documentation](#documentation)
17
18
 
18
19
  ---
19
20
 
@@ -216,6 +217,17 @@ All other models belong in `src/omnimemory/models/<domain>/`.
216
217
 
217
218
  ---
218
219
 
220
+ ## SPDX Headers
221
+
222
+ All source files in `src/`, `tests/`, `scripts/`, `examples/` require MIT SPDX headers.
223
+ Canonical spec: `omnibase_core/docs/conventions/FILE_HEADERS.md`
224
+
225
+ - Stamp missing headers: `onex spdx fix src tests scripts examples`
226
+ - Check without writing: `onex spdx fix --check src tests scripts examples`
227
+ - Bypass a file: add `# spdx-skip: <reason>` in the first 10 lines
228
+
229
+ ---
230
+
219
231
  ## Documentation
220
232
 
221
233
  | Topic | Document |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omninode-memory
3
- Version: 0.6.4
3
+ Version: 0.7.0
4
4
  Summary: OmniNode document ingestion and semantic retrieval
5
5
  Project-URL: Homepage, https://github.com/OmniNode-ai/omnimemory
6
6
  Project-URL: Repository, https://github.com/OmniNode-ai/omnimemory
@@ -20,9 +20,9 @@ Requires-Dist: cachetools<8.0.0,>=6.2.4
20
20
  Requires-Dist: fastapi<1.0.0,>=0.120.1
21
21
  Requires-Dist: httpx<1.0.0,>=0.28.0
22
22
  Requires-Dist: mcp<2.0.0,>=1.8.0
23
- Requires-Dist: omnibase-core==0.24.0
24
- Requires-Dist: omnibase-infra==0.16.0
25
- Requires-Dist: omnibase-spi==0.15.1
23
+ Requires-Dist: omnibase-core==0.25.0
24
+ Requires-Dist: omnibase-infra==0.17.0
25
+ Requires-Dist: omnibase-spi==0.16.0
26
26
  Requires-Dist: pinecone-client<7.0.0,>=4.1.0
27
27
  Requires-Dist: psutil<8.0.0,>=7.0.0
28
28
  Requires-Dist: psycopg2-binary<3.0.0,>=2.9.10
@@ -35,7 +35,9 @@ logger = logging.getLogger(__name__)
35
35
 
36
36
  QDRANT_HOST = os.environ.get("QDRANT_HOST", "localhost")
37
37
  QDRANT_PORT = int(os.environ.get("QDRANT_PORT", "6333"))
38
- QDRANT_API_KEY = os.environ.get("QDRANT_API_KEY") or os.environ.get("QDRANT__SERVICE__API_KEY")
38
+ QDRANT_API_KEY = os.environ.get("QDRANT_API_KEY") or os.environ.get(
39
+ "QDRANT__SERVICE__API_KEY"
40
+ )
39
41
  COLLECTION_NAME = "navigation_paths"
40
42
 
41
43
  # Qwen3-Embedding-8B produces 4096-dimensional vectors.
@@ -53,7 +55,13 @@ async def create_collection() -> None:
53
55
  - ``start_state``: Embedding of the start-state identifier.
54
56
  """
55
57
  # https=False keeps plain HTTP even when api_key is set (localhost dev setup).
56
- client = AsyncQdrantClient(host=QDRANT_HOST, port=QDRANT_PORT, api_key=QDRANT_API_KEY, https=False, timeout=30)
58
+ client = AsyncQdrantClient(
59
+ host=QDRANT_HOST,
60
+ port=QDRANT_PORT,
61
+ api_key=QDRANT_API_KEY,
62
+ https=False,
63
+ timeout=30,
64
+ )
57
65
 
58
66
  try:
59
67
  try:
@@ -103,7 +111,9 @@ async def create_collection() -> None:
103
111
  field_name="start_state_id",
104
112
  field_schema=qdrant_models.PayloadSchemaType.KEYWORD,
105
113
  )
106
- logger.info("Created payload indexes on outcome, graph_fingerprint, start_state_id.")
114
+ logger.info(
115
+ "Created payload indexes on outcome, graph_fingerprint, start_state_id."
116
+ )
107
117
  except UnexpectedResponse as exc:
108
118
  logger.error("Qdrant API error during index creation: %s", exc)
109
119
  sys.exit(1)
@@ -0,0 +1,16 @@
1
+ # SPDX-License-Identifier: MIT
2
+ # Copyright (c) 2026 OmniNode Team
3
+ #
4
+ # Dockerfile.migrate — omnimemory database migration image
5
+ #
6
+ # Ownership: omnimemory repo owns all migration SQL artifacts.
7
+ # This image is pulled by the k8s/migrations/omnimemory-migrate.yaml
8
+ # initContainer and used by the omnimemory migration Job.
9
+ #
10
+ # Build context: repo root (docker build -f deployment/docker/Dockerfile.migrate .)
11
+ #
12
+ # Note: omnimemory migrations are at deployment/database/migrations/ (no forward/ subdir).
13
+
14
+ FROM alpine:3.19
15
+
16
+ COPY deployment/database/migrations/*.sql /migrations/
@@ -27,7 +27,6 @@ This document maps existing handlers from `omnibase_infra` to the Core 8 memory
27
27
  | `HandlerFileSystem` | `handler_filesystem` | Secure file I/O | read_file, write_file, list_directory | MEDIUM - persistent storage |
28
28
  | `HandlerGraph` | `handler_graph` | Graph database (Neo4j/Memgraph) | execute_query, create_node, traverse | HIGH - relationship memory |
29
29
  | `HandlerHttp` | `handler_http` | HTTP REST client | GET, POST | MEDIUM - external LLM calls |
30
- | `HandlerConsul` | `handler_consul` | Service discovery | register, deregister, health | LOW - infrastructure only |
31
30
  | `HandlerVault` | `handler_vault` | Secrets management | read, write secrets | LOW - security only |
32
31
  | `HandlerMcp` | `handler_mcp` | MCP protocol | MCP operations | LOW - agent communication |
33
32
  | `HandlerManifestPersistence` | `handler_manifest_persistence` | Manifest storage | persist manifests | LOW - specialized |
@@ -43,7 +42,6 @@ This document maps existing handlers from `omnibase_infra` to the Core 8 memory
43
42
 
44
43
  | Handler Class | Module | Purpose | Reuse Potential |
45
44
  |---------------|--------|---------|-----------------|
46
- | `HandlerServiceDiscoveryConsul` | `handler_service_discovery_consul` | Consul discovery | LOW - infrastructure |
47
45
  | `HandlerServiceDiscoveryMock` | `handler_service_discovery_mock` | Mock discovery | HIGH - testing patterns |
48
46
 
49
47
  ### Node-Specific Handlers (`omnibase_infra.nodes.node_registration_orchestrator.handlers`)
@@ -61,8 +59,6 @@ This document maps existing handlers from `omnibase_infra` to the Core 8 memory
61
59
  |---------------|--------|---------|-----------------|
62
60
  | `HandlerPostgresUpsert` | `handler_postgres_upsert` | PostgreSQL upsert | HIGH - storage patterns |
63
61
  | `HandlerPostgresDeactivate` | `handler_postgres_deactivate` | PostgreSQL deactivation | MEDIUM - lifecycle |
64
- | `HandlerConsulRegister` | `handler_consul_register` | Consul registration | LOW - infrastructure |
65
- | `HandlerConsulDeregister` | `handler_consul_deregister` | Consul deregistration | LOW - infrastructure |
66
62
  | `HandlerPartialRetry` | `handler_partial_retry` | Retry logic | HIGH - resilience patterns |
67
63
 
68
64
  ### Runtime Handlers (`omnibase_infra.runtime`)
@@ -321,7 +317,6 @@ Handler access must be controlled at multiple layers.
321
317
  | **handler_http.py** | Bearer tokens / API keys | Endpoint-specific | Rotate keys; use short-lived tokens |
322
318
  | **handler_graph.py** | Connection credentials | Label-based access control | Restrict node/edge type access |
323
319
  | **handler_vault.py** | Vault token | Policy-based | Use AppRole for services |
324
- | **handler_consul.py** | ACL token | Service-level policies | Read-only for most operations |
325
320
 
326
321
  #### Implementation Pattern
327
322
 
@@ -7,7 +7,7 @@ build-backend = "hatchling.build"
7
7
 
8
8
  [project]
9
9
  name = "omninode-memory"
10
- version = "0.6.4"
10
+ version = "0.7.0"
11
11
  description = "OmniNode document ingestion and semantic retrieval"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.12,<4.0"
@@ -59,9 +59,9 @@ dependencies = [
59
59
  "pyyaml>=6.0.2,<7.0.0",
60
60
 
61
61
  # ONEX dependencies - versioned releases from PyPI
62
- "omnibase-core==0.24.0",
63
- "omnibase-spi==0.15.1",
64
- "omnibase-infra==0.16.0",
62
+ "omnibase-core==0.25.0",
63
+ "omnibase-spi==0.16.0",
64
+ "omnibase-infra==0.17.0",
65
65
 
66
66
  # Logging and monitoring
67
67
  # Version ^23.3.0 required for compatibility with omnibase-infra (requires ^23.2.0)
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env bash
2
+ # SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
3
+ # SPDX-License-Identifier: MIT
4
+
5
+ # Reject bolt://localhost literal strings in production Python source.
6
+ # Docstrings (triple-quoted blocks) and test files are exempt.
7
+ # This is the memory-pipeline equivalent of kafka-no-hardcoded-fallback.
8
+ #
9
+ # Usage: called by pre-commit (pass_filenames: false, scans src/ directly)
10
+ # Exempt: files matching *test_*, *conftest*, */tests/*
11
+ set -euo pipefail
12
+
13
+ VIOLATIONS=0
14
+
15
+ while IFS= read -r -d '' file; do
16
+ # Skip test files
17
+ case "$file" in
18
+ *test_* | *conftest* | */tests/*) continue ;;
19
+ esac
20
+
21
+ if grep -n 'bolt://localhost' "$file" 2>/dev/null; then
22
+ echo "ERROR: Hardcoded bolt://localhost in $file"
23
+ echo " Read OMNIMEMORY_MEMGRAPH_HOST/PORT from env instead of hardcoding."
24
+ echo " (Check plugin config, Settings model, or env helper for the project-standard pattern.)"
25
+ VIOLATIONS=$((VIOLATIONS + 1))
26
+ fi
27
+ done < <(find src/ -name "*.py" -type f -print0)
28
+
29
+ if [[ $VIOLATIONS -gt 0 ]]; then
30
+ echo ""
31
+ echo "Found $VIOLATIONS file(s) with hardcoded bolt://localhost URIs."
32
+ echo "These will fail inside Docker where 'localhost' resolves to the container itself."
33
+ exit 1
34
+ fi
@@ -264,7 +264,7 @@ class TransportImportChecker(ast.NodeVisitor):
264
264
 
265
265
  def _extract_root_module(self, module_name: str) -> str:
266
266
  """Extract the root module from a potentially dotted module path."""
267
- return module_name.split(".")[0]
267
+ return module_name.split(".", maxsplit=1)[0]
268
268
 
269
269
  def _is_type_checking_guard(self, node: ast.If) -> bool:
270
270
  """Detect if an If node is a TYPE_CHECKING guard.
@@ -43,7 +43,6 @@ import re
43
43
  import sys
44
44
  from pathlib import Path
45
45
 
46
-
47
46
  # ---------------------------------------------------------------------------
48
47
  # Data models
49
48
  # ---------------------------------------------------------------------------
@@ -106,9 +106,9 @@ ALLOWED_PATHS = [
106
106
  "handlers/adapters/",
107
107
  # Legacy clients directory - allowed during migration
108
108
  # TODO: Remove this allowance after migration to adapters is complete
109
- "nodes/memory_retrieval_effect/clients/",
109
+ "nodes/node_memory_retrieval_effect/clients/",
110
110
  # Kreuzberg effect client - HTTP transport boundary for document extraction (OMN-2733)
111
- "nodes/kreuzberg_parse_effect/clients/",
111
+ "nodes/node_kreuzberg_parse_effect/clients/",
112
112
  # Tests can mock HTTP clients
113
113
  "tests/",
114
114
  ]