omninode-memory 0.18.4__tar.gz → 0.18.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/required-checks.yaml +19 -12
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/auto-tag-on-merge.yml +3 -9
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/ban-hardcoded-runner-ip.yml +1 -1
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/call-reject-skip.yml +1 -1
- omninode_memory-0.18.6/.github/workflows/call-repo-evidence-gate.yml +72 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/check-handshake.yml +2 -2
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/ci.yml +164 -94
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/contract-validation.yml +87 -27
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/dep-provenance-gate.yml +3 -5
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/docs-validate.yml +1 -1
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/hardcoded-model-config.yml +1 -1
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/imperative-contract-guard.yml +3 -2
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/kb-doc-gate.yml +1 -1
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/main-target-guard.yml +1 -6
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/omni-standards-compliance.yml +2 -7
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/pin-resolvability-gate.yml +3 -12
- omninode_memory-0.18.6/.github/workflows/pr-title-check.yml +53 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/public-repo-hygiene.yml +1 -1
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/secrets-baseline-wiring.yml +1 -1
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/security-scan.yml +2 -2
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/stale-todo-gate.yml +1 -6
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/validate-validator-requirements.yml +2 -8
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/validator-runtime-profiles.yml +2 -7
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.onex_ratchets/canonical_file_shape_baseline.txt +0 -1
- omninode_memory-0.18.6/.onex_ratchets/node_home_baseline.txt +18 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.pre-commit-config.yaml +35 -20
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.pre-commit-hooks/reject-deploy-gate-skip-token.sh +19 -36
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.secrets.baseline +1 -1
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/CHANGELOG.md +10 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/PKG-INFO +2 -2
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/architecture-handshakes/validator-requirements.yaml +2 -5
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/config/hardcoded_model_config_baseline.yaml +0 -6
- omninode_memory-0.18.6/contracts/OMN-18595.yaml +54 -0
- omninode_memory-0.18.6/contracts/OMN-19998.yaml +41 -0
- omninode_memory-0.18.6/contracts/OMN-20032.yaml +57 -0
- omninode_memory-0.18.6/contracts/OMN-20074.yaml +229 -0
- omninode_memory-0.18.6/contracts/OMN-20702.yaml +65 -0
- omninode_memory-0.18.6/contracts/OMN-20936.yaml +55 -0
- omninode_memory-0.18.6/contracts/OMN-20940.yaml +58 -0
- omninode_memory-0.18.6/contracts/OMN-20943.yaml +67 -0
- omninode_memory-0.18.6/contracts/OMN-20945.yaml +51 -0
- omninode_memory-0.18.6/contracts/OMN-20997.yaml +69 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/deployment/database/migrations_pending/004_create_navigation_paths_collection.py +1 -1
- omninode_memory-0.18.6/imperative-contract-allowlist.yaml +22 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/pyproject.toml +3 -4
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/check_dep_provenance.py +0 -4
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/ci/test_selection_adjacency.yaml +8 -3
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validate_ci_precommit_alignment.py +28 -7
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/events/__init__.py +3 -0
- omninode_memory-0.18.6/src/omnimemory/models/events/model_lifecycle_transition_failed_event.py +60 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/dispatch_handlers.py +256 -13
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/plugin.py +151 -5
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/topics.py +6 -0
- omninode_memory-0.18.6/tests/ci/test_codeql_from_core_omn20074.py +78 -0
- omninode_memory-0.18.6/tests/ci/test_contract_compliance_own_contracts_omn20074.py +167 -0
- omninode_memory-0.18.6/tests/ci/test_contract_validation_core_validator_omn20074.py +246 -0
- omninode_memory-0.18.6/tests/ci/test_contracts_no_duplicate_keys_omn20945.py +50 -0
- omninode_memory-0.18.6/tests/ci/test_deployment_config_context_omn20940.py +81 -0
- omninode_memory-0.18.6/tests/ci/test_imperative_contract_guard_caller_omn20943.py +194 -0
- omninode_memory-0.18.6/tests/ci/test_no_change_control_refs_omn20074.py +66 -0
- omninode_memory-0.18.6/tests/ci/test_no_occ_callers_omn20074.py +226 -0
- omninode_memory-0.18.6/tests/ci/test_node_home_activation_omn20702.py +83 -0
- omninode_memory-0.18.6/tests/ci/test_pr_title_check_omnimarket_node.py +202 -0
- omninode_memory-0.18.6/tests/ci/test_precommit_hooks_core_omn20074.py +100 -0
- omninode_memory-0.18.6/tests/ci/test_public_runner_placement_omn19998.py +152 -0
- omninode_memory-0.18.6/tests/ci/test_reject_skip_token_hook_omn20074.py +71 -0
- omninode_memory-0.18.6/tests/ci/test_repo_evidence_caller_omn20074.py +124 -0
- omninode_memory-0.18.6/tests/ci/test_repo_evidence_caller_verifier_floor_omn20032.py +63 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/scripts/test_check_dep_provenance.py +4 -4
- omninode_memory-0.18.6/tests/test_release_metadata_omn18595.py +41 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_dispatch_handlers.py +3 -3
- omninode_memory-0.18.6/tests/unit/runtime/test_expire_memory_dispatch.py +374 -0
- omninode_memory-0.18.6/tests/unit/runtime/test_navigation_embedding_url_omn20936.py +90 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_plugin_integration_wiring.py +145 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_validate_ci_precommit_alignment.py +69 -3
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_workflow_sibling_pins.py +1 -1
- omninode_memory-0.18.6/tests/workflows/__init__.py +2 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/uv.lock +20 -21
- omninode_memory-0.18.4/.github/workflows/call-occ-autobind.yml +0 -196
- omninode_memory-0.18.4/.github/workflows/call-occ-companion-effect.yml +0 -267
- omninode_memory-0.18.4/.github/workflows/pr-title-check.yml +0 -34
- omninode_memory-0.18.4/scripts/ci/occ_manual_replay_precheck.py +0 -165
- omninode_memory-0.18.4/tests/scripts/test_occ_eligibility_enforcement.py +0 -165
- omninode_memory-0.18.4/tests/unit/scripts/test_occ_manual_replay_precheck.py +0 -160
- omninode_memory-0.18.4/tests/unit/test_occ_companion_effect_edited_trigger_omn_18334.py +0 -71
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.claude/architecture-handshake.md +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.env.example +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.flake8 +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/CODE_OF_CONDUCT.md +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/CONTRIBUTING.md +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/dependabot.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/auto-merge.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/build-and-push-migrate-image.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/pre-commit.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/release-dry-run.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/release.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/sibling-lock-refresh.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/todo-audit-on-merge.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/url-authority-gate.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.gitignore +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.kb-doc-gate.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.markdown-link-check.json +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.onex_ratchets/noncanonical_class_allowlist.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.public-repo-hygiene.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.serena/project.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/.yamlfmt +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/CLAUDE.md +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/LICENSE +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/README.md +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/SECURITY.md +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/architecture-handshakes/validator-requirements-baseline.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/contracts/OMN-12245.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/deployment/database/migrations/001_create_subscription_tables.sql +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/deployment/database/migrations/002_create_memories_table.sql +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/deployment/database/migrations/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/deployment/database/migrations/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/deployment/database/migrations/005_backfill_null_checksums.sql +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/deployment/database/migrations_pending/004_create_navigation_sessions_table.sql +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/deployment/database/pending/003_create_crawl_state_table.sql +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/deployment/docker/Dockerfile.migrate +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docker-compose.prod.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docker-compose.yml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-icon-black.png +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-icon-full-color.svg +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-icon-white.png +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-inline-black.png +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-inline-full-color.svg +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-inline-white.png +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-stacked-black.png +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-stacked-full-color.svg +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-stacked-white.png +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-wordmark-black.svg +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-wordmark-grey.svg +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/docs/assets/brand/omninode-wordmark-white.svg +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/examples/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/examples/advanced_architecture_demo.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/pyrightconfig.json +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/check_migration_freeze.sh +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/check_no_hardcoded_bolt.sh +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/ci/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/ci/collect_changed_files.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/ci/detect_test_paths.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/ci/run_runtime_profiles_validator.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/ci/test_selection_loader.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/ci/test_selection_models.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/ci/verify_pypi_pin_resolvability.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/graphify_to_memgraph.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/graphify_to_qdrant.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/check_ai_slop.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/check_kafka_no_hardcoded_fallback.sh +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/check_no_internal_ips.sh +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/check_precommit_additional_dependencies.sh +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/foundation_validation_common.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_enum_casing.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_http_imports.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_kafka_imports.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_model_locations.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_naming.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_no_backward_compatibility.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_no_env_fallbacks.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_pydantic_patterns.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_secrets.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_single_class_per_file.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/scripts/validation/validate_spdx_headers.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/_compat_imports.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_concurrency.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_correlation_context.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_db_url.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_error_sanitizer.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_handler_constants.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_health_manager.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_metrics_counter.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_observability_wrapper.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_pii_detector.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_resource_manager.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/adapters/adapter_retry_utils.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/bootstrap.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/crawl/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/crawl/enum_context_source_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/crawl/enum_crawler_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/crawl/enum_detected_doc_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_attribution_signal_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_context_item_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_data_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_entity_extraction_mode.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_error_code.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_intelligence_operation_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_lifecycle_state.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_memory_operation_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_memory_storage_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_memory_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_migration_status.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_node_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_operation_status.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_preferred_tone.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_priority_level.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_promotion_tier.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_semantic_entity_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_severity.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_subscription_status.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_technical_level.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/enums/enum_trust_level.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/errors/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/errors/embedding_errors.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/adapter_embedding_http.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/adapter_graph_memory.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/adapter_intent_graph.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/adapter_intent_graph_contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/adapter_rate_limiter.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/adapter_valkey.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/models/model_adapter_intent_graph_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/models/model_intent_domain.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/adapters/models/model_intent_graph_health.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/handler_intent.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/handler_subscription.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/handler_subscription_contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/handlers/models/model_handler_intent_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/adapters/model_connections_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/adapters/model_filesystem_adapter_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/adapters/model_graph_memory_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/adapters/model_graph_memory_health.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/adapters/model_memory_connection.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/adapters/model_related_memory.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/adapters/model_related_memory_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_doc_source_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_embedding_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_filesystem_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_handler_semantic_compute_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_linear_scope_mapping.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_memory_service_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_path_scope_mapping.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_postgres_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_promotion_threshold_set.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_qdrant_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_rate_limiter_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_scope_mapping_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/config/model_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/container/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/contracts/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/contracts/mixin_handler_routing.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/contracts/model_contract_compute_extended.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/contracts/model_contract_effect_extended.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/contracts/model_contract_orchestrator_extended.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/contracts/model_contract_reducer_extended.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/core/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/core/model_memory_context.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/core/model_memory_metadata.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/core/model_memory_parameters.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/core/model_memory_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/core/model_memory_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/core/model_operation_metadata.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/core/model_processing_metrics.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/core/model_provenance.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/crawl/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/crawl/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/crawl/model_document_changed_event.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/crawl/model_document_discovered_event.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/crawl/model_document_indexed_event.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/crawl/model_document_indexed_kreuzberg_event.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/crawl/model_document_parse_failed_event.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/crawl/model_document_removed_event.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/crawl/types.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/events/model_crawl_tick_command.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/events/model_intent_classified_event.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_audit_metadata.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_configuration.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_connection_metadata.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_error_details.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_health_metadata.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_health_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_memory_data.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_metrics_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_migration_progress.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_notes.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_priority.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_progress_summary.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_semver.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_success_metrics.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_system_health.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_tags.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_trust_score.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_typed_collections.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/foundation/model_user.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/intelligence/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/intelligence/model_intelligence_analysis.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/intelligence/model_pattern_recognition_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/intelligence/model_semantic_analysis_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/intelligence/model_semantic_entity.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/intelligence/model_semantic_entity_list.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/memory/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/memory/model_memory_item.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/memory/model_memory_query.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/memory/model_memory_search_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/memory/model_memory_storage_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/memory/model_similarity_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/persona/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/persona/model_persona_signal.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/persona/model_user_persona_v1.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/scoring/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/scoring/model_context_item_stats.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/scoring/model_context_policy_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/scoring/model_promotion_decision.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/service/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/service/model_service_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/service/model_service_health.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/service/model_service_registry.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/subscription/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/subscription/constants.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/subscription/model_notification_event.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/subscription/model_notification_event_payload.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/subscription/model_subscription.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_audit.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_circuit_breaker_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_circuit_breaker_stats_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_concurrency.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_correlation_context.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_health_check_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_health_check_details.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_health_check_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_health_status.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_pii_detection_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_pii_detector_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_pii_match.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_pii_pattern_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_pii_type.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_resource_health_check.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_retry_attempt_info.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_retry_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_retry_statistics.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_structured_log_entry.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/models/utils/model_system_health.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/base.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_coordinator_orchestrator/models/model_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/handlers/handler_agent_learning_retrieval.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_agent_learning_retrieval_effect/models/model_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/handlers/handler_intent_query.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/mappers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/mappers/util_intent_mapping.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/models/model_handler_intent_query_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/registry/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_query_effect/registry/registry_intent_query_effect.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_storage_effect/adapters/adapter_intent_storage.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_intent_storage_effect/models/model_intent_storage_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_kreuzberg_parse_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_kreuzberg_parse_effect/adapters/adapter_kreuzberg_client.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_kreuzberg_parse_effect/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_kreuzberg_parse_effect/handler_kreuzberg_parse.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_kreuzberg_parse_effect/models/model_kreuzberg_parse_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_consolidator_reducer/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_postgres_deactivate_memory.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/adapters/adapter_runtime_tick_memory.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_archive.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_expire.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/handlers/handler_memory_tick.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_lifecycle_orchestrator/validators/validator_lifecycle_transition.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/adapters/adapter_embedding_client.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/contract_descriptor.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_db_mock.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_decay.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_fusion.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_graph_mock.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_memory_retrieval.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/handlers/handler_qdrant_mock.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_embedding_client_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_db_mock_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_graph_mock_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_memory_retrieval_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_handler_qdrant_mock_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_retrieval_effect/models/model_memory_retrieval_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_storage_effect/adapters/adapter_filesystem.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_memory_storage_effect/models/model_memory_storage_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_navigation_history_reducer/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_navigation_history_reducer/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_navigation_history_reducer/handlers/handler_navigation_history_reducer.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_navigation_history_reducer/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_history_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_navigation_history_reducer/models/model_navigation_session.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_navigation_history_reducer/node_navigation_history_reducer.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_builder_compute/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_builder_compute/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_builder_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_builder_compute/handlers/handler_persona_classify.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_builder_compute/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_builder_compute/models/model_classify_result.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_storage_effect/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_storage_effect/adapters/adapter_postgres_persona.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_storage_effect/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_storage_effect/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_persona_storage_effect/models/model_persona_storage_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_semantic_analyzer_compute/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_semantic_analyzer_compute/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_semantic_analyzer_compute/handlers/handler_semantic_compute.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_semantic_analyzer_compute/models/model_semantic_analyzer_compute_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_semantic_analyzer_compute/node_semantic_analyzer_compute.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_similarity_compute/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_similarity_compute/contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_similarity_compute/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_similarity_compute/handlers/handler_similarity_compute.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_similarity_compute/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_similarity_compute/models/model_handler_similarity_compute_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_request.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_similarity_compute/models/model_similarity_compute_response.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/nodes/node_similarity_compute/node_similarity_compute.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/protocols/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/protocols/base_protocols.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/protocols/data_models.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/protocols/error_models.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/protocols/protocol_embedding.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/protocols/protocol_embedding_provider.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/protocols/protocol_handler_intent.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/protocols/protocol_intent_graph_adapter.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/protocols/protocol_secrets_provider.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/adapters.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/contract_topics.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/handler_lifecycle.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/handler_lifecycle_contract.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/introspection.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/message_type_registration.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/runtime/wiring.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/secrets.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/settings.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/tools/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/tools/contract_linter.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/tools/validators/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/src/omnimemory/tools/validators/validator_contract.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/__init__.py +0 -0
- {omninode_memory-0.18.4/tests/nodes/node_navigation_history_reducer → omninode_memory-0.18.6/tests/ci}/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/conftest.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/fixtures/omn19666/pre-commit-git-dependency.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/fixtures/omn19666/pre-commit-pypi-dependency.yaml +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/gates/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/gates/test_ban_hardcoded_runner_ip_scope.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/gates/test_consumer_group_name_authorization.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/adapters/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/adapters/test_adapter_embedding_http.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/adapters/test_adapter_embedding_http_integration.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/adapters/test_adapter_graph_memory.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/adapters/test_adapter_graph_memory_integration.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/adapters/test_adapter_intent_graph.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/adapters/test_adapter_rate_limiter.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/test_handler_intent.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/handlers/test_handler_semantic_compute.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/conftest.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/nodes/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/nodes/test_kreuzberg_parse_effect.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/nodes/test_memory_lifecycle_orchestrator_integration.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/nodes/test_navigation_history_reducer_integration.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/test_entry_point_discovery.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/test_golden_chain_memgraph_ingestion.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/test_golden_chain_qdrant_ingestion.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/test_handler_lifecycle_pattern.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/test_handler_subscription.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/test_node_agent_coordinator.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/integration/test_persona_round_trip.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/models/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/models/contracts/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/models/contracts/test_extended_contracts.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/models/events/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/models/events/test_model_intent_classified_event.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/models/test_frozen_boundary_models.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_intent_query_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_intent_query_effect/conftest.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_intent_query_effect/test_handler_intent_query_integration.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_intent_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_intent_storage_effect/test_handler_intent_storage_adapter_integration.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_memory_retrieval_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_memory_retrieval_effect/test_contract_descriptor.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_memory_retrieval_effect/test_dispatch_entrypoint_contract.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_memory_retrieval_effect/test_memory_retrieval_effect.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_memory_storage_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_memory_storage_effect/test_memory_storage_effect.py +0 -0
- {omninode_memory-0.18.4/tests/scripts → omninode_memory-0.18.6/tests/nodes/node_navigation_history_reducer}/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_navigation_history_reducer/test_navigation_history_reducer_unit.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_similarity_compute/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/nodes/node_similarity_compute/test_similarity_compute.py +0 -0
- {omninode_memory-0.18.4/tests/unit/adapters → omninode_memory-0.18.6/tests/scripts}/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/scripts/test_pin_resolvability_conflict_report.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/scripts/test_pin_resolvability_gate_workflow.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_bootstrap.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_concurrency.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_config_models.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_contract_validation.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_contract_version.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_db_url.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_foundation.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_health_manager.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_migration_progress.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_node_enforcement.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_node_imports.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_observability_manager.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_observability_metrics.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_performance.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_precommit_additional_dependencies_omn19666.sh +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_precommit_staged_scope_omn19612.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_resource_manager.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_secrets_provider.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_semantic_compute_policy_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_settings.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/test_validation_scripts.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/__init__.py +0 -0
- {omninode_memory-0.18.4/tests/unit/handlers → omninode_memory-0.18.6/tests/unit/adapters}/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/adapters/test_adapter_pii_detector.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/adapters/test_pii_live_call_paths.py +0 -0
- {omninode_memory-0.18.4/tests/unit/handlers/adapters → omninode_memory-0.18.6/tests/unit/handlers}/__init__.py +0 -0
- {omninode_memory-0.18.4/tests/unit/nodes → omninode_memory-0.18.6/tests/unit/handlers/adapters}/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/handlers/adapters/test_graph_adapter_typing.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/handlers/test_subscription_typing.py +0 -0
- {omninode_memory-0.18.4/tests/unit/runtime → omninode_memory-0.18.6/tests/unit/nodes}/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/fixtures/omn16765/hybrid_retrieval_corpus.json +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_activation_decay.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_decay_ranking.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_handler_agent_learning_retrieval.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_handler_qdrant.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_handler_routing_boot_resolvable.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_hybrid_retrieval_fusion.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_kreuzberg_parse_effect/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_kreuzberg_parse_effect/test_handler_kreuzberg_parse.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_postgres_deactivate_memory.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_adapter_runtime_tick_memory.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_archive.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_expire.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_handler_memory_tick.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_memory_lifecycle_orchestrator/test_validator_lifecycle_transition.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_model_handler_qdrant_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_navigation_history_reducer_contract.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_node_agent_learning_retrieval_models.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_persona_builder.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/nodes/test_persona_storage_retrieval.py +0 -0
- {omninode_memory-0.18.4/tests/unit/scripts → omninode_memory-0.18.6/tests/unit/runtime}/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/conftest.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_adapters.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_contract_handler_completeness.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_contract_topics.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_introspection.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_memory_subscription_group_is_authorized.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_message_type_registration.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_plugin.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_plugin_graph_memory_wiring.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_plugin_memory_validate_handshake.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_standalone_handler_contracts.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/runtime/test_wiring.py +0 -0
- {omninode_memory-0.18.4/tests/workflows → omninode_memory-0.18.6/tests/unit/scripts}/__init__.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/scripts/test_check_ai_slop.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/scripts/test_collect_changed_files.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_auto_tag_app_token_push_omn18662.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_ci_workflow_shape.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_contract_linter.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_detect_test_paths.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_dispatch_retrieval_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_entry_points.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_graphify_to_memgraph.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_graphify_to_qdrant.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_handler_subscription_notify_strict.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_ingestion_models.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_model_user_persona_v1.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_no_duplicate_node_uuids.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_persona_enums.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_scope_mapping_config.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_sql_placeholders.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/unit/test_validate_kafka_imports.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/workflows/test_auto_merge_ready_for_review_omn19216.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/tests/workflows/test_auto_merge_workflow.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/validate_architecture_improvements.py +0 -0
- {omninode_memory-0.18.4 → omninode_memory-0.18.6}/validation/runtime_profiles_allowlist.yaml +0 -0
|
@@ -17,19 +17,14 @@
|
|
|
17
17
|
# Manifest entries (including CI Summary members): 15
|
|
18
18
|
|
|
19
19
|
required_checks:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
conditional:
|
|
25
|
-
condition: "Required on pull_request and merge_group; not applicable on push or workflow_dispatch"
|
|
20
|
+
- name: "pr-title / check-title"
|
|
21
|
+
workflow: pr-title-check.yml
|
|
22
|
+
job_id: pr-title
|
|
23
|
+
producer_kind: local
|
|
24
|
+
conditional: false
|
|
26
25
|
rationale: >-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
merge_group, only successful preflight passes admission; CI Summary
|
|
30
|
-
requires a successful admission verdict on every event. Failed,
|
|
31
|
-
cancelled, skipped and absent results block. The caller and validator
|
|
32
|
-
source use the same immutable omnibase_core revision.
|
|
26
|
+
PR title ticket-reference check: the job runs omnimarket's
|
|
27
|
+
node_pr_title_check_compute from a pinned omnimarket release (OMN-20997).
|
|
33
28
|
|
|
34
29
|
# -- Phase 1: Quick Validation (parallel, ~2-5 min) -------------------------
|
|
35
30
|
|
|
@@ -124,6 +119,18 @@ required_checks:
|
|
|
124
119
|
the required CI Summary context, which needs: this job and accepts only a
|
|
125
120
|
success result.
|
|
126
121
|
|
|
122
|
+
- name: "Public Runner Placement (OMN-19998)"
|
|
123
|
+
workflow: ci.yml
|
|
124
|
+
job_id: public-runner-placement
|
|
125
|
+
conditional: false
|
|
126
|
+
rationale: >-
|
|
127
|
+
OMN-19998. Operator ruling 2026-10-16T07:07:09Z: CI runners are for
|
|
128
|
+
private repositories only. Refuses a job whose runs-on is, or can resolve
|
|
129
|
+
to, a self-hosted label, using omnibase_core's check at the release the
|
|
130
|
+
pre-commit hook pins. Unconditional (no needs, no if); gates merges
|
|
131
|
+
through the required CI Summary context, which needs: this job and
|
|
132
|
+
accepts only a success result.
|
|
133
|
+
|
|
127
134
|
# -- Phase 2: Full Test Suite ------------------------------------------------
|
|
128
135
|
|
|
129
136
|
- name: "Tests"
|
|
@@ -45,14 +45,8 @@ jobs:
|
|
|
45
45
|
startsWith(github.event.pull_request.title, 'release:') ||
|
|
46
46
|
startsWith(github.event.pull_request.title, 'chore: release') ||
|
|
47
47
|
startsWith(github.event.pull_request.title, 'chore(release)'))
|
|
48
|
-
#
|
|
49
|
-
runs-on:
|
|
50
|
-
${{
|
|
51
|
-
(github.event_name == 'pull_request' &&
|
|
52
|
-
github.event.pull_request.head.repo.full_name != github.repository)
|
|
53
|
-
&& fromJSON(vars.OMNI_PUBLIC_PR_RUNS_ON_JSON || '["ubuntu-latest"]')
|
|
54
|
-
|| fromJSON(vars.OMNI_TRUSTED_CI_RUNS_ON_JSON || '["self-hosted","omnibase-ci"]')
|
|
55
|
-
}}
|
|
48
|
+
# OMN-19998: public repository, GitHub-hosted runner only (RULING 2026-10-16T07:07:09Z)
|
|
49
|
+
runs-on: ubuntu-latest
|
|
56
50
|
permissions:
|
|
57
51
|
contents: read
|
|
58
52
|
steps:
|
|
@@ -61,7 +55,7 @@ jobs:
|
|
|
61
55
|
# separate credential file and includes it through `includeIf.gitdir`, so
|
|
62
56
|
# it overrides the App credential in the push URL below and the push
|
|
63
57
|
# authenticates as github-actions[bot] again.
|
|
64
|
-
- uses: actions/checkout@
|
|
58
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
65
59
|
with:
|
|
66
60
|
persist-credentials: false
|
|
67
61
|
|
{omninode_memory-0.18.4 → omninode_memory-0.18.6}/.github/workflows/ban-hardcoded-runner-ip.yml
RENAMED
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
# OMN-17993: pinned to an exact SHA, not @main. omniclaude main lags dev by
|
|
32
32
|
# design (release-synced), so @main still resolves to the pre-widening scanner
|
|
33
33
|
# body that scans workflow files only and exits 0 on a tests-only diff.
|
|
34
|
-
uses: OmniNode-ai/omniclaude/.github/workflows/ban-hardcoded-runner-ip.yml@
|
|
34
|
+
uses: OmniNode-ai/omniclaude/.github/workflows/ban-hardcoded-runner-ip.yml@a45ba68f053e9979c6edef21103c0e674e5f7630 # OMN-20074: omniclaude#2656 squash, the reusable scans without the nested change-control preflight
|
|
35
35
|
permissions:
|
|
36
36
|
contents: read
|
|
37
37
|
pull-requests: read
|
|
@@ -28,5 +28,5 @@ permissions:
|
|
|
28
28
|
|
|
29
29
|
jobs:
|
|
30
30
|
call-reject-skip-token:
|
|
31
|
-
uses: OmniNode-ai/omniclaude/.github/workflows/reject-deploy-gate-skip.yml@
|
|
31
|
+
uses: OmniNode-ai/omniclaude/.github/workflows/reject-deploy-gate-skip.yml@e9b550b6be0a8e648ea83f9ed7f5fb8175ae1aaf
|
|
32
32
|
secrets: inherit
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 OmniNode.ai Inc.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
# Repo Evidence Gate caller (OMN-20074, OCC retirement OR.6) verifies
|
|
5
|
+
# omnimemory's own contracts/<OMN-N>.yaml at the PR head through
|
|
6
|
+
# omnibase_core's receipt-gate reusable with evidence-source: caller.
|
|
7
|
+
# This is the path omnimarket proved as the canary (OMN-20070, OMN-20072).
|
|
8
|
+
#
|
|
9
|
+
# Why pull_request_target: GitHub reads the workflow definition from the BASE
|
|
10
|
+
# branch, so a pull request that edits this file or the reusable's pin does not
|
|
11
|
+
# change which definition runs on it. The pull request's own code is only ever
|
|
12
|
+
# checked out as data by the reusable, which refuses fork heads.
|
|
13
|
+
#
|
|
14
|
+
# dev and main are the integration branches. The activity types cover new heads,
|
|
15
|
+
# reopened and ready PRs, and edits to the ticket citation or base branch.
|
|
16
|
+
# Per-PR concurrency cancels superseded runs so the latest event gets a verdict.
|
|
17
|
+
# Read-only contents and pull-requests permissions are all this caller needs;
|
|
18
|
+
# checkout and verification belong to the reusable, with no caller secrets.
|
|
19
|
+
# The full-SHA pin makes the reusable immutable; verifier-version pins the
|
|
20
|
+
# released verifier used to read the caller's contracts.
|
|
21
|
+
#
|
|
22
|
+
# The job id is the context prefix: repo-evidence / dod-verify carries the
|
|
23
|
+
# verdict, so do not add a job name. The reusable also reports a
|
|
24
|
+
# repo-evidence / verify job in this mode as a success no-op (the OCC path,
|
|
25
|
+
# switched off by the input); only repo-evidence / dod-verify carries a verdict.
|
|
26
|
+
#
|
|
27
|
+
# S6 cut-over (OMN-20074): the caller enforces repo-owned evidence with
|
|
28
|
+
# shadow: "false" and compare-with-occ: "false". Admission no longer compares
|
|
29
|
+
# against OCC. The comparison was switched off on dev first, because this caller
|
|
30
|
+
# runs from dev under pull_request_target and the retiring pull request cannot
|
|
31
|
+
# change the input that judges it. No OCC caller remains in this repository, so
|
|
32
|
+
# the difference step would otherwise wait for a verdict nobody reports.
|
|
33
|
+
# repo-evidence / dod-verify carries the verdict; a repository ruleset on dev is
|
|
34
|
+
# to require that context once the OCC contexts have left the ruleset.
|
|
35
|
+
# Rollback is setting shadow back to "true", which makes every repo-evidence
|
|
36
|
+
# job conclude success again while the cause is found.
|
|
37
|
+
#
|
|
38
|
+
# The reusable is pinned by full SHA to the squash commit of omnibase_core#1932
|
|
39
|
+
# on dev, a descendant of #1914; it carries the `shadow` input. omnimemory does
|
|
40
|
+
# not host receipt-gate.yml.
|
|
41
|
+
#
|
|
42
|
+
# The pinned reusable refuses a verifier-version below 0.4.303 before installing
|
|
43
|
+
# it (VERIFIER_FLOOR, omnibase_core#1932; OMN-20032), the first release that
|
|
44
|
+
# refuses a contract leaving a criterion unbound. With shadow "false" that
|
|
45
|
+
# install step blocks. verifier-version 0.4.310 is the first omnimarket release
|
|
46
|
+
# that ships the writer-app and plugin-manifest diff classifiers
|
|
47
|
+
# (omnimarket#3694) and refuses a contract that repeats a mapping key
|
|
48
|
+
# (omnimarket#3751), the version omniclaude and omnidash run.
|
|
49
|
+
|
|
50
|
+
name: Repo Evidence Gate
|
|
51
|
+
|
|
52
|
+
on:
|
|
53
|
+
pull_request_target:
|
|
54
|
+
types: [opened, synchronize, reopened, edited, ready_for_review]
|
|
55
|
+
branches: [dev, main]
|
|
56
|
+
|
|
57
|
+
concurrency:
|
|
58
|
+
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
|
59
|
+
cancel-in-progress: true
|
|
60
|
+
|
|
61
|
+
permissions:
|
|
62
|
+
contents: read
|
|
63
|
+
pull-requests: read
|
|
64
|
+
|
|
65
|
+
jobs:
|
|
66
|
+
repo-evidence:
|
|
67
|
+
uses: OmniNode-ai/omnibase_core/.github/workflows/receipt-gate.yml@4e4f5e0404d364e296c5d37db6aa3ab9e07f8ffa # OMN-20032: immutable full-SHA pin, the squash commit of omnibase_core#1932 on that repo's dev branch; descends from #1914 (carries the shadow input) and adds the VERIFIER_FLOOR 0.4.303 refusal to the verifier install step
|
|
68
|
+
with:
|
|
69
|
+
evidence-source: caller
|
|
70
|
+
verifier-version: 0.4.310
|
|
71
|
+
compare-with-occ: "false"
|
|
72
|
+
shadow: "false"
|
|
@@ -28,8 +28,8 @@ jobs:
|
|
|
28
28
|
uses: actions/checkout@v7
|
|
29
29
|
with:
|
|
30
30
|
repository: OmniNode-ai/omnibase_core
|
|
31
|
-
# Auto-bumped by omnibase_core publish-downstream-pin-bump.yml to
|
|
32
|
-
ref:
|
|
31
|
+
# Auto-bumped by omnibase_core publish-downstream-pin-bump.yml to c880801d4dee.
|
|
32
|
+
ref: c880801d4deeaa1627535c8622ab6c4ab8cfbecd
|
|
33
33
|
path: omnibase_core
|
|
34
34
|
|
|
35
35
|
- name: Verify omnibase_core checkout
|
|
@@ -23,37 +23,6 @@ env:
|
|
|
23
23
|
CACHE_VERSION: "0.1.0"
|
|
24
24
|
|
|
25
25
|
jobs:
|
|
26
|
-
# OMN-18854: the existing eligibility validator must feed the required
|
|
27
|
-
# CI Summary. Other validations remain independent of this evidence gate.
|
|
28
|
-
occ-preflight:
|
|
29
|
-
if: github.event_name == 'pull_request' || github.event_name == 'merge_group'
|
|
30
|
-
permissions:
|
|
31
|
-
contents: read
|
|
32
|
-
pull-requests: read
|
|
33
|
-
uses: OmniNode-ai/omnibase_core/.github/workflows/occ-preflight.yml@13ceae69c246a33c9fc8fc4b33f83fb66b89edc6
|
|
34
|
-
with:
|
|
35
|
-
core-ref: 13ceae69c246a33c9fc8fc4b33f83fb66b89edc6
|
|
36
|
-
contracts-dir: contracts
|
|
37
|
-
receipts-dir: drift/dod_receipts
|
|
38
|
-
|
|
39
|
-
# OMN-18854: evidence admission has its own verdict; shape detectors and
|
|
40
|
-
# their result aggregation do not branch directly on the evidence preflight.
|
|
41
|
-
occ-eligibility:
|
|
42
|
-
name: OCC Eligibility Admission
|
|
43
|
-
runs-on: ubuntu-latest
|
|
44
|
-
needs: occ-preflight
|
|
45
|
-
if: always()
|
|
46
|
-
steps:
|
|
47
|
-
- name: Require eligible evidence on admission events
|
|
48
|
-
run: |
|
|
49
|
-
event="${{ github.event_name }}"
|
|
50
|
-
if [[ "$event" == "pull_request" || "$event" == "merge_group" ]]; then
|
|
51
|
-
if [[ "${{ needs.occ-preflight.result }}" != "success" ]]; then
|
|
52
|
-
echo "::error::occ-preflight did not pass (result: ${{ needs.occ-preflight.result }})"
|
|
53
|
-
exit 1
|
|
54
|
-
fi
|
|
55
|
-
fi
|
|
56
|
-
|
|
57
26
|
# =============================================================================
|
|
58
27
|
# JOB ORDERING RATIONALE (Fail-Fast Optimization)
|
|
59
28
|
# =============================================================================
|
|
@@ -258,10 +227,6 @@ jobs:
|
|
|
258
227
|
- name: Pre-commit dependencies come from package indexes (OMN-19666)
|
|
259
228
|
run: bash tests/test_precommit_additional_dependencies_omn19666.sh
|
|
260
229
|
|
|
261
|
-
# OMN-18854: the same focused regression runs before commit and in CI.
|
|
262
|
-
- name: Verify OCC eligibility enforcement (OMN-18854)
|
|
263
|
-
run: uv run pytest tests/scripts/test_occ_eligibility_enforcement.py -q
|
|
264
|
-
|
|
265
230
|
# SYNC: Pre-commit hook 'validate-gitignore-baseline' at pre-commit stage (OMN-18033)
|
|
266
231
|
# This step and the hook both pin released omnibase-core==0.47.23,
|
|
267
232
|
# matching uv.lock and carrying the packaged baseline spec; move them together.
|
|
@@ -629,65 +594,52 @@ jobs:
|
|
|
629
594
|
|
|
630
595
|
contract-compliance:
|
|
631
596
|
name: Contract Compliance Check
|
|
632
|
-
#
|
|
633
|
-
#
|
|
634
|
-
|
|
635
|
-
# onex-allow-internal-ip OMN-16437 reason="doc comment naming the host this fix routes around; not runnable"
|
|
636
|
-
# `ubuntu-latest` is GitHub-hosted, non-tailnet, and cannot resolve that hostname.
|
|
637
|
-
# Same defect class as OMN-16413 (omnibase_core#1579), OMN-16427
|
|
638
|
-
# (omninode_infra#969), OMN-16428 (omnimarket), and OMN-16431 (omniclaude#2023,
|
|
639
|
-
# same job name/shape) -- adopts the identical fork-aware selector: only an
|
|
640
|
-
# ACTUAL fork PR (head repo != base repo) routes to the public ubuntu-latest
|
|
641
|
-
# runner; every same-repo pull_request, push, and merge_group gets the
|
|
642
|
-
# tailnet-connected self-hosted omnibase-ci fleet, which CAN reach the .201
|
|
643
|
-
# mirror. This does NOT widen the trust boundary: untrusted fork code still
|
|
644
|
-
# never reaches the self-hosted fleet.
|
|
645
|
-
runs-on: >-
|
|
646
|
-
${{
|
|
647
|
-
(github.event_name == 'pull_request' &&
|
|
648
|
-
github.event.pull_request.head.repo.full_name != github.repository)
|
|
649
|
-
&& fromJSON(vars.OMNI_PUBLIC_PR_RUNS_ON_JSON || '["ubuntu-latest"]')
|
|
650
|
-
|| fromJSON(vars.OMNI_TRUSTED_CI_RUNS_ON_JSON || '["self-hosted","omnibase-ci"]')
|
|
651
|
-
}}
|
|
597
|
+
# OMN-19998: public repository, GitHub-hosted runner only (RULING 2026-10-16T07:07:09Z).
|
|
598
|
+
# OMN-20074 S6: validate this repository's contracts with locked core.
|
|
599
|
+
runs-on: ubuntu-latest
|
|
652
600
|
if: github.event_name == 'pull_request' || github.event_name == 'merge_group' || github.event_name == 'push'
|
|
653
601
|
steps:
|
|
654
602
|
- uses: actions/checkout@v7
|
|
655
|
-
# OMN-20001: read the onex_change_control rev pinned in pyproject.toml,
|
|
656
|
-
# never OCC's live default branch.
|
|
657
|
-
- name: Resolve pinned onex_change_control rev
|
|
658
|
-
id: occ-pin
|
|
659
|
-
run: |
|
|
660
|
-
rev="$(grep -oE 'onex_change_control\.git@[0-9a-f]{40}' pyproject.toml | head -1 | cut -d@ -f2)"
|
|
661
|
-
[[ "$rev" =~ ^[0-9a-f]{40}$ ]] || { echo "::error::no pinned onex_change_control rev in pyproject.toml"; exit 1; }
|
|
662
|
-
echo "rev=$rev" >> "$GITHUB_OUTPUT"
|
|
663
|
-
|
|
664
|
-
- name: Checkout onex_change_control
|
|
665
|
-
uses: actions/checkout@v7
|
|
666
|
-
with:
|
|
667
|
-
repository: OmniNode-ai/onex_change_control
|
|
668
|
-
ref: ${{ steps.occ-pin.outputs.rev }}
|
|
669
|
-
path: onex_change_control
|
|
670
|
-
|
|
671
603
|
- uses: astral-sh/setup-uv@v7
|
|
672
604
|
with:
|
|
673
605
|
enable-cache: true
|
|
674
|
-
cache-dependency-glob:
|
|
606
|
+
cache-dependency-glob: uv.lock
|
|
675
607
|
|
|
676
|
-
- name: Install
|
|
677
|
-
|
|
678
|
-
run: uv sync --locked --all-extras
|
|
608
|
+
- name: Install dependencies
|
|
609
|
+
run: uv sync --frozen
|
|
679
610
|
|
|
680
611
|
- name: Validate contract YAML files
|
|
681
|
-
working-directory: onex_change_control
|
|
682
612
|
run: |
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
613
|
+
set -euo pipefail
|
|
614
|
+
# Top-level ticket contracts only: contracts/v1 holds a different shape.
|
|
615
|
+
mapfile -t CONTRACTS < <(find contracts -maxdepth 1 -type f -name "OMN-*.yaml")
|
|
616
|
+
uv run python3 - "${CONTRACTS[@]}" <<'PY'
|
|
617
|
+
import sys
|
|
618
|
+
from pathlib import Path
|
|
619
|
+
|
|
620
|
+
from omnibase_core.models.errors.model_onex_error import ModelOnexError
|
|
621
|
+
from omnibase_core.models.ticket.model_ticket_contract import ModelTicketContract
|
|
622
|
+
|
|
623
|
+
# Named contracts, or every contracts/OMN-*.yaml when none are named.
|
|
624
|
+
paths = [Path(arg) for arg in sys.argv[1:]] or sorted(Path("contracts").glob("OMN-*.yaml"))
|
|
625
|
+
if not paths:
|
|
626
|
+
print("::error::contracts/ holds no OMN-*.yaml ticket contract")
|
|
627
|
+
sys.exit(1)
|
|
628
|
+
|
|
629
|
+
broken = []
|
|
630
|
+
for path in paths:
|
|
631
|
+
try:
|
|
632
|
+
ModelTicketContract.from_yaml(path.read_text(encoding="utf-8"))
|
|
633
|
+
except (OSError, ModelOnexError) as exc:
|
|
634
|
+
broken.append((path, " ".join(str(exc).split())))
|
|
635
|
+
|
|
636
|
+
for path, reason in broken:
|
|
637
|
+
print(f"::error file={path.as_posix()}::{path.as_posix()}: {reason}")
|
|
638
|
+
if broken:
|
|
639
|
+
print(f"ERROR: {len(broken)} of {len(paths)} ticket contract(s) fail omnibase_core's ModelTicketContract.")
|
|
640
|
+
sys.exit(1)
|
|
641
|
+
print(f"OK: {len(paths)} ticket contract(s) pass omnibase_core's ModelTicketContract.")
|
|
642
|
+
PY
|
|
691
643
|
|
|
692
644
|
no-noncanonical-lifecycle-classes:
|
|
693
645
|
name: no-noncanonical-lifecycle-classes
|
|
@@ -831,7 +783,7 @@ jobs:
|
|
|
831
783
|
runs-on: ubuntu-latest
|
|
832
784
|
timeout-minutes: 15
|
|
833
785
|
env:
|
|
834
|
-
CANONICAL_FILE_SHAPE_CORE: "omnibase-core @ git+https://github.com/OmniNode-ai/omnibase_core@
|
|
786
|
+
CANONICAL_FILE_SHAPE_CORE: "omnibase-core @ git+https://github.com/OmniNode-ai/omnibase_core@031148215620031436cba30619bbae67c0bb38ad"
|
|
835
787
|
steps:
|
|
836
788
|
- name: Checkout code
|
|
837
789
|
uses: actions/checkout@v7
|
|
@@ -875,32 +827,144 @@ jobs:
|
|
|
875
827
|
PUSH_BEFORE: ${{ github.event.before }}
|
|
876
828
|
run: |
|
|
877
829
|
set -u
|
|
878
|
-
base="${PR_BASE:-${MQ_BASE
|
|
830
|
+
base="${PR_BASE:-${MQ_BASE:-}}"
|
|
831
|
+
# OMN-20868: release.yml fast-forwards main to a dev sha, so a push's
|
|
832
|
+
# `before` is the previous release and the range spans every dev PR
|
|
833
|
+
# since then, each already checked here against dev, including
|
|
834
|
+
# commits that predate this ratchet. A push whose HEAD is on dev is
|
|
835
|
+
# checked against the baseline; any other push diffs its own range.
|
|
836
|
+
if [ -z "$base" ] && [ -n "${PUSH_BEFORE:-}" ]; then
|
|
837
|
+
git fetch -q --no-tags origin +refs/heads/dev:refs/remotes/origin/dev
|
|
838
|
+
if git merge-base --is-ancestor HEAD refs/remotes/origin/dev; then
|
|
839
|
+
echo "push of a commit already on dev (fast-forward of ${PUSH_BEFORE}..HEAD); each commit was checked on its dev PR"
|
|
840
|
+
else
|
|
841
|
+
base="$PUSH_BEFORE"
|
|
842
|
+
fi
|
|
843
|
+
fi
|
|
879
844
|
if [ -n "$base" ] && git cat-file -e "${base}^{commit}" 2>/dev/null; then
|
|
880
845
|
base="$(git merge-base "$base" HEAD)"
|
|
881
846
|
uv run --no-project --with "$CANONICAL_FILE_SHAPE_CORE" \
|
|
882
847
|
python -m omnibase_core.validators.canonical_file_shape --base "$base" --head HEAD
|
|
883
848
|
else
|
|
884
|
-
echo "no base
|
|
849
|
+
echo "no diff base for this event; checking the tree against the baseline only"
|
|
885
850
|
uv run --no-project --with "$CANONICAL_FILE_SHAPE_CORE" \
|
|
886
851
|
python -m omnibase_core.validators.canonical_file_shape --head HEAD
|
|
887
852
|
fi
|
|
888
853
|
|
|
854
|
+
- name: Node-home positive control (planted node refused, clean tree accepted)
|
|
855
|
+
run: |
|
|
856
|
+
set -u
|
|
857
|
+
node_home() {
|
|
858
|
+
uv run --no-project --with "$CANONICAL_FILE_SHAPE_CORE" \
|
|
859
|
+
python -m omnibase_core.nodes.node_node_home_check_compute.runtime_node_home_check "$@"
|
|
860
|
+
}
|
|
861
|
+
planted=src/omnimemory/nodes/node_zz_canary_planted_compute
|
|
862
|
+
mkdir -p "$planted"
|
|
863
|
+
printf 'name: node_zz_canary_planted_compute\n' > "$planted/contract.yaml"
|
|
864
|
+
printf 'class NodeZzCanaryPlantedCompute:\n pass\n' > "$planted/handler.py"
|
|
865
|
+
git add "$planted"
|
|
866
|
+
if node_home; then
|
|
867
|
+
echo "POSITIVE CONTROL FAILED: planted $planted was accepted"
|
|
868
|
+
exit 1
|
|
869
|
+
fi
|
|
870
|
+
echo "positive control: planted node refused"
|
|
871
|
+
git rm -q -r --cached "$planted"
|
|
872
|
+
rm -r "$planted"
|
|
873
|
+
node_home
|
|
874
|
+
echo "positive control: clean tree accepted"
|
|
875
|
+
|
|
876
|
+
- name: Refuse new ONEX nodes outside omnimarket (OMN-20702)
|
|
877
|
+
env:
|
|
878
|
+
EVENT_NAME: ${{ github.event_name }}
|
|
879
|
+
PR_BASE: ${{ github.event.pull_request.base.sha }}
|
|
880
|
+
MQ_BASE: ${{ github.event.merge_group.base_sha }}
|
|
881
|
+
PUSH_BEFORE: ${{ github.event.before }}
|
|
882
|
+
run: |
|
|
883
|
+
set -u
|
|
884
|
+
node_home() {
|
|
885
|
+
uv run --no-project --with "$CANONICAL_FILE_SHAPE_CORE" \
|
|
886
|
+
python -m omnibase_core.nodes.node_node_home_check_compute.runtime_node_home_check "$@"
|
|
887
|
+
}
|
|
888
|
+
base="${PR_BASE:-${MQ_BASE:-${PUSH_BEFORE:-}}}"
|
|
889
|
+
if [ -n "$base" ] && git cat-file -e "${base}^{commit}" 2>/dev/null; then
|
|
890
|
+
base="$(git merge-base "$base" HEAD)"
|
|
891
|
+
node_home --base "$base"
|
|
892
|
+
elif [ "$EVENT_NAME" = "pull_request" ] || [ "$EVENT_NAME" = "merge_group" ]; then
|
|
893
|
+
echo "node-home ratchet: no resolvable base revision on $EVENT_NAME; refusing"
|
|
894
|
+
exit 1
|
|
895
|
+
else
|
|
896
|
+
echo "no base revision on this event; checking the tree against HEAD"
|
|
897
|
+
node_home --base HEAD
|
|
898
|
+
fi
|
|
899
|
+
|
|
900
|
+
# OMN-19998: public-repository runner placement (RULING 2026-10-16T07:07:09Z,
|
|
901
|
+
# "Ci runners should be for private repos only"). omnibase_core's check refuses
|
|
902
|
+
# a job whose runs-on is, or can resolve to, a self-hosted label unless core's
|
|
903
|
+
# shrink-only baseline (shipped in the package, not editable here) records it,
|
|
904
|
+
# and refuses a baselined job that is new or newly self-hosted against the base.
|
|
905
|
+
# Same core release as the check-public-runner-placement pre-commit hook.
|
|
906
|
+
# Unconditional: no `if:`, no `needs:`; a CI Summary member below.
|
|
907
|
+
public-runner-placement:
|
|
908
|
+
name: Public Runner Placement (OMN-19998)
|
|
909
|
+
runs-on: ubuntu-latest
|
|
910
|
+
timeout-minutes: 10
|
|
911
|
+
env:
|
|
912
|
+
# The published release whose tag v0.47.46 is the pre-commit hook's rev.
|
|
913
|
+
RUNNER_PLACEMENT_CORE: "omnibase-core==0.47.46"
|
|
914
|
+
steps:
|
|
915
|
+
- name: Checkout code
|
|
916
|
+
uses: actions/checkout@v7
|
|
917
|
+
with:
|
|
918
|
+
fetch-depth: 0
|
|
919
|
+
- name: Set up Python
|
|
920
|
+
uses: actions/setup-python@v7
|
|
921
|
+
with:
|
|
922
|
+
python-version: "3.12"
|
|
923
|
+
- name: Install uv
|
|
924
|
+
uses: astral-sh/setup-uv@v7
|
|
925
|
+
with:
|
|
926
|
+
version: "0.8.3"
|
|
927
|
+
- name: Positive control (planted self-hosted job refused)
|
|
928
|
+
run: |
|
|
929
|
+
set -u
|
|
930
|
+
printf 'on: push\njobs:\n planted:\n runs-on: [self-hosted, omnibase-ci]\n steps:\n - run: "true"\n' \
|
|
931
|
+
> .github/workflows/zz-canary-planted.yml
|
|
932
|
+
git add .github/workflows/zz-canary-planted.yml
|
|
933
|
+
if uv run --no-project --with "$RUNNER_PLACEMENT_CORE" \
|
|
934
|
+
python -m omnibase_core.handlers.handler_public_runner_placement_cli --repo omnimemory \
|
|
935
|
+
.github/workflows/zz-canary-planted.yml; then
|
|
936
|
+
echo "POSITIVE CONTROL FAILED: planted self-hosted job was accepted"
|
|
937
|
+
exit 1
|
|
938
|
+
fi
|
|
939
|
+
echo "positive control: planted self-hosted job refused"
|
|
940
|
+
git rm -q --cached .github/workflows/zz-canary-planted.yml
|
|
941
|
+
rm .github/workflows/zz-canary-planted.yml
|
|
942
|
+
- name: Refuse new self-hosted jobs in this public repository
|
|
943
|
+
env:
|
|
944
|
+
PR_BASE: ${{ github.event.pull_request.base.sha }}
|
|
945
|
+
MQ_BASE: ${{ github.event.merge_group.base_sha }}
|
|
946
|
+
PUSH_BEFORE: ${{ github.event.before }}
|
|
947
|
+
run: |
|
|
948
|
+
set -u
|
|
949
|
+
base="${PR_BASE:-${MQ_BASE:-${PUSH_BEFORE:-}}}"
|
|
950
|
+
args=(--repo omnimemory --visibility public)
|
|
951
|
+
if [ -n "$base" ] && git cat-file -e "${base}^{commit}" 2>/dev/null; then
|
|
952
|
+
args+=(--base-ref "$(git merge-base "$base" HEAD)")
|
|
953
|
+
else
|
|
954
|
+
echo "no base revision on this event; checking the tree against the baseline only"
|
|
955
|
+
fi
|
|
956
|
+
uv run --no-project --with "$RUNNER_PLACEMENT_CORE" \
|
|
957
|
+
python -m omnibase_core.handlers.handler_public_runner_placement_cli "${args[@]}"
|
|
958
|
+
|
|
889
959
|
ci-summary:
|
|
890
960
|
name: CI Summary
|
|
891
961
|
runs-on: ubuntu-latest
|
|
892
|
-
needs: [migration-freeze, lint, pyright, onex-validation, transport-import-guard, contract-validation, io-audit, check-handshake, test-select, tests-gate, compliance, contract-compliance, no-noncanonical-lifecycle-classes, detect-secrets, shape-gate-independence, canonical-file-shape,
|
|
962
|
+
needs: [migration-freeze, lint, pyright, onex-validation, transport-import-guard, contract-validation, io-audit, check-handshake, test-select, tests-gate, compliance, contract-compliance, no-noncanonical-lifecycle-classes, detect-secrets, shape-gate-independence, canonical-file-shape, public-runner-placement]
|
|
893
963
|
if: always()
|
|
894
964
|
|
|
895
965
|
steps:
|
|
896
966
|
- name: Check test results
|
|
897
967
|
run: |
|
|
898
|
-
# OMN-18854: require the admission verdict on every event. That job
|
|
899
|
-
# judges eligibility on PR/queue events and passes non-admission events.
|
|
900
|
-
if [[ "${{ needs.occ-eligibility.result }}" != "success" ]]; then
|
|
901
|
-
echo "::error::occ-eligibility did not pass (result: ${{ needs.occ-eligibility.result }})"
|
|
902
|
-
exit 1
|
|
903
|
-
fi
|
|
904
968
|
# OMN-14350: strict fail-closed gate on the non-canonical lifecycle-class
|
|
905
969
|
# ratchet - only 'success' passes; skipped/cancelled/failure ALL block. It is
|
|
906
970
|
# in needs: so this job WAITS for it (no race).
|
|
@@ -927,6 +991,12 @@ jobs:
|
|
|
927
991
|
echo "::error::canonical-file-shape ratchet did not pass (result: ${{ needs.canonical-file-shape.result }}) - fail-closed (OMN-20304)"
|
|
928
992
|
exit 1
|
|
929
993
|
fi
|
|
994
|
+
# OMN-19998: strict fail-closed gate on public-repository runner
|
|
995
|
+
# placement - only 'success' passes; skipped/cancelled/failure ALL block.
|
|
996
|
+
if [[ "${{ needs.public-runner-placement.result }}" != "success" ]]; then
|
|
997
|
+
echo "::error::public-runner-placement did not pass (result: ${{ needs.public-runner-placement.result }}) - fail-closed (OMN-19998)"
|
|
998
|
+
exit 1
|
|
999
|
+
fi
|
|
930
1000
|
migration_freeze="${{ needs.migration-freeze.result }}"
|
|
931
1001
|
lint="${{ needs.lint.result }}"
|
|
932
1002
|
pyright="${{ needs.pyright.result }}"
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
# Contract Validation Gate
|
|
5
5
|
#
|
|
6
|
-
# Validates ONEX ticket
|
|
7
|
-
#
|
|
6
|
+
# Validates the ONEX ticket contract of a PR's branch ticket with the installed
|
|
7
|
+
# omnibase_core ModelTicketContract, at omnimemory's locked core version
|
|
8
|
+
# (OMN-20074). Core refuses a binds_ac entry that is not a criterion label and a
|
|
9
|
+
# binds_ac item with check_type command_exit_0 (omnibase_core#1935).
|
|
8
10
|
#
|
|
9
11
|
# Required status check: "contract-validation"
|
|
10
12
|
# Must pass (or skip) before merging to main.
|
|
@@ -39,29 +41,11 @@ concurrency:
|
|
|
39
41
|
jobs:
|
|
40
42
|
contract-validation:
|
|
41
43
|
name: contract-validation
|
|
42
|
-
#
|
|
43
|
-
runs-on:
|
|
44
|
-
${{
|
|
45
|
-
github.event_name != 'pull_request'
|
|
46
|
-
&& fromJSON(vars.OMNI_TRUSTED_CI_RUNS_ON_JSON || '["self-hosted","omnibase-ci"]')
|
|
47
|
-
|| fromJSON(vars.OMNI_PUBLIC_PR_RUNS_ON_JSON || '["ubuntu-latest"]')
|
|
48
|
-
}}
|
|
44
|
+
# OMN-19998: public repository, GitHub-hosted runner only (RULING 2026-10-16T07:07:09Z)
|
|
45
|
+
runs-on: ubuntu-latest
|
|
49
46
|
timeout-minutes: 10
|
|
50
47
|
|
|
51
48
|
steps:
|
|
52
|
-
- name: Auth preflight — confirm onex_change_control action is accessible
|
|
53
|
-
id: auth-preflight
|
|
54
|
-
env:
|
|
55
|
-
GH_TOKEN: ${{ github.token }}
|
|
56
|
-
run: |
|
|
57
|
-
echo "Checking visibility of OmniNode-ai/onex_change_control..."
|
|
58
|
-
if gh api repos/OmniNode-ai/onex_change_control --silent; then
|
|
59
|
-
echo "::notice::onex_change_control repo is accessible."
|
|
60
|
-
else
|
|
61
|
-
echo "::error::Cannot reach OmniNode-ai/onex_change_control. Composite action will not resolve."
|
|
62
|
-
exit 1
|
|
63
|
-
fi
|
|
64
|
-
|
|
65
49
|
- name: Resolve branch name
|
|
66
50
|
id: resolve-branch
|
|
67
51
|
env:
|
|
@@ -92,13 +76,88 @@ jobs:
|
|
|
92
76
|
echo "resolved_branch=$BRANCH" >> "$GITHUB_OUTPUT"
|
|
93
77
|
echo "::notice::Resolved branch name: $BRANCH"
|
|
94
78
|
|
|
79
|
+
- name: Check out calling repository
|
|
80
|
+
if: steps.resolve-branch.outputs.skip_validation != 'true'
|
|
81
|
+
uses: actions/checkout@v7
|
|
82
|
+
with:
|
|
83
|
+
ref: ${{ github.sha }}
|
|
84
|
+
persist-credentials: false
|
|
85
|
+
|
|
86
|
+
- name: Set up uv
|
|
87
|
+
if: steps.resolve-branch.outputs.skip_validation != 'true'
|
|
88
|
+
uses: astral-sh/setup-uv@v7
|
|
89
|
+
with:
|
|
90
|
+
enable-cache: true
|
|
91
|
+
cache-dependency-glob: uv.lock
|
|
92
|
+
|
|
95
93
|
- name: Run contract validation
|
|
96
94
|
id: validate-contract
|
|
97
95
|
if: steps.resolve-branch.outputs.skip_validation != 'true'
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
96
|
+
env:
|
|
97
|
+
BRANCH: ${{ steps.resolve-branch.outputs.resolved_branch }}
|
|
98
|
+
UV_HTTP_TIMEOUT: "600"
|
|
99
|
+
run: |
|
|
100
|
+
set -euo pipefail
|
|
101
|
+
|
|
102
|
+
TICKET_ID=$(printf '%s\n' "$BRANCH" | grep -ioE 'OMN-[0-9]+' | head -n 1 | tr '[:lower:]' '[:upper:]' || true)
|
|
103
|
+
echo "ticket-id=$TICKET_ID" >> "$GITHUB_OUTPUT"
|
|
104
|
+
|
|
105
|
+
if [[ -z "$TICKET_ID" ]]; then
|
|
106
|
+
echo "validation-status=skipped" >> "$GITHUB_OUTPUT"
|
|
107
|
+
echo "::notice::No OMN-XXXX ticket ID found in branch name; contract validation skipped."
|
|
108
|
+
exit 0
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
CONTRACT_PATH="contracts/$TICKET_ID.yaml"
|
|
112
|
+
if [[ ! -f "$CONTRACT_PATH" ]]; then
|
|
113
|
+
CONTRACT_PATH="contracts/${TICKET_ID,,}.yaml"
|
|
114
|
+
fi
|
|
115
|
+
if [[ ! -f "$CONTRACT_PATH" ]]; then
|
|
116
|
+
echo "validation-status=skipped" >> "$GITHUB_OUTPUT"
|
|
117
|
+
echo "::notice::No contract file found for $TICKET_ID in contracts/; contract validation skipped."
|
|
118
|
+
exit 0
|
|
119
|
+
fi
|
|
120
|
+
|
|
121
|
+
for attempt in 1 2 3; do
|
|
122
|
+
if uv sync --locked --no-dev; then
|
|
123
|
+
break
|
|
124
|
+
fi
|
|
125
|
+
if [[ "$attempt" -eq 3 ]]; then
|
|
126
|
+
echo "validation-status=failed" >> "$GITHUB_OUTPUT"
|
|
127
|
+
echo "::error::Failed to sync omnimemory dependencies after 3 attempts."
|
|
128
|
+
exit 1
|
|
129
|
+
fi
|
|
130
|
+
sleep "$((10 * attempt))"
|
|
131
|
+
done
|
|
132
|
+
|
|
133
|
+
if uv run --no-sync python3 - "$CONTRACT_PATH" <<'PY'
|
|
134
|
+
import sys
|
|
135
|
+
from pathlib import Path
|
|
136
|
+
|
|
137
|
+
from omnibase_core.models.errors.model_onex_error import ModelOnexError
|
|
138
|
+
from omnibase_core.models.ticket.model_ticket_contract import ModelTicketContract
|
|
139
|
+
|
|
140
|
+
paths = [Path(arg) for arg in sys.argv[1:]]
|
|
141
|
+
broken = []
|
|
142
|
+
for path in paths:
|
|
143
|
+
try:
|
|
144
|
+
ModelTicketContract.from_yaml(path.read_text(encoding="utf-8"))
|
|
145
|
+
except (OSError, ModelOnexError) as exc:
|
|
146
|
+
broken.append((path, " ".join(str(exc).split())))
|
|
147
|
+
|
|
148
|
+
for path, reason in broken:
|
|
149
|
+
print(f"::error file={path.as_posix()}::{path.as_posix()}: {reason}")
|
|
150
|
+
if broken:
|
|
151
|
+
print(f"ERROR: {len(broken)} of {len(paths)} ticket contract(s) fail omnibase_core's ModelTicketContract.")
|
|
152
|
+
sys.exit(1)
|
|
153
|
+
print(f"OK: {len(paths)} ticket contract(s) pass omnibase_core's ModelTicketContract.")
|
|
154
|
+
PY
|
|
155
|
+
then
|
|
156
|
+
echo "validation-status=passed" >> "$GITHUB_OUTPUT"
|
|
157
|
+
else
|
|
158
|
+
echo "validation-status=failed" >> "$GITHUB_OUTPUT"
|
|
159
|
+
exit 1
|
|
160
|
+
fi
|
|
102
161
|
|
|
103
162
|
- name: Report validation result
|
|
104
163
|
if: always()
|
|
@@ -127,6 +186,7 @@ jobs:
|
|
|
127
186
|
exit 1
|
|
128
187
|
;;
|
|
129
188
|
*)
|
|
130
|
-
echo "::
|
|
189
|
+
echo "::error::Contract validation did not finish: '$VALIDATION_STATUS'."
|
|
190
|
+
exit 1
|
|
131
191
|
;;
|
|
132
192
|
esac
|