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.
- omninode_memory-0.7.0/.github/workflows/build-and-push-migrate-image.yml +42 -0
- omninode_memory-0.7.0/.github/workflows/contract-validation.yml +135 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/pre-commit.yml +2 -2
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/release-dry-run.yml +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/release.yml +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/test.yml +23 -23
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.pre-commit-config.yaml +42 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/CLAUDE.md +13 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/PKG-INFO +4 -4
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +13 -3
- omninode_memory-0.7.0/deployment/docker/Dockerfile.migrate +16 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/handler_reuse_matrix.md +0 -5
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/pyproject.toml +4 -4
- omninode_memory-0.7.0/scripts/check_no_hardcoded_bolt.sh +34 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validate_no_transport_imports.py +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/check_ai_slop.py +0 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_http_imports.py +2 -2
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_kafka_imports.py +1 -4
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_model_locations.py +6 -4
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_naming.py +2 -2
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_secrets.py +1 -1
- omninode_memory-0.7.0/scripts/validation/validate_spdx_headers.py +39 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/__init__.py +7 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_error_code.py +9 -3
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/__init__.py +2 -2
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/__init__.py +2 -2
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +3 -3
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +3 -3
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_valkey.py +3 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/handler_intent.py +3 -3
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/models/model_handler_intent_config.py +7 -7
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_indexed_event.py +2 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/nodes/__init__.py +20 -20
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +365 -0
- {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
- {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
- omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +94 -0
- omninode_memory-0.7.0/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +106 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_handler_intent.py +2 -2
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/contract_topics.py +13 -11
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/dispatch_handlers.py +9 -7
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/introspection.py +9 -9
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/message_type_registration.py +10 -10
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/plugin.py +74 -7
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/wiring.py +2 -2
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/tools/stubs/contract_validator.py +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/observability.py +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/pii_detector.py +6 -2
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/audit/io_audit_whitelist.yaml +5 -5
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/audit/transport_import_whitelist.yaml +5 -5
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/conftest.py +8 -8
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/nodes/test_kreuzberg_parse_effect.py +4 -4
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/nodes/test_navigation_history_reducer_integration.py +6 -4
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/test_handler_lifecycle_pattern.py +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/test_node_agent_coordinator.py +2 -2
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/test_frozen_boundary_models.py +2 -2
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_contract_version.py +20 -12
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_node_imports.py +4 -4
- omninode_memory-0.7.0/tests/unit/handlers/__init__.py +2 -0
- omninode_memory-0.7.0/tests/unit/handlers/adapters/__init__.py +2 -0
- omninode_memory-0.7.0/tests/unit/nodes/__init__.py +2 -0
- omninode_memory-0.7.0/tests/unit/nodes/test_handler_qdrant.py +272 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +5 -5
- {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
- {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
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +1 -1
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +1 -1
- omninode_memory-0.7.0/tests/unit/nodes/test_model_handler_qdrant_config.py +86 -0
- omninode_memory-0.7.0/tests/unit/runtime/__init__.py +2 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_contract_topics.py +23 -22
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_message_type_registration.py +16 -16
- omninode_memory-0.7.0/tests/unit/runtime/test_plugin_memory_validate_handshake.py +44 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_validate_ci_precommit_alignment.py +4 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/uv.lock +38 -27
- omninode_memory-0.6.4/src/omnimemory/nodes/memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -54
- omninode_memory-0.6.4/tests/nodes/navigation_history_reducer/__init__.py +0 -0
- omninode_memory-0.6.4/tests/unit/handlers/__init__.py +0 -0
- omninode_memory-0.6.4/tests/unit/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.claude/architecture-handshake.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.env.example +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.flake8 +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/dependabot.yml +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/required-checks.yaml +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.github/workflows/auto-tag-on-merge.yml +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.gitignore +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.secrets.baseline +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.serena/memories/project_overview.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.serena/memories/suggested_commands.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.serena/project.yml +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/.yamlfmt +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/CHANGELOG.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/CODE_OF_CONDUCT.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/CONTRIBUTING.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/LICENSE +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/README.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/SECURITY.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/contract.yaml +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations/002_create_memories_table.sql +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docker-compose.prod.yml +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docker-compose.yml +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/INDEX.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/PERFORMANCE_TESTING.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/architecture/ARCH_002_KAFKA_ABSTRACTION.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/ci/CI_MONITORING_GUIDE.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/db-split/fk-audit-omn-2069.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/environment_variables.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/pii_handling.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/runtime/RUNTIME_PLUGINS.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/docs/stub_protocols.md +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/examples/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/examples/advanced_architecture_demo.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/pyrightconfig.json +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/check_migration_freeze.sh +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validate_ci_precommit_alignment.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_enum_casing.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_no_backward_compatibility.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_pydantic_patterns.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/scripts/validation/validate_single_class_per_file.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/_compat_imports.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/audit/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/audit/__main__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/audit/io_audit.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/bootstrap.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/crawl/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_context_item_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_data_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_migration_status.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_node_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_operation_status.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_priority_level.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_severity.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_subscription_status.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/enums/enum_trust_level.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/errors/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/errors/embedding_errors.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/handler_subscription.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/handlers/models/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_embedding_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_postgres_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/container/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_context.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_request.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_memory_response.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/core/model_provenance.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_crawl_state_record.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/crawl/types.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/events/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_configuration.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_error_details.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_health_response.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_notes.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_priority.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_semver.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_system_health.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_tags.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/foundation/model_user.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_memory_item.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_memory_query.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/scoring/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/service/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/service/model_service_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/service/model_service_health.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/service/model_service_registry.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/constants.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/subscription/model_subscription.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_audit.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_concurrency.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_health_status.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_match.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_pii_type.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_retry_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/models/utils/model_system_health.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/nodes/base.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/base_protocols.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/data_models.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/error_models.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_crawl_state_repository.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_embedding.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/runtime/adapters.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/secrets.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/settings.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/tools/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/tools/contract_linter.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/tools/stubs/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/audit_logger.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/concurrency.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/db_url.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/error_sanitizer.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/handler_constants.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/health_manager.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/resource_manager.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/src/omnimemory/utils/retry_utils.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/test_handler_intent.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/handlers/test_handler_semantic_compute.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/conftest.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/nodes/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/test_entry_point_discovery.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/integration/test_handler_subscription.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/contracts/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/contracts/test_extended_contracts.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/events/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/models/events/test_model_intent_classified_event.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/nodes/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {omninode_memory-0.6.4/tests/unit/runtime → omninode_memory-0.7.0/tests/nodes/node_navigation_history_reducer}/__init__.py +0 -0
- {omninode_memory-0.6.4/tests/nodes/similarity_compute → omninode_memory-0.7.0/tests/nodes/node_similarity_compute}/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_bootstrap.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_concurrency.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_config_models.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_contract_validation.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_db_url.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_foundation.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_health_manager.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_migration_progress.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_node_enforcement.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_observability_metrics.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_performance.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_resource_manager.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_secrets_provider.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_settings.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/test_validation_scripts.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/handlers/test_subscription_typing.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/conftest.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_adapters.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_introspection.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_plugin.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/runtime/test_wiring.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_contract_linter.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_ingestion_models.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_io_audit.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_scope_mapping_config.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_sql_placeholders.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_validate_kafka_imports.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/tests/unit/test_validate_no_transport_imports.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/validate_architecture_improvements.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/validate_foundation.py +0 -0
- {omninode_memory-0.6.4 → omninode_memory-0.7.0}/validate_foundation_isolated.py +0 -0
- {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
|
|
@@ -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
|
|
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
|
-
# -
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
225
|
+
uses: actions/checkout@v6
|
|
226
226
|
|
|
227
227
|
- name: Set up Python
|
|
228
|
-
uses: actions/setup-python@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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
|
-
|
|
385
|
-
name:
|
|
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@
|
|
441
|
+
- uses: actions/checkout@v6
|
|
442
442
|
with:
|
|
443
443
|
fetch-depth: 0
|
|
444
444
|
- name: Set up Python
|
|
445
|
-
uses: actions/setup-python@
|
|
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. [
|
|
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.
|
|
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
|
-
Requires-Dist: omnibase-infra==0.
|
|
25
|
-
Requires-Dist: omnibase-spi==0.
|
|
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(
|
|
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(
|
|
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(
|
|
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.
|
|
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.
|
|
63
|
-
"omnibase-spi==0.
|
|
64
|
-
"omnibase-infra==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.
|
|
@@ -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/
|
|
109
|
+
"nodes/node_memory_retrieval_effect/clients/",
|
|
110
110
|
# Kreuzberg effect client - HTTP transport boundary for document extraction (OMN-2733)
|
|
111
|
-
"nodes/
|
|
111
|
+
"nodes/node_kreuzberg_parse_effect/clients/",
|
|
112
112
|
# Tests can mock HTTP clients
|
|
113
113
|
"tests/",
|
|
114
114
|
]
|