commit c78524ff860eaef623a3b494ba33bffd0dbb9487
parent bc3706aab53c4ac838d0b13c0da5c8ad5fe8c13f
Author: triesap <tyson@radroots.org>
Date: Thu, 9 Apr 2026 01:01:40 +0000
tests: add repo-local fixture mirror support
- add a repo-local hyf fixture loader rooted under tests/fixtures/v1
- mirror the approved v1 status and deterministic capability scenarios into the standalone repo
- prove the mounted repo can discover its own manifest and scenario files in unit tests
- keep the fixture dependency surface local while leaving contract assertions for later slices
Diffstat:
11 files changed, 499 insertions(+), 0 deletions(-)
diff --git a/tests/fixture_loader.mojo b/tests/fixture_loader.mojo
@@ -0,0 +1,19 @@
+from std.pathlib import Path, _dir_of_current_file
+
+from mojson import Value, loads
+
+
+def fixture_root_path() raises -> Path:
+ return _dir_of_current_file() / "fixtures" / "v1"
+
+
+def fixture_manifest_path() raises -> Path:
+ return fixture_root_path() / "manifest.json"
+
+
+def load_fixture_manifest() raises -> Value:
+ return loads(fixture_manifest_path().read_text())
+
+
+def load_fixture_scenario(relative_path: String) raises -> Value:
+ return loads((fixture_root_path() / String(relative_path)).read_text())
diff --git a/tests/fixtures/v1/manifest.json b/tests/fixtures/v1/manifest.json
@@ -0,0 +1,18 @@
+{
+ "fixture_namespace": "radroots-canonical-hyf-v1",
+ "schema_version": 1,
+ "description": "Canonical HYF stdio request and response scenarios for deterministic bootstrap capabilities.",
+ "family_kind": "wire_compatibility",
+ "transport": "stdio",
+ "request_framing": "newline_delimited_json",
+ "scenario_files": [
+ "scenarios/status_ok.json",
+ "scenarios/capabilities_ok.json",
+ "scenarios/query_rewrite_local_pickup_weekend.json",
+ "scenarios/semantic_rank_local_pickup_weekend.json",
+ "scenarios/explain_result_local_pickup_weekend.json",
+ "scenarios/assisted_backend_unavailable.json",
+ "scenarios/deferred_capability_disabled.json",
+ "scenarios/query_rewrite_unexpected_field.json"
+ ]
+}
diff --git a/tests/fixtures/v1/scenarios/assisted_backend_unavailable.json b/tests/fixtures/v1/scenarios/assisted_backend_unavailable.json
@@ -0,0 +1,22 @@
+{
+ "fixture_id": "assisted_backend_unavailable",
+ "fixture_namespace": "radroots-canonical-hyf-v1",
+ "schema_version": 1,
+ "description": "Explicit assisted execution requests fail with a bounded unavailable-backend error.",
+ "request": {
+ "version": 1,
+ "request_id": "assisted-fixture-1",
+ "capability": "query_rewrite",
+ "context": {
+ "execution_mode_preference": "assisted"
+ },
+ "input": {
+ "text": "apples near me"
+ }
+ },
+ "expected": {
+ "ok": false,
+ "error_code": "backend_unavailable",
+ "message_contains": "assisted_execution"
+ }
+}
diff --git a/tests/fixtures/v1/scenarios/capabilities_ok.json b/tests/fixtures/v1/scenarios/capabilities_ok.json
@@ -0,0 +1,53 @@
+{
+ "fixture_id": "capabilities_ok",
+ "fixture_namespace": "radroots-canonical-hyf-v1",
+ "schema_version": 1,
+ "description": "Control-plane capabilities report implemented deterministic routes and deferred bootstrap routes truthfully.",
+ "request": {
+ "version": 1,
+ "request_id": "capabilities-fixture-1",
+ "capability": "sys.capabilities",
+ "input": {}
+ },
+ "expected": {
+ "ok": true,
+ "equals": {
+ "version": 1,
+ "request_id": "capabilities-fixture-1",
+ "output.control_routes": [
+ "sys.status",
+ "sys.capabilities"
+ ],
+ "output.business_capabilities.0.id": "query_rewrite",
+ "output.business_capabilities.0.deterministic_execution": "enabled",
+ "output.business_capabilities.0.implementation_status": "implemented",
+ "output.business_capabilities.0.callable": true,
+ "output.business_capabilities.1.id": "filter_extraction",
+ "output.business_capabilities.1.deterministic_execution": "disabled",
+ "output.business_capabilities.1.implementation_status": "disabled",
+ "output.business_capabilities.1.callable": false,
+ "output.business_capabilities.1.disabled_reason": "deferred_bootstrap_capability",
+ "output.business_capabilities.2.id": "semantic_rank",
+ "output.business_capabilities.2.implementation_status": "implemented",
+ "output.business_capabilities.6.id": "explain_result",
+ "output.business_capabilities.6.implementation_status": "implemented",
+ "output.assisted_backend_capabilities": [],
+ "output.request_context_contract.accepted_features": [
+ "consumer",
+ "execution_mode_preference",
+ "scope.listing_ids",
+ "return_provenance"
+ ],
+ "output.request_context_contract.effective_features": [
+ "execution_mode_preference",
+ "scope.listing_ids",
+ "return_provenance"
+ ],
+ "output.request_context_contract.unsupported_field_behavior": "reject"
+ },
+ "absent_paths": [
+ "error",
+ "meta"
+ ]
+ }
+}
diff --git a/tests/fixtures/v1/scenarios/deferred_capability_disabled.json b/tests/fixtures/v1/scenarios/deferred_capability_disabled.json
@@ -0,0 +1,17 @@
+{
+ "fixture_id": "deferred_capability_disabled",
+ "fixture_namespace": "radroots-canonical-hyf-v1",
+ "schema_version": 1,
+ "description": "Deferred bootstrap capabilities fail with an explicit disabled-capability wire error.",
+ "request": {
+ "version": 1,
+ "request_id": "disabled-fixture-1",
+ "capability": "filter_extraction",
+ "input": {}
+ },
+ "expected": {
+ "ok": false,
+ "error_code": "capability_disabled",
+ "message_contains": "deferred capability"
+ }
+}
diff --git a/tests/fixtures/v1/scenarios/explain_result_local_pickup_weekend.json b/tests/fixtures/v1/scenarios/explain_result_local_pickup_weekend.json
@@ -0,0 +1,66 @@
+{
+ "fixture_id": "explain_result_local_pickup_weekend",
+ "fixture_namespace": "radroots-canonical-hyf-v1",
+ "schema_version": 1,
+ "description": "Deterministic explanation reports stable reasons and signal assessment for a ranked produce result.",
+ "request": {
+ "version": 1,
+ "request_id": "explain-fixture-1",
+ "capability": "explain_result",
+ "context": {
+ "return_provenance": true
+ },
+ "input": {
+ "query": "apples near me with weekend pickup",
+ "candidate": {
+ "id": "listing_local_1",
+ "title": "Organic apples",
+ "farm": "Local Orchard",
+ "delivery": "pickup",
+ "distance_km": 4.1,
+ "freshness_minutes": 3
+ }
+ }
+ },
+ "expected": {
+ "ok": true,
+ "equals": {
+ "version": 1,
+ "request_id": "explain-fixture-1",
+ "output.result_id": "listing_local_1",
+ "output.explanation_kind": "deterministic",
+ "output.summary": "Result listing_local_1 was ranked using deterministic heuristic signals: apples match, pickup match, closer and fresher.",
+ "output.score": 102,
+ "output.signal_assessment.delivery_alignment": "match",
+ "output.signal_assessment.distance_band": "closer",
+ "output.signal_assessment.freshness_band": "fresher",
+ "output.signal_assessment.scope_match": false,
+ "output.extracted_filters.local_intent": true,
+ "output.extracted_filters.fulfillment": "pickup",
+ "output.extracted_filters.time_window": "weekend",
+ "meta.execution_mode": "deterministic",
+ "meta.backend": "heuristic"
+ },
+ "contains_all": {
+ "output.reasons": [
+ "apples match",
+ "pickup match",
+ "closer",
+ "fresher"
+ ],
+ "output.ranking_hints": [
+ "prefer_local_results",
+ "prefer_pickup",
+ "prefer_weekend_availability"
+ ]
+ },
+ "present_paths": [
+ "meta.provenance",
+ "meta.provenance.source_refs"
+ ],
+ "absent_paths": [
+ "error",
+ "meta.latency_ms"
+ ]
+ }
+}
diff --git a/tests/fixtures/v1/scenarios/query_rewrite_local_pickup_weekend.json b/tests/fixtures/v1/scenarios/query_rewrite_local_pickup_weekend.json
@@ -0,0 +1,59 @@
+{
+ "fixture_id": "query_rewrite_local_pickup_weekend",
+ "fixture_namespace": "radroots-canonical-hyf-v1",
+ "schema_version": 1,
+ "description": "Deterministic query rewrite extracts normalized terms and structured filters from a local produce search.",
+ "request": {
+ "version": 1,
+ "request_id": "rewrite-fixture-1",
+ "trace_id": "trace-rewrite-fixture-1",
+ "capability": "query_rewrite",
+ "context": {
+ "return_provenance": true
+ },
+ "input": {
+ "query": "apples near me with weekend pickup"
+ }
+ },
+ "expected": {
+ "ok": true,
+ "equals": {
+ "version": 1,
+ "request_id": "rewrite-fixture-1",
+ "trace_id": "trace-rewrite-fixture-1",
+ "output.original_text": "apples near me with weekend pickup",
+ "output.normalized_text": "apples near me with weekend pickup",
+ "output.rewritten_text": "apples",
+ "output.query_terms": [
+ "apples"
+ ],
+ "output.extracted_filters.local_intent": true,
+ "output.extracted_filters.fulfillment": "pickup",
+ "output.extracted_filters.time_window": "weekend",
+ "meta.execution_mode": "deterministic",
+ "meta.backend": "heuristic"
+ },
+ "contains_all": {
+ "output.normalization_signals": [
+ "local_intent_detected",
+ "pickup_filter_detected",
+ "weekend_filter_detected",
+ "stopwords_removed",
+ "filter_tokens_extracted"
+ ],
+ "output.ranking_hints": [
+ "prefer_local_results",
+ "prefer_pickup",
+ "prefer_weekend_availability"
+ ]
+ },
+ "present_paths": [
+ "meta.provenance",
+ "meta.provenance.source_refs"
+ ],
+ "absent_paths": [
+ "error",
+ "meta.latency_ms"
+ ]
+ }
+}
diff --git a/tests/fixtures/v1/scenarios/query_rewrite_unexpected_field.json b/tests/fixtures/v1/scenarios/query_rewrite_unexpected_field.json
@@ -0,0 +1,20 @@
+{
+ "fixture_id": "query_rewrite_unexpected_field",
+ "fixture_namespace": "radroots-canonical-hyf-v1",
+ "schema_version": 1,
+ "description": "Strict request validation rejects unexpected query_rewrite input fields.",
+ "request": {
+ "version": 1,
+ "request_id": "rewrite-bad-fixture-1",
+ "capability": "query_rewrite",
+ "input": {
+ "text": "apples near me",
+ "tone": "brief"
+ }
+ },
+ "expected": {
+ "ok": false,
+ "error_code": "invalid_request",
+ "message_contains": "unexpected field"
+ }
+}
diff --git a/tests/fixtures/v1/scenarios/semantic_rank_local_pickup_weekend.json b/tests/fixtures/v1/scenarios/semantic_rank_local_pickup_weekend.json
@@ -0,0 +1,85 @@
+{
+ "fixture_id": "semantic_rank_local_pickup_weekend",
+ "fixture_namespace": "radroots-canonical-hyf-v1",
+ "schema_version": 1,
+ "description": "Deterministic ranking prefers closer, fresher, pickup-aligned results for a local produce search.",
+ "request": {
+ "version": 1,
+ "request_id": "rank-fixture-1",
+ "capability": "semantic_rank",
+ "input": {
+ "query": "apples near me with weekend pickup",
+ "candidates": [
+ {
+ "id": "listing_local_1",
+ "title": "Organic apples",
+ "farm": "Local Orchard",
+ "delivery": "pickup",
+ "distance_km": 4.1,
+ "freshness_minutes": 3
+ },
+ {
+ "id": "listing_regional_1",
+ "title": "Honeycrisp apples",
+ "farm": "Regional Orchard",
+ "delivery": "delivery",
+ "distance_km": 28.0,
+ "freshness_minutes": 25
+ }
+ ]
+ }
+ },
+ "expected": {
+ "ok": true,
+ "equals": {
+ "version": 1,
+ "request_id": "rank-fixture-1",
+ "output.ranked_ids": [
+ "listing_local_1",
+ "listing_regional_1"
+ ],
+ "output.scored_candidates.0.id": "listing_local_1",
+ "output.scored_candidates.0.heuristic_score": 102,
+ "output.scored_candidates.0.delivery_alignment": "match",
+ "output.scored_candidates.0.distance_band": "closer",
+ "output.scored_candidates.0.freshness_band": "fresher",
+ "output.scored_candidates.0.scope_match": false,
+ "output.scored_candidates.1.id": "listing_regional_1",
+ "output.scored_candidates.1.heuristic_score": 17,
+ "output.scored_candidates.1.delivery_alignment": "mismatch",
+ "output.scored_candidates.1.distance_band": "farther",
+ "output.scored_candidates.1.freshness_band": "standard",
+ "output.scored_candidates.1.scope_match": false,
+ "output.extracted_filters.local_intent": true,
+ "output.extracted_filters.fulfillment": "pickup",
+ "output.extracted_filters.time_window": "weekend",
+ "meta.execution_mode": "deterministic",
+ "meta.backend": "heuristic"
+ },
+ "contains_all": {
+ "output.scored_candidates.0.reasons": [
+ "apples match",
+ "pickup match",
+ "closer",
+ "fresher"
+ ],
+ "output.scored_candidates.1.reasons": [
+ "apples match",
+ "delivery mismatch",
+ "farther"
+ ],
+ "output.ranking_hints": [
+ "prefer_local_results",
+ "prefer_pickup",
+ "prefer_weekend_availability"
+ ]
+ },
+ "absent_paths": [
+ "error",
+ "meta.latency_ms",
+ "meta.provenance",
+ "output.scored_candidates.0.score",
+ "output.scored_candidates.1.score"
+ ]
+ }
+}
diff --git a/tests/fixtures/v1/scenarios/status_ok.json b/tests/fixtures/v1/scenarios/status_ok.json
@@ -0,0 +1,75 @@
+{
+ "fixture_id": "status_ok",
+ "fixture_namespace": "radroots-canonical-hyf-v1",
+ "schema_version": 1,
+ "description": "Control-plane status reports the truthful deterministic bootstrap posture for the stdio daemon.",
+ "request": {
+ "version": 1,
+ "request_id": "status-fixture-1",
+ "trace_id": "trace-status-fixture-1",
+ "capability": "sys.status",
+ "input": {}
+ },
+ "expected": {
+ "ok": true,
+ "equals": {
+ "version": 1,
+ "request_id": "status-fixture-1",
+ "trace_id": "trace-status-fixture-1",
+ "output.build_identity.service_name": "hyf",
+ "output.build_identity.package_name": "hyf",
+ "output.build_identity.package_version": "0.1.0",
+ "output.build_identity.daemon_name": "hyfd",
+ "output.build_identity.transport": "stdio",
+ "output.build_identity.protocol_version": 1,
+ "output.build_identity.default_execution_mode": "deterministic",
+ "output.build_identity.deterministic_execution_available": true,
+ "output.build_identity.assisted_execution_available": false,
+ "output.daemon": "hyfd",
+ "output.transport": "stdio",
+ "output.request_framing": "newline_delimited_json",
+ "output.implementation_status": "bootstrap_registered_deterministic_ready",
+ "output.enabled_execution_modes.deterministic": true,
+ "output.enabled_execution_modes.assisted": false,
+ "output.execution_mode_request_behavior.deterministic": "execute",
+ "output.execution_mode_request_behavior.assisted": "backend_unavailable",
+ "output.backend_reachability.deterministic_backend": "available",
+ "output.backend_reachability.assisted_backend": "unavailable",
+ "output.counts.canonical_business_capabilities": 8,
+ "output.counts.deterministic_registered_business_capabilities": 3,
+ "output.counts.deterministic_implemented_business_capabilities": 3,
+ "output.counts.disabled_business_capabilities": 5,
+ "output.limits.max_requests_per_process": 1,
+ "output.request_context_contract.accepted_features": [
+ "consumer",
+ "execution_mode_preference",
+ "scope.listing_ids",
+ "return_provenance"
+ ],
+ "output.request_context_contract.effective_features": [
+ "execution_mode_preference",
+ "scope.listing_ids",
+ "return_provenance"
+ ],
+ "output.request_context_contract.unsupported_field_behavior": "reject"
+ },
+ "contains_all": {
+ "output.deterministic_registered_capabilities": [
+ "query_rewrite",
+ "semantic_rank",
+ "explain_result"
+ ],
+ "output.disabled_capabilities": [
+ "filter_extraction",
+ "summarize_listing",
+ "summarize_farm",
+ "workflow_plan",
+ "dedupe_cluster"
+ ]
+ },
+ "absent_paths": [
+ "error",
+ "meta"
+ ]
+ }
+}
diff --git a/tests/test_hyf.mojo b/tests/test_hyf.mojo
@@ -11,6 +11,11 @@ from std.tempfile import TemporaryDirectory
from mojson import Value, loads
+from fixture_loader import (
+ fixture_manifest_path,
+ load_fixture_manifest,
+ load_fixture_scenario,
+)
from hyf_core.backends.selector import (
execute_capability as execute_core_capability,
resolve_backend,
@@ -237,6 +242,66 @@ def test_current_build_identity_matches_manifest_package_surface() raises:
)
+def test_repo_local_fixture_manifest_declares_expected_scenarios() raises:
+ assert_true(exists(fixture_manifest_path()))
+
+ var manifest = load_fixture_manifest()
+ assert_equal(
+ manifest["fixture_namespace"].string_value(),
+ "radroots-canonical-hyf-v1",
+ )
+ assert_equal(Int(manifest["schema_version"].int_value()), 1)
+ assert_equal(
+ manifest["family_kind"].string_value(), "wire_compatibility"
+ )
+ assert_equal(manifest["transport"].string_value(), "stdio")
+ assert_equal(
+ manifest["request_framing"].string_value(),
+ "newline_delimited_json",
+ )
+
+ var scenario_files = _array_string_values(manifest["scenario_files"])
+ assert_equal(len(scenario_files), 8)
+ assert_equal(scenario_files[0], "scenarios/status_ok.json")
+ assert_equal(
+ scenario_files[7], "scenarios/query_rewrite_unexpected_field.json"
+ )
+
+
+def test_repo_local_fixture_loader_reads_all_mirrored_scenarios() raises:
+ var manifest = load_fixture_manifest()
+ assert_equal(
+ manifest["fixture_namespace"].string_value(),
+ "radroots-canonical-hyf-v1",
+ )
+
+ var status_scenario = load_fixture_scenario("scenarios/status_ok.json")
+ assert_equal(
+ status_scenario["fixture_id"].string_value(), "status_ok"
+ )
+ assert_equal(
+ status_scenario["request"]["capability"].string_value(),
+ "sys.status",
+ )
+ assert_true(_has_key(status_scenario, "expected"))
+
+ var rewrite_scenario = load_fixture_scenario(
+ "scenarios/query_rewrite_local_pickup_weekend.json"
+ )
+ assert_equal(
+ rewrite_scenario["fixture_id"].string_value(),
+ "query_rewrite_local_pickup_weekend",
+ )
+ assert_equal(
+ rewrite_scenario["request"]["capability"].string_value(),
+ "query_rewrite",
+ )
+ assert_equal(
+ rewrite_scenario["request"]["input"]["query"].string_value(),
+ "apples near me with weekend pickup",
+ )
+
+
def test_status_reports_registered_deterministic_ready() raises:
var result = _dispatch(
'{"version":1,"request_id":"status-1","trace_id":"trace-status-1","capability":"sys.status","input":{}}'