code wiki / _hdl_build / nx_zerodt_extract.nx
nx_zerodt_extract.nx source
↩ module page · 60 lines · 2986 B
1// nx_zerodt_extract.nx -- SOVEREIGN render+extract half of the zero-downtime/live-update research (operator
2// 2026-06-18: "nishi researcher this to see where all the gaps are happening"). Reads the raw HTTP responses
3// from nx_zerodt_fetch, strips headers, renders HTML->text (nx_html_to_text), saves the text, runs ce_extract.
4// expect_exit: 0 license_tier: ORIGINAL
5import "nx_syscalls.nx"
6import "nx_claim_extract.nx"
7import "nx_html_to_text.nx"
8const K_MAGIC_4194304: i64 = 4194304
9const K_MAGIC_4194303: i64 = 4194303
10
11func ze_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
12func ze_putn(v: i64) -> i64 {
13 let bb: *u8 = sys_mmap(28); var m: i64 = v
14 if m < 0 { m = 0 - m; sys_write(1, "-" as *u8, 1) }
15 let t: *u8 = sys_mmap(28); var k: i64 = 0
16 if m == 0 { t[0] = 48 as u8; k = 1 }
17 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
18 var i: i64 = 0; while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } sys_write(1, bb, k); return 0
19}
20
21func render_one(raw_path: *u8, txt_path: *u8) -> i64 {
22 let raw: *u8 = sys_mmap(K_MAGIC_4194304)
23 let rn: i64 = ce_read_file(raw_path, raw, K_MAGIC_4194303)
24 if rn <= 0 { ze_puts(" MISS raw "); ze_puts(raw_path); ze_puts("\n"); return 0 - 1 }
25 var bo: i64 = 0
26 var p: i64 = 0
27 while p + 3 < rn {
28 if raw[p] == (13 as u8) { if raw[p+1] == (10 as u8) { if raw[p+2] == (13 as u8) { if raw[p+3] == (10 as u8) {
29 bo = p + 4
30 p = rn
31 } } } }
32 p = p + 1
33 }
34 if bo == 0 { ze_puts(" no header boundary\n"); return 0 - 2 }
35 let body_len: i64 = rn - bo
36 let txt: *u8 = sys_mmap(K_MAGIC_4194304)
37 let tn: i64 = nx_html_to_text((raw as i64 + bo) as *u8, body_len, txt, K_MAGIC_4194303)
38 if tn <= 0 { ze_puts(" html_to_text empty\n"); return 0 - 3 }
39 let ofd: i64 = sys_openat_wr(txt_path, 0x1A4)
40 if ofd > 0 { sys_write(ofd, txt, tn); sys_close(ofd) }
41 let out: *i64 = sys_mmap(64) as *i64
42 ce_extract(txt, tn, out)
43 ze_puts(" "); ze_puts(txt_path)
44 ze_puts(" text="); ze_putn(tn)
45 ze_puts(" sentences="); ze_putn(out[0])
46 ze_puts(" facts="); ze_putn(out[1]); ze_puts("\n")
47 return out[1]
48}
49
50func main() -> i64 {
51 ze_puts("SOVEREIGN ZERO-DOWNTIME EXTRACT (team fetch+render+extract):\n")
52 render_one("knowledge/fetched/zerodt_bluegreen.raw\x00" as *u8, "knowledge/fetched/zerodt_bluegreen.txt\x00" as *u8)
53 render_one("knowledge/fetched/zerodt_cd.raw\x00" as *u8, "knowledge/fetched/zerodt_cd.txt\x00" as *u8)
54 render_one("knowledge/fetched/zerodt_hotswap.raw\x00" as *u8, "knowledge/fetched/zerodt_hotswap.txt\x00" as *u8)
55 render_one("knowledge/fetched/zerodt_graceful.raw\x00" as *u8, "knowledge/fetched/zerodt_graceful.txt\x00" as *u8)
56 render_one("knowledge/fetched/zerodt_rolling.raw\x00" as *u8, "knowledge/fetched/zerodt_rolling.txt\x00" as *u8)
57 ze_puts("ZERODT-EXTRACT-DONE\n")
58 sys_exit(0)
59 return 0
60}