nx_mvault_ingest.nx
buildroot/runtime/nx_mvault_ingest.nx
about
nx_mvault_ingest.nx -- vault classify-at-the-door: shallow faceted split,
two FULLY ORTHOGONAL axes so everything splits gen-vs-real.
BROWSE MODEL (operator 2026-07-17, "i dont want to walk a huge tree ...
gifs together, stories together, pages/warc together, video together,
major sections gen vs real ... 3d models and audiobooks ... split as gen
or real ... origin/source as a VISIBLE TAG i can see as i browse"):
MAJOR axis = provenance CLASS: gen (AI) vs real (downloaded/captured).
GROUP axis = media TYPE: image / gif / video / audio / story / page(WARC)
/ manga / model3d / audiobook -- "gifs together, ...".
VISIBLE TAG = the SOURCE string (tumblr/reddit/redgifs/cam/...), a badge
+ filter, NOT a folder.
CLASS and TYPE are independent inputs (a gen 3D model and a real audiobook
both classify correctly); source is passthrough metadata.
THE SPLIT FIX: download sources MIX types, so TYPE is keyed on the ACTUAL
bytes (nx_media_sniff) -- never on the source. A type_hint covers the types
that are not byte-sniffable (manga pages, audiobooks, some 3D).
SOTA STORAGE: this feeds nx_mvault_record -> canonical NXR1 CID records on
the seg-store (NOT tsv); the str mappers below are the record field values.
Classify-at-the-door MLS stamp keeps private content in the TS index.
NOTE: nx_vault.nx = the SECRETS vault; distinct nx_mvault_/mv_ prefix.
Composes: nx_media_sniff.nx (nx_sniff), nx_media_pool.nx (NX_MEDIA_TYPE_*).
license_tier: ORIGINAL
dependencies 2 imports · 11 importers
diagram shows first 10 each side; +0 more imports, +1 more importers in the complete lists below.
imports: nx_media_pool.nxnx_media_sniff.nx
imported by: nx_mvault.nxnx_mvault_context.nxnx_mvault_context_gate.nxnx_mvault_ingest_gate.nxnx_mvault_layout.nxnx_mvault_layout_gate.nxnx_mvault_record.nxnx_mvault_record_gate.nxnx_mvault_reindex.nxnx_mvault_reindex_gate.nxnx_mvault_walk.nx
structs
| none |
consts
| 32 | const MV_CLASS_UNKNOWN: i64 = 0 |
| 33 | const MV_CLASS_GEN: i64 = 1 |
| 34 | const MV_CLASS_REAL: i64 = 2 |
| 37 | const MV_TYPE_UNKNOWN: i64 = 0 |
| 38 | const MV_TYPE_IMAGE: i64 = 1 |
| 39 | const MV_TYPE_GIF: i64 = 2 |
| 40 | const MV_TYPE_VIDEO: i64 = 3 |
| 41 | const MV_TYPE_AUDIO: i64 = 4 |
| 42 | const MV_TYPE_STORY: i64 = 5 // text |
| 43 | const MV_TYPE_PAGE: i64 = 6 // archived web page (WARC/HTML) |
| 44 | const MV_TYPE_MANGA: i64 = 7 // multi-page manga/comic (image-sequence work) |
| 45 | const MV_TYPE_MODEL3D: i64 = 8 // 3D model / mesh |
| 46 | const MV_TYPE_AUDIOBOOK: i64 = 9 // long-form narrated audio |
| 47 | const MV_TYPE_BOOK: i64 = 10 // ebook (epub/pdf) / text book |
| 50 | const MV_PROV_UNKNOWN: i64 = 0 |
| 51 | const MV_PROV_GEN: i64 = 1 |
| 52 | const MV_PROV_REAL: i64 = 2 |
| 55 | const MV_HINT_NONE: i64 = 0 |
| 56 | const MV_HINT_MANGA: i64 = 1 |
| 57 | const MV_HINT_AUDIOBOOK: i64 = 2 |
| 58 | const MV_HINT_MODEL3D: i64 = 3 |
| 62 | const MV_LVL_U: i64 = 0 |
| 63 | const MV_LVL_C: i64 = 1 |
| 64 | const MV_LVL_S: i64 = 2 |
| 65 | const MV_LVL_TS: i64 = 3 |
functions
| 68 | func mv_class(prov: i64) -> i64 |
| 75 | func mv_is_glb(b: *u8, n: i64) -> i64 called by 1: mv_type_bytes |
| 85 | func mv_type(hint: i64, mtype: i64) -> i64 |
| 111 | func mv_type_bytes(hint: i64, b: *u8, n: i64, |
| 121 | func mv_level(public_release: i64) -> i64 called by 1: main |
| 127 | func mv_class_str(c: i64) -> *u8 |
| 136 | func mv_type_str(t: i64) -> *u8 |
| 161 | func mv_level_str(l: i64) -> *u8 |