code wiki / (root) / nx_register_gate.nx

nx_register_gate.nx source

↩ module page · 110 lines · 4699 B

1// nx_register_gate.nx -- REFEREE for WRITING rung W-ING-3 (nx_register). 2// 3// [T1] SFW: below-threshold score routes to the SFW lane (0). 4// [T2] EXPLICIT + governance OK: at/above threshold + age+consent+locale -> the 5// local-LLM explicit lane (1). 6// [T3] NEG-CONTROL governance non-bypass: same explicit score, but age OR consent 7// OR locale failing -> REFUSE (2). Explicit content cannot skip the gate. 8// [T4] NEG-CONTROL whole-word: "graphical" must NOT score as "graphic". 9// [T5] NEG-CONTROL no over-routing: benign text stays SFW even with governance OK. 10// 11// Lexicon (DATA, benign proxy): calm=1 heated=3 graphic=5 ; threshold=5. 12// 13// Evidence -> stdout + knowledge/status/register_gate.log. Exit 0/1. 14// Sovereign x86_64. license_tier: ORIGINAL 15import "nx_syscalls_x86_64.nx" 16import "nx_register.nx" 17 18func gp(logfd: i64, s: *u8) -> i64 { 19 var n: i64 = 0 20 while s[n] != (0 as u8) { n = n + 1 } 21 sys_write(1, s, n) 22 if logfd > 0 { sys_write(logfd, s, n) } 23 return 0 24} 25func gn(logfd: i64, v: i64) -> i64 { 26 var m: i64 = v 27 if m < 0 { 28 sys_write(1, "-\x00" as *u8, 1) 29 if logfd > 0 { sys_write(logfd, "-\x00" as *u8, 1) } 30 m = 0 - m 31 } 32 let bb: *u8 = sys_mmap(32) 33 let t: *u8 = sys_mmap(32) 34 var k: i64 = 0 35 if m == 0 { t[0] = 48 as u8; k = 1 } 36 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 37 var i: i64 = 0 38 while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } 39 sys_write(1, bb, k) 40 if logfd > 0 { sys_write(logfd, bb, k) } 41 return 0 42} 43func slen(s: *u8) -> i64 { 44 var n: i64 = 0 45 while s[n] != (0 as u8) { n = n + 1 } 46 return n 47} 48func pr_kv(logfd: i64, label: *u8, got: i64, exp: i64) -> i64 { 49 gp(logfd, label) 50 gp(logfd, " got=\x00" as *u8); gn(logfd, got) 51 gp(logfd, " exp=\x00" as *u8); gn(logfd, exp) 52 if got == exp { gp(logfd, " OK\n\x00" as *u8); return 1 } 53 gp(logfd, " FAIL\n\x00" as *u8) 54 return 0 55} 56 57func main() -> i64 { 58 let logfd: i64 = sys_openat_append("knowledge/status/register_gate.log\x00" as *u8, 0x1a4) 59 gp(logfd, "REGISTER-GATE W-ING-3 (register classify + route + governance)\n\x00" as *u8) 60 gp(logfd, " routes: 0=SFW-lane 1=EXPLICIT-lane 2=REFUSE ; threshold=5\n\x00" as *u8) 61 62 let terms: *u8 = "calm\x00heated\x00graphic\x00" as *u8 63 let w: *i64 = sys_mmap(64) as *i64 64 w[0] = 1 // calm 65 w[1] = 3 // heated 66 w[2] = 5 // graphic 67 let thr: i64 = 5 68 var ok: i64 = 1 69 70 // ---- T1: SFW ---- 71 gp(logfd, " [T1] SFW text \"It was a calm evening.\"\n\x00" as *u8) 72 let sfw: *u8 = "It was a calm evening.\x00" as *u8 73 let s1: i64 = rg_score(sfw, 0, slen(sfw), terms, w, 3) 74 if pr_kv(logfd, " score\x00" as *u8, s1, 1) == 0 { ok = 0 } 75 if pr_kv(logfd, " route(gov ok)\x00" as *u8, rg_decision(s1, thr, 1, 1, 1), 0) == 0 { ok = 0 } 76 77 // ---- T2: EXPLICIT register, governance OK -> local lane ---- 78 gp(logfd, " [T2] explicit-register text \"The graphic and heated moment.\"\n\x00" as *u8) 79 let ex: *u8 = "The graphic and heated moment.\x00" as *u8 80 let s2: i64 = rg_score(ex, 0, slen(ex), terms, w, 3) 81 if pr_kv(logfd, " score\x00" as *u8, s2, 8) == 0 { ok = 0 } // 5 + 3 82 if pr_kv(logfd, " route(age1,con1,loc1)\x00" as *u8, rg_decision(s2, thr, 1, 1, 1), 1) == 0 { ok = 0 } 83 84 // ---- T3: NEG-CONTROL governance non-bypass ---- 85 gp(logfd, " [T3] NEG-CONTROL governance (explicit score, gate fails -> REFUSE)\n\x00" as *u8) 86 if pr_kv(logfd, " age fail\x00" as *u8, rg_decision(s2, thr, 0, 1, 1), 2) == 0 { ok = 0 } 87 if pr_kv(logfd, " consent fail\x00" as *u8, rg_decision(s2, thr, 1, 0, 1), 2) == 0 { ok = 0 } 88 if pr_kv(logfd, " locale fail\x00" as *u8, rg_decision(s2, thr, 1, 1, 0), 2) == 0 { ok = 0 } 89 90 // ---- T4: NEG-CONTROL whole-word ---- 91 gp(logfd, " [T4] NEG-CONTROL whole-word (graphical != graphic)\n\x00" as *u8) 92 let wn: *u8 = "The graphical interface looked calm.\x00" as *u8 93 let s4: i64 = rg_score(wn, 0, slen(wn), terms, w, 3) 94 if pr_kv(logfd, " score (calm only)\x00" as *u8, s4, 1) == 0 { ok = 0 } // graphic NOT counted 95 96 // ---- T5: NEG-CONTROL no over-routing ---- 97 gp(logfd, " [T5] NEG-CONTROL no over-routing (benign stays SFW under gov-ok)\n\x00" as *u8) 98 if pr_kv(logfd, " route\x00" as *u8, rg_decision(s4, thr, 1, 1, 1), 0) == 0 { ok = 0 } 99 100 if ok == 1 { 101 gp(logfd, "REGISTER-GATE result=ALL-PASS verdict=GREEN\n\x00" as *u8) 102 if logfd > 0 { sys_close(logfd) } 103 sys_exit(0) 104 return 0 105 } 106 gp(logfd, "REGISTER-GATE result=FAIL verdict=RED\n\x00" as *u8) 107 if logfd > 0 { sys_close(logfd) } 108 sys_exit(1) 109 return 1 110}