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