nx_vizsla_mcp_gate.nx
buildroot/runtime/nx_vizsla_mcp_gate.nx
about
nx_vizsla_mcp_gate.nx -- GATE: the VIZSLA coordination tools are REAL MCP-level APIs. Drives the
EXACT execution layer /mcp tools/call uses (nx_tool_exec_allow tea_resolve/tea_run_argv over the
PRODUCTION tool_allowlist.conf) + the discovery registry readback (what tools/list serves) + the
rich-schema conf rows. Nothing is mocked: the resolved blessed ELFs run with a real argv and their
real stdout comes back through the capture path -- exactly what an MCP client receives.
Rows:
1 registry-discovery tool_get readback for vizsla_plan + vizsla_doc (tools/list source)
2 allowlist-resolve tea_resolve(production conf) vizsla_plan -> TEA_OK + the blessed elf path
3 mcp-exec-plan tea_run_argv board over the demo store -> VIZSLA-PLAN-VERDICT captured
4 mcp-exec-ics tea_run_argv ics export -> real .ics on disk + BEGIN:VCALENDAR + verdict
5 mcp-exec-doc tea_run_argv doc put -> list captures docs=1 (mutating tool works e2e)
6 blocked-non-green nx_http_probe row is RED -> TEA_BLOCKED, nothing executed [neg control]
7 notfound-unknown ghost tool -> TEA_NOTFOUND [negative control]
8 schema-rows tool_schemas.conf carries vizsla_plan + vizsla_doc annotation rows
Evidence: VIZSLA-MCP-GATE -> stdout + knowledge/status/vizsla_gate.log; exit 0 iff 8/8.
expect_exit: 0 license_tier: ORIGINAL
dependencies 3 imports · 0 importers
imports: nx_tool_exec_allow.nxnx_tool_registry.nxnx_gate_verdict.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 22 | func mg_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 23 | func mg_p(s: *u8) -> i64 { sys_write(1, s, mg_slen(s)); return 0 } |
| 25 | func mg_cat(dst: *u8, off: i64, s: *u8) -> i64 called by 1: main |
| 31 | func mg_catn(dst: *u8, off: i64, v: i64) -> i64 called by 1: main |
| 44 | func mg_readall(path: *u8, szout: *i64) -> *u8 |
| 61 | func mg_memhas(b: *u8, sz: i64, needle: *u8) -> i64 |
| 77 | func mg_filehas(path: *u8, needle: *u8) -> i64 |
| 84 | func mg_row(name: *u8, pass: i64) -> i64 |
| 91 | func main(argc: i64, argv: *i64) -> i64 |