hyf

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

internal_error_stdio_main.mojo (2031B)


      1 from std.io.io import _fdopen
      2 from std.sys import stdin
      3 
      4 from hyf_core.metadata import hyf_protocol_version
      5 from hyf_runtime.diagnostics import effective_diagnostics_dir_for_runtime_paths
      6 from hyf_runtime.startup import resolve_startup_context_from_process
      7 from hyf_stdio.codec import (
      8     decode_request,
      9     encode_error,
     10     extract_request_correlation,
     11 )
     12 from hyf_stdio.envelope import WireErrorResponse
     13 from hyf_stdio.errors import internal_error, invalid_request_error
     14 from hyf_stdio.server import (
     15     _emit_internal_diagnostic,
     16 )
     17 
     18 
     19 def _read_request_line() raises -> String:
     20     with _fdopen["r"](stdin) as input_file:
     21         return input_file.readline()
     22 
     23 
     24 def _simulated_internal_error_detail() -> String:
     25     return "simulated test-only status builder failure"
     26 
     27 
     28 def main() raises:
     29     if stdin.isatty():
     30         return
     31 
     32     var line = _read_request_line()
     33     var startup_context = resolve_startup_context_from_process()
     34     try:
     35         var request = decode_request(line)
     36         var decoded = request^
     37         _emit_internal_diagnostic(
     38             String(decoded.request_id),
     39             decoded.trace_id,
     40             String(decoded.capability),
     41             _simulated_internal_error_detail(),
     42             effective_diagnostics_dir_for_runtime_paths(startup_context.paths),
     43         )
     44         print(
     45             encode_error(
     46                 WireErrorResponse(
     47                     version=hyf_protocol_version(),
     48                     request_id=String(decoded.request_id),
     49                     trace_id=decoded.trace_id,
     50                     error=internal_error(),
     51                 )
     52             )
     53         )
     54     except e:
     55         var correlation = extract_request_correlation(line)
     56         print(
     57             encode_error(
     58                 WireErrorResponse(
     59                     version=hyf_protocol_version(),
     60                     request_id=correlation.request_id,
     61                     trace_id=correlation.trace_id,
     62                     error=invalid_request_error(String(e)),
     63                 )
     64             )
     65         )