code wiki / _hdl_build / nx_info_registry.nx

nx_info_registry.nx

buildroot/runtime/_hdl_build/nx_info_registry.nx

39198 B891 linesdepth 5pulls 6 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_info_registry.nx -- NATIVE FEATURES + RISK REGISTRIES on the information plane (operator 2026-07-20: workstreams pay a detective-work tax re-deriving what exists and what can bite; the features registry + risk register become NATIVE planes, queryable by any seat/agent). READS the seg-store planes seeded via nx_store_put (compose, never re-implement the store): knowledge/store/featreg- 9-col id title status owner scope entry surface evidence note knowledge/store/riskreg- 10-col id title likelihood impact status owner scope mitigation trigger note Exposure = likelihood*impact is DERIVED here, never stored (same law as frontier float). Verbs: nx_info_registry features [query] -> JSON rows (value-substring filter, values only) nx_info_registry risks [query] -> JSON rows + derived exposure per row nx_info_registry board -> JSON counts by status + top OPEN risk by exposure nx_info_registry page -> writes registries_stage.html (publish via nx_site_publish) nx_info_registry selftest -> 6 structural teeth, VERDICT GREEN/RED, exit 0/3 FAIL-CLOSED: an unseeded plane exits 4 with a loud message -- a missing registry is a defect, never an empty list. Malformed rows are SKIPPED but COUNTED in the declared envelope. license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0

dependencies 3 imports · 0 importers

nx_store_seed_lib.nx nx_seg_store.nx nx_syscalls.nx nx_info_registry.nx

imports: nx_store_seed_lib.nxnx_seg_store.nxnx_syscalls.nx

imported by: nobody (leaf or entry point)

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

main irx_werr sys_write irx_slen sys_exit irx_eqs irx_emit_registry sys_mmap irx_load_or_die sts_load ss_open_cached ssc_init sys_mmap ↻ ssc_sig_of ss_cat sys_fstatat ssc_streq ss_open ss_open2 ssc_retire_handle sts_mm sys_mmap ↻ sts_werr sys_write ↻ sys_exit ↻ ss_hget sys_mmap ↻ ss_idx_find ss_r32 ss_len ss_kcmp sts_atoi sts_rowkey ss_catn sys_mmap ↻ sts_emit_row nxr_count nxr_r16 rtv_to_tsv nxr_find

structs

none

consts

20const IRX_MAGIC_4096: i64 = 4096
22const IRX_CAP: i64 = 1048576
23const IRX_OUT: i64 = 4194304
24const IRX_NL: i64 = 10
25const IRX_TAB: i64 = 9
26const IRX_QU: i64 = 34
27const IRX_COLON: i64 = 58
28const IRX_COMMA: i64 = 44
29const IRX_LB: i64 = 123
30const IRX_RB: i64 = 125
31const IRX_LSQ: i64 = 91
32const IRX_RSQ: i64 = 93
33const IRX_BANG: i64 = 33
34const IRX_MAXCOL: i64 = 16
35const IRX_PAIR: i64 = 2
36const IRX_SP2: i64 = 256
37const IRX_FEAT_NCOL: i64 = 9
38const IRX_RISK_NCOL: i64 = 10
39const IRX_DEC_NCOL: i64 = 9
40const IRX_STDERR: i64 = 2
41const IRX_EXIT_USAGE: i64 = 2
42const IRX_EXIT_RED: i64 = 3
43const IRX_EXIT_ABSENT: i64 = 4
44const IRX_FMODE: i64 = 420

functions

46func irx_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
47func irx_werr(s: *u8) -> i64 { sys_write(IRX_STDERR, s, irx_slen(s)); return 0 }
48func irx_eqs(a: *u8, b: *u8) -> i64
called by 1: main
54func irx_slice_eqs(q: *u8, a: i64, b: i64, s: *u8) -> i64
called by 1: irx_do_board calls 1: irx_slen
62func irx_slice_eq_slice(q: *u8, a1: i64, b1: i64, r: *u8, a2: i64, b2: i64) -> i64
69func irx_cols(q: *u8, ls: i64, le: i64, sp: *i64) -> i64
84func irx_b(d: *u8, o: i64, c: i64) -> i64 { d[o] = c as u8; return o + 1 }
86func irx_cat_slice_json(d: *u8, o: i64, q: *u8, a: i64, b: i64) -> i64
101func irx_cat_slice_html(d: *u8, o: i64, q: *u8, a: i64, b: i64) -> i64
115func irx_atoi_slice(q: *u8, a: i64, b: i64) -> i64
126func irx_find_sub(q: *u8, ls: i64, le: i64, s: *u8) -> i64
142func irx_jkey(d: *u8, o: i64, k: *u8) -> i64
149func irx_jcstr(d: *u8, o: i64, k: *u8, v: *u8) -> i64
156func irx_jslice(d: *u8, o: i64, k: *u8, q: *u8, a: i64, b: i64) -> i64
163func irx_jint(d: *u8, o: i64, k: *u8, v: i64) -> i64
168func irx_load_or_die(prefix: *u8, b: *u8) -> i64
174func irx_emit_registry(kindfeat: i64, query: *u8, hasq: i64) -> i64
279func irx_dec_dangling(b: *u8, n: i64) -> i64
315func irx_superseded_by(b: *u8, n: i64, ida: i64, idb: i64, sp2: *i64, out: *u8, o: i64) -> i64
338func irx_emit_decisions(query: *u8, hasq: i64) -> i64
420func irx_do_board() -> i64
568func irx_page_row(out: *u8, o: i64, q: *u8, sp: *i64, nc: i64) -> i64
581func irx_page_superseded_by_html(out: *u8, o: i64, b: *u8, n: i64, ida: i64, idb: i64) -> i64
603func irx_do_page() -> i64
736func irx_do_selftest() -> i64
858func main(argc: i64, argv: *i64) -> i64