code wiki / _hdl_build / nx_recycler_advisory_page.nx
nx_recycler_advisory_page.nx source
↩ module page · 116 lines · 8619 B
1// nx_recycler_advisory_page.nx -- Generates a privacy-first, no-JS HTML dashboard for nishifamily.com showcasing S-class recycler advisory data.
2import "nx_gate_gn.nx"
3// nx_recycler_advisory_page.nx -- renders the recycler's S-class advisory as a SOVEREIGN, no-JS, privacy-first
4// dashboard for nishifamily.com (operator: "work with me on nishifamily.com to give me feedback on opportunities ...
5// provable evidence we are s-class superior"). Composes nx_recycler_opportunity's rc_fill data -> static HTML with
6// inline CSS, ZERO JavaScript and ZERO third-party loads (fail-closed: it scans its OWN bytes for script/http/:// and
7// REFUSES to write if any appear). Groups the axes: PROVEN-superior (measured/gated evidence) · OPPORTUNITIES
8// (provable + hardening) · HONEST GROWTH GAPS (the roadmap). Staged to web_assets/site_nishifamily/advisory.html for
9// the operator to approve+publish via the sovereign publisher. Self-gating. license_tier: ORIGINAL
10import "nx_syscalls.nx"
11import "nx_recycler_opportunity.nx"
12const K_MAGIC_65536: i64 = 65536
13
14func gp(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
15func slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n }
16func streq(a: *u8, b: *u8) -> i64 { var i: i64=0; while a[i]!=(0 as u8){ if a[i]!=b[i]{return 0} i=i+1 } if b[i]!=(0 as u8){return 0} return 1 }
17// number -> into buf at off (the page needs inline numbers)
18func gnbuf(buf: *u8, off: i64, v0: i64) -> i64 {
19 var v: i64=v0; var o: i64=off
20 if v==0 { buf[o]=48 as u8; return o+1 }
21 let t: *u8=sys_mmap(24); var k: i64=0
22 while v>0 { t[k]=(48+(v%10)) as u8; v=v/10; k=k+1 }
23 var j: i64=k-1
24 while j>=0 { buf[o]=t[j]; o=o+1; j=j-1 }
25 return o
26}
27func aw(buf: *u8, off: i64, s: *u8) -> i64 { var o: i64=off; var i: i64=0; while s[i]!=(0 as u8){ buf[o]=s[i]; o=o+1; i=i+1 } return o }
28// append HTML-escaped (& < > ")
29func awesc(buf: *u8, off: i64, s: *u8) -> i64 {
30 var o: i64=off; var i: i64=0
31 while s[i]!=(0 as u8) {
32 let c: i64 = s[i] as i64
33 if c==38 { o=aw(buf,o,"&" as *u8) } else { if c==60 { o=aw(buf,o,"<" as *u8) } else { if c==62 { o=aw(buf,o,">" as *u8) } else { if c==34 { o=aw(buf,o,""" as *u8) } else { buf[o]=s[i]; o=o+1 } } } }
34 i=i+1
35 }
36 return o
37}
38func has(buf: *u8, n: i64, needle: *u8) -> i64 {
39 let nl: i64=slen(needle); var i: i64=0
40 while i+nl<=n { var k: i64=0; var m: i64=1; while k<nl { if buf[i+k]!=needle[k]{m=0;k=nl} else {k=k+1} } if m==1 { return 1 } i=i+1 }
41 return 0
42}
43// emit one card-group for the axes whose status == want.
44func emit_group(buf: *u8, off: i64, axis: *i64, status: *i64, detail: *i64, n: i64, want: *u8) -> i64 {
45 var o: i64=off; var i: i64=0
46 while i < n {
47 if streq(status[i] as *u8, want)==1 {
48 o=aw(buf,o,"<div class=card><div class=ax>" as *u8); o=awesc(buf,o,axis[i] as *u8); o=aw(buf,o,"</div><div class=dt>" as *u8); o=awesc(buf,o,detail[i] as *u8); o=aw(buf,o,"</div></div>\n" as *u8)
49 }
50 i=i+1
51 }
52 return o
53}
54
55func main() -> i64 {
56 gp("=== nx_recycler_advisory_page: render the S-class advisory for nishifamily.com (sovereign, no-JS) ===\n" as *u8)
57 let axis: *i64 = sys_mmap(8*32) as *i64
58 let status: *i64 = sys_mmap(8*32) as *i64
59 let detail: *i64 = sys_mmap(8*32) as *i64
60 let n: i64 = rc_fill(axis, status, detail)
61 var proven: i64=0; var provable: i64=0; var harden: i64=0; var grow: i64=0
62 var i: i64=0
63 while i < n {
64 let st: *u8 = status[i] as *u8
65 if streq(st,"PROVEN" as *u8)==1 { proven=proven+1 }
66 if streq(st,"PROVABLE" as *u8)==1 { provable=provable+1 }
67 if streq(st,"HARDEN" as *u8)==1 { harden=harden+1 }
68 if streq(st,"GROW" as *u8)==1 { grow=grow+1 }
69 i=i+1
70 }
71
72 let buf: *u8 = sys_mmap(K_MAGIC_65536)
73 var o: i64 = 0
74 o=aw(buf,o,"<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content=\"width=device-width,initial-scale=1\"><title>Nishi - S-class Advisory</title>\n" as *u8)
75 o=aw(buf,o,"<style>body{font:15px/1.5 system-ui,sans-serif;max-width:900px;margin:0 auto;padding:24px;color:#1a1a1a;background:#fafafa}h1{font-size:24px;margin:0 0 4px}.sub{color:#555;margin:0 0 16px}.board{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}.stat{flex:1;min-width:120px;border:1px solid #ddd;border-radius:8px;padding:10px 12px;background:#fff}.stat b{font-size:22px;display:block}.sec{margin:22px 0 8px;font-size:13px;letter-spacing:.5px;text-transform:uppercase;color:#777}.card{border:1px solid #e3e3e3;border-radius:8px;padding:10px 12px;margin:8px 0;background:#fff}.ax{font-weight:600}.dt{color:#444;font-size:14px;margin-top:2px}.proven{border-left:4px solid #2e7d32}.opp{border-left:4px solid #1565c0}.gap{border-left:4px solid #b26a00}footer{margin-top:28px;color:#888;font-size:12px;border-top:1px solid #eee;padding-top:10px}</style></head><body>\n" as *u8)
76 o=aw(buf,o,"<h1>Nishi Ecosystem - S-class Advisory</h1>\n" as *u8)
77 o=aw(buf,o,"<p class=sub>Provably superior on <b>" as *u8); o=gnbuf(buf,o,proven); o=aw(buf,o,"</b> measured/gated axes. <b>" as *u8); o=gnbuf(buf,o,grow); o=aw(buf,o,"</b> honest gaps remain - we are NOT yet s-class across the board. The recycler keeps growing this, proactively addressing issues seen in the wider community.</p>\n" as *u8)
78 o=aw(buf,o,"<div class=board><div class=stat><b>" as *u8); o=gnbuf(buf,o,proven); o=aw(buf,o,"</b>proven superior</div><div class=stat><b>" as *u8); o=gnbuf(buf,o,provable); o=aw(buf,o,"</b>provable next</div><div class=stat><b>" as *u8); o=gnbuf(buf,o,harden); o=aw(buf,o,"</b>hardening opps</div><div class=stat><b>" as *u8); o=gnbuf(buf,o,grow); o=aw(buf,o,"</b>honest gaps</div></div>\n" as *u8)
79
80 o=aw(buf,o,"<div class=sec>Proven superior (measured / gated evidence)</div>\n" as *u8)
81 o=aw(buf,o,"<div class=proven>" as *u8); o=emit_group(buf,o,axis,status,detail,n,"PROVEN" as *u8); o=aw(buf,o,"</div>\n" as *u8)
82 o=aw(buf,o,"<div class=sec>Opportunities (provable next + pull-ahead)</div>\n" as *u8)
83 o=aw(buf,o,"<div class=opp>" as *u8); o=emit_group(buf,o,axis,status,detail,n,"PROVABLE" as *u8); o=emit_group(buf,o,axis,status,detail,n,"HARDEN" as *u8); o=aw(buf,o,"</div>\n" as *u8)
84 o=aw(buf,o,"<div class=sec>Honest growth gaps (the roadmap to full s-class)</div>\n" as *u8)
85 o=aw(buf,o,"<div class=gap>" as *u8); o=emit_group(buf,o,axis,status,detail,n,"GROW" as *u8); o=aw(buf,o,"</div>\n" as *u8)
86 o=aw(buf,o,"<footer>Sovereign - no JavaScript, no third-party loads, grounded in real fetched evidence. Generated by the Nishi recycler advisory engine. nishifamily.com</footer></body></html>\n" as *u8)
87 buf[o]=0 as u8
88
89 // FAIL-CLOSED sovereign check: refuse to write if the bytes carry JS or a third-party URL
90 var sovereign: i64 = 1
91 if has(buf,o,"<script" as *u8)==1 { sovereign=0 }
92 if has(buf,o,"http" as *u8)==1 { sovereign=0 }
93 if has(buf,o,"://" as *u8)==1 { sovereign=0 }
94
95 var wrote: i64 = 0
96 let path: *u8 = "web_assets/site_nishifamily/advisory.html" as *u8
97 if sovereign==1 {
98 __syscall(83, "web_assets" as *u8 as i64, 493, 0,0,0,0)
99 __syscall(83, "web_assets/site_nishifamily" as *u8 as i64, 493, 0,0,0,0)
100 let fd: i64 = sys_openat_wr(path, 0x1a4)
101 if fd>=0 { sys_write(fd, buf, o); sys_close(fd); wrote=o }
102 }
103 gp(" rendered " as *u8); gn(wrote); gp(" bytes -> " as *u8); gp(path); gp(" sovereign=" as *u8); gn(sovereign); gp("\n" as *u8)
104
105 var pass: i64=0; var fail: i64=0
106 if sovereign==1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL not-sovereign (script/http in output)\n" as *u8) }
107 if wrote>0 { pass=pass+1 } else { fail=fail+1; gp(" FAIL not-written\n" as *u8) }
108 if has(buf,o,"Proven superior" as *u8)==1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL missing-proven-section\n" as *u8) }
109 if has(buf,o,"Honest growth gaps" as *u8)==1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL missing-honest-gaps (would be self-flattering)\n" as *u8) }
110 if has(buf,o,"NOT yet s-class" as *u8)==1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL missing-honest-disclaimer\n" as *u8) }
111 if proven>=6 { pass=pass+1 } else { fail=fail+1; gp(" FAIL too-few-proven\n" as *u8) }
112
113 gp("RECYCLER-ADVISORY-PAGE pass=" as *u8); gn(pass); gp(" fail=" as *u8); gn(fail)
114 if fail==0 { gp(" verdict=GREEN (sovereign no-JS S-class advisory staged for nishifamily.com; proven wins + honest gaps; fail-closed on script/http)\n" as *u8); sys_exit(0); return 0 }
115 gp(" verdict=RED\n" as *u8); sys_exit(1); return 1
116}