omninode-memory 0.6.4__tar.gz → 0.6.6__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 (484) hide show
  1. omninode_memory-0.6.6/.github/workflows/build-and-push-migrate-image.yml +42 -0
  2. omninode_memory-0.6.6/.github/workflows/contract-validation.yml +135 -0
  3. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/workflows/test.yml +6 -6
  4. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.pre-commit-config.yaml +23 -0
  5. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/PKG-INFO +4 -4
  6. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +13 -3
  7. omninode_memory-0.6.6/deployment/docker/Dockerfile.migrate +16 -0
  8. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/handler_reuse_matrix.md +0 -5
  9. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/pyproject.toml +4 -4
  10. omninode_memory-0.6.6/scripts/check_no_hardcoded_bolt.sh +31 -0
  11. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validate_no_transport_imports.py +1 -1
  12. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/check_ai_slop.py +0 -1
  13. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/validate_http_imports.py +2 -2
  14. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/validate_kafka_imports.py +1 -4
  15. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/validate_model_locations.py +6 -4
  16. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/validate_naming.py +1 -1
  17. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/__init__.py +7 -1
  18. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/__init__.py +2 -2
  19. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/__init__.py +2 -2
  20. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +3 -3
  21. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +3 -3
  22. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/handler_intent.py +3 -3
  23. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/models/model_handler_intent_config.py +7 -7
  24. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/nodes/__init__.py +20 -20
  25. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/__init__.py +1 -1
  26. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/contract.yaml +1 -1
  27. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/models/model_request.py +1 -1
  28. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/models/model_response.py +1 -1
  29. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_filesystem_crawler_effect}/__init__.py +3 -3
  30. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_filesystem_crawler_effect}/contract.yaml +2 -2
  31. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_filesystem_crawler_effect}/handler_filesystem_crawler.py +3 -3
  32. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_filesystem_crawler_effect}/models/__init__.py +2 -2
  33. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_event_consumer_effect}/__init__.py +2 -2
  34. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_event_consumer_effect}/contract.yaml +2 -2
  35. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_event_consumer_effect}/handler_intent_event_consumer.py +7 -7
  36. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_event_consumer_effect}/models/__init__.py +2 -2
  37. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_event_consumer_effect}/utils/__init__.py +1 -1
  38. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_event_consumer_effect}/utils/util_event_mapper.py +1 -1
  39. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/__init__.py +8 -6
  40. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/contract.yaml +1 -1
  41. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/handlers/__init__.py +3 -3
  42. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/handlers/handler_intent_query.py +7 -7
  43. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/models/__init__.py +1 -1
  44. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/models/model_handler_intent_query_config.py +1 -1
  45. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/registry/__init__.py +2 -2
  46. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/registry/registry_intent_query_effect.py +13 -9
  47. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/utils/__init__.py +1 -1
  48. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_query_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_query_effect}/utils/util_intent_mapping.py +1 -1
  49. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_storage_effect}/adapters/adapter_intent_storage.py +4 -4
  50. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_storage_effect}/contract.yaml +3 -3
  51. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_kreuzberg_parse_effect}/contract.yaml +2 -2
  52. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_kreuzberg_parse_effect}/handler_kreuzberg_parse.py +5 -5
  53. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_kreuzberg_parse_effect}/models/__init__.py +2 -2
  54. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/__init__.py +2 -2
  55. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/adapters/__init__.py +2 -2
  56. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/adapters/adapter_postgres_deactivate_memory.py +2 -2
  57. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/adapters/adapter_runtime_tick_memory.py +2 -2
  58. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/contract.yaml +6 -6
  59. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/handlers/__init__.py +3 -3
  60. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/handlers/handler_memory_archive.py +1 -1
  61. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/handlers/handler_memory_expire.py +1 -1
  62. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/validators/__init__.py +1 -1
  63. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/__init__.py +1 -1
  64. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/clients/__init__.py +1 -1
  65. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/clients/embedding_client.py +1 -1
  66. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/contract.yaml +3 -3
  67. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/handler_db_mock.py +1 -1
  68. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/handler_graph_mock.py +1 -1
  69. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/handler_memory_retrieval.py +2 -2
  70. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/handler_qdrant_mock.py +1 -1
  71. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_memory_retrieval_request.py +1 -1
  72. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_memory_retrieval_response.py +1 -1
  73. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_storage_effect}/adapters/__init__.py +1 -1
  74. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_storage_effect}/adapters/adapter_filesystem.py +7 -7
  75. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_storage_effect}/contract.yaml +5 -5
  76. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_storage_effect}/models/model_memory_storage_request.py +1 -1
  77. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_storage_effect}/models/model_memory_storage_response.py +1 -1
  78. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_navigation_history_reducer}/__init__.py +3 -3
  79. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_navigation_history_reducer}/handlers/handler_navigation_history_reducer.py +3 -3
  80. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_navigation_history_reducer}/models/model_navigation_history_request.py +1 -1
  81. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_navigation_history_reducer}/node_navigation_history_reducer.py +1 -1
  82. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_semantic_analyzer_compute}/__init__.py +4 -4
  83. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_semantic_analyzer_compute}/contract.yaml +1 -1
  84. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_semantic_analyzer_compute}/handlers/__init__.py +1 -1
  85. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_semantic_analyzer_compute}/handlers/handler_semantic_compute.py +1 -1
  86. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_semantic_analyzer_compute}/node_semantic_analyzer_compute.py +1 -1
  87. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_similarity_compute}/__init__.py +4 -4
  88. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_similarity_compute}/contract.yaml +1 -1
  89. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_similarity_compute}/handlers/__init__.py +3 -3
  90. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_similarity_compute}/handlers/handler_similarity_compute.py +2 -2
  91. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_similarity_compute}/models/model_similarity_compute_request.py +1 -1
  92. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_similarity_compute}/models/model_similarity_compute_response.py +1 -1
  93. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_similarity_compute}/node_similarity_compute.py +1 -1
  94. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/protocol_handler_intent.py +2 -2
  95. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +1 -1
  96. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/runtime/contract_topics.py +13 -11
  97. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/runtime/dispatch_handlers.py +5 -3
  98. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/runtime/introspection.py +9 -9
  99. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/runtime/message_type_registration.py +10 -10
  100. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/runtime/plugin.py +73 -6
  101. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/runtime/wiring.py +2 -2
  102. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/audit/io_audit_whitelist.yaml +5 -5
  103. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/audit/transport_import_whitelist.yaml +5 -5
  104. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/conftest.py +8 -8
  105. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/nodes/test_kreuzberg_parse_effect.py +4 -4
  106. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/nodes/test_navigation_history_reducer_integration.py +4 -4
  107. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/test_handler_lifecycle_pattern.py +1 -1
  108. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/test_node_agent_coordinator.py +2 -2
  109. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/models/test_frozen_boundary_models.py +2 -2
  110. {omninode_memory-0.6.4/tests/nodes/filesystem_crawler_effect → omninode_memory-0.6.6/tests/nodes/node_filesystem_crawler_effect}/test_handler_filesystem_crawler.py +3 -3
  111. {omninode_memory-0.6.4/tests/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/tests/nodes/node_intent_event_consumer_effect}/test_handler_intent_event_consumer.py +3 -3
  112. {omninode_memory-0.6.4/tests/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/tests/nodes/node_intent_event_consumer_effect}/test_model_consumer_health.py +1 -1
  113. {omninode_memory-0.6.4/tests/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/tests/nodes/node_intent_event_consumer_effect}/test_util_event_mapper.py +1 -1
  114. {omninode_memory-0.6.4/tests/nodes/intent_query_effect → omninode_memory-0.6.6/tests/nodes/node_intent_query_effect}/test_handler_intent_query_integration.py +45 -31
  115. {omninode_memory-0.6.4/tests/nodes/intent_storage_effect → omninode_memory-0.6.6/tests/nodes/node_intent_storage_effect}/test_handler_intent_storage_adapter_integration.py +2 -2
  116. {omninode_memory-0.6.4/tests/nodes/memory_retrieval_effect → omninode_memory-0.6.6/tests/nodes/node_memory_retrieval_effect}/test_memory_retrieval_effect.py +4 -4
  117. {omninode_memory-0.6.4/tests/nodes/memory_storage_effect → omninode_memory-0.6.6/tests/nodes/node_memory_storage_effect}/test_memory_storage_effect.py +3 -3
  118. {omninode_memory-0.6.4/tests/nodes/navigation_history_reducer → omninode_memory-0.6.6/tests/nodes/node_navigation_history_reducer}/test_navigation_history_reducer_unit.py +3 -3
  119. {omninode_memory-0.6.4/tests/nodes/similarity_compute → omninode_memory-0.6.6/tests/nodes/node_similarity_compute}/test_similarity_compute.py +4 -4
  120. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_contract_version.py +20 -12
  121. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_node_imports.py +4 -4
  122. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +5 -5
  123. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +2 -2
  124. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +1 -1
  125. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +1 -1
  126. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +1 -1
  127. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +1 -1
  128. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +1 -1
  129. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/runtime/test_contract_topics.py +23 -22
  130. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/runtime/test_message_type_registration.py +16 -16
  131. omninode_memory-0.6.6/tests/unit/runtime/test_plugin_memory_validate_handshake.py +44 -0
  132. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/test_validate_ci_precommit_alignment.py +2 -0
  133. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/uv.lock +38 -27
  134. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.claude/architecture-handshake.md +0 -0
  135. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.env.example +0 -0
  136. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.flake8 +0 -0
  137. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  138. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  139. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  140. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/dependabot.yml +0 -0
  141. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/required-checks.yaml +0 -0
  142. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/workflows/auto-tag-on-merge.yml +0 -0
  143. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/workflows/pre-commit.yml +0 -0
  144. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/workflows/release-dry-run.yml +0 -0
  145. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.github/workflows/release.yml +0 -0
  146. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.gitignore +0 -0
  147. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.secrets.baseline +0 -0
  148. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.serena/memories/project_overview.md +0 -0
  149. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.serena/memories/suggested_commands.md +0 -0
  150. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.serena/project.yml +0 -0
  151. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/.yamlfmt +0 -0
  152. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/CHANGELOG.md +0 -0
  153. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/CLAUDE.md +0 -0
  154. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/CODE_OF_CONDUCT.md +0 -0
  155. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/CONTRIBUTING.md +0 -0
  156. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/LICENSE +0 -0
  157. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/README.md +0 -0
  158. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/SECURITY.md +0 -0
  159. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/contract.yaml +0 -0
  160. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
  161. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/deployment/database/migrations/002_create_memories_table.sql +0 -0
  162. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
  163. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
  164. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
  165. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
  166. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docker-compose.prod.yml +0 -0
  167. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docker-compose.yml +0 -0
  168. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/INDEX.md +0 -0
  169. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/PERFORMANCE_TESTING.md +0 -0
  170. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/architecture/ARCH_002_KAFKA_ABSTRACTION.md +0 -0
  171. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md +0 -0
  172. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/ci/CI_MONITORING_GUIDE.md +0 -0
  173. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/db-split/fk-audit-omn-2069.md +0 -0
  174. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/environment_variables.md +0 -0
  175. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/pii_handling.md +0 -0
  176. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/runtime/RUNTIME_PLUGINS.md +0 -0
  177. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/docs/stub_protocols.md +0 -0
  178. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/examples/__init__.py +0 -0
  179. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/examples/advanced_architecture_demo.py +0 -0
  180. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/pyrightconfig.json +0 -0
  181. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/check_migration_freeze.sh +0 -0
  182. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validate_ci_precommit_alignment.py +0 -0
  183. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/validate_enum_casing.py +0 -0
  184. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/validate_no_backward_compatibility.py +0 -0
  185. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/validate_pydantic_patterns.py +0 -0
  186. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/validate_secrets.py +0 -0
  187. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/scripts/validation/validate_single_class_per_file.py +0 -0
  188. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/_compat_imports.py +0 -0
  189. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/audit/__init__.py +0 -0
  190. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/audit/__main__.py +0 -0
  191. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/audit/io_audit.py +0 -0
  192. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/bootstrap.py +0 -0
  193. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/__init__.py +0 -0
  194. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/crawl/__init__.py +0 -0
  195. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
  196. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
  197. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
  198. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
  199. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_context_item_type.py +0 -0
  200. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_data_type.py +0 -0
  201. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
  202. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_error_code.py +0 -0
  203. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
  204. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
  205. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
  206. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
  207. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_migration_status.py +0 -0
  208. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_node_type.py +0 -0
  209. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_operation_status.py +0 -0
  210. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_priority_level.py +0 -0
  211. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
  212. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
  213. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_severity.py +0 -0
  214. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_subscription_status.py +0 -0
  215. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/enums/enum_trust_level.py +0 -0
  216. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/errors/__init__.py +0 -0
  217. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/errors/embedding_errors.py +0 -0
  218. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
  219. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
  220. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
  221. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
  222. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
  223. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
  224. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
  225. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/handler_subscription.py +0 -0
  226. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/handlers/models/__init__.py +0 -0
  227. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/__init__.py +0 -0
  228. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/adapters/__init__.py +0 -0
  229. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
  230. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
  231. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
  232. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
  233. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
  234. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
  235. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
  236. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/__init__.py +0 -0
  237. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
  238. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_embedding_config.py +0 -0
  239. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
  240. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
  241. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
  242. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
  243. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
  244. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_postgres_config.py +0 -0
  245. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
  246. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
  247. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
  248. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
  249. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
  250. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/container/__init__.py +0 -0
  251. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/contracts/__init__.py +0 -0
  252. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
  253. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
  254. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
  255. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
  256. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
  257. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/core/__init__.py +0 -0
  258. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/core/model_memory_context.py +0 -0
  259. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
  260. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
  261. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/core/model_memory_request.py +0 -0
  262. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/core/model_memory_response.py +0 -0
  263. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
  264. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
  265. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/core/model_provenance.py +0 -0
  266. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/__init__.py +0 -0
  267. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/model_crawl_state_record.py +0 -0
  268. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
  269. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
  270. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
  271. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
  272. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
  273. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
  274. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
  275. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/crawl/types.py +0 -0
  276. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/events/__init__.py +0 -0
  277. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
  278. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
  279. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/__init__.py +0 -0
  280. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
  281. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_configuration.py +0 -0
  282. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
  283. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_error_details.py +0 -0
  284. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
  285. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_health_response.py +0 -0
  286. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
  287. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
  288. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
  289. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_notes.py +0 -0
  290. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_priority.py +0 -0
  291. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
  292. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_semver.py +0 -0
  293. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
  294. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_system_health.py +0 -0
  295. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_tags.py +0 -0
  296. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
  297. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
  298. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/foundation/model_user.py +0 -0
  299. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/intelligence/__init__.py +0 -0
  300. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
  301. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
  302. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
  303. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
  304. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
  305. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/memory/__init__.py +0 -0
  306. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/memory/model_memory_item.py +0 -0
  307. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/memory/model_memory_query.py +0 -0
  308. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
  309. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
  310. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
  311. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/scoring/__init__.py +0 -0
  312. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
  313. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
  314. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
  315. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/service/__init__.py +0 -0
  316. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/service/model_service_config.py +0 -0
  317. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/service/model_service_health.py +0 -0
  318. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/service/model_service_registry.py +0 -0
  319. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/subscription/__init__.py +0 -0
  320. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/subscription/constants.py +0 -0
  321. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
  322. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
  323. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/subscription/model_subscription.py +0 -0
  324. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/__init__.py +0 -0
  325. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_audit.py +0 -0
  326. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
  327. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
  328. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_concurrency.py +0 -0
  329. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
  330. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
  331. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
  332. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
  333. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_health_status.py +0 -0
  334. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
  335. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
  336. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_pii_match.py +0 -0
  337. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
  338. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_pii_type.py +0 -0
  339. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
  340. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
  341. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_retry_config.py +0 -0
  342. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
  343. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
  344. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/models/utils/model_system_health.py +0 -0
  345. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/nodes/base.py +0 -0
  346. {omninode_memory-0.6.4/src/omnimemory/nodes/agent_coordinator_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_agent_coordinator_orchestrator}/models/__init__.py +0 -0
  347. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_filesystem_crawler_effect}/models/model_filesystem_crawl_result.py +0 -0
  348. {omninode_memory-0.6.4/src/omnimemory/nodes/filesystem_crawler_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_filesystem_crawler_effect}/models/model_filesystem_crawler_config.py +0 -0
  349. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_event_consumer_effect}/models/model_consumer_config.py +0 -0
  350. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_event_consumer_effect}/models/model_consumer_health.py +0 -0
  351. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_storage_effect}/__init__.py +0 -0
  352. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_storage_effect}/adapters/__init__.py +0 -0
  353. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_storage_effect}/models/__init__.py +0 -0
  354. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_storage_effect}/models/model_intent_storage_request.py +0 -0
  355. {omninode_memory-0.6.4/src/omnimemory/nodes/intent_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_intent_storage_effect}/models/model_intent_storage_response.py +0 -0
  356. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_kreuzberg_parse_effect}/__init__.py +0 -0
  357. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_kreuzberg_parse_effect}/clients/__init__.py +0 -0
  358. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_kreuzberg_parse_effect}/clients/client_kreuzberg.py +0 -0
  359. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_kreuzberg_parse_effect}/models/model_kreuzberg_parse_config.py +0 -0
  360. {omninode_memory-0.6.4/src/omnimemory/nodes/kreuzberg_parse_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_kreuzberg_parse_effect}/models/model_kreuzberg_parse_result.py +0 -0
  361. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_consolidator_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_consolidator_reducer}/__init__.py +0 -0
  362. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/handlers/handler_memory_tick.py +0 -0
  363. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/models/__init__.py +0 -0
  364. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_lifecycle_orchestrator → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_lifecycle_orchestrator}/validators/validator_lifecycle_transition.py +0 -0
  365. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/handlers/__init__.py +0 -0
  366. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/models/__init__.py +0 -0
  367. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_embedding_client_config.py +0 -0
  368. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_handler_db_mock_config.py +0 -0
  369. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_handler_graph_mock_config.py +0 -0
  370. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_handler_memory_retrieval_config.py +0 -0
  371. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_retrieval_effect}/models/model_handler_qdrant_mock_config.py +0 -0
  372. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_storage_effect}/__init__.py +0 -0
  373. {omninode_memory-0.6.4/src/omnimemory/nodes/memory_storage_effect → omninode_memory-0.6.6/src/omnimemory/nodes/node_memory_storage_effect}/models/__init__.py +0 -0
  374. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_navigation_history_reducer}/handlers/__init__.py +0 -0
  375. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_navigation_history_reducer}/models/__init__.py +0 -0
  376. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_navigation_history_reducer}/models/model_navigation_history_response.py +0 -0
  377. {omninode_memory-0.6.4/src/omnimemory/nodes/navigation_history_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_navigation_history_reducer}/models/model_navigation_session.py +0 -0
  378. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_semantic_analyzer_compute}/models/__init__.py +0 -0
  379. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_semantic_analyzer_compute}/models/model_semantic_analyzer_compute_request.py +0 -0
  380. {omninode_memory-0.6.4/src/omnimemory/nodes/semantic_analyzer_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_semantic_analyzer_compute}/models/model_semantic_analyzer_compute_response.py +0 -0
  381. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_similarity_compute}/models/__init__.py +0 -0
  382. {omninode_memory-0.6.4/src/omnimemory/nodes/similarity_compute → omninode_memory-0.6.6/src/omnimemory/nodes/node_similarity_compute}/models/model_handler_similarity_compute_config.py +0 -0
  383. {omninode_memory-0.6.4/src/omnimemory/nodes/statistics_reducer → omninode_memory-0.6.6/src/omnimemory/nodes/node_statistics_reducer}/__init__.py +0 -0
  384. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/__init__.py +0 -0
  385. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/base_protocols.py +0 -0
  386. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/data_models.py +0 -0
  387. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/error_models.py +0 -0
  388. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/protocol_crawl_state_repository.py +0 -0
  389. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/protocol_embedding.py +0 -0
  390. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
  391. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
  392. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/runtime/__init__.py +0 -0
  393. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/runtime/adapters.py +0 -0
  394. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/secrets.py +0 -0
  395. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/settings.py +0 -0
  396. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/tools/__init__.py +0 -0
  397. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/tools/contract_linter.py +0 -0
  398. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/tools/stubs/__init__.py +0 -0
  399. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/tools/stubs/contract_validator.py +0 -0
  400. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/__init__.py +0 -0
  401. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/audit_logger.py +0 -0
  402. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/concurrency.py +0 -0
  403. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/db_url.py +0 -0
  404. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/error_sanitizer.py +0 -0
  405. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/handler_constants.py +0 -0
  406. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/health_manager.py +0 -0
  407. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/observability.py +0 -0
  408. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/pii_detector.py +0 -0
  409. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/resource_manager.py +0 -0
  410. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/src/omnimemory/utils/retry_utils.py +0 -0
  411. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/__init__.py +0 -0
  412. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/__init__.py +0 -0
  413. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/adapters/__init__.py +0 -0
  414. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
  415. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
  416. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
  417. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
  418. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
  419. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
  420. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/test_handler_intent.py +0 -0
  421. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/handlers/test_handler_semantic_compute.py +0 -0
  422. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/__init__.py +0 -0
  423. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/conftest.py +0 -0
  424. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/nodes/__init__.py +0 -0
  425. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
  426. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/test_entry_point_discovery.py +0 -0
  427. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/integration/test_handler_subscription.py +0 -0
  428. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/models/__init__.py +0 -0
  429. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/models/contracts/__init__.py +0 -0
  430. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/models/contracts/test_extended_contracts.py +0 -0
  431. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/models/events/__init__.py +0 -0
  432. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/models/events/test_model_intent_classified_event.py +0 -0
  433. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/nodes/__init__.py +0 -0
  434. {omninode_memory-0.6.4/tests/nodes/filesystem_crawler_effect → omninode_memory-0.6.6/tests/nodes/node_filesystem_crawler_effect}/__init__.py +0 -0
  435. {omninode_memory-0.6.4/tests/nodes/intent_event_consumer_effect → omninode_memory-0.6.6/tests/nodes/node_intent_event_consumer_effect}/__init__.py +0 -0
  436. {omninode_memory-0.6.4/tests/nodes/intent_query_effect → omninode_memory-0.6.6/tests/nodes/node_intent_query_effect}/__init__.py +0 -0
  437. {omninode_memory-0.6.4/tests/nodes/intent_query_effect → omninode_memory-0.6.6/tests/nodes/node_intent_query_effect}/conftest.py +0 -0
  438. {omninode_memory-0.6.4/tests/nodes/intent_storage_effect → omninode_memory-0.6.6/tests/nodes/node_intent_storage_effect}/__init__.py +0 -0
  439. {omninode_memory-0.6.4/tests/nodes/memory_retrieval_effect → omninode_memory-0.6.6/tests/nodes/node_memory_retrieval_effect}/__init__.py +0 -0
  440. {omninode_memory-0.6.4/tests/nodes/memory_storage_effect → omninode_memory-0.6.6/tests/nodes/node_memory_storage_effect}/__init__.py +0 -0
  441. {omninode_memory-0.6.4/tests/nodes/navigation_history_reducer → omninode_memory-0.6.6/tests/nodes/node_navigation_history_reducer}/__init__.py +0 -0
  442. {omninode_memory-0.6.4/tests/nodes/similarity_compute → omninode_memory-0.6.6/tests/nodes/node_similarity_compute}/__init__.py +0 -0
  443. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_bootstrap.py +0 -0
  444. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_concurrency.py +0 -0
  445. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_config_models.py +0 -0
  446. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_contract_validation.py +0 -0
  447. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_db_url.py +0 -0
  448. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_foundation.py +0 -0
  449. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_health_manager.py +0 -0
  450. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_migration_progress.py +0 -0
  451. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_node_enforcement.py +0 -0
  452. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_observability_metrics.py +0 -0
  453. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_performance.py +0 -0
  454. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_resource_manager.py +0 -0
  455. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_secrets_provider.py +0 -0
  456. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_semantic_compute_policy_config.py +0 -0
  457. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_settings.py +0 -0
  458. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/test_validation_scripts.py +0 -0
  459. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/__init__.py +0 -0
  460. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/handlers/__init__.py +0 -0
  461. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/handlers/adapters/__init__.py +0 -0
  462. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
  463. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/handlers/test_subscription_typing.py +0 -0
  464. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
  465. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
  466. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/runtime/__init__.py +0 -0
  467. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/runtime/conftest.py +0 -0
  468. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/runtime/test_adapters.py +0 -0
  469. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
  470. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/runtime/test_introspection.py +0 -0
  471. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/runtime/test_plugin.py +0 -0
  472. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/runtime/test_wiring.py +0 -0
  473. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/test_contract_linter.py +0 -0
  474. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
  475. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/test_ingestion_models.py +0 -0
  476. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/test_io_audit.py +0 -0
  477. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/test_scope_mapping_config.py +0 -0
  478. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/test_sql_placeholders.py +0 -0
  479. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/test_validate_kafka_imports.py +0 -0
  480. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/tests/unit/test_validate_no_transport_imports.py +0 -0
  481. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/validate_architecture_improvements.py +0 -0
  482. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/validate_foundation.py +0 -0
  483. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/validate_foundation_isolated.py +0 -0
  484. {omninode_memory-0.6.4 → omninode_memory-0.6.6}/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
