code wiki / _hdl_build / nx_trusted_flag.nx
nx_trusted_flag.nx source
↩ module page · 155 lines · 7518 B
1// nx_trusted_flag.nx -- the TRUSTED scope's write side (operator's 3-scope model 2026-07-04): a client
2// FLAGS an external web resource as a GOOD reference. Fetches the exact page (sovereign TLS, NO crawl --
3// trusted = curated, not discovered), extracts text, and ingests it into the shared "trusted" seg_store
4// shard (dp-trusted-pub-): doc:<cid> = text, url:<cid> = the real url, trust:<cid> = the flagging client(s)
5// (append-only provenance; a second flagger's name is appended, never clobbered). Idempotent by content cid.
6// usage: nx_trusted_flag <url> <flagger>
7// The READ side is scope=trusted in dss_serve/dss_api_search (a plain shard swap -- same engine).
8// license_tier: ORIGINAL
9import "nx_corpus_ingest.nx" // ci_hash / ci_mkurlkey / dss_prefix / dss_mkkey / seg_store / nx_html_to_text
10import "nx_x509_trust_store.nx"
11import "nx_trust_store_load_from_certdata.nx"
12import "nx_https_fetch_follow.nx"
13const K_MAGIC_4194304: i64 = 4194304
14const K_MAGIC_4096: i64 = 4096
15const K_MAGIC_8388608: i64 = 8388608
16const K_MAGIC_1048576: i64 = 1048576
17const K_MAGIC_4090: i64 = 4090
18
19func tf_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
20func tf_num(v: i64) -> i64 {
21 let bb: *u8 = sys_mmap(28); var m: i64 = v
22 if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m }
23 let t: *u8 = sys_mmap(28); var k: i64 = 0
24 if m == 0 { t[0] = 48 as u8; k = 1 }
25 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
26 var i: i64 = 0; while i < k { bb[i] = t[k - 1 - i]; i = i + 1 }
27 sys_write(1, bb, k); return 0
28}
29func tf_len(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
30// trust:<cid> provenance key
31func tf_mktrustkey(cid: i64, out: *u8) -> i64 {
32 out[0] = 116 as u8; out[1] = 114 as u8; out[2] = 117 as u8; out[3] = 115 as u8; out[4] = 116 as u8; out[5] = 58 as u8 // "trust:"
33 var o: i64 = 6
34 if cid == 0 { out[o] = 48 as u8; o = o + 1; out[o] = 0 as u8; return o }
35 let t: *u8 = sys_mmap(24)
36 var k: i64 = 0
37 var m: i64 = cid
38 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
39 var j: i64 = 0
40 while j < k { out[o] = t[k - 1 - j]; o = o + 1; j = j + 1 }
41 out[o] = 0 as u8
42 return o
43}
44// is `flagger` already a comma-token in the trust value `val`[0..vl)? (idempotent provenance)
45func tf_has_flagger(val: *u8, vl: i64, flagger: *u8, fl: i64) -> i64 {
46 var i: i64 = 0
47 while i + fl <= vl {
48 var m: i64 = 1
49 var k: i64 = 0
50 while k < fl { if val[i + k] != flagger[k] { m = 0; k = fl } else { k = k + 1 } }
51 if m == 1 {
52 // boundaries: start-of-string or ',' before; end-of-string or ',' after
53 var lok: i64 = 0
54 if i == 0 { lok = 1 } else { if val[i - 1] == (44 as u8) { lok = 1 } }
55 var rok: i64 = 0
56 if i + fl == vl { rok = 1 } else { if val[i + fl] == (44 as u8) { rok = 1 } }
57 if lok == 1 { if rok == 1 { return 1 } }
58 }
59 i = i + 1
60 }
61 return 0
62}
63
64func main(argc: i64, argv: *i64) -> i64 {
65 if argc < 3 { tf_puts("usage: nx_trusted_flag <url> <flagger>\n" as *u8); return 1 }
66 let url: *u8 = argv[1] as *u8
67 let flagger: *u8 = argv[2] as *u8
68 let ul: i64 = tf_len(url)
69 let fl: i64 = tf_len(flagger)
70 let r: i64 = nx_trust_store_load_from_certdata("data/mozilla_certdata.txt" as *u8, 512, K_MAGIC_4194304)
71 if r <= 0 { tf_puts("certdata load failed\n" as *u8); return 2 }
72 let store: *TrustStore = r as *TrustStore
73 tf_puts("=== nx_trusted_flag: " as *u8); tf_puts(url); tf_puts(" (by " as *u8); tf_puts(flagger); tf_puts(") -> dp-trusted-pub- ===\n" as *u8)
74
75 let prefix: *u8 = sys_mmap(512)
76 dss_prefix("trusted" as *u8, prefix)
77 let segs: *i64 = sys_mmap(K_MAGIC_4096 * 8) as *i64
78 let nseg: i64 = ss_manifest_cap(prefix, segs, K_MAGIC_4096)
79 var segid: i64 = 1
80 var si: i64 = 0
81 // ROOT FIX seq1730 (id 1785450987): segs[] holds POINTERS to seg-<id> name strings
82 // (nx_seg_store.nx:1234 stores segs[cnt] = name as i64), NOT ids -- so segs[si] + 1 produced
83 // MMAP_ADDRESS+1 (~1.4e14), the pointer-shaped poison that PINS a plane forever: every later
84 // epoch id sorts BELOW it in supersede order and its rows are silently shadowed while rc=0.
85 // Parse the DIGITS, as nx_web_shard_compact.nx:55-58 already does on this SAME array.
86 while si < nseg {
87 let sg_nm: *u8 = segs[si] as *u8
88 var sg_v: i64 = 0
89 var sg_ci: i64 = 0
90 while sg_nm[sg_ci] != (0 as u8) { let sg_c: i64 = sg_nm[sg_ci] as i64; if sg_c >= 48 { if sg_c <= 57 { sg_v = sg_v * 10 + (sg_c - 48) } } sg_ci = sg_ci + 1 }
91 if sg_v >= segid { segid = sg_v + 1 }
92 si = si + 1
93 }
94 let h: *i64 = ss_open(prefix)
95
96 let cap: i64 = K_MAGIC_8388608
97 let out: *u8 = sys_mmap(cap)
98 let tcap: i64 = K_MAGIC_1048576
99 let text: *u8 = sys_mmap(tcap)
100 let status: *i64 = sys_mmap(8) as *i64
101 let n: i64 = nx_https_fetch_follow_best(url, store, out, cap, 6, status)
102 if n <= 0 { tf_puts("FETCH-FAIL (n<=0)\n" as *u8); return 3 }
103 if status[0] != 200 { tf_puts("FETCH-FAIL status=" as *u8); tf_num(status[0]); tf_puts("\n" as *u8); return 3 }
104 let tlen: i64 = nx_html_to_text(out, n, text, tcap)
105 if tlen < CI_MINDOC { tf_puts("EXTRACT-EMPTY (tlen<min)\n" as *u8); return 4 }
106 var tn: i64 = tlen
107 if tn > CI_DOCCAP { tn = CI_DOCCAP }
108 let cid: i64 = ci_hash(text, tn)
109
110 let key: *u8 = sys_mmap(64)
111 let ukey: *u8 = sys_mmap(64)
112 let tkey: *u8 = sys_mmap(64)
113 let pbox: *i64 = sys_mmap(16) as *i64
114 let lbox: *i64 = sys_mmap(16) as *i64
115 dss_mkkey(cid, key)
116 tf_mktrustkey(cid, tkey)
117
118 let w: *i64 = ss_begin()
119 var already: i64 = 0
120 if (h as i64) != 0 { if ss_hget(h, key, pbox, lbox) == 1 { already = 1 } }
121 if already == 0 {
122 ss_add(w, 1, key, text, tn)
123 ci_mkurlkey(cid, ukey)
124 ss_add(w, 1, ukey, url, ul)
125 ss_add(w, 1, tkey, flagger, fl)
126 ss_commit(prefix, w, segid)
127 tf_puts("FLAGGED (new): cid=" as *u8); tf_num(cid); tf_puts(" chars=" as *u8); tf_num(tn); tf_puts("\n" as *u8)
128 tf_puts("TRUSTED-FLAG GREEN\n" as *u8)
129 return 0
130 }
131 // already present: append this flagger to the provenance IF not already listed (additive, no clobber)
132 var flagged: i64 = 0
133 if ss_hget(h, tkey, pbox, lbox) == 1 { if tf_has_flagger(pbox[0] as *u8, lbox[0], flagger, fl) == 1 { flagged = 1 } }
134 if flagged == 1 {
135 tf_puts("ALREADY-FLAGGED by " as *u8); tf_puts(flagger); tf_puts(" (idempotent no-op)\n" as *u8)
136 tf_puts("TRUSTED-FLAG GREEN\n" as *u8)
137 return 0
138 }
139 // build "<existing>,<flagger>" and append a fresh trust: row (ss_hget last-wins = the merged provenance)
140 var newlen: i64 = 0
141 let newval: *u8 = sys_mmap(K_MAGIC_4096)
142 if ss_hget(h, tkey, pbox, lbox) == 1 {
143 let ex: *u8 = pbox[0] as *u8
144 var i: i64 = 0
145 while i < lbox[0] { if newlen < K_MAGIC_4090 { newval[newlen] = ex[i]; newlen = newlen + 1 } i = i + 1 }
146 newval[newlen] = 44 as u8; newlen = newlen + 1 // ','
147 }
148 var j: i64 = 0
149 while j < fl { if newlen < K_MAGIC_4090 { newval[newlen] = flagger[j]; newlen = newlen + 1 } j = j + 1 }
150 ss_add(w, 1, tkey, newval, newlen)
151 ss_commit(prefix, w, segid)
152 tf_puts("RE-FLAGGED (doc present): provenance += " as *u8); tf_puts(flagger); tf_puts("\n" as *u8)
153 tf_puts("TRUSTED-FLAG GREEN\n" as *u8)
154 return 0
155}