nx_matter_gate.nx source
↩ module page · 69 lines · 3232 B
1// nx_matter_gate.nx -- INDEPENDENT gate for the Matter/Client spine (imports the SAME
2// shipped nx_matter_lib = an atlas validation edge, not a copy). Stronger than the CLI:
3// cross-matter conflict + the matched matter-ids + single-matter + clear + field-decode +
4// absent. SELF-PUBLISHES knowledge/status/office_matter_gate.log (needle "VERDICT=") so
5// the ecomat ruler live-derives office-legal from real evidence. license_tier: ORIGINAL
6
7import "nx_matter_lib.nx"
8
9// does newline-separated buf contain a line exactly == needle?
10func mtg_has(buf: *u8, needle: *u8) -> i64 {
11 var ls: i64 = 0
12 var i: i64 = 0
13 while 1 == 1 {
14 var eol: i64 = 0
15 if buf[i] == (0 as u8) { eol = 1 }
16 if buf[i] == 10 as u8 { eol = 1 }
17 if eol == 1 {
18 var m: i64 = 1
19 var c: i64 = 0
20 while ls + c < i { if buf[ls + c] != needle[c] { m = 0 } c = c + 1 }
21 if m == 1 { if needle[i - ls] == (0 as u8) { return 1 } }
22 if buf[i] == (0 as u8) { return 0 }
23 ls = i + 1
24 }
25 i = i + 1
26 }
27 return 0
28}
29
30func main() -> i64 {
31 var pass: i64 = 0
32 let p: *u8 = "/tmp/nx_matter_gate-" as *u8
33 mt_client_put(p, "C1" as *u8, "Acme Corp" as *u8, "gc@acme.com" as *u8)
34 mt_client_put(p, "C2" as *u8, "Beta LLC" as *u8, "legal@beta.com" as *u8)
35 mt_matter_put(p, "M1" as *u8, "C1" as *u8, "Acme v Beta" as *u8, "litigation" as *u8)
36 mt_party_add(p, "M1" as *u8, 0, "Alice Adams" as *u8, "plaintiff" as *u8)
37 mt_party_add(p, "M1" as *u8, 1, "Bob Baker" as *u8, "defendant" as *u8)
38 mt_matter_put(p, "M2" as *u8, "C2" as *u8, "Beta financing" as *u8, "corporate" as *u8)
39 mt_party_add(p, "M2" as *u8, 0, "Carol Chen" as *u8, "counterparty" as *u8)
40 mt_party_add(p, "M2" as *u8, 1, "Bob Baker" as *u8, "guarantor" as *u8)
41
42 let mm: *u8 = sys_mmap(1024)
43 if mt_conflict(p, "Bob Baker" as *u8, mm) == 2 { pass = pass + 1 }
44 if mtg_has(mm, "M1" as *u8) == 1 { if mtg_has(mm, "M2" as *u8) == 1 { pass = pass + 1 } }
45 let ma: *u8 = sys_mmap(256)
46 if mt_conflict(p, "Alice Adams" as *u8, ma) == 1 { pass = pass + 1 }
47 let mz: *u8 = sys_mmap(256)
48 if mt_conflict(p, "Zoe Zane" as *u8, mz) == 0 { pass = pass + 1 }
49 let f: *u8 = sys_mmap(256)
50 mt_matter_field(p, "M1" as *u8, "title" as *u8, 5, f)
51 if mt_streq(f, "Acme v Beta" as *u8) == 1 { pass = pass + 1 }
52 mt_matter_field(p, "M2" as *u8, "area" as *u8, 4, f)
53 if mt_streq(f, "corporate" as *u8) == 1 { pass = pass + 1 }
54 if mt_matter_field(p, "M9" as *u8, "title" as *u8, 5, f) < 0 { pass = pass + 1 }
55
56 let out: *u8 = sys_mmap(512)
57 var o: i64 = 0
58 o = mt_catcopy(out, o, "OFFICE-MATTER-GATE tests=7 pass=" as *u8)
59 o = mt_catn(out, o, pass)
60 o = mt_catcopy(out, o, " conflict-scan+cross-matter-ids+single+clear+field-decode+absent VERDICT=" as *u8)
61 if pass == 7 { o = mt_catcopy(out, o, "GREEN" as *u8) }
62 if pass != 7 { o = mt_catcopy(out, o, "RED" as *u8) }
63 out[o] = 10 as u8
64 o = o + 1
65 ss_writefile("knowledge/status/office_matter_gate.log" as *u8, out, o)
66 sys_write(1, out, o)
67 if pass == 7 { return __syscall(93, 0, 0, 0, 0, 0, 0) }
68 return __syscall(93, 40 + pass, 0, 0, 0, 0, 0)
69}