capabilities.mojo (3313B)
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("control_routes", _string_array(control_routes)) 43 44 var capabilities = loads("[]") 45 for capability in canonical_business_capabilities(): 46 var value = loads("{}") 47 value.set("id", Value(String(capability.id))) 48 value.set("kind", Value("business")) 49 value.set( 50 "deterministic_execution", 51 Value("enabled") if capability.deterministic_enabled else Value( 52 "disabled" 53 ), 54 ) 55 value.set( 56 "implementation_status", 57 Value("implemented") if capability.implemented else ( 58 Value( 59 "not_implemented" 60 ) if capability.deterministic_enabled else Value("disabled") 61 ), 62 ) 63 value.set("callable", Value(capability.callable)) 64 value.set("implemented", Value(capability.implemented)) 65 value.set( 66 "assisted_execution", 67 Value( 68 assisted_execution_state_for_capability( 69 assist_runtime, capability.id 70 ) 71 ), 72 ) 73 value.set( 74 "assisted_backend_available", 75 Value( 76 assisted_backend_available_for_capability( 77 assist_runtime, capability.id 78 ) 79 ), 80 ) 81 if capability.disabled_reason != "": 82 value.set( 83 "disabled_reason", Value(String(capability.disabled_reason)) 84 ) 85 capabilities.append(value) 86 87 output.set("business_capabilities", capabilities) 88 var assisted_runtime_capabilities = loads("[]") 89 assisted_runtime_capabilities.append( 90 serialize_assisted_runtime_status_value(assist_runtime) 91 ) 92 output.set( 93 "assisted_runtime_capabilities", assisted_runtime_capabilities.copy() 94 ) 95 output.set("provider_runtime_capabilities", assisted_runtime_capabilities) 96 output.set( 97 "request_context_contract", 98 build_request_context_contract_value(), 99 ) 100 return output^