code wiki / (root) / nx_extllm.nx

nx_extllm.nx

buildroot/runtime/nx_extllm.nx

16350 B226 linesdepth 4pulls 6 transitivereach 0 importersview sourcekind tooltopic extllm
docsdependenciesstructsconstsfunctions

about

nx_extllm.nx -- THE EGRESS WARDEN: the front door every external-model call must pass. Rungs XL1 (terms ledger) + XL2 (egress classifier) of /compare/extllm -- the CODE half of two conf files authored 2026-08-24 whose reader never landed. MEASURED 2026-08-25 before building: xl_egress is ABSENT over 61,475 files (coverage_complete=1 corpus_complete=1), and NO source in the 23,235-file corpus even names extllm_terms.conf -- 13 fully-pinned provider rows sitting inert with zero readers. Every third-party LLM vendor host is likewise ABSENT-PROVEN, so there is no egress path in the estate today. That is the rare chance to put the guard in the path BEFORE the path exists. THE CUMULATIVE BOUND IS THE POINT: splitting work into parts defeats a SINGLE call and does nothing about aggregation ACROSS calls. Motro, Marks and Jajodia (ESORICS 1994) describe their controlled-disclosure system as foiling attempts to attack secrets by breaking queries into sequences of smaller requests. Splitting is the attack that literature answers, not the answer. The odometer is the mechanism. NOT differential privacy: a DP epsilon is quantified over the coin flips of a randomised mechanism (Dwork and Roth, Definition 2.4). A verbatim fragment has no coins, so epsilon is infinity here and every composition theorem is vacuous. This organ prints BYTES, which it can measure, never an epsilon. terms <provider> <tier> <use> -- may this provider serve this use class classify <path> <sha256> -- U or C for one path against the operator manifest spent <provider> <ledger> -- cumulative bytes this provider has EVER been shown selftest -- gv_verdict gate, in-memory fixtures, no shared state exit 0 ALLOW / 1 REFUSE / 3 UNKNOWN-REFUSED / 2 usage. license_tier: ORIGINAL. No hw writes (Rule 26).

dependencies 5 imports · 0 importers

nx_extllm_lib.nx nx_estate_path.nx nx_gate_verdict.nx nx_sovjson_lib.nx nx_syscalls.nx nx_extllm.nx

imports: nx_extllm_lib.nxnx_estate_path.nxnx_gate_verdict.nxnx_sovjson_lib.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 sj_werr sys_write sys_exit 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 sys_write ↻ nxa_dump_sizes sys_write ↻ sj_lit_eq sj_vlen xe_selftest gv_ctr sys_mmap ↻ gv_head gv_puts sys_write ↻ sys_mmap ↻ sj_cat gv_check gv_puts ↻ xl_use_verdict sys_mmap ↻ xl_row_find sys_mmap ↻ sj_le xl_is_comment xl_col sj_lit_eq ↻ xl_ncols

structs

none

consts

26const XE_OUT: i64 = 8192
27const XE_USAGE: i64 = 2
28const XE_PATH: i64 = 1024
33const XE_ESC_NAME: i64 = 64
34const XE_ESC_USE: i64 = 32
35const XE_ESC_PATH: i64 = 200
36const XE_SPAN_BYTES: i64 = 16
37const XE_FIX_BUF: i64 = 4096
38const XE_FIX_EMPTY: i64 = 64

functions

46func xe_read_estate(p: *u8, out_len: *i64) -> *u8
56func xl_terms_ledger(q: *u8, n: i64, provider: *u8, tier: *u8, use: i64) -> i64
calls 1: xl_use_verdict
59func xl_egress_class(q: *u8, n: i64, path: *u8, actual_sha: *u8) -> i64
calls 1: xl_class_of
63func xe_use_code(s: *u8) -> i64
called by 1: main calls 2: sj_lit_eqsj_vlen
70func xe_emit_terms(prov: *u8, tier: *u8, use: *u8, v: i64, trains: i64, out: *u8) -> i64
87func xe_emit_class(path: *u8, cls: i64, rows: i64, out: *u8) -> i64
106func xe_selftest() -> i64
157func main(argc: i64, argv: *i64) -> i64