code wiki / (root) / nx_forge_ctx_gate.nx

nx_forge_ctx_gate.nx source

↩ module page · 188 lines · 8773 B

1// nx_forge_ctx_gate.nx -- gate for the F2 pack emitter (nx_forge_ctx.nx). Teeth: 2// T1 emit from the REAL tree -> sig count sane + all three sections present 3// T2 sig cross-check: every emitted `func std_` line exists verbatim in the LIVE lib (0 bad) 4// T3 NEG planted-signature: fixture lib + std_fake_planted -> cross-check vs REAL lib CATCHES it 5// T4 exemplar embedded byte-exact (tail-compare vs runtime/nx_fbench_probe.nx) 6// T5 NEG UNVERIFIED marker: fixture rules with a planted UNVERIFIED line -> fc_emit REFUSES (-3) 7// GREEN requires 5/5 (a rubber-stamp emitter or checker fails T3/T5 structurally). 8// license_tier: ORIGINAL expect_exit: 0 9import "nx_forge_ctx.nx" 10import "nx_gate_verdict.nx" 11 12func g_write2(path: *u8, a: *u8, an: i64, b: *u8, bn: i64) -> i64 { 13 let fd: i64 = sys_openat_wr(path, 420) 14 if fd < 0 { 15 let neg: i64 = 0 - 1 16 return neg 17 } 18 let w1: i64 = fc_wb(fd, a, an) 19 let w2: i64 = fc_wb(fd, b, bn) 20 sys_close(fd) 21 let s: i64 = w1 + w2 22 return s 23} 24 25func main(argc: i64, argv: *i64) -> i64 { 26 var pass: i64 = 0 27 // T1: emit from real sources, sections present 28 let r1: i64 = fc_emit("knowledge/forge/pack_rules_v1.txt" as *u8, "knowledge/forge/pack_rules_vet_v1.txt" as *u8, "runtime/nx_lib_std.nx" as *u8, "runtime/nx_fbench_probe.nx" as *u8, "/tmp/fc_pack_t1.txt" as *u8) 29 let pbuf: *u8 = sys_mmap(131072) as *u8 30 let pn: i64 = fc_read("/tmp/fc_pack_t1.txt" as *u8, pbuf, 131072) 31 var t1: i64 = 0 32 if r1 >= 5 { 33 if pn > 1000 { 34 let m1: *u8 = "HARD RULES" as *u8 35 let l1: i64 = std_slen(m1) 36 let f1: i64 = fc_contains(pbuf, pn, m1, l1) 37 let m2: *u8 = "SOVEREIGN STANDARD LIBRARY" as *u8 38 let l2: i64 = std_slen(m2) 39 let f2: i64 = fc_contains(pbuf, pn, m2, l2) 40 let m3: *u8 = "VERIFIED EXEMPLAR" as *u8 41 let l3: i64 = std_slen(m3) 42 let f3: i64 = fc_contains(pbuf, pn, m3, l3) 43 let fsum: i64 = f1 + f2 + f3 44 if fsum == 3 { t1 = 1 } 45 } 46 } 47 std_puts("T1 emit-real sigs=" as *u8) 48 std_pdec(r1) 49 if t1 == 1 { std_putln(" sections PASS" as *u8) } 50 if t1 == 0 { std_putln(" sections FAIL" as *u8) } 51 pass = pass + t1 52 // T2: cross-check emitted sigs vs the live lib 53 let lbuf: *u8 = sys_mmap(65536) as *u8 54 let lln: i64 = fc_read("runtime/nx_lib_std.nx" as *u8, lbuf, 65536) 55 var bad2: i64 = 0 - 1 56 if lln > 0 { 57 if pn > 0 { bad2 = fc_check_sigs(pbuf, pn, lbuf, lln) } 58 } 59 var t2: i64 = 0 60 if bad2 == 0 { t2 = 1 } 61 std_puts("T2 sig-crosscheck bad=" as *u8) 62 std_pdec(bad2) 63 if t2 == 1 { std_putln(" PASS" as *u8) } 64 if t2 == 0 { std_putln(" FAIL" as *u8) } 65 pass = pass + t2 66 // T3 NEG: planted signature in a fixture lib must be CAUGHT vs the real lib 67 let planted: *u8 = "\nfunc std_fake_planted(x: i64) -> i64 {\n" as *u8 68 let pl: i64 = std_slen(planted) 69 let wfix: i64 = g_write2("/tmp/fc_fix_lib.nx" as *u8, lbuf, lln, planted, pl) 70 var r3: i64 = 0 - 99 71 if wfix == 0 { r3 = fc_emit("knowledge/forge/pack_rules_v1.txt" as *u8, "knowledge/forge/pack_rules_vet_v1.txt" as *u8, "/tmp/fc_fix_lib.nx" as *u8, "runtime/nx_fbench_probe.nx" as *u8, "/tmp/fc_pack_t3.txt" as *u8) } 72 let p3: *u8 = sys_mmap(131072) as *u8 73 var p3n: i64 = 0 74 if r3 > 0 { p3n = fc_read("/tmp/fc_pack_t3.txt" as *u8, p3, 131072) } 75 var bad3: i64 = 0 76 if p3n > 0 { bad3 = fc_check_sigs(p3, p3n, lbuf, lln) } 77 var t3: i64 = 0 78 if bad3 > 0 { t3 = 1 } 79 std_puts("T3 planted-sig caught bad=" as *u8) 80 std_pdec(bad3) 81 if t3 == 1 { std_putln(" NEGCTL-CAUGHT PASS" as *u8) } 82 if t3 == 0 { std_putln(" NEGCTL-NOT-CAUGHT FAIL" as *u8) } 83 pass = pass + t3 84 // T4: exemplar embedded byte-exact at the pack tail 85 let ebuf: *u8 = sys_mmap(65536) as *u8 86 let en: i64 = fc_read("runtime/nx_fbench_probe.nx" as *u8, ebuf, 65536) 87 var t4: i64 = 0 88 if en > 0 { 89 if pn > en { 90 let off: i64 = pn - en 91 var k: i64 = 0 92 var okt: i64 = 1 93 while k < en { 94 let pi: i64 = off + k 95 let a: i64 = pbuf[pi] as i64 96 let b: i64 = ebuf[k] as i64 97 if a != b { okt = 0; k = en } 98 if a == b { k = k + 1 } 99 } 100 t4 = okt 101 } 102 } 103 std_puts("T4 exemplar-tail bytes=" as *u8) 104 std_pdec(en) 105 if t4 == 1 { std_putln(" PASS" as *u8) } 106 if t4 == 0 { std_putln(" FAIL" as *u8) } 107 pass = pass + t4 108 // T5 NEG: UNVERIFIED-marked rules must make fc_emit refuse with -3 109 let unv: *u8 = "UNVERIFIED planted claim with no runtime witness\n" as *u8 110 let un: i64 = std_slen(unv) 111 let rbuf: *u8 = sys_mmap(32768) as *u8 112 let rn: i64 = fc_read("knowledge/forge/pack_rules_v1.txt" as *u8, rbuf, 32768) 113 var t5: i64 = 0 114 var r5: i64 = 0 - 99 115 if rn > 0 { 116 let wf2: i64 = g_write2("/tmp/fc_fix_rules.txt" as *u8, unv, un, rbuf, rn) 117 if wf2 == 0 { r5 = fc_emit("/tmp/fc_fix_rules.txt" as *u8, "knowledge/forge/pack_rules_vet_v1.txt" as *u8, "runtime/nx_lib_std.nx" as *u8, "runtime/nx_fbench_probe.nx" as *u8, "/tmp/fc_pack_t5.txt" as *u8) } 118 } 119 let want5: i64 = 0 - 3 120 if r5 == want5 { t5 = 1 } 121 std_puts("T5 unverified-refused rc=" as *u8) 122 std_pdec(r5) 123 if t5 == 1 { std_putln(" NEGCTL-CAUGHT PASS" as *u8) } 124 if t5 == 0 { std_putln(" NEGCTL-NOT-CAUGHT FAIL" as *u8) } 125 pass = pass + t5 126 // T6: status-driven render -- planted ACTIVE row must be EMITTED, planted RETIRED row OMITTED 127 let fixv: *u8 = "RULE|ZA|ACTIVE|none|ZZMARK_ACTIVE_EMIT|WHY=planted active|COST=x|RETIRE=x\nRULE|ZR|RETIRED|none|ZZMARK_RETIRED_OMIT|WHY=planted retired|COST=x|RETIRE=x\n" as *u8 128 let fvl: i64 = std_slen(fixv) 129 let zero: *u8 = "\x00" as *u8 130 let wf6: i64 = g_write2("/tmp/fc_fix_vet.txt" as *u8, fixv, fvl, zero, 0) 131 var t6: i64 = 0 132 if wf6 == 0 { 133 let r6: i64 = fc_emit("knowledge/forge/pack_rules_v1.txt" as *u8, "/tmp/fc_fix_vet.txt" as *u8, "runtime/nx_lib_std.nx" as *u8, "runtime/nx_fbench_probe.nx" as *u8, "/tmp/fc_pack_t6.txt" as *u8) 134 if r6 > 0 { 135 let p6: *u8 = sys_mmap(131072) as *u8 136 let p6n: i64 = fc_read("/tmp/fc_pack_t6.txt" as *u8, p6, 131072) 137 if p6n > 0 { 138 let ma: *u8 = "ZZMARK_ACTIVE_EMIT" as *u8 139 let mal: i64 = std_slen(ma) 140 let fa: i64 = fc_contains(p6, p6n, ma, mal) 141 let mr: *u8 = "ZZMARK_RETIRED_OMIT" as *u8 142 let mrl: i64 = std_slen(mr) 143 let fr: i64 = fc_contains(p6, p6n, mr, mrl) 144 if fa == 1 { 145 if fr == 0 { t6 = 1 } 146 } 147 } 148 } 149 } 150 if t6 == 1 { std_putln("T6 status-render ACTIVE-in RETIRED-out PASS" as *u8) } 151 if t6 == 0 { std_putln("T6 status-render FAIL" as *u8) } 152 pass = pass + t6 153 // T7: LOCAL-TIER mini pack fits the serve budget (8192-byte prompt cap minus task headroom) 154 let r7: i64 = fc_emit_mini("knowledge/forge/pack_rules_mini_v1.txt" as *u8, "knowledge/forge/pack_rules_vet_v1.txt" as *u8, "runtime/nx_lib_std.nx" as *u8, "knowledge/forge/fix/cand_t3_ok.nx" as *u8, "/tmp/fc_pack_mini_t7.txt" as *u8, 6900) 155 var t7: i64 = 0 156 if r7 > 0 { 157 if r7 <= 6900 { 158 let p7: *u8 = sys_mmap(65536) as *u8 159 let p7n: i64 = fc_read("/tmp/fc_pack_mini_t7.txt" as *u8, p7, 65536) 160 if p7n > 1000 { 161 let m1: *u8 = "HARD RULES" as *u8 162 let f1: i64 = fc_contains(p7, p7n, m1, std_slen(m1)) 163 let m2: *u8 = "STANDARD LIBRARY" as *u8 164 let f2: i64 = fc_contains(p7, p7n, m2, std_slen(m2)) 165 let m3: *u8 = "func main" as *u8 166 let f3: i64 = fc_contains(p7, p7n, m3, std_slen(m3)) 167 if f1 == 1 && f2 == 1 && f3 == 1 { t7 = 1 } 168 } 169 } 170 } 171 std_puts("T7 mini-pack size=" as *u8) 172 std_pdec(r7) 173 if t7 == 1 { std_putln(" within-budget PASS" as *u8) } 174 if t7 == 0 { std_putln(" FAIL" as *u8) } 175 pass = pass + t7 176 // verdict 177 std_puts("FORGE-CTX-GATE pass=" as *u8) 178 std_pdec(pass) 179 // MIGRATED onto nx_gate_verdict by nx_gate_dry_apply (D001, minimal form): every check 180 // row above is untouched, so the PASS/FAIL vector cannot change; only the hand-rolled 181 // verdict emission is replaced by the ONE shared base class. Proven by nx_gate_migrate verify. 182 let ctr__dry: *i64 = gv_ctr() 183 ctr__dry[0] = pass 184 ctr__dry[1] = 7 185 let rc__dry: i64 = gv_verdict("FORGE-CTX-GATE" as *u8, ctr__dry, "teeth unchanged; verdict emission migrated onto the shared base class" as *u8) 186 sys_exit(rc__dry) 187 return rc__dry 188}