hyf

Context-aware query service for Radroots
git clone https://radroots.dev/git/hyf.git
Log | Files | Refs | README | LICENSE

commit b57f1d9d9bea7cafac1cb21d8a20729efea5d389
parent 342ff98da7db53048d1bfa0eefe36a266f97e3c5
Author: triesap <tyson@radroots.org>
Date:   Thu,  9 Apr 2026 02:42:32 +0000

core: unify hyf capability truth and routing

- move callable business capability lookup and execution into the registry
- route the heuristic backend and stdio server through registry truth
- remove the server-side manual business capability dispatch list
- add loop-based tests for registry-aligned routing and capability output

Diffstat:
Msrc/hyf_core/backends/heuristic_backend.mojo | 19++++---------------
Msrc/hyf_core/capabilities/registry.mojo | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
Msrc/hyf_stdio/server.mojo | 32+++++++++++++++++++-------------
Mtests/test_hyf.mojo | 97+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 181 insertions(+), 38 deletions(-)

diff --git a/src/hyf_core/backends/heuristic_backend.mojo b/src/hyf_core/backends/heuristic_backend.mojo @@ -1,13 +1,9 @@ from mojson import Value -from hyf_core.capabilities.explain_result import execute_explain_result -from hyf_core.capabilities.query_rewrite import execute_query_rewrite -from hyf_core.capabilities.semantic_rank import execute_semantic_rank -from hyf_core.errors import ( - CapabilityResult, - capability_not_implemented_error, - failed_capability, +from hyf_core.capabilities.registry import ( + execute_registered_business_capability, ) +from hyf_core.errors import CapabilityResult from hyf_core.request_context import RequestContext @@ -18,11 +14,4 @@ def backend_name() -> String: def execute_capability( capability_id: String, input: Value, context: RequestContext ) raises -> CapabilityResult: - if capability_id == "query_rewrite": - return execute_query_rewrite(input, context) - if capability_id == "semantic_rank": - return execute_semantic_rank(input, context) - if capability_id == "explain_result": - return execute_explain_result(input, context) - - return failed_capability(capability_not_implemented_error(capability_id)) + return execute_registered_business_capability(capability_id, input, context) diff --git a/src/hyf_core/capabilities/registry.mojo b/src/hyf_core/capabilities/registry.mojo @@ -1,4 +1,16 @@ -from std.collections import List +from std.collections import List, Optional + +from mojson import Value + +from hyf_core.capabilities.explain_result import execute_explain_result +from hyf_core.capabilities.query_rewrite import execute_query_rewrite +from hyf_core.capabilities.semantic_rank import execute_semantic_rank +from hyf_core.errors import ( + CapabilityResult, + capability_not_implemented_error, + failed_capability, +) +from hyf_core.request_context import RequestContext @fieldwise_init @@ -7,6 +19,7 @@ struct BusinessCapabilityDescriptor(Copyable, Movable): var deterministic_enabled: Bool var implemented: Bool var callable: Bool + var deterministic_backend: String var assisted_available: Bool var disabled_reason: String @@ -19,6 +32,7 @@ def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: deterministic_enabled=True, implemented=True, callable=True, + deterministic_backend="heuristic", assisted_available=False, disabled_reason="", ) @@ -29,6 +43,7 @@ def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: deterministic_enabled=False, implemented=False, callable=False, + deterministic_backend="", assisted_available=False, disabled_reason="deferred_bootstrap_capability", ) @@ -39,6 +54,7 @@ def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: deterministic_enabled=True, implemented=True, callable=True, + deterministic_backend="heuristic", assisted_available=False, disabled_reason="", ) @@ -49,6 +65,7 @@ def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: deterministic_enabled=False, implemented=False, callable=False, + deterministic_backend="", assisted_available=False, disabled_reason="deferred_bootstrap_capability", ) @@ -59,6 +76,7 @@ def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: deterministic_enabled=False, implemented=False, callable=False, + deterministic_backend="", assisted_available=False, disabled_reason="deferred_bootstrap_capability", ) @@ -69,6 +87,7 @@ def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: deterministic_enabled=False, implemented=False, callable=False, + deterministic_backend="", assisted_available=False, disabled_reason="deferred_bootstrap_capability", ) @@ -79,6 +98,7 @@ def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: deterministic_enabled=True, implemented=True, callable=True, + deterministic_backend="heuristic", assisted_available=False, disabled_reason="", ) @@ -89,6 +109,7 @@ def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: deterministic_enabled=False, implemented=False, callable=False, + deterministic_backend="", assisted_available=False, disabled_reason="deferred_bootstrap_capability", ) @@ -130,15 +151,45 @@ def deferred_capabilities() -> List[String]: return disabled^ -def is_known_business_capability(capability_id: String) -> Bool: +def canonical_business_capability( + capability_id: String, +) -> Optional[BusinessCapabilityDescriptor]: for capability in canonical_business_capabilities(): if capability.id == capability_id: - return True - return False - + return Optional[BusinessCapabilityDescriptor](capability.copy()) + return Optional[BusinessCapabilityDescriptor](None) + + +def _dispatch_heuristic_registered_business_capability( + capability_id: String, input: Value, context: RequestContext +) raises -> CapabilityResult: + if capability_id == "query_rewrite": + return execute_query_rewrite(input, context) + if capability_id == "semantic_rank": + return execute_semantic_rank(input, context) + if capability_id == "explain_result": + return execute_explain_result(input, context) + return failed_capability(capability_not_implemented_error(capability_id)) + + +def execute_registered_business_capability( + capability_id: String, input: Value, context: RequestContext +) raises -> CapabilityResult: + var capability = canonical_business_capability(capability_id) + if not capability: + return failed_capability(capability_not_implemented_error(capability_id)) + + var descriptor = capability.value().copy() + if ( + not descriptor.deterministic_enabled + or not descriptor.implemented + or not descriptor.callable + ): + return failed_capability(capability_not_implemented_error(capability_id)) + + if descriptor.deterministic_backend == "heuristic": + return _dispatch_heuristic_registered_business_capability( + capability_id, input, context + ) -def is_deferred_capability(capability_id: String) -> Bool: - for capability in canonical_business_capabilities(): - if capability.id == capability_id: - return not capability.deterministic_enabled - return False + return failed_capability(capability_not_implemented_error(capability_id)) diff --git a/src/hyf_stdio/server.mojo b/src/hyf_stdio/server.mojo @@ -6,8 +6,7 @@ from mojson import Value from hyf_core.backends.selector import execute_capability as execute_backend_capability from hyf_core.capabilities.registry import ( - is_deferred_capability, - is_known_business_capability, + canonical_business_capability, ) from hyf_core.errors import CapabilityFailure, CapabilityResult, CapabilitySuccess from hyf_core.metadata import hyf_protocol_version @@ -164,6 +163,23 @@ def _dispatch_business_capability( return _dispatch_capability_result(request_id, request.trace_id, result) +def _route_business_capability( + request: WireRequest, request_id: String +) raises -> String: + var capability = canonical_business_capability(request.capability) + if not capability: + return encode_error(_unsupported_response(request)) + + var descriptor = capability.value().copy() + if not descriptor.deterministic_enabled: + return encode_error(_disabled_response(request)) + + if descriptor.implemented and descriptor.callable: + return _dispatch_business_capability(request, request_id) + + return encode_error(_unavailable_response(request)) + + @parameter def handle_request_with_control_builders[ status_builder: def() raises -> Value, @@ -192,17 +208,7 @@ def handle_request_with_control_builders[ meta=None, ) ) - elif ( - request.capability == "query_rewrite" - or request.capability == "semantic_rank" - or request.capability == "explain_result" - ): - return _dispatch_business_capability(request.copy(), request_id) - elif is_deferred_capability(request.capability): - return encode_error(_disabled_response(request)) - elif is_known_business_capability(request.capability): - return encode_error(_unavailable_response(request)) - return encode_error(_unsupported_response(request)) + return _route_business_capability(request.copy(), request_id) except e: _emit_internal_diagnostic( request_id, diff --git a/tests/test_hyf.mojo b/tests/test_hyf.mojo @@ -26,6 +26,7 @@ from hyf_core.backends.selector import ( execute_capability as execute_core_capability, resolve_backend, ) +from hyf_core.capabilities.registry import canonical_business_capabilities from hyf_core.metadata import current_build_identity, current_package_surface from hyf_core.request_context import default_request_context from hyf_stdio.control.capabilities import build_capabilities_output @@ -70,6 +71,35 @@ def _dispatch(line: String) raises -> Value: return loads(handle_request_line(line)) +def _capability_output_entry_by_id( + output: Value, capability_id: String +) raises -> Value: + for entry in output["business_capabilities"].array_items(): + if entry["id"].string_value() == capability_id: + return entry.clone() + raise Error("missing business capability entry '" + capability_id + "'") + + +def _sample_request_json_for_callable_capability( + capability_id: String, +) raises -> String: + if capability_id == "query_rewrite": + return load_scenario_request_json( + "scenarios/query_rewrite_local_pickup_weekend.json" + ) + if capability_id == "semantic_rank": + return load_scenario_request_json( + "scenarios/semantic_rank_local_pickup_weekend.json" + ) + if capability_id == "explain_result": + return load_scenario_request_json( + "scenarios/explain_result_local_pickup_weekend.json" + ) + raise Error( + "missing sample request for callable capability '" + capability_id + "'" + ) + + def _failing_status_output() raises -> Value: raise Error("simulated test-only status builder failure") @@ -337,6 +367,40 @@ def test_capabilities_report_implemented_and_disabled_states() raises: assert_matches_scenario_response(result, "scenarios/capabilities_ok.json") +def test_capabilities_output_reflects_registry_truth_for_all_business_capabilities() raises: + var output = build_capabilities_output() + for capability in canonical_business_capabilities(): + var entry = _capability_output_entry_by_id(output, capability.id) + assert_equal(entry["id"].string_value(), capability.id) + assert_equal(entry["implemented"].bool_value(), capability.implemented) + assert_equal(entry["callable"].bool_value(), capability.callable) + assert_equal( + entry["assisted_backend_available"].bool_value(), + capability.assisted_available, + ) + assert_equal( + entry["deterministic_execution"].string_value(), + "enabled" if capability.deterministic_enabled else "disabled", + ) + assert_equal( + entry["implementation_status"].string_value(), + "implemented" + if capability.implemented + else ( + "not_implemented" + if capability.deterministic_enabled + else "disabled" + ), + ) + if capability.disabled_reason != "": + assert_equal( + entry["disabled_reason"].string_value(), + capability.disabled_reason, + ) + else: + assert_true(not _has_key(entry, "disabled_reason")) + + def test_disabled_capability_returns_capability_disabled() raises: var result = _dispatch( load_scenario_request_json("scenarios/deferred_capability_disabled.json") @@ -346,6 +410,39 @@ def test_disabled_capability_returns_capability_disabled() raises: ) +def test_all_callable_registry_business_capabilities_are_dispatchable() raises: + for capability in canonical_business_capabilities(): + if not capability.callable: + continue + var result = _dispatch( + _sample_request_json_for_callable_capability(capability.id) + ) + assert_equal(Int(result["version"].int_value()), 1) + assert_equal(result["ok"].bool_value(), True) + + +def test_non_callable_registry_business_capabilities_do_not_route_as_success() raises: + for capability in canonical_business_capabilities(): + if capability.callable: + continue + var result = _dispatch( + '{"version":1,"request_id":"' + + capability.id + + '-routing-1","capability":"' + + capability.id + + '","input":{}}' + ) + assert_equal(Int(result["version"].int_value()), 1) + assert_equal(result["request_id"].string_value(), capability.id + "-routing-1") + assert_equal(result["ok"].bool_value(), False) + assert_equal( + result["error"]["code"].string_value(), + "capability_disabled" + if not capability.deterministic_enabled + else "capability_unavailable", + ) + + def test_backend_selector_routes_deterministic_wave() raises: var context = default_request_context() var selection = resolve_backend(context)