code wiki / _hdl_build / nx_tools_api_canonical_candidate_t182.nx

nx_tools_api_canonical_candidate_t182.nx

buildroot/runtime/_hdl_build/nx_tools_api_canonical_candidate_t182.nx

152509 B2430 linesdepth 8pulls 32 transitivereach 0 importersview sourcekind orphan librarytopic tools
docsdependenciesstructsconstsfunctions

dependencies 9 imports · 0 importers

nx_jobclaim_lib.nx nx_mcp_envelope.nx nx_json_lib.nx nx_tool_registry.nx nx_cap_token.nx nx_tool_exec_allow.nx nx_tool_http_backend.nx sha256.nx nx_toolcall_idem_lib.nx nx_tools_api_canonical_candida

imports: nx_jobclaim_lib.nxnx_mcp_envelope.nxnx_json_lib.nxnx_tool_registry.nxnx_cap_token.nxnx_tool_exec_allow.nxnx_tool_http_backend.nxsha256.nxnx_toolcall_idem_lib.nx

imported by: nobody (leaf or entry point)

structs

none

consts

19const TA_MAGIC_65536: i64 = 65536
24const TA_CAPTURE_CAP: i64 = 163840
25const TA_MAGIC_8192: i64 = 8192
26const TA_MAGIC_1048576: i64 = 1048576
27const TA_MAGIC_9999999999: i64 = 9999999999
28const TA_MAGIC_2048: i64 = 2048
29const TA_MAGIC_4096: i64 = 4096
30const TA_MAGIC_1469598: i64 = 1469598
31const TA_MAGIC_16384: i64 = 16384
32const TA_MAGIC_4294967295: i64 = 4294967295
33const TA_MAGIC_3600: i64 = 3600
34const TA_MAGIC_88161: i64 = 88161
36const TA_TOOLPFX: *u8 = "knowledge/toolreg-" as *u8 // production registry prefix (mirrors TOOL_PREFIX)
37const TA_MCP_PAGE: i64 = 64 // MCP tools/list page size (cursor pagination); clients walk nextCursor.
41const TA_ALL_LIMIT: i64 = 100000 // /api/tools emits ALL tools (effectively-unbounded page)
44const TA_CAP_SECRET: *u8 = "nishi-tools-cap-hmac-secret-v1-REPLACE-FROM-VAULT" as *u8
48const TA_CAP_KEYFILE: *u8 = "tools_cap_secret.key" as *u8
140const TA_LOG_I64_WIDTH: i64 = 20
141const TA_LOG_I64_MAX: i64 = 9223372036854775807
261const TA_CAPMODE_SLOTS: i64 = 16
262const TA_CAPMODE_UNSEEN: i64 = 0
263const TA_CAPMODE_PROV: i64 = 1
264const TA_CAPMODE_PLACE: i64 = 2
265const TA_CAPMODE_MODE: i64 = 420
266const TA_CAPMODE_LINE: i64 = 512
267const TA_CAPMODE_JRNL: *u8 = "knowledge/status/capmode.jrnl" as *u8
499const TA_SCHEMACONF: *u8 = "knowledge/tool_schemas.conf" as *u8 // server CWD-relative (like tool_allowlist.conf)
503const TA_GRAMMARCONF: *u8 = "knowledge/tool_grammar.conf" as *u8
508const TA_FLAGSCONF: *u8 = "knowledge/tool_flags.conf" as *u8
511const TA_SYS_OPENAT: i64 = 257
512const TA_AT_FDCWD: i64 = 0 - 100
513const TA_OEXCL: i64 = 193 // O_CREAT(0x40)|O_EXCL(0x80)|O_WRONLY(0x1)
514const TA_CLAIMMODE: i64 = 420 // 0644
1003const TA_REVOKED_LIST: *u8 = "cap_revoked.list" as *u8 // newline-separated decimal nonces, relative to the server CWD
1130const TA_REPLY_MS_UNOBSERVED: i64 = 0 - 1 // inline path: the reply has not been written when the row is stamped
1235const TT_UNKNOWN: i64 = 0-1
1236const TT_I64_MAX: i64 = 9223372036854775807
1237const TT_US_PER_SEC: i64 = 1000000
1238const TT_NS_PER_US: i64 = 1000
1239const TT_NS_PER_SEC: i64 = 1000000000
1240const TT_I64_WIDTH: i64 = 20
1987const TA_CONSENT_LOG: *u8 = "cap_consent.log" as *u8
2113const OC_SLOTS: i64 = 256

