commit 46cf5906392d873058f27416b72dacfc0b03639c
parent c45c48a7cfca903ea187cf1b57773ae47d54159e
Author: triesap <tyson@radroots.org>
Date: Sun, 12 Apr 2026 01:06:18 +0000
assist: define fake bridge contract
Diffstat:
10 files changed, 300 insertions(+), 15 deletions(-)
diff --git a/src/hyf_assist/__init__.mojo b/src/hyf_assist/__init__.mojo
@@ -0,0 +1 @@
+
diff --git a/src/hyf_assist/bridge.mojo b/src/hyf_assist/bridge.mojo
@@ -0,0 +1,88 @@
+from mojson import Value, loads
+
+from hyf_assist.contract import (
+ AssistBridgeStatus,
+ assist_bridge_contract_version,
+ assist_bridge_runtime_id,
+ assist_bridge_supported_business_capabilities,
+)
+from hyf_runtime.config import (
+ HyfLoadedRuntimeConfig,
+ assist_bridge_configured,
+ assisted_execution_enabled,
+)
+
+
+def resolve_assist_bridge_status(
+ config: HyfLoadedRuntimeConfig,
+) -> AssistBridgeStatus:
+ var configured = assist_bridge_configured(config)
+ var state = "disabled_by_runtime_config"
+ if assisted_execution_enabled(config):
+ state = "unavailable" if configured else "unconfigured"
+
+ return AssistBridgeStatus(
+ id=assist_bridge_runtime_id(),
+ kind="assist_bridge",
+ contract_version=assist_bridge_contract_version(),
+ transport=String(config.effective.assist.transport),
+ endpoint=String(config.effective.assist.endpoint),
+ backend_kind="fake",
+ configured=configured,
+ reachable=False,
+ state=state,
+ fallback_contract="deterministic_baseline_preserved",
+ supported_business_capabilities=assist_bridge_supported_business_capabilities(),
+ )
+
+
+def assisted_execution_state_for_capability(
+ bridge_status: AssistBridgeStatus, capability_id: String
+) -> String:
+ if capability_id != "query_rewrite":
+ return "deferred"
+
+ if bridge_status.state == "disabled_by_runtime_config":
+ return "disabled_by_runtime_config"
+ if bridge_status.state == "unconfigured":
+ return "bridge_unconfigured"
+ if bridge_status.state == "unavailable":
+ return "bridge_unavailable"
+ if bridge_status.reachable:
+ return "enabled"
+ return "bridge_unavailable"
+
+
+def assisted_backend_available_for_capability(
+ bridge_status: AssistBridgeStatus, capability_id: String
+) -> Bool:
+ if not bridge_status.reachable:
+ return False
+ for supported in bridge_status.supported_business_capabilities:
+ if supported == capability_id:
+ return True
+ return False
+
+
+def serialize_assist_bridge_status_value(
+ bridge_status: AssistBridgeStatus,
+) raises -> Value:
+ var value = loads("{}")
+ value.set("id", Value(String(bridge_status.id)))
+ value.set("kind", Value(String(bridge_status.kind)))
+ value.set("contract_version", Value(bridge_status.contract_version))
+ value.set("transport", Value(String(bridge_status.transport)))
+ value.set("endpoint", Value(String(bridge_status.endpoint)))
+ value.set("backend_kind", Value(String(bridge_status.backend_kind)))
+ value.set("configured", Value(bridge_status.configured))
+ value.set("reachable", Value(bridge_status.reachable))
+ value.set("state", Value(String(bridge_status.state)))
+ value.set(
+ "fallback_contract", Value(String(bridge_status.fallback_contract))
+ )
+
+ var capabilities = loads("[]")
+ for capability in bridge_status.supported_business_capabilities:
+ capabilities.append(Value(String(capability)))
+ value.set("supported_business_capabilities", capabilities)
+ return value^
diff --git a/src/hyf_assist/contract.mojo b/src/hyf_assist/contract.mojo
@@ -0,0 +1,30 @@
+from std.collections import List
+
+
+def assist_bridge_contract_version() -> Int:
+ return 1
+
+
+def assist_bridge_runtime_id() -> String:
+ return "hyf_assistd"
+
+
+def assist_bridge_supported_business_capabilities() -> List[String]:
+ var capabilities = List[String]()
+ capabilities.append("query_rewrite")
+ return capabilities^
+
+
+@fieldwise_init
+struct AssistBridgeStatus(Copyable, Movable):
+ var id: String
+ var kind: String
+ var contract_version: Int
+ var transport: String
+ var endpoint: String
+ var backend_kind: String
+ var configured: Bool
+ var reachable: Bool
+ var state: String
+ var fallback_contract: String
+ var supported_business_capabilities: List[String]
diff --git a/src/hyf_stdio/control/capabilities.mojo b/src/hyf_stdio/control/capabilities.mojo
@@ -2,7 +2,17 @@ from std.collections import List
from mojson import Value, loads
+from hyf_assist.bridge import (
+ assisted_backend_available_for_capability,
+ assisted_execution_state_for_capability,
+ resolve_assist_bridge_status,
+ serialize_assist_bridge_status_value,
+)
from hyf_core.capabilities.registry import canonical_business_capabilities
+from hyf_runtime.startup import (
+ RuntimeStartupContext,
+ resolve_startup_context_from_process,
+)
from hyf_stdio.control.request_context_contract import (
build_request_context_contract_value,
)
@@ -16,7 +26,16 @@ def _string_array(values: List[String]) raises -> Value:
def build_capabilities_output() raises -> Value:
+ return build_capabilities_output_with_runtime_context(
+ resolve_startup_context_from_process()
+ )
+
+
+def build_capabilities_output_with_runtime_context(
+ runtime_context: RuntimeStartupContext,
+) raises -> Value:
var output = loads("{}")
+ var assist_bridge = resolve_assist_bridge_status(runtime_context.config)
var control_routes = List[String]()
control_routes.append("sys.status")
control_routes.append("sys.capabilities")
@@ -47,9 +66,21 @@ def build_capabilities_output() raises -> Value:
)
value.set("callable", Value(capability.callable))
value.set("implemented", Value(capability.implemented))
- value.set("assisted_execution", Value("unavailable"))
value.set(
- "assisted_backend_available", Value(capability.assisted_available)
+ "assisted_execution",
+ Value(
+ assisted_execution_state_for_capability(
+ assist_bridge, capability.id
+ )
+ ),
+ )
+ value.set(
+ "assisted_backend_available",
+ Value(
+ assisted_backend_available_for_capability(
+ assist_bridge, capability.id
+ )
+ ),
)
if capability.disabled_reason != "":
value.set(
@@ -58,7 +89,13 @@ def build_capabilities_output() raises -> Value:
capabilities.append(value)
output.set("business_capabilities", capabilities)
- output.set("assisted_backend_capabilities", loads("[]"))
+ var assisted_backend_capabilities = loads("[]")
+ assisted_backend_capabilities.append(
+ serialize_assist_bridge_status_value(assist_bridge)
+ )
+ output.set(
+ "assisted_backend_capabilities", assisted_backend_capabilities
+ )
output.set(
"request_context_contract",
build_request_context_contract_value(),
diff --git a/src/hyf_stdio/control/status.mojo b/src/hyf_stdio/control/status.mojo
@@ -2,6 +2,10 @@ from std.collections import List
from mojson import Value, loads
+from hyf_assist.bridge import (
+ resolve_assist_bridge_status,
+ serialize_assist_bridge_status_value,
+)
from hyf_core.capabilities.registry import (
all_deterministic_capabilities_implemented,
bootstrap_capability_count,
@@ -64,6 +68,7 @@ def build_status_output_with_runtime_context(
var output = loads("{}")
var build_identity = _build_identity_value()
var assisted_enabled = assisted_execution_enabled(runtime_context.config)
+ var assist_bridge = resolve_assist_bridge_status(runtime_context.config)
output.set("build_identity", build_identity.copy())
output.set("daemon", build_identity["daemon_name"].clone())
output.set("transport", build_identity["transport"].clone())
@@ -86,9 +91,13 @@ def build_status_output_with_runtime_context(
execution_mode_request_behavior.set("deterministic", Value("execute"))
execution_mode_request_behavior.set(
"assisted",
- Value("backend_unavailable")
- if assisted_enabled
- else Value("disabled_by_runtime_config"),
+ Value("disabled_by_runtime_config")
+ if assist_bridge.state == "disabled_by_runtime_config"
+ else (
+ Value("bridge_unconfigured")
+ if assist_bridge.state == "unconfigured"
+ else Value("bridge_unavailable")
+ ),
)
output.set(
"execution_mode_request_behavior",
@@ -104,8 +113,11 @@ def build_status_output_with_runtime_context(
"partially_available"
),
)
- backends.set("assisted_backend", Value("unavailable"))
+ backends.set("assisted_backend", Value(String(assist_bridge.state)))
output.set("backend_reachability", backends)
+ output.set(
+ "assist_bridge", serialize_assist_bridge_status_value(assist_bridge)
+ )
var counts = loads("{}")
counts.set(
diff --git a/src/hyf_stdio/server.mojo b/src/hyf_stdio/server.mojo
@@ -30,7 +30,10 @@ from hyf_stdio.codec import (
encode_success,
extract_request_correlation,
)
-from hyf_stdio.control.capabilities import build_capabilities_output
+from hyf_stdio.control.capabilities import (
+ build_capabilities_output,
+ build_capabilities_output_with_runtime_context,
+)
from hyf_stdio.control.status import (
build_status_output,
build_status_output_with_runtime_context,
@@ -283,6 +286,18 @@ def handle_request_with_runtime_context(
meta=None,
)
)
+ if request.capability == "sys.capabilities":
+ return encode_success(
+ WireSuccessResponse(
+ version=hyf_protocol_version(),
+ request_id=String(request.request_id),
+ trace_id=request.trace_id,
+ output=build_capabilities_output_with_runtime_context(
+ runtime_context
+ ),
+ meta=None,
+ )
+ )
return handle_request_with_runtime_context_and_control_builders[
build_status_output, build_capabilities_output
](request, runtime_context)
diff --git a/tests/fixtures/v1/scenarios/capabilities_ok.json b/tests/fixtures/v1/scenarios/capabilities_ok.json
@@ -22,16 +22,23 @@
"output.business_capabilities.0.deterministic_execution": "enabled",
"output.business_capabilities.0.implementation_status": "implemented",
"output.business_capabilities.0.callable": true,
+ "output.business_capabilities.0.assisted_execution": "disabled_by_runtime_config",
"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.assisted_execution": "deferred",
"output.business_capabilities.2.implementation_status": "implemented",
"output.business_capabilities.6.id": "explain_result",
+ "output.business_capabilities.6.assisted_execution": "deferred",
"output.business_capabilities.6.implementation_status": "implemented",
- "output.assisted_backend_capabilities": [],
+ "output.assisted_backend_capabilities.0.id": "hyf_assistd",
+ "output.assisted_backend_capabilities.0.kind": "assist_bridge",
+ "output.assisted_backend_capabilities.0.contract_version": 1,
+ "output.assisted_backend_capabilities.0.backend_kind": "fake",
+ "output.assisted_backend_capabilities.0.state": "disabled_by_runtime_config",
"output.request_context_contract.accepted_features": [
"consumer",
"execution_mode_preference",
@@ -51,6 +58,11 @@
],
"output.request_context_contract.unsupported_field_behavior": "reject"
},
+ "contains_all": {
+ "output.assisted_backend_capabilities.0.supported_business_capabilities": [
+ "query_rewrite"
+ ]
+ },
"absent_paths": [
"error",
"meta"
diff --git a/tests/fixtures/v1/scenarios/status_ok.json b/tests/fixtures/v1/scenarios/status_ok.json
@@ -34,7 +34,12 @@
"output.execution_mode_request_behavior.deterministic": "execute",
"output.execution_mode_request_behavior.assisted": "disabled_by_runtime_config",
"output.backend_reachability.deterministic_backend": "available",
- "output.backend_reachability.assisted_backend": "unavailable",
+ "output.backend_reachability.assisted_backend": "disabled_by_runtime_config",
+ "output.assist_bridge.id": "hyf_assistd",
+ "output.assist_bridge.kind": "assist_bridge",
+ "output.assist_bridge.contract_version": 1,
+ "output.assist_bridge.backend_kind": "fake",
+ "output.assist_bridge.state": "disabled_by_runtime_config",
"output.counts.canonical_business_capabilities": 8,
"output.counts.deterministic_registered_business_capabilities": 3,
"output.counts.deterministic_implemented_business_capabilities": 3,
@@ -65,6 +70,9 @@
"semantic_rank",
"explain_result"
],
+ "output.assist_bridge.supported_business_capabilities": [
+ "query_rewrite"
+ ],
"output.disabled_capabilities": [
"filter_extraction",
"summarize_listing",
diff --git a/tests/test_hyf.mojo b/tests/test_hyf.mojo
@@ -447,10 +447,7 @@ def test_capabilities_output_reflects_registry_truth_for_all_business_capabiliti
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["assisted_backend_available"].bool_value(), False)
assert_equal(
entry["deterministic_execution"].string_value(),
"enabled" if capability.deterministic_enabled else "disabled",
@@ -469,6 +466,20 @@ def test_capabilities_output_reflects_registry_truth_for_all_business_capabiliti
else:
assert_true(not _has_key(entry, "disabled_reason"))
+ assert_equal(
+ output["assisted_backend_capabilities"][0]["id"].string_value(),
+ "hyf_assistd",
+ )
+ assert_equal(
+ output["assisted_backend_capabilities"][0]["state"].string_value(),
+ "disabled_by_runtime_config",
+ )
+ assert_equal(
+ output["assisted_backend_capabilities"][0]["backend_kind"]
+ .string_value(),
+ "fake",
+ )
+
def test_disabled_capability_returns_capability_disabled() raises:
var result = _dispatch(
diff --git a/tests/test_stdio_contract.mojo b/tests/test_stdio_contract.mojo
@@ -120,6 +120,17 @@ def test_status_reports_repo_local_runtime_truth() raises:
False,
)
assert_equal(
+ response["output"]["assist_bridge"]["state"]
+ .string_value(),
+ "disabled_by_runtime_config",
+ )
+ assert_equal(
+ response["output"]["backend_reachability"][
+ "assisted_backend"
+ ].string_value(),
+ "disabled_by_runtime_config",
+ )
+ assert_equal(
response["output"]["runtime"]["paths"][
"diagnostics_dir"
].string_value(),
@@ -269,7 +280,18 @@ def test_status_loads_valid_runtime_config_truthfully() raises:
response["output"]["execution_mode_request_behavior"][
"assisted"
].string_value(),
- "backend_unavailable",
+ "bridge_unavailable",
+ )
+ assert_equal(
+ response["output"]["assist_bridge"]["state"]
+ .string_value(),
+ "unavailable",
+ )
+ assert_equal(
+ response["output"]["backend_reachability"][
+ "assisted_backend"
+ ].string_value(),
+ "unavailable",
)
assert_equal(
response["output"]["runtime"]["config"][
@@ -368,6 +390,11 @@ def test_status_reports_invalid_runtime_config_without_crashing() raises:
"disabled_by_runtime_config",
)
assert_equal(
+ response["output"]["assist_bridge"]["state"]
+ .string_value(),
+ "disabled_by_runtime_config",
+ )
+ assert_equal(
response["output"]["runtime"]["config"][
"artifact_present"
].bool_value(),
@@ -405,6 +432,50 @@ def test_status_reports_invalid_runtime_config_without_crashing() raises:
)
+def test_capabilities_reports_configured_fake_bridge_truthfully() 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'
+ )
+ with ScopedEnvVar(HYF_PATHS_PROFILE_ENV, "repo_local"):
+ with ScopedEnvVar(HYF_PATHS_REPO_LOCAL_ROOT_ENV, temp_dir):
+ var response = run_stdio_entrypoint(
+ "src/main.mojo",
+ load_scenario_request_json("scenarios/capabilities_ok.json"),
+ "--config",
+ startup_config_path.__fspath__(),
+ )
+
+ assert_true(response["ok"].bool_value())
+ assert_equal(
+ response["output"]["business_capabilities"][0][
+ "assisted_execution"
+ ].string_value(),
+ "bridge_unavailable",
+ )
+ assert_equal(
+ response["output"]["assisted_backend_capabilities"][0][
+ "id"
+ ].string_value(),
+ "hyf_assistd",
+ )
+ assert_equal(
+ response["output"]["assisted_backend_capabilities"][0][
+ "state"
+ ].string_value(),
+ "unavailable",
+ )
+ assert_equal(
+ response["output"]["assisted_backend_capabilities"][0][
+ "backend_kind"
+ ].string_value(),
+ "fake",
+ )
+
+
def test_status_reports_configured_but_deferred_custody_truthfully() raises:
with TemporaryDirectory() as temp_dir:
var identity_dir = Path(temp_dir) / "secrets" / "services" / "hyf"