code wiki / (root) / nx_autofix_intake_gate.nx

nx_autofix_intake_gate.nx source

↩ module page · 161 lines · 7586 B

1// nx_autofix_intake_gate.nx -- THE WILD/FOREIGN-BUG INTAKE GATE (2026-07-16): turns proposed fix-loop 2// instances into a VERIFIED episode manifest. Any lane (mutation, janitor, doctor, human, other-model) 3// appends `name|path` rows to knowledge/forge/fix/mut_proposed.txt; this gate BUILDS+RUNS each one and 4// keeps ONLY instances whose bug REPRODUCES (>=1 failing FNRES row) -- the classic equivalent-mutant 5// discipline: a mutation every test passes is NOT an instance, and a build-broken file is not either. 6// Output: knowledge/forge/fix/mut_manifest.txt (nx_autofix_auto's episode list). 7// Teeth: T1 parsed >=10 proposed rows; T2 kept >=10 reproducing; T3 THE DISCARD TOOTH -- the deliberate 8// equivalent mutant (nx_autofix_mut_eqv, all-pass by construction) MUST be absent from the output; 9// T4 verified manifest written. expect_exit: 0 license_tier: ORIGINAL 10import "nx_tool_run.nx" 11 12func w(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 13func wn(v: i64) -> i64 { 14 var m: i64 = v 15 if m < 0 { w("-" as *u8); m = 0 - m } 16 let t: *u8 = sys_mmap(24) 17 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 let o: *u8 = sys_mmap(24) 21 var i: i64 = 0 22 while i < k { o[i] = t[k - 1 - i]; i = i + 1 } 23 sys_write(1, o, k) 24 return 0 25} 26func slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 27func find_first(hay: *u8, hn: i64, needle: *u8, from: i64) -> i64 { 28 let m: i64 = slen(needle) 29 if m == 0 { return 0 - 1 } 30 var i: i64 = from 31 while i + m <= hn { 32 var j: i64 = 0 33 var ok: i64 = 1 34 while j < m { if hay[i+j] != needle[j] { ok = 0; j = m } else { j = j + 1 } } 35 if ok == 1 { return i } 36 i = i + 1 37 } 38 return 0 - 1 39} 40 41// does the capture contain a FAILING FNRES row (passed < total)? 1 yes / 0 all-pass / -1 none. 42func has_failing(out: *u8, n: i64) -> i64 { 43 var any: i64 = 0 44 var p: i64 = 0 45 var res: i64 = 0 46 var done: i64 = 0 47 while done == 0 { 48 let r: i64 = find_first(out, n, "FNRES " as *u8, p) 49 if r < 0 { done = 1 } 50 else { 51 any = 1 52 // parse: FNRES <name> <passed> <total> -- flag-exit scans ONLY: a negated index does 53 // not leave `while i < n` (negative < n stays true), so an `i = 0 - i` pseudo-break 54 // spins forever on the first parsed row. 55 var sp1: i64 = 0 - 1 56 var i: i64 = r + 6 57 var sd: i64 = 0 58 while sd == 0 { if i >= n { sd = 1 } else { if out[i] == (32 as u8) { sp1 = i; sd = 1 } else { i = i + 1 } } } 59 if sp1 >= 0 { 60 var passed: i64 = 0 61 var q: i64 = sp1 + 1 62 var qd: i64 = 0 63 while qd == 0 { if q >= n { qd = 1 } else { let c: i64 = out[q] as i64; if c >= 48 { if c <= 57 { passed = passed * 10 + (c - 48); q = q + 1 } else { qd = 1 } } else { qd = 1 } } } 64 var total: i64 = 0 65 var q2: i64 = q + 1 66 var q2d: i64 = 0 67 while q2d == 0 { if q2 >= n { q2d = 1 } else { let c2: i64 = out[q2] as i64; if c2 >= 48 { if c2 <= 57 { total = total * 10 + (c2 - 48); q2 = q2 + 1 } else { q2d = 1 } } else { q2d = 1 } } } 68 if passed < total { res = 1; done = 1 } 69 } 70 p = r + 6 71 } 72 } 73 if res == 1 { return 1 } 74 if any == 1 { return 0 } 75 return 0 - 1 76} 77 78func main(argc: i64, argv: *i64) -> i64 { 79 w("=== NX-AUTOFIX-INTAKE -- verify proposed instances reproduce; discard equivalents/broken ===\n" as *u8) 80 var inp: *u8 = "knowledge/forge/fix/mut_proposed.txt" as *u8 81 var outp: *u8 = "knowledge/forge/fix/mut_manifest.txt" as *u8 82 if argc >= 2 { inp = argv[1] as *u8 } 83 if argc >= 3 { outp = argv[2] as *u8 } 84 let lb: *i64 = sys_mmap(8) as *i64 85 let src: *u8 = sys_read_file(inp, lb) 86 if (src as i64) == 0 { w("cannot read proposed manifest\n" as *u8); return 1 } 87 let n: i64 = lb[0] 88 let cap: *u8 = sys_mmap(1048576) 89 let outbuf: *u8 = sys_mmap(16384) 90 var oo: i64 = 0 91 let name: *u8 = sys_mmap(96) 92 var proposed: i64 = 0 93 var kept: i64 = 0 94 var discarded: i64 = 0 95 var eqv_kept: i64 = 0 96 var p: i64 = 0 97 while p < n { 98 var e: i64 = p 99 var f: i64 = 0 100 while f == 0 { if e >= n { f = 1 } else { if src[e] == (10 as u8) { f = 1 } else { e = e + 1 } } } 101 // skip comments/empties; rows are name|path 102 var isrow: i64 = 0 103 if e > p { if src[p] != (35 as u8) { isrow = 1 } } 104 if isrow == 1 { 105 // name = up to '|' 106 var b: i64 = p 107 var nl: i64 = 0 108 while b < e { if src[b] == (124 as u8) { b = e + 1 } else { if nl < 90 { name[nl] = src[b]; nl = nl + 1 } b = b + 1 } } 109 name[nl] = 0 as u8 110 if nl > 0 { 111 proposed = proposed + 1 112 let av: *i64 = sys_mmap(64) as *i64 113 av[0] = ("_offc/nx_sov_build_run.elf" as *u8) as i64 114 av[1] = name as i64 115 av[2] = 0 116 let olen: *i64 = sys_mmap(8) as *i64 117 olen[0] = 0 118 tr_run_capture("_offc/nx_sov_build_run.elf" as *u8, av, cap, 1048575, olen) 119 let hf: i64 = has_failing(cap, olen[0]) 120 w(" " as *u8); w(name) 121 if hf == 1 { 122 kept = kept + 1 123 var z: i64 = p 124 while z < e { outbuf[oo] = src[z]; oo = oo + 1; z = z + 1 } 125 outbuf[oo] = 10 as u8 126 oo = oo + 1 127 w(" REPRODUCES -> kept\n" as *u8) 128 } else { 129 discarded = discarded + 1 130 if hf == 0 { w(" ALL-PASS (equivalent mutant) -> DISCARDED\n" as *u8) } else { w(" NO FNRES ROWS (broken/foreign format) -> DISCARDED\n" as *u8) } 131 if find_first(name, nl, "eqv" as *u8, 0) >= 0 { } else { } 132 } 133 if hf == 1 { if find_first(name, nl, "eqv" as *u8, 0) >= 0 { eqv_kept = 1 } } 134 } 135 } 136 p = e + 1 137 } 138 let fd: i64 = sys_openat_wr(outp, 0x1a4) 139 var wrote: i64 = 0 140 if fd >= 0 { wrote = sys_write(fd, outbuf, oo); sys_close(fd) } 141 142 var pass: i64 = 0 143 var ttl: i64 = 0 144 ttl = ttl + 1 145 w("\n T1 parsed >=10 proposed rows: " as *u8) 146 if proposed >= 10 { pass = pass + 1; w("PASS (" as *u8); wn(proposed); w(")\n" as *u8) } else { w("FAIL\n" as *u8) } 147 ttl = ttl + 1 148 w(" T2 kept >=10 reproducing instances: " as *u8) 149 if kept >= 10 { pass = pass + 1; w("PASS (" as *u8); wn(kept); w(")\n" as *u8) } else { w("FAIL\n" as *u8) } 150 ttl = ttl + 1 151 w(" T3 DISCARD TOOTH (>=1 discarded AND the deliberate equivalent mutant is NOT in the output): " as *u8) 152 if discarded >= 1 { if eqv_kept == 0 { pass = pass + 1; w("PASS (" as *u8); wn(discarded); w(" discarded)\n" as *u8) } else { w("FAIL (kept the equivalent mutant!)\n" as *u8) } } else { w("FAIL (nothing discarded -- tooth unproven)\n" as *u8) } 153 ttl = ttl + 1 154 w(" T4 verified manifest written: " as *u8) 155 if wrote > 0 { pass = pass + 1; w("PASS (" as *u8); wn(wrote); w("B)\n" as *u8) } else { w("FAIL\n" as *u8) } 156 157 w("\nNX-AUTOFIX-INTAKE-GATE passed " as *u8); wn(pass); w("/" as *u8); wn(ttl) 158 if pass == ttl { w(" verdict=GREEN (intake verified; equivalents discarded; manifest ready)\n" as *u8); return 0 } 159 w(" verdict=RED\n" as *u8) 160 return 1 161}