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 )