hyf

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

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^