code wiki / (root) / nx_memory_tool_register.nx

nx_memory_tool_register.nx source

↩ module page · 37 lines · 2601 B

1// nx_memory_tool_register.nx -- register nx_memory (consolidated memory tool, READ-ONLY increment) 2// into the discovery registry -> mcp__nishi__nx_memory stub. Idempotent; verifies by READBACK. 3// expect_exit: 0 license_tier: ORIGINAL 4import "nx_tool_registry.nx" 5 6const ASCII_0: i64 = 48 // named so this registrar is itself rule-11 clean 7 8func mr_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 9func mr_putn(v: i64) -> i64 { 10 if v == 0 { sys_write(1, "0" as *u8, 1); return 0 } 11 var m: i64 = v 12 if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m } 13 let d: *u8 = sys_mmap(24); var k: i64 = 0 14 while m > 0 { d[k] = (ASCII_0 + (m % 10)) as u8; m = m / 10; k = k + 1 } 15 let o: *u8 = sys_mmap(24); var i: i64 = 0 16 while i < k { o[i] = d[k - 1 - i]; i = i + 1 } 17 sys_write(1, o, k) 18 return 0 19} 20 21func main() -> i64 { 22 mr_puts("=== nx_memory_tool_register -- structured seg-store reads into the discovery registry ===\n" as *u8) 23 let w: i64 = tool_register("nx_memory" as *u8, 24 "Consolidated memory tool (READ-ONLY): STRUCTURED reads over the sovereign seg-stores (the ecosystem memory substrate) -- latest-version resolution, tombstone semantics, version history; what raw file reads cannot give. VERBS: stores <dir> = discover every seg-store + live segment count; get <prefix> <key> = LATEST value; history <prefix> <key> = per-version kind+len; index <prefix> <idxkey> = a registry id-index (e.g. __toolidx__). put/tombstone = later increment behind a write-cap." as *u8, 25 "over /mcp: tools/call name=nx_memory arguments={argv:[VERB,...]}. e.g. {argv:[\"stores\",\"knowledge\"]} ; {argv:[\"get\",\"knowledge/toolreg-\",\"tool:nx_fs\"]} -> latest record ; {argv:[\"index\",\"knowledge/toolreg-\",\"__toolidx__\"]}. exit in _meta: 0 ok | 3 absent | 4 tombstoned." as *u8, 26 "GREEN (nx_memory_gate 7/7 on a REAL fixture store: latest-version get, absent vs TOMBSTONED distinct, history count, index readback, store discovery + true uncapped segcount; rule-11 0-magic)" as *u8) 27 let p: *i64 = sys_mmap(8) as *i64 28 let l: *i64 = sys_mmap(8) as *i64 29 let g: i64 = tool_get("nx_memory" as *u8, p, l) 30 mr_puts(" nx_memory put-rc=" as *u8); mr_putn(w); mr_puts(" readback=" as *u8) 31 if g == 1 { if l[0] > 0 { 32 mr_puts("OK len=" as *u8); mr_putn(l[0]); mr_puts("\nverdict=GREEN (nx_memory discoverable -> mcp__nishi__nx_memory stub)\n" as *u8) 33 sys_exit(0); return 0 34 } } 35 mr_puts("MISSING -- REGISTER FAILED\nverdict=RED\n" as *u8) 36 sys_exit(1); return 1 37}