code wiki / _hdl_build / nx_token_meter.nx

nx_token_meter.nx source

↩ module page · 115 lines · 4762 B

1// nx_token_meter.nx -- TOKEN-EFFICIENCY METER (Auditor): the measured drivers 2// of Claude-token spend, derived from data the team OWNS: 3// queue mix -- DONE / TODO / NOVEL / WIP / GEN counts from the assignment 4// queue (NOVEL backlog = pending tutor demand; DONE growth 5// with flat NOVEL = autonomy doing the work) 6// spend rows -- knowledge/status/token_spend.log, appended by SESSIONS: 7// TOKENSPEND epoch=<t> rows_closed=<n> caps=<n> [tokens=<n>] 8// (tokens optional -- sessions report what they know; an 9// absent figure is SAID, never invented) 10// Emits ONE row per run to knowledge/status/token_efficiency.log: 11// TOKENMETER epoch= done= todo= novel= wip= gen= visits= closed_per_visit_x10= 12// The trend the operator watches: done rising, novel flat-or-burst-then-drop, 13// closed_per_visit rising = better results per Claude visit. 14// license_tier: ORIGINAL 15import "nx_syscalls.nx" 16import "nx_assign_core.nx" 17const K_MAGIC_262144: i64 = 262144 18const K_MAGIC_262143: i64 = 262143 19 20func tm_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 } 21func tm_wn(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;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 } 22 23// count TOKENSPEND rows and sum rows_closed= values 24func tm_spend(visits: *i64, closed: *i64) -> i64 { 25 visits[0] = 0 26 closed[0] = 0 27 let buf: *u8 = sys_mmap(K_MAGIC_262144) 28 let fd: i64 = sys_openat_rd("knowledge/status/token_spend.log" as *u8) 29 if fd < 0 { return 0 } 30 var n: i64 = 0 31 var r: i64 = sys_read(fd, buf, K_MAGIC_262143) 32 while r > 0 { n = n + r; r = sys_read(fd, buf + n, K_MAGIC_262143 - n) } 33 sys_close(fd) 34 let pat: *u8 = "rows_closed=" as *u8 35 var i: i64 = 0 36 while i < n { 37 // line start: count TOKENSPEND 38 if buf[i] == (84 as u8) { 39 var at_start: i64 = 0 40 if i == 0 { at_start = 1 } 41 if i > 0 { if buf[i-1] == (10 as u8) { at_start = 1 } } 42 if at_start == 1 { visits[0] = visits[0] + 1 } 43 } 44 // rows_closed= value 45 var hit: i64 = 1 46 var k: i64 = 0 47 while k < 12 { 48 if i + k >= n { hit = 0; k = 12 } else { 49 if buf[i + k] != pat[k] { hit = 0; k = 12 } else { k = k + 1 } 50 } 51 } 52 if hit == 1 { 53 var v: i64 = 0 54 var q: i64 = i + 12 55 var go: i64 = 1 56 while go == 1 { 57 if q >= n { go = 0 } else { 58 if buf[q] >= (48 as u8) { 59 if buf[q] <= (57 as u8) { v = v * 10 + ((buf[q] as i64) - 48); q = q + 1 } else { go = 0 } 60 } else { go = 0 } 61 } 62 } 63 closed[0] = closed[0] + v 64 } 65 i = i + 1 66 } 67 return 0 68} 69 70func main() -> i64 { 71 let cx: *i64 = an_newcx() 72 let rows: i64 = an_load("knowledge/registry/assignment_queue.tsv" as *u8, cx) 73 if rows <= 0 { tm_w(1, "TOKENMETER verdict=RED reason=queue-missing\n" as *u8); sys_exit(2) } 74 let st: *i64 = cx[4] as *i64 75 var done: i64 = 0 76 var todo: i64 = 0 77 var novel: i64 = 0 78 var wip: i64 = 0 79 var gen: i64 = 0 80 var r: i64 = 0 81 while r < rows { 82 if st[r] == 68 { done = done + 1 } 83 if st[r] == 84 { todo = todo + 1 } 84 if st[r] == 78 { novel = novel + 1 } 85 if st[r] == 87 { wip = wip + 1 } 86 if st[r] == 71 { gen = gen + 1 } 87 r = r + 1 88 } 89 let visits: *i64 = sys_mmap(16) as *i64 90 let closed: *i64 = sys_mmap(16) as *i64 91 tm_spend(visits, closed) 92 var cpv10: i64 = 0 93 if visits[0] > 0 { cpv10 = (closed[0] * 10) / visits[0] } 94 let lfd: i64 = sys_openat_append("knowledge/status/token_efficiency.log" as *u8, 0x1a4) 95 var p: i64 = 0 96 while p < 2 { 97 var fd: i64 = 1 98 if p == 1 { fd = lfd } 99 if fd >= 0 { 100 tm_w(fd, "TOKENMETER epoch=" as *u8); tm_wn(fd, sys_now_realtime_sec()) 101 tm_w(fd, " done=" as *u8); tm_wn(fd, done) 102 tm_w(fd, " todo=" as *u8); tm_wn(fd, todo) 103 tm_w(fd, " novel=" as *u8); tm_wn(fd, novel) 104 tm_w(fd, " wip=" as *u8); tm_wn(fd, wip) 105 tm_w(fd, " gen=" as *u8); tm_wn(fd, gen) 106 tm_w(fd, " visits=" as *u8); tm_wn(fd, visits[0]) 107 tm_w(fd, " closed_per_visit_x10=" as *u8); tm_wn(fd, cpv10) 108 tm_w(fd, "\n" as *u8) 109 } 110 p = p + 1 111 } 112 if lfd >= 0 { sys_close(lfd) } 113 sys_exit(0) 114 return 0 115}