code wiki / (root) / nx_matter_gate.nx

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}