code wiki / _hdl_build / nx_meta_schema.nx
nx_meta_schema.nx source
↩ module page · 150 lines · 7580 B
1// nx_meta_schema.nx -- X-CAP-001 (CALLOUT-012 unblocker; universal-capture.md).
2// The MODALITY-AGNOSTIC LOSSLESS META RECORD = the crown-jewel intermediate every app
3// reads/writes (companion / apparel store / writer-ingest / media-library, X-CAP-006).
4// A record is structured DATA: key=value lines (modality, cid, origin, gen_modality,
5// source_model, consent, license, attr.* content). "Lossless" here = EXACT byte round-trip
6// of the structured record (self-model lay118: that is a DIFFERENT objective than perceptual
7// fidelity of regenerated media -- this layer is exactly-lossless). Proven by emit->parse->emit
8// byte-identical. CONSENT HARD LINE (X-CAP-005, anti-deepfake): a record with consent=NONE or
9// missing modality/cid is INVALID -> ms_valid=0. Self-validating gate (METAGATE) for nx_reconcile.
10// MLIB-003 media records + COMP-004 person records are PROFILES of this one schema (no parallel
11// substrate). Built sovereignly (nx_cc->nxasm_x86, no gcc). license_tier: ORIGINAL
12import "nx_syscalls.nx"
13const MS_MAGIC_16384: i64 = 16384
14
15const MS_MAXF: i64 = 64
16
17func ms_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
18func ms_putn(v: i64) -> i64 { let bb: *u8 = sys_mmap(28); var m: i64=v; if m<0 {m=0-m}; let t: *u8 = sys_mmap(28); var k: i64=0; if m==0 {t[0]=48;k=1}; while m>0 {t[k]=48+(m%10); m=m/10; k=k+1}; var i: i64=0; while i<k {bb[i]=t[k-1-i]; i=i+1}; sys_write(1, bb, k); return 0 }
19
20func ms_strlen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
21func ms_streq(a: *u8, b: *u8) -> i64 { var i: i64 = 0; var s: i64 = 1; while s == 1 { if a[i] != b[i] { s = 0 } else { if a[i] == (0 as u8) { return 1 } else { i = i + 1 } } } return 0 }
22func ms_bufeq(a: *u8, b: *u8, n: i64) -> i64 { var i: i64 = 0; while i < n { if a[i] != b[i] { return 0 } i = i + 1 } return 1 }
23func ms_app(dst: *u8, off: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { dst[off+i] = s[i]; i = i + 1 } return off + i }
24func ms_scan(buf: *u8, n: i64, start: i64, delim: i64) -> i64 { var i: i64 = start; var s: i64 = 1; while s == 1 { if i >= n { s = 0 } else { if buf[i] == (delim as u8) { s = 0 } else { i = i + 1 } } } return i }
25
26// emit keys[]/vals[] (pointers-as-i64) to out as "key=value\n" lines; return byte length.
27func ms_emit(keys: *i64, vals: *i64, n: i64, out: *u8) -> i64 {
28 var o: i64 = 0
29 var i: i64 = 0
30 while i < n {
31 o = ms_app(out, o, (keys[i]) as *u8)
32 out[o] = 61 as u8; o = o + 1
33 o = ms_app(out, o, (vals[i]) as *u8)
34 out[o] = 10 as u8; o = o + 1
35 i = i + 1
36 }
37 return o
38}
39
40// parse "key=value\n" buffer back into keys[]/vals[] (mutates buf: '=' and '\n' -> 0). returns count.
41func ms_parse(buf: *u8, blen: i64, keys: *i64, vals: *i64) -> i64 {
42 var c: i64 = 0
43 var p: i64 = 0
44 while p < blen {
45 if buf[p] == (10 as u8) { p = p + 1 }
46 else {
47 let k0: i64 = p
48 let eq: i64 = ms_scan(buf, blen, k0, 61); buf[eq] = 0 as u8
49 let v0: i64 = eq + 1
50 let nl: i64 = ms_scan(buf, blen, v0, 10); buf[nl] = 0 as u8
51 if c < MS_MAXF { keys[c] = (buf as i64) + k0; vals[c] = (buf as i64) + v0; c = c + 1 }
52 p = nl + 1
53 }
54 }
55 return c
56}
57
58// value pointer (as i64) for a key, or 0 if absent.
59func ms_get(keys: *i64, vals: *i64, n: i64, key: *u8) -> i64 {
60 var i: i64 = 0
61 while i < n { if ms_streq((keys[i]) as *u8, key) == 1 { return vals[i] } i = i + 1 }
62 return 0
63}
64
65// VALID iff modality + cid present AND consent present AND consent != NONE (the hard line).
66func ms_valid(keys: *i64, vals: *i64, n: i64) -> i64 {
67 if ms_get(keys, vals, n, "modality" as *u8) == 0 { return 0 }
68 if ms_get(keys, vals, n, "cid" as *u8) == 0 { return 0 }
69 let c: i64 = ms_get(keys, vals, n, "consent" as *u8)
70 if c == 0 { return 0 }
71 if ms_streq(c as *u8, "NONE" as *u8) == 1 { return 0 }
72 return 1
73}
74
75// round-trip lossless: emit -> parse -> emit, byte-identical AND field count preserved.
76func ms_roundtrip(keys: *i64, vals: *i64, n: i64) -> i64 {
77 let t1: *u8 = sys_mmap(MS_MAGIC_16384)
78 let l1: i64 = ms_emit(keys, vals, n, t1)
79 let tc: *u8 = sys_mmap(MS_MAGIC_16384)
80 var i: i64 = 0
81 while i < l1 { tc[i] = t1[i]; i = i + 1 }
82 let k2: *i64 = sys_mmap(8 * MS_MAXF) as *i64
83 let v2: *i64 = sys_mmap(8 * MS_MAXF) as *i64
84 let c2: i64 = ms_parse(tc, l1, k2, v2)
85 let t2: *u8 = sys_mmap(MS_MAGIC_16384)
86 let l2: i64 = ms_emit(k2, v2, c2, t2)
87 if c2 != n { return 0 }
88 if l1 != l2 { return 0 }
89 if ms_bufeq(t1, t2, l1) == 0 { return 0 }
90 return 1
91}
92
93func ms_set(keys: *i64, vals: *i64, i: i64, k: *u8, v: *u8) -> i64 { keys[i] = (k as *u8) as i64; vals[i] = (v as *u8) as i64; return 0 }
94
95func main() -> i64 {
96 let keys: *i64 = sys_mmap(8 * MS_MAXF) as *i64
97 let vals: *i64 = sys_mmap(8 * MS_MAXF) as *i64
98
99 // BEING profile (companion: Elara) -- modality-agnostic record
100 ms_set(keys, vals, 0, "modality" as *u8, "being" as *u8)
101 ms_set(keys, vals, 1, "cid" as *u8, "being-elara-001" as *u8)
102 ms_set(keys, vals, 2, "origin" as *u8, "ai-1p" as *u8)
103 ms_set(keys, vals, 3, "gen_modality" as *u8, "t2being" as *u8)
104 ms_set(keys, vals, 4, "source_model" as *u8, "sov-mpl-v1" as *u8)
105 ms_set(keys, vals, 5, "consent" as *u8, "fictional" as *u8)
106 ms_set(keys, vals, 6, "license" as *u8, "internal" as *u8)
107 ms_set(keys, vals, 7, "attr.outfit" as *u8, "red-dress" as *u8)
108 ms_set(keys, vals, 8, "attr.gait" as *u8, "graceful" as *u8)
109 ms_set(keys, vals, 9, "attr.voice" as *u8, "alto" as *u8)
110 let rt_being: i64 = ms_roundtrip(keys, vals, 10)
111 let val_being: i64 = ms_valid(keys, vals, 10)
112
113 // MEDIA profile (library image record) -- SAME schema, different modality
114 ms_set(keys, vals, 0, "modality" as *u8, "image" as *u8)
115 ms_set(keys, vals, 1, "cid" as *u8, "img-7f3a" as *u8)
116 ms_set(keys, vals, 2, "origin" as *u8, "handmade" as *u8)
117 ms_set(keys, vals, 3, "gen_modality" as *u8, "none" as *u8)
118 ms_set(keys, vals, 4, "source_model" as *u8, "none" as *u8)
119 ms_set(keys, vals, 5, "consent" as *u8, "self" as *u8)
120 ms_set(keys, vals, 6, "license" as *u8, "owned" as *u8)
121 ms_set(keys, vals, 7, "attr.codec" as *u8, "png" as *u8)
122 ms_set(keys, vals, 8, "attr.dims" as *u8, "1920x1080" as *u8)
123 ms_set(keys, vals, 9, "attr.phash" as *u8, "ab12cd34" as *u8)
124 let rt_media: i64 = ms_roundtrip(keys, vals, 10)
125 let val_media: i64 = ms_valid(keys, vals, 10)
126
127 // CONSENT HARD LINE: same media record but consent=NONE -> MUST be invalid
128 ms_set(keys, vals, 5, "consent" as *u8, "NONE" as *u8)
129 let val_noconsent: i64 = ms_valid(keys, vals, 10)
130 // MISSING required field: drop to 1 field (no cid/consent) -> invalid
131 let val_missing: i64 = ms_valid(keys, vals, 1)
132
133 ms_puts("METAGATE rt_being=" as *u8); ms_putn(rt_being)
134 ms_puts(" rt_media=" as *u8); ms_putn(rt_media)
135 ms_puts(" valid_being=" as *u8); ms_putn(val_being)
136 ms_puts(" valid_media=" as *u8); ms_putn(val_media)
137 ms_puts(" consent_NONE_rejected=" as *u8); ms_putn(1 - val_noconsent)
138 ms_puts(" missing_rejected=" as *u8); ms_putn(1 - val_missing)
139
140 var ok: i64 = 1
141 if rt_being != 1 { ok = 0 }
142 if rt_media != 1 { ok = 0 }
143 if val_being != 1 { ok = 0 }
144 if val_media != 1 { ok = 0 }
145 if val_noconsent != 0 { ok = 0 }
146 if val_missing != 0 { ok = 0 }
147 if ok == 1 { ms_puts(" verdict=GREEN\n" as *u8); return 0 }
148 ms_puts(" verdict=RED\n" as *u8)
149 return 1
150}