code wiki / _hdl_build / nx_promptpack.nx

nx_promptpack.nx source

↩ module page · 349 lines · 13390 B

1// nx_promptpack.nx -- CU01 PROMPT-SCAFFOLD EMITTER (capability-uplift lane; SPEC1 promptpack-format-law 2// pinned 2026-07-21): internal SSOT = capuplift- plane (sovereign rows); per-target scaffolds are EMITTED 3// from emitter rules held as DATA in the same plane (rule 11) -- an emitfmt row maps target -> 4 boundary 4// affixes (open_pre|open_suf|close_pre|close_suf pipe-packed in content); a secmap row maps section+order 5// -> the PT row whose guidance fills it. Adding a partner model or section = a data row, ZERO code. 6// XML/markdown exist ONLY as emitted boundary bytes (sovereign-base-interop-boundary law), never the base. 7// Composes nx_sovjson_lib + nx_store_seed_lib + nx_gate_verdict from birth = OO, dogfoods the shared base. 8// license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0 9// emit <target> [prefix] -> scaffold text | targets [prefix] -> JSON map | selftest [tmpprefix] -> gate 10// capuplift- row = id name sev status owner topic content (7-col; topic emitfmt/secmap drive the emit). 11import "nx_sovjson_lib.nx" 12import "nx_store_seed_lib.nx" 13import "nx_seg_store.nx" 14import "nx_gate_verdict.nx" 15import "nx_syscalls.nx" 16 17const PP_CAP: i64 = 1048576 18const PP_OUT: i64 = 65536 19const PP_SPAN: i64 = 16 20const PP_USAGE: i64 = 2 21const PP_NOTGT: i64 = 3 22const PP_ORDMAX: i64 = 32 23const PP_TGTESC: i64 = 40 24const PP_FMTESC: i64 = 60 25 26func pp_cat_span(out: *u8, o: i64, buf: *u8, s: i64, e: i64) -> i64 { 27 var oo: i64 = o 28 var j: i64 = s 29 while j < e { 30 out[oo] = buf[j] 31 oo = oo + 1 32 j = j + 1 33 } 34 return oo 35} 36 37func pp_span_eq(a: *u8, s1: i64, e1: i64, b: *u8, s2: i64, e2: i64) -> i64 { 38 let l1: i64 = e1 - s1 39 let l2: i64 = e2 - s2 40 if l1 < l2 { return 0 } 41 if l2 < l1 { return 0 } 42 var ok: i64 = 1 43 var j: i64 = 0 44 while j < l1 { 45 let x: i64 = a[s1 + j] as i64 46 let y: i64 = b[s2 + j] as i64 47 if x < y { ok = 0 } 48 if x > y { ok = 0 } 49 j = j + 1 50 } 51 return ok 52} 53 54func pp_find(buf: *u8, l: i64, lit: *u8) -> i64 { 55 let ll: i64 = sj_vlen(lit) 56 var hit: i64 = 0 - 1 57 var i: i64 = 0 58 while i + ll <= l { 59 if hit < 0 { 60 var ok: i64 = 1 61 var j: i64 = 0 62 while j < ll { 63 let x: i64 = buf[i + j] as i64 64 let y: i64 = lit[j] as i64 65 if x < y { ok = 0 } 66 if x > y { ok = 0 } 67 j = j + 1 68 } 69 if ok == 1 { hit = i } 70 } 71 i = i + 1 72 } 73 return hit 74} 75 76// idx-th pipe-separated field inside [s,e); fills f[0]/f[1]; pipes appear ONLY in emitfmt content. 77func pp_field(buf: *u8, s: i64, e: i64, idx: i64, f: *i64) -> i64 { 78 var fs: i64 = s 79 var k: i64 = 0 80 var found: i64 = 0 81 var j: i64 = s 82 while j < e { 83 if found == 0 { 84 let ch: i64 = buf[j] as i64 85 if ch == 124 { 86 if k == idx { 87 f[0] = fs 88 f[1] = j 89 found = 1 90 } 91 k = k + 1 92 fs = j + 1 93 } 94 } 95 j = j + 1 96 } 97 if found == 0 { 98 if k == idx { 99 f[0] = fs 100 f[1] = e 101 found = 1 102 } 103 } 104 return found 105} 106 107func pp_section(buf: *u8, n: i64, out: *u8, o: i64, ss: i64, se: i64, rs: i64, re: i64, es: i64, ee: i64) -> i64 { 108 let f2: *i64 = sys_mmap(PP_SPAN) as *i64 109 let f3: *i64 = sys_mmap(PP_SPAN) as *i64 110 let d0: *i64 = sys_mmap(PP_SPAN) as *i64 111 let d6: *i64 = sys_mmap(PP_SPAN) as *i64 112 var oo: i64 = o 113 if pp_field(buf, es, ee, 0, f2) == 1 { oo = pp_cat_span(out, oo, buf, f2[0], f2[1]) } 114 oo = pp_cat_span(out, oo, buf, ss, se) 115 if pp_field(buf, es, ee, 1, f2) == 1 { oo = pp_cat_span(out, oo, buf, f2[0], f2[1]) } 116 out[oo] = 10 as u8 117 oo = oo + 1 118 var i: i64 = 0 119 while i < n { 120 let le: i64 = sj_le(buf, i, n) 121 if sj_col(buf, i, le, 0, d0) == 1 { 122 if pp_span_eq(buf, d0[0], d0[1], buf, rs, re) == 1 { 123 if sj_col(buf, i, le, 6, d6) == 1 { 124 oo = sj_cat(out, oo, "guidance: " as *u8) 125 oo = pp_cat_span(out, oo, buf, d6[0], d6[1]) 126 out[oo] = 10 as u8 127 oo = oo + 1 128 } 129 } 130 } 131 i = le + 1 132 } 133 var has2: i64 = 0 134 var has3: i64 = 0 135 if pp_field(buf, es, ee, 2, f2) == 1 { if f2[1] > f2[0] { has2 = 1 } } 136 if pp_field(buf, es, ee, 3, f3) == 1 { if f3[1] > f3[0] { has3 = 1 } } 137 var closed: i64 = 0 138 if has2 == 1 { closed = 1 } 139 if has3 == 1 { closed = 1 } 140 if closed == 1 { 141 oo = pp_cat_span(out, oo, buf, f2[0], f2[1]) 142 oo = pp_cat_span(out, oo, buf, ss, se) 143 oo = pp_cat_span(out, oo, buf, f3[0], f3[1]) 144 out[oo] = 10 as u8 145 oo = oo + 1 146 } 147 out[oo] = 10 as u8 148 oo = oo + 1 149 return oo 150} 151 152func pp_emit(prefix: *u8, tgt: *u8, out: *u8) -> i64 { 153 let buf: *u8 = sys_mmap(PP_CAP) 154 let n: i64 = sts_load(prefix, buf, PP_CAP) 155 let c1: *i64 = sys_mmap(PP_SPAN) as *i64 156 let c2: *i64 = sys_mmap(PP_SPAN) as *i64 157 let c5: *i64 = sys_mmap(PP_SPAN) as *i64 158 let c6: *i64 = sys_mmap(PP_SPAN) as *i64 159 var em_s: i64 = 0 - 1 160 var em_e: i64 = 0 - 1 161 var i: i64 = 0 162 while i < n { 163 let le: i64 = sj_le(buf, i, n) 164 if sj_col(buf, i, le, 5, c5) == 1 { 165 if sj_lit_eq(buf, c5[0], c5[1], "emitfmt" as *u8) == 1 { 166 if sj_col(buf, i, le, 1, c1) == 1 { 167 if sj_lit_eq(buf, c1[0], c1[1], tgt) == 1 { 168 if sj_col(buf, i, le, 6, c6) == 1 { 169 em_s = c6[0] 170 em_e = c6[1] 171 } 172 } 173 } 174 } 175 } 176 i = le + 1 177 } 178 if em_s < 0 { return 0 - 1 } 179 var o: i64 = 0 180 o = sj_cat(out, o, "NX-PROMPTPACK scaffold target=" as *u8) 181 o = sj_cat(out, o, tgt) 182 o = sj_cat(out, o, " src=capuplift-plane law=SPEC1-data-driven order=secmap\n" as *u8) 183 var nsec: i64 = 0 184 var ord: i64 = 0 185 while ord < PP_ORDMAX { 186 var i2: i64 = 0 187 while i2 < n { 188 let le2: i64 = sj_le(buf, i2, n) 189 if sj_col(buf, i2, le2, 5, c5) == 1 { 190 if sj_lit_eq(buf, c5[0], c5[1], "secmap" as *u8) == 1 { 191 if sj_col(buf, i2, le2, 2, c2) == 1 { 192 if sj_atoi_span(buf, c2[0], c2[1]) == ord { 193 if sj_col(buf, i2, le2, 1, c1) == 1 { 194 if sj_col(buf, i2, le2, 6, c6) == 1 { 195 o = pp_section(buf, n, out, o, c1[0], c1[1], c6[0], c6[1], em_s, em_e) 196 nsec = nsec + 1 197 } 198 } 199 } 200 } 201 } 202 } 203 i2 = le2 + 1 204 } 205 ord = ord + 1 206 } 207 o = sj_cat(out, o, "NX-PROMPTPACK-END sections=" as *u8) 208 o = sj_catn(out, o, nsec) 209 out[o] = 10 as u8 210 o = o + 1 211 return o 212} 213 214func pp_targets(prefix: *u8, out: *u8) -> i64 { 215 let buf: *u8 = sys_mmap(PP_CAP) 216 let n: i64 = sts_load(prefix, buf, PP_CAP) 217 let c1: *i64 = sys_mmap(PP_SPAN) as *i64 218 let c5: *i64 = sys_mmap(PP_SPAN) as *i64 219 let c6: *i64 = sys_mmap(PP_SPAN) as *i64 220 var o: i64 = 0 221 o = sj_cat(out, o, "{\"organ\":\"nx_promptpack\",\"verb\":\"targets\",\"targets\":[" as *u8) 222 var shown: i64 = 0 223 var i: i64 = 0 224 while i < n { 225 let le: i64 = sj_le(buf, i, n) 226 if sj_col(buf, i, le, 5, c5) == 1 { 227 if sj_lit_eq(buf, c5[0], c5[1], "emitfmt" as *u8) == 1 { 228 if sj_col(buf, i, le, 1, c1) == 1 { 229 if shown > 0 { o = sj_cat(out, o, "," as *u8) } 230 o = sj_cat(out, o, "{\"target\":\"" as *u8) 231 o = sj_cat_esc(out, o, buf, c1[0], c1[1], PP_TGTESC) 232 o = sj_cat(out, o, "\",\"fmt\":\"" as *u8) 233 if sj_col(buf, i, le, 6, c6) == 1 { o = sj_cat_esc(out, o, buf, c6[0], c6[1], PP_FMTESC) } 234 o = sj_cat(out, o, "\"}" as *u8) 235 shown = shown + 1 236 } 237 } 238 } 239 i = le + 1 240 } 241 o = sj_cat(out, o, "],\"targets_total\":" as *u8) 242 o = sj_catn(out, o, shown) 243 o = sj_cat(out, o, ",\"note\":\"emitfmt rows ARE the target->format map (SPEC1 rule-11): open_pre|open_suf|close_pre|close_suf pipe-packed; add a target = add a data row, zero code\"}" as *u8) 244 out[o] = 10 as u8 245 o = o + 1 246 return o 247} 248 249func pp_selftest(base: *u8) -> i64 { 250 let ctr: *i64 = gv_ctr() 251 gv_head("nx_promptpack selftest -- data-driven per-target scaffold emitter (SPEC1)" as *u8) 252 let now: i64 = sys_now_realtime_sec() 253 let fp: *u8 = sys_mmap(256) 254 var fo: i64 = sj_cat(fp, 0, base) 255 fo = sj_catn(fp, fo, now) 256 fo = sj_cat(fp, fo, "capup-" as *u8) 257 fp[fo] = 0 as u8 258 let seed: *u8 = sys_mmap(PP_CAP) 259 var so: i64 = 0 260 so = sj_cat(seed, so, "PT01\ttask-struct\t8\tINGESTED\tmw\tpromptpack\tTask first with role and purpose\n" as *u8) 261 so = sj_cat(seed, so, "PT03\tprefill\t7\tINGESTED\tmw\tpromptpack\tPrefill the assistant turn\n" as *u8) 262 so = sj_cat(seed, so, "EMX\txmlish\t8\tACTIVE\tmw\temitfmt\t<|>|</|>\n" as *u8) 263 so = sj_cat(seed, so, "EMM\tmdish\t8\tACTIVE\tmw\temitfmt\t## |||\n" as *u8) 264 so = sj_cat(seed, so, "SC1\ttask\t1\tACTIVE\tmw\tsecmap\tPT01\n" as *u8) 265 so = sj_cat(seed, so, "SC2\treminders\t2\tACTIVE\tmw\tsecmap\tPT03\n" as *u8) 266 sts_seed(fp, seed, so) 267 let o1: *u8 = sys_mmap(PP_OUT) 268 let l1: i64 = pp_emit(fp, "xmlish" as *u8, o1) 269 gv_check("T1 xml-style target wraps+closes section around PT guidance" as *u8, sj_span_has(o1, 0, l1, "<task>\nguidance: Task first with role and purpose\n</task>" as *u8), ctr) 270 let o2: *u8 = sys_mmap(PP_OUT) 271 let l2: i64 = pp_emit(fp, "mdish" as *u8, o2) 272 var t2: i64 = 0 273 if sj_span_has(o2, 0, l2, "## task\nguidance: Task first" as *u8) == 1 { 274 if sj_span_has(o2, 0, l2, "</task>" as *u8) == 0 { 275 if sj_span_has(o2, 0, l2, "## reminders" as *u8) == 1 { t2 = 1 } 276 } 277 } 278 gv_check("T2 md-style target: native headers, NO close tags (fmt is per-target data)" as *u8, t2, ctr) 279 var t3: i64 = 0 280 let p1: i64 = pp_find(o1, l1, "<task>" as *u8) 281 let p2: i64 = pp_find(o1, l1, "<reminders>" as *u8) 282 if p1 >= 0 { if p2 > p1 { t3 = 1 } } 283 gv_check("T3 secmap order honored (task order-1 before reminders order-2)" as *u8, t3, ctr) 284 so = sj_cat(seed, so, "EMZ\tzz\t8\tACTIVE\tmw\temitfmt\t[ | ]|[end | ]\n" as *u8) 285 sts_seed(fp, seed, so) 286 let o4: *u8 = sys_mmap(PP_OUT) 287 let l4: i64 = pp_emit(fp, "zz" as *u8, o4) 288 var t4: i64 = 0 289 if sj_span_has(o4, 0, l4, "[ task ]" as *u8) == 1 { if sj_span_has(o4, 0, l4, "[end task ]" as *u8) == 1 { t4 = 1 } } 290 gv_check("T4 rule-11 tooth: NEW target = one data row, ZERO code change" as *u8, t4, ctr) 291 let o5: *u8 = sys_mmap(PP_OUT) 292 var t5: i64 = 0 293 if pp_emit(fp, "nope" as *u8, o5) < 0 { t5 = 1 } 294 gv_check("T5 NEG unknown target fails LOUD (no silent empty scaffold)" as *u8, t5, ctr) 295 let o6: *u8 = sys_mmap(PP_OUT) 296 let l6: i64 = pp_targets(fp, o6) 297 var t6: i64 = 0 298 if sj_span_has(o6, 0, l6, "\"target\":\"xmlish\"" as *u8) == 1 { if sj_span_has(o6, 0, l6, "\"target\":\"zz\"" as *u8) == 1 { t6 = 1 } } 299 gv_check("T6 targets verb lists the live data-map (incl the added row)" as *u8, t6, ctr) 300 let rc: i64 = gv_verdict("PROMPTPACK-GATE" as *u8, ctr, "per-target scaffolds from plane data: emitfmt affixes + secmap order + PT guidance; unknown target loud-fails" as *u8) 301 return rc 302} 303 304func main(argc: i64, argv: *i64) -> i64 { 305 if argc < 2 { 306 sj_werr("usage: nx_promptpack {emit <target> [prefix] | targets [prefix] | selftest [tmpprefix]}\n" as *u8) 307 sys_exit(PP_USAGE) 308 return PP_USAGE 309 } 310 let verb: *u8 = argv[1] as *u8 311 if sj_lit_eq(verb, 0, sj_vlen(verb), "emit" as *u8) == 1 { 312 if argc < 3 { 313 sj_werr("PROMPTPACK-FAIL emit needs <target>\n" as *u8) 314 sys_exit(PP_USAGE) 315 return PP_USAGE 316 } 317 var pfx: *u8 = "knowledge/store/capuplift-" as *u8 318 if argc > 3 { pfx = argv[3] as *u8 } 319 let out: *u8 = sys_mmap(PP_OUT) 320 let n: i64 = pp_emit(pfx, argv[2] as *u8, out) 321 if n < 0 { 322 sj_werr("PROMPTPACK-FAIL unknown target (no emitfmt row in plane)\n" as *u8) 323 sys_exit(PP_NOTGT) 324 return PP_NOTGT 325 } 326 sys_write(1, out, n) 327 sys_exit(0) 328 return 0 329 } 330 if sj_lit_eq(verb, 0, sj_vlen(verb), "targets" as *u8) == 1 { 331 var pfx2: *u8 = "knowledge/store/capuplift-" as *u8 332 if argc > 2 { pfx2 = argv[2] as *u8 } 333 let out2: *u8 = sys_mmap(PP_OUT) 334 let n2: i64 = pp_targets(pfx2, out2) 335 sys_write(1, out2, n2) 336 sys_exit(0) 337 return 0 338 } 339 if sj_lit_eq(verb, 0, sj_vlen(verb), "selftest" as *u8) == 1 { 340 var b: *u8 = "/tmp/nxppk_st" as *u8 341 if argc > 2 { b = argv[2] as *u8 } 342 let rc: i64 = pp_selftest(b) 343 sys_exit(rc) 344 return rc 345 } 346 sj_werr("PROMPTPACK-FAIL unknown verb\n" as *u8) 347 sys_exit(PP_USAGE) 348 return PP_USAGE 349}