code wiki / _hdl_build / nx_browser_arc_status.nx
nx_browser_arc_status.nx source
↩ module page · 115 lines · 4822 B
1// nx_browser_arc_status.nx -- runner: the WARDEN's live browser-arc board. Reads the
2// Engineer's durable gate log, routes each open rung (B1-B5) through the RACI pipeline
3// (nx_browser_arc_pipeline) and reports stage + claude_touch per rung + the arc's
4// autonomy permil. Appends to knowledge/status/browser_arc.log (Archivist rule).
5// Run with CWD=nxc2/. Exit 0 unless a rung is RACI-BAD or REJECTED -- NEEDS_TUTOR is
6// an honest open state (the measured Claude dependency), not a failure.
7// Rung -> gate-row CONTRACT (a rung lands by adding the named test as a gate row):
8// B1-RECVHS-EXAMPLE -> nx_tls13_recv_hs_probe_test
9// B2-HTTPBIN-CH -> nx_tls13_ch_compat_test
10// B3-REAL-CSS-LAYOUT -> nx_css_layout_test
11// B4-P256-KEYSHARE -> nx_p256_keyshare_test
12// B5-PROG-JPEG -> nx_jpeg_progressive_test
13// license_tier: ORIGINAL
14import "nx_browser_arc_pipeline.nx"
15
16const BA_RUNGS: i64 = 5
17
18func main() -> i64 {
19 let rungs: *i64 = sys_mmap(8 * (BA_RUNGS + 1)) as *i64
20 rungs[0] = "B1-RECVHS-EXAMPLE\x00" as *u8 as i64
21 rungs[1] = "B2-HTTPBIN-CH\x00" as *u8 as i64
22 rungs[2] = "B3-REAL-CSS-LAYOUT\x00" as *u8 as i64
23 rungs[3] = "B4-P256-KEYSHARE\x00" as *u8 as i64
24 rungs[4] = "B5-PROG-JPEG\x00" as *u8 as i64
25
26 let rows: *i64 = sys_mmap(8 * (BA_RUNGS + 1)) as *i64
27 rows[0] = "row=nx_tls13_recv_hs_probe_test \x00" as *u8 as i64
28 rows[1] = "row=nx_tls13_ch_compat_test \x00" as *u8 as i64
29 rows[2] = "row=nx_css_layout_test \x00" as *u8 as i64
30 rows[3] = "row=nx_p256_keyshare_test \x00" as *u8 as i64
31 rows[4] = "row=nx_jpeg_progressive_test \x00" as *u8 as i64
32
33 // pattern coverage per rung: ALL novel today (TLS handshake probe, CH compat diff,
34 // CSS cascade/layout, P-256 keyshare+HRR, progressive JPEG are not among the 10
35 // emitter-covered shapes) -- the honest autonomy baseline this board makes visible.
36 let pats: *i64 = sys_mmap(8 * (BA_RUNGS + 1)) as *i64
37 pats[0] = 0; pats[1] = 0; pats[2] = 0; pats[3] = 0; pats[4] = 0
38
39 let lenp: *i64 = sys_mmap(8) as *i64
40 let buf: *u8 = sys_read_file("knowledge/status/browser_gate.log\x00" as *u8, lenp)
41 let blen: i64 = lenp[0]
42
43 let logfd: i64 = sys_openat_append("knowledge/status/browser_arc.log\x00" as *u8, 0x1a4)
44 var fdi: i64 = 0
45 while fdi < 2 {
46 var fd: i64 = 1
47 if fdi == 1 { fd = logfd }
48 if fd > 0 {
49 ba_fputs(fd, "BROWSER-ARC epoch=\x00" as *u8)
50 ba_fputn(fd, sys_now_realtime_sec())
51 ba_fputs(fd, " gate_log_bytes=\x00" as *u8)
52 ba_fputn(fd, blen)
53 ba_fputs(fd, "\n\x00" as *u8)
54 }
55 fdi = fdi + 1
56 }
57
58 var admitted: i64 = 0
59 var tutor: i64 = 0
60 var bad: i64 = 0
61 var ri: i64 = 0
62 while ri < BA_RUNGS {
63 var status: i64 = 0 - 1
64 if blen > 0 { status = ba_row_status(buf, blen, rows[ri] as *u8) }
65 let stage: i64 = ba_rung_stage(pats[ri], status)
66 let touch: i64 = bp_claude_touch(pats[ri])
67 if stage == BP_ADMITTED { admitted = admitted + 1 }
68 if stage == BP_NEEDS_TUTOR { tutor = tutor + 1 }
69 if stage == BP_RACI_BAD { bad = bad + 1 }
70 if stage == BP_REJECTED { bad = bad + 1 }
71 var fdj: i64 = 0
72 while fdj < 2 {
73 var fd: i64 = 1
74 if fdj == 1 { fd = logfd }
75 if fd > 0 {
76 ba_fputs(fd, "BROWSER-ARC rung=\x00" as *u8)
77 ba_fputs(fd, rungs[ri] as *u8)
78 ba_fputs(fd, " evidence=\x00" as *u8)
79 if status == 1 { ba_fputs(fd, "PASS\x00" as *u8) }
80 if status == 0 { ba_fputs(fd, "FAIL\x00" as *u8) }
81 if status < 0 { ba_fputs(fd, "ABSENT\x00" as *u8) }
82 ba_fputs(fd, " stage=\x00" as *u8)
83 ba_fputs(fd, ba_stage_name(stage))
84 ba_fputs(fd, " touch=\x00" as *u8)
85 ba_fputn(fd, touch)
86 ba_fputs(fd, "\n\x00" as *u8)
87 }
88 fdj = fdj + 1
89 }
90 ri = ri + 1
91 }
92
93 let permil: i64 = bp_autonomy_permil(pats, BA_RUNGS)
94 fdi = 0
95 while fdi < 2 {
96 var fd: i64 = 1
97 if fdi == 1 { fd = logfd }
98 if fd > 0 {
99 ba_fputs(fd, "BROWSER-ARC rungs=\x00" as *u8)
100 ba_fputn(fd, BA_RUNGS)
101 ba_fputs(fd, " admitted=\x00" as *u8)
102 ba_fputn(fd, admitted)
103 ba_fputs(fd, " tutor_pending=\x00" as *u8)
104 ba_fputn(fd, tutor)
105 ba_fputs(fd, " autonomy_permil=\x00" as *u8)
106 ba_fputn(fd, permil)
107 if bad == 0 { ba_fputs(fd, " verdict=ROUTED\n\x00" as *u8) }
108 if bad != 0 { ba_fputs(fd, " verdict=RACI-BAD\n\x00" as *u8) }
109 }
110 fdi = fdi + 1
111 }
112 if logfd > 0 { sys_close(logfd) }
113 if bad == 0 { return 0 }
114 return 1
115}