hyf

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

commit 86f34187bb1808949a9de18b40d2d8f8bf1fe475
parent 146ecee3cc2ed21587f066cad168dd6c46d053ae
Author: triesap <tyson@radroots.org>
Date:   Mon, 21 Sep 2026 14:00:29 +0000

core: prepare gated descriptors for new operations

Diffstat:
Msrc/hyf_core/capabilities/registry.mojo | 34++++++++++++++++++++++++++++++++++
Mtests/test_hyf.mojo | 16++++++++++++++++
2 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/src/hyf_core/capabilities/registry.mojo b/src/hyf_core/capabilities/registry.mojo @@ -228,3 +228,37 @@ def capability_exposure( and provider_ready ), ) + + +@fieldwise_init +struct GatedOperationDescriptor(Copyable, Movable): + var id: String + var requires_assistance: Bool + var exposed: Bool + + +def gated_operation_descriptors() -> List[GatedOperationDescriptor]: + var descriptors = List[GatedOperationDescriptor]() + descriptors.append( + GatedOperationDescriptor( + id="farm_update.interpret", requires_assistance=False, exposed=False + ) + ) + descriptors.append( + GatedOperationDescriptor( + id="buyer_request.interpret", requires_assistance=False, exposed=False + ) + ) + descriptors.append( + GatedOperationDescriptor( + id="buyer_request.match", requires_assistance=False, exposed=False + ) + ) + return descriptors^ + + +def gated_operation_is_exposed(operation: String, exposure_enabled: Bool) -> Bool: + for descriptor in gated_operation_descriptors(): + if descriptor.id == operation: + return exposure_enabled + return False diff --git a/tests/test_hyf.mojo b/tests/test_hyf.mojo @@ -1350,3 +1350,19 @@ def test_capability_exposure_separates_support_permission_readiness() raises: assert_true(fully_ready.exposed) var permission_denied = capability_exposure("query_rewrite", True, False, True) assert_true(not permission_denied.exposed) + + +from hyf_core.capabilities.registry import ( + gated_operation_descriptors, + gated_operation_is_exposed, +) + + +def test_gated_operation_descriptors_are_prepared_not_exposed() raises: + var descriptors = gated_operation_descriptors() + assert_equal(len(descriptors), 3) + for descriptor in descriptors: + assert_true(not descriptor.exposed) + assert_true(not gated_operation_is_exposed("farm_update.interpret", False)) + assert_true(gated_operation_is_exposed("buyer_request.match", True)) + assert_true(not gated_operation_is_exposed("query_rewrite", True))