hyf

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

commit 307b277f1d3e86032d8074ff7ada637549d229c4
parent b40a1bdfd183aa25abba875d08835ee9af6407b0
Author: triesap <tyson@radroots.org>
Date:   Sun, 12 Apr 2026 03:49:54 +0000

provider: collapse query rewrite into mojo runtime

Diffstat:
Msrc/hyf_core/capabilities/query_rewrite.mojo | 120++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
Mtests/stdio_process_helper.mojo | 13++++++++++---
Mtests/test_stdio_contract.mojo | 96+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 201 insertions(+), 28 deletions(-)

diff --git a/src/hyf_core/capabilities/query_rewrite.mojo b/src/hyf_core/capabilities/query_rewrite.mojo @@ -6,7 +6,10 @@ from hyf_assist.bridge import ( execute_query_rewrite_via_assist_bridge, resolve_assist_bridge_status, ) -from hyf_assist.contract import AssistQueryRewriteResult +from hyf_assist.contract import ( + AssistQueryRewriteResult, + assist_bridge_fake_endpoint_prefix, +) from hyf_core.capabilities.query_analysis import ( QueryAnalysis, QueryRewriteRequest, @@ -30,7 +33,16 @@ from hyf_core.provenance import ( ProvenanceSourceRef, ) from hyf_core.request_context import RequestContext, assisted_execution_requested -from hyf_runtime.config import HyfLoadedRuntimeConfig +from hyf_provider.config import load_max_local_provider_config +from hyf_provider.max_local import ( + execute_query_rewrite_via_max_local_provider, + max_local_provider_status, +) +from hyf_runtime.config import ( + HyfLoadedRuntimeConfig, + assist_bridge_configured, + assisted_execution_enabled, +) def _build_output(analysis: QueryAnalysis) raises -> Value: @@ -154,34 +166,92 @@ def execute_query_rewrite_with_runtime_config( try: var request: QueryRewriteRequest = parse_query_rewrite_request(input) if assisted_execution_requested(context): - var bridge_status = resolve_assist_bridge_status(runtime_config) - if bridge_status.reachable: - try: - var assisted_result = execute_query_rewrite_via_assist_bridge( - bridge_status, request.text, context - ) - return successful_capability( - _build_output(assisted_result.analysis), - meta=_build_assisted_meta(context, assisted_result), - ) - except e: - var fallback_analysis = analyze_query_text( - request.text, context - ) - return successful_capability( - _build_output(fallback_analysis), - meta=_build_deterministic_fallback_meta( - context, - fallback_analysis, - "bridge_execution_failed", - ), - ) + if not assisted_execution_enabled(runtime_config): + var fallback_analysis = analyze_query_text(request.text, context) + return successful_capability( + _build_output(fallback_analysis), + meta=_build_deterministic_fallback_meta( + context, + fallback_analysis, + "disabled_by_runtime_config", + ), + ) + + if not assist_bridge_configured(runtime_config): + var fallback_analysis = analyze_query_text(request.text, context) + return successful_capability( + _build_output(fallback_analysis), + meta=_build_deterministic_fallback_meta( + context, fallback_analysis, "unconfigured" + ), + ) + + var endpoint = String(runtime_config.effective.assist.endpoint).strip() + if endpoint.startswith(assist_bridge_fake_endpoint_prefix()): + var bridge_status = resolve_assist_bridge_status(runtime_config) + if bridge_status.reachable: + try: + var assisted_result = execute_query_rewrite_via_assist_bridge( + bridge_status, request.text, context + ) + return successful_capability( + _build_output(assisted_result.analysis), + meta=_build_assisted_meta(context, assisted_result), + ) + except e: + var fallback_analysis = analyze_query_text( + request.text, context + ) + return successful_capability( + _build_output(fallback_analysis), + meta=_build_deterministic_fallback_meta( + context, + fallback_analysis, + "bridge_execution_failed", + ), + ) + + var fallback_analysis = analyze_query_text(request.text, context) + return successful_capability( + _build_output(fallback_analysis), + meta=_build_deterministic_fallback_meta( + context, fallback_analysis, bridge_status.state + ), + ) + + try: + var provider_config = load_max_local_provider_config() + var provider_status = max_local_provider_status(provider_config) + if provider_status.reachable: + try: + var assisted_result = + execute_query_rewrite_via_max_local_provider( + provider_config, request.text, context + ) + return successful_capability( + _build_output(assisted_result.analysis), + meta=_build_assisted_meta(context, assisted_result), + ) + except e: + var fallback_analysis = analyze_query_text( + request.text, context + ) + return successful_capability( + _build_output(fallback_analysis), + meta=_build_deterministic_fallback_meta( + context, + fallback_analysis, + "bridge_execution_failed", + ), + ) + except e: + pass var fallback_analysis = analyze_query_text(request.text, context) return successful_capability( _build_output(fallback_analysis), meta=_build_deterministic_fallback_meta( - context, fallback_analysis, bridge_status.state + context, fallback_analysis, "unavailable" ), ) diff --git a/tests/stdio_process_helper.mojo b/tests/stdio_process_helper.mojo @@ -83,10 +83,11 @@ def run_stdio_entrypoint_with_2_args( var command = String("mojo") var include_flag = String("-I") var include_path = String("src") + var vendor_include_path = String("../../../../vendor/mojo/flare") var entrypoint_path = String(entrypoint) var process_arg0 = String(arg0) var process_arg1 = String(arg1) - var argv = List[Optional[CStringSlice[ImmutAnyOrigin]]](length=8, fill={}) + var argv = List[Optional[CStringSlice[ImmutAnyOrigin]]](length=10, fill={}) argv[0] = rebind[CStringSlice[ImmutAnyOrigin]](command.as_c_string_slice()) argv[1] = rebind[CStringSlice[ImmutAnyOrigin]]("run".as_c_string_slice()) argv[2] = rebind[CStringSlice[ImmutAnyOrigin]]( @@ -96,14 +97,20 @@ def run_stdio_entrypoint_with_2_args( include_path.as_c_string_slice() ) argv[4] = rebind[CStringSlice[ImmutAnyOrigin]]( + include_flag.as_c_string_slice() + ) + argv[5] = rebind[CStringSlice[ImmutAnyOrigin]]( + vendor_include_path.as_c_string_slice() + ) + argv[6] = rebind[CStringSlice[ImmutAnyOrigin]]( entrypoint_path.as_c_string_slice() ) if process_arg0 != "": - argv[5] = rebind[CStringSlice[ImmutAnyOrigin]]( + argv[7] = rebind[CStringSlice[ImmutAnyOrigin]]( process_arg0.as_c_string_slice() ) if process_arg1 != "": - argv[6] = rebind[CStringSlice[ImmutAnyOrigin]]( + argv[8] = rebind[CStringSlice[ImmutAnyOrigin]]( process_arg1.as_c_string_slice() ) diff --git a/tests/test_stdio_contract.mojo b/tests/test_stdio_contract.mojo @@ -10,6 +10,10 @@ from fixture_assertions import ( load_scenario_request_json, status_request_with_invalid_version_json, ) +from max_local_process_helper import ( + reserve_loopback_port, + spawn_max_local_stub, +) from stdio_process_helper import ( HYF_PATHS_PROFILE_ENV, HYF_PATHS_REPO_LOCAL_ROOT_ENV, @@ -625,6 +629,98 @@ def test_query_rewrite_uses_fake_assist_bridge_when_requested() raises: ) +def test_query_rewrite_uses_pure_mojo_provider_when_requested() raises: + with TemporaryDirectory() as temp_dir: + var startup_config_path = Path(temp_dir) / "explicit-hyf-config.toml" + startup_config_path.write_text( + '[service]\ntransport = "stdio"\n\n' + '[runtime]\ndefault_execution_mode = "deterministic"\nallow_assisted = true\n\n' + '[assist]\nbridge_enabled = true\ntransport = "stdio"\nendpoint = "hyf-assistd://local"\n' + ) + var health_port = reserve_loopback_port() + var provider_port = reserve_loopback_port() + var health_stub = spawn_max_local_stub(health_port, "health_ok") + var provider_stub = spawn_max_local_stub( + provider_port, "query_rewrite_ok" + ) + with ScopedEnvVar(HYF_PATHS_PROFILE_ENV, "repo_local"): + with ScopedEnvVar(HYF_PATHS_REPO_LOCAL_ROOT_ENV, temp_dir): + with ScopedEnvVar( + "HYF_MAX_LOCAL_HEALTH_URL", + "http://127.0.0.1:" + String(health_port) + "/health", + ): + with ScopedEnvVar( + "HYF_MAX_LOCAL_BASE_URL", + "http://127.0.0.1:" + String(provider_port) + "/v1", + ): + var response = run_stdio_entrypoint( + "src/main.mojo", + '{"version":1,"request_id":"rewrite-assisted-max-local-1","trace_id":"rewrite-assisted-max-local-1","capability":"query_rewrite","context":{"execution_mode_preference":"assisted","return_provenance":true},"input":{"query":"local apples pickup weekend"}}', + "--config", + startup_config_path.__fspath__(), + ) + + assert_true(response["ok"].bool_value()) + assert_equal( + response["meta"]["execution_mode"].string_value(), + "assisted", + ) + assert_equal( + response["meta"]["backend"].string_value(), + "assist_bridge", + ) + assert_equal( + response["meta"]["provider"].string_value(), + "max_local", + ) + assert_equal( + response["meta"]["route"].string_value(), + "assist_bridge.query_rewrite.max_local", + ) + assert_equal( + response["meta"]["model"].string_value(), + "max-local-query-rewrite", + ) + assert_equal( + Int(response["meta"]["schema_version"].int_value()), + 1, + ) + assert_true( + Int(response["meta"]["latency_ms"].int_value()) + >= 0 + ) + assert_equal( + response["meta"]["provenance"]["kind"] + .string_value(), + "assisted", + ) + assert_equal( + response["output"]["rewritten_text"] + .string_value(), + "apples pickup weekend", + ) + assert_equal( + response["output"]["query_terms"][0] + .string_value(), + "apples", + ) + assert_equal( + response["output"]["extracted_filters"][ + "fulfillment" + ].string_value(), + "pickup", + ) + assert_equal( + response["output"]["extracted_filters"][ + "time_window" + ].string_value(), + "weekend", + ) + + health_stub.wait() + provider_stub.wait() + + def test_query_rewrite_falls_back_deterministically_when_bridge_is_unavailable() raises: with TemporaryDirectory() as temp_dir: var startup_config_path = Path(temp_dir) / "explicit-hyf-config.toml"