hyf

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

meta.mojo (2683B)


      1 from std.collections import List
      2 
      3 from json import Value, loads
      4 
      5 from hyf_core.provenance import CoreResponseMeta, ExecutionProvenance
      6 
      7 
      8 def _string_array(items: List[String]) raises -> Value:
      9     var array = loads("[]")
     10     for item in items:
     11         array.append(Value(String(item)))
     12     return array^
     13 
     14 
     15 def _serialize_provenance(provenance: ExecutionProvenance) raises -> Value:
     16     var value = loads("{}")
     17     value.set("kind", Value(String(provenance.kind)))
     18     value.set("signal_tags", _string_array(provenance.signal_tags))
     19 
     20     var source_refs = loads("[]")
     21     for source_ref in provenance.source_refs:
     22         var ref_value = loads("{}")
     23         ref_value.set("source_kind", Value(String(source_ref.source_kind)))
     24         ref_value.set("source_ref", Value(String(source_ref.source_ref)))
     25         source_refs.append(ref_value)
     26     value.set("source_refs", source_refs)
     27 
     28     if provenance.fallback:
     29         var fallback = provenance.fallback.value().copy()
     30         var fallback_value = loads("{}")
     31         fallback_value.set(
     32             "fallback_kind", Value(String(fallback.fallback_kind))
     33         )
     34         fallback_value.set("reason", Value(String(fallback.reason)))
     35         value.set("fallback", fallback_value)
     36     else:
     37         value.set("fallback", Value(None))
     38 
     39     if provenance.evidence_set_id:
     40         value.set(
     41             "evidence_set_id", Value(String(provenance.evidence_set_id.value()))
     42         )
     43     else:
     44         value.set("evidence_set_id", Value(None))
     45 
     46     return value^
     47 
     48 
     49 def serialize_core_response_meta(meta: CoreResponseMeta) raises -> Value:
     50     var value = loads("{}")
     51     value.set("execution_mode", Value(String(meta.execution_mode)))
     52     value.set("backend", Value(String(meta.backend)))
     53     if meta.provider:
     54         value.set("provider", Value(String(meta.provider.value())))
     55     if meta.route:
     56         value.set("route", Value(String(meta.route.value())))
     57     if meta.model:
     58         value.set("model", Value(String(meta.model.value())))
     59     if meta.latency_ms:
     60         value.set("latency_ms", Value(meta.latency_ms.value()))
     61     if meta.schema_version:
     62         value.set("schema_version", Value(meta.schema_version.value()))
     63     if meta.prompt_version:
     64         value.set(
     65             "prompt_version", Value(String(meta.prompt_version.value()))
     66         )
     67     if meta.fallback_kind:
     68         value.set(
     69             "fallback_kind", Value(String(meta.fallback_kind.value()))
     70         )
     71     if meta.fallback_reason:
     72         value.set(
     73             "fallback_reason", Value(String(meta.fallback_reason.value()))
     74         )
     75     if meta.provenance:
     76         value.set("provenance", _serialize_provenance(meta.provenance.value()))
     77     return value^