code wiki / _hdl_build / nx_plan_run_gate.nx

nx_plan_run_gate.nx source

↩ module page · 157 lines · 6736 B

1// nx_plan_run_gate.nx -- gate for the sovereign plan executor (workflows-as-data). 2// MIGRATED 2026-07-18 onto nx_gate_verdict (D001 exemplar #2). Teeth unchanged: 3// T1 seq-order execution; T2 pinned-args override; T3 failing step stops fail-closed; 4// T4 unknown tool refused; T5 unseeded plan fail-closed. 5// license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0 6import "nx_store_seed_lib.nx" 7import "nx_seg_store.nx" 8import "nx_deploy_lib.nx" 9import "nx_gate_verdict.nx" 10import "nx_syscalls.nx" 11import "nx_estate_path.nx" 12 13const PG_CAP: i64 = 262144 14const PG_NL: i64 = 10 15const PG_PFX: i64 = 128 16const PG_MODE: i64 = 0x1a4 17 18func pg_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 19func pg_has(q: *u8, n: i64, s: *u8) -> i64 { 20 let sn: i64 = pg_slen(s) 21 if sn == 0 { return 1 } 22 var i: i64 = 0 23 while i + sn <= n { 24 var hit: i64 = 1 25 var j: i64 = 0 26 while j < sn { if q[i+j] != s[j] { hit = 0; j = sn } else { j = j + 1 } } 27 if hit == 1 { return 1 } 28 i = i + 1 29 } 30 return 0 31} 32func pg_lines(q: *u8, n: i64) -> i64 { var k: i64 = 0; var i: i64 = 0; while i < n { if q[i] == (PG_NL as u8) { k = k + 1 } i = i + 1 } return k } 33func pg_wfile(path: *u8, buf: *u8, n: i64) -> i64 { 34 let fd: i64 = sys_openat_wr(path, PG_MODE) 35 if fd < 0 { return 0 - 1 } 36 sys_write(fd, buf, n) 37 sys_close(fd) 38 return 0 39} 40func pg_mkpfx(dst: *u8, stem: *u8, epoch: i64) -> i64 { 41 var o: i64 = ss_cat(dst, 0, stem) 42 o = ss_catn(dst, o, epoch) 43 o = ss_cat(dst, o, "-" as *u8) 44 dst[o] = 0 as u8 45 return o 46} 47 48func main() -> i64 { 49 let ctr: *i64 = gv_ctr() 50 gv_head("nx_plan_run gate -- sovereign plan executor (workflows-as-data, fail-closed)" as *u8) 51 // The subject is the PROMOTED executor the clock forks and the witness a built, promoted organ -- never /tmp 52 // builds: tmpstorereap deletes /tmp artifacts hourly and nx_plan_witness had never been built on the NAS, so 53 // every roster run read a fixture the box could not hold as a failure of the subject (2026-09-18). 54 // ep_artifact_path resolves both from any launch CWD and fails closed; an unresolved one is a SKIP, not a RED. 55 let elf: *u8 = sys_mmap(EP_MAGIC_1024) 56 let wit: *u8 = sys_mmap(EP_MAGIC_1024) 57 gv_need("subject nx_plan_run.elf resolvable" as *u8, ep_artifact_path(elf, "nx_plan_run.elf" as *u8), ctr) 58 gv_need("witness nx_plan_witness.elf resolvable" as *u8, ep_artifact_path(wit, "nx_plan_witness.elf" as *u8), ctr) 59 if ctr[2] > 0 { 60 let rs: i64 = gv_verdict("PLAN-RUN-GATE" as *u8, ctr, "precondition missing: an artifact the plan executor needs is not on this host" as *u8) 61 sys_exit(rs) 62 return rs 63 } 64 let alp: *u8 = "/tmp/prg_allow.conf" as *u8 65 let outf: *u8 = "/tmp/prg_run.out" as *u8 66 let epoch: i64 = sys_now_realtime_sec() 67 68 let ab: *u8 = sys_mmap(PG_CAP) 69 var ao: i64 = 0 70 ao = ss_cat(ab, ao, "echoer\x09" as *u8) 71 ao = ss_cat(ab, ao, wit) 72 ao = ss_cat(ab, ao, "\x09GREEN\n" as *u8) 73 ao = ss_cat(ab, ao, "pinecho\x09" as *u8) 74 ao = ss_cat(ab, ao, wit) 75 ao = ss_cat(ab, ao, "\x09GREEN\x09alpha beta\n" as *u8) 76 ao = ss_cat(ab, ao, "deadtool\x09/tmp/prg_missing.elf\x09GREEN\n" as *u8) 77 if pg_wfile(alp, ab, ao) < 0 { gv_puts("FIXTURE-FAIL allowlist\n" as *u8); sys_exit(1); return 1 } 78 79 let av: *i64 = sys_mmap(8*8) as *i64 80 let dump: *u8 = sys_mmap(PG_CAP) 81 82 // T1+T2: out-of-order 3-step plan with pinned override on step 20 83 let p1: *u8 = sys_mmap(PG_PFX) 84 pg_mkpfx(p1, "/tmp/prgp" as *u8, epoch) 85 let r1x: *u8 = sys_mmap(PG_PFX) 86 pg_mkpfx(r1x, "/tmp/prgr" as *u8, epoch) 87 let pb: *u8 = sys_mmap(PG_CAP) 88 var po: i64 = 0 89 po = ss_cat(pb, po, "30\x09echoer\x09charlie\n" as *u8) 90 po = ss_cat(pb, po, "10\x09echoer\x09alpha-first\n" as *u8) 91 po = ss_cat(pb, po, "20\x09pinecho\x09ignored-plan-arg\n" as *u8) 92 sts_seed(p1, pb, po) 93 av[0] = "t1" as *u8 as i64 94 av[1] = alp as i64 95 av[2] = p1 as i64 96 av[3] = r1x as i64 97 let rc1: i64 = dep_run_capture(elf, av, 4, outf) 98 var dn: i64 = sts_load(r1x, dump, PG_CAP) 99 if dn < 0 { dn = 0 } 100 var t1: i64 = 0 101 if rc1 == 0 { if pg_lines(dump, dn) == 3 { if pg_has(dump, dn, "alpha-first" as *u8) == 1 { if pg_has(dump, dn, "charlie" as *u8) == 1 { t1 = 1 } } } } 102 gv_check("T1 3 steps run in seq order, all rc=0, args echoed into results" as *u8, t1, ctr) 103 var t2: i64 = 0 104 if pg_has(dump, dn, "alpha beta" as *u8) == 1 { if pg_has(dump, dn, "ignored-plan-arg" as *u8) == 0 { t2 = 1 } } 105 gv_check("T2 pinned args override (alpha beta present, plan arg IGNORED)" as *u8, t2, ctr) 106 107 // T3: failing step stops the plan 108 let p2: *u8 = sys_mmap(PG_PFX) 109 pg_mkpfx(p2, "/tmp/prgq" as *u8, epoch) 110 let r2x: *u8 = sys_mmap(PG_PFX) 111 pg_mkpfx(r2x, "/tmp/prgs" as *u8, epoch) 112 po = 0 113 po = ss_cat(pb, po, "10\x09echoer\x09ok-step\n" as *u8) 114 po = ss_cat(pb, po, "20\x09deadtool\n" as *u8) 115 po = ss_cat(pb, po, "30\x09echoer\x09never-runs\n" as *u8) 116 sts_seed(p2, pb, po) 117 av[0] = "t3" as *u8 as i64 118 av[2] = p2 as i64 119 av[3] = r2x as i64 120 let rc3: i64 = dep_run_capture(elf, av, 4, outf) 121 dn = sts_load(r2x, dump, PG_CAP) 122 if dn < 0 { dn = 0 } 123 var t3: i64 = 0 124 if rc3 == 5 { if pg_lines(dump, dn) == 2 { if pg_has(dump, dn, "never-runs" as *u8) == 0 { if pg_has(dump, dn, "ok-step" as *u8) == 1 { t3 = 1 } } } } 125 gv_check("T3 failing step STOPS plan (2 rows only, never-runs absent, exit=5)" as *u8, t3, ctr) 126 127 // T4: unknown tool refused 128 let p3: *u8 = sys_mmap(PG_PFX) 129 pg_mkpfx(p3, "/tmp/prgt" as *u8, epoch) 130 let r3x: *u8 = sys_mmap(PG_PFX) 131 pg_mkpfx(r3x, "/tmp/prgu" as *u8, epoch) 132 po = 0 133 po = ss_cat(pb, po, "10\x09ghosttool\x09x\n" as *u8) 134 sts_seed(p3, pb, po) 135 av[0] = "t4" as *u8 as i64 136 av[2] = p3 as i64 137 av[3] = r3x as i64 138 let rc4: i64 = dep_run_capture(elf, av, 4, outf) 139 dn = sts_load(r3x, dump, PG_CAP) 140 if dn < 0 { dn = 0 } 141 var t4: i64 = 0 142 if rc4 == 4 { if pg_has(dump, dn, "REFUSED" as *u8) == 1 { t4 = 1 } } 143 gv_check("T4 unknown tool REFUSED (exit=4, REFUSED row recorded)" as *u8, t4, ctr) 144 145 // T5: unseeded plan fail-closed 146 av[0] = "t5" as *u8 as i64 147 av[2] = "/tmp/prg_nope-" as *u8 as i64 148 av[3] = "/tmp/prg_nores-" as *u8 as i64 149 let rc5: i64 = dep_run_capture(elf, av, 4, outf) 150 var t5: i64 = 0 151 if rc5 != 0 { t5 = 1 } 152 gv_check("T5 unseeded plan plane -> fail-closed nonzero exit" as *u8, t5, ctr) 153 154 let rc: i64 = gv_verdict("PLAN-RUN-GATE" as *u8, ctr, "workflows-as-data: seq order, pinned override, fail-closed stop/refuse" as *u8) 155 sys_exit(rc) 156 return rc 157}