code wiki / _hdl_build / nx_uiq_sentinel.nx

nx_uiq_sentinel.nx source

↩ module page · 48 lines · 2369 B

1// nx_uiq_sentinel.nx -- CLI: the zero-Claude experiential sentinel (F106c). 2// usage: nx_uiq_sentinel --kat (lifecycle self-test) 3// nx_uiq_sentinel baseline <dir> <prefix> [listfile] (bless current pages -> copies + manifest) 4// nx_uiq_sentinel check <dir> <prefix> (classify vs baseline -> JSON verdict) 5// license_tier: ORIGINAL expect_exit: 0 genealogy: F106c; composes nx_uiq_console + nx_uiq_atree 6import "nx_uiq_sentinel_lib.nx" 7 8func main(argc: i64, argv: *i64) -> i64 { 9 if argc>=2 { 10 let a1: *u8 = argv[1] as *u8 11 if a1[0]==(45 as u8) { 12 uiq_w("=== nx_uiq_sentinel --kat (baseline/check lifecycle) ===\n" as *u8) 13 let f: i64 = us_selftest() 14 uiq_w("checks failed=" as *u8); uiq_pn(f); uiq_w(" (baseline rows + clean + console-regressed-not-drift + drift + ghost-missing)\n" as *u8) 15 if f==0 { uiq_w("VERDICT=GREEN\n" as *u8); sys_exit(0); return 0 } 16 uiq_w("VERDICT=RED\n" as *u8); sys_exit(1); return 1 17 } 18 let vl: i64 = cs_len(a1) 19 if at_tag_eq(a1, 0, vl, "baseline" as *u8)==1 { 20 if argc<4 { uiq_w("usage: nx_uiq_sentinel baseline <dir> <prefix> [listfile]\n" as *u8); sys_exit(2); return 2 } 21 let dz: *u8 = argv[2] as *u8 22 let px: *u8 = argv[3] as *u8 23 var lf: *u8 = 0 as *u8 24 if argc>=5 { lf = argv[4] as *u8 } 25 let r: i64 = us_baseline(dz, px, lf, 1) 26 if r<0 { sys_exit(2); return 2 } 27 sys_exit(0); return 0 28 } 29 if at_tag_eq(a1, 0, vl, "check" as *u8)==1 { 30 if argc<4 { uiq_w("usage: nx_uiq_sentinel check <dir> <prefix>\n" as *u8); sys_exit(2); return 2 } 31 let dz: *u8 = argv[2] as *u8 32 let px: *u8 = argv[3] as *u8 33 let out: *i64 = sys_mmap(64) as *i64 34 let r: i64 = us_check(dz, px, out, 1, 1) 35 if r<0 { sys_exit(2); return 2 } 36 sys_exit(0); return 0 37 } 38 if at_tag_eq(a1, 0, vl, "cron" as *u8)==1 { 39 let r: i64 = us_cron() 40 sys_exit(r); return r 41 } 42 uiq_w("usage: nx_uiq_sentinel --kat | baseline <dir> <prefix> [listfile] | check <dir> <prefix> | cron\n" as *u8) 43 sys_exit(2); return 2 44 } 45 let r0: i64 = us_cron() 46 sys_exit(r0) 47 return r0 48}