@@ -107,7 +107,7 @@ jobs:
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
@@ -138,7 +138,7 @@ jobs:
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
@@ -159,7 +159,7 @@ jobs:
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
@@ -251,7 +251,7 @@ jobs:
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: |
@@ -281,7 +281,7 @@ jobs:
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
@@ -350,7 +350,7 @@ jobs:
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: |
@@ -101,6 +101,10 @@ repos:
101
101
  - id: check-toml
102
102
  - id: debug-statements
103
103
 
104
+ # ONEX String Version Anti-Pattern Detection
105
+ # TODO(OMN-3832-followup): Re-enable once validate-string-versions is packaged as a
106
+ # proper Python CLI entrypoint in omnibase_core (currently only works as a local script).
107
+
104
108
  # Python code quality with ruff (replaces black, isort, flake8 - 10-100x faster)
105
109
  # Configuration: pyproject.toml [tool.ruff] section (shared with CI)
106
110
  # Using official ruff-pre-commit repo for CI compatibility (no Poetry dependency)
@@ -415,6 +419,25 @@ repos:
415
419
  always_run: true
416
420
  stages: [pre-commit]
417
421
 
422
+ # --------------------------------------------------------------------------
423
+ # Bolt URI Hardcode Guard (OMN-4314)
424
+ # Validates: No bolt://localhost literal strings in production Python source.
425
+ # Scope: src/ (non-test files). Test files exempt (*test_*, *conftest*, */tests/*).
426
+ # Purpose: Catches the class of bug where a developer hardcodes
427
+ # connection_uri="bolt://localhost:7687" in production code.
428
+ # bolt://localhost resolves to the container itself inside Docker,
429
+ # not the Memgraph service (omnibase-infra-memgraph). Always read
430
+ # OMNIMEMORY_MEMGRAPH_HOST/PORT from environment instead.
431
+ # Parallel to: kafka-no-hardcoded-fallback in omnibase_infra
432
+ # --------------------------------------------------------------------------
433
+ - id: no-hardcoded-bolt-fallback
434
+ name: "No hardcoded bolt://localhost URIs"
435
+ language: script
436
+ entry: scripts/check_no_hardcoded_bolt.sh
437
+ pass_filenames: false
438
+ types: [python]
439
+ stages: [pre-commit]
440
+
418
441
  # Configuration
