code wiki / _hdl_build / nx_ciq_field_maintenance.nx

nx_ciq_field_maintenance.nx source

↩ module page · 169 lines · 8841 B

1// nx_ciq_field_maintenance.nx -- CIQ field INGEST for the MAINTENANCE PLATFORM 2// market (author-by-organ). Writes the entity x capability matrix into the 3// SOVEREIGN seg_store as content-addressed canonical records (prefix 4// knowledge/store/ciq-, key "ciq:maintenance:cap:<name>"), and APPENDS 5// "maintenance" to the markets registry so the existing analyst scores it with 6// ZERO engine change. Mirrors nx_ciq_field_connect. 7// 8// Market frame: independent maintenance MONITORING + FIXING + REPLACING across 9// cars/house/plumbing/hvac/tools/appliances, DIYer -> enterprise. Every player 10// covers only a SLICE -> the fragmentation IS the opportunity. 11// 12// Entities (6): nishi ; sense (whole-home energy) ; augury (industrial 13// machine-health / predictive) ; fixd (consumer OBD-II) ; servicetitan 14// (field-service dispatch / enterprise) ; ifixit (DIY repair knowledge). 15// 16// cell grammar: <level>[!<evidence>] level in {0,1,2,U}; level 2 (FULL) 17// REQUIRES !<evidence> (the analyst LIAR-KILLS otherwise). nishi 2 = a real 18// gated organ; incumbent 2 = !public (publicly-established product fact). 19// nishi 1 = designed/seed-but-not-wired (HONEST, no overclaim); 0 = absent. 20// license_tier: ORIGINAL expect_exit: 0 21import "nx_syscalls.nx" 22import "nx_canon_cid.nx" 23import "nx_seg_store.nx" 24import "nx_uxf_decode.nx" 25const FC_MAGIC_2048: i64 = 2048 26const FC_MAGIC_8192: i64 = 8192 27const FC_MAGIC_1024: i64 = 1024 28 29const FC_STORE: *u8 = "knowledge/store/ciq-" 30 31func fc_w(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 } 32func fc_streq(a: *u8, b: *u8) -> i64 { var i: i64=0; while a[i]!=(0 as u8){ if a[i]!=b[i]{return 0} i=i+1 } if b[i]!=(0 as u8){return 0} return 1 } 33func fc_copy(src: *u8, dst: *u8) -> i64 { var i: i64=0; while src[i]!=(0 as u8){ dst[i]=src[i]; i=i+1 } dst[i]=0 as u8; return i } 34func fc_contains(hay: *u8, needle: *u8) -> i64 { 35 var i: i64 = 0 36 while hay[i] != (0 as u8) { 37 var j: i64 = 0 38 var m: i64 = 1 39 var go: i64 = 1 40 while go == 1 { 41 if needle[j] == (0 as u8) { go = 0 } 42 else { 43 if hay[i+j] != needle[j] { m = 0; go = 0 } 44 else { j = j + 1 } 45 } 46 } 47 if m == 1 { return 1 } 48 i = i + 1 49 } 50 return 0 51} 52 53func fc_row(w: *i64, caps: *u8, coff: *i64, nm: *u8, axs: *u8, wts: *u8, cells: *u8) -> i64 { 54 let rk: *i64 = sys_mmap(8 * 8) as *i64 55 let rv: *i64 = sys_mmap(8 * 8) as *i64 56 rk[0] = "ax" as *u8 as i64; rv[0] = axs as i64 57 rk[1] = "wt" as *u8 as i64; rv[1] = wts as i64 58 rk[2] = "cells" as *u8 as i64; rv[2] = cells as i64 59 let recb: *u8 = sys_mmap(FC_MAGIC_2048) 60 let recl: i64 = canon_encode(rk, rv, 3, recb) 61 let kb: *u8 = sys_mmap(128) 62 var ko: i64 = 0 63 ko = ss_cat(kb, ko, "ciq:maintenance:cap:" as *u8) 64 ko = ss_cat(kb, ko, nm) 65 kb[ko] = 0 as u8 66 ss_add(w, 1, kb, recb, recl) 67 var o: i64 = coff[0] 68 o = ss_cat(caps, o, nm) 69 caps[o] = 44 as u8 // ',' 70 o = o + 1 71 coff[0] = o 72 return 0 73} 74 75func main() -> i64 { 76 let gp: *i64 = sys_mmap(8) as *i64 77 let gl: *i64 = sys_mmap(8) as *i64 78 let dk: *i64 = sys_mmap(8 * 16) as *i64 79 let dv: *i64 = sys_mmap(8 * 16) as *i64 80 81 let w: *i64 = ss_begin() 82 let caps: *u8 = sys_mmap(FC_MAGIC_8192) 83 let coff: *i64 = sys_mmap(8) as *i64 84 coff[0] = 0 85 86 // ===== E = Ability-to-Execute (shipped product / ops) ============ 87 // name ax wt nishi;sense;augury;fixd;servicetitan;ifixit 88 fc_row(w, caps, coff, "independent-physics-verdict" as *u8, "E" as *u8, "3" as *u8, "2!nx_hvac_efficiency;0;2!public;1;0;0" as *u8) 89 fc_row(w, caps, coff, "cross-domain-asset-coverage" as *u8, "E" as *u8, "3" as *u8, "2!nx_maint_asset;1;0;0;1;2!public" as *u8) 90 fc_row(w, caps, coff, "data-driven-spec-catalog" as *u8, "E" as *u8, "2" as *u8, "2!nx_maint_specs;1;2!public;0;0;1" as *u8) 91 fc_row(w, caps, coff, "runtime-cycle-analysis" as *u8, "E" as *u8, "2" as *u8, "2!nx_hvac_efficiency;1;1;0;0;0" as *u8) 92 fc_row(w, caps, coff, "whole-panel-energy-measure" as *u8, "E" as *u8, "2" as *u8, "2!nx_electrical;2!public;0;0;0;0" as *u8) 93 fc_row(w, caps, coff, "rotating-machine-health" as *u8, "E" as *u8, "2" as *u8, "2!nx_rot_health;0;2!public;0;0;0" as *u8) 94 fc_row(w, caps, coff, "consumable-depletion-track" as *u8, "E" as *u8, "2" as *u8, "2!nx_consumable;0;0;1;1;0" as *u8) 95 fc_row(w, caps, coff, "vehicle-obd-diagnostics" as *u8, "E" as *u8, "2" as *u8, "2!nx_obd_dtc;0;0;2!public;0;1" as *u8) 96 fc_row(w, caps, coff, "guided-diy-repair" as *u8, "E" as *u8, "2" as *u8, "0;0;0;1;0;2!public" as *u8) 97 fc_row(w, caps, coff, "enterprise-dispatch-workorder" as *u8, "E" as *u8, "2" as *u8, "0;0;1;0;2!public;0" as *u8) 98 fc_row(w, caps, coff, "parts-procurement" as *u8, "E" as *u8, "1" as *u8, "0;0;0;1;1;2!public" as *u8) 99 100 // ===== V = Completeness-of-Vision (strategy / model / differentiation) ===== 101 fc_row(w, caps, coff, "sovereign-local-no-harvest" as *u8, "V" as *u8, "3" as *u8, "2!nx_maint_asset;0;0;0;0;1" as *u8) 102 fc_row(w, caps, coff, "never-brick-read-only" as *u8, "V" as *u8, "3" as *u8, "2!nx_maint_asset;1;1;1;U;U" as *u8) 103 fc_row(w, caps, coff, "diy-to-enterprise-one-spine" as *u8, "V" as *u8, "3" as *u8, "2!nx_maint_asset;0;0;0;0;1" as *u8) 104 fc_row(w, caps, coff, "universal-vendor-agnostic-ingest" as *u8, "V" as *u8, "2" as *u8, "2!nx_maint_ingest;1;1;1;0;0" as *u8) 105 fc_row(w, caps, coff, "additive-portable-ledger" as *u8, "V" as *u8, "2" as *u8, "2!nx_maint_ledger;1;1;1;2!public;0" as *u8) 106 fc_row(w, caps, coff, "predictive-degradation-trend" as *u8, "V" as *u8, "2" as *u8, "2!nx_maint_ledger;1;2!public;0;0;0" as *u8) 107 fc_row(w, caps, coff, "open-multimodal-output" as *u8, "V" as *u8, "1" as *u8, "1;0;1;1;1;1" as *u8) 108 109 caps[coff[0]] = 0 as u8 // terminate the caps list 110 111 // meta record: ordered entity list + caps manifest (analyst is data-driven). 112 let mk: *i64 = sys_mmap(8 * 4) as *i64 113 let mv: *i64 = sys_mmap(8 * 4) as *i64 114 mk[0] = "entities" as *u8 as i64; mv[0] = "nishi,sense,augury,fixd,servicetitan,ifixit" as *u8 as i64 115 mk[1] = "caps" as *u8 as i64; mv[1] = caps as i64 116 let mb: *u8 = sys_mmap(FC_MAGIC_8192) 117 let ml: i64 = canon_encode(mk, mv, 2, mb) 118 ss_add(w, 1, "ciq:maintenance:meta" as *u8, mb, ml) 119 120 // markets registry: READ-APPEND "maintenance" (idempotent; preserves others). 121 let mlist: *u8 = sys_mmap(FC_MAGIC_1024) 122 mlist[0] = 0 as u8 123 if ss_get(FC_STORE, "ciq:markets" as *u8, gp, gl) == 1 { 124 let mnf: i64 = canon_decode(gp[0] as *u8, gl[0], dk, dv, 16) 125 var f: i64 = 0 126 while f < mnf { 127 if fc_streq(dk[f] as *u8, "list" as *u8) == 1 { fc_copy(dv[f] as *u8, mlist) } 128 f = f + 1 129 } 130 } 131 if fc_contains(mlist, "maintenance" as *u8) == 0 { 132 var mo: i64 = 0 133 while mlist[mo] != (0 as u8) { mo = mo + 1 } 134 if mo > 0 { mlist[mo] = 44 as u8; mo = mo + 1 } 135 mo = ss_cat(mlist, mo, "maintenance" as *u8) 136 mlist[mo] = 0 as u8 137 } 138 let gk: *i64 = sys_mmap(8 * 2) as *i64 139 let gv: *i64 = sys_mmap(8 * 2) as *i64 140 gk[0] = "list" as *u8 as i64; gv[0] = mlist as i64 141 let gb: *u8 = sys_mmap(FC_MAGIC_1024) 142 let gl2: i64 = canon_encode(gk, gv, 1, gb) 143 ss_add(w, 1, "ciq:markets" as *u8, gb, gl2) 144 145 ss_commit(FC_STORE, w, sys_now_ms()) 146 147 // self-test: round-trip from the sovereign store. 148 var st: i64 = 1 149 var ncap: i64 = 0 150 let dk2: *i64 = sys_mmap(8 * 16) as *i64 151 let dv2: *i64 = sys_mmap(8 * 16) as *i64 152 if ss_get(FC_STORE, "ciq:maintenance:meta" as *u8, gp, gl) == 1 { 153 let nf: i64 = canon_decode(gp[0] as *u8, gl[0], dk2, dv2, 16) 154 var f: i64 = 0; var seen: i64 = 0 155 while f < nf { if fc_streq(dk2[f] as *u8, "entities" as *u8) == 1 { seen = 1 } f = f + 1 } 156 if seen == 0 { st = 0 } 157 } else { st = 0 } 158 if ss_get(FC_STORE, "ciq:maintenance:cap:independent-physics-verdict" as *u8, gp, gl) == 1 { 159 let nf: i64 = canon_decode(gp[0] as *u8, gl[0], dk2, dv2, 16) 160 var f: i64 = 0 161 while f < nf { if fc_streq(dk2[f] as *u8, "cells" as *u8) == 1 { if fc_streq(dv2[f] as *u8, "2!nx_hvac_efficiency;0;2!public;1;0;0" as *u8) == 1 { ncap = 1 } } f = f + 1 } 162 } else { st = 0 } 163 if ncap != 1 { st = 0 } 164 if fc_contains(mlist, "maintenance" as *u8) != 1 { st = 0 } 165 166 fc_w(1, "CIQ-FIELD-MAINTENANCE stored=18 caps (sovereign seg_store, no TSV) meta+markets-append+selftest " as *u8) 167 if st == 1 { fc_w(1, "OK verdict=GREEN\n" as *u8); sys_exit(0); return 0 } 168 fc_w(1, "FAIL verdict=RED\n" as *u8); sys_exit(1); return 1 169}