omninode-memory 0.9.1__tar.gz → 0.9.2__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.9.2/.github/workflows/stale-todo-gate.yml +158 -0
- omninode_memory-0.9.2/.github/workflows/todo-audit-on-merge.yml +197 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.pre-commit-config.yaml +3 -1
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/PKG-INFO +1 -1
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/contract.yaml +8 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/pyproject.toml +1 -1
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_http_imports.py +1 -1
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_naming.py +1 -1
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_no_backward_compatibility.py +1 -1
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_secrets.py +3 -3
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_pii_type.py +7 -3
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/handlers/handler_intent_query.py +0 -1
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_validate_ci_precommit_alignment.py +1 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/uv.lock +1 -1
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.claude/architecture-handshake.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.env.example +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.flake8 +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/dependabot.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/required-checks.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/auto-tag-on-merge.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/build-and-push-migrate-image.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/contract-validation.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/omni-standards-compliance.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/pre-commit.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/release-dry-run.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/release.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/security-scan.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/test.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.gitignore +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.markdown-link-check.json +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.secrets.baseline +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.serena/memories/project_overview.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.serena/memories/suggested_commands.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.serena/project.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/.yamlfmt +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/AGENT.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/CHANGELOG.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/CLAUDE.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/CODE_OF_CONDUCT.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/CONTRIBUTING.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/LICENSE +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/README.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/SECURITY.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/deployment/database/migrations/002_create_memories_table.sql +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/deployment/database/migrations/005_backfill_null_checksums.sql +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/deployment/docker/Dockerfile.migrate +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docker-compose.prod.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docker-compose.yml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/INDEX.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/PERFORMANCE_TESTING.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/architecture/ARCH_002_KAFKA_ABSTRACTION.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/ci/CI_MONITORING_GUIDE.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/db-split/fk-audit-omn-2069.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/environment_variables.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/handler_reuse_matrix.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/pii_handling.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/runtime/RUNTIME_PLUGINS.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/stub_protocols.md +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/examples/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/examples/advanced_architecture_demo.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/pyrightconfig.json +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/check_migration_freeze.sh +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/check_no_hardcoded_bolt.sh +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validate_ci_precommit_alignment.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validate_no_transport_imports.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/check_ai_slop.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/check_kafka_no_hardcoded_fallback.sh +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_enum_casing.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_kafka_imports.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_model_locations.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_pydantic_patterns.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_single_class_per_file.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/scripts/validation/validate_spdx_headers.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/_compat_imports.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/audit/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/audit/__main__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/audit/io_audit.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/bootstrap.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/crawl/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_context_item_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_data_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_error_code.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_migration_status.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_node_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_operation_status.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_priority_level.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_severity.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_subscription_status.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/enums/enum_trust_level.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/errors/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/errors/embedding_errors.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/handler_intent.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/handler_subscription.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/handlers/models/model_handler_intent_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/adapters/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_embedding_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_postgres_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/container/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/contracts/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/core/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/core/model_memory_context.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/core/model_memory_request.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/core/model_memory_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/core/model_provenance.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/model_crawl_state_record.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/crawl/types.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/events/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_configuration.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_error_details.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_health_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_notes.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_priority.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_semver.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_system_health.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_tags.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/foundation/model_user.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/intelligence/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/memory/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/memory/model_memory_item.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/memory/model_memory_query.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/scoring/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/service/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/service/model_service_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/service/model_service_health.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/service/model_service_registry.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/subscription/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/subscription/constants.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/subscription/model_subscription.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_audit.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_concurrency.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_health_status.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_pii_match.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_retry_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_system_health.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/base.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_request.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/handler_filesystem_crawler.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/model_filesystem_crawl_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/model_filesystem_crawler_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/handler_intent_event_consumer.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/model_consumer_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/model_consumer_health.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/utils/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/utils/util_event_mapper.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/models/model_handler_intent_query_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/registry/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/registry/registry_intent_query_effect.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/utils/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_query_effect/utils/util_intent_mapping.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_storage_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_storage_effect/adapters/adapter_intent_storage.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_request.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/clients/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/clients/client_kreuzberg.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/handler_kreuzberg_parse.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_result.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_consolidator_reducer/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_postgres_deactivate_memory.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_runtime_tick_memory.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_archive.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_expire.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_tick.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/validator_lifecycle_transition.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/clients/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/clients/embedding_client.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_db_mock.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_graph_mock.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_memory_retrieval.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant_mock.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_embedding_client_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_db_mock_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_graph_mock_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_mock_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_request.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_storage_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_storage_effect/adapters/adapter_filesystem.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_request.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_navigation_history_reducer/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/handler_navigation_history_reducer.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_request.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_session.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_navigation_history_reducer/node_navigation_history_reducer.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/handler_semantic_compute.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_request.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/node_semantic_analyzer_compute.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_similarity_compute/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_similarity_compute/contract.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_similarity_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_similarity_compute/handlers/handler_similarity_compute.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_similarity_compute/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_similarity_compute/models/model_handler_similarity_compute_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_request.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_response.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_similarity_compute/node_similarity_compute.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/nodes/node_statistics_reducer/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/base_protocols.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/data_models.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/error_models.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/protocol_crawl_state_repository.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/protocol_embedding.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/protocol_handler_intent.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/runtime/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/runtime/adapters.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/runtime/contract_topics.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/runtime/dispatch_handlers.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/runtime/introspection.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/runtime/message_type_registration.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/runtime/plugin.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/runtime/wiring.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/secrets.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/settings.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/tools/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/tools/contract_linter.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/tools/stubs/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/tools/stubs/contract_validator.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/audit_logger.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/concurrency.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/db_url.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/error_sanitizer.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/handler_constants.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/health_manager.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/observability.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/pii_detector.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/resource_manager.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/utils/retry_utils.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/audit/io_audit_whitelist.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/audit/transport_import_whitelist.yaml +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/conftest.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/test_handler_intent.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/handlers/test_handler_semantic_compute.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/conftest.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/nodes/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/nodes/test_kreuzberg_parse_effect.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/nodes/test_navigation_history_reducer_integration.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/test_entry_point_discovery.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/test_handler_lifecycle_pattern.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/test_handler_subscription.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/integration/test_node_agent_coordinator.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/models/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/models/contracts/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/models/contracts/test_extended_contracts.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/models/events/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/models/events/test_model_intent_classified_event.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/models/test_frozen_boundary_models.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_filesystem_crawler_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_filesystem_crawler_effect/test_handler_filesystem_crawler.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_intent_event_consumer_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_intent_event_consumer_effect/test_handler_intent_event_consumer.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_intent_event_consumer_effect/test_model_consumer_health.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_intent_event_consumer_effect/test_util_event_mapper.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_intent_query_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_intent_query_effect/conftest.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_intent_query_effect/test_handler_intent_query_integration.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_intent_storage_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_intent_storage_effect/test_handler_intent_storage_adapter_integration.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_memory_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_memory_retrieval_effect/test_memory_retrieval_effect.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_memory_storage_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_memory_storage_effect/test_memory_storage_effect.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_navigation_history_reducer/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_navigation_history_reducer/test_navigation_history_reducer_unit.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_similarity_compute/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/nodes/node_similarity_compute/test_similarity_compute.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_bootstrap.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_concurrency.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_config_models.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_contract_validation.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_contract_version.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_db_url.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_foundation.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_health_manager.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_migration_progress.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_node_enforcement.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_node_imports.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_observability_metrics.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_performance.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_resource_manager.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_secrets_provider.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_settings.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/test_validation_scripts.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/handlers/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/handlers/test_subscription_typing.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_handler_qdrant.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/nodes/test_model_handler_qdrant_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/__init__.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/conftest.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/test_adapters.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/test_contract_topics.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/test_introspection.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/test_message_type_registration.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/test_plugin.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/test_plugin_memory_validate_handshake.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/runtime/test_wiring.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_contract_linter.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_entry_points.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_ingestion_models.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_io_audit.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_scope_mapping_config.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_sql_placeholders.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_validate_kafka_imports.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/tests/unit/test_validate_no_transport_imports.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/validate_architecture_improvements.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/validate_foundation.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/validate_foundation_isolated.py +0 -0
- {omninode_memory-0.9.1 → omninode_memory-0.9.2}/validate_foundation_minimal.py +0 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
# SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
|
|
3
|
+
# SPDX-License-Identifier: MIT
|
|
4
|
+
|
|
5
|
+
# stale-todo-gate.yml
|
|
6
|
+
#
|
|
7
|
+
# CI gate: check that TODO/FIXME/HACK comments in changed Python files
|
|
8
|
+
# do not reference Linear tickets in terminal states (Done/Canceled).
|
|
9
|
+
#
|
|
10
|
+
# Copy this file to .github/workflows/stale-todo-gate.yml in each repo.
|
|
11
|
+
#
|
|
12
|
+
# Requires: LINEAR_API_KEY as an org/repo secret.
|
|
13
|
+
# Graceful degradation: if LINEAR_API_KEY is unset, the check is skipped
|
|
14
|
+
# (exit 0) with a visible warning.
|
|
15
|
+
#
|
|
16
|
+
# Implements OMN-5688.
|
|
17
|
+
|
|
18
|
+
name: Stale TODO Gate
|
|
19
|
+
|
|
20
|
+
on:
|
|
21
|
+
pull_request:
|
|
22
|
+
branches: [main]
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
stale-todo-gate:
|
|
26
|
+
name: Stale TODO Gate
|
|
27
|
+
runs-on: >-
|
|
28
|
+
${{
|
|
29
|
+
vars.USE_SELF_HOSTED_RUNNERS == 'true'
|
|
30
|
+
&& 'self-hosted, omnibase-ci'
|
|
31
|
+
|| 'ubuntu-latest'
|
|
32
|
+
}}
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- name: Checkout
|
|
36
|
+
uses: actions/checkout@v4
|
|
37
|
+
with:
|
|
38
|
+
fetch-depth: 0
|
|
39
|
+
|
|
40
|
+
- name: Check for stale TODOs in changed files
|
|
41
|
+
env:
|
|
42
|
+
LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
|
|
43
|
+
shell: bash
|
|
44
|
+
run: |
|
|
45
|
+
set -euo pipefail
|
|
46
|
+
|
|
47
|
+
# --- Graceful degradation ---
|
|
48
|
+
if [ -z "${LINEAR_API_KEY:-}" ]; then
|
|
49
|
+
echo "::warning::LINEAR_API_KEY not set -- stale-TODO gate skipped"
|
|
50
|
+
exit 0
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
# --- Collect changed .py files ---
|
|
54
|
+
CHANGED_FILES=$(git diff --name-only origin/main...HEAD -- '*.py' || true)
|
|
55
|
+
if [ -z "$CHANGED_FILES" ]; then
|
|
56
|
+
echo "No Python files changed -- nothing to check."
|
|
57
|
+
exit 0
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# --- Extract unique OMN-XXXX ticket IDs from TODO comments ---
|
|
61
|
+
TICKET_IDS=""
|
|
62
|
+
while IFS= read -r file; do
|
|
63
|
+
[ -f "$file" ] || continue
|
|
64
|
+
# Match TODO(OMN-1234), FIXME(OMN-1234), HACK(OMN-1234) in comments
|
|
65
|
+
IDS=$(grep -oE '#.*\b(TODO|FIXME|HACK)\(OMN-[0-9]+\)' "$file" 2>/dev/null \
|
|
66
|
+
| grep -oE 'OMN-[0-9]+' || true)
|
|
67
|
+
if [ -n "$IDS" ]; then
|
|
68
|
+
TICKET_IDS="$TICKET_IDS"$'\n'"$IDS"
|
|
69
|
+
fi
|
|
70
|
+
done <<< "$CHANGED_FILES"
|
|
71
|
+
|
|
72
|
+
UNIQUE_IDS=$(echo "$TICKET_IDS" | sort -u | grep -v '^$' || true)
|
|
73
|
+
if [ -z "$UNIQUE_IDS" ]; then
|
|
74
|
+
echo "No TODO ticket references found in changed files -- clean."
|
|
75
|
+
exit 0
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
echo "Found ticket references: $(echo "$UNIQUE_IDS" | tr '\n' ' ')"
|
|
79
|
+
|
|
80
|
+
# --- Query Linear for ticket states ---
|
|
81
|
+
# Build a filter query to batch-check all ticket IDs
|
|
82
|
+
STALE_TICKETS=""
|
|
83
|
+
STALE_COUNT=0
|
|
84
|
+
|
|
85
|
+
while IFS= read -r TICKET_ID; do
|
|
86
|
+
[ -z "$TICKET_ID" ] && continue
|
|
87
|
+
|
|
88
|
+
# Validate format
|
|
89
|
+
if ! echo "$TICKET_ID" | grep -qE '^OMN-[0-9]+$'; then
|
|
90
|
+
continue
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
RESPONSE=$(curl -s --max-time 15 -X POST https://api.linear.app/graphql \
|
|
94
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
95
|
+
-H "Content-Type: application/json" \
|
|
96
|
+
-d "{\"query\": \"{ issue(id: \\\"$TICKET_ID\\\") { identifier title state { name type } } }\"}" \
|
|
97
|
+
2>&1)
|
|
98
|
+
|
|
99
|
+
STATE_TYPE=$(echo "$RESPONSE" | python3 -c "
|
|
100
|
+
import json, sys
|
|
101
|
+
data = json.load(sys.stdin)
|
|
102
|
+
issue = data.get('data', {}).get('issue')
|
|
103
|
+
if issue:
|
|
104
|
+
print(issue.get('state', {}).get('type', ''))
|
|
105
|
+
else:
|
|
106
|
+
print('NOT_FOUND')
|
|
107
|
+
" 2>/dev/null || echo "UNKNOWN")
|
|
108
|
+
|
|
109
|
+
STATE_NAME=$(echo "$RESPONSE" | python3 -c "
|
|
110
|
+
import json, sys
|
|
111
|
+
data = json.load(sys.stdin)
|
|
112
|
+
issue = data.get('data', {}).get('issue')
|
|
113
|
+
if issue:
|
|
114
|
+
print(issue.get('state', {}).get('name', ''))
|
|
115
|
+
else:
|
|
116
|
+
print('')
|
|
117
|
+
" 2>/dev/null || echo "")
|
|
118
|
+
|
|
119
|
+
TITLE=$(echo "$RESPONSE" | python3 -c "
|
|
120
|
+
import json, sys
|
|
121
|
+
data = json.load(sys.stdin)
|
|
122
|
+
issue = data.get('data', {}).get('issue')
|
|
123
|
+
if issue:
|
|
124
|
+
print(issue.get('title', ''))
|
|
125
|
+
else:
|
|
126
|
+
print('')
|
|
127
|
+
" 2>/dev/null || echo "")
|
|
128
|
+
|
|
129
|
+
# Terminal states: COMPLETED or CANCELED (using Linear's state type field)
|
|
130
|
+
if echo "$STATE_TYPE" | grep -qiE '^(completed|canceled|cancelled)$'; then
|
|
131
|
+
STALE_COUNT=$((STALE_COUNT + 1))
|
|
132
|
+
STALE_TICKETS="${STALE_TICKETS} - ${TICKET_ID} (${STATE_NAME}): ${TITLE}"$'\n'
|
|
133
|
+
|
|
134
|
+
# Find which files reference this ticket
|
|
135
|
+
while IFS= read -r file; do
|
|
136
|
+
[ -f "$file" ] || continue
|
|
137
|
+
LOCATIONS=$(grep -n "TODO.*${TICKET_ID}\|FIXME.*${TICKET_ID}\|HACK.*${TICKET_ID}" "$file" 2>/dev/null || true)
|
|
138
|
+
if [ -n "$LOCATIONS" ]; then
|
|
139
|
+
while IFS= read -r loc; do
|
|
140
|
+
STALE_TICKETS="${STALE_TICKETS} ${file}:${loc}"$'\n'
|
|
141
|
+
done <<< "$LOCATIONS"
|
|
142
|
+
fi
|
|
143
|
+
done <<< "$CHANGED_FILES"
|
|
144
|
+
fi
|
|
145
|
+
done <<< "$UNIQUE_IDS"
|
|
146
|
+
|
|
147
|
+
if [ "$STALE_COUNT" -gt 0 ]; then
|
|
148
|
+
echo ""
|
|
149
|
+
echo "::error::Found ${STALE_COUNT} stale TODO(s) referencing closed/canceled tickets:"
|
|
150
|
+
echo ""
|
|
151
|
+
echo "$STALE_TICKETS"
|
|
152
|
+
echo ""
|
|
153
|
+
echo "These TODOs reference tickets that are already Done or Canceled."
|
|
154
|
+
echo "Either remove the TODO or create a new ticket for the remaining work."
|
|
155
|
+
exit 1
|
|
156
|
+
fi
|
|
157
|
+
|
|
158
|
+
echo "All ${UNIQUE_IDS_COUNT:-$(echo "$UNIQUE_IDS" | wc -l | tr -d ' ')} TODO ticket references are active -- clean."
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
---
|
|
2
|
+
# SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
|
|
3
|
+
# SPDX-License-Identifier: MIT
|
|
4
|
+
|
|
5
|
+
# todo-audit-on-merge.yml
|
|
6
|
+
#
|
|
7
|
+
# Post-merge workflow: when a PR merges, check for residual TODOs
|
|
8
|
+
# referencing the branch's ticket. If found, auto-create a follow-up
|
|
9
|
+
# Linear ticket to track the cleanup.
|
|
10
|
+
#
|
|
11
|
+
# Copy this file to .github/workflows/todo-audit-on-merge.yml in each repo.
|
|
12
|
+
#
|
|
13
|
+
# Requires: LINEAR_API_KEY as an org/repo secret.
|
|
14
|
+
# Graceful degradation: if LINEAR_API_KEY is unset, the audit is skipped.
|
|
15
|
+
#
|
|
16
|
+
# Branch name conventions (reuses linear-close-on-merge.yml extraction):
|
|
17
|
+
# jonahgabriel/omn-XXXX-description
|
|
18
|
+
# jonah/omn-XXXX-description
|
|
19
|
+
# epic/OMN-XXXX/OMN-YYYY/run-id
|
|
20
|
+
# OMN-XXXX-description
|
|
21
|
+
#
|
|
22
|
+
# Implements OMN-5689.
|
|
23
|
+
|
|
24
|
+
name: TODO Audit on Merge
|
|
25
|
+
|
|
26
|
+
on:
|
|
27
|
+
pull_request:
|
|
28
|
+
types: [closed]
|
|
29
|
+
branches:
|
|
30
|
+
- main
|
|
31
|
+
|
|
32
|
+
jobs:
|
|
33
|
+
todo-audit:
|
|
34
|
+
name: TODO Audit
|
|
35
|
+
if: github.event.pull_request.merged == true
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
|
|
38
|
+
steps:
|
|
39
|
+
- name: Checkout
|
|
40
|
+
uses: actions/checkout@v4
|
|
41
|
+
|
|
42
|
+
- name: Extract ticket ID from branch name
|
|
43
|
+
id: extract
|
|
44
|
+
env:
|
|
45
|
+
BRANCH: ${{ github.event.pull_request.head.ref }}
|
|
46
|
+
shell: bash
|
|
47
|
+
run: |
|
|
48
|
+
echo "Branch: $BRANCH"
|
|
49
|
+
|
|
50
|
+
TICKET_ID=""
|
|
51
|
+
|
|
52
|
+
# Epic branch: epic/OMN-XXXX/OMN-YYYY/...
|
|
53
|
+
if printf '%s' "$BRANCH" | grep -qiE "^epic/OMN-[0-9]+/(OMN-[0-9]+)(/|$)"; then
|
|
54
|
+
TICKET_ID=$(printf '%s' "$BRANCH" | grep -ioE "^epic/OMN-[0-9]+/(OMN-[0-9]+)(/|$)" | grep -ioE "OMN-[0-9]+" | tail -1)
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# Standard: */omn-XXXX-* or omn-XXXX-*
|
|
58
|
+
if [[ -z "$TICKET_ID" ]]; then
|
|
59
|
+
TICKET_ID=$(printf '%s' "$BRANCH" | grep -ioE "(OMN|omn)-[0-9]+" | head -1 | tr '[:lower:]' '[:upper:]')
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
if [[ -z "$TICKET_ID" ]]; then
|
|
63
|
+
echo "No OMN-XXXX ticket ID found in branch '$BRANCH' -- skipping audit."
|
|
64
|
+
echo "ticket_id=" >> "$GITHUB_OUTPUT"
|
|
65
|
+
else
|
|
66
|
+
echo "Extracted ticket ID: $TICKET_ID"
|
|
67
|
+
echo "ticket_id=$TICKET_ID" >> "$GITHUB_OUTPUT"
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
- name: Check for residual TODOs and create follow-up ticket
|
|
71
|
+
if: steps.extract.outputs.ticket_id != ''
|
|
72
|
+
env:
|
|
73
|
+
LINEAR_API_KEY: ${{ secrets.LINEAR_API_KEY }}
|
|
74
|
+
TICKET_ID: ${{ steps.extract.outputs.ticket_id }}
|
|
75
|
+
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
76
|
+
REPO: ${{ github.repository }}
|
|
77
|
+
shell: bash
|
|
78
|
+
run: |
|
|
79
|
+
set -euo pipefail
|
|
80
|
+
|
|
81
|
+
if [ -z "${LINEAR_API_KEY:-}" ]; then
|
|
82
|
+
echo "::warning::LINEAR_API_KEY not set -- TODO audit skipped"
|
|
83
|
+
exit 0
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
echo "Scanning for residual TODOs referencing $TICKET_ID..."
|
|
87
|
+
|
|
88
|
+
# Find residual TODOs/FIXMEs/HACKs referencing this ticket
|
|
89
|
+
RESIDUALS=$(grep -rn "TODO.*${TICKET_ID}\|FIXME.*${TICKET_ID}\|HACK.*${TICKET_ID}" \
|
|
90
|
+
--include="*.py" . 2>/dev/null || true)
|
|
91
|
+
|
|
92
|
+
if [ -z "$RESIDUALS" ]; then
|
|
93
|
+
echo "No residual TODOs found for $TICKET_ID -- clean merge."
|
|
94
|
+
exit 0
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
RESIDUAL_COUNT=$(echo "$RESIDUALS" | wc -l | tr -d ' ')
|
|
98
|
+
echo "Found $RESIDUAL_COUNT residual TODO(s) for $TICKET_ID:"
|
|
99
|
+
echo "$RESIDUALS"
|
|
100
|
+
|
|
101
|
+
# --- Dedup check: search for existing follow-up ticket ---
|
|
102
|
+
FOLLOWUP_TITLE="chore: clean up residual TODOs for ${TICKET_ID}"
|
|
103
|
+
|
|
104
|
+
SEARCH_RESPONSE=$(curl -s --max-time 15 -X POST https://api.linear.app/graphql \
|
|
105
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
106
|
+
-H "Content-Type: application/json" \
|
|
107
|
+
-d "{\"query\": \"{ issueSearch(query: \\\"${FOLLOWUP_TITLE}\\\", first: 5) { nodes { id identifier title description } } }\"}" \
|
|
108
|
+
2>&1)
|
|
109
|
+
|
|
110
|
+
EXISTING=$(echo "$SEARCH_RESPONSE" | python3 -c "
|
|
111
|
+
import json, sys
|
|
112
|
+
data = json.load(sys.stdin)
|
|
113
|
+
nodes = data.get('data', {}).get('issueSearch', {}).get('nodes', [])
|
|
114
|
+
# Check for exact title match or metadata match
|
|
115
|
+
for n in nodes:
|
|
116
|
+
if n.get('title', '') == '${FOLLOWUP_TITLE}':
|
|
117
|
+
print(n['identifier'])
|
|
118
|
+
sys.exit(0)
|
|
119
|
+
desc = n.get('description', '') or ''
|
|
120
|
+
if '<!-- source: ${TICKET_ID} -->' in desc:
|
|
121
|
+
print(n['identifier'])
|
|
122
|
+
sys.exit(0)
|
|
123
|
+
print('')
|
|
124
|
+
" 2>/dev/null || echo "")
|
|
125
|
+
|
|
126
|
+
if [ -n "$EXISTING" ]; then
|
|
127
|
+
echo "Follow-up ticket already exists: $EXISTING -- skipping creation."
|
|
128
|
+
exit 0
|
|
129
|
+
fi
|
|
130
|
+
|
|
131
|
+
# --- Get team ID from the source ticket ---
|
|
132
|
+
TEAM_RESPONSE=$(curl -s --max-time 15 -X POST https://api.linear.app/graphql \
|
|
133
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
134
|
+
-H "Content-Type: application/json" \
|
|
135
|
+
-d "{\"query\": \"{ issue(id: \\\"$TICKET_ID\\\") { team { id } } }\"}" \
|
|
136
|
+
2>&1)
|
|
137
|
+
|
|
138
|
+
TEAM_ID=$(echo "$TEAM_RESPONSE" | python3 -c "
|
|
139
|
+
import json, sys
|
|
140
|
+
data = json.load(sys.stdin)
|
|
141
|
+
issue = data.get('data', {}).get('issue')
|
|
142
|
+
if issue:
|
|
143
|
+
print(issue.get('team', {}).get('id', ''))
|
|
144
|
+
else:
|
|
145
|
+
print('')
|
|
146
|
+
" 2>/dev/null || echo "")
|
|
147
|
+
|
|
148
|
+
if [ -z "$TEAM_ID" ]; then
|
|
149
|
+
echo "Could not determine team ID from $TICKET_ID -- skipping follow-up creation."
|
|
150
|
+
exit 0
|
|
151
|
+
fi
|
|
152
|
+
|
|
153
|
+
# Validate TEAM_ID
|
|
154
|
+
if ! echo "$TEAM_ID" | grep -qE '^[0-9a-f-]+$'; then
|
|
155
|
+
echo "Invalid team ID format -- skipping."
|
|
156
|
+
exit 0
|
|
157
|
+
fi
|
|
158
|
+
|
|
159
|
+
# --- Build description ---
|
|
160
|
+
# Escape residuals for JSON
|
|
161
|
+
ESCAPED_RESIDUALS=$(echo "$RESIDUALS" | python3 -c "
|
|
162
|
+
import json, sys
|
|
163
|
+
print(json.dumps(sys.stdin.read()))
|
|
164
|
+
" 2>/dev/null | sed 's/^"//;s/"$//')
|
|
165
|
+
|
|
166
|
+
DESCRIPTION="<!-- source: ${TICKET_ID} -->\n\nResidual TODOs found after merging PR #${PR_NUMBER} in \`${REPO}\`.\n\nSource ticket: ${TICKET_ID}\n\n## Locations\n\n\`\`\`\n${ESCAPED_RESIDUALS}\n\`\`\`\n\nPlease remove or re-tag these TODOs with a new ticket number."
|
|
167
|
+
|
|
168
|
+
# --- Create follow-up ticket (priority 4 = Low) ---
|
|
169
|
+
CREATE_RESPONSE=$(curl -s --max-time 15 -X POST https://api.linear.app/graphql \
|
|
170
|
+
-H "Authorization: $LINEAR_API_KEY" \
|
|
171
|
+
-H "Content-Type: application/json" \
|
|
172
|
+
-d "{\"query\": \"mutation { issueCreate(input: { title: \\\"${FOLLOWUP_TITLE}\\\", description: \\\"${DESCRIPTION}\\\", teamId: \\\"${TEAM_ID}\\\", priority: 4 }) { success issue { id identifier url } } }\"}" \
|
|
173
|
+
2>&1)
|
|
174
|
+
|
|
175
|
+
CREATED_ID=$(echo "$CREATE_RESPONSE" | python3 -c "
|
|
176
|
+
import json, sys
|
|
177
|
+
data = json.load(sys.stdin)
|
|
178
|
+
issue = data.get('data', {}).get('issueCreate', {}).get('issue')
|
|
179
|
+
if issue:
|
|
180
|
+
print(issue.get('identifier', ''))
|
|
181
|
+
else:
|
|
182
|
+
print('')
|
|
183
|
+
" 2>/dev/null || echo "")
|
|
184
|
+
|
|
185
|
+
if [ -n "$CREATED_ID" ]; then
|
|
186
|
+
CREATED_URL=$(echo "$CREATE_RESPONSE" | python3 -c "
|
|
187
|
+
import json, sys
|
|
188
|
+
data = json.load(sys.stdin)
|
|
189
|
+
print(data.get('data', {}).get('issueCreate', {}).get('issue', {}).get('url', ''))
|
|
190
|
+
" 2>/dev/null || echo "")
|
|
191
|
+
echo "Created follow-up ticket: $CREATED_ID ($CREATED_URL)"
|
|
192
|
+
echo "::notice::Created follow-up ticket $CREATED_ID for $RESIDUAL_COUNT residual TODO(s)"
|
|
193
|
+
else
|
|
194
|
+
echo "::warning::Failed to create follow-up ticket for residual TODOs"
|
|
195
|
+
# Non-fatal
|
|
196
|
+
exit 0
|
|
197
|
+
fi
|
|
@@ -78,13 +78,15 @@
|
|
|
78
78
|
repos:
|
|
79
79
|
# No hardcoded ONEX topic strings — sourced from onex_change_control (OMN-5259)
|
|
80
80
|
- repo: https://github.com/OmniNode-ai/onex_change_control
|
|
81
|
-
rev:
|
|
81
|
+
rev: 8d7e85bc00e7f1b1306d1cb40949be1ab6e7e91a # pragma: allowlist secret
|
|
82
82
|
hooks:
|
|
83
83
|
- id: no-hardcoded-topics
|
|
84
84
|
# Pre-existing violations — pending migration to canonical topic constants
|
|
85
85
|
exclude: >-
|
|
86
86
|
^src/omnimemory/nodes/(node_filesystem_crawler_effect|node_intent_event_consumer_effect|node_kreuzberg_parse_effect)/models/
|
|
87
87
|
stages: [pre-commit]
|
|
88
|
+
- id: no-untracked-todos
|
|
89
|
+
stages: [pre-commit]
|
|
88
90
|
|
|
89
91
|
# Stub implementation detection — sourced from omnibase_core (OMN-4472)
|
|
90
92
|
- repo: https://github.com/OmniNode-ai/omnibase_core
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omninode-memory
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2
|
|
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
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
# SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
|
|
2
2
|
# SPDX-License-Identifier: MIT
|
|
3
3
|
---
|
|
4
|
+
# Package-level architecture contract — NOT a node contract.
|
|
5
|
+
# Validated under reduced rule set per Contract Class Doctrine.
|
|
6
|
+
# Individual node contracts live under src/omnimemory/nodes/*/contract.yaml
|
|
7
|
+
|
|
4
8
|
# OmniMemory Contract Definition
|
|
5
9
|
# ONEX 4.0 Compliant Architecture Contract
|
|
6
10
|
|
|
11
|
+
name: omnimemory
|
|
12
|
+
description: "Advanced memory management system following ONEX 4-node architecture"
|
|
13
|
+
node_version: {major: 1, minor: 0, patch: 0}
|
|
14
|
+
|
|
7
15
|
# Contract schema version - tracks the contract format itself
|
|
8
16
|
# Follows semantic versioning: MAJOR.MINOR.PATCH using ModelSemVer structured format
|
|
9
17
|
# - MAJOR: Breaking changes to contract schema
|
|
@@ -105,7 +105,7 @@ ALLOWED_PATHS = [
|
|
|
105
105
|
# Adapter layer - the only allowed exit hatch
|
|
106
106
|
"handlers/adapters/",
|
|
107
107
|
# Legacy clients directory - allowed during migration
|
|
108
|
-
# TODO: Remove this allowance after migration to adapters is complete
|
|
108
|
+
# TODO(OMN-5694): Remove this allowance after migration to adapters is complete
|
|
109
109
|
"nodes/node_memory_retrieval_effect/clients/",
|
|
110
110
|
# Kreuzberg effect client - HTTP transport boundary for document extraction (OMN-2733)
|
|
111
111
|
"nodes/node_kreuzberg_parse_effect/clients/",
|
|
@@ -356,7 +356,7 @@ def detect_expected_prefix_from_bases(
|
|
|
356
356
|
return None, None
|
|
357
357
|
|
|
358
358
|
|
|
359
|
-
def validate_file( # stub-ok: docstring uses ModelXxx/ServiceXxx as naming examples
|
|
359
|
+
def validate_file( # stub-ok: docstring uses ModelXxx/ServiceXxx as naming examples # TODO_FORMAT_EXEMPT: function doc references marker names
|
|
360
360
|
filepath: Path,
|
|
361
361
|
) -> list[Violation]:
|
|
362
362
|
"""Validate a single Python file.
|
|
@@ -69,7 +69,7 @@ PATTERNS = [
|
|
|
69
69
|
"Legacy comment found - migrate to new patterns",
|
|
70
70
|
),
|
|
71
71
|
(
|
|
72
|
-
#
|
|
72
|
+
# Marker to remove deprecated code # TODO_FORMAT_EXEMPT: describes detection pattern for cleanup markers
|
|
73
73
|
re.compile(r"#\s*TODO:\s*(remove|delete).*\bdeprecated\b", re.IGNORECASE),
|
|
74
74
|
"TODO to remove deprecated code - do it now",
|
|
75
75
|
),
|
|
@@ -211,8 +211,8 @@ SKIP_PATTERNS: list[tuple[re.Pattern[str], str]] = [
|
|
|
211
211
|
"Explicit placeholder: 'REPLACE_ME' (exact match)",
|
|
212
212
|
),
|
|
213
213
|
(
|
|
214
|
-
# Matches: "TODO_ADD_REAL_KEY", "TODO-replace-secret"
|
|
215
|
-
# Requires
|
|
214
|
+
# Matches: "TODO_ADD_REAL_KEY", "TODO-replace-secret" # TODO_FORMAT_EXEMPT: describes regex pattern for placeholder detection
|
|
215
|
+
# Requires a placeholder marker followed by separator, not just containing it # TODO_FORMAT_EXEMPT: describes regex pattern
|
|
216
216
|
re.compile(r'["\']TODO[-_][A-Z_-]+["\']', re.IGNORECASE),
|
|
217
217
|
"Explicit placeholder: 'TODO_...' or 'TODO-...'",
|
|
218
218
|
),
|
|
@@ -306,7 +306,7 @@ def _check_line_level_skip_patterns(
|
|
|
306
306
|
return False, None
|
|
307
307
|
|
|
308
308
|
|
|
309
|
-
def _check_skip_patterns( # stub-ok: docstring uses 'xxxx' as example secret string, not a
|
|
309
|
+
def _check_skip_patterns( # stub-ok: docstring uses 'xxxx' as example secret string, not a marker # TODO_FORMAT_EXEMPT: function doc references marker names
|
|
310
310
|
line: str,
|
|
311
311
|
patterns: list[tuple[re.Pattern[str], str]],
|
|
312
312
|
filepath: Path,
|
{omninode_memory-0.9.1 → omninode_memory-0.9.2}/src/omnimemory/models/utils/model_pii_type.py
RENAMED
|
@@ -38,8 +38,12 @@ class PIIType(str, Enum):
|
|
|
38
38
|
SSN = "ssn"
|
|
39
39
|
CREDIT_CARD = "credit_card"
|
|
40
40
|
IP_ADDRESS = "ip_address"
|
|
41
|
-
URL = "url" # TODO: Implement URL detection patterns
|
|
41
|
+
URL = "url" # TODO(OMN-5762): Implement URL detection patterns
|
|
42
42
|
API_KEY = "api_key"
|
|
43
43
|
PASSWORD_HASH = "password_hash" # noqa: S105 # Not a password - PII type enum value
|
|
44
|
-
PERSON_NAME =
|
|
45
|
-
|
|
44
|
+
PERSON_NAME = (
|
|
45
|
+
"person_name" # TODO(OMN-5762): Implement dictionary-based + NLP name detection
|
|
46
|
+
)
|
|
47
|
+
ADDRESS = (
|
|
48
|
+
"address" # TODO(OMN-5762): Implement address detection with geocoding/NLP
|
|
49
|
+
)
|
|
@@ -695,7 +695,6 @@ class HandlerIntentQuery:
|
|
|
695
695
|
execution_time_ms = (time.monotonic() - start) * 1000
|
|
696
696
|
|
|
697
697
|
# Handler is initialized if we reached here (checked in execute())
|
|
698
|
-
# TODO(OMN-1589): query_type="health_check" not in Literal - need to update omnibase_core model
|
|
699
698
|
return ModelIntentQueryResponseEvent(
|
|
700
699
|
query_id=request.query_id,
|
|
701
700
|
query_type="health_check", # pyright: ignore[reportArgumentType]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/build-and-push-migrate-image.yml
RENAMED
|
File without changes
|
|
File without changes
|
{omninode_memory-0.9.1 → omninode_memory-0.9.2}/.github/workflows/omni-standards-compliance.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/architecture/ARCH_002_KAFKA_ABSTRACTION.md
RENAMED
|
File without changes
|
{omninode_memory-0.9.1 → omninode_memory-0.9.2}/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|