capabilities.mojo (3353B)
1 from std.collections import List 2 3 from json import Value, loads 4 5 from hyf_stdio.control.assisted_runtime import ( 6 assisted_backend_available_for_capability, 7 assisted_execution_state_for_capability, 8 resolve_assisted_runtime_status, 9 serialize_assisted_runtime_status_value, 10 ) 11 from hyf_core.capabilities.registry import canonical_business_capabilities 12 from hyf_runtime.startup import ( 13 RuntimeStartupContext, 14 resolve_startup_context_from_process, 15 ) 16 from hyf_stdio.control.request_context_contract import ( 17 build_request_context_contract_value, 18 ) 19 20 21 def _string_array(values: List[String]) raises -> Value: 22 var array = loads("[]") 23 for value in values: 24 array.append(Value(String(value))) 25 return array^ 26 27 28 def build_capabilities_output() raises -> Value: 29 return build_capabilities_output_with_runtime_context( 30 resolve_startup_context_from_process() 31 ) 32 33 34 def build_capabilities_output_with_runtime_context( 35 runtime_context: RuntimeStartupContext, 36 ) raises -> Value: 37 var output = loads("{}") 38 var assist_runtime = resolve_assisted_runtime_status(runtime_context.config) 39 var control_routes = List[String]() 40 control_routes.append("sys.status") 41 control_routes.append("sys.capabilities") 42 output.set( 43 "control_routes", _string_array(control_routes) 44 ) 45 46 var capabilities = loads("[]") 47 for capability in canonical_business_capabilities(): 48 var value = loads("{}") 49 value.set("id", Value(String(capability.id))) 50 value.set("kind", Value("business")) 51 value.set( 52 "deterministic_execution", 53 Value("enabled") 54 if capability.deterministic_enabled 55 else Value("disabled"), 56 ) 57 value.set( 58 "implementation_status", 59 Value("implemented") 60 if capability.implemented 61 else ( 62 Value("not_implemented") 63 if capability.deterministic_enabled 64 else Value("disabled") 65 ), 66 ) 67 value.set("callable", Value(capability.callable)) 68 value.set("implemented", Value(capability.implemented)) 69 value.set( 70 "assisted_execution", 71 Value( 72 assisted_execution_state_for_capability( 73 assist_runtime, capability.id 74 ) 75 ), 76 ) 77 value.set( 78 "assisted_backend_available", 79 Value( 80 assisted_backend_available_for_capability( 81 assist_runtime, capability.id 82 ) 83 ), 84 ) 85 if capability.disabled_reason != "": 86 value.set( 87 "disabled_reason", Value(String(capability.disabled_reason)) 88 ) 89 capabilities.append(value) 90 91 output.set("business_capabilities", capabilities) 92 var assisted_runtime_capabilities = loads("[]") 93 assisted_runtime_capabilities.append( 94 serialize_assisted_runtime_status_value(assist_runtime) 95 ) 96 output.set( 97 "assisted_runtime_capabilities", assisted_runtime_capabilities.copy() 98 ) 99 output.set( 100 "provider_runtime_capabilities", assisted_runtime_capabilities 101 ) 102 output.set( 103 "request_context_contract", 104 build_request_context_contract_value(), 105 ) 106 return output^