419
442
  default_install_hook_types: [pre-commit, pre-push]
420
443
  default_stages: [pre-commit]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omninode-memory
3
- Version: 0.6.4
3
+ Version: 0.6.6
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,>=0.24.0
24
+ Requires-Dist: omnibase-infra<0.17.0,>=0.16.2
25
+ Requires-Dist: omnibase-spi==0.15.2
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.6.6"
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.24.0,<0.25.0",
63
+ "omnibase-spi==0.15.2",
64
+ "omnibase-infra>=0.16.2,<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,31 @@
1
+ #!/usr/bin/env bash
2
+ # Reject bolt://localhost literal strings in production Python source.
3
+ # Docstrings (triple-quoted blocks) and test files are exempt.
4
+ # This is the memory-pipeline equivalent of kafka-no-hardcoded-fallback.
5
+ #
6
+ # Usage: called by pre-commit (pass_filenames: false, scans src/ directly)
7
+ # Exempt: files matching *test_*, *conftest*, */tests/*
8
+ set -euo pipefail
9
+
10
+ VIOLATIONS=0
11
+
12
+ while IFS= read -r -d '' file; do
13
+ # Skip test files
14
+ case "$file" in
15
+ *test_* | *conftest* | */tests/*) continue ;;
16
+ esac
17
+
18
+ if grep -n 'bolt://localhost' "$file" 2>/dev/null; then
19
+ echo "ERROR: Hardcoded bolt://localhost in $file"
20
+ echo " Read OMNIMEMORY_MEMGRAPH_HOST/PORT from env instead of hardcoding."
21
+ echo " (Check plugin config, Settings model, or env helper for the project-standard pattern.)"
22
+ VIOLATIONS=$((VIOLATIONS + 1))
23
+ fi
24
+ done < <(find src/ -name "*.py" -type f -print0)
25
+
26
+ if [[ $VIOLATIONS -gt 0 ]]; then
27
+ echo ""
28
+ echo "Found $VIOLATIONS file(s) with hardcoded bolt://localhost URIs."
29
+ echo "These will fail inside Docker where 'localhost' resolves to the container itself."
30
+ exit 1
31
+ 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
  ]
@@ -233,10 +233,7 @@ def main() -> int:
233
233
  print("instead of importing Kafka clients directly.")
234
234
  return 1
235
235
 
236
- print(
237
- f"No Kafka import violations found. "
238
- f"Checked {len(files_to_check)} file(s)."
239
- )
236
+ print(f"No Kafka import violations found. Checked {len(files_to_check)} file(s).")
240
237
  return 0
241
238
 
242
239
 
@@ -65,9 +65,9 @@ ALLOWED_PATHS = [
65
65
  # Primary models directory
66
66
  "src/omnimemory/models/",
67
67
  # Node-specific models (ONEX pattern)
68
- "nodes/memory_retrieval_effect/models/",
69
- "nodes/memory_storage_effect/models/",
70
- "nodes/similarity_compute/models/",
68
+ "nodes/node_memory_retrieval_effect/models/",
69
+ "nodes/node_memory_storage_effect/models/",
70
+ "nodes/node_similarity_compute/models/",
71
71
  # Protocol definitions (interfaces and base models)
72
72
  "src/omnimemory/protocols/",
73
73
  # Tests can have models for fixtures/mocks
@@ -169,7 +169,9 @@ class PydanticModelVisitor(ast.NodeVisitor):
169
169
  is_exempt = False
170
170
  start_line = node.lineno - 1 # 0-indexed
171
171
  # Scan from class start to the line ending with ":" (class signature end)
172
- for line_idx in range(start_line, min(start_line + 10, len(self.source_lines))):
172
+ for line_idx in range(
173
+ start_line, min(start_line + 10, len(self.source_lines))
174
+ ):
173
175
  line = self.source_lines[line_idx]
174
176
  if EXEMPTION_PATTERN.search(line):
175
177
  is_exempt = True
@@ -228,7 +228,7 @@ def get_ancestor_typed_directory(filepath: Path) -> str | None:
228
228
  """Check if any ancestor is a typed directory.
229
229
 
230
230
  This helps identify files that are deeply nested within a typed directory
231
- (e.g., nodes/memory_storage_effect/adapters/) where the top-level type
231
+ (e.g., nodes/node_memory_storage_effect/adapters/) where the top-level type
232
232
  should still influence validation behavior.
233
233
 
234
234
  Returns the first ancestor typed directory name, or None.
@@ -25,7 +25,13 @@ Usage:
25
25
  >>> # Use domain-specific models for memory operations
26
26
  """
27
27
 
28
- __version__ = "0.6.2"
28
+ # Do not hardcode versions here; version is sourced from distribution metadata.
29
+ from importlib.metadata import PackageNotFoundError, version
30
+
31
+ try:
32
+ __version__ = version("omninode-memory")
33
+ except PackageNotFoundError:
34
+ __version__ = "0.0.0-dev"
29
35
  __author__ = "OmniNode-ai"
30
36
  __email__ = "contact@omninode.ai"
31
37
 
@@ -18,7 +18,7 @@ Subpackages:
18
18
 
19
19
  Note:
20
20
  HandlerSemanticCompute now lives in its node's handlers directory following ONEX patterns:
21
- ``omnimemory.nodes.semantic_analyzer_compute.handlers.handler_semantic_compute``
21
+ ``omnimemory.nodes.node_semantic_analyzer_compute.handlers.handler_semantic_compute``
22
22
 
23
23
  It is re-exported here for import convenience.
24
24
 
@@ -93,7 +93,7 @@ from omnimemory.handlers.models import ModelHandlerIntentConfig
93
93
  from omnimemory.models.config import ModelHandlerSemanticComputeConfig
94
94
 
95
95
  # Re-export from node's handlers directory for import convenience
96
- from omnimemory.nodes.semantic_analyzer_compute.handlers import (
96
+ from omnimemory.nodes.node_semantic_analyzer_compute.handlers import (
97
97
  HandlerSemanticCompute,
98
98
  HandlerSemanticComputePolicy,
99
99
  )
@@ -34,7 +34,7 @@ Example::
34
34
  # Graph adapter
35
35
  config = ModelGraphMemoryConfig(max_depth=3)
36
36
  adapter = AdapterGraphMemory(config)
37
- await adapter.initialize(connection_uri="bolt://localhost:7687")
37
+ await adapter.initialize(connection_uri="bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}")
38
38
 
39
39
  # Embedding client (contract boundary for HTTP)
40
40
  embed_config = ModelEmbeddingHttpClientConfig(
@@ -47,7 +47,7 @@ Example::
47
47
  # Intent graph adapter
48
48
  intent_config = ModelAdapterIntentGraphConfig(timeout_seconds=30.0)
49
49
  intent_adapter = AdapterIntentGraph(intent_config)
50
- await intent_adapter.initialize(connection_uri="bolt://localhost:7687")
50
+ await intent_adapter.initialize(connection_uri="bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}")
51
51
 
52
52
  # Valkey adapter for caching
53
53
  valkey_config = AdapterValkeyConfig(host="localhost", port=6379)
@@ -24,7 +24,7 @@ Example::
24
24
  config = ModelGraphMemoryConfig(max_depth=5)
25
25
  adapter = AdapterGraphMemory(config)
26
26
  await adapter.initialize(
27
- connection_uri="bolt://localhost:7687",
27
+ connection_uri="bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}",
28
28
  auth=("neo4j", "password"),
29
29
  )
30
30
 
@@ -396,7 +396,7 @@ class AdapterGraphMemory:
396
396
  config = ModelGraphMemoryConfig(max_depth=3)
397
397
  adapter = AdapterGraphMemory(config)
398
398
  await adapter.initialize(
399
- connection_uri="bolt://localhost:7687",
399
+ connection_uri="bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}",
400
400
  )
401
401
 
402
402
  # Find related memories up to 2 hops away
@@ -453,7 +453,7 @@ class AdapterGraphMemory:
453
453
  the handler for memory queries.
454
454
 
455
455
  Args:
456
- connection_uri: Graph database URI (e.g., "bolt://localhost:7687").
456
+ connection_uri: Graph database URI (e.g., "bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}").
457
457
  auth: Optional (username, password) tuple for authentication.
458
458
  options: Additional connection options passed to the graph handler.
459
459
 
@@ -33,7 +33,7 @@ Example::
33
33
  config = ModelAdapterIntentGraphConfig(timeout_seconds=30.0)
34
34
  adapter = AdapterIntentGraph(config)
35
35
  await adapter.initialize(
36
- connection_uri="bolt://localhost:7687",
36
+ connection_uri="bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}",
37
37
  )
38
38
 
39
39
  # Store an intent (classification already happened upstream)
@@ -327,7 +327,7 @@ class AdapterIntentGraph(ProtocolIntentGraphAdapter):
327
327
  )
328
328
  adapter = AdapterIntentGraph(config)
329
329
  await adapter.initialize(
330
- connection_uri="bolt://localhost:7687",
330
+ connection_uri="bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}",
331
331
  )
332
332
 
333
333
  # Store intent classification (classification happened upstream)
@@ -434,7 +434,7 @@ class AdapterIntentGraph(ProtocolIntentGraphAdapter):
434
434
  successful initialization is a no-op.
435
435
 
436
436
  Args:
437
- connection_uri: Graph database URI (e.g., "bolt://localhost:7687").
437
+ connection_uri: Graph database URI (e.g., "bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}").
438
438
  auth: Optional (username, password) tuple for authentication.
439
439
  options: Additional connection options passed to the graph handler.
440
440
 
@@ -40,7 +40,7 @@ Example::
40
40
  handler = HandlerIntent(container)
41
41
 
42
42
  await handler.initialize(
43
- connection_uri="bolt://localhost:7687",
43
+ connection_uri="bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}",
44
44
  )
45
45
 
46
46
  # Store an intent
@@ -212,7 +212,7 @@ class HandlerIntent:
212
212
  container = ModelONEXContainer()
213
213
  handler = HandlerIntent(container)
214
214
 
215
- await handler.initialize(connection_uri="bolt://localhost:7687")
215
+ await handler.initialize(connection_uri="bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}")
216
216
 
217
217
  result = await handler.store_intent(
218
218
  session_id="sess_123",
@@ -287,7 +287,7 @@ class HandlerIntent:
287
287
  initialization is a no-op.
288
288
 
289
289
  Args:
290
- connection_uri: Graph database URI (e.g., "bolt://localhost:7687").
290
+ connection_uri: Graph database URI (e.g., "bolt://{OMNIMEMORY_MEMGRAPH_HOST}:{OMNIMEMORY_MEMGRAPH_PORT}").
291
291
  auth: Optional (username, password) tuple for authentication.
292
292
  options: Additional configuration options:
293
293
  - timeout_seconds: Operation timeout (default: 30.0)