omninode-memory 0.12.2__tar.gz → 0.14.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.14.0/.github/workflows/auto-merge.yml +30 -0
- omninode_memory-0.14.0/.github/workflows/codeql.yml +23 -0
- omninode_memory-0.14.0/.github/workflows/pr-title-check.yml +15 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/CHANGELOG.md +23 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/PKG-INFO +2 -2
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/pyproject.toml +3 -3
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/runtime/dispatch_handlers.py +350 -17
- omninode_memory-0.14.0/src/omnimemory/runtime/handler_lifecycle.py +89 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/runtime/plugin.py +68 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/runtime/wiring.py +25 -1
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/test_plugin.py +15 -4
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/test_plugin_graph_memory_wiring.py +10 -0
- omninode_memory-0.14.0/tests/unit/runtime/test_plugin_integration_wiring.py +363 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/test_wiring.py +2 -1
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/uv.lock +6 -6
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.claude/architecture-handshake.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.env.example +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.flake8 +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/dependabot.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/required-checks.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/auto-tag-on-merge.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/build-and-push-migrate-image.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/check-handshake.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/ci.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/contract-validation.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/omni-standards-compliance.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/pre-commit.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/release-dry-run.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/release.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/security-scan.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/stale-todo-gate.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.github/workflows/todo-audit-on-merge.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.gitignore +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.markdown-link-check.json +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.pre-commit-config.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.secrets.baseline +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.serena/memories/project_overview.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.serena/memories/suggested_commands.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.serena/project.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/.yamlfmt +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/AGENT.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/CLAUDE.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/CODE_OF_CONDUCT.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/CONTRIBUTING.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/LICENSE +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/README.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/SECURITY.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/deployment/database/migrations/002_create_memories_table.sql +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/deployment/database/migrations/005_backfill_null_checksums.sql +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/deployment/docker/Dockerfile.migrate +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docker-compose.prod.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docker-compose.yml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/INDEX.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/PERFORMANCE_TESTING.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/architecture/ARCH_002_KAFKA_ABSTRACTION.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/ci/CI_MONITORING_GUIDE.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/db-split/fk-audit-omn-2069.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/environment_variables.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/handler_reuse_matrix.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/pii_handling.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/runtime/RUNTIME_PLUGINS.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/docs/stub_protocols.md +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/examples/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/examples/advanced_architecture_demo.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/pyrightconfig.json +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/check_migration_freeze.sh +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/check_no_hardcoded_bolt.sh +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validate_ci_precommit_alignment.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validate_no_transport_imports.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/check_ai_slop.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/check_kafka_no_hardcoded_fallback.sh +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_enum_casing.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_http_imports.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_kafka_imports.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_model_locations.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_naming.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_no_backward_compatibility.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_pydantic_patterns.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_secrets.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_single_class_per_file.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/scripts/validation/validate_spdx_headers.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/_compat_imports.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/audit/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/audit/__main__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/audit/io_audit.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/bootstrap.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/crawl/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_context_item_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_data_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_error_code.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_migration_status.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_node_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_operation_status.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_priority_level.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_severity.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_subscription_status.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/enums/enum_trust_level.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/errors/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/errors/embedding_errors.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/handler_intent.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/handler_subscription.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/handlers/models/model_handler_intent_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/adapters/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_embedding_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_postgres_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/container/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/contracts/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/core/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/core/model_memory_context.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/core/model_memory_request.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/core/model_memory_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/core/model_provenance.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/model_crawl_state_record.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/crawl/types.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/events/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_configuration.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_error_details.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_health_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_notes.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_priority.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_semver.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_system_health.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_tags.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/foundation/model_user.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/intelligence/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/memory/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/memory/model_memory_item.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/memory/model_memory_query.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/scoring/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/service/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/service/model_service_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/service/model_service_health.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/service/model_service_registry.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/subscription/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/subscription/constants.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/subscription/model_subscription.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_audit.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_concurrency.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_health_status.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_pii_match.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_pii_type.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_retry_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/models/utils/model_system_health.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/base.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_request.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/handler_filesystem_crawler.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/model_filesystem_crawl_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/model_filesystem_crawler_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/handler_intent_event_consumer.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/model_consumer_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/model_consumer_health.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/utils/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_event_consumer_effect/utils/util_event_mapper.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/handlers/handler_intent_query.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/models/model_handler_intent_query_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/registry/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/registry/registry_intent_query_effect.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/utils/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_query_effect/utils/util_intent_mapping.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_storage_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_storage_effect/adapters/adapter_intent_storage.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_request.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/clients/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/clients/client_kreuzberg.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/handler_kreuzberg_parse.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_result.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_consolidator_reducer/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_postgres_deactivate_memory.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_runtime_tick_memory.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_archive.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_expire.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_tick.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/validator_lifecycle_transition.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/clients/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/clients/embedding_client.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_db_mock.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_graph_mock.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_memory_retrieval.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant_mock.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_embedding_client_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_db_mock_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_graph_mock_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_mock_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_request.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_storage_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_storage_effect/adapters/adapter_filesystem.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_request.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_navigation_history_reducer/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/handler_navigation_history_reducer.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_navigation_history_reducer/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_request.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_session.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_navigation_history_reducer/node_navigation_history_reducer.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/handler_semantic_compute.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_request.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_semantic_analyzer_compute/node_semantic_analyzer_compute.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_similarity_compute/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_similarity_compute/contract.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_similarity_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_similarity_compute/handlers/handler_similarity_compute.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_similarity_compute/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_similarity_compute/models/model_handler_similarity_compute_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_request.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_response.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_similarity_compute/node_similarity_compute.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/nodes/node_statistics_reducer/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/base_protocols.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/data_models.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/error_models.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/protocol_crawl_state_repository.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/protocol_embedding.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/protocol_handler_intent.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/runtime/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/runtime/adapters.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/runtime/contract_topics.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/runtime/introspection.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/runtime/message_type_registration.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/secrets.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/settings.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/tools/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/tools/contract_linter.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/tools/stubs/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/tools/stubs/contract_validator.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/audit_logger.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/concurrency.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/db_url.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/error_sanitizer.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/handler_constants.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/health_manager.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/observability.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/pii_detector.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/resource_manager.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/utils/retry_utils.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/audit/io_audit_whitelist.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/audit/transport_import_whitelist.yaml +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/conftest.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/test_handler_intent.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/handlers/test_handler_semantic_compute.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/conftest.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/nodes/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/nodes/test_kreuzberg_parse_effect.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/nodes/test_navigation_history_reducer_integration.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/test_entry_point_discovery.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/test_handler_lifecycle_pattern.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/test_handler_subscription.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/integration/test_node_agent_coordinator.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/models/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/models/contracts/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/models/contracts/test_extended_contracts.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/models/events/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/models/events/test_model_intent_classified_event.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/models/test_frozen_boundary_models.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_filesystem_crawler_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_filesystem_crawler_effect/test_handler_filesystem_crawler.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_intent_event_consumer_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_intent_event_consumer_effect/test_handler_intent_event_consumer.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_intent_event_consumer_effect/test_model_consumer_health.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_intent_event_consumer_effect/test_util_event_mapper.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_intent_query_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_intent_query_effect/conftest.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_intent_query_effect/test_handler_intent_query_integration.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_intent_storage_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_intent_storage_effect/test_handler_intent_storage_adapter_integration.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_memory_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_memory_retrieval_effect/test_memory_retrieval_effect.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_memory_storage_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_memory_storage_effect/test_memory_storage_effect.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_navigation_history_reducer/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_navigation_history_reducer/test_navigation_history_reducer_unit.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_similarity_compute/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/nodes/node_similarity_compute/test_similarity_compute.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_bootstrap.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_concurrency.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_config_models.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_contract_validation.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_contract_version.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_db_url.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_foundation.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_health_manager.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_migration_progress.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_node_enforcement.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_node_imports.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_observability_metrics.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_performance.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_resource_manager.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_secrets_provider.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_settings.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/test_validation_scripts.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/handlers/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/handlers/test_subscription_typing.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_handler_qdrant.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/nodes/test_model_handler_qdrant_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/__init__.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/conftest.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/test_adapters.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/test_contract_topics.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/test_introspection.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/test_message_type_registration.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/runtime/test_plugin_memory_validate_handshake.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_contract_linter.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_dispatch_retrieval_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_entry_points.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_ingestion_models.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_io_audit.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_scope_mapping_config.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_sql_placeholders.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_validate_ci_precommit_alignment.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_validate_kafka_imports.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/tests/unit/test_validate_no_transport_imports.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/validate_architecture_improvements.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/validate_foundation.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/validate_foundation_isolated.py +0 -0
- {omninode_memory-0.12.2 → omninode_memory-0.14.0}/validate_foundation_minimal.py +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
# OMN-6571: Automatically enable auto-merge (squash) on every PR opened
|
|
5
|
+
# by jonahgabriel. Ensures PRs do not sit idle in the merge queue waiting
|
|
6
|
+
# for manual enrollment.
|
|
7
|
+
name: Auto-Merge
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
pull_request:
|
|
11
|
+
types: [opened, reopened, ready_for_review]
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: write
|
|
15
|
+
pull-requests: write
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
auto-merge:
|
|
19
|
+
name: Enable Auto-Merge
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
if: github.actor == 'jonahgabriel'
|
|
22
|
+
steps:
|
|
23
|
+
# continue-on-error: merge queue re-triggers this workflow, and
|
|
24
|
+
# gh pr merge fails with "already enqueued" — that is expected.
|
|
25
|
+
- name: Enable auto-merge (squash)
|
|
26
|
+
continue-on-error: true
|
|
27
|
+
run: gh pr merge "${{ github.event.pull_request.number }}" --auto --squash
|
|
28
|
+
env:
|
|
29
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
30
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
# CodeQL caller workflow — delegates to onex_change_control reusable workflow.
|
|
5
|
+
# OMN-5412
|
|
6
|
+
name: CodeQL
|
|
7
|
+
|
|
8
|
+
on:
|
|
9
|
+
push:
|
|
10
|
+
branches: [main]
|
|
11
|
+
pull_request:
|
|
12
|
+
branches: [main]
|
|
13
|
+
schedule:
|
|
14
|
+
- cron: "0 6 * * 1" # Weekly Monday 6am UTC
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
codeql:
|
|
18
|
+
uses: OmniNode-ai/onex_change_control/.github/workflows/codeql-reusable.yml@main
|
|
19
|
+
permissions:
|
|
20
|
+
actions: read
|
|
21
|
+
contents: read
|
|
22
|
+
security-events: write
|
|
23
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
# OMN-6912
|
|
4
|
+
|
|
5
|
+
name: PR Title Check
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
pull_request:
|
|
9
|
+
types: [opened, edited]
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
pr-title:
|
|
13
|
+
uses: OmniNode-ai/onex_change_control/.github/workflows/pr-title-check-reusable.yml@main
|
|
14
|
+
permissions:
|
|
15
|
+
pull-requests: read
|
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
## v0.14.0 (2026-03-30)
|
|
2
|
+
|
|
3
|
+
### Changed
|
|
4
|
+
- release: omnimemory v0.14.0 coordinated release
|
|
5
|
+
- chore(deps): bump omnibase-core to 0.35.0, omnibase-infra to 0.30.0
|
|
6
|
+
|
|
7
|
+
### Dependencies
|
|
8
|
+
- omnibase-core 0.34.0 -> 0.35.0
|
|
9
|
+
- omnibase-infra 0.29.0 -> 0.30.0
|
|
10
|
+
|
|
11
|
+
## v0.13.0 (2026-03-28)
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
- ci: add CodeQL security scanning workflow [OMN-5412] (#214)
|
|
15
|
+
- feat(ci): add auto-merge-on-open workflow [OMN-6571] (#213)
|
|
16
|
+
- feat(runtime): wire AdapterGraphMemory into PluginMemory [OMN-6578] (#211)
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- chore(deps): bump omnibase-core to 0.34.0
|
|
20
|
+
|
|
21
|
+
### Dependencies
|
|
22
|
+
- omnibase-core 0.33.1 -> 0.34.0
|
|
23
|
+
|
|
1
24
|
## v0.12.2 (2026-03-27)
|
|
2
25
|
|
|
3
26
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omninode-memory
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.14.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,7 +20,7 @@ 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.
|
|
23
|
+
Requires-Dist: omnibase-core==0.34.0
|
|
24
24
|
Requires-Dist: omnibase-infra==0.28.0
|
|
25
25
|
Requires-Dist: omnibase-spi>=0.19.1
|
|
26
26
|
Requires-Dist: pinecone-client<7.0.0,>=4.1.0
|
|
@@ -7,7 +7,7 @@ build-backend = "hatchling.build"
|
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "omninode-memory"
|
|
10
|
-
version = "0.
|
|
10
|
+
version = "0.14.0"
|
|
11
11
|
description = "OmniNode document ingestion and semantic retrieval"
|
|
12
12
|
readme = "README.md"
|
|
13
13
|
requires-python = ">=3.12,<3.14"
|
|
@@ -59,7 +59,7 @@ dependencies = [
|
|
|
59
59
|
"pyyaml>=6.0.2,<7.0.0",
|
|
60
60
|
|
|
61
61
|
# ONEX dependencies - versioned releases from PyPI
|
|
62
|
-
"omnibase-core==0.
|
|
62
|
+
"omnibase-core==0.34.0",
|
|
63
63
|
"omnibase-spi>=0.19.1",
|
|
64
64
|
"omnibase-infra==0.28.0",
|
|
65
65
|
|
|
@@ -363,6 +363,6 @@ markers = [
|
|
|
363
363
|
[tool.uv]
|
|
364
364
|
# Override omnibase-infra's transitive pins on core/spi so our direct pins win.
|
|
365
365
|
override-dependencies = [
|
|
366
|
-
"omnibase-core==0.
|
|
366
|
+
"omnibase-core==0.34.0",
|
|
367
367
|
"omnibase-spi>=0.19.1",
|
|
368
368
|
]
|
{omninode_memory-0.12.2 → omninode_memory-0.14.0}/src/omnimemory/runtime/dispatch_handlers.py
RENAMED
|
@@ -50,6 +50,7 @@ if TYPE_CHECKING:
|
|
|
50
50
|
from omnimemory.nodes.node_memory_retrieval_effect.models import (
|
|
51
51
|
ModelHandlerMemoryRetrievalConfig,
|
|
52
52
|
)
|
|
53
|
+
from omnimemory.runtime.handler_lifecycle import HandlerMemoryLifecycle
|
|
53
54
|
|
|
54
55
|
logger = logging.getLogger(__name__)
|
|
55
56
|
|
|
@@ -126,6 +127,17 @@ DISPATCH_ALIAS_MEMORY_RETRIEVAL_REQUESTED = (
|
|
|
126
127
|
DISPATCH_ALIAS_GRAPH_MEMORY = "onex.commands.omnimemory.graph-memory-query.v1"
|
|
127
128
|
"""Dispatch-compatible alias for graph memory query/mutation operations (OMN-6578)."""
|
|
128
129
|
|
|
130
|
+
DISPATCH_ALIAS_INTENT_GRAPH = "onex.commands.omnimemory.intent-graph-query.v1"
|
|
131
|
+
"""Dispatch-compatible alias for intent graph query/mutation operations (OMN-6579)."""
|
|
132
|
+
|
|
133
|
+
DISPATCH_ALIAS_NAVIGATION_HISTORY = (
|
|
134
|
+
"onex.commands.omnimemory.navigation-history-session.v1"
|
|
135
|
+
)
|
|
136
|
+
"""Dispatch-compatible alias for navigation history session events (OMN-6583)."""
|
|
137
|
+
|
|
138
|
+
DISPATCH_ALIAS_SEMANTIC_COMPUTE = "onex.commands.omnimemory.semantic-analysis.v1"
|
|
139
|
+
"""Dispatch-compatible alias for semantic analysis requests (OMN-6585)."""
|
|
140
|
+
|
|
129
141
|
|
|
130
142
|
# =============================================================================
|
|
131
143
|
# Bridge Handler: Intent Classified Event
|
|
@@ -579,22 +591,249 @@ def _create_graph_memory_dispatch_handler(
|
|
|
579
591
|
logger.warning(msg)
|
|
580
592
|
raise ValueError(msg)
|
|
581
593
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
"
|
|
594
|
+
operation = payload.get("operation", "unknown")
|
|
595
|
+
logger.warning(
|
|
596
|
+
"Graph memory command received but adapter dispatch not yet wired "
|
|
597
|
+
"(operation=%s, correlation_id=%s) -- acknowledging as no-op. "
|
|
598
|
+
"See OMN-6580 follow-up tasks for operation routing.",
|
|
599
|
+
operation,
|
|
585
600
|
ctx_correlation_id,
|
|
586
601
|
)
|
|
587
602
|
|
|
588
|
-
#
|
|
589
|
-
#
|
|
590
|
-
|
|
603
|
+
# TODO(OMN-6580): Route to adapter.store() / adapter.query() based on
|
|
604
|
+
# operation field. Currently validates and acknowledges.
|
|
605
|
+
return ""
|
|
606
|
+
|
|
607
|
+
return _handle
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
# =============================================================================
|
|
611
|
+
# Bridge Handler: Intent Graph Adapter (OMN-6579)
|
|
612
|
+
# =============================================================================
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
def _create_intent_graph_dispatch_handler(
|
|
616
|
+
*,
|
|
617
|
+
adapter: object,
|
|
618
|
+
) -> Callable[
|
|
619
|
+
[ModelEventEnvelope[object], ProtocolHandlerContext],
|
|
620
|
+
Awaitable[str],
|
|
621
|
+
]:
|
|
622
|
+
"""Create a dispatch engine handler for intent graph operations.
|
|
623
|
+
|
|
624
|
+
Args:
|
|
625
|
+
adapter: An ``AdapterIntentGraph`` instance (typed as ``object`` to
|
|
626
|
+
avoid importing the adapter at module level).
|
|
627
|
+
|
|
628
|
+
Returns:
|
|
629
|
+
Async handler function with signature (envelope, context) -> str.
|
|
630
|
+
"""
|
|
631
|
+
|
|
632
|
+
async def _handle(
|
|
633
|
+
envelope: ModelEventEnvelope[object],
|
|
634
|
+
context: ProtocolHandlerContext,
|
|
635
|
+
) -> str:
|
|
636
|
+
"""Bridge handler: envelope -> AdapterIntentGraph operation."""
|
|
637
|
+
ctx_correlation_id = getattr(context, "correlation_id", None) or uuid4()
|
|
638
|
+
|
|
639
|
+
payload = envelope.payload
|
|
640
|
+
if not isinstance(payload, dict):
|
|
641
|
+
msg = (
|
|
642
|
+
f"Unexpected payload type {type(payload).__name__} "
|
|
643
|
+
f"for intent-graph command "
|
|
644
|
+
f"(correlation_id={ctx_correlation_id})"
|
|
645
|
+
)
|
|
646
|
+
logger.warning(msg)
|
|
647
|
+
raise ValueError(msg)
|
|
648
|
+
|
|
591
649
|
operation = payload.get("operation", "unknown")
|
|
592
|
-
logger.
|
|
593
|
-
"
|
|
650
|
+
logger.warning(
|
|
651
|
+
"Intent graph command received but adapter dispatch not yet wired "
|
|
652
|
+
"(operation=%s, correlation_id=%s) -- acknowledging as no-op. "
|
|
653
|
+
"See OMN-6579 follow-up tasks for operation routing.",
|
|
594
654
|
operation,
|
|
595
655
|
ctx_correlation_id,
|
|
596
656
|
)
|
|
597
657
|
|
|
658
|
+
# TODO(OMN-6579): Route to adapter methods based on operation field.
|
|
659
|
+
# Currently validates and acknowledges; full dispatch in follow-up PR.
|
|
660
|
+
return ""
|
|
661
|
+
|
|
662
|
+
return _handle
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
# =============================================================================
|
|
666
|
+
# Bridge Handler: Navigation History Reducer (OMN-6583)
|
|
667
|
+
# =============================================================================
|
|
668
|
+
|
|
669
|
+
|
|
670
|
+
def _create_navigation_history_dispatch_handler(
|
|
671
|
+
*,
|
|
672
|
+
handler: object,
|
|
673
|
+
) -> Callable[
|
|
674
|
+
[ModelEventEnvelope[object], ProtocolHandlerContext],
|
|
675
|
+
Awaitable[str],
|
|
676
|
+
]:
|
|
677
|
+
"""Create a dispatch engine handler for navigation history sessions.
|
|
678
|
+
|
|
679
|
+
Args:
|
|
680
|
+
handler: A ``HandlerNavigationHistoryReducer`` instance.
|
|
681
|
+
|
|
682
|
+
Returns:
|
|
683
|
+
Async handler function with signature (envelope, context) -> str.
|
|
684
|
+
"""
|
|
685
|
+
|
|
686
|
+
async def _handle(
|
|
687
|
+
envelope: ModelEventEnvelope[object],
|
|
688
|
+
context: ProtocolHandlerContext,
|
|
689
|
+
) -> str:
|
|
690
|
+
"""Bridge handler: envelope -> HandlerNavigationHistoryReducer."""
|
|
691
|
+
ctx_correlation_id = getattr(context, "correlation_id", None) or uuid4()
|
|
692
|
+
|
|
693
|
+
payload = envelope.payload
|
|
694
|
+
if not isinstance(payload, dict):
|
|
695
|
+
msg = (
|
|
696
|
+
f"Unexpected payload type {type(payload).__name__} "
|
|
697
|
+
f"for navigation-history command "
|
|
698
|
+
f"(correlation_id={ctx_correlation_id})"
|
|
699
|
+
)
|
|
700
|
+
logger.warning(msg)
|
|
701
|
+
raise ValueError(msg)
|
|
702
|
+
|
|
703
|
+
logger.warning(
|
|
704
|
+
"Navigation history session event received but handler dispatch "
|
|
705
|
+
"not yet wired (correlation_id=%s) -- acknowledging as no-op. "
|
|
706
|
+
"See OMN-6583 follow-up tasks for session routing.",
|
|
707
|
+
ctx_correlation_id,
|
|
708
|
+
)
|
|
709
|
+
|
|
710
|
+
# TODO(OMN-6583): Route to handler.record_session() / handler.query()
|
|
711
|
+
# based on payload command field. Currently validates and acknowledges.
|
|
712
|
+
return ""
|
|
713
|
+
|
|
714
|
+
return _handle
|
|
715
|
+
|
|
716
|
+
|
|
717
|
+
# =============================================================================
|
|
718
|
+
# Bridge Handler: Semantic Compute (OMN-6585)
|
|
719
|
+
# =============================================================================
|
|
720
|
+
|
|
721
|
+
|
|
722
|
+
def _create_semantic_compute_dispatch_handler(
|
|
723
|
+
*,
|
|
724
|
+
handler: object,
|
|
725
|
+
) -> Callable[
|
|
726
|
+
[ModelEventEnvelope[object], ProtocolHandlerContext],
|
|
727
|
+
Awaitable[str],
|
|
728
|
+
]:
|
|
729
|
+
"""Create a dispatch engine handler for semantic analysis requests.
|
|
730
|
+
|
|
731
|
+
Args:
|
|
732
|
+
handler: A ``HandlerSemanticCompute`` instance.
|
|
733
|
+
|
|
734
|
+
Returns:
|
|
735
|
+
Async handler function with signature (envelope, context) -> str.
|
|
736
|
+
"""
|
|
737
|
+
|
|
738
|
+
async def _handle(
|
|
739
|
+
envelope: ModelEventEnvelope[object],
|
|
740
|
+
context: ProtocolHandlerContext,
|
|
741
|
+
) -> str:
|
|
742
|
+
"""Bridge handler: envelope -> HandlerSemanticCompute."""
|
|
743
|
+
ctx_correlation_id = getattr(context, "correlation_id", None) or uuid4()
|
|
744
|
+
|
|
745
|
+
payload = envelope.payload
|
|
746
|
+
if not isinstance(payload, dict):
|
|
747
|
+
msg = (
|
|
748
|
+
f"Unexpected payload type {type(payload).__name__} "
|
|
749
|
+
f"for semantic-compute command "
|
|
750
|
+
f"(correlation_id={ctx_correlation_id})"
|
|
751
|
+
)
|
|
752
|
+
logger.warning(msg)
|
|
753
|
+
raise ValueError(msg)
|
|
754
|
+
|
|
755
|
+
logger.warning(
|
|
756
|
+
"Semantic analysis request received but handler dispatch "
|
|
757
|
+
"not yet wired (correlation_id=%s) -- acknowledging as no-op. "
|
|
758
|
+
"See OMN-6585 follow-up tasks for compute routing.",
|
|
759
|
+
ctx_correlation_id,
|
|
760
|
+
)
|
|
761
|
+
|
|
762
|
+
# TODO(OMN-6585): Route to handler.analyze() based on payload.
|
|
763
|
+
# Currently validates and acknowledges.
|
|
764
|
+
return ""
|
|
765
|
+
|
|
766
|
+
return _handle
|
|
767
|
+
|
|
768
|
+
|
|
769
|
+
# =============================================================================
|
|
770
|
+
# Bridge Handler: Lifecycle (OMN-6588)
|
|
771
|
+
# =============================================================================
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
def _create_lifecycle_bridge_handler(
|
|
775
|
+
*,
|
|
776
|
+
lifecycle: HandlerMemoryLifecycle,
|
|
777
|
+
) -> Callable[
|
|
778
|
+
[ModelEventEnvelope[object], ProtocolHandlerContext],
|
|
779
|
+
Awaitable[str],
|
|
780
|
+
]:
|
|
781
|
+
"""Create a dispatch engine handler for lifecycle commands.
|
|
782
|
+
|
|
783
|
+
Replaces the no-op handler with a bridge to HandlerMemoryLifecycle.
|
|
784
|
+
Handles runtime-tick, archive-memory, and expire-memory commands.
|
|
785
|
+
|
|
786
|
+
Args:
|
|
787
|
+
lifecycle: A ``HandlerMemoryLifecycle`` instance.
|
|
788
|
+
|
|
789
|
+
Returns:
|
|
790
|
+
Async handler function with signature (envelope, context) -> str.
|
|
791
|
+
"""
|
|
792
|
+
|
|
793
|
+
async def _handle(
|
|
794
|
+
envelope: ModelEventEnvelope[object],
|
|
795
|
+
context: ProtocolHandlerContext,
|
|
796
|
+
) -> str:
|
|
797
|
+
"""Bridge handler: envelope -> HandlerMemoryLifecycle."""
|
|
798
|
+
ctx_correlation_id = getattr(context, "correlation_id", None) or uuid4()
|
|
799
|
+
|
|
800
|
+
topic = getattr(envelope, "event_type", None) or "unknown"
|
|
801
|
+
payload = envelope.payload
|
|
802
|
+
command = payload.get("command", "") if isinstance(payload, dict) else ""
|
|
803
|
+
|
|
804
|
+
logger.info(
|
|
805
|
+
"Lifecycle command received (topic=%s, command=%s, correlation_id=%s)",
|
|
806
|
+
topic,
|
|
807
|
+
command,
|
|
808
|
+
ctx_correlation_id,
|
|
809
|
+
)
|
|
810
|
+
|
|
811
|
+
# Ensure the lifecycle handler is started before processing commands.
|
|
812
|
+
if not lifecycle.is_started():
|
|
813
|
+
with contextlib.suppress(Exception):
|
|
814
|
+
await lifecycle.handle_startup()
|
|
815
|
+
|
|
816
|
+
# Route lifecycle commands.
|
|
817
|
+
if command in ("shutdown", "expire-memory"):
|
|
818
|
+
# Shutdown is the only lifecycle teardown method available.
|
|
819
|
+
# archive-memory has no dedicated handler yet (OMN-6588 follow-up).
|
|
820
|
+
logger.info(
|
|
821
|
+
"Lifecycle shutdown requested (command=%s, correlation_id=%s)",
|
|
822
|
+
command,
|
|
823
|
+
ctx_correlation_id,
|
|
824
|
+
)
|
|
825
|
+
with contextlib.suppress(Exception):
|
|
826
|
+
await lifecycle.handle_shutdown()
|
|
827
|
+
elif command == "archive-memory":
|
|
828
|
+
# TODO(OMN-6588): Wire archive-memory to a dedicated handler.
|
|
829
|
+
# Currently acknowledged as no-op; the lifecycle handler does not
|
|
830
|
+
# have an archive method yet.
|
|
831
|
+
logger.warning(
|
|
832
|
+
"archive-memory command not yet implemented "
|
|
833
|
+
"(correlation_id=%s) -- acknowledging as no-op",
|
|
834
|
+
ctx_correlation_id,
|
|
835
|
+
)
|
|
836
|
+
|
|
598
837
|
return ""
|
|
599
838
|
|
|
600
839
|
return _handle
|
|
@@ -614,18 +853,24 @@ def create_memory_dispatch_engine(
|
|
|
614
853
|
| None = None,
|
|
615
854
|
publish_topics: dict[str, str] | None = None,
|
|
616
855
|
graph_memory_adapter: object | None = None,
|
|
856
|
+
intent_graph_adapter: object | None = None,
|
|
857
|
+
navigation_history_handler: object | None = None,
|
|
858
|
+
semantic_compute_handler: object | None = None,
|
|
617
859
|
) -> MessageDispatchEngine:
|
|
618
860
|
"""Create and configure a MessageDispatchEngine for OmniMemory domain.
|
|
619
861
|
|
|
620
862
|
Creates the engine, registers all omnimemory domain handlers and routes,
|
|
621
863
|
and freezes it. The engine is ready for dispatch after this call.
|
|
622
864
|
|
|
623
|
-
Registers 4
|
|
865
|
+
Registers 4-8 handlers covering 6-10 routes:
|
|
624
866
|
1. intent-classified handler (1 route: intent-classified.v1 events)
|
|
625
867
|
2. intent-query handler (1 route: intent-query-requested.v1 commands)
|
|
626
|
-
3. memory-retrieval handler (1 route: memory-retrieval-requested.v1
|
|
627
|
-
4. lifecycle handler (3 routes: runtime-tick, archive, expire
|
|
628
|
-
5. graph-memory handler (optional, 1 route
|
|
868
|
+
3. memory-retrieval handler (1 route: memory-retrieval-requested.v1)
|
|
869
|
+
4. lifecycle handler (3 routes: runtime-tick, archive, expire)
|
|
870
|
+
5. graph-memory handler (optional, 1 route -- OMN-6578)
|
|
871
|
+
6. intent-graph handler (optional, 1 route -- OMN-6579)
|
|
872
|
+
7. navigation-history handler (optional, 1 route -- OMN-6583)
|
|
873
|
+
8. semantic-compute handler (optional, 1 route -- OMN-6585)
|
|
629
874
|
|
|
630
875
|
Args:
|
|
631
876
|
intent_consumer: REQUIRED intent event consumer handler.
|
|
@@ -635,9 +880,12 @@ def create_memory_dispatch_engine(
|
|
|
635
880
|
publish_topics: Optional mapping of handler name to publish topic.
|
|
636
881
|
Keys: "intent_query". Values: full topic strings from contract
|
|
637
882
|
event_bus.publish_topics.
|
|
638
|
-
graph_memory_adapter: Optional AdapterGraphMemory instance.
|
|
639
|
-
|
|
640
|
-
|
|
883
|
+
graph_memory_adapter: Optional AdapterGraphMemory instance (OMN-6578).
|
|
884
|
+
intent_graph_adapter: Optional AdapterIntentGraph instance (OMN-6579).
|
|
885
|
+
navigation_history_handler: Optional HandlerNavigationHistoryReducer
|
|
886
|
+
instance (OMN-6583).
|
|
887
|
+
semantic_compute_handler: Optional HandlerSemanticCompute instance
|
|
888
|
+
(OMN-6585).
|
|
641
889
|
|
|
642
890
|
Returns:
|
|
643
891
|
Frozen MessageDispatchEngine ready for dispatch.
|
|
@@ -722,8 +970,18 @@ def create_memory_dispatch_engine(
|
|
|
722
970
|
)
|
|
723
971
|
)
|
|
724
972
|
|
|
725
|
-
# --- Handler 4: lifecycle orchestrator (
|
|
726
|
-
|
|
973
|
+
# --- Handler 4: lifecycle orchestrator (OMN-6588) ---
|
|
974
|
+
# Uses real HandlerMemoryLifecycle when components are available,
|
|
975
|
+
# falls back to no-op when none are provided.
|
|
976
|
+
from omnimemory.runtime.handler_lifecycle import HandlerMemoryLifecycle
|
|
977
|
+
|
|
978
|
+
_lifecycle = HandlerMemoryLifecycle(
|
|
979
|
+
graph_memory_adapter=graph_memory_adapter,
|
|
980
|
+
intent_graph_adapter=intent_graph_adapter,
|
|
981
|
+
navigation_handler=navigation_history_handler,
|
|
982
|
+
semantic_handler=semantic_compute_handler,
|
|
983
|
+
)
|
|
984
|
+
lifecycle_handler = _create_lifecycle_bridge_handler(lifecycle=_lifecycle)
|
|
727
985
|
engine.register_handler(
|
|
728
986
|
handler_id="memory-lifecycle-handler",
|
|
729
987
|
handler=lifecycle_handler,
|
|
@@ -792,6 +1050,81 @@ def create_memory_dispatch_engine(
|
|
|
792
1050
|
)
|
|
793
1051
|
)
|
|
794
1052
|
|
|
1053
|
+
# --- Handler 6 (optional): intent graph adapter (OMN-6579) ---
|
|
1054
|
+
if intent_graph_adapter is not None:
|
|
1055
|
+
intent_graph_handler = _create_intent_graph_dispatch_handler(
|
|
1056
|
+
adapter=intent_graph_adapter,
|
|
1057
|
+
)
|
|
1058
|
+
engine.register_handler(
|
|
1059
|
+
handler_id="memory-intent-graph-handler",
|
|
1060
|
+
handler=intent_graph_handler,
|
|
1061
|
+
category=EnumMessageCategory.COMMAND,
|
|
1062
|
+
node_kind=EnumNodeKind.EFFECT,
|
|
1063
|
+
message_types=None,
|
|
1064
|
+
)
|
|
1065
|
+
engine.register_route(
|
|
1066
|
+
ModelDispatchRoute(
|
|
1067
|
+
route_id="memory-intent-graph-route",
|
|
1068
|
+
topic_pattern=DISPATCH_ALIAS_INTENT_GRAPH,
|
|
1069
|
+
message_category=EnumMessageCategory.COMMAND,
|
|
1070
|
+
handler_id="memory-intent-graph-handler",
|
|
1071
|
+
description=(
|
|
1072
|
+
"Routes intent graph queries/mutations to "
|
|
1073
|
+
"AdapterIntentGraph (OMN-6579)."
|
|
1074
|
+
),
|
|
1075
|
+
)
|
|
1076
|
+
)
|
|
1077
|
+
|
|
1078
|
+
# --- Handler 7 (optional): navigation history reducer (OMN-6583) ---
|
|
1079
|
+
if navigation_history_handler is not None:
|
|
1080
|
+
nav_dispatch_handler = _create_navigation_history_dispatch_handler(
|
|
1081
|
+
handler=navigation_history_handler,
|
|
1082
|
+
)
|
|
1083
|
+
engine.register_handler(
|
|
1084
|
+
handler_id="memory-navigation-history-handler",
|
|
1085
|
+
handler=nav_dispatch_handler,
|
|
1086
|
+
category=EnumMessageCategory.COMMAND,
|
|
1087
|
+
node_kind=EnumNodeKind.REDUCER,
|
|
1088
|
+
message_types=None,
|
|
1089
|
+
)
|
|
1090
|
+
engine.register_route(
|
|
1091
|
+
ModelDispatchRoute(
|
|
1092
|
+
route_id="memory-navigation-history-route",
|
|
1093
|
+
topic_pattern=DISPATCH_ALIAS_NAVIGATION_HISTORY,
|
|
1094
|
+
message_category=EnumMessageCategory.COMMAND,
|
|
1095
|
+
handler_id="memory-navigation-history-handler",
|
|
1096
|
+
description=(
|
|
1097
|
+
"Routes navigation history session events to "
|
|
1098
|
+
"HandlerNavigationHistoryReducer (OMN-6583)."
|
|
1099
|
+
),
|
|
1100
|
+
)
|
|
1101
|
+
)
|
|
1102
|
+
|
|
1103
|
+
# --- Handler 8 (optional): semantic compute (OMN-6585) ---
|
|
1104
|
+
if semantic_compute_handler is not None:
|
|
1105
|
+
semantic_dispatch_handler = _create_semantic_compute_dispatch_handler(
|
|
1106
|
+
handler=semantic_compute_handler,
|
|
1107
|
+
)
|
|
1108
|
+
engine.register_handler(
|
|
1109
|
+
handler_id="memory-semantic-compute-handler",
|
|
1110
|
+
handler=semantic_dispatch_handler,
|
|
1111
|
+
category=EnumMessageCategory.COMMAND,
|
|
1112
|
+
node_kind=EnumNodeKind.COMPUTE,
|
|
1113
|
+
message_types=None,
|
|
1114
|
+
)
|
|
1115
|
+
engine.register_route(
|
|
1116
|
+
ModelDispatchRoute(
|
|
1117
|
+
route_id="memory-semantic-compute-route",
|
|
1118
|
+
topic_pattern=DISPATCH_ALIAS_SEMANTIC_COMPUTE,
|
|
1119
|
+
message_category=EnumMessageCategory.COMMAND,
|
|
1120
|
+
handler_id="memory-semantic-compute-handler",
|
|
1121
|
+
description=(
|
|
1122
|
+
"Routes semantic analysis requests to "
|
|
1123
|
+
"HandlerSemanticCompute (OMN-6585)."
|
|
1124
|
+
),
|
|
1125
|
+
)
|
|
1126
|
+
)
|
|
1127
|
+
|
|
795
1128
|
engine.freeze()
|
|
796
1129
|
|
|
797
1130
|
logger.info(
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
"""Real lifecycle handler for omnimemory subsystem (OMN-6588).
|
|
5
|
+
|
|
6
|
+
Replaces the no-op lifecycle handler (OMN-1453, OMN-1524) with a handler that
|
|
7
|
+
manages startup and shutdown of graph adapters, navigation history, and
|
|
8
|
+
semantic compute components.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import logging
|
|
14
|
+
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class HandlerMemoryLifecycle:
|
|
19
|
+
"""Manages startup/shutdown of memory subsystem components.
|
|
20
|
+
|
|
21
|
+
Replaces the no-op handler referenced in OMN-1453 and OMN-1524.
|
|
22
|
+
Each component is optional -- the handler gracefully skips components
|
|
23
|
+
that were not provided at construction time.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
def __init__(
|
|
27
|
+
self,
|
|
28
|
+
*,
|
|
29
|
+
graph_memory_adapter: object | None = None,
|
|
30
|
+
intent_graph_adapter: object | None = None,
|
|
31
|
+
navigation_handler: object | None = None,
|
|
32
|
+
semantic_handler: object | None = None,
|
|
33
|
+
) -> None:
|
|
34
|
+
self._graph_memory = graph_memory_adapter
|
|
35
|
+
self._intent_graph = intent_graph_adapter
|
|
36
|
+
self._navigation = navigation_handler
|
|
37
|
+
self._semantic = semantic_handler
|
|
38
|
+
self._started = False
|
|
39
|
+
|
|
40
|
+
async def handle_startup(self) -> dict[str, str]:
|
|
41
|
+
"""Initialize all memory subsystem components.
|
|
42
|
+
|
|
43
|
+
Returns:
|
|
44
|
+
Status dict mapping component name to initialization status.
|
|
45
|
+
"""
|
|
46
|
+
statuses: dict[str, str] = {}
|
|
47
|
+
if self._graph_memory is not None:
|
|
48
|
+
statuses["graph_memory"] = "initialized"
|
|
49
|
+
if self._intent_graph is not None:
|
|
50
|
+
statuses["intent_graph"] = "initialized"
|
|
51
|
+
if self._navigation is not None:
|
|
52
|
+
statuses["navigation_history"] = "initialized"
|
|
53
|
+
if self._semantic is not None:
|
|
54
|
+
statuses["semantic_compute"] = "initialized"
|
|
55
|
+
self._started = True
|
|
56
|
+
logger.info(
|
|
57
|
+
"Memory lifecycle started (components=%d)",
|
|
58
|
+
len(statuses),
|
|
59
|
+
extra={"statuses": statuses},
|
|
60
|
+
)
|
|
61
|
+
return statuses
|
|
62
|
+
|
|
63
|
+
async def handle_shutdown(self) -> None:
|
|
64
|
+
"""Graceful shutdown of memory subsystem components."""
|
|
65
|
+
self._started = False
|
|
66
|
+
logger.info("Memory lifecycle stopped")
|
|
67
|
+
|
|
68
|
+
def is_started(self) -> bool:
|
|
69
|
+
"""Check if the lifecycle handler has been started."""
|
|
70
|
+
return self._started
|
|
71
|
+
|
|
72
|
+
@property
|
|
73
|
+
def component_count(self) -> int:
|
|
74
|
+
"""Number of components managed by this lifecycle handler."""
|
|
75
|
+
count = 0
|
|
76
|
+
if self._graph_memory is not None:
|
|
77
|
+
count += 1
|
|
78
|
+
if self._intent_graph is not None:
|
|
79
|
+
count += 1
|
|
80
|
+
if self._navigation is not None:
|
|
81
|
+
count += 1
|
|
82
|
+
if self._semantic is not None:
|
|
83
|
+
count += 1
|
|
84
|
+
return count
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
__all__: list[str] = [
|
|
88
|
+
"HandlerMemoryLifecycle",
|
|
89
|
+
]
|