code wiki / _hdl_build / nx_eval_triangle_register.nx
nx_eval_triangle_register.nx source
↩ module page · 77 lines · 4295 B
1// nx_eval_triangle_register.nx -- GOVERNED registration of the EVAL TRIANGULATION platform rung 1.
2// ENGINEER verdict mechanical: re-run the KAT (6 verdict classes incl. last-wins + operator-override)
3// and byte-compare stdout to knowledge/status/eval_kat_expected.txt. license_tier: ORIGINAL
4import "nx_cap_register.nx"
5import "nx_pm_review_log.nx"
6import "nx_syscalls.nx"
7
8func etr_run3(path: *u8, a1: *u8, a2: *u8, a3: *u8, outpath: *u8) -> i64 {
9 let pid: i64 = sys_fork()
10 if pid == 0 {
11 let ofd: i64 = sys_openat_wr(outpath, 0x1a4)
12 if ofd >= 0 { sys_dup3(ofd, 1, 0) }
13 let argv: *i64 = sys_mmap(48) as *i64
14 argv[0] = path as i64
15 argv[1] = a1 as i64
16 argv[2] = a2 as i64
17 argv[3] = a3 as i64
18 argv[4] = 0
19 let envp: *i64 = sys_mmap(16) as *i64
20 envp[0] = "PATH=/usr/bin:/bin" as *u8 as i64
21 envp[1] = 0
22 sys_execve(path, argv, envp)
23 sys_exit(127)
24 }
25 let st: *i64 = sys_mmap(16) as *i64
26 sys_wait4(pid, st, 0)
27 let sig: i64 = st[0] & 0x7f
28 if sig != 0 { return 128 + sig }
29 return (st[0] >> 8) & 0xff
30}
31
32func etr_files_eq(pa: *u8, pb: *u8) -> i64 {
33 let la: *i64 = sys_mmap(8) as *i64
34 let ba: *u8 = sys_read_file(pa, la)
35 let lb: *i64 = sys_mmap(8) as *i64
36 let bb: *u8 = sys_read_file(pb, lb)
37 if (ba as i64) == 0 { return 0 }
38 if (bb as i64) == 0 { return 0 }
39 if la[0] != lb[0] { return 0 }
40 var i: i64 = 0
41 while i < la[0] { if ba[i] != bb[i] { return 0 } i = i + 1 }
42 if la[0] < 10 { return 0 }
43 return 1
44}
45
46func main() -> i64 {
47 let rc: i64 = etr_run3("/tmp/_eval_triangle_authored.sov.elf" as *u8, "knowledge/status/eval_kat_lanes.log" as *u8, "700" as *u8, "/tmp/eval_triangle_kat.log" as *u8, "/tmp/etr_kat_out.txt" as *u8)
48 let eq: i64 = etr_files_eq("/tmp/etr_kat_out.txt" as *u8, "knowledge/status/eval_kat_expected.txt" as *u8)
49 cr_w(1, "ENGINEER: eval-triangle KAT exit=" as *u8); cr_wn(1, rc)
50 cr_w(1, " byte-exact=" as *u8); cr_wn(1, eq); cr_w(1, " (need 0 and 1)\n" as *u8)
51
52 var exit_ok: i64 = 0
53 if rc == 0 { if eq == 1 { exit_ok = 1 } }
54 let eng: i64 = ig_engineer(1, 1, 1, exit_ok)
55 let cat: i64 = sys_openat_rd("knowledge/CAPABILITY_CATALOG.md" as *u8)
56 var documented: i64 = 0
57 if cat >= 0 { documented = ig_documented(1, 1); sys_close(cat) }
58 let council: i64 = ig_council(eng, 1, 1, 2)
59 let decision: i64 = ig_decision(eng, council, documented)
60
61 let pm: i64 = pm_open("/tmp/nishi_pm_review.log" as *u8)
62 if decision == IG_INGEST {
63 pm_deliverable(pm, "eldermig/eval" as *u8, "nx_eval_triangle" as *u8, "EVAL rung 1 CLOSED: Builder-authored triangulation (M=math measurements, V=local model, O=operator flags -> TRI-GOOD/BAD/OPERATOR-OVERRIDE/SPLIT-MODEL/SPLIT-MEASURED/INCOMPLETE), KAT 6/6 byte-exact; pure-Nishi append-only log storage per the info-mgmt plan (NO SQL, NO py); threshold+paths as argv" as *u8)
64 }
65 pm_gap(pm, "eldermig/eval" as *u8, "NEXT-RUNG" as *u8, "wire the three real lanes" as *u8, "M lane = nx_image_grade_v2 + nx_img_forensics (to build); V lane = local VLM via the team's own HTTP client to Elder svc-quality/svc-vlm-observer (model as oracle, sovereign transport); O lane = operator flag UI writing EVAL lines; then TRI-OPERATOR-OVERRIDE rows become the pattern-recognition corpus" as *u8)
66 sys_close(pm)
67 cr_w(1, "GOVERNED decision=" as *u8); cr_wn(1, decision); cr_w(1, " (1=INGEST); PM log updated\n" as *u8)
68
69 if decision != IG_INGEST { sys_exit(1) }
70 if cr_can_register(2, 2, 6, decision) != 1 { cr_w(1, "REFUSED\n" as *u8); sys_exit(1) }
71 let fd: i64 = sys_openat_append("/tmp/nishi_cap_registry.log" as *u8, 0x1a4)
72 cr_write_entry(fd, 225, 2, "GEN EVAL-TRIANGLE rung1 -- Builder-authored (ma_emit_eval_triangle) triangulation evaluation platform: M(math)/V(local model)/O(operator flag) lanes -> pattern verdicts incl. TRI-OPERATOR-OVERRIDE (the learning signal); KAT 6/6 byte-exact; append-only Nishi log storage (knowledge/status/eval_triangle.log), NO SQL NO py; argv threshold/paths; next = wire real lanes (image_grade_v2 + forensics, VLM-as-oracle via own HTTP, operator flag writer)" as *u8, 2)
73 sys_close(fd)
74 cr_w(1, "CAPREG idx=225 REGISTERED\n" as *u8)
75 sys_exit(0)
76 return 0
77}