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}