omninode-memory 0.12.0__tar.gz → 0.12.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.
Files changed (502) hide show
  1. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/release.yml +15 -5
  2. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/CHANGELOG.md +21 -0
  3. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/PKG-INFO +3 -3
  4. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/pyproject.toml +4 -4
  5. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/events/model_intent_classified_event.py +1 -1
  6. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_migration_progress.py +1 -2
  7. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/concurrency.py +4 -4
  8. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/pii_detector.py +4 -4
  9. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/resource_manager.py +15 -9
  10. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/conftest.py +1 -1
  11. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +51 -17
  12. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_contract_validation.py +11 -11
  13. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_node_enforcement.py +3 -3
  14. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_node_imports.py +4 -4
  15. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_validation_scripts.py +6 -2
  16. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/uv.lock +10 -10
  17. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.claude/architecture-handshake.md +0 -0
  18. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.env.example +0 -0
  19. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.flake8 +0 -0
  20. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  21. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  22. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  23. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/dependabot.yml +0 -0
  24. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/required-checks.yaml +0 -0
  25. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/auto-tag-on-merge.yml +0 -0
  26. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/build-and-push-migrate-image.yml +0 -0
  27. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/check-handshake.yml +0 -0
  28. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/ci.yml +0 -0
  29. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/contract-validation.yml +0 -0
  30. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/omni-standards-compliance.yml +0 -0
  31. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/pre-commit.yml +0 -0
  32. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/release-dry-run.yml +0 -0
  33. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/security-scan.yml +0 -0
  34. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/stale-todo-gate.yml +0 -0
  35. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.github/workflows/todo-audit-on-merge.yml +0 -0
  36. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.gitignore +0 -0
  37. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.markdown-link-check.json +0 -0
  38. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.pre-commit-config.yaml +0 -0
  39. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.secrets.baseline +0 -0
  40. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.serena/memories/project_overview.md +0 -0
  41. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.serena/memories/suggested_commands.md +0 -0
  42. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.serena/project.yml +0 -0
  43. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/.yamlfmt +0 -0
  44. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/AGENT.md +0 -0
  45. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/CLAUDE.md +0 -0
  46. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/CODE_OF_CONDUCT.md +0 -0
  47. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/CONTRIBUTING.md +0 -0
  48. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/LICENSE +0 -0
  49. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/README.md +0 -0
  50. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/SECURITY.md +0 -0
  51. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/contract.yaml +0 -0
  52. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
  53. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/deployment/database/migrations/002_create_memories_table.sql +0 -0
  54. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
  55. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
  56. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/deployment/database/migrations/005_backfill_null_checksums.sql +0 -0
  57. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +0 -0
  58. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
  59. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
  60. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/deployment/docker/Dockerfile.migrate +0 -0
  61. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docker-compose.prod.yml +0 -0
  62. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docker-compose.yml +0 -0
  63. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/INDEX.md +0 -0
  64. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/PERFORMANCE_TESTING.md +0 -0
  65. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/architecture/ARCH_002_KAFKA_ABSTRACTION.md +0 -0
  66. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/architecture/ONEX_FOUR_NODE_ARCHITECTURE.md +0 -0
  67. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/ci/CI_MONITORING_GUIDE.md +0 -0
  68. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/db-split/fk-audit-omn-2069.md +0 -0
  69. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/environment_variables.md +0 -0
  70. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/handler_reuse_matrix.md +0 -0
  71. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/pii_handling.md +0 -0
  72. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/runtime/RUNTIME_PLUGINS.md +0 -0
  73. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/docs/stub_protocols.md +0 -0
  74. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/examples/__init__.py +0 -0
  75. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/examples/advanced_architecture_demo.py +0 -0
  76. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/pyrightconfig.json +0 -0
  77. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/check_migration_freeze.sh +0 -0
  78. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/check_no_hardcoded_bolt.sh +0 -0
  79. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validate_ci_precommit_alignment.py +0 -0
  80. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validate_no_transport_imports.py +0 -0
  81. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/check_ai_slop.py +0 -0
  82. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/check_kafka_no_hardcoded_fallback.sh +0 -0
  83. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_enum_casing.py +0 -0
  84. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_http_imports.py +0 -0
  85. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_kafka_imports.py +0 -0
  86. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_model_locations.py +0 -0
  87. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_naming.py +0 -0
  88. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_no_backward_compatibility.py +0 -0
  89. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_pydantic_patterns.py +0 -0
  90. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_secrets.py +0 -0
  91. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_single_class_per_file.py +0 -0
  92. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/scripts/validation/validate_spdx_headers.py +0 -0
  93. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/__init__.py +0 -0
  94. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/_compat_imports.py +0 -0
  95. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/audit/__init__.py +0 -0
  96. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/audit/__main__.py +0 -0
  97. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/audit/io_audit.py +0 -0
  98. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/bootstrap.py +0 -0
  99. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/__init__.py +0 -0
  100. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/crawl/__init__.py +0 -0
  101. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
  102. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
  103. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
  104. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
  105. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_context_item_type.py +0 -0
  106. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_data_type.py +0 -0
  107. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
  108. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_error_code.py +0 -0
  109. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
  110. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
  111. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
  112. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
  113. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_migration_status.py +0 -0
  114. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_node_type.py +0 -0
  115. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_operation_status.py +0 -0
  116. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_priority_level.py +0 -0
  117. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
  118. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
  119. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_severity.py +0 -0
  120. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_subscription_status.py +0 -0
  121. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/enums/enum_trust_level.py +0 -0
  122. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/errors/__init__.py +0 -0
  123. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/errors/embedding_errors.py +0 -0
  124. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/__init__.py +0 -0
  125. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/__init__.py +0 -0
  126. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
  127. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +0 -0
  128. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +0 -0
  129. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
  130. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
  131. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
  132. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
  133. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
  134. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
  135. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/handler_intent.py +0 -0
  136. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/handler_subscription.py +0 -0
  137. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/models/__init__.py +0 -0
  138. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/handlers/models/model_handler_intent_config.py +0 -0
  139. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/__init__.py +0 -0
  140. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/adapters/__init__.py +0 -0
  141. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
  142. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
  143. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
  144. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
  145. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
  146. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
  147. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
  148. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/__init__.py +0 -0
  149. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
  150. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_embedding_config.py +0 -0
  151. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
  152. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
  153. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
  154. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
  155. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
  156. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_postgres_config.py +0 -0
  157. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
  158. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
  159. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
  160. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
  161. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
  162. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/container/__init__.py +0 -0
  163. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/contracts/__init__.py +0 -0
  164. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
  165. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
  166. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
  167. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
  168. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
  169. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/core/__init__.py +0 -0
  170. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/core/model_memory_context.py +0 -0
  171. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
  172. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
  173. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/core/model_memory_request.py +0 -0
  174. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/core/model_memory_response.py +0 -0
  175. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
  176. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
  177. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/core/model_provenance.py +0 -0
  178. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/__init__.py +0 -0
  179. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/model_crawl_state_record.py +0 -0
  180. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
  181. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
  182. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
  183. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
  184. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
  185. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
  186. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
  187. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/crawl/types.py +0 -0
  188. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/events/__init__.py +0 -0
  189. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
  190. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/__init__.py +0 -0
  191. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
  192. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_configuration.py +0 -0
  193. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
  194. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_error_details.py +0 -0
  195. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
  196. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_health_response.py +0 -0
  197. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
  198. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
  199. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_notes.py +0 -0
  200. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_priority.py +0 -0
  201. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
  202. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_semver.py +0 -0
  203. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
  204. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_system_health.py +0 -0
  205. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_tags.py +0 -0
  206. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
  207. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
  208. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/foundation/model_user.py +0 -0
  209. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/intelligence/__init__.py +0 -0
  210. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
  211. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
  212. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
  213. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
  214. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
  215. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/memory/__init__.py +0 -0
  216. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/memory/model_memory_item.py +0 -0
  217. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/memory/model_memory_query.py +0 -0
  218. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
  219. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
  220. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
  221. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/scoring/__init__.py +0 -0
  222. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
  223. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
  224. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
  225. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/service/__init__.py +0 -0
  226. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/service/model_service_config.py +0 -0
  227. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/service/model_service_health.py +0 -0
  228. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/service/model_service_registry.py +0 -0
  229. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/subscription/__init__.py +0 -0
  230. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/subscription/constants.py +0 -0
  231. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
  232. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
  233. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/subscription/model_subscription.py +0 -0
  234. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/__init__.py +0 -0
  235. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_audit.py +0 -0
  236. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
  237. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
  238. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_concurrency.py +0 -0
  239. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
  240. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
  241. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
  242. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
  243. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_health_status.py +0 -0
  244. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
  245. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
  246. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_pii_match.py +0 -0
  247. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
  248. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_pii_type.py +0 -0
  249. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
  250. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
  251. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_retry_config.py +0 -0
  252. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
  253. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
  254. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/models/utils/model_system_health.py +0 -0
  255. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/__init__.py +0 -0
  256. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/base.py +0 -0
  257. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/__init__.py +0 -0
  258. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/contract.yaml +0 -0
  259. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/__init__.py +0 -0
  260. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_request.py +0 -0
  261. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_response.py +0 -0
  262. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/__init__.py +0 -0
  263. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/contract.yaml +0 -0
  264. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/handler_filesystem_crawler.py +0 -0
  265. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/__init__.py +0 -0
  266. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/model_filesystem_crawl_result.py +0 -0
  267. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_filesystem_crawler_effect/models/model_filesystem_crawler_config.py +0 -0
  268. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/__init__.py +0 -0
  269. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/contract.yaml +0 -0
  270. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/handler_intent_event_consumer.py +0 -0
  271. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/__init__.py +0 -0
  272. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/model_consumer_config.py +0 -0
  273. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/models/model_consumer_health.py +0 -0
  274. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/utils/__init__.py +0 -0
  275. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_event_consumer_effect/utils/util_event_mapper.py +0 -0
  276. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/__init__.py +0 -0
  277. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/contract.yaml +0 -0
  278. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/handlers/__init__.py +0 -0
  279. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/handlers/handler_intent_query.py +0 -0
  280. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/models/__init__.py +0 -0
  281. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/models/model_handler_intent_query_config.py +0 -0
  282. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/registry/__init__.py +0 -0
  283. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/registry/registry_intent_query_effect.py +0 -0
  284. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/utils/__init__.py +0 -0
  285. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_query_effect/utils/util_intent_mapping.py +0 -0
  286. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_storage_effect/__init__.py +0 -0
  287. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_storage_effect/adapters/__init__.py +0 -0
  288. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_storage_effect/adapters/adapter_intent_storage.py +0 -0
  289. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_storage_effect/contract.yaml +0 -0
  290. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_storage_effect/models/__init__.py +0 -0
  291. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_request.py +0 -0
  292. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_response.py +0 -0
  293. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/__init__.py +0 -0
  294. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/clients/__init__.py +0 -0
  295. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/clients/client_kreuzberg.py +0 -0
  296. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/contract.yaml +0 -0
  297. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/handler_kreuzberg_parse.py +0 -0
  298. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/__init__.py +0 -0
  299. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_config.py +0 -0
  300. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_result.py +0 -0
  301. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_consolidator_reducer/__init__.py +0 -0
  302. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/__init__.py +0 -0
  303. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/__init__.py +0 -0
  304. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_postgres_deactivate_memory.py +0 -0
  305. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_runtime_tick_memory.py +0 -0
  306. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/contract.yaml +0 -0
  307. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/__init__.py +0 -0
  308. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_archive.py +0 -0
  309. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_expire.py +0 -0
  310. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_tick.py +0 -0
  311. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/models/__init__.py +0 -0
  312. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/__init__.py +0 -0
  313. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/validator_lifecycle_transition.py +0 -0
  314. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  315. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/clients/__init__.py +0 -0
  316. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/clients/embedding_client.py +0 -0
  317. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/contract.yaml +0 -0
  318. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/__init__.py +0 -0
  319. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_db_mock.py +0 -0
  320. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_graph_mock.py +0 -0
  321. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_memory_retrieval.py +0 -0
  322. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +0 -0
  323. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant_mock.py +0 -0
  324. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/__init__.py +0 -0
  325. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_embedding_client_config.py +0 -0
  326. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_db_mock_config.py +0 -0
  327. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_graph_mock_config.py +0 -0
  328. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -0
  329. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +0 -0
  330. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_mock_config.py +0 -0
  331. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_request.py +0 -0
  332. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_response.py +0 -0
  333. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_storage_effect/__init__.py +0 -0
  334. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_storage_effect/adapters/__init__.py +0 -0
  335. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_storage_effect/adapters/adapter_filesystem.py +0 -0
  336. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_storage_effect/contract.yaml +0 -0
  337. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_storage_effect/models/__init__.py +0 -0
  338. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_request.py +0 -0
  339. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_response.py +0 -0
  340. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_navigation_history_reducer/__init__.py +0 -0
  341. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/__init__.py +0 -0
  342. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/handler_navigation_history_reducer.py +0 -0
  343. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/__init__.py +0 -0
  344. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_request.py +0 -0
  345. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_response.py +0 -0
  346. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_session.py +0 -0
  347. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_navigation_history_reducer/node_navigation_history_reducer.py +0 -0
  348. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/__init__.py +0 -0
  349. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/contract.yaml +0 -0
  350. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/__init__.py +0 -0
  351. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/handler_semantic_compute.py +0 -0
  352. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/__init__.py +0 -0
  353. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_request.py +0 -0
  354. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_response.py +0 -0
  355. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_semantic_analyzer_compute/node_semantic_analyzer_compute.py +0 -0
  356. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_similarity_compute/__init__.py +0 -0
  357. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_similarity_compute/contract.yaml +0 -0
  358. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_similarity_compute/handlers/__init__.py +0 -0
  359. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_similarity_compute/handlers/handler_similarity_compute.py +0 -0
  360. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_similarity_compute/models/__init__.py +0 -0
  361. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_similarity_compute/models/model_handler_similarity_compute_config.py +0 -0
  362. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_request.py +0 -0
  363. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_response.py +0 -0
  364. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_similarity_compute/node_similarity_compute.py +0 -0
  365. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/nodes/node_statistics_reducer/__init__.py +0 -0
  366. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/__init__.py +0 -0
  367. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/base_protocols.py +0 -0
  368. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/data_models.py +0 -0
  369. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/error_models.py +0 -0
  370. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/protocol_crawl_state_repository.py +0 -0
  371. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/protocol_embedding.py +0 -0
  372. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
  373. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/protocol_handler_intent.py +0 -0
  374. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +0 -0
  375. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
  376. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/runtime/__init__.py +0 -0
  377. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/runtime/adapters.py +0 -0
  378. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/runtime/contract_topics.py +0 -0
  379. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/runtime/dispatch_handlers.py +0 -0
  380. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/runtime/introspection.py +0 -0
  381. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/runtime/message_type_registration.py +0 -0
  382. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/runtime/plugin.py +0 -0
  383. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/runtime/wiring.py +0 -0
  384. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/secrets.py +0 -0
  385. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/settings.py +0 -0
  386. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/tools/__init__.py +0 -0
  387. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/tools/contract_linter.py +0 -0
  388. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/tools/stubs/__init__.py +0 -0
  389. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/tools/stubs/contract_validator.py +0 -0
  390. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/__init__.py +0 -0
  391. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/audit_logger.py +0 -0
  392. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/db_url.py +0 -0
  393. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/error_sanitizer.py +0 -0
  394. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/handler_constants.py +0 -0
  395. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/health_manager.py +0 -0
  396. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/observability.py +0 -0
  397. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/src/omnimemory/utils/retry_utils.py +0 -0
  398. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/__init__.py +0 -0
  399. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/audit/io_audit_whitelist.yaml +0 -0
  400. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/audit/transport_import_whitelist.yaml +0 -0
  401. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/__init__.py +0 -0
  402. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/adapters/__init__.py +0 -0
  403. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
  404. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
  405. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
  406. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
  407. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
  408. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
  409. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/test_handler_intent.py +0 -0
  410. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/handlers/test_handler_semantic_compute.py +0 -0
  411. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/__init__.py +0 -0
  412. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/conftest.py +0 -0
  413. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/nodes/__init__.py +0 -0
  414. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/nodes/test_kreuzberg_parse_effect.py +0 -0
  415. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/nodes/test_navigation_history_reducer_integration.py +0 -0
  416. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/test_entry_point_discovery.py +0 -0
  417. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/test_handler_lifecycle_pattern.py +0 -0
  418. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/test_handler_subscription.py +0 -0
  419. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/integration/test_node_agent_coordinator.py +0 -0
  420. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/models/__init__.py +0 -0
  421. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/models/contracts/__init__.py +0 -0
  422. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/models/contracts/test_extended_contracts.py +0 -0
  423. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/models/events/__init__.py +0 -0
  424. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/models/events/test_model_intent_classified_event.py +0 -0
  425. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/models/test_frozen_boundary_models.py +0 -0
  426. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/__init__.py +0 -0
  427. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_filesystem_crawler_effect/__init__.py +0 -0
  428. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_filesystem_crawler_effect/test_handler_filesystem_crawler.py +0 -0
  429. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_intent_event_consumer_effect/__init__.py +0 -0
  430. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_intent_event_consumer_effect/test_handler_intent_event_consumer.py +0 -0
  431. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_intent_event_consumer_effect/test_model_consumer_health.py +0 -0
  432. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_intent_event_consumer_effect/test_util_event_mapper.py +0 -0
  433. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_intent_query_effect/__init__.py +0 -0
  434. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_intent_query_effect/conftest.py +0 -0
  435. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_intent_query_effect/test_handler_intent_query_integration.py +0 -0
  436. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_intent_storage_effect/__init__.py +0 -0
  437. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_intent_storage_effect/test_handler_intent_storage_adapter_integration.py +0 -0
  438. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_memory_retrieval_effect/__init__.py +0 -0
  439. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_memory_retrieval_effect/test_memory_retrieval_effect.py +0 -0
  440. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_memory_storage_effect/__init__.py +0 -0
  441. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_memory_storage_effect/test_memory_storage_effect.py +0 -0
  442. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_navigation_history_reducer/__init__.py +0 -0
  443. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_navigation_history_reducer/test_navigation_history_reducer_unit.py +0 -0
  444. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_similarity_compute/__init__.py +0 -0
  445. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/nodes/node_similarity_compute/test_similarity_compute.py +0 -0
  446. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_bootstrap.py +0 -0
  447. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_concurrency.py +0 -0
  448. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_config_models.py +0 -0
  449. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_contract_version.py +0 -0
  450. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_db_url.py +0 -0
  451. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_foundation.py +0 -0
  452. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_health_manager.py +0 -0
  453. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_migration_progress.py +0 -0
  454. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_observability_metrics.py +0 -0
  455. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_performance.py +0 -0
  456. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_resource_manager.py +0 -0
  457. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_secrets_provider.py +0 -0
  458. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_semantic_compute_policy_config.py +0 -0
  459. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/test_settings.py +0 -0
  460. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/__init__.py +0 -0
  461. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/handlers/__init__.py +0 -0
  462. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/handlers/adapters/__init__.py +0 -0
  463. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
  464. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/handlers/test_subscription_typing.py +0 -0
  465. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/__init__.py +0 -0
  466. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_handler_qdrant.py +0 -0
  467. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
  468. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +0 -0
  469. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
  470. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +0 -0
  471. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +0 -0
  472. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +0 -0
  473. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +0 -0
  474. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +0 -0
  475. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +0 -0
  476. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/nodes/test_model_handler_qdrant_config.py +0 -0
  477. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/__init__.py +0 -0
  478. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/conftest.py +0 -0
  479. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/test_adapters.py +0 -0
  480. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/test_contract_topics.py +0 -0
  481. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/test_dispatch_handlers.py +0 -0
  482. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/test_introspection.py +0 -0
  483. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/test_message_type_registration.py +0 -0
  484. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/test_plugin.py +0 -0
  485. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/test_plugin_graph_memory_wiring.py +0 -0
  486. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/test_plugin_memory_validate_handshake.py +0 -0
  487. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/runtime/test_wiring.py +0 -0
  488. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_contract_linter.py +0 -0
  489. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_dispatch_retrieval_config.py +0 -0
  490. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_entry_points.py +0 -0
  491. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
  492. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_ingestion_models.py +0 -0
  493. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_io_audit.py +0 -0
  494. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_scope_mapping_config.py +0 -0
  495. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_sql_placeholders.py +0 -0
  496. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_validate_ci_precommit_alignment.py +0 -0
  497. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_validate_kafka_imports.py +0 -0
  498. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/tests/unit/test_validate_no_transport_imports.py +0 -0
  499. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/validate_architecture_improvements.py +0 -0
  500. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/validate_foundation.py +0 -0
  501. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/validate_foundation_isolated.py +0 -0
  502. {omninode_memory-0.12.0 → omninode_memory-0.12.2}/validate_foundation_minimal.py +0 -0
