code wiki / _hdl_build / nx_delivery_report.nx

nx_delivery_report.nx source

↩ module page · 143 lines · 6788 B

1// nx_delivery_report.nx -- the HUMAN perspective on the wire (operator 2026-06-12): 2// the machine cares about the current beat; the human cares about WHEN IT DELIVERS, 3// the GROWTH RATE, the SUCCESS RATE. This organ derives the management view from 4// the ledgers' TIMESTAMPED HISTORY (never a feeling, always a slope): 5// - done velocity: done_rows across AUTMETER history -> rows/day (whole-window) 6// - autonomy growth: permil first->last -> permil/day toward the C/B/A/S bars 7// - beat success rate: PULSE-VERDICT ok/steps share across team_pulse history 8// - backlog + naive-linear ETA: latest todo / done-velocity (LABELED naive-linear: 9// assumes constant velocity and no new rows -- both false, which is WHY the 10// novel-growth line sits next to it) 11// - raised-hands growth: novel count first->last (the answer-consumption pressure) 12// Durable: DELIVERY block -> knowledge/channel/team_out.tsv (the human reads the 13// same wire) + DELIVERY row -> knowledge/status/delivery_report.log (the Examiner 14// grades presence). Exit 0 = reported; exit 1 = unreadable world. 15// argv[1]=meter-log argv[2]=pulse-log argv[3]=team-out argv[4]=report-log (gates: scratch) 16// license_tier: ORIGINAL 17import "nx_syscalls.nx" 18const K_MAGIC_86400: i64 = 86400 19const K_MAGIC_1048576: i64 = 1048576 20const K_MAGIC_1048560: i64 = 1048560 21const K_MAGIC_3600: i64 = 3600 22func _p(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 23func _fp(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 } 24func _fn(fd: i64, v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m; sys_write(fd,"-" as *u8,1)}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;k=1}; while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(fd,bb,k); return 0 } 25func dr_len(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 26func dr_read(path: *u8, buf: *u8, cap: i64) -> i64 { 27 let fd: i64 = sys_openat_rd(path) 28 if fd < 0 { return 0 } 29 var n: i64 = 0 30 var go: i64 = 1 31 while go == 1 { let base: i64 = buf as i64; let r: i64 = sys_read(fd, (base + n) as *u8, cap - n); if r <= 0 { go = 0 } else { n = n + r } if n >= cap { go = 0 } } 32 sys_close(fd) 33 return n 34} 35// parse the integer right after pat within [a,b); -1 if absent 36func dr_num_after(buf: *u8, a: i64, b: i64, pat: *u8) -> i64 { 37 let pl: i64 = dr_len(pat) 38 var i: i64 = a 39 while i + pl <= b { 40 var k: i64 = 0 41 var hit: i64 = 1 42 while k < pl { if buf[i+k] != pat[k] { hit = 0; k = pl } else { k = k + 1 } } 43 if hit == 1 { 44 var j: i64 = i + pl 45 var v: i64 = 0 46 var any: i64 = 0 47 var dg: i64 = 1 48 while dg == 1 { 49 if j >= b { dg = 0 } 50 else { if buf[j] < (48 as u8) { dg = 0 } else { if buf[j] > (57 as u8) { dg = 0 } else { v = v * 10 + ((buf[j] as i64) - 48); j = j + 1; any = 1 } } } 51 } 52 if any == 1 { return v } 53 return 0 - 1 54 } 55 i = i + 1 56 } 57 return 0 - 1 58} 59// scan a log: FIRST and LAST line holding anchor -> (epoch,val) pairs via field pat 60func dr_first_last(buf: *u8, n: i64, anchor: *u8, fld: *u8, out: *i64) -> i64 { 61 var found: i64 = 0 62 var i: i64 = 0 63 while i < n { 64 var le: i64 = i 65 var s: i64 = 1 66 while s == 1 { if le >= n { s = 0 } else { if buf[le] == (10 as u8) { s = 0 } else { le = le + 1 } } } 67 let ep: i64 = dr_num_after(buf, i, le, anchor) 68 if ep >= 0 { 69 let v: i64 = dr_num_after(buf, i, le, fld) 70 if v >= 0 { 71 if found == 0 { out[0] = ep; out[1] = v; found = 1 } 72 out[2] = ep 73 out[3] = v 74 } 75 } 76 i = le + 1 77 } 78 return found 79} 80func dr_rate_day(out: *i64) -> i64 { 81 let dt: i64 = out[2] - out[0] 82 if dt <= 0 { return 0 } 83 return ((out[3] - out[1]) * K_MAGIC_86400) / dt 84} 85func main(argc: i64, argv: *i64) -> i64 { 86 var mlp: *u8 = "knowledge/status/autonomy_meter.log" as *u8 87 var plp: *u8 = "knowledge/status/team_pulse.log" as *u8 88 var top: *u8 = "knowledge/channel/team_out.tsv" as *u8 89 var rlp: *u8 = "knowledge/status/delivery_report.log" as *u8 90 if argc >= 2 { mlp = argv[1] as *u8 } 91 if argc >= 3 { plp = argv[2] as *u8 } 92 if argc >= 4 { top = argv[3] as *u8 } 93 if argc >= 5 { rlp = argv[4] as *u8 } 94 _p("=== DELIVERY REPORT: the human view -- velocity, growth, success, naive ETA ===\n" as *u8) 95 let mb: *u8 = sys_mmap(K_MAGIC_1048576) 96 let mn: i64 = dr_read(mlp, mb, K_MAGIC_1048560) 97 if mn <= 0 { _p(" meter history MISSING -- fail loud\n" as *u8); sys_exit(1); return 1 } 98 let fl: *i64 = sys_mmap(64) as *i64 99 // done velocity + autonomy growth from AUTMETER history 100 if dr_first_last(mb, mn, "AUTMETER epoch=" as *u8, " done_rows=" as *u8, fl) == 0 { _p(" no AUTMETER rows -- fail loud\n" as *u8); sys_exit(1); return 1 } 101 let done_first: i64 = fl[1] 102 let done_last: i64 = fl[3] 103 let done_rate: i64 = dr_rate_day(fl) 104 let span_h: i64 = (fl[2] - fl[0]) / K_MAGIC_3600 105 dr_first_last(mb, mn, "AUTMETER epoch=" as *u8, " permil=" as *u8, fl) 106 let pm_first: i64 = fl[1] 107 let pm_last: i64 = fl[3] 108 let pm_rate: i64 = dr_rate_day(fl) 109 // beat success share from pulse history 110 let pb: *u8 = sys_mmap(K_MAGIC_1048576) 111 let pn: i64 = dr_read(plp, pb, K_MAGIC_1048560) 112 var ok_sum: i64 = 0 113 var st_sum: i64 = 0 114 var i: i64 = 0 115 while i < pn { 116 var le: i64 = i 117 var s: i64 = 1 118 while s == 1 { if le >= pn { s = 0 } else { if pb[le] == (10 as u8) { s = 0 } else { le = le + 1 } } } 119 let stv: i64 = dr_num_after(pb, i, le, "PULSE-VERDICT steps=" as *u8) 120 if stv > 0 { 121 let okv: i64 = dr_num_after(pb, i, le, " ok=" as *u8) 122 if okv >= 0 { st_sum = st_sum + stv; ok_sum = ok_sum + okv } 123 } 124 i = le + 1 125 } 126 var beat_permil: i64 = 0 127 if st_sum > 0 { beat_permil = (ok_sum * 1000) / st_sum } 128 // backlog + hands from team_out SITREP queue lines (epoch carried by SITREP line) 129 let tb: *u8 = sys_mmap(K_MAGIC_1048576) 130 let tn: i64 = dr_read(top, tb, K_MAGIC_1048560) 131 var last_ep: i64 = 0 132 var q_ep0: i64 = 0 133 var q_td0: i64 = 0 - 1 134 var q_nv0: i64 = 0 135 var q_ep1: i64 = 0 136 var q_td1: i64 = 0 137 var q_nv1: i64 = 0 138 i = 0 139 while i < tn { 140 var le2: i64 = i 141 var s2: i64 = 1 142 while s2 == 1 { if le2 >= tn { s2 = 0 } else { if tb[le2] == (10 as u8) { s2 = 0 } else { le2 = le2 + 1 } } } 143 let se: i64 = dr_num_after(tb, i, le2, "SITREP epoch=" as *u8) 144 if se >= 0 { last_