functions

51func ta_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
52func ta_cat(d: *u8, o: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { d[o + i] = s[i]; i = i + 1 } return o + i }
72func ta_job_put(path: *u8, buf: *u8, n: i64) -> i64
94func ta_job_publish(output_path: *u8, output: *u8, output_n: i64, temp_path: *u8, marker: *u8, marker_n: i64, claim_path: *u8) -> i64
102func ta_catb(d: *u8, o: i64, s: *u8, n: i64) -> i64 { var i: i64 = 0; while i < n { d[o + i] = s[i]; i = i + 1 } return o + n }
103func ta_catn(d: *u8, o: i64, v: i64) -> i64
142func ta_log_size_add(a: i64, b: i64) -> i64
149func ta_journal_write_fd(fd: i64, row: *u8, n: i64) -> i64
called by 1: ta_journal_append
161func ta_journal_append(path: *u8, row: *u8, n: i64) -> i64
175func ta_actlog_x_to(path: *u8, tool: *u8, tlen: i64, lane: *u8, status: *u8, ec: i64, bytes: i64, dur_ms: i64, extra: *u8) -> i64
209func ta_actlog_x(tool: *u8, tlen: i64, lane: *u8, status: *u8, ec: i64, bytes: i64, dur_ms: i64, extra: *u8) -> i64
212func ta_actlog(tool: *u8, tlen: i64, lane: *u8, status: *u8, ec: i64, bytes: i64, dur_ms: i64) -> i64
216func ta_put1(d: *u8, o: i64, a: i64) -> i64 { d[o] = a as u8; return o + 1 }
called by 1: ta_json_esc
217func ta_put2(d: *u8, o: i64, a: i64, b: i64) -> i64 { d[o] = a as u8; d[o + 1] = b as u8; return o + 2 }
called by 1: ta_json_esc
218func ta_hexd(v: i64) -> i64 { if v < 10 { return 48 + v } return 87 + v } // 0-9 then a-f
called by 1: ta_json_esc
224func ta_load_cap_secret_from(keyfile: *u8, outlen: *i64) -> *u8
269func ta_capmode_announce(mode: i64) -> i64
called by 1: ta_load_cap_secret calls 2: ta_catnta_cat
308func ta_load_cap_secret(outlen: *i64) -> *u8
321func ta_cap_provisioned_from(keyfile: *u8) -> i64
331func ta_cap_provisioned() -> i64 { return ta_cap_provisioned_from(TA_CAP_KEYFILE) }
334func ta_streq_n(a: *u8, an: i64, b: *u8) -> i64
343func ta_json_esc(d: *u8, o: i64, s: *u8, n: i64) -> i64
362func ta_indexof(hay: *u8, hn: i64, needle: *u8) -> i64
377func ta_body_off(req: *u8, req_n: i64) -> i64
386func ta_reqline(req: *u8, req_n: i64, mo: *i64, po: *i64) -> i64
403func ta_json_str(body: *u8, n: i64, keyq: *u8, out2: *i64) -> i64
418func ta_json_raw(body: *u8, n: i64, keyq: *u8, out2: *i64) -> i64
446func ta_json_str_array(body: *u8, n: i64, keyq: *u8, out: *i64, base: i64, maxn: i64, scratch: *u8, scap: i64) -> i64
479func ta_emit(out: *u8, status: *u8, body: *u8, body_n: i64) -> i64
487func ta_emit_lit(out: *u8, status: *u8, lit: *u8) -> i64 { return ta_emit(out, status, lit, ta_slen(lit)) }
516func ta_bool_json(v: i64) -> *u8 { if v == 1 { return "true" as *u8 } return "false" as *u8 }
519func ta_tsv_field(buf: *u8, ls: i64, le: i64, idx: i64, out2: *i64) -> i64
539func ta_emit_mcp_schema_from(conf: *u8, name: *u8, nlen: i64, body: *u8, bin: i64) -> i64
553func ta_grammar_lookup(gbuf: *u8, gbn: i64, name: *u8, nlen: i64, out2: *i64) -> i64
586func ta_od_has(buf: *u8, od_s: i64, od_l: i64, needle: *u8) -> i64
called by 1: ta_od_is_regstub calls 1: ta_slen
607func ta_od_is_regstub(buf: *u8, od_s: i64, od_l: i64) -> i64
called by 1: ta_emit_mcp_schema_buf2 calls 1: ta_od_has
614func ta_flags_lookup(fbuf: *u8, fbn: i64, name: *u8, nlen: i64, out4: *i64) -> i64
650func ta_emit_mcp_schema_buf2(buf: *u8, bufn: i64, gbuf: *u8, gbn: i64, fbuf: *u8, fbn: i64, name: *u8, nlen: i64, body: *u8, bin: i64) -> i64
747func ta_emit_mcp_schema_buf(buf: *u8, bufn: i64, name: *u8, nlen: i64, body: *u8, bin: i64) -> i64
750func ta_emit_mcp_schema(name: *u8, nlen: i64, body: *u8, bin: i64) -> i64 { return ta_emit_mcp_schema_from(TA_SCHEMACONF, name, nlen, body, bin) }
753func ta_emit_field(body: *u8, b: i64, rec: *u8, rl: i64, idx: i64) -> i64
called by 1: ta_emit_tools calls 1: ta_json_esc
768func ta_desc_is_stub(rec: *u8, rl: i64, name: *u8, nlen: i64) -> i64
called by 1: ta_emit_tools calls 1: ta_slen
785func ta_schema_title_buf(buf: *u8, bufn: i64, name: *u8, nlen: i64, out2: *i64) -> i64
called by 1: ta_emit_tools calls 1: ta_tsv_field
816func ta_emit_tools(prefix: *u8, body: *u8, bin: i64, mcp: i64, offset: i64, limit: i64, out_more: *i64) -> i64
904func ta_index(out: *u8) -> i64
called by 1: ta_handle_pfx calls 1: ta_emit_lit
908func ta_emit_page(out: *u8, html: *u8, n: i64) -> i64
called by 1: ta_html_tools calls 3: ta_catta_catnta_catb
918func ta_html_tools(out: *u8) -> i64
called by 1: ta_handle_pfx calls 2: ta_catta_emit_page
927func ta_tools(prefix: *u8, out: *u8) -> i64
936func ta_header(req: *u8, req_n: i64, key: *u8, out2: *i64) -> i64
965func ta_query_cap(req: *u8, req_n: i64, out2: *i64) -> i64
called by 1: ta_mcp_call calls 1: ta_reqline
995func ta_query_cap_available() -> i64
1004func ta_openat_append(path: *u8) -> i64 { return __syscall(257, AT_FDCWD, path, 0x441, 0x1a4, 0, 0) } // O_WRONLY|O_CREAT|O_APPEND, 0644
1005func ta_nonce_revoked(nonce: i64) -> i64
called by 1: ta_mcp_call calls 1: ta_catn
1024func ta_append_revoked(nonce: i64) -> i64
1036func ta_name_in_lines(buf: *u8, n: i64, nm: *u8, nl: i64) -> i64
called by 1: ta_async_match
1067func ta_async_match(buf: *u8, n: i64, nm: *u8, nl: i64, av: *i64, ac: i64) -> i64
called by 1: ta_mcp_call calls 1: ta_name_in_lines
1132func ta_defer_enable() -> i64 { ta_defer_ok = 1; return 0 }
1133func ta_promote_pending() -> i64 { return ta_pp_pending }
1136func ta_promote_bookkeep(nmp: *u8, nml: i64, jidp: i64, jpathp: *u8, joutp: *u8, jtmpp: *u8, xout: *u8, precap: i64, wrfd0: i64, t0: i64, reply_ms: i64) -> i64
1212func ta_async_pending() -> i64 { return ta_ap_pending }
1213func ta_async_finish() -> i64
calls 1: ta_actlog
1224func ta_promote_finish() -> i64
1261func ta_timing_now_us() -> i64
1273func ta_timing_elapsed(begin: i64, end: i64) -> i64
called by 1: ta_timing_emit_to
1278func ta_timing_field_ok(s: *u8, n: i64) -> i64
called by 1: ta_timing_emit_to
1287func ta_timing_emit_to(path: *u8, tool: *u8, tlen: i64, lane: *u8, phase: *u8, job: i64, begin: i64, end: i64, code: i64, bytes: i64) -> i64
1342func ta_timing_emit(tool: *u8, tlen: i64, lane: *u8, phase: *u8, job: i64, begin: i64, end: i64, code: i64, bytes: i64) -> i64
1345func ta_timing_begin() -> i64
1354func ta_timing_bind(tool: *u8, n: i64) -> i64 { tt_tool = tool; tt_tool_n = n; return 0 }
called by 1: ta_mcp_call
1355func ta_timing_read_done() -> i64 { tt_read_end = ta_timing_now_us(); return 0 }
1356func ta_timing_handle_begin() -> i64 { tt_handle_begin = ta_timing_now_us(); return 0 }
1357func ta_timing_handle_done() -> i64 { tt_handle_end = ta_timing_now_us(); return 0 }
1358func ta_timing_write_begin() -> i64 { tt_write_begin = ta_timing_now_us(); return 0 }
1359func ta_timing_runner(begin: i64, end: i64, code: i64, bytes: i64) -> i64
called by 1: ta_mcp_call
1363func ta_timing_reply_prepare(code: i64) -> i64
1369func ta_timing_reply_log(bytes: i64) -> i64
calls 1: ta_timing_emit
1388func ta_idempotency_key(body: *u8, bn: i64, out2: *i64) -> i64 { return ta_json_str(body, bn, "\"_idem\"" as *u8, out2) }
called by 1: ta_mcp_call calls 1: ta_json_str
1390func ta_mcp_call(prefix: *u8, req: *u8, req_n: i64, body: *u8, bn: i64, jb: *u8, bin: i64) -> i64
1873func ta_mcp_resread(body: *u8, bn: i64, jb: *u8, b0: i64) -> i64
1902func ta_mcp_promget(body: *u8, bn: i64, jb: *u8, b0: i64) -> i64
1929func ta_mcp(prefix: *u8, req: *u8, req_n: i64, out: *u8) -> i64
2018func ta_cap_issue(req: *u8, req_n: i64, out: *u8) -> i64
2064func ta_cap_revoke(req: *u8, req_n: i64, out: *u8) -> i64
2093func ta_cap_status(out: *u8) -> i64
2103func ta_oauth_prm(out: *u8) -> i64
2118func oauth_state_init() -> i64
2127func oauth_slotv(h: i64, slots: i64) -> i64 { var x: i64 = h; if x < 0 { x = 0 - x } return x - (x / slots) * slots }
2128func oauth_strhash(s: *u8, n: i64) -> i64 { var h: i64 = TA_MAGIC_1469598; var i: i64 = 0; while i < n { h = h * 31 + (s[i] as i64); i = i + 1 } if h == 0 { h = 1 } return h }
2130func oauth_param(src: *u8, slen: i64, key: *u8, klen: i64, out2: *i64) -> i64
2153func oauth_hexv(c: i64) -> i64 { if c >= 48 { if c <= 57 { return c - 48 } } if c >= 65 { if c <= 70 { return c - 55 } } if c >= 97 { if c <= 102 { return c - 87 } } return 0 }
2154func oauth_urldec(src: *u8, n: i64, dst: *u8) -> i64
2165func oauth_b64url(inb: *u8, n: i64, out: *u8) -> i64
2189func oauth_resp(out: *u8, status: *u8, ctype: *u8, body: *u8, blen: i64) -> i64
2201func ta_oauth_asmeta(out: *u8) -> i64
2207func ta_oauth_register(req: *u8, req_n: i64, out: *u8) -> i64
2229func ta_oauth_authorize(req: *u8, req_n: i64, out: *u8) -> i64
2274func ta_oauth_approve(req: *u8, req_n: i64, out: *u8) -> i64
2331func ta_oauth_token(req: *u8, req_n: i64, out: *u8) -> i64
2387func ta_handle_pfx(prefix: *u8, req: *u8, req_n: i64, out: *u8) -> i64
2419func ta_handle(req: *u8, req_n: i64, out: *u8) -> i64 { return ta_handle_pfx(TA_TOOLPFX, req, req_n, out) }
2421func ta_claim_meta(jb:*u8,b:i64,jid:i64,elapsed:i64,published:i64)->i64