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}