@@ -4,7 +4,9 @@ name: Release
4
4
 
5
5
  on:
6
6
  push:
7
- tags: ['v[0-9]*.[0-9]*.[0-9]*']
7
+ tags:
8
+ - 'v[0-9]*.[0-9]*.[0-9]*'
9
+ - 'omnimemory/v[0-9]*.[0-9]*.[0-9]*'
8
10
  workflow_dispatch:
9
11
  inputs:
10
12
  tag:
@@ -42,6 +44,8 @@ jobs:
42
44
  else
43
45
  TAG="${GITHUB_REF_NAME}"
44
46
  fi
47
+ # Strip optional namespace prefix (e.g. omnimemory/v0.12.0 → v0.12.0)
48
+ TAG="${TAG#omnimemory/}"
45
49
  TAG="${TAG#v}"
46
50
  PKG_VERSION=$(python3 -c "
47
51
  import tomllib, sys
@@ -86,21 +90,27 @@ jobs:
86
90
  id: tag
87
91
  run: |
88
92
  if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
89
- echo "tag=${{ inputs.tag }}" >> $GITHUB_OUTPUT
93
+ RAW_TAG="${{ inputs.tag }}"
90
94
  else
91
- echo "tag=${GITHUB_REF_NAME}" >> $GITHUB_OUTPUT
95
+ RAW_TAG="${GITHUB_REF_NAME}"
92
96
  fi
97
+ # Preserve original tag for release creation (softprops/action-gh-release
98
+ # requires the tag to already exist in git)
99
+ echo "raw_tag=${RAW_TAG}" >> $GITHUB_OUTPUT
100
+ # Strip optional namespace prefix for version logic (e.g. omnimemory/v0.12.0 → v0.12.0)
101
+ NORMALIZED="${RAW_TAG#omnimemory/}"
102
+ echo "tag=${NORMALIZED}" >> $GITHUB_OUTPUT
93
103
 
94
104
  - name: Create GitHub Release
95
105
  uses: softprops/action-gh-release@v2
96
106
  with:
97
- tag_name: ${{ steps.tag.outputs.tag }}
107
+ tag_name: ${{ steps.tag.outputs.raw_tag }}
98
108
  files: |
99
109
  dist/*.whl
100
110
  dist/*.tar.gz
101
111
  dist/SHA256SUMS.txt
102
112
  generate_release_notes: true
103
- prerelease: ${{ contains(github.ref_name, 'rc') }}
113
+ prerelease: ${{ contains(steps.tag.outputs.tag, 'rc') }}
104
114
 
105
115
  # ---------------------------------------------------------------------------
106
116
  # Post-release: trigger Dockerfile.runtime pin cascade (OMN-5137)
@@ -1,3 +1,24 @@
1
+ ## v0.12.2 (2026-03-27)
2
+
3
+ ### Fixed
4
+ - fix(types): narrow Any to object in resource/connection pool models [OMN-6680] (#209)
5
+ - fix: handle namespaced tag format in release workflow [OMN-6712] (#208)
6
+
7
+ ### Changed
8
+ - chore(deps): bump omnibase_core to 0.33.1, omnibase_infra to 0.28.0
9
+
10
+ ## v0.12.1 (2026-03-26)
11
+
12
+ ### Fixed
13
+ - fix(tests): standardize skip reason messages across test suite [OMN-6686] (#203)
14
+
15
+ ### Changed
16
+ - chore: standardize TODO markers with ticket references [OMN-6655] (#204)
17
+
18
+ ### Dependencies
19
+ - omnibase-core 0.32.0 -> 0.33.0
20
+ - omnibase-infra 0.27.0 -> 0.27.1
21
+
1
22
  ## v0.12.0 (2026-03-25)
2
23
 
3
24
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omninode-memory
3
- Version: 0.12.0
3
+ Version: 0.12.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
@@ -20,8 +20,8 @@ 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.32.0
24
- Requires-Dist: omnibase-infra==0.27.0
23
+ Requires-Dist: omnibase-core==0.33.1
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
27
27
  Requires-Dist: psutil<8.0.0,>=7.0.0
@@ -7,7 +7,7 @@ build-backend = "hatchling.build"
7
7
 
8
8
  [project]
9
9
  name = "omninode-memory"
10
- version = "0.12.0"
10
+ version = "0.12.2"
11
11
  description = "OmniNode document ingestion and semantic retrieval"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.12,<3.14"
@@ -59,9 +59,9 @@ dependencies = [
59
59
  "pyyaml>=6.0.2,<7.0.0",
60
60
 
61
61
  # ONEX dependencies - versioned releases from PyPI
62
- "omnibase-core==0.32.0",
62
+ "omnibase-core==0.33.1",
63
63
  "omnibase-spi>=0.19.1",
64
- "omnibase-infra==0.27.0",
64
+ "omnibase-infra==0.28.0",
65
65
 
66
66
  # Logging and monitoring
67
67
  # Version ^23.3.0 required for compatibility with omnibase-infra (requires ^23.2.0)
@@ -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.32.0",
366
+ "omnibase-core==0.33.1",
367
367
  "omnibase-spi>=0.19.1",
368
368
  ]
@@ -85,7 +85,7 @@ class ModelIntentClassifiedEvent(BaseModel):
85
85
  Note: Uses ``extra="ignore"`` to allow forward compatibility — if
86
86
  omniintelligence adds new fields, this consumer won't reject them.
87
87
 
88
- TODO(OMN-future): Consider migrating to omnibase_core.models.events
88
+ TODO(OMN-6655): Consider migrating to omnibase_core.models.events
89
89
  once cross-repo event schemas are standardized. This is logically
90
90
  an omniintelligence-owned event; omnimemory is a consumer.
91
91
  """
@@ -12,7 +12,6 @@
12
12
  from __future__ import annotations
13
13
 
14
14
  from datetime import datetime, timedelta, timezone
15
- from typing import Any
16
15
  from uuid import UUID, uuid4
17
16
 
18
17
  from pydantic import BaseModel, ConfigDict, Field, PrivateAttr, computed_field
@@ -285,7 +284,7 @@ class MigrationProgressTracker(BaseModel):
285
284
  )
286
285
 
287
286
  def add_file(
288
- self, file_path: str, file_size: int | None = None, **metadata: Any
287
+ self, file_path: str, file_size: int | None = None, **metadata: object
289
288
  ) -> FileProcessingInfo:
290
289
  """Add a file to be tracked for processing."""
291
290
  from .model_typed_collections import ModelKeyValuePair
@@ -658,7 +658,7 @@ class AsyncConnectionPool:
658
658
  error=_sanitize_error(cleanup_error),
659
659
  )
660
660
 
661
- async def _create_new_connection(self) -> Any:
661
+ async def _create_new_connection(self) -> object:
662
662
  """Create a new connection."""
663
663
  try:
664
664
  connection = await self._create_connection()
@@ -673,7 +673,7 @@ class AsyncConnectionPool:
673
673
  )
674
674
  raise
675
675
 
676
- async def _return_connection(self, connection_id: str, connection: Any) -> None:
676
+ async def _return_connection(self, connection_id: str, connection: object) -> None:
677
677
  """Return a connection to the pool."""
678
678
  try:
679
679
  async with self._lock:
@@ -709,7 +709,7 @@ class AsyncConnectionPool:
709
709
  except Exception:
710
710
  pass # Ignore cleanup errors
711
711
 
712
- async def _destroy_connection(self, connection: Any) -> None:
712
+ async def _destroy_connection(self, connection: object) -> None:
713
713
  """Destroy a connection."""
714
714
  try:
715
715
  if asyncio.iscoroutinefunction(self._close_connection):
@@ -1191,7 +1191,7 @@ class ConnectionPool:
1191
1191
  with self._sync_lock:
1192
1192
  return len(self._active) + len(self._connections)
1193
1193
 
1194
- def _create_connection(self) -> Any:
1194
+ def _create_connection(self) -> object:
1195
1195
  """
1196
1196
  Create a new connection.
1197
1197
 
@@ -89,9 +89,9 @@ class PIIDetector:
89
89
  """Initialize regex patterns for different PII types using configuration.
90
90
 
91
91
  Note: The following PIIType values do NOT have patterns implemented:
92
- - PIIType.URL: TODO - Add URL validation patterns
93
- - PIIType.PERSON_NAME: TODO - Add dictionary-based name matching
94
- - PIIType.ADDRESS: TODO - Add address pattern detection
92
+ - PIIType.URL: TODO(OMN-5762) - Add URL validation patterns
93
+ - PIIType.PERSON_NAME: TODO(OMN-5762) - Add dictionary-based name matching
94
+ - PIIType.ADDRESS: TODO(OMN-5762) - Add address pattern detection
95
95
 
96
96
  These types are defined in PIIType for future extensibility but will
97
97
  not match any content until patterns are added.
@@ -203,7 +203,7 @@ class PIIDetector:
203
203
  ) -> set[str]:
204
204
  """Load common first and last names for person name detection.
205
205
 
206
- TODO: This name database is loaded but not actively used for detection.
206
+ TODO(OMN-5762): This name database is loaded but not actively used for detection.
207
207
  To enable PERSON_NAME detection:
208
208
  1. Add PIIType.PERSON_NAME patterns to _initialize_patterns()
209
209
  2. Or implement context-aware NLP-based name detection
@@ -112,7 +112,12 @@ class AsyncCircuitBreaker:
112
112
  self.stats = CircuitBreakerStats()
113
113
  self._lock = asyncio.Lock()
114
114
 
115
- async def call(self, func: Callable[..., Any], *args: Any, **kwargs: Any) -> Any:
115
+ async def call(
116
+ self,
117
+ func: Callable[..., Any],
118
+ *args: Any,
119
+ **kwargs: Any,
120
+ ) -> Any:
116
121
  """Execute a function call through the circuit breaker."""
117
122
  async with self._lock:
118
123
  if self.state == CircuitState.OPEN:
@@ -437,13 +442,13 @@ class ResourceHandle:
437
442
  Provides resource lifecycle management and context tracking.
438
443
  """
439
444
 
440
- resource_id: Any
441
- resource: Any
445
+ resource_id: object
446
+ resource: object
442
447
  resource_type: ResourceType
443
448
  status: ResourceStatus = ResourceStatus.ACTIVE
444
449
  created_at: datetime = field(default_factory=lambda: datetime.now(timezone.utc))
445
450
  ttl: float | None = None
446
- _context: dict[str, Any] = field(default_factory=dict)
451
+ _context: dict[str, object] = field(default_factory=dict)
447
452
 
448
453
  def is_healthy(self) -> bool:
449
454
  """
@@ -474,7 +479,7 @@ class ResourceHandle:
474
479
  elapsed = (datetime.now(timezone.utc) - self.created_at).total_seconds()
475
480
  return elapsed >= self.ttl
476
481
 
477
- def set_context(self, key: str, value: Any) -> None:
482
+ def set_context(self, key: str, value: object) -> None:
478
483
  """
479
484
  Set context data on the handle.
480
485
 
@@ -484,7 +489,7 @@ class ResourceHandle:
484
489
  """
485
490
  self._context[key] = value
486
491
 
487
- def get_context(self, key: str) -> Any | None:
492
+ def get_context(self, key: str) -> object | None:
488
493
  """
489
494
  Get context data from the handle.
490
495
 
@@ -548,11 +553,12 @@ class ResourcePool:
548
553
  if self.available_resources:
549
554
  self._available_event.set()
550
555
 
551
- def _create_resource(self) -> Any | None:
556
+ def _create_resource(self) -> object | None:
552
557
  """Create a new resource."""
553
558
  if self._factory:
554
559
  try:
555
- return self._factory()
560
+ result: object = self._factory()
561
+ return result
556
562
  except Exception as e:
557
563
  logger.error(
558
564
  "resource_creation_failed",
@@ -828,7 +834,7 @@ class ResourceManager:
828
834
  "total_releases": self._metrics["total_releases"],
829
835
  }
830
836
 
831
- async def _close_resource(self, resource: Any) -> None:
837
+ async def _close_resource(self, resource: object) -> None:
832
838
  """
833
839
  Close a resource if it has a close method.
834
840
 
@@ -193,7 +193,7 @@ def contract_data(request: pytest.FixtureRequest, nodes_dir: Path) -> MappingRes
193
193
  contract_path: Path = nodes_dir / node_name / "contract.yaml"
194
194
 
195
195
  if not contract_path.exists():
196
- pytest.skip(f"Contract file not yet implemented: {contract_path}")
196
+ pytest.skip(f"Contract file pending implementation: {contract_path}")
197
197
 
198
198
  with open(contract_path) as f:
199
199
  data = yaml.safe_load(f)
@@ -89,7 +89,9 @@ class TestSkipLockedConcurrency:
89
89
  - Multiple concurrent database connections
90
90
  """
91
91
 
92
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
92
+ @pytest.mark.skip(
93
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
94
+ )
93
95
  async def test_skip_locked_prevents_double_processing(self) -> None:
94
96
  """Verify FOR UPDATE SKIP LOCKED prevents concurrent handlers
95
97
  from processing same memory.
@@ -114,7 +116,9 @@ class TestSkipLockedConcurrency:
114
116
  handlers reach the query point before either commits.
115
117
  """
116
118
 
117
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
119
+ @pytest.mark.skip(
120
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
121
+ )
118
122
  async def test_skip_locked_allows_different_memory_processing(self) -> None:
119
123
  """Verify concurrent handlers can process different memories.
120
124
 
@@ -135,7 +139,9 @@ class TestSkipLockedConcurrency:
135
139
  workloads while preventing double-processing of individual entities.
136
140
  """
137
141
 
138
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
142
+ @pytest.mark.skip(
143
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
144
+ )
139
145
  async def test_skip_locked_batch_processing_isolation(self) -> None:
140
146
  """Verify batch processing with SKIP LOCKED isolates work correctly.
141
147
 
@@ -181,7 +187,9 @@ class TestOptimisticLocking:
181
187
  - Row count validation after UPDATE
182
188
  """
183
189
 
184
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
190
+ @pytest.mark.skip(
191
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
192
+ )
185
193
  async def test_optimistic_lock_conflict_detected(self) -> None:
186
194
  """Verify revision mismatch is detected and handled.
187
195
 
@@ -204,7 +212,9 @@ class TestOptimisticLocking:
204
212
  When rows_affected=0, handler must recognize this as conflict.
205
213
  """
206
214
 
207
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
215
+ @pytest.mark.skip(
216
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
217
+ )
208
218
  async def test_optimistic_lock_revision_increment(self) -> None:
209
219
  """Verify lifecycle_revision increments on each state change.
210
220
 
@@ -223,7 +233,9 @@ class TestOptimisticLocking:
223
233
  correctly across the full lifecycle state machine.
224
234
  """
225
235
 
226
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
236
+ @pytest.mark.skip(
237
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
238
+ )
227
239
  async def test_optimistic_lock_conflict_recovery(self) -> None:
228
240
  """Verify handler gracefully recovers from optimistic lock conflict.
229
241
 
@@ -270,7 +282,9 @@ class TestArchiveAtomicity:
270
282
  - Temp file + rename pattern for atomicity
271
283
  """
272
284
 
273
- @pytest.mark.skip(reason="Pending OMN-1524: write_atomic_bytes()")
285
+ @pytest.mark.skip(
286
+ reason="Blocked: write_atomic_bytes() not yet available (OMN-1524)"
287
+ )
274
288
  async def test_archive_atomic_write_crash_safety(self) -> None:
275
289
  """Verify archive write is atomic (no partial files).
276
290
 
@@ -295,7 +309,9 @@ class TestArchiveAtomicity:
295
309
  On failure at any step, .tmp file is deleted.
296
310
  """
297
311
 
298
- @pytest.mark.skip(reason="Pending OMN-1524: write_atomic_bytes()")
312
+ @pytest.mark.skip(
313
+ reason="Blocked: write_atomic_bytes() not yet available (OMN-1524)"
314
+ )
299
315
  async def test_archive_database_filesystem_consistency(self) -> None:
300
316
  """Verify database and filesystem stay consistent on archive.
301
317
 
@@ -319,7 +335,9 @@ class TestArchiveAtomicity:
319
335
  fails, delete the archive file.
320
336
  """
321
337
 
322
- @pytest.mark.skip(reason="Pending OMN-1524: write_atomic_bytes()")
338
+ @pytest.mark.skip(
339
+ reason="Blocked: write_atomic_bytes() not yet available (OMN-1524)"
340
+ )
323
341
  async def test_archive_rollback_on_db_failure(self) -> None:
324
342
  """Verify archive file deleted if database update fails.
325
343
 
@@ -363,7 +381,9 @@ class TestTickIdempotency:
363
381
  - Idempotency checks in projection queries
364
382
  """
365
383
 
366
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
384
+ @pytest.mark.skip(
385
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
386
+ )
367
387
  async def test_tick_reprocessing_idempotent(self) -> None:
368
388
  """Verify processing same tick twice produces same result.
369
389
 
@@ -385,7 +405,9 @@ class TestTickIdempotency:
385
405
  This ensures already-emitted transitions are not re-emitted.
386
406
  """
387
407
 
388
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
408
+ @pytest.mark.skip(
409
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
410
+ )
389
411
  async def test_emission_marker_atomicity(self) -> None:
390
412
  """Verify emission marker set atomically with event emission.
391
413
 
@@ -428,7 +450,9 @@ class TestProjectionQueryIsolation:
428
450
  - Consistent snapshot within transaction
429
451
  """
430
452
 
431
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
453
+ @pytest.mark.skip(
454
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
455
+ )
432
456
  async def test_projection_query_snapshot_consistency(self) -> None:
433
457
  """Verify projection query returns consistent snapshot.
434
458
 
@@ -448,7 +472,9 @@ class TestProjectionQueryIsolation:
448
472
  For stricter isolation, can use REPEATABLE READ.
449
473
  """
450
474
 
451
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
475
+ @pytest.mark.skip(
476
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
477
+ )
452
478
  async def test_projection_query_deadline_evaluation(self) -> None:
453
479
  """Verify projection query uses injected 'now' for deadline.
454
480
 
@@ -485,7 +511,9 @@ class TestTransactionBoundaries:
485
511
  - Rollback on any failure
486
512
  """
487
513
 
488
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
514
+ @pytest.mark.skip(
515
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
516
+ )
489
517
  async def test_tick_processing_single_transaction(self) -> None:
490
518
  """Verify tick processing uses single transaction.
491
519
 
@@ -505,7 +533,9 @@ class TestTransactionBoundaries:
505
533
  All database operations within handler are in same transaction.
506
534
  """
507
535
 
508
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
536
+ @pytest.mark.skip(
537
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
538
+ )
509
539
  async def test_transaction_rollback_on_exception(self) -> None:
510
540
  """Verify transaction rolls back on unhandled exception.
511
541
 
@@ -540,7 +570,9 @@ class TestConcurrentScalePerformance:
540
570
  They validate performance characteristics, not functionality.
541
571
  """
542
572
 
543
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
573
+ @pytest.mark.skip(
574
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
575
+ )
544
576
  @pytest.mark.benchmark
545
577
  async def test_skip_locked_throughput_under_contention(self) -> None:
546
578
  """Benchmark SKIP LOCKED throughput with high contention.
@@ -562,7 +594,9 @@ class TestConcurrentScalePerformance:
562
594
  - Contention rate < 50%
563
595
  """
564
596
 
565
- @pytest.mark.skip(reason="Pending OMN-1524: db.with_transaction()")
597
+ @pytest.mark.skip(
598
+ reason="Blocked: db.with_transaction() not yet available (OMN-1524)"
599
+ )
566
600
  @pytest.mark.benchmark
567
601
  async def test_optimistic_lock_retry_overhead(self) -> None:
568
602
  """Benchmark overhead of optimistic lock conflict resolution.
@@ -44,7 +44,7 @@ class TestContractValidation:
44
44
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
45
45
  # Skip if not yet implemented (scaffold phase)
46
46
  if not contract_path.exists():
47
- pytest.skip(f"File not yet implemented: {contract_path}")
47
+ pytest.skip(f"File pending implementation: {contract_path}")
48
48
  assert contract_path.exists(), f"Missing contract: {contract_path}"
49
49
 
50
50
  @pytest.mark.parametrize("node_name", CORE_8_NODES)
@@ -56,7 +56,7 @@ class TestContractValidation:
56
56
  """
57
57
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
58
58
  if not contract_path.exists():
59
- pytest.skip(f"File not yet implemented: {contract_path}")
59
+ pytest.skip(f"File pending implementation: {contract_path}")
60
60
 
61
61
  with open(contract_path, encoding="utf-8") as f:
62
62
  data: MappingResultDict = yaml.safe_load(f)
@@ -82,7 +82,7 @@ class TestContractValidation:
82
82
  """
83
83
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
84
84
  if not contract_path.exists():
85
- pytest.skip(f"File not yet implemented: {contract_path}")
85
+ pytest.skip(f"File pending implementation: {contract_path}")
86
86
 
87
87
  with open(contract_path, encoding="utf-8") as f:
88
88
  data: MappingResultDict = yaml.safe_load(f)
@@ -158,7 +158,7 @@ class TestContractRuntimeLoad:
158
158
  """
159
159
  node_path: Path = NODES_DIR / node_name / "node.py"
160
160
  if not node_path.exists():
161
- pytest.skip(f"File not yet implemented: {node_path}")
161
+ pytest.skip(f"File pending implementation: {node_path}")
162
162
 
163
163
  # Convert node_name to class name (e.g., memory_storage_effect -> Node...)
164
164
  class_name: str = "Node" + "".join(
@@ -188,7 +188,7 @@ class TestContractRuntimeLoad:
188
188
  """
189
189
  node_path: Path = NODES_DIR / node_name / "node.py"
190
190
  if not node_path.exists():
191
- pytest.skip(f"File not yet implemented: {node_path}")
191
+ pytest.skip(f"File pending implementation: {node_path}")
192
192
 
193
193
  class_name: str = "Node" + "".join(
194
194
  word.capitalize() for word in node_name.split("_")
@@ -275,7 +275,7 @@ class TestOrchestratorEventValidation:
275
275
  """
276
276
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
277
277
  if not contract_path.exists():
278
- pytest.skip(f"File not yet implemented: {contract_path}")
278
+ pytest.skip(f"File pending implementation: {contract_path}")
279
279
 
280
280
  with open(contract_path, encoding="utf-8") as f:
281
281
  data: MappingResultDict = yaml.safe_load(f)
@@ -328,7 +328,7 @@ class TestOrchestratorEventValidation:
328
328
  """
329
329
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
330
330
  if not contract_path.exists():
331
- pytest.skip(f"File not yet implemented: {contract_path}")
331
+ pytest.skip(f"File pending implementation: {contract_path}")
332
332
 
333
333
  with open(contract_path, encoding="utf-8") as f:
334
334
  data: MappingResultDict = yaml.safe_load(f)
@@ -369,7 +369,7 @@ class TestOrchestratorEventValidation:
369
369
  """
370
370
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
371
371
  if not contract_path.exists():
372
- pytest.skip(f"File not yet implemented: {contract_path}")
372
+ pytest.skip(f"File pending implementation: {contract_path}")
373
373
 
374
374
  with open(contract_path, encoding="utf-8") as f:
375
375
  data: MappingResultDict = yaml.safe_load(f)
@@ -457,7 +457,7 @@ class TestHandlerRoutingKeyAlignment:
457
457
  """
458
458
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
459
459
  if not contract_path.exists():
460
- pytest.skip(f"File not yet implemented: {contract_path}")
460
+ pytest.skip(f"File pending implementation: {contract_path}")
461
461
 
462
462
  with open(contract_path, encoding="utf-8") as f:
463
463
  data: MappingResultDict = yaml.safe_load(f)
@@ -546,7 +546,7 @@ class TestHandlerRoutingKeyAlignment:
546
546
  """
547
547
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
548
548
  if not contract_path.exists():
549
- pytest.skip(f"File not yet implemented: {contract_path}")
549
+ pytest.skip(f"File pending implementation: {contract_path}")
550
550
 
551
551
  with open(contract_path, encoding="utf-8") as f:
552
552
  data: MappingResultDict = yaml.safe_load(f)
@@ -575,7 +575,7 @@ class TestHandlerRoutingKeyAlignment:
575
575
  """
576
576
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
577
577
  if not contract_path.exists():
578
- pytest.skip(f"File not yet implemented: {contract_path}")
578
+ pytest.skip(f"File pending implementation: {contract_path}")
579
579
 
580
580
  with open(contract_path, encoding="utf-8") as f:
581
581
  data: MappingResultDict = yaml.safe_load(f)
@@ -234,7 +234,7 @@ class TestContractEnforcement:
234
234
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
235
235
  # Skip if not yet implemented
236
236
  if not contract_path.exists():
237
- pytest.skip(f"Contract not yet implemented: {contract_path}")
237
+ pytest.skip(f"Contract pending implementation: {contract_path}")
238
238
  assert contract_path.exists()
239
239
 
240
240
  @pytest.mark.parametrize("node_name", CORE_8_NODES)
@@ -249,7 +249,7 @@ class TestContractEnforcement:
249
249
  """
250
250
  contract_path: Path = NODES_DIR / node_name / "contract.yaml"
251
251
  if not contract_path.exists():
252
- pytest.skip(f"Contract not yet implemented: {contract_path}")
252
+ pytest.skip(f"Contract pending implementation: {contract_path}")
253
253
 
254
254
  result: ContractValidationResult = validate_contract(contract_path)
255
255
  assert result.valid, f"Contract {node_name} failed validation: {result.error}"
@@ -280,7 +280,7 @@ class TestContractEnforcement:
280
280
  """
281
281
  node_py_path: Path = NODES_DIR / node_name / "node.py"
282
282
  if not node_py_path.exists():
283
- pytest.skip(f"node.py not present (expected): {node_py_path}")
283
+ pytest.skip(f"node.py not yet created: {node_py_path}")
284
284
 
285
285
  result: SuperInitValidationResult = validate_super_init_pattern(node_py_path)
286
286
  assert result.valid, (
@@ -49,7 +49,7 @@ class TestNodeImports:
49
49
  assert module is not None
50
50
  except ImportError as e:
51
51
  # Expected during scaffold phase
52
- pytest.skip(f"Node package not yet fully implemented: {e}")
52
+ pytest.skip(f"Node package pending implementation: {e}")
53
53
 
54
54
  def test_nodes_package_exports_core_nodes(self) -> None:
55
55
  """Verify __all__ in nodes package lists all Core 8 nodes.
@@ -99,7 +99,7 @@ class TestNodeStructure:
99
99
  "node_semantic_analyzer_compute",
100
100
  # EFFECT node with MOCK handlers: Temporary mock implementations for
101
101
  # development/testing. Will be removed when omnibase_infra is integrated.
102
- # TODO: Remove from exclusion list when migrating to real handlers.
102
+ # TODO(OMN-6655): Remove from exclusion list when migrating to real handlers.
103
103
  "node_memory_retrieval_effect",
104
104
  # ORCHESTRATOR node with domain-specific lifecycle handlers:
105
105
  # - handler_memory_tick: TTL evaluation and event emission
@@ -129,7 +129,7 @@ class TestNodeStructure:
129
129
  """
130
130
  node_dir: Path = NODES_DIR / node_name
131
131
  if not node_dir.exists():
132
- pytest.skip(f"Directory not yet created: {node_dir}")
132
+ pytest.skip(f"Directory pending creation: {node_dir}")
133
133
  init_path: Path = node_dir / "__init__.py"
134
134
  assert init_path.exists(), f"Missing __init__.py: {init_path}"
135
135
 
@@ -158,7 +158,7 @@ class TestNodeStructure:
158
158
 
159
159
  node_dir: Path = NODES_DIR / node_name
160
160
  if not node_dir.exists():
161
- pytest.skip(f"Directory not yet created: {node_dir}")
161
+ pytest.skip(f"Directory pending creation: {node_dir}")
162
162
  handlers_dir: Path = node_dir / "handlers"
163
163
  assert not handlers_dir.exists(), (
164
164
  f"handlers/ should not exist in {node_name} - "
@@ -1332,7 +1332,9 @@ old_function = new_function # alias
1332
1332
  finally:
1333
1333
  cleanup_temp_file(path)
1334
1334
 
1335
- def test_detects_todo_remove_deprecated(self) -> None:
1335
+ def test_detects_todo_remove_deprecated( # TODO_FORMAT_EXEMPT: test fixture
1336
+ self,
1337
+ ) -> None:
1336
1338
  """Test detection of TODO to remove deprecated code."""
1337
1339
  code = """
1338
1340
  # TODO: remove deprecated function in next version
@@ -2084,7 +2086,9 @@ class TestValidateNoBackwardCompatAdditional:
2084
2086
  violations = validate_no_backward_compat(path)
2085
2087
  assert violations == []
2086
2088
 
2087
- def test_delete_deprecated_todo(self) -> None:
2089
+ def test_delete_deprecated_todo( # TODO_FORMAT_EXEMPT: test fixture
2090
+ self,
2091
+ ) -> None:
2088
2092
  """Test detection of TODO: delete deprecated."""
2089
2093
  code = """
2090
2094
  # TODO: delete deprecated code