nx_box.nx source
↩ module page · 43 lines · 2048 B
1// nx_box.nx -- Nishi Box (F503) CLI/MCP organ: self-verifying demo over nx_box_lib.
2// Matter-scoped legal DMS: privilege tags, PRIVILEGE LOG (e-discovery), Bates, isolation.
3// license_tier: ORIGINAL
4
5import "nx_box_lib.nx"
6const K_MAGIC_1024: i64 = 1024
7
8func main() -> i64 {
9 let p: *u8 = "/tmp/nx_box_demo-" as *u8
10 let b1: *u8 = sys_mmap(64)
11 box_bates("ACME" as *u8, 1, b1)
12 let b2: *u8 = sys_mmap(64)
13 box_bates("ACME" as *u8, 2, b2)
14 let b3: *u8 = sys_mmap(64)
15 box_bates("ACME" as *u8, 3, b3)
16 let bb: *u8 = sys_mmap(64)
17 box_bates("BETA" as *u8, 1, bb)
18 box_doc_put(p, "M1" as *u8, "D1" as *u8, "Complaint" as *u8, "nxc1-doc1" as *u8, "no" as *u8, b1)
19 box_doc_put(p, "M1" as *u8, "D2" as *u8, "Privileged memo" as *u8, "nxc1-doc2" as *u8, "yes" as *u8, b2)
20 box_doc_put(p, "M1" as *u8, "D3" as *u8, "Attorney notes" as *u8, "nxc1-doc3" as *u8, "yes" as *u8, b3)
21 box_doc_put(p, "M2" as *u8, "D1" as *u8, "Other matter doc" as *u8, "nxc1-doc4" as *u8, "no" as *u8, bb)
22
23 let npriv: *i64 = sys_mmap(16) as *i64
24 let plog: *u8 = sys_mmap(K_MAGIC_1024)
25 let total: i64 = box_matter_scan(p, "M1" as *u8, npriv, plog)
26 if total != 3 { return __syscall(93, 71, 0, 0, 0, 0, 0) }
27 if npriv[0] != 2 { return __syscall(93, 72, 0, 0, 0, 0, 0) }
28 let np2: *i64 = sys_mmap(16) as *i64
29 let pl2: *u8 = sys_mmap(256)
30 if box_matter_scan(p, "M2" as *u8, np2, pl2) != 1 { return __syscall(93, 73, 0, 0, 0, 0, 0) }
31 if np2[0] != 0 { return __syscall(93, 74, 0, 0, 0, 0, 0) }
32
33 let out: *u8 = sys_mmap(512)
34 var o: i64 = 0
35 o = mt_catcopy(out, o, "NISHI-BOX OK matter=M1 docs=3 privileged=2 privilege-log=[" as *u8)
36 var z: i64 = 0
37 while plog[z] != (0 as u8) { if plog[z] == 10 as u8 { out[o] = 44 as u8 } else { out[o] = plog[z] } o = o + 1; z = z + 1 }
38 o = mt_catcopy(out, o, "] M2-isolated-docs=1 privileged=0 (privilege-log = e-discovery deliverable)" as *u8)
39 out[o] = 10 as u8
40 o = o + 1
41 sys_write(1, out, o)
42 return __syscall(93, 0, 0, 0, 0, 0, 0)
43}