code wiki / wiki / nx_wiki_index_builder.nx

nx_wiki_index_builder.nx

buildroot/runtime/wiki/nx_wiki_index_builder.nx

17988 B447 linesdepth 4pulls 4 transitivereach 58 importersview sourcekind librarytopic wiki
docsdependenciesstructsconstsfunctions

about

nx_wiki_index_builder.nx -- wiki-specific index builder + doc store. COMPOSES (zero new index/tokenizer code introduced): nx_search_inverted (two-pass NxInvIndex build via index_row + emit_row) nx_syscalls (sys_open, sys_read_file, sys_close for doc bytes) COMPOSED BY: wiki/nx_wiki_search_wiring (resolver swap; closes placeholder gap) wiki/nx_wiki_main (startup-time index build) SEPARATION OF CONCERNS: - nx_wiki_doc_store: pure storage; rowid -> (title, url, body) lookup - nx_wiki_index_builder: orchestrates two-pass NxInvIndex build + doc-store population; reads bytes via sys_read_file - V1: caller supplies a list of doc paths (no dir-walk yet); V2 adds sys_getdents-based auto-discover V1 SCOPE per NISHI_SEARCH_CHARTER ยง6: - Caller-driven doc list (operator picks which docs to index) - Title extraction: first markdown # heading or fallback to filename - URL derivation: caller supplies (typically "/wiki/<doc-name>") - Body: full file bytes (no body extraction yet; V2 strips front matter) - Tokenization: nx_inv_index_row + nx_inv_emit_row (standard nx_search_inverted convention; lowercase + 2..64 char tokens) V2 SCOPE (TODO): - sys_getdents directory auto-discover - Front-matter parser (skip <head> from indexable body) - nx_nishi_page_validator integration (skip non-conformant docs; log via nx_telemetry) - Incremental rebuild (content-hash diff vs prior build) Status: V1. 2026-05-27.

dependencies 2 imports · 22 importers

nx_syscalls.nx nx_search_inverted.nx nx_wiki_index_builder.nx _wiki_backlinks_gate.nx _wiki_cite_gate.nx _wiki_cite_live_gate.nx _wiki_frontend_gate.nx _wiki_integrate_gate.nx _wiki_search_gate.nx _wiki_wikilink_gate.nx nx_ims_monitor.nx nx_wiki_backlinks.nx nx_wiki_bm25_search.nx

diagram shows first 10 each side; +0 more imports, +12 more importers in the complete lists below.

imports: nx_syscalls.nxnx_search_inverted.nx

imported by: _wiki_backlinks_gate.nx_wiki_cite_gate.nx_wiki_cite_live_gate.nx_wiki_frontend_gate.nx_wiki_integrate_gate.nx_wiki_search_gate.nx_wiki_wikilink_gate.nxnx_ims_monitor.nxnx_wiki_backlinks.nxnx_wiki_bm25_search.nxnx_wiki_content_loader.nxnx_wiki_dashboard.nxnx_wiki_doc_handler.nxnx_wiki_graph.nxnx_wiki_https_daemon.nxnx_wiki_https_daemon_mv.nxnx_wiki_main.nxnx_wiki_page_save.nxnx_wiki_routes.nxnx_wiki_search_wiring.nxnx_wiki_structure_regen.nxnx_wiki_vhost_table.nx

structs

63struct NxWikiDocStore
330struct NxWikiIndexBuilder

consts

39const NX_WIB_OK: i64 = 0
40const NX_WIB_BAD_INPUT: i64 = 2600
41const NX_WIB_DOC_OVERFLOW: i64 = 2601
42const NX_WIB_BUF_OVERFLOW: i64 = 2602
43const NX_WIB_READ_FAILED: i64 = 2603
44const NX_WIB_INDEX_INIT_FAILED: i64 = 2604
45const NX_WIB_PASS1_FAILED: i64 = 2605
46const NX_WIB_FINALIZE_FAILED: i64 = 2606
47const NX_WIB_PASS2_FAILED: i64 = 2607
48const NX_WIB_DOUBLE_FINALIZE: i64 = 2608
49const NX_WIB_LOOP_BUDGET: i64 = 2609
52const NX_WIB_DEFAULT_DOCS_CAP: i64 = 1000
53const NX_WIB_DEFAULT_TITLE_POOL: i64 = 65536 // 64 KB
54const NX_WIB_DEFAULT_URL_POOL: i64 = 65536 // 64 KB
55const NX_WIB_DEFAULT_BODY_POOL: i64 = 4194304 // 4 MB; 4 KB avg per doc
56const NX_WIB_MAX_TITLE_LEN: i64 = 200
57const NX_WIB_MAX_URL_LEN: i64 = 512
58const NX_WIB_MAX_BODY_LEN: i64 = 524288 // 512 KB per doc
59const NX_WIB_LOOP_BUDGET_CAP: i64 = 10000000

functions

91func nx_wiki_doc_store_init(s: *NxWikiDocStore, docs_cap: i64,
called by 22: mainmainmainmainmainmain+16 calls 1: sys_mmap
126func nx_wib_pool_alloc(pool: *u8, cap: i64, used_p: *i64, n: i64) -> i64
140func nx_wiki_doc_store_add(s: *NxWikiDocStore,
198func nx_wiki_doc_store_lookup(s: *NxWikiDocStore, rowid: i64,
221func nx_wiki_doc_store_count(s: *NxWikiDocStore) -> i64
called by 17: mainmainmainmainmainmain+11
230func nx_wiki_doc_store_find_by_url(s: *NxWikiDocStore,
269func nx_wib_extract_md_title(body: *u8, body_n: i64,
337func nx_wiki_index_builder_init(b: *NxWikiIndexBuilder,
359func nx_wiki_index_builder_add(b: *NxWikiIndexBuilder,
376func nx_wiki_index_builder_finalize(b: *NxWikiIndexBuilder) -> i64
399func nx_wiki_index_builder_get_index(b: *NxWikiIndexBuilder) -> *NxInvIndex
405func nx_wiki_index_builder_get_store(b: *NxWikiIndexBuilder) -> *NxWikiDocStore
415func nx_wiki_index_builder_add_path(b: *NxWikiIndexBuilder,