assisted_runtime.mojo (5778B)
1 from std.collections import List 2 3 from json import Value, loads 4 5 from hyf_assist.contract import ( 6 AssistedRuntimeStatus, 7 assisted_runtime_contract_version, 8 assisted_runtime_supported_business_capabilities, 9 provider_runtime_id, 10 ) 11 from hyf_runtime.config import ( 12 HyfLoadedRuntimeConfig, 13 assisted_runtime_configured, 14 assisted_execution_enabled, 15 ) 16 from hyf_provider.config import ( 17 MaxLocalProviderConfig, 18 max_local_provider_config_from_runtime, 19 ) 20 from hyf_provider.max_local import max_local_provider_status 21 22 23 def _control_route_provider_config( 24 config: MaxLocalProviderConfig, 25 ) -> MaxLocalProviderConfig: 26 var capped = config.copy() 27 if capped.request_timeout_ms > 500: 28 capped.request_timeout_ms = 500 29 return capped^ 30 31 32 def _base_status( 33 configured: Bool, 34 transport: String, 35 endpoint: String, 36 backend_kind: String, 37 provider: String, 38 route: String, 39 model: String, 40 reachable: Bool, 41 state: String, 42 reason: String, 43 ) -> AssistedRuntimeStatus: 44 return AssistedRuntimeStatus( 45 id=provider_runtime_id(), 46 kind="provider_runtime", 47 contract_version=assisted_runtime_contract_version(), 48 transport=String(transport), 49 endpoint=String(endpoint), 50 backend_kind=String(backend_kind), 51 provider=String(provider), 52 route=String(route), 53 model=String(model), 54 configured=configured, 55 reachable=reachable, 56 state=String(state), 57 reason=String(reason), 58 fallback_contract="deterministic_baseline_preserved", 59 supported_business_capabilities=assisted_runtime_supported_business_capabilities(), 60 ) 61 62 63 def resolve_assisted_runtime_status( 64 config: HyfLoadedRuntimeConfig, 65 ) -> AssistedRuntimeStatus: 66 if config.load_state == "invalid": 67 return _base_status( 68 configured=False, 69 transport="deferred", 70 endpoint="", 71 backend_kind="max_local", 72 provider="max_local", 73 route="", 74 model="", 75 reachable=False, 76 state="invalid_config", 77 reason="invalid_config", 78 ) 79 80 if not assisted_execution_enabled(config): 81 return _base_status( 82 configured=False, 83 transport="deferred", 84 endpoint="", 85 backend_kind="deferred", 86 provider="", 87 route="", 88 model="", 89 reachable=False, 90 state="disabled_by_runtime_config", 91 reason="disabled_by_runtime_config", 92 ) 93 94 if not assisted_runtime_configured(config): 95 return _base_status( 96 configured=False, 97 transport="deferred", 98 endpoint="", 99 backend_kind="deferred", 100 provider="", 101 route="", 102 model="", 103 reachable=False, 104 state="unconfigured", 105 reason="not_checked", 106 ) 107 108 try: 109 var provider_config = max_local_provider_config_from_runtime(config) 110 var status = max_local_provider_status( 111 _control_route_provider_config(provider_config) 112 ) 113 return _base_status( 114 configured=True, 115 transport="http", 116 endpoint=String(provider_config.health_url), 117 backend_kind=String(status.backend_kind), 118 provider=String(status.provider), 119 route=String(status.route), 120 model=String(status.model), 121 reachable=status.reachable, 122 state=String(status.state), 123 reason=String(status.reason), 124 ) 125 except e: 126 return _base_status( 127 configured=True, 128 transport="http", 129 endpoint="", 130 backend_kind="max_local", 131 provider="max_local", 132 route="", 133 model="", 134 reachable=False, 135 state="invalid_config", 136 reason="invalid_config", 137 ) 138 139 140 def assisted_execution_state_for_capability( 141 status: AssistedRuntimeStatus, capability_id: String 142 ) -> String: 143 if capability_id != "query_rewrite": 144 return "unsupported_capability" 145 if status.state == "disabled_by_runtime_config": 146 return "disabled_by_runtime_config" 147 return status.state 148 149 150 def assisted_backend_available_for_capability( 151 status: AssistedRuntimeStatus, capability_id: String 152 ) -> Bool: 153 return capability_id == "query_rewrite" and status.state == "ready" 154 155 156 def serialize_assisted_runtime_status_value( 157 status: AssistedRuntimeStatus, 158 ) raises -> Value: 159 var value = loads("{}") 160 value.set("id", Value(String(status.id))) 161 value.set("kind", Value(String(status.kind))) 162 value.set("contract_version", Value(status.contract_version)) 163 value.set("transport", Value(String(status.transport))) 164 if status.endpoint != "": 165 value.set("endpoint", Value(String(status.endpoint))) 166 value.set("backend_kind", Value(String(status.backend_kind))) 167 value.set("configured", Value(status.configured)) 168 value.set("reachable", Value(status.reachable)) 169 value.set("state", Value(String(status.state))) 170 value.set("reason", Value(String(status.reason))) 171 if status.provider != "": 172 value.set("provider", Value(String(status.provider))) 173 if status.route != "": 174 value.set("route", Value(String(status.route))) 175 if status.model != "": 176 value.set("model", Value(String(status.model))) 177 value.set("fallback_contract", Value(String(status.fallback_contract))) 178 179 var capabilities = loads("[]") 180 for capability in status.supported_business_capabilities: 181 capabilities.append(Value(String(capability))) 182 value.set("supported_business_capabilities", capabilities) 183 return value^