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}