nx_atlas_sweep.nx source
↩ module page · 124 lines · 4860 B
1// nx_atlas_sweep.nx -- atlas-hygiene AUTO-SWEEP: judges EVERY real node in a plane, not hand-passed args.
2// Forks nx_store_put.elf to load a seg-store plane, parses each row, applies the confidence+provenance
3// guards to the node's OWN stored values, emits a per-node verdict + tally. Read-only (never-brick).
4// The guards run over the REAL graph automatically -- via fork-capture, no store-lib import needed.
5// argv: [plane-prefix] default knowledge/store/atlashyg- . license_tier: ORIGINAL expect_exit: 0
6import "nx_syscalls.nx"
7import "nx_tool_run.nx"
8const K_MAGIC_2097152: i64 = 2097152
9func sw_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
10func sw_puts(s: *u8) -> i64 { sys_write(1, s, sw_slen(s)); return 0 }
11func sw_streq(a: *u8, b: *u8) -> i64 {
12 var i: i64 = 0
13 while a[i] != (0 as u8) {
14 if a[i] != b[i] { return 0 }
15 i = i + 1
16 }
17 if b[i] != (0 as u8) { return 0 }
18 return 1
19}
20func sw_puti(v: i64) -> i64 {
21 if v == 0 { sys_write(1, "0" as *u8, 1); return 0 }
22 let b: *u8 = sys_mmap(24)
23 var m: i64 = v
24 var nd: i64 = 0
25 var t: i64 = m
26 while t > 0 { nd = nd + 1; t = t / 10 }
27 var i: i64 = nd - 1
28 while i >= 0 { b[i] = (48 + (m % 10)) as u8; m = m / 10; i = i - 1 }
29 sys_write(1, b, nd)
30 return 0
31}
32func sw_conf_permille(s: *u8) -> i64 {
33 var i: i64 = 0
34 var found: i64 = 0
35 while s[i] != (0 as u8) && found == 0 {
36 if s[i] == (46 as u8) { found = 1 } else { i = i + 1 }
37 }
38 if found == 0 { return 0 }
39 i = i + 1
40 var pm: i64 = 0
41 var place: i64 = 100
42 var c: i64 = 0
43 while c < 3 {
44 let ch: i64 = s[i] as i64
45 if ch >= 48 { if ch <= 57 { pm = pm + (ch - 48) * place; i = i + 1 } }
46 place = place / 10
47 c = c + 1
48 }
49 return pm
50}
51func main(argc: i64, argv: *i64) -> i64 {
52 var plane: *u8 = "knowledge/store/atlashyg-" as *u8
53 if argc >= 2 { plane = argv[1] as *u8 }
54 let path: *u8 = "./nx_store_put.elf" as *u8
55 let av: *i64 = sys_mmap(256) as *i64
56 av[0] = path as i64
57 av[1] = plane as i64
58 av[2] = "load" as *u8 as i64
59 av[3] = 0
60 let out: *u8 = sys_mmap(K_MAGIC_2097152)
61 let olen: *i64 = sys_mmap(16) as *i64
62 tr_run_capture(path, av, out, K_MAGIC_2097152, olen)
63 let n: i64 = olen[0]
64 sw_puts("ATLASSWEEP plane=" as *u8); sw_puts(plane); sw_puts("\n" as *u8)
65 let idbuf: *u8 = sys_mmap(512)
66 let srcbuf: *u8 = sys_mmap(512)
67 let confbuf: *u8 = sys_mmap(64)
68 var nodes: i64 = 0
69 var admit: i64 = 0
70 var reject: i64 = 0
71 var p: i64 = 0
72 while p < n {
73 var q: i64 = 0
74 while p < n && out[p] != (9 as u8) && out[p] != (10 as u8) {
75 if q < 511 { idbuf[q] = out[p]; q = q + 1 }
76 p = p + 1
77 }
78 idbuf[q] = 0 as u8
79 var d0: i64 = 10
80 if p < n { d0 = out[p] as i64; p = p + 1 }
81 if d0 == 9 {
82 var q1: i64 = 0
83 while p < n && out[p] != (9 as u8) && out[p] != (10 as u8) {
84 if q1 < 511 { srcbuf[q1] = out[p]; q1 = q1 + 1 }
85 p = p + 1
86 }
87 srcbuf[q1] = 0 as u8
88 var d1: i64 = 10
89 if p < n { d1 = out[p] as i64; p = p + 1 }
90 if d1 == 9 {
91 var q2: i64 = 0
92 while p < n && out[p] != (9 as u8) && out[p] != (10 as u8) {
93 if q2 < 63 { confbuf[q2] = out[p]; q2 = q2 + 1 }
94 p = p + 1
95 }
96 confbuf[q2] = 0 as u8
97 var d2: i64 = 10
98 if p < n { d2 = out[p] as i64; p = p + 1 }
99 if d2 == 9 {
100 var done: i64 = 0
101 while p < n && done == 0 {
102 let ch: i64 = out[p] as i64
103 p = p + 1
104 if ch == 10 { done = 1 }
105 }
106 }
107 if sw_streq(idbuf, "COL-SCHEMA" as *u8) == 0 {
108 let pm: i64 = sw_conf_permille(confbuf)
109 var ok: i64 = 0
110 if pm >= 750 {
111 if sw_streq(srcbuf, "PRIMARY_HUMAN" as *u8) == 1 { ok = 1 }
112 if sw_streq(srcbuf, "PRIMARY_EMPIRICAL" as *u8) == 1 { ok = 1 }
113 }
114 nodes = nodes + 1
115 sw_puts(" " as *u8); sw_puts(idbuf); sw_puts(" conf=" as *u8); sw_puti(pm); sw_puts(" src=" as *u8); sw_puts(srcbuf)
116 if ok == 1 { sw_puts(" -> ADMIT\n" as *u8); admit = admit + 1 } else { sw_puts(" -> REJECT\n" as *u8); reject = reject + 1 }
117 }
118 }
119 }
120 }
121 sw_puts("ATLASSWEEP nodes=" as *u8); sw_puti(nodes); sw_puts(" admit=" as *u8); sw_puti(admit); sw_puts(" reject=" as *u8); sw_puti(reject); sw_puts("\n" as *u8)
122 sys_exit(0)
123 return 0
124}