code wiki / (root) / nx_pub_beat.nx

nx_pub_beat.nx source

↩ module page · 105 lines · 4650 B

1// nx_pub_beat.nx -- THE PUBLISHING BEAT (2026-08-12): argless, conf-driven, clock-safe. 2// One run = for EVERY site in knowledge/pub_sites.conf: pl_adopt (register new docroot reality as 3// draft -- publicly INERT by construction, proven by nx_pub_plane_gate T25b) then re-derive the three 4// discovery artifacts (sitemap.xml / robots.txt / llms.txt) from the registry. This is the convergence 5// loop that keeps the plane true as work lands pages; without a beat the 2026-08-12 adoption 6// (72,751 rows) would rot the day the codewiki next regenerates. 7// ARGLESS BY DESIGN: clockjobs- rows carry `name=organ@interval` with no argv (the fleet -beat 8// convention: nx_ivvbeat, nx_swarm_beat, nx_compare_beat). All configuration is the site table row. 9// Composes the pl_* rulers ONLY -- no second implementation of any derivation. An adopt REFUSAL 10// (entry/depth cap, lossy plane) marks the site RED and exits 1, so the clock log carries it. 11// expect_exit: 0 full convergence; 1 = a site failed, named in its own row. license_tier: ORIGINAL 12import "nx_pub_lib.nx" 13import "nx_syscalls.nx" 14 15const PB2_CONF: i64 = 65536 16const PB2_SPANS: i64 = 128 17const PB2_PATH: i64 = 1024 18const PB2_ENV: i64 = 64 19const PB2_HASH: i64 = 35 20const PB2_SPAN: i64 = 16 21 22func pb_num(v: i64) -> i64 { let b: *u8 = sys_mmap(64); let n: i64 = pl_catn(b, 0, v); b[n] = 0 as u8; pl_puts(b); return 0 } 23 24func pb_site(conf: *u8, spans: *i64) -> i64 { 25 let docroot: *u8 = sys_mmap(PB2_PATH) 26 let prefix: *u8 = sys_mmap(PB2_PATH) 27 let baseurl: *u8 = sys_mmap(PB2_PATH) 28 let title: *u8 = sys_mmap(PB2_PATH) 29 let outp: *u8 = sys_mmap(PB2_PATH) 30 let flags: *i64 = sys_mmap(PB2_ENV) as *i64 31 let counts: *i64 = sys_mmap(PB2_ENV) as *i64 32 pl_span_cstr(conf, spans[0], spans[1], docroot) 33 pl_span_cstr(conf, spans[2], spans[3], prefix) 34 pl_span_cstr(conf, spans[4], spans[5], baseurl) 35 pl_span_cstr(conf, spans[6], spans[7], title) 36 var bad: i64 = 0 37 let nadd: i64 = pl_adopt(docroot, prefix, counts) 38 if nadd < 0 { bad = 1 } 39 pl_join(outp, docroot, "sitemap.xml" as *u8) 40 let nurl: i64 = pl_sitemap(docroot, prefix, baseurl, outp, flags) 41 if nurl < 0 { bad = 1 } 42 pl_join(outp, docroot, "robots.txt" as *u8) 43 let nd: i64 = pl_robots(baseurl, conf, spans[8], spans[9], outp) 44 if nd < 0 { bad = 1 } 45 pl_join(outp, docroot, "llms.txt" as *u8) 46 let nl: i64 = pl_llms(docroot, prefix, baseurl, title, outp) 47 if nl < 0 { bad = 1 } 48 pl_puts("PUB-BEAT docroot=" as *u8) 49 pl_puts(docroot) 50 pl_puts(" adopted=" as *u8) 51 pb_num(nadd) 52 pl_puts(" urls=" as *u8) 53 pb_num(nurl) 54 pl_puts(" disallow=" as *u8) 55 pb_num(nd) 56 pl_puts(" llms=" as *u8) 57 pb_num(nl) 58 if flags[2] > 0 { pl_puts(" UNREACHED_BEYOND_COUNT=" as *u8); pb_num(flags[2]) } 59 if bad == 1 { pl_puts(" verdict=RED" as *u8) } else { pl_puts(" verdict=GREEN" as *u8) } 60 pl_puts("\n" as *u8) 61 return bad 62} 63 64func main() -> i64 { 65 let confpath: *u8 = "knowledge/pub_sites.conf" as *u8 66 let conf: *u8 = sys_mmap(PB2_CONF) 67 let n: i64 = pl_rfile(confpath, conf, PB2_CONF) 68 if n <= 0 { pl_werr("PUB-BEAT FAIL site table unreadable\n" as *u8); sys_exit(1); return 1 } 69 let c: *i64 = sys_mmap(PB2_SPAN) as *i64 70 let spans: *i64 = sys_mmap(PB2_SPANS) as *i64 71 var sites: i64 = 0 72 var bad: i64 = 0 73 var i: i64 = 0 74 while i < n { 75 let le: i64 = pl_le(conf, i, n) 76 var skip: i64 = 0 77 if le <= i { skip = 1 } 78 if skip == 0 { if conf[i] == (PB2_HASH as u8) { skip = 1 } } 79 if skip == 0 { 80 if pl_col(conf, i, le, PL_S_SITE, c) == 1 { 81 var ok: i64 = 1 82 if pl_col(conf, i, le, PL_S_DOCROOT, c) == 1 { spans[0] = c[0]; spans[1] = c[1] } else { ok = 0 } 83 if pl_col(conf, i, le, PL_S_PREFIX, c) == 1 { spans[2] = c[0]; spans[3] = c[1] } else { ok = 0 } 84 if pl_col(conf, i, le, PL_S_BASEURL, c) == 1 { spans[4] = c[0]; spans[5] = c[1] } else { ok = 0 } 85 if pl_col(conf, i, le, PL_S_TITLE, c) == 1 { spans[6] = c[0]; spans[7] = c[1] } else { ok = 0 } 86 spans[8] = 0 87 spans[9] = 0 88 if pl_col(conf, i, le, PL_S_DISALLOW, c) == 1 { spans[8] = c[0]; spans[9] = c[1] } 89 if ok == 1 { 90 sites = sites + 1 91 bad = bad + pb_site(conf, spans) 92 } 93 } 94 } 95 i = le + 1 96 } 97 pl_puts("PUB-BEAT-DONE sites=" as *u8) 98 pb_num(sites) 99 pl_puts(" failed=" as *u8) 100 pb_num(bad) 101 pl_puts("\n" as *u8) 102 if bad > 0 { sys_exit(1); return 1 } 103 sys_exit(0) 104 return 0 105}