code wiki / _hdl_build / nx_build_govern.nx
nx_build_govern.nx source
↩ module page · 104 lines · 5848 B
1// nx_build_govern.nx -- R-LIVE-1: first LIVE adoption of backend-build governance. Unlike the hermetic
2// gates, this runs against the REAL tree: it (1) registers the organs WE built this session into a
3// PERSISTENT build-registry (knowledge/registry/build_registry.log, the Librarian SSOT; additive framed
4// store, idempotent via latest-wins), and (2) runs a REAL bypass census of runtime/_hdl_build -- total
5// nx_*.nx organs vs how many are registered -> the honest MIGRATION SURFACE (the unregistered ones, exactly
6// like the Publisher's "real bypassers" finding). Reuses br_* from nx_build_registry_lib.
7// Verdict GREEN iff the session organs registered (distinct >= the count we submitted). license_tier: ORIGINAL expect_exit: 0
8import "nx_build_reg_sov.nx"
9import "nx_syscalls.nx"
10const K_MAGIC_8192: i64 = 8192
11const K_MAGIC_65536: i64 = 65536
12
13func gp(s: *u8) -> i64 { let n: i64 = br2_len(s); sys_write(1, s, n); return 0 }
14func gpn(v: i64) -> i64 {
15 let bb: *u8 = sys_mmap(28); var m: i64 = v
16 if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m }
17 let t: *u8 = sys_mmap(28); var k: i64 = 0
18 if m == 0 { t[0] = 48 as u8; k = 1 }
19 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
20 var i: i64 = 0; while i < k { bb[i] = t[k - 1 - i]; i = i + 1 }
21 sys_write(1, bb, k); return 0
22}
23func gv_getdents(fd: i64, buf: *u8, count: i64) -> i64 { return __syscall(217, fd, buf, count, 0, 0, 0) }
24// starts with "nx_" and ends ".nx"
25func gv_isorgan(name: *u8) -> i64 {
26 if name[0] != (110 as u8) { return 0 } // n
27 if name[1] != (120 as u8) { return 0 } // x
28 if name[2] != (95 as u8) { return 0 } // _
29 let n: i64 = br2_len(name)
30 if n < 4 { return 0 }
31 if name[n - 3] != (46 as u8) { return 0 } // .
32 if name[n - 2] != (110 as u8) { return 0 } // n
33 if name[n - 1] != (120 as u8) { return 0 } // x
34 return 1
35}
36func in_set(name: *u8, names: *i64, cnt: i64) -> i64 { var k: i64 = 0; while k < cnt { if br2_streq(name, names[k] as *u8) == 1 { return 1 } k = k + 1 } return 0 }
37
38func main() -> i64 {
39 gp("=== nx_build_govern: R-LIVE-1 live adoption (real registry + real bypass census) ===\n" as *u8)
40 let reg: *u8 = "knowledge/store/build_registry" as *u8
41
42 // (1) register the organs WE built this session (idempotent; basename WITH .nx to match the disk walk).
43 br2_submit(reg, "nx_ws_active_board.nx" as *u8, "WMS" as *u8, "BUILT" as *u8)
44 br2_submit(reg, "nx_chaos_logistic_gate.nx" as *u8, "SIM" as *u8, "BUILT" as *u8)
45 br2_submit(reg, "nx_dpendulum_gate.nx" as *u8, "SIM" as *u8, "BUILT" as *u8)
46 br2_submit(reg, "nx_build_gov_census.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
47 br2_submit(reg, "nx_build_reg_sov.nx" as *u8, "GOV-LIB" as *u8, "BUILT" as *u8)
48 br2_submit(reg, "nx_build_reg_sov_gate.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
49 br2_submit(reg, "nx_build_bypass_gate.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
50 br2_submit(reg, "nx_build_role_gate.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
51 br2_submit(reg, "nx_build_govern.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
52 br2_submit(reg, "nx_build_lineage_gate.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
53 br2_submit(reg, "nx_build_nobypass_gate.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
54 br2_submit(reg, "nx_build_rooted_gate.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
55 br2_submit(reg, "nx_build_imports_gate.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
56 br2_submit(reg, "nx_build_autoroot_gate.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
57 br2_submit(reg, "nx_build_evidence_gate.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
58 br2_submit(reg, "nx_genealogy_tree.nx" as *u8, "GOV-LIB" as *u8, "BUILT" as *u8)
59 br2_submit(reg, "nx_cap_gap_sov.nx" as *u8, "GOV-PM" as *u8, "BUILT" as *u8)
60 let submitted: i64 = 17
61
62 let d: i64 = br2_distinct(reg)
63 gp(" registered " as *u8); gpn(submitted); gp(" session organs -> distinct in registry = " as *u8); gpn(d)
64 gp(" (persistent: sovereign seg_store knowledge/store/build_registry)\n" as *u8)
65
66 // (2) REAL bypass census of runtime/_hdl_build
67 let dir: *u8 = "runtime/_hdl_build" as *u8
68 let regnames: *i64 = sys_mmap(8 * K_MAGIC_8192) as *i64
69 let regpars: *i64 = sys_mmap(8 * K_MAGIC_8192) as *i64
70 let regn: i64 = br2_enum(reg, regnames, regpars, K_MAGIC_8192)
71 let fd: i64 = sys_openat_rd(dir)
72 var total: i64 = 0
73 var registered: i64 = 0
74 if fd >= 0 {
75 let gbuf: *u8 = sys_mmap(K_MAGIC_65536)
76 var nread: i64 = gv_getdents(fd, gbuf, K_MAGIC_65536)
77 while nread > 0 {
78 var off: i64 = 0
79 while off < nread {
80 let reclen: i64 = (gbuf[off + 16] as i64) | ((gbuf[off + 17] as i64) << 8)
81 if reclen <= 0 { off = nread } else {
82 let name: *u8 = ((gbuf as i64) + off + 19) as *u8
83 if gv_isorgan(name) == 1 {
84 total = total + 1
85 if in_set(name, regnames, regn) == 1 { registered = registered + 1 }
86 }
87 off = off + reclen
88 }
89 }
90 nread = gv_getdents(fd, gbuf, K_MAGIC_65536)
91 }
92 sys_close(fd)
93 }
94 let bypass: i64 = total - registered
95 gp(" runtime/_hdl_build census: total nx organs=" as *u8); gpn(total)
96 gp(" registered=" as *u8); gpn(registered)
97 gp(" BYPASS(unregistered)=" as *u8); gpn(bypass); gp("\n" as *u8)
98 gp(" -> bypass = the honest migration surface; live adoption = each organ's build calls br_submit (coordinated, additive).\n" as *u8)
99
100 gp(" verdict=" as *u8)
101 if d >= submitted { gp("GREEN (session organs are now registered in the live SSOT)\n" as *u8); sys_exit(0); return 0 }
102 gp("RED (registration did not persist)\n" as *u8)
103 sys_exit(1); return 1
104}