hyf

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

commit 122c10d1a03848af81fd309a49f21e7dca37aa72
parent 1c47b197e9c53fd0beb193ca220700507cbb44b0
Author: triesap <tyson@radroots.org>
Date:   Wed,  8 Apr 2026 17:34:04 +0000

stdio: add truthful hyf control plane

- add core registry metadata for enabled and deferred business capabilities
- add sys.status and sys.capabilities control handlers over stdio
- return capability_disabled for deferred requests and capability_unavailable for first-wave stubs
- verify no-input launch plus piped control-plane and capability responses

Diffstat:
Msrc/hyf_core/capabilities/registry.mojo | 129++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Asrc/hyf_stdio/control/capabilities.mojo | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/hyf_stdio/control/status.mojo | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/hyf_stdio/errors.mojo | 14++++++++++++++
Msrc/hyf_stdio/server.mojo | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++------
5 files changed, 307 insertions(+), 7 deletions(-)

diff --git a/src/hyf_core/capabilities/registry.mojo b/src/hyf_core/capabilities/registry.mojo @@ -1,3 +1,130 @@ +from std.collections import List + + +@fieldwise_init +struct BusinessCapabilityDescriptor(Copyable, Movable): + var id: String + var mode_a_enabled: Bool + var implemented: Bool + var callable: Bool + var mode_b_available: Bool + var disabled_reason: String + + +def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: + var capabilities = List[BusinessCapabilityDescriptor]() + capabilities.append( + BusinessCapabilityDescriptor( + id="query_rewrite", + mode_a_enabled=True, + implemented=False, + callable=False, + mode_b_available=False, + disabled_reason="", + ) + ) + capabilities.append( + BusinessCapabilityDescriptor( + id="filter_extraction", + mode_a_enabled=False, + implemented=False, + callable=False, + mode_b_available=False, + disabled_reason="deferred_bootstrap_capability", + ) + ) + capabilities.append( + BusinessCapabilityDescriptor( + id="semantic_rank", + mode_a_enabled=True, + implemented=False, + callable=False, + mode_b_available=False, + disabled_reason="", + ) + ) + capabilities.append( + BusinessCapabilityDescriptor( + id="summarize_listing", + mode_a_enabled=False, + implemented=False, + callable=False, + mode_b_available=False, + disabled_reason="deferred_bootstrap_capability", + ) + ) + capabilities.append( + BusinessCapabilityDescriptor( + id="summarize_farm", + mode_a_enabled=False, + implemented=False, + callable=False, + mode_b_available=False, + disabled_reason="deferred_bootstrap_capability", + ) + ) + capabilities.append( + BusinessCapabilityDescriptor( + id="workflow_plan", + mode_a_enabled=False, + implemented=False, + callable=False, + mode_b_available=False, + disabled_reason="deferred_bootstrap_capability", + ) + ) + capabilities.append( + BusinessCapabilityDescriptor( + id="explain_result", + mode_a_enabled=True, + implemented=False, + callable=False, + mode_b_available=False, + disabled_reason="", + ) + ) + capabilities.append( + BusinessCapabilityDescriptor( + id="dedupe_cluster", + mode_a_enabled=False, + implemented=False, + callable=False, + mode_b_available=False, + disabled_reason="deferred_bootstrap_capability", + ) + ) + return capabilities^ + + def bootstrap_capability_count() -> Int: - return 0 + return len(canonical_business_capabilities()) + + +def bootstrap_enabled_capabilities() -> List[String]: + var enabled = List[String]() + for capability in canonical_business_capabilities(): + if capability.mode_a_enabled: + enabled.append(String(capability.id)) + return enabled^ + + +def deferred_capabilities() -> List[String]: + var disabled = List[String]() + for capability in canonical_business_capabilities(): + if not capability.mode_a_enabled: + disabled.append(String(capability.id)) + return disabled^ + + +def is_known_business_capability(capability_id: String) -> Bool: + for capability in canonical_business_capabilities(): + if capability.id == capability_id: + return True + return False + +def is_deferred_capability(capability_id: String) -> Bool: + for capability in canonical_business_capabilities(): + if capability.id == capability_id: + return not capability.mode_a_enabled + return False diff --git a/src/hyf_stdio/control/capabilities.mojo b/src/hyf_stdio/control/capabilities.mojo @@ -0,0 +1,52 @@ +from std.collections import List + +from mojson import Value, loads + +from hyf_core.capabilities.registry import canonical_business_capabilities + + +def _string_array(values: List[String]) raises -> Value: + var array = loads("[]") + for value in values: + array.append(Value(String(value))) + return array^ + + +def build_capabilities_output() raises -> Value: + var output = loads("{}") + var control_routes = List[String]() + control_routes.append("sys.status") + control_routes.append("sys.capabilities") + output.set( + "control_routes", _string_array(control_routes) + ) + + var capabilities = loads("[]") + for capability in canonical_business_capabilities(): + var value = loads("{}") + value.set("id", Value(String(capability.id))) + value.set("kind", Value("business")) + value.set( + "mode_a", + Value("enabled") if capability.mode_a_enabled else Value("disabled"), + ) + value.set( + "implementation_status", + Value("not_implemented") + if capability.mode_a_enabled + else Value("disabled"), + ) + value.set("callable", Value(capability.callable)) + value.set("implemented", Value(capability.implemented)) + value.set("mode_b", Value("unavailable")) + value.set("backend_assisted", Value(capability.mode_b_available)) + if capability.disabled_reason != "": + value.set( + "disabled_reason", Value(String(capability.disabled_reason)) + ) + capabilities.append(value) + + output.set("business_capabilities", capabilities) + output.set("backend_assisted_capabilities", loads("[]")) + output.set("request_context_features", loads("[]")) + return output^ diff --git a/src/hyf_stdio/control/status.mojo b/src/hyf_stdio/control/status.mojo @@ -0,0 +1,58 @@ +from std.collections import List + +from mojson import Value, loads + +from hyf_core.capabilities.registry import ( + bootstrap_capability_count, + bootstrap_enabled_capabilities, + deferred_capabilities, +) + + +def _string_array(values: List[String]) raises -> Value: + var array = loads("[]") + for value in values: + array.append(Value(String(value))) + return array^ + + +def build_status_output() raises -> Value: + var output = loads("{}") + output.set("daemon", Value("hyfd")) + output.set("transport", Value("stdio")) + output.set("request_framing", Value("newline_delimited_json")) + output.set("implementation_status", Value("bootstrap_control_plane_only")) + + var modes = loads("{}") + modes.set("a", Value(True)) + modes.set("b", Value(False)) + output.set("enabled_modes", modes) + + var backends = loads("{}") + backends.set("mode_a_deterministic", Value("not_implemented")) + backends.set("mode_b_model_assisted", Value("unavailable")) + output.set("backend_reachability", backends) + + var counts = loads("{}") + counts.set("canonical_business_capabilities", Value(bootstrap_capability_count())) + counts.set( + "mode_a_registered_business_capabilities", + Value(len(bootstrap_enabled_capabilities())), + ) + counts.set( + "disabled_business_capabilities", + Value(len(deferred_capabilities())), + ) + output.set("counts", counts) + + output.set( + "mode_a_registered_capabilities", _string_array(bootstrap_enabled_capabilities()) + ) + output.set("disabled_capabilities", _string_array(deferred_capabilities())) + + var limits = loads("{}") + limits.set("max_requests_per_process", Value(1)) + limits.set("request_context_features", loads("[]")) + output.set("limits", limits) + + return output^ diff --git a/src/hyf_stdio/errors.mojo b/src/hyf_stdio/errors.mojo @@ -24,5 +24,19 @@ def unsupported_capability_error(capability: String) -> WireError: ) +def capability_disabled_error(capability: String) -> WireError: + return WireError( + code="capability_disabled", + message="bootstrap deferred capability '" + capability + "' is disabled", + ) + + +def capability_unavailable_error(capability: String) -> WireError: + return WireError( + code="capability_unavailable", + message="bootstrap capability '" + capability + "' is not implemented yet", + ) + + def internal_error(message: String) -> WireError: return WireError(code="internal_error", message=message) diff --git a/src/hyf_stdio/server.mojo b/src/hyf_stdio/server.mojo @@ -1,9 +1,21 @@ from std.io.io import _fdopen from std.sys import stdin -from hyf_stdio.codec import decode_request, encode_error -from hyf_stdio.envelope import WireErrorResponse, WireRequest +from hyf_core.capabilities.registry import ( + is_deferred_capability, + is_known_business_capability, +) +from hyf_stdio.codec import decode_request, encode_error, encode_success +from hyf_stdio.control.capabilities import build_capabilities_output +from hyf_stdio.control.status import build_status_output +from hyf_stdio.envelope import ( + WireErrorResponse, + WireRequest, + WireSuccessResponse, +) from hyf_stdio.errors import ( + capability_disabled_error, + capability_unavailable_error, internal_error, invalid_request_error, unsupported_capability_error, @@ -22,10 +34,28 @@ def _unsupported_response(request: WireRequest) -> WireErrorResponse: ) -def _write_response(response: WireErrorResponse) raises: +def _disabled_response(request: WireRequest) -> WireErrorResponse: + return WireErrorResponse( + request_id=String(request.request_id), + error=capability_disabled_error(String(request.capability)), + ) + + +def _unavailable_response(request: WireRequest) -> WireErrorResponse: + return WireErrorResponse( + request_id=String(request.request_id), + error=capability_unavailable_error(String(request.capability)), + ) + + +def _write_error(response: WireErrorResponse) raises: print(encode_error(response)) +def _write_success(response: WireSuccessResponse) raises: + print(encode_success(response)) + + def run_stdio_server() raises: if stdin.isatty(): return @@ -38,16 +68,35 @@ def run_stdio_server() raises: var request_id = String(request.request_id) try: - _write_response(_unsupported_response(request)) + if request.capability == "sys.status": + _write_success( + WireSuccessResponse( + request_id=request_id, + output=build_status_output(), + ) + ) + elif request.capability == "sys.capabilities": + _write_success( + WireSuccessResponse( + request_id=request_id, + output=build_capabilities_output(), + ) + ) + elif is_deferred_capability(request.capability): + _write_error(_disabled_response(request)) + elif is_known_business_capability(request.capability): + _write_error(_unavailable_response(request)) + else: + _write_error(_unsupported_response(request)) except e: - _write_response( + _write_error( WireErrorResponse( request_id=request_id, error=internal_error(String(e)), ) ) except e: - _write_response( + _write_error( WireErrorResponse( request_id="", error=invalid_request_error(String(e)),