hyf

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

commit 420f0dbbd7e83982a9c6c94d778d60e9cc2523ac
parent ea61c8fc5a24bf18984e6f1aca110ea447944370
Author: triesap <tyson@radroots.org>
Date:   Wed,  8 Apr 2026 19:34:13 +0000

core: add hyf build identity surface

Diffstat:
Asrc/hyf_core/metadata.mojo | 25+++++++++++++++++++++++++
Msrc/hyf_stdio/control/status.mojo | 31+++++++++++++++++++++++++++++--
Mtests/test_hyf.mojo | 28++++++++++++++++++++++++++++
3 files changed, 82 insertions(+), 2 deletions(-)

diff --git a/src/hyf_core/metadata.mojo b/src/hyf_core/metadata.mojo @@ -0,0 +1,25 @@ +@fieldwise_init +struct HyfBuildIdentity(Copyable, Movable): + var service_name: String + var package_name: String + var package_version: String + var daemon_name: String + var transport: String + var protocol_version: Int + var default_execution_mode: String + var deterministic_execution_available: Bool + var assisted_execution_available: Bool + + +def current_build_identity() -> HyfBuildIdentity: + return HyfBuildIdentity( + service_name="hyf", + package_name="hyf", + package_version="0.1.0", + daemon_name="hyfd", + transport="stdio", + protocol_version=1, + default_execution_mode="deterministic", + deterministic_execution_available=True, + assisted_execution_available=False, + ) diff --git a/src/hyf_stdio/control/status.mojo b/src/hyf_stdio/control/status.mojo @@ -9,6 +9,7 @@ from hyf_core.capabilities.registry import ( deferred_capabilities, implemented_deterministic_capability_count, ) +from hyf_core.metadata import current_build_identity from hyf_core.request_context import request_context_feature_names @@ -19,10 +20,36 @@ def _string_array(values: List[String]) raises -> Value: return array^ +def _build_identity_value() raises -> Value: + var build_identity = current_build_identity() + var value = loads("{}") + value.set("service_name", Value(String(build_identity.service_name))) + value.set("package_name", Value(String(build_identity.package_name))) + value.set("package_version", Value(String(build_identity.package_version))) + value.set("daemon_name", Value(String(build_identity.daemon_name))) + value.set("transport", Value(String(build_identity.transport))) + value.set("protocol_version", Value(build_identity.protocol_version)) + value.set( + "default_execution_mode", + Value(String(build_identity.default_execution_mode)), + ) + value.set( + "deterministic_execution_available", + Value(build_identity.deterministic_execution_available), + ) + value.set( + "assisted_execution_available", + Value(build_identity.assisted_execution_available), + ) + return value^ + + def build_status_output() raises -> Value: var output = loads("{}") - output.set("daemon", Value("hyfd")) - output.set("transport", Value("stdio")) + var build_identity = _build_identity_value() + output.set("build_identity", build_identity.copy()) + output.set("daemon", build_identity["daemon_name"].clone()) + output.set("transport", build_identity["transport"].clone()) output.set("request_framing", Value("newline_delimited_json")) output.set( "implementation_status", diff --git a/tests/test_hyf.mojo b/tests/test_hyf.mojo @@ -93,6 +93,34 @@ def test_status_reports_registered_deterministic_ready() raises: assert_equal(result["ok"].bool_value(), True) assert_equal( + result["output"]["build_identity"]["service_name"].string_value(), + "hyf", + ) + assert_equal( + result["output"]["build_identity"]["package_name"].string_value(), + "hyf", + ) + assert_equal( + result["output"]["build_identity"]["package_version"].string_value(), + "0.1.0", + ) + assert_equal( + result["output"]["build_identity"]["protocol_version"].int_value(), + 1, + ) + assert_equal( + result["output"]["build_identity"]["default_execution_mode"].string_value(), + "deterministic", + ) + assert_equal( + result["output"]["build_identity"]["deterministic_execution_available"].bool_value(), + True, + ) + assert_equal( + result["output"]["build_identity"]["assisted_execution_available"].bool_value(), + False, + ) + assert_equal( result["output"]["implementation_status"].string_value(), "bootstrap_registered_deterministic_ready", )