code wiki / (root) / nx_accept.nx

nx_accept.nx

buildroot/runtime/nx_accept.nx

26913 B507 linesdepth 7pulls 18 transitivereach 1 importersview sourcekind tooltopic accept
docsdependenciesstructsconstsfunctions

about

nx_accept.nx -- THE THREE-PARTY ACCEPTANCE LEDGER'S VERBS (2026-08-31). Operator standing order 2026-08-30: "doing it poorly isn't a complete and needs to be shown as that on /compare and your work; it's not complete till you and I and the nishi team agree." COMPLETE means THREE signatures, each in its own sovereign plane. This organ is how the second and third are written and how all three are read; the decision itself lives in nx_accept_lib (one classifier, every consumer): status <subject> -- AGREED or NOT-AGREED with the missing party NAMED list -- every subject any plane or board names, one line each, counters emit -- regenerate buildroot/runtime/nx_accept_decl.nx from the planes: one func ga_accept_<subject> per AGREED subject, sorted, no timestamp, byte-identical while the planes are unchanged attest <subject> <seat> <words> <artifact> -- the SEAT's row: stamp = sha256 of the artifact, never typed referee <subject> <png> <tier> <seat> -- the REFEREE's row: the cjc_panel percept lens is RUN on the capture and its grade recorded; never a hand-typed number THIS ORGAN NEVER WRITES knowledge/store/accept-. The operator's plane has no verb here by construction; the operator's recipe is one nx_store_put call (see the devmgmt board note), and its targets field must carry ga_accept_<subject> or the row governs nothing and is printed as UNMAPPED with that remedy. WRITES COMPOSE THE INCUMBENT WRITER: every referee/attest row goes through nx_store_put.elf (plane lock, shrink guard, hist- provenance). This organ never touches plane bytes itself. THE REFEREE COMPOSES THE PANEL: nx_charjudge_census lens <png> <conf> is the estate's decode -> fit -> NXFH1 -> nx_percept path; this organ reads its cjp_percept= field and compares it with the panel's own per-tier floor. A tier the panel receipt has not admitted is REFUSED (an abstention is not a grade) and a lens that could not see (cjp_percept=-9999 or decoded=0) writes NO row and exits UNOBSERVABLE -- a missing grade must never read as a low one. root=<dir> re-roots every path (planes <dir>/accept- referee- attest-, conf <dir>/cjc_panel.conf, decl <dir>/nx_accept_decl.nx, boards <dir>/compare) for the gate's /tmp fixtures. Production paths are the lib's constants, resolved CWD-first then estate-root, exactly as the lib resolves them. EXIT: 0 AGREED or done | 1 NOT-AGREED | 2 usage | 3 UNKNOWN-SUBJECT | 4 REFUSED (reason named) | 5 io or writer | 6 UNOBSERVABLE (the lens could not see) license_tier: ORIGINAL No hw writes (Rule 26).

dependencies 6 imports · 1 importers

nx_syscalls.nx nx_tool_run.nx nx_accept_lib.nx nx_accept_ref_lib.nx nx_accept_release_binding.nx nx_fio.nx nx_accept.nx nx_accept_release_gate.nx

imports: nx_syscalls.nxnx_tool_run.nxnx_accept_lib.nxnx_accept_ref_lib.nxnx_accept_release_binding.nxnx_fio.nx

imported by: nx_accept_release_gate.nx

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main al_streq acm_check_release acm_release_result acm_p sys_write al_slen acm_pn sys_mmap nxa_die sys_write ↻ sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable nxa_dump_sizes al_catn sys_mmap ↻ sys_write ↻ sys_mmap ↻ fio_region_init fio_region_open fio_region_init ↻ fio_region_fail fio_region_close sys_close sys_openat_rd sys_lseek sys_munmap fio_region_close ↻ fio_region_next fio_region_close ↻ sys_read fio_region_fail ↻ arb_receipt

structs

none

consts

38const ACM_ROOT_KEY: *u8 = "root="
39const ACM_SUF_ACC: *u8 = "/accept-"
40const ACM_SUF_REF: *u8 = "/referee-"
41const ACM_SUF_ATT: *u8 = "/attest-"
42const ACM_SUF_CONF: *u8 = "/cjc_panel.conf"
43const ACM_SUF_DECL: *u8 = "/nx_accept_decl.nx"
44const ACM_SUF_BOARDS: *u8 = "/compare"
45const ACM_STORE_PUT: *u8 = "nx_store_put.elf"
46const ACM_LENS_ELF: *u8 = "nx_charjudge_census.elf"
47const ACM_LENS_VERB: *u8 = "lens"
48const ACM_LENS_KEY: *u8 = "cjp_percept="
49const ACM_LENS_UNDECODED: *u8 = "decoded=0"
50const ACM_PUT_VERB: *u8 = "put"
51const ACM_ACTOR_REFEREE: *u8 = "referee"
52const ACM_INSTRUMENT: *u8 = "cjc_panel-percept-lens"
53const ACM_ID_ATT: *u8 = "att-"
54const ACM_ID_REF: *u8 = "ref-"
55const ACM_GOOD: *u8 = "GOOD"
56const ACM_BAD: *u8 = "BAD"
58const ACM_OUTCAP: i64 = 262144
59const ACM_CAPTURE: i64 = 65536
60const ACM_ARGV_SLOTS: i64 = 24
61const ACM_POS_MAX: i64 = 8
62const ACM_IDCAP: i64 = 192
63const ACM_NUMCAP: i64 = 32
64const ACM_LP: i64 = 16
65const ACM_LENS_TMO_MS: i64 = 60000 // nx_charjudge_census CJX_TIMEOUT_MS: the panel's own per-image ceiling
66const ACM_PUT_TMO_MS: i64 = 130000 // nx_seg_store's plane-lock ceiling is 120 s (SS_LOCK_TRIES x SS_LOCK_SLEEP_MS); a writer may legitimately wait it out
67const ACM_CX_WORDS: i64 = 8
68const ACM_CX_ACC: i64 = 0
69const ACM_CX_REF: i64 = 1
70const ACM_CX_ATT: i64 = 2
71const ACM_CX_CONF: i64 = 3
72const ACM_CX_DECL: i64 = 4
73const ACM_CX_BOARDS: i64 = 5
74const ACM_CX_HASROOT: i64 = 6
75const ACM_S_WORDS: i64 = 8
76const ACM_S_BK: i64 = 0
77const ACM_S_CF: i64 = 1
78const ACM_S_DOMS: i64 = 2
79const ACM_S_ORGS: i64 = 3
80const ACM_S_PLANES: i64 = 4
81const ACM_S_BOARDS: i64 = 5
82const ACM_S_OVER: i64 = 6
83const ACM_ATT_FIELDS: i64 = 6
84const ACM_REF_FIELDS: i64 = 9
447const ACM_RELEASE_REGION_BYTES:i64=9*8

functions

86func acm_p(s: *u8) -> i64 { sys_write(1, s, al_slen(s)); return 0 }
87func acm_pn(v: i64) -> i64 { let t: *u8 = sys_mmap(ACM_NUMCAP); let n: i64 = al_catn(t, 0, v); sys_write(1, t, n); return 0 }
88func acm_join(a: *u8, b: *u8) -> *u8 { let d: *u8 = sys_mmap(AL_PATHCAP); var o: i64 = al_cat(d, 0, a); o = al_cat(d, o, b); d[o] = 0 as u8; return d }
called by 2: acm_ctxacm_referee calls 2: sys_mmapal_cat
89func acm_numz(v: i64) -> *u8 { let t: *u8 = sys_mmap(ACM_NUMCAP); let n: i64 = al_catn(t, 0, v); t[n] = 0 as u8; return t }
called by 1: acm_referee calls 2: sys_mmapal_catn
90func acm_dom(s: *i64, si: i64) -> *u8 { return (s[ACM_S_DOMS] + si * AL_NAMEW) as *u8 }
91func acm_org(s: *i64, si: i64) -> *u8 { return (s[ACM_S_ORGS] + si * AL_ORGW) as *u8 }
93func acm_usage() -> i64
called by 1: main calls 1: acm_p
102func acm_ctx(root: *u8) -> *i64
129func acm_open(cx: *i64) -> *i64
151func acm_head(tag: *u8, cx: *i64, s: *i64, out: *u8, o0: i64) -> i64
170func acm_ledger(s: *i64, out: *u8, o0: i64) -> i64
193func acm_status(cx: *i64, s: *i64, subject: *u8) -> i64
225func acm_list(cx: *i64, s: *i64) -> i64
242func acm_emit(cx: *i64, s: *i64) -> i64
300func acm_store_put(prefix: *u8, actor: *u8, id: *u8, fields: *i64, nf: i64) -> i64
324func acm_mkid(pfx: *u8, subject: *u8, epoch: i64) -> *u8
336func acm_attest(cx: *i64, s: *i64, subject: *u8, seat: *u8, words: *u8, artifact: *u8) -> i64
365func acm_referee(cx: *i64, s: *i64, subject: *u8, png: *u8, tier: *u8, seat: *u8) -> i64
434func acm_release_result(rc:i64)->i64
called by 1: acm_check_release calls 2: acm_pacm_pn
448func acm_check_release(argc:i64,argv:*i64)->i64
483func main(argc: i64, argv: *i64) -> i64