code wiki / _hdl_build / nx_wfcost_artifact_t173.nx
nx_wfcost_artifact_t173.nx source
↩ module page · 1237 lines · 62910 B
1// nx_wfcost.nx -- WORKFLOW-EPISODE TOKEN COST (Lane I, common-task hardening loop, 2026-08-20).
2// Operator: "grow our capabilities into repeatable high value little to no token capabilities".
3// Ranking hardening candidates needs the REAL cost of what we already do repeatedly. The estate had
4// the three halves and never joined them: nx_actlog mines recurring tool:verb support, nx_eff_lib
5// measures transcript tokens PER DAY, and nx_tokroi's uses_per_day is a DECLARED assumption. This
6// organ joins them: per-INVOCATION-PAIR measured token cost over the FULL transcript population.
7//
8// THE CORRECTION THIS ORGAN CARRIES (measured 2026-08-20, and it is why the join could not be trusted
9// before): one assistant MESSAGE is written to the transcript as SEVERAL JSONL LINES -- one per content
10// block (thinking, tool_use, text) -- and EVERY one of those lines repeats the SAME usage object
11// verbatim. nx_eff_lib::es_tr_tokens dedups the two usage copies WITHIN a line (message.usage and the
12// iterations[] echo -- that half is correct and gated by its T20) but counts once PER LINE, so a
13// message with N content blocks is counted N times. Measured over the 12 largest transcripts:
14// 43,372 assistant lines carry only 22,234 distinct message ids => the per-line method overstates by
15// ~1.95x. This organ dedups by message.id through a real hash set and PRINTS BOTH TOTALS side by side
16// so the correction is proven by the run, never asserted (two counters of one population = free audit).
17// Dedup is a SET, not a previous-id compare: 12 of 22,234 ids reappear NON-consecutively, so the cheap
18// compare would silently overcount those.
19//
20// gauge [trdir] -> corrected(msgid-deduped) vs perline totals + overcount permil + envelope
21// mine [trdir] [minsup] -> recurring invocation PAIRS >= minsup with exact total measured tokens
22// selftest -> gv_verdict gate, named neg-controls, runtime fixtures
23//
24// RANKING QUANTITY IS THE EXACT TOTAL, NOT A MEDIAN: total = the sum of every episode's measured cost,
25// carried exactly. A median would need a second pass plus per-episode retention; mean and max are
26// printed and LABELLED as such, and no median is claimed. license_tier: ORIGINAL No hw writes (Rule 26).
27import "nx_syscalls.nx"
28import "nx_gate_verdict.nx"
29
30const WF_TR_DEF: *u8 = "/mnt/c/Users/elder/.claude/projects/C--Users-elder"
31// ---- byte constants (named; a raw literal byte is a magic number) ----
32const WF_NL: i64 = 10
33const WF_QUOTE: i64 = 34
34const WF_SLASH: i64 = 47
35const WF_ZERO: i64 = 48
36const WF_NINE: i64 = 57
37// ---- token weights: the published Anthropic pricing SHAPE at x10 integer scale, the SAME declared
38// multipliers nx_eff_lib converts with (uncached in 1x, out 5x, cache-read 0.1x, cache-write 1.25x).
39// Weighted units are printed with their divisor so the reader can recover raw token counts.
40const WF_W_IN: i64 = 10
41const WF_W_OUT: i64 = 50
42const WF_W_CR: i64 = 1
43const WF_W_CW: i64 = 12
44const WF_W_DIV: i64 = 10
45// ---- message-id hash set ----
46const WF_MID_SLOTS: i64 = 4194304
47const WF_MID_MASK: i64 = 4194303
48// ---- tool:verb interning ----
49const WF_ID_SLOTS: i64 = 262144
50const WF_ID_MASK: i64 = 262143
51const WF_IDS_MAX: i64 = 32768
52const WF_ARENA: i64 = 8388608
53const WF_LABEL_MAX: i64 = 96
54// ---- pair table ----
55const WF_BG_SLOTS: i64 = 1048576
56const WF_BG_MASK: i64 = 1048575
57// ---- per-file arrays ----
58const WF_MSG_MAX: i64 = 262144
59const WF_INV_MAX: i64 = 262144
60// ---- envelope slots ----
61const WF_E_FILES: i64 = 0
62const WF_E_BYTES: i64 = 1
63const WF_E_LINES: i64 = 2
64const WF_E_MSGS: i64 = 3
65const WF_E_DUPLINES: i64 = 4
66const WF_E_INVS: i64 = 5
67const WF_E_UNREAD: i64 = 6
68const WF_E_MSGCAP: i64 = 7
69const WF_E_INVCAP: i64 = 8
70const WF_E_IDCAP: i64 = 9
71const WF_E_BGCAP: i64 = 10
72const WF_E_PAIRS: i64 = 11
73const WF_E_SLOTS: i64 = 16
74// ---- corrected token accumulators ----
75const WF_T_IN: i64 = 0
76const WF_T_OUT: i64 = 1
77const WF_T_CR: i64 = 2
78const WF_T_CW: i64 = 3
79const WF_T_PIN: i64 = 4
80const WF_T_POUT: i64 = 5
81const WF_T_PCR: i64 = 6
82const WF_T_PCW: i64 = 7
83const WF_T_SLOTS: i64 = 8
84const WF_STAT_BUF: i64 = 256
85const WF_DIRENT_BUF: i64 = 65536
86const WF_PATH_BUF: i64 = 4096
87const WF_GETDENTS: i64 = 217
88const WF_RECLEN_OFF: i64 = 16
89const WF_NAME_OFF: i64 = 19
90const WF_TOP_DEF: i64 = 40
91const WF_PERMIL: i64 = 1000
92const WF_MODE_755: i64 = 493
93const WF_MODE_644: i64 = 420
94const WF_TSV_TAB: i64 = 9
95const WF_DAYSEC: i64 = 86400
96const WF_E_MINTS: i64 = 12
97const WF_E_MAXTS: i64 = 13
98const WF_E_FRAMES: i64 = 14
99const WF_CHBEAT_DEF: *u8 = "knowledge/status/chbeat"
100
101func wf_len(s: *u8) -> i64 {
102 var i: i64 = 0
103 while s[i] != (0 as u8) { i = i + 1 }
104 return i
105}
106func wf_eq(a: *u8, b: *u8) -> i64 {
107 var i: i64 = 0
108 while 1 == 1 {
109 let ca: u8 = a[i]
110 let cb: u8 = b[i]
111 if ca != cb { return 0 }
112 if ca == (0 as u8) { return 1 }
113 i = i + 1
114 }
115 return 0
116}
117func wf_atoi(s: *u8) -> i64 {
118 var v: i64 = 0
119 var i: i64 = 0
120 while s[i] != (0 as u8) {
121 let c: i64 = s[i] as i64
122 if c >= WF_ZERO { if c <= WF_NINE { v = v * 10 + (c - WF_ZERO) } }
123 i = i + 1
124 }
125 return v
126}
127// find needle within [a,e); return offset AFTER the needle, or -1
128func wf_find_in(b: *u8, a: i64, e: i64, needle: *u8) -> i64 {
129 let nl: i64 = wf_len(needle)
130 if nl == 0 { return 0 - 1 }
131 var i: i64 = a
132 while i + nl <= e {
133 var k: i64 = 0
134 var ok: i64 = 1
135 while k < nl { if b[i+k] != needle[k] { ok = 0; k = nl } else { k = k + 1 } }
136 if ok == 1 { return i + nl }
137 i = i + 1
138 }
139 return 0 - 1
140}
141// parse a non-negative integer starting at p, bounded by e
142func wf_num_at(b: *u8, e: i64, p: i64) -> i64 {
143 var v: i64 = 0
144 var i: i64 = p
145 var go: i64 = 1
146 while go == 1 {
147 if i >= e { go = 0 } else {
148 let c: i64 = b[i] as i64
149 if c < WF_ZERO { go = 0 } else {
150 if c > WF_NINE { go = 0 } else { v = v * 10 + (c - WF_ZERO); i = i + 1 }
151 }
152 }
153 }
154 return v
155}
156// FNV-1a-shaped hash over slice [a,e); never returns 0 (0 marks an empty slot)
157func wf_hash(b: *u8, a: i64, e: i64) -> i64 {
158 var h: i64 = 1469598103934665603
159 var i: i64 = a
160 while i < e {
161 h = h ^ (b[i] as i64)
162 h = h * 1099511628211
163 i = i + 1
164 }
165 if h < 0 { h = 0 - h }
166 if h == 0 { h = 1 }
167 return h
168}
169// hash-set insert; returns 1 if the key was ALREADY present, 0 if freshly inserted.
170// cap slot: caller counts inserts; a full table must ANNOUNCE, never silently stop deduping.
171func wf_set_add(tab: *i64, h: i64) -> i64 {
172 var s: i64 = h & WF_MID_MASK
173 var guard: i64 = 0
174 while guard < WF_MID_SLOTS {
175 let cur: i64 = tab[s]
176 if cur == 0 { tab[s] = h; return 0 }
177 if cur == h { return 1 }
178 s = (s + 1) & WF_MID_MASK
179 guard = guard + 1
180 }
181 return 1
182}
183// intern slice [a,e) as a tool:verb label -> stable small id, or -1 if the id space is full
184func wf_intern(tab: *i64, offs: *i64, arena: *u8, st: *i64, b: *u8, a: i64, e: i64) -> i64 {
185 var n: i64 = e - a
186 if n <= 0 { return 0 - 1 }
187 if n > WF_LABEL_MAX { n = WF_LABEL_MAX }
188 let h: i64 = wf_hash(b, a, a + n)
189 var s: i64 = h & WF_ID_MASK
190 var guard: i64 = 0
191 while guard < WF_ID_SLOTS {
192 let cur: i64 = tab[s*2]
193 if cur == 0 {
194 if st[0] >= WF_IDS_MAX { return 0 - 1 }
195 if st[1] + n + 1 >= WF_ARENA { return 0 - 1 }
196 let id: i64 = st[0]
197 let off: i64 = st[1]
198 var k: i64 = 0
199 while k < n { arena[off+k] = b[a+k]; k = k + 1 }
200 arena[off+n] = 0 as u8
201 offs[id] = off
202 tab[s*2] = h
203 tab[s*2+1] = id
204 st[0] = id + 1
205 st[1] = off + n + 1
206 return id
207 }
208 if cur == h { return tab[s*2+1] }
209 s = (s + 1) & WF_ID_MASK
210 guard = guard + 1
211 }
212 return 0 - 1
213}
214// pair table: key = id1 * WF_IDS_MAX + id2 ; slots hold key, count, tokensum, tokenmax
215func wf_pair_add(bg: *i64, key: i64, tok: i64, env: *i64) -> i64 {
216 var h: i64 = key * 2654435761
217 if h < 0 { h = 0 - h }
218 var s: i64 = h & WF_BG_MASK
219 var guard: i64 = 0
220 while guard < WF_BG_SLOTS {
221 let cur: i64 = bg[s*4]
222 if cur == 0 {
223 bg[s*4] = key + 1
224 bg[s*4+1] = 1
225 bg[s*4+2] = tok
226 bg[s*4+3] = tok
227 env[WF_E_PAIRS] = env[WF_E_PAIRS] + 1
228 return 0
229 }
230 if cur == key + 1 {
231 bg[s*4+1] = bg[s*4+1] + 1
232 bg[s*4+2] = bg[s*4+2] + tok
233 if tok > bg[s*4+3] { bg[s*4+3] = tok }
234 return 0
235 }
236 s = (s + 1) & WF_BG_MASK
237 guard = guard + 1
238 }
239 env[WF_E_BGCAP] = env[WF_E_BGCAP] + 1
240 return 0 - 1
241}
242func wf_is_jsonl(name: *u8) -> i64 {
243 let n: i64 = wf_len(name)
244 if n < 6 { return 0 }
245 if name[n-6] != (46 as u8) { return 0 }
246 if name[n-5] != (106 as u8) { return 0 }
247 if name[n-4] != (115 as u8) { return 0 }
248 if name[n-3] != (111 as u8) { return 0 }
249 if name[n-2] != (110 as u8) { return 0 }
250 if name[n-1] != (108 as u8) { return 0 }
251 return 1
252}
253// ---- per-file pass: dedup usage by message.id, record invocation sequence, accumulate pairs ----
254func wf_scan_file(path: *u8, mids: *i64, idtab: *i64, idoffs: *i64, arena: *u8, ist: *i64, bg: *i64, msgtok: *i64, invid: *i64, invmsg: *i64, env: *i64, tok: *i64) -> i64 {
255 var flen: i64 = 0
256 let lp: *i64 = (&flen) as *i64
257 let buf: *u8 = sys_read_file(path, lp)
258 if (buf as i64) == 0 { env[WF_E_UNREAD] = env[WF_E_UNREAD] + 1; return 0 - 1 }
259 if flen <= 0 { return 0 }
260 env[WF_E_FILES] = env[WF_E_FILES] + 1
261 env[WF_E_BYTES] = env[WF_E_BYTES] + flen
262 var nmsg: i64 = 0
263 var ninv: i64 = 0
264 var i: i64 = 0
265 while i < flen {
266 var le: i64 = i
267 var s: i64 = 1
268 while s == 1 { if le >= flen { s = 0 } else { if buf[le] == (WF_NL as u8) { s = 0 } else { le = le + 1 } } }
269 if le > i {
270 env[WF_E_LINES] = env[WF_E_LINES] + 1
271 let pu: i64 = wf_find_in(buf, i, le, "\x22usage\x22:{" as *u8)
272 var curmsg: i64 = 0 - 1
273 if pu >= 0 {
274 // per-line (incumbent method) accumulation -- the audit counter
275 let q1: i64 = wf_find_in(buf, i, le, "\x22input_tokens\x22:" as *u8)
276 if q1 >= 0 { tok[WF_T_PIN] = tok[WF_T_PIN] + wf_num_at(buf, le, q1) }
277 let q2: i64 = wf_find_in(buf, i, le, "\x22output_tokens\x22:" as *u8)
278 if q2 >= 0 { tok[WF_T_POUT] = tok[WF_T_POUT] + wf_num_at(buf, le, q2) }
279 let q3: i64 = wf_find_in(buf, i, le, "\x22cache_read_input_tokens\x22:" as *u8)
280 if q3 >= 0 { tok[WF_T_PCR] = tok[WF_T_PCR] + wf_num_at(buf, le, q3) }
281 let q4: i64 = wf_find_in(buf, i, le, "\x22cache_creation_input_tokens\x22:" as *u8)
282 if q4 >= 0 { tok[WF_T_PCW] = tok[WF_T_PCW] + wf_num_at(buf, le, q4) }
283 // corrected: dedup by message.id
284 let pm: i64 = wf_find_in(buf, i, le, "\x22id\x22:\x22msg_" as *u8)
285 var dup: i64 = 1
286 if pm >= 0 {
287 var real_end: i64 = pm
288 var g: i64 = 1
289 while g == 1 { if real_end >= le { g = 0 } else { if buf[real_end] == (WF_QUOTE as u8) { g = 0 } else { real_end = real_end + 1 } } }
290 let h: i64 = wf_hash(buf, pm, real_end)
291 dup = wf_set_add(mids, h)
292 }
293 if dup == 0 {
294 var vin: i64 = 0
295 var vout: i64 = 0
296 var vcr: i64 = 0
297 var vcw: i64 = 0
298 if q1 >= 0 { vin = wf_num_at(buf, le, q1) }
299 if q2 >= 0 { vout = wf_num_at(buf, le, q2) }
300 if q3 >= 0 { vcr = wf_num_at(buf, le, q3) }
301 if q4 >= 0 { vcw = wf_num_at(buf, le, q4) }
302 tok[WF_T_IN] = tok[WF_T_IN] + vin
303 tok[WF_T_OUT] = tok[WF_T_OUT] + vout
304 tok[WF_T_CR] = tok[WF_T_CR] + vcr
305 tok[WF_T_CW] = tok[WF_T_CW] + vcw
306 env[WF_E_MSGS] = env[WF_E_MSGS] + 1
307 if nmsg < WF_MSG_MAX {
308 msgtok[nmsg] = vin*WF_W_IN + vout*WF_W_OUT + vcr*WF_W_CR + vcw*WF_W_CW
309 nmsg = nmsg + 1
310 } else { env[WF_E_MSGCAP] = env[WF_E_MSGCAP] + 1 }
311 } else { env[WF_E_DUPLINES] = env[WF_E_DUPLINES] + 1 }
312 }
313 curmsg = nmsg - 1
314 // tool invocation on this line
315 let pt: i64 = wf_find_in(buf, i, le, "\x22type\x22:\x22tool_use\x22" as *u8)
316 if pt >= 0 {
317 let pn: i64 = wf_find_in(buf, pt, le, "\x22name\x22:\x22" as *u8)
318 if pn >= 0 {
319 var ne: i64 = pn
320 var g2: i64 = 1
321 while g2 == 1 { if ne >= le { g2 = 0 } else { if buf[ne] == (WF_QUOTE as u8) { g2 = 0 } else { ne = ne + 1 } } }
322 // verb = first argv element when the tool takes one, else the bare tool name
323 var lab: i64 = 0
324 let pv: i64 = wf_find_in(buf, pn, le, "\x22argv\x22:[\x22" as *u8)
325 var lend: i64 = ne
326 if pv >= 0 {
327 var ve: i64 = pv
328 var g3: i64 = 1
329 while g3 == 1 { if ve >= le { g3 = 0 } else { if buf[ve] == (WF_QUOTE as u8) { g3 = 0 } else { ve = ve + 1 } } }
330 lab = 1
331 // label = name + ":" + verb, assembled in the arena tail scratch
332 let sc: *u8 = (( arena as i64) + WF_ARENA - WF_LABEL_MAX - 2) as *u8
333 var w: i64 = 0
334 var k2: i64 = pn
335 while k2 < ne { if w < WF_LABEL_MAX - 2 { sc[w] = buf[k2]; w = w + 1 }; k2 = k2 + 1 }
336 sc[w] = 58 as u8
337 w = w + 1
338 var k3: i64 = pv
339 while k3 < ve { if w < WF_LABEL_MAX { sc[w] = buf[k3]; w = w + 1 }; k3 = k3 + 1 }
340 let idv: i64 = wf_intern(idtab, idoffs, arena, ist, sc, 0, w)
341 if idv >= 0 { if ninv < WF_INV_MAX { invid[ninv] = idv; invmsg[ninv] = curmsg; ninv = ninv + 1; env[WF_E_INVS] = env[WF_E_INVS] + 1 } else { env[WF_E_INVCAP] = env[WF_E_INVCAP] + 1 } } else { env[WF_E_IDCAP] = env[WF_E_IDCAP] + 1 }
342 } else {
343 let idn: i64 = wf_intern(idtab, idoffs, arena, ist, buf, pn, ne)
344 if idn >= 0 { if ninv < WF_INV_MAX { invid[ninv] = idn; invmsg[ninv] = curmsg; ninv = ninv + 1; env[WF_E_INVS] = env[WF_E_INVS] + 1 } else { env[WF_E_INVCAP] = env[WF_E_INVCAP] + 1 } } else { env[WF_E_IDCAP] = env[WF_E_IDCAP] + 1 }
345 }
346 }
347 }
348 }
349 i = le + 1
350 }
351 // pairs: consecutive invocations; cost = the measured tokens of the messages they span
352 var k: i64 = 0
353 while k + 1 < ninv {
354 let a1: i64 = invid[k]
355 let a2: i64 = invid[k+1]
356 var m1: i64 = invmsg[k]
357 var m2: i64 = invmsg[k+1]
358 if m1 < 0 { m1 = 0 }
359 if m2 < m1 { m2 = m1 }
360 var cost: i64 = 0
361 var m: i64 = m1
362 while m <= m2 { if m >= 0 { if m < nmsg { cost = cost + msgtok[m] } }; m = m + 1 }
363 wf_pair_add(bg, a1 * WF_IDS_MAX + a2, cost, env)
364 k = k + 1
365 }
366 // free the file map before the next file: 309 transcripts x up to 55 MB would otherwise fault
367 // ~2 GB resident for a single census. A measurement that hammers the box is a bug (rule: resource
368 // excellence is a shipping criterion), and the peak here is now ONE transcript, not the corpus.
369 sys_free_file(buf, flen)
370 return 0
371}
372func wf_walk(dir: *u8, mids: *i64, idtab: *i64, idoffs: *i64, arena: *u8, ist: *i64, bg: *i64, msgtok: *i64, invid: *i64, invmsg: *i64, env: *i64, tok: *i64) -> i64 {
373 let fd: i64 = sys_openat_rd(dir)
374 if fd < 0 { return 0 - 1 }
375 let gbuf: *u8 = sys_mmap(WF_DIRENT_BUF)
376 let child: *u8 = sys_mmap(WF_PATH_BUF)
377 var nread: i64 = __syscall(WF_GETDENTS, fd, gbuf, WF_DIRENT_BUF, 0, 0, 0)
378 while nread > 0 {
379 var off: i64 = 0
380 while off < nread {
381 let reclen: i64 = (gbuf[off + WF_RECLEN_OFF] as i64) | ((gbuf[off + WF_RECLEN_OFF + 1] as i64) << 8)
382 if reclen <= 0 { off = nread } else {
383 let name: *u8 = ((gbuf as i64) + off + WF_NAME_OFF) as *u8
384 if wf_is_jsonl(name) == 1 {
385 var co: i64 = 0
386 var di: i64 = 0
387 while dir[di] != (0 as u8) { child[co] = dir[di]; co = co + 1; di = di + 1 }
388 child[co] = WF_SLASH as u8
389 co = co + 1
390 var ci: i64 = 0
391 while name[ci] != (0 as u8) { child[co] = name[ci]; co = co + 1; ci = ci + 1 }
392 child[co] = 0 as u8
393 wf_scan_file(child, mids, idtab, idoffs, arena, ist, bg, msgtok, invid, invmsg, env, tok)
394 }
395 off = off + reclen
396 }
397 }
398 nread = __syscall(WF_GETDENTS, fd, gbuf, WF_DIRENT_BUF, 0, 0, 0)
399 }
400 sys_close(fd)
401 return 0
402}
403func wf_emit_env(env: *i64, tok: *i64) -> i64 {
404 gv_puts("ENV files=" as *u8)
405 gv_num(env[WF_E_FILES])
406 gv_puts(" bytes=" as *u8)
407 gv_num(env[WF_E_BYTES])
408 gv_puts(" lines=" as *u8)
409 gv_num(env[WF_E_LINES])
410 gv_puts(" messages=" as *u8)
411 gv_num(env[WF_E_MSGS])
412 gv_puts(" duplicate_usage_lines=" as *u8)
413 gv_num(env[WF_E_DUPLINES])
414 gv_puts(" invocations=" as *u8)
415 gv_num(env[WF_E_INVS])
416 gv_puts(" distinct_pairs=" as *u8)
417 gv_num(env[WF_E_PAIRS])
418 gv_puts(" unreadable=" as *u8)
419 gv_num(env[WF_E_UNREAD])
420 gv_puts("\nCAPS msg_overflow=" as *u8)
421 gv_num(env[WF_E_MSGCAP])
422 gv_puts(" inv_overflow=" as *u8)
423 gv_num(env[WF_E_INVCAP])
424 gv_puts(" label_overflow=" as *u8)
425 gv_num(env[WF_E_IDCAP])
426 gv_puts(" pair_overflow=" as *u8)
427 gv_num(env[WF_E_BGCAP])
428 gv_puts(" (any non-zero => the run below is a FLOOR, not a total)\n" as *u8)
429 return 0
430}
431func wf_gauge(dir: *u8) -> i64 {
432 let env: *i64 = sys_mmap(WF_E_SLOTS * 8) as *i64
433 let tok: *i64 = sys_mmap(WF_T_SLOTS * 8) as *i64
434 let mids: *i64 = sys_mmap(WF_MID_SLOTS * 8) as *i64
435 let idtab: *i64 = sys_mmap(WF_ID_SLOTS * 2 * 8) as *i64
436 let idoffs: *i64 = sys_mmap(WF_IDS_MAX * 8) as *i64
437 let arena: *u8 = sys_mmap(WF_ARENA)
438 let ist: *i64 = sys_mmap(4 * 8) as *i64
439 let bg: *i64 = sys_mmap(WF_BG_SLOTS * 4 * 8) as *i64
440 let msgtok: *i64 = sys_mmap(WF_MSG_MAX * 8) as *i64
441 let invid: *i64 = sys_mmap(WF_INV_MAX * 8) as *i64
442 let invmsg: *i64 = sys_mmap(WF_INV_MAX * 8) as *i64
443 wf_walk(dir, mids, idtab, idoffs, arena, ist, bg, msgtok, invid, invmsg, env, tok)
444 gv_puts("WFCOST-GAUGE v1 (full population, no sampling)\n" as *u8)
445 wf_emit_env(env, tok)
446 gv_puts("CORRECTED msgid_deduped in=" as *u8)
447 gv_num(tok[WF_T_IN])
448 gv_puts(" out=" as *u8)
449 gv_num(tok[WF_T_OUT])
450 gv_puts(" cache_read=" as *u8)
451 gv_num(tok[WF_T_CR])
452 gv_puts(" cache_write=" as *u8)
453 gv_num(tok[WF_T_CW])
454 gv_puts("\nPERLINE incumbent_method in=" as *u8)
455 gv_num(tok[WF_T_PIN])
456 gv_puts(" out=" as *u8)
457 gv_num(tok[WF_T_POUT])
458 gv_puts(" cache_read=" as *u8)
459 gv_num(tok[WF_T_PCR])
460 gv_puts(" cache_write=" as *u8)
461 gv_num(tok[WF_T_PCW])
462 let ct: i64 = tok[WF_T_IN] + tok[WF_T_OUT] + tok[WF_T_CR] + tok[WF_T_CW]
463 let pt: i64 = tok[WF_T_PIN] + tok[WF_T_POUT] + tok[WF_T_PCR] + tok[WF_T_PCW]
464 gv_puts("\nTOTALS corrected=" as *u8)
465 gv_num(ct)
466 gv_puts(" perline=" as *u8)
467 gv_num(pt)
468 gv_puts(" overstatement_permil=" as *u8)
469 if ct > 0 { gv_num((pt * WF_PERMIL) / ct) } else { gv_num(0) }
470 gv_puts(" (1000 = the two agree; >1000 = the per-line method overstates)\n" as *u8)
471 return 0
472}
473func wf_mine(dir: *u8, minsup: i64, top: i64) -> i64 {
474 let env: *i64 = sys_mmap(WF_E_SLOTS * 8) as *i64
475 let tok: *i64 = sys_mmap(WF_T_SLOTS * 8) as *i64
476 let mids: *i64 = sys_mmap(WF_MID_SLOTS * 8) as *i64
477 let idtab: *i64 = sys_mmap(WF_ID_SLOTS * 2 * 8) as *i64
478 let idoffs: *i64 = sys_mmap(WF_IDS_MAX * 8) as *i64
479 let arena: *u8 = sys_mmap(WF_ARENA)
480 let ist: *i64 = sys_mmap(4 * 8) as *i64
481 let bg: *i64 = sys_mmap(WF_BG_SLOTS * 4 * 8) as *i64
482 let msgtok: *i64 = sys_mmap(WF_MSG_MAX * 8) as *i64
483 let invid: *i64 = sys_mmap(WF_INV_MAX * 8) as *i64
484 let invmsg: *i64 = sys_mmap(WF_INV_MAX * 8) as *i64
485 wf_walk(dir, mids, idtab, idoffs, arena, ist, bg, msgtok, invid, invmsg, env, tok)
486 gv_puts("WFCOST-MINE v1 (full population, no sampling) minsup=" as *u8)
487 gv_num(minsup)
488 gv_puts("\n" as *u8)
489 wf_emit_env(env, tok)
490 gv_puts("ROW support total_weighted mean_weighted max_weighted pair (weighted = in*1 out*5 cacheread*0.1 cachewrite*1.25, x" as *u8)
491 gv_num(WF_W_DIV)
492 gv_puts(" integer scale; TOTAL is exact, MEAN and MAX are labelled as such, NO median is claimed)\n" as *u8)
493 // selection sort over the qualifying rows only, by total weighted tokens DESC
494 var shown: i64 = 0
495 var qual: i64 = 0
496 var s: i64 = 0
497 while s < WF_BG_SLOTS { if bg[s*4] != 0 { if bg[s*4+1] >= minsup { qual = qual + 1 } }; s = s + 1 }
498 // `go` is a SEPARATE loop-control flag: writing `shown = top` to leave the loop would destroy the
499 // very count the footer reports (it printed shown=30 having shown nothing).
500 var go: i64 = 1
501 while go == 1 { if shown >= top { go = 0 } else {
502 var best: i64 = 0 - 1
503 var bestv: i64 = 0 - 1
504 var t: i64 = 0
505 while t < WF_BG_SLOTS {
506 if bg[t*4] != 0 {
507 if bg[t*4+1] >= minsup {
508 if bg[t*4+2] > bestv { bestv = bg[t*4+2]; best = t }
509 }
510 }
511 t = t + 1
512 }
513 if best < 0 { go = 0 } else {
514 let key: i64 = bg[best*4] - 1
515 let id1: i64 = key / WF_IDS_MAX
516 let id2: i64 = key - id1 * WF_IDS_MAX
517 gv_puts("ROW " as *u8)
518 gv_num(bg[best*4+1])
519 gv_puts(" " as *u8)
520 gv_num(bg[best*4+2])
521 gv_puts(" " as *u8)
522 gv_num(bg[best*4+2] / bg[best*4+1])
523 gv_puts(" " as *u8)
524 gv_num(bg[best*4+3])
525 gv_puts(" " as *u8)
526 let p1: *u8 = ((arena as i64) + idoffs[id1]) as *u8
527 let p2: *u8 = ((arena as i64) + idoffs[id2]) as *u8
528 gv_puts(p1)
529 gv_puts(" >> " as *u8)
530 gv_puts(p2)
531 gv_puts("\n" as *u8)
532 bg[best*4+2] = 0 - 1
533 shown = shown + 1
534 }
535 } }
536 gv_puts("QUALIFYING pairs_at_or_above_minsup=" as *u8)
537 gv_num(qual)
538 gv_puts(" shown=" as *u8)
539 gv_num(shown)
540 gv_puts(" (shown is a PREFIX of qualifying when shown < qualifying)\n" as *u8)
541 return 0
542}
543// ---- FRAMES MODE: mine the NAS-side chbeat journals (DM1's ch_beat, live 2026-08-20) ----
544// âš THESE ARE NOT TRANSCRIPTS AND THE DIFFERENCE IS LOAD-BEARING. A chbeat frame is TSV
545// `ts <TAB> session <TAB> tool <TAB> verb <TAB> outcome <TAB> note`, and MEASURED on the landed
546// corpus: (a) it carries NO token usage at all -- `nx_absent input_tokens knowledge/status/chbeat
547// jrnl` returned matches=0 with corpus_complete=1, ABSENT-PROVEN; (b) the verb column is the
548// CONSTANT string "use" for every row, so `nx_fs:read` and `nx_fs:lines` both collapse to `nx_fs`.
549// ⇒ THIS VERB PUBLISHES SUPPORT AND REFUSES TO PUBLISH COST. That refusal is the point: a cost
550// column derived from frames that contain no cost would be a constant wearing the shape of a
551// measurement. It is sound to rank on support alone because this lane MEASURED that per-episode
552// cost does not discriminate (1.63x spread) while support does (15.1x) -- support IS the ranking
553// quantity, and frames carry exactly that.
554// âš COVERAGE IS A BACKFILL AND IS THEREFORE PARTIAL BY CONSTRUCTION: it drains OLDEST-FIRST, so the
555// landed subset is the PAST, not the present. The window is printed with every run and the verdict
556// line says PARTIAL-WINDOW -- never let a drained prefix read as the corpus.
557func wf_is_jrnl(name: *u8) -> i64 {
558 let n: i64 = wf_len(name)
559 if n < 6 { return 0 }
560 if name[n-5] != (46 as u8) { return 0 }
561 if name[n-4] != (106 as u8) { return 0 }
562 if name[n-3] != (114 as u8) { return 0 }
563 if name[n-2] != (110 as u8) { return 0 }
564 if name[n-1] != (108 as u8) { return 0 }
565 return 1
566}
567func wf_frames_file(path: *u8, idtab: *i64, idoffs: *i64, arena: *u8, ist: *i64, bg: *i64, env: *i64) -> i64 {
568 var flen: i64 = 0
569 let lp: *i64 = (&flen) as *i64
570 let buf: *u8 = sys_read_file(path, lp)
571 if (buf as i64) == 0 { env[WF_E_UNREAD] = env[WF_E_UNREAD] + 1; return 0 - 1 }
572 if flen <= 0 { return 0 }
573 env[WF_E_FILES] = env[WF_E_FILES] + 1
574 env[WF_E_BYTES] = env[WF_E_BYTES] + flen
575 var prev_tool: i64 = 0 - 1
576 var prev_sess: i64 = 0
577 var i: i64 = 0
578 while i < flen {
579 var le: i64 = i
580 var s: i64 = 1
581 while s == 1 { if le >= flen { s = 0 } else { if buf[le] == (WF_NL as u8) { s = 0 } else { le = le + 1 } } }
582 if le > i {
583 env[WF_E_LINES] = env[WF_E_LINES] + 1
584 // field 0: ts
585 var p: i64 = i
586 var g: i64 = 1
587 while g == 1 { if p >= le { g = 0 } else { if buf[p] == (WF_TSV_TAB as u8) { g = 0 } else { p = p + 1 } } }
588 if p < le {
589 let ts: i64 = wf_num_at(buf, le, i)
590 if ts > 0 {
591 if env[WF_E_MINTS] == 0 { env[WF_E_MINTS] = ts }
592 if ts < env[WF_E_MINTS] { env[WF_E_MINTS] = ts }
593 if ts > env[WF_E_MAXTS] { env[WF_E_MAXTS] = ts }
594 }
595 // field 1: session
596 let s1: i64 = p + 1
597 var q: i64 = s1
598 var g2: i64 = 1
599 while g2 == 1 { if q >= le { g2 = 0 } else { if buf[q] == (WF_TSV_TAB as u8) { g2 = 0 } else { q = q + 1 } } }
600 if q < le {
601 let sess: i64 = wf_hash(buf, s1, q)
602 // field 2: tool
603 let s2: i64 = q + 1
604 var r: i64 = s2
605 var g3: i64 = 1
606 while g3 == 1 { if r >= le { g3 = 0 } else { if buf[r] == (WF_TSV_TAB as u8) { g3 = 0 } else { r = r + 1 } } }
607 if r > s2 {
608 let tid: i64 = wf_intern(idtab, idoffs, arena, ist, buf, s2, r)
609 if tid >= 0 {
610 env[WF_E_FRAMES] = env[WF_E_FRAMES] + 1
611 // pair ONLY within one session: a pair spanning two sessions is an
612 // artifact of file layout, not a thing anybody did.
613 if prev_tool >= 0 { if sess == prev_sess { wf_pair_add(bg, prev_tool * WF_IDS_MAX + tid, 0, env) } }
614 prev_tool = tid
615 prev_sess = sess
616 } else { env[WF_E_IDCAP] = env[WF_E_IDCAP] + 1 }
617 }
618 }
619 }
620 }
621 i = le + 1
622 }
623 sys_free_file(buf, flen)
624 return 0
625}
626func wf_frames(dir: *u8, minsup: i64, top: i64) -> i64 {
627 let env: *i64 = sys_mmap(WF_E_SLOTS * 8) as *i64
628 let idtab: *i64 = sys_mmap(WF_ID_SLOTS * 2 * 8) as *i64
629 let idoffs: *i64 = sys_mmap(WF_IDS_MAX * 8) as *i64
630 let arena: *u8 = sys_mmap(WF_ARENA)
631 let ist: *i64 = sys_mmap(4 * 8) as *i64
632 let bg: *i64 = sys_mmap(WF_BG_SLOTS * 4 * 8) as *i64
633 let fd: i64 = sys_openat_rd(dir)
634 if fd < 0 { gv_puts("WFCOST-FRAMES UNREADABLE dir\n" as *u8); return 0 - 1 }
635 let gbuf: *u8 = sys_mmap(WF_DIRENT_BUF)
636 let child: *u8 = sys_mmap(WF_PATH_BUF)
637 var nread: i64 = __syscall(WF_GETDENTS, fd, gbuf, WF_DIRENT_BUF, 0, 0, 0)
638 while nread > 0 {
639 var off: i64 = 0
640 while off < nread {
641 let reclen: i64 = (gbuf[off + WF_RECLEN_OFF] as i64) | ((gbuf[off + WF_RECLEN_OFF + 1] as i64) << 8)
642 if reclen <= 0 { off = nread } else {
643 let name: *u8 = ((gbuf as i64) + off + WF_NAME_OFF) as *u8
644 if wf_is_jrnl(name) == 1 {
645 var co: i64 = 0
646 var di: i64 = 0
647 while dir[di] != (0 as u8) { child[co] = dir[di]; co = co + 1; di = di + 1 }
648 child[co] = WF_SLASH as u8
649 co = co + 1
650 var ci: i64 = 0
651 while name[ci] != (0 as u8) { child[co] = name[ci]; co = co + 1; ci = ci + 1 }
652 child[co] = 0 as u8
653 wf_frames_file(child, idtab, idoffs, arena, ist, bg, env)
654 }
655 off = off + reclen
656 }
657 }
658 nread = __syscall(WF_GETDENTS, fd, gbuf, WF_DIRENT_BUF, 0, 0, 0)
659 }
660 sys_close(fd)
661 gv_puts("WFCOST-FRAMES v1 SOURCE=chbeat-frames minsup=" as *u8)
662 gv_num(minsup)
663 gv_puts("\nENV files=" as *u8)
664 gv_num(env[WF_E_FILES])
665 gv_puts(" bytes=" as *u8)
666 gv_num(env[WF_E_BYTES])
667 gv_puts(" lines=" as *u8)
668 gv_num(env[WF_E_LINES])
669 gv_puts(" frames=" as *u8)
670 gv_num(env[WF_E_FRAMES])
671 gv_puts(" distinct_pairs=" as *u8)
672 gv_num(env[WF_E_PAIRS])
673 gv_puts(" unreadable=" as *u8)
674 gv_num(env[WF_E_UNREAD])
675 gv_puts("\nWINDOW min_ts=" as *u8)
676 gv_num(env[WF_E_MINTS])
677 gv_puts(" max_ts=" as *u8)
678 gv_num(env[WF_E_MAXTS])
679 gv_puts(" span_days=" as *u8)
680 if env[WF_E_MAXTS] > env[WF_E_MINTS] { gv_num((env[WF_E_MAXTS] - env[WF_E_MINTS]) / WF_DAYSEC) } else { gv_num(0) }
681 gv_puts("\nTOKENS available=0 -- chbeat frames carry NO usage fields (ABSENT-PROVEN, corpus_complete=1).\n" as *u8)
682 gv_puts(" This verb therefore publishes SUPPORT ONLY and REFUSES to print a cost column; a cost\n" as *u8)
683 gv_puts(" derived from frames with no cost in them would be a constant wearing the shape of a\n" as *u8)
684 gv_puts(" measurement. Run `gauge`/`mine` where the transcripts live for measured tokens.\n" as *u8)
685 gv_puts("VERBS collapsed=1 -- the frame verb column is the constant \x22use\x22, so nx_fs:read and\n" as *u8)
686 gv_puts(" nx_fs:lines are INDISTINGUISHABLE here; pairs are TOOL-level, not tool:verb-level.\n" as *u8)
687 gv_puts("ROW support pair (support only; no cost column by construction)\n" as *u8)
688 var shown: i64 = 0
689 var qual: i64 = 0
690 var s2: i64 = 0
691 while s2 < WF_BG_SLOTS { if bg[s2*4] != 0 { if bg[s2*4+1] >= minsup { qual = qual + 1 } }; s2 = s2 + 1 }
692 var go: i64 = 1
693 while go == 1 { if shown >= top { go = 0 } else {
694 var best: i64 = 0 - 1
695 var bestv: i64 = 0 - 1
696 var t: i64 = 0
697 while t < WF_BG_SLOTS {
698 if bg[t*4] != 0 { if bg[t*4+1] >= minsup { if bg[t*4+1] > bestv { bestv = bg[t*4+1]; best = t } } }
699 t = t + 1
700 }
701 if best < 0 { go = 0 } else {
702 let key: i64 = bg[best*4] - 1
703 let id1: i64 = key / WF_IDS_MAX
704 let id2: i64 = key - id1 * WF_IDS_MAX
705 gv_puts("ROW " as *u8)
706 gv_num(bg[best*4+1])
707 gv_puts(" " as *u8)
708 gv_puts(((arena as i64) + idoffs[id1]) as *u8)
709 gv_puts(" >> " as *u8)
710 gv_puts(((arena as i64) + idoffs[id2]) as *u8)
711 gv_puts("\n" as *u8)
712 bg[best*4+1] = 0 - 1
713 shown = shown + 1
714 }
715 } }
716 gv_puts("QUALIFYING pairs=" as *u8)
717 gv_num(qual)
718 gv_puts(" shown=" as *u8)
719 gv_num(shown)
720 gv_puts("\nverdict=PARTIAL-WINDOW -- this is the LANDED subset of a backfill that drains OLDEST-FIRST,\n" as *u8)
721 gv_puts(" so it is a BOUND on the past, not the corpus and not the present. Re-run as it drains.\n" as *u8)
722 return 0
723}
724func wf_selftest() -> i64 {
725 let ctr: *i64 = sys_mmap(64) as *i64
726 // fixture: ONE message id written across THREE content-block lines, usage repeated verbatim --
727 // the exact shape that makes the per-line method overcount. Built at RUNTIME (never a source
728 // literal a scanner could mistake for real data, and never shared with a production beat).
729 let env: *i64 = sys_mmap(WF_E_SLOTS * 8) as *i64
730 let tok: *i64 = sys_mmap(WF_T_SLOTS * 8) as *i64
731 let mids: *i64 = sys_mmap(WF_MID_SLOTS * 8) as *i64
732 let idtab: *i64 = sys_mmap(WF_ID_SLOTS * 2 * 8) as *i64
733 let idoffs: *i64 = sys_mmap(WF_IDS_MAX * 8) as *i64
734 let arena: *u8 = sys_mmap(WF_ARENA)
735 let ist: *i64 = sys_mmap(4 * 8) as *i64
736 let bg: *i64 = sys_mmap(WF_BG_SLOTS * 4 * 8) as *i64
737 let msgtok: *i64 = sys_mmap(WF_MSG_MAX * 8) as *i64
738 let invid: *i64 = sys_mmap(WF_INV_MAX * 8) as *i64
739 let invmsg: *i64 = sys_mmap(WF_INV_MAX * 8) as *i64
740 let dir: *u8 = sys_mmap(WF_PATH_BUF)
741 let path: *u8 = sys_mmap(WF_PATH_BUF)
742 var dn: i64 = 0
743 let dsrc: *u8 = "/tmp/nx_wfcost_gate" as *u8
744 while dsrc[dn] != (0 as u8) { dir[dn] = dsrc[dn]; dn = dn + 1 }
745 dir[dn] = 0 as u8
746 sys_mkdir(dir, WF_MODE_755)
747 var pn: i64 = 0
748 let psrc: *u8 = "/tmp/nx_wfcost_gate/fx.jsonl" as *u8
749 while psrc[pn] != (0 as u8) { path[pn] = psrc[pn]; pn = pn + 1 }
750 path[pn] = 0 as u8
751 let fx: *u8 = sys_mmap(WF_ARENA)
752 var w: i64 = 0
753 let l1: *u8 = "{\x22message\x22:{\x22id\x22:\x22msg_AAA\x22,\x22content\x22:[{\x22type\x22:\x22thinking\x22}],\x22usage\x22:{\x22input_tokens\x22:10,\x22cache_creation_input_tokens\x22:0,\x22cache_read_input_tokens\x22:0,\x22output_tokens\x22:0}}}\n" as *u8
754 var k: i64 = 0
755 while l1[k] != (0 as u8) { fx[w] = l1[k]; w = w + 1; k = k + 1 }
756 let l2: *u8 = "{\x22message\x22:{\x22id\x22:\x22msg_AAA\x22,\x22content\x22:[{\x22type\x22:\x22tool_use\x22,\x22name\x22:\x22Alpha\x22,\x22input\x22:{\x22argv\x22:[\x22one\x22]}}],\x22usage\x22:{\x22input_tokens\x22:10,\x22cache_creation_input_tokens\x22:0,\x22cache_read_input_tokens\x22:0,\x22output_tokens\x22:0}}}\n" as *u8
757 k = 0
758 while l2[k] != (0 as u8) { fx[w] = l2[k]; w = w + 1; k = k + 1 }
759 let l3: *u8 = "{\x22message\x22:{\x22id\x22:\x22msg_BBB\x22,\x22content\x22:[{\x22type\x22:\x22tool_use\x22,\x22name\x22:\x22Beta\x22,\x22input\x22:{\x22argv\x22:[\x22two\x22]}}],\x22usage\x22:{\x22input_tokens\x22:5,\x22cache_creation_input_tokens\x22:0,\x22cache_read_input_tokens\x22:0,\x22output_tokens\x22:0}}}\n" as *u8
760 k = 0
761 while l3[k] != (0 as u8) { fx[w] = l3[k]; w = w + 1; k = k + 1 }
762 let fd: i64 = sys_openat_wr(path, WF_MODE_644)
763 sys_write(fd, fx, w)
764 sys_close(fd)
765 wf_scan_file(path, mids, idtab, idoffs, arena, ist, bg, msgtok, invid, invmsg, env, tok)
766 var c1: i64 = 0
767 if env[WF_E_MSGS] == 2 { c1 = 1 }
768 gv_check("T1 three usage-lines over two message ids counted as TWO messages" as *u8, c1, ctr)
769 var c2: i64 = 0
770 if env[WF_E_DUPLINES] == 1 { c2 = 1 }
771 gv_check("T2 the repeated message-id line is COUNTED as a duplicate, not dropped silently" as *u8, c2, ctr)
772 var c3: i64 = 0
773 if tok[WF_T_IN] == 15 { c3 = 1 }
774 gv_check("T3 corrected input tokens 10+5=15 (msgid-deduped)" as *u8, c3, ctr)
775 var c4: i64 = 0
776 if tok[WF_T_PIN] == 25 { c4 = 1 }
777 gv_check("neg-control-perline-method-MUST-overcount-to-25 (proves the fixture can fail)" as *u8, c4, ctr)
778 var c5: i64 = 0
779 if env[WF_E_INVS] == 2 { c5 = 1 }
780 gv_check("T5 two tool invocations recorded in sequence" as *u8, c5, ctr)
781 var c6: i64 = 0
782 if env[WF_E_PAIRS] == 1 { c6 = 1 }
783 gv_check("T6 exactly ONE consecutive pair formed from two invocations" as *u8, c6, ctr)
784 // neg-control: a hash set must report a repeat as a repeat, and a fresh key as fresh
785 let t2: *i64 = sys_mmap(WF_MID_SLOTS * 8) as *i64
786 var c7: i64 = 0
787 if wf_set_add(t2, 12345) == 0 { if wf_set_add(t2, 12345) == 1 { c7 = 1 } }
788 gv_check("T7 set: first insert fresh, second insert reports ALREADY-PRESENT" as *u8, c7, ctr)
789 var c8: i64 = 0
790 if wf_set_add(t2, 999) == 0 { c8 = 1 }
791 gv_check("neg-control-a-DIFFERENT-key-must-NOT-read-as-present" as *u8, c8, ctr)
792 // anti-vacuity: a one-off sequence must NOT reach a support-2 bar (a detector that fires on
793 // everything discriminates nothing -- the POSITIVE control for "not every sequence is common")
794 var c9: i64 = 0
795 var sq: i64 = 0
796 var found: i64 = 0
797 while sq < WF_BG_SLOTS { if bg[sq*4] != 0 { if bg[sq*4+1] >= 2 { found = found + 1 } }; sq = sq + 1 }
798 if found == 0 { c9 = 1 }
799 gv_check("neg-control-one-off-pair-must-NOT-qualify-at-minsup-2 (anti-vacuity)" as *u8, c9, ctr)
800 let rc: i64 = gv_verdict("NX-WFCOST-GATE" as *u8, ctr, "msgid dedup + per-line audit counter + pair formation + set semantics" as *u8)
801 return rc
802}
803func main(argc: i64, argv: *i64) -> i64 {
804 if argc>1 {if wf_eq(argv[1] as *u8,"evaluate")==1{return wfj_command(argc,argv)};if wf_eq(argv[1] as *u8,"evaluate-config")==1{return wfj_config_command(argc,argv)}}
805 if argc < 2 {
806 gv_puts("nx_wfcost v1 -- workflow-episode token cost (Lane I common-task hardening)\n" as *u8)
807 gv_puts(" gauge [trdir] corrected(msgid-deduped) vs perline totals + overcount permil\n" as *u8)
808 gv_puts(" mine [trdir] [minsup] [top] recurring invocation pairs with exact measured tokens\n" as *u8)
809 gv_puts(" selftest gv verdict gate (runtime fixtures, named neg-controls)\n" as *u8)
810 sys_exit(0)
811 return 0
812 }
813 let a1: *u8 = argv[1] as *u8
814 if wf_eq(a1, "selftest" as *u8) == 1 { let rc: i64 = wf_selftest(); sys_exit(rc); return rc }
815 var dir: *u8 = WF_TR_DEF
816 if wf_eq(a1, "gauge" as *u8) == 1 {
817 if argc >= 3 { dir = argv[2] as *u8 }
818 wf_gauge(dir)
819 sys_exit(0)
820 return 0
821 }
822 if wf_eq(a1, "frames" as *u8) == 1 {
823 var fd2: *u8 = WF_CHBEAT_DEF
824 if argc >= 3 { fd2 = argv[2] as *u8 }
825 var fms: i64 = 2
826 var ftop: i64 = WF_TOP_DEF
827 if argc >= 4 { fms = wf_atoi(argv[3] as *u8) }
828 if argc >= 5 { ftop = wf_atoi(argv[4] as *u8) }
829 if fms < 1 { fms = 1 }
830 if ftop < 1 { ftop = 1 }
831 wf_frames(fd2, fms, ftop)
832 sys_exit(0)
833 return 0
834 }
835 if wf_eq(a1, "mine" as *u8) == 1 {
836 if argc >= 3 { dir = argv[2] as *u8 }
837 var ms: i64 = 2
838 var top: i64 = WF_TOP_DEF
839 if argc >= 4 { ms = wf_atoi(argv[3] as *u8) }
840 if argc >= 5 { top = wf_atoi(argv[4] as *u8) }
841 if ms < 1 { ms = 1 }
842 if top < 1 { top = 1 }
843 wf_mine(dir, ms, top)
844 sys_exit(0)
845 return 0
846 }
847 gv_puts("unknown verb (use: gauge | mine | selftest)\n" as *u8)
848 sys_exit(2)
849 return 2
850}
851
852
853// Explicit attribution joins over the canonical reconciled request table. This
854// does not infer task/model/provider identity or acceptance from temporal proximity.
855// Binding plane v1 has 16 columns: id,scan_sha256,thread,response,workflow,task,
856// attempt,role,provider,actual_model,phase,elapsed_ms,evidence_path,evidence_sha256,
857// acceptance,reviewer. '-' means unknown. Acceptance remains a reviewer assertion.
858import "nx_usage_artifact_t173.nx"
859import "nx_comparestale_lib.nx"
860const WFJ_COLS:i64=16
861const WFJ_STATS:i64=25
862// stats: eligible,bound,unknown,rows,other_snapshot,unmatched,retained,missing,
863// unreadable,drift,accept_assertions,accepted_with_retained,elapsed_known,
864// elapsed_unknown,elapsed_sum,roles_unknown; work/retry/review/unknown phase
865// requests at16..19; assigned request counts by role at20..24. Usage buckets: root,dispatcher,
866// provider,reviewer,unknown; each preserves all six provider-reported counters.
867func wfj_span_eq(a:*u8,s:i64,n:i64,b:*u8,t:i64,m:i64)->i64 {
868 if n!=m{return 0};var i:i64=0;while i<n{if a[s+i]!=b[t+i]{return 0};i=i+1};return 1
869}
870func wfj_lit(q:*u8,f:*i64,col:i64,s:*u8)->i64{return wfj_span_eq(q,f[col*2],f[col*2+1],s,0,cd_len(s))}
871func wfj_fields_n(q:*u8,s:i64,e:i64,f:*i64,cols:i64)->i64 {
872 var col:i64=0;var start:i64=s;var i:i64=s
873 while i<=e {
874 var end:i64=0;if i==e{end=1}else{if q[i]==(9 as u8){end=1}}
875 if end==1 {
876 if col>=cols||i==start{return -1}
877 if utf8_validate((q as i64+start) as *u8,i-start)!=i-start{return -1}
878 f[col*2]=start;f[col*2+1]=i-start;col=col+1;start=i+1
879 }else{if q[i]<(32 as u8){return -1}}
880 i=i+1
881 }
882 if col!=cols{return -1};return 0
883}
884func wfj_fields(q:*u8,s:i64,e:i64,f:*i64)->i64{return wfj_fields_n(q,s,e,f,WFJ_COLS)}
885func wfj_hash(q:*u8,f:*i64,col:i64)->i64 {
886 if f[col*2+1]!=CD_HASH_CHARS{return 0};var i:i64=0
887 while i<CD_HASH_CHARS{let c:i64=q[f[col*2]+i] as i64;if (c<48||c>57)&&(c<97||c>102){return 0};i=i+1};return 1
888}
889func wfj_copy(q:*u8,f:*i64,col:i64,out:*u8)->i64 {
890 let n:i64=f[col*2+1];var i:i64=0;while i<n{out[i]=q[f[col*2]+i];i=i+1};out[n]=0;return n
891}
892func wfj_role(q:*u8,f:*i64)->i64 {
893 if wfj_lit(q,f,7,"root")==1{return 0};if wfj_lit(q,f,7,"dispatcher")==1{return 1}
894 if wfj_lit(q,f,7,"provider")==1{return 2};if wfj_lit(q,f,7,"reviewer")==1{return 3}
895 if wfj_lit(q,f,7,"-")==1{return 4};return -1
896}
897func wfj_validate(q:*u8,f:*i64)->i64 {
898 if wfj_hash(q,f,1)==0{return -1};if wfj_role(q,f)<0{return -1}
899 if wfj_lit(q,f,10,"work")!=1&&wfj_lit(q,f,10,"retry")!=1&&wfj_lit(q,f,10,"review")!=1&&wfj_lit(q,f,10,"-")!=1{return -1}
900 if wfj_lit(q,f,11,"-")!=1{if chu_uint(q,f[22],f[23])<0{return -1}}
901 let path_unknown:i64=wfj_lit(q,f,12,"-");let hash_unknown:i64=wfj_lit(q,f,13,"-")
902 if path_unknown!=hash_unknown{return -1};if hash_unknown==0&&wfj_hash(q,f,13)==0{return -1}
903 if wfj_lit(q,f,14,"unknown")!=1&&wfj_lit(q,f,14,"accepted-deployed")!=1&&wfj_lit(q,f,14,"rejected")!=1{return -1}
904 if wfj_lit(q,f,14,"unknown")!=1{if wfj_lit(q,f,15,"-")==1{return -1}}
905 // Request/task/attempt linkage cannot be partial under a bound row.
906 var i:i64=0;while i<7{if wfj_lit(q,f,i,"-")==1{return -1};i=i+1}
907 return 0
908}
909// A matching evidence hash proves retained bytes, not the semantic correctness of
910// a reviewer assertion, a live URL, or a causal improvement. Missing is observed
911// failure; unreadable remains unknown. Evidence is read through the shared owner.
912func wfj_evidence(q:*u8,f:*i64)->i64 {
913 if wfj_lit(q,f,12,"-")==1{return 0}
914 let pn:i64=f[25]+1
915 if pn<=0{return -1}
916 let path:*u8=sys_mmap_shared(pn);let want:*u8=sys_mmap_shared(CD_HASH_CHARS+1)
917 let got:*u8=sys_mmap_shared(CD_HASH_CHARS+1)
918 let obs:*CsDependencyFile=sys_mmap_shared(CD_FILE_BYTES) as *CsDependencyFile
919 var result:i64=3
920 if (path as i64)>0&&(want as i64)>0&&(got as i64)>0&&(obs as i64)>0{
921 wfj_copy(q,f,12,path);wfj_copy(q,f,13,want);obs.hash=got
922 let rc:i64=cd_scan(path,"",obs)
923 if rc==0{result=4;if cd_equal(got,want)==1{result=1}}else{if rc==(0-2)&&cd_equal(obs.stage,"open")==1{result=2}}
924 }
925 if (path as i64)>0{if sys_munmap(path,pn)!=0{result=3}}
926 if (want as i64)>0{if sys_munmap(want,CD_HASH_CHARS+1)!=0{result=3}}
927 if (got as i64)>0{if sys_munmap(got,CD_HASH_CHARS+1)!=0{result=3}}
928 if (obs as i64)>0{if sys_munmap(obs as *u8,CD_FILE_BYTES)!=0{result=3}}
929 return result
930}
931func wfj_join(raw:*u8,table:*i64,count:i64,from:i64,to:i64,digest:*u8,bindings:*u8,n:i64,stats:*i64,usage:*i64)->i64 {
932 var i:i64=0;while i<WFJ_STATS{stats[i]=0;i=i+1};i=0;while i<30{usage[i]=0;i=i+1}
933 if count<0||count>CH_AH_MAXPATHS||n<0||cd_hash_valid(digest)==0{return 2}
934 let seen:*i64=sys_mmap_shared((count+1)*8) as *i64
935 let f:*i64=sys_mmap_shared(WFJ_COLS*2*8) as *i64
936 let prior:*i64=sys_mmap_shared(WFJ_COLS*2*8) as *i64
937 if (seen as i64)<=0||(f as i64)<=0||(prior as i64)<=0{
938 if (seen as i64)>0{sys_munmap(seen as *u8,(count+1)*8)}
939 if (f as i64)>0{sys_munmap(f as *u8,WFJ_COLS*2*8)}
940 if (prior as i64)>0{sys_munmap(prior as *u8,WFJ_COLS*2*8)};return 3
941 }
942 var rc:i64=0;var pos:i64=0
943 // Validate all rows and duplicate IDs before consuming evidence; no partial pass.
944 while pos<n&&rc==0{
945 let end:i64=sj_le(bindings,pos,n)
946 if end==n||wfj_fields(bindings,pos,end,f)!=0{rc=2;break}
947 if wfj_validate(bindings,f)!=0{rc=2;break}
948 var p:i64=0
949 while p<pos{
950 let pe:i64=sj_le(bindings,p,n);wfj_fields(bindings,p,pe,prior)
951 if wfj_span_eq(bindings,f[0],f[1],bindings,prior[0],prior[1])==1{rc=2;break};p=pe+1
952 }
953 stats[3]=stats[3]+1;pos=end+1
954 }
955 pos=0
956 while pos<n&&rc==0{
957 let end:i64=sj_le(bindings,pos,n);wfj_fields(bindings,pos,end,f)
958 if wfj_span_eq(bindings,f[2],f[3],digest,0,CD_HASH_CHARS)==0{stats[4]=stats[4]+1}else{
959 var matched_index:i64=-1;i=0
960 while i<count{
961 let r:*i64=(table as i64+i*CHU_ROW*8) as *i64
962 if wfj_span_eq(bindings,f[4],f[5],raw,r[4],r[5])==1&&wfj_span_eq(bindings,f[6],f[7],raw,r[6],r[7])==1{matched_index=i;break};i=i+1
963 }
964 if matched_index<0{stats[5]=stats[5]+1}else{
965 if seen[matched_index]!=0{rc=2;break};seen[matched_index]=1
966 let r:*i64=(table as i64+matched_index*CHU_ROW*8) as *i64
967 if r[20]>=from&&r[20]<to{
968 stats[1]=stats[1]+1;let role:i64=wfj_role(bindings,f);stats[20+role]=stats[20+role]+1;var k:i64=0
969 var phase:i64=19;if wfj_lit(bindings,f,10,"work")==1{phase=16};if wfj_lit(bindings,f,10,"retry")==1{phase=17};if wfj_lit(bindings,f,10,"review")==1{phase=18};stats[phase]=stats[phase]+1
970 while k<6{if usage[role*6+k]>CHU_SAFE-r[14+k]{rc=2;break};usage[role*6+k]=usage[role*6+k]+r[14+k];k=k+1}
971 if role==4{stats[15]=stats[15]+1}
972 if wfj_lit(bindings,f,11,"-")==1{stats[13]=stats[13]+1}else{
973 let elapsed:i64=chu_uint(bindings,f[22],f[23]);if stats[14]>CHU_SAFE-elapsed{rc=2;break}
974 stats[12]=stats[12]+1;stats[14]=stats[14]+elapsed
975 }
976 let evidence:i64=wfj_evidence(bindings,f)
977 if evidence==1{stats[6]=stats[6]+1};if evidence==2{stats[7]=stats[7]+1};if evidence==3{stats[8]=stats[8]+1};if evidence==4{stats[9]=stats[9]+1}
978 if wfj_lit(bindings,f,14,"accepted-deployed")==1{stats[10]=stats[10]+1;if evidence==1{stats[11]=stats[11]+1}}
979 }
980 }
981 };pos=end+1
982 }
983 i=0
984 while i<count&&rc==0{
985 let r:*i64=(table as i64+i*CHU_ROW*8) as *i64
986 if r[20]>=from&&r[20]<to{
987 stats[0]=stats[0]+1
988 if seen[i]==0{
989 stats[2]=stats[2]+1;stats[13]=stats[13]+1;stats[15]=stats[15]+1;stats[19]=stats[19]+1;stats[24]=stats[24]+1
990 var k:i64=0;while k<6{if usage[24+k]>CHU_SAFE-r[14+k]{rc=2;break};usage[24+k]=usage[24+k]+r[14+k];k=k+1}
991 }
992 };i=i+1
993 }
994 if sys_munmap(seen as *u8,(count+1)*8)!=0{rc=3}
995 if sys_munmap(f as *u8,WFJ_COLS*2*8)!=0{rc=3}
996 if sys_munmap(prior as *u8,WFJ_COLS*2*8)!=0{rc=3}
997 return rc
998}
999
1000// Reads one exact file extent. Existing CH_WIN governs request-window admission;
1001// no total history is loaded. Callers own and release the returned mapping.
1002func wfj_read(path:*u8,limit:i64,result:*i64)->*u8 {
1003 result[0]=0;result[1]=0
1004 let r:*NxFileReadRegion=sys_mmap_shared(CD_REGION_BYTES) as *NxFileReadRegion
1005 if (r as i64)<=0{result[1]=3;return 0 as *u8}
1006 fio_region_init(r);var rc:i64=fio_region_open(path,r);var out:*u8=0 as *u8
1007 if rc==0{
1008 if r.total<0||r.total>=CD_I64_MAX||limit>0&&r.total>limit{rc=2}else{
1009 result[0]=r.total;out=sys_mmap_shared(r.total+1)
1010 if (out as i64)<=0{rc=3}else{
1011 if r.total>0{if fio_region_next(r,out,r.total)!=r.total{rc=3}}
1012 if rc==0{out[r.total]=0}
1013 }
1014 }
1015 }
1016 if fio_region_close(r)!=0{rc=3};if sys_munmap(r as *u8,CD_REGION_BYTES)!=0{rc=3}
1017 if rc!=0{if (out as i64)>0{sys_munmap(out,result[0]+1)};out=0 as *u8}
1018 result[1]=rc;return out
1019}
1020func wfj_digest(raw:*u8,n:i64,hex:*u8)->i64 {
1021 let b:*u8=sys_mmap_shared(SHA256_DIGEST_BYTES);if (b as i64)<=0{return 3}
1022 var rc:i64=sha256_digest_checked_native(raw,n,b)
1023 if rc==0{let digits:*u8="0123456789abcdef";var i:i64=0;while i<SHA256_DIGEST_BYTES{let x:i64=b[i] as i64;hex[i*2]=digits[x/16];hex[i*2+1]=digits[x%16];i=i+1};hex[CD_HASH_CHARS]=0}
1024 if sys_munmap(b,SHA256_DIGEST_BYTES)!=0{rc=3};return rc
1025}
1026
1027import "nx_store_seed_lib.nx"
1028// Current declared rows only. The retained handle supplies a physical key-table
1029// bound; stale generations beyond q:n are not resurrected as current bindings.
1030// meta: decoded bytes,status,declared rows,observed rows,allocated bytes.
1031func wfj_plane_range(prefix:*u8,cols:i64,extra:i64,meta:*i64)->*u8 {
1032 var z:i64=0;while z<5{meta[z]=0;z=z+1}
1033 let h:*i64=ss_open_incr(prefix,1,0 as *i64)
1034 if (h as i64)==0{meta[1]=3;return 0 as *u8}
1035 let pr:*i64=sys_mmap_shared(16) as *i64;let ln:*i64=sys_mmap_shared(16) as *i64
1036 let inv:*i64=sys_mmap_shared(32) as *i64;let key:*u8=sys_mmap_shared(STS_KEYCAP)
1037 var rc:i64=0;var result:*u8=0 as *u8;var cap:i64=1
1038 if (pr as i64)<=0||(ln as i64)<=0||(inv as i64)<=0||(key as i64)<=0{rc=3}
1039 if rc==0{
1040 if ss_hget(h,"q:n",pr,ln)!=1{rc=3}else{
1041 let count:i64=chu_uint(pr[0] as *u8,0,ln[0]);meta[2]=count
1042 if count<0||ss_open_table(h,inv)!=1{rc=3}else{if count>inv[3]{rc=3}}
1043 }
1044 }
1045 var i:i64=0
1046 while rc==0&&i<meta[2]{
1047 sts_rowkey(i,key)
1048 if ss_hget(h,key,pr,ln)!=1{rc=3;break}
1049 if ln[0]<0||ln[0]>CD_I64_MAX-(cols+extra)*RTV_NUMBUF-1-cap{rc=3;break}
1050 cap=cap+ln[0]+(cols+extra)*RTV_NUMBUF+1;i=i+1
1051 }
1052 if rc==0{result=sys_mmap_shared(cap);if (result as i64)<=0{rc=3}else{meta[4]=cap}}
1053 i=0;var o:i64=0
1054 while rc==0&&i<meta[2]{
1055 sts_rowkey(i,key)
1056 if ss_hget(h,key,pr,ln)!=1{rc=3;break}
1057 let src:*u8=pr[0] as *u8;let n:i64=ln[0];var rown:i64=n
1058 if n>=STS_NXR_HDR&&src[0]==(78 as u8)&&src[1]==(88 as u8)&&src[2]==(82 as u8)&&src[3]==(49 as u8){
1059 let actual_cols:i64=nxr_count(src)
1060 if actual_cols!=cols&&actual_cols!=cols+extra{rc=2;break}
1061 rown=rtv_to_tsv(src,n,actual_cols,(result as i64+o) as *u8,cap-o-2)
1062 if rown<0{rc=2;break}
1063 }else{
1064 if n>cap-o-1{rc=3;break};var j:i64=0;while j<n{result[o+j]=src[j];j=j+1}
1065 }
1066 o=o+rown;result[o]=10 as u8;o=o+1;meta[3]=meta[3]+1;i=i+1
1067 }
1068 if rc==0{result[o]=0;meta[0]=o}
1069 ss_close(h)
1070 if (pr as i64)>0{if sys_munmap(pr as *u8,16)!=0{rc=3}}
1071 if (ln as i64)>0{if sys_munmap(ln as *u8,16)!=0{rc=3}}
1072 if (inv as i64)>0{if sys_munmap(inv as *u8,32)!=0{rc=3}}
1073 if (key as i64)>0{if sys_munmap(key,STS_KEYCAP)!=0{rc=3}}
1074 if rc!=0{if (result as i64)>0{sys_munmap(result,cap)};result=0 as *u8}
1075 meta[1]=rc;return result
1076}
1077
1078func wfj_plane(prefix:*u8,cols:i64,meta:*i64)->*u8{return wfj_plane_range(prefix,cols,0,meta)}
1079
1080// Caller-selected immutable evidence artifact; existing files are never overwritten.
1081// Exact decoded bytes are retained, not a later reread of the mutable plane.
1082func wfj_retain_bindings(path:*u8,rows:*u8,n:i64)->i64 {
1083 if cd_len(path)<1||cd_len(path)>CH_AH_PATHCELL{return 2}
1084 let out:*NxFileWriteResult=sys_mmap_shared(__size_of(NxFileWriteResult)) as *NxFileWriteResult
1085 if (out as i64)<=0{return 3}
1086 var rc:i64=0
1087 let fd:i64=sys_openat_exclusive(path,CHU_SNAPSHOT_MODE)
1088 if fd<0{rc=fd}else{
1089 rc=fio_write_sync_fd(fd,rows,n,out)
1090 if rc==0{rc=fio_sync_parent(path,out)}
1091 }
1092 if sys_munmap(out as *u8,__size_of(NxFileWriteResult))!=0&&rc==0{rc=3}
1093 return rc
1094}
1095
1096func wfj_null(j:*JsonWriter,key:*u8)->i64 {let rc:i64=json_emit_key(j,key,cd_len(key));return rc|json_emit_null(j)}
1097func wfj_report(stage:*u8,code:i64,digest:*u8,from:i64,to:i64,plane:*u8,pm:*i64,s:*i64,u:*i64,c:*i64,config_id:*u8,config_sha:*u8,binding_sha:*u8,snapshot:*u8,snapshot_rc:i64,upstream:*u8)->i64 {
1098 let b:*u8=sys_mmap_shared(CH_OUT);let j:*JsonWriter=sys_mmap_shared(CD_WRITER_BYTES) as *JsonWriter
1099 let prior:*u8=sys_mmap_shared(JE_MAX_DEPTH);var rc:i64=0
1100 if (b as i64)<=0||(j as i64)<=0||(prior as i64)<=0{rc=3}else{
1101 j.buf=b;j.pos=0;j.cap=CH_OUT;j.depth=0;j.prior=prior
1102 rc=json_begin_object(j);rc=rc|cd_pair(j,"schema","nishi.workflow-request-attribution.v1")
1103 var state:*u8="PARTIAL_OBSERVATION";if code!=0{state="REFUSED"}
1104 rc=rc|cd_pair(j,"state",state);rc=rc|cd_pair(j,"stage",stage);rc=rc|cd_num(j,"code",code)
1105 rc=rc|cd_num(j,"observed_unix",sys_now_realtime_sec());rc=rc|cd_pair(j,"scan_sha256",digest)
1106 if code==0&&(upstream as i64)>0&&upstream[0]!=(0 as u8){rc=rc|cd_pair(j,"input_format","nishi.context-request-artifact.v1");rc=rc|cd_pair(j,"upstream_scan_sha256",upstream)}else{rc=rc|wfj_null(j,"upstream_scan_sha256");if code==0{rc=rc|cd_pair(j,"input_format","token_usage_record")}else{rc=rc|wfj_null(j,"input_format")}}
1107 rc=rc|cd_pair(j,"binding_identity_scope","scan_sha256 identifies original supplied bytes; upstream identity is declared linkage, not independently fetched provenance")
1108 if (binding_sha as i64)>0&&binding_sha[0]!=(0 as u8){rc=rc|cd_pair(j,"binding_snapshot_sha256",binding_sha)}else{rc=rc|wfj_null(j,"binding_snapshot_sha256")}
1109 if (snapshot as i64)>0{
1110 rc=rc|cd_pair(j,"binding_snapshot_path",snapshot)
1111 if snapshot_rc==1{rc=rc|wfj_null(j,"binding_snapshot_retention_code")}else{rc=rc|cd_num(j,"binding_snapshot_retention_code",snapshot_rc)}
1112 var retention:*u8="failed";if snapshot_rc==1{retention="not-attempted"};if snapshot_rc==0{retention="retained-exclusive-file-and-directory-synced"};rc=rc|cd_pair(j,"binding_snapshot_retention",retention)
1113 }else{rc=rc|wfj_null(j,"binding_snapshot_path");rc=rc|wfj_null(j,"binding_snapshot_retention_code");rc=rc|cd_pair(j,"binding_snapshot_retention","not-requested; reconstruction unavailable unless exact inputs are retained elsewhere")}
1114 if code==0{
1115 if (config_id as i64)>0{rc=rc|cd_pair(j,"configuration_id",config_id);rc=rc|cd_pair(j,"configuration_snapshot_sha256",config_sha)}else{rc=rc|wfj_null(j,"configuration_id");rc=rc|wfj_null(j,"configuration_snapshot_sha256")}
1116 rc=rc|cd_num(j,"start_inclusive_epoch",from);rc=rc|cd_num(j,"end_exclusive_epoch",to)
1117 rc=rc|cd_pair(j,"binding_plane",plane);rc=rc|cd_num(j,"declared_binding_rows",pm[2]);rc=rc|cd_num(j,"observed_binding_rows",pm[3])
1118 var binding_scope:*u8="selected current declared rows; stale generations and full estate coverage unknown"
1119 if cd_equal(plane,"-")==1{binding_scope="caller-selected no bindings; zero-byte snapshot; not proof of estate-wide absence"}
1120 rc=rc|cd_pair(j,"binding_scope",binding_scope)
1121 rc=rc|cd_num(j,"eligible_requests",s[0]);rc=rc|cd_num(j,"bound_requests",s[1]);rc=rc|cd_num(j,"unbound_requests",s[2])
1122 rc=rc|cd_num(j,"other_snapshot_bindings",s[4]);rc=rc|cd_num(j,"unmatched_request_bindings",s[5])
1123 rc=rc|cd_num(j,"requests_with_retained_evidence_identity",s[6]);rc=rc|cd_num(j,"requests_with_missing_evidence",s[7])
1124 rc=rc|cd_num(j,"requests_with_unreadable_evidence",s[8]);rc=rc|cd_num(j,"requests_with_changed_evidence",s[9])
1125 rc=rc|cd_num(j,"reviewer_asserted_accepted_requests",s[10]);rc=rc|cd_num(j,"asserted_accepted_requests_with_retained_evidence",s[11])
1126 rc=rc|cd_num(j,"request_elapsed_known",s[12]);rc=rc|cd_num(j,"request_elapsed_unknown",s[13]);rc=rc|cd_num(j,"request_elapsed_ms_sum",s[14])
1127 rc=rc|cd_pair(j,"elapsed_semantics","per-request declared duration sum; concurrency prevents treating it as workflow wall time")
1128 rc=rc|cd_num(j,"role_unknown_requests",s[15])
1129 rc=rc|cd_num(j,"asserted_work_requests",s[16]);rc=rc|cd_num(j,"asserted_retry_requests",s[17]);rc=rc|cd_num(j,"asserted_review_requests",s[18]);rc=rc|cd_num(j,"phase_unknown_requests",s[19])
1130 rc=rc|json_emit_key(j,"usage_by_asserted_role",22);rc=rc|json_begin_array(j)
1131 var role:i64=0
1132 while role<5{
1133 var label:*u8="unknown";if role==0{label="root"};if role==1{label="dispatcher"};if role==2{label="provider"};if role==3{label="reviewer"}
1134 rc=rc|json_begin_object(j);rc=rc|cd_pair(j,"role",label)
1135 rc=rc|cd_num(j,"assigned_requests",s[20+role]);rc=rc|cd_pair(j,"counter_scope","known assigned subtotal only; zero is not total role cost");rc=rc|wfj_null(j,"unattributed_remainder")
1136 rc=rc|cd_num(j,"input_tokens",u[role*6]);rc=rc|cd_num(j,"cached_input_tokens",u[role*6+1]);rc=rc|cd_num(j,"cache_write_input_tokens",u[role*6+2])
1137 rc=rc|cd_num(j,"output_tokens",u[role*6+3]);rc=rc|cd_num(j,"reasoning_output_tokens",u[role*6+4]);rc=rc|cd_num(j,"total_tokens",u[role*6+5])
1138 rc=rc|json_end_object(j);role=role+1
1139 }
1140 rc=rc|json_end_array(j)
1141 rc=rc|cd_pair(j,"usage_semantics","canonical normalized input includes cached input; reasoning is subset of output; no double-addition or provider billing inference")
1142 rc=rc|cd_pair(j,"attribution_authority","explicit binding rows are assertions; matching evidence hash proves retained bytes only")
1143 rc=rc|wfj_null(j,"verified_accepted_deployed_outcomes");rc=rc|wfj_null(j,"provider_identity_verified")
1144 rc=rc|wfj_null(j,"workflow_wall_elapsed_ms");rc=rc|wfj_null(j,"billed_spend");rc=rc|wfj_null(j,"quality_adjusted_savings");rc=rc|wfj_null(j,"estate_coverage")
1145 rc=rc|cd_pair(j,"next_action","resolve unbound requests and missing or changed evidence; adjudicate typed deployment acceptance before ROI comparison")
1146 }
1147 rc=rc|json_end_object(j)
1148 if rc==0{rc=chu_write_all(1,b,j.pos);if rc==0{rc=chu_write_all(1,"\n",1)}}
1149 }
1150 if (b as i64)>0{if sys_munmap(b,CH_OUT)!=0{rc=3}}
1151 if (j as i64)>0{if sys_munmap(j as *u8,CD_WRITER_BYTES)!=0{rc=3}}
1152 if (prior as i64)>0{if sys_munmap(prior,JE_MAX_DEPTH)!=0{rc=3}}
1153 if rc!=0{return 3};return code
1154}
1155func wfj_command_context(argc:i64,argv:*i64,config_id:*u8,config_sha:*u8)->i64 {
1156 if argc<7||argc>8{gv_puts("evaluate <usage-jsonl> <expected-snapshot-sha256> <from-inclusive> <to-exclusive> <binding-plane|-> [exclusive-binding-snapshot]\n");return 2}
1157 let path:*u8=argv[2] as *u8;let digest:*u8=argv[3] as *u8;let a:*u8=argv[4] as *u8;let b:*u8=argv[5] as *u8;let plane:*u8=argv[6] as *u8
1158 var snapshot:*u8=0 as *u8;if argc==8{snapshot=argv[7] as *u8}
1159 let from:i64=chu_uint(a,0,cd_len(a));let to:i64=chu_uint(b,0,cd_len(b))
1160 if from<0||to<=from||cd_hash_valid(digest)==0{return 2}
1161 let rm:*i64=sys_mmap_shared(16) as *i64;let pm:*i64=sys_mmap_shared(40) as *i64
1162 let c:*i64=sys_mmap_shared(80) as *i64;let s:*i64=sys_mmap_shared(WFJ_STATS*8) as *i64;let u:*i64=sys_mmap_shared(30*8) as *i64
1163 let table:*i64=sys_mmap_shared(CH_AH_MAXPATHS*CHU_ROW*8) as *i64;let row:*i64=sys_mmap_shared(CHU_ROW*8) as *i64
1164 let binding_sha:*u8=sys_mmap_shared(CD_HASH_CHARS+1);var snapshot_rc:i64=1
1165 let upstream:*u8=sys_mmap_shared(CD_HASH_CHARS+1)
1166 let hex:*u8=sys_mmap_shared(CD_HASH_CHARS+1);var raw:*u8=0 as *u8;var bindings:*u8=0 as *u8;var t:*NxJsonTok=0 as *NxJsonTok
1167 var rc:i64=0;var stage:*u8="allocation"
1168 if (rm as i64)<=0||(pm as i64)<=0||(c as i64)<=0||(s as i64)<=0||(u as i64)<=0||(table as i64)<=0||(row as i64)<=0||(hex as i64)<=0||(binding_sha as i64)<=0||(upstream as i64)<=0{rc=3}
1169 if rc==0{stage="request-read";raw=wfj_read(path,CH_WIN,rm);if (raw as i64)<=0{rc=3}}
1170 if rc==0{stage="request-identity";if wfj_digest(raw,rm[0],hex)!=0||cd_equal(hex,digest)!=1{rc=3}}
1171 if rc==0{stage="request-reconciliation";t=nx_json_new(raw,rm[0]);if (t as i64)<=0{rc=3}else{rc=chu_artifact_totals(raw,rm[0],from,to,table,t,row,c,upstream)}}
1172 if rc==0{
1173 stage="binding-plane"
1174 if cd_equal(plane,"-")==1{bindings=""}else{bindings=wfj_plane(plane,WFJ_COLS,pm);if (bindings as i64)<=0{rc=3}}
1175 }
1176 if rc==0{stage="binding-identity";rc=wfj_digest(bindings,pm[0],binding_sha)}
1177 if rc==0{stage="attribution-join";rc=wfj_join(raw,table,c[0],from,to,digest,bindings,pm[0],s,u)}
1178 if rc==0&&(snapshot as i64)>0{stage="binding-snapshot-retention";snapshot_rc=wfj_retain_bindings(snapshot,bindings,pm[0]);if snapshot_rc!=0{rc=3}}
1179 if rc==0{stage="complete"}
1180 let output:i64=wfj_report(stage,rc,digest,from,to,plane,pm,s,u,c,config_id,config_sha,binding_sha,snapshot,snapshot_rc,upstream)
1181 if (raw as i64)>0{if sys_munmap(raw,rm[0]+1)!=0{rc=3}}
1182 if (bindings as i64)>0&&cd_equal(plane,"-")!=1{if sys_munmap(bindings,pm[4])!=0{rc=3}}
1183 if (t as i64)>0{if sys_munmap(t as *u8,NX_JSONTOK_BYTES)!=0{rc=3}}
1184 if (rm as i64)>0{if sys_munmap(rm as *u8,16)!=0{rc=3}};if (pm as i64)>0{if sys_munmap(pm as *u8,40)!=0{rc=3}}
1185 if (c as i64)>0{if sys_munmap(c as *u8,80)!=0{rc=3}};if (s as i64)>0{if sys_munmap(s as *u8,WFJ_STATS*8)!=0{rc=3}}
1186 if (u as i64)>0{if sys_munmap(u as *u8,30*8)!=0{rc=3}};if (table as i64)>0{if sys_munmap(table as *u8,CH_AH_MAXPATHS*CHU_ROW*8)!=0{rc=3}}
1187 if (row as i64)>0{if sys_munmap(row as *u8,CHU_ROW*8)!=0{rc=3}};if (hex as i64)>0{if sys_munmap(hex,CD_HASH_CHARS+1)!=0{rc=3}}
1188 if (binding_sha as i64)>0{if sys_munmap(binding_sha,CD_HASH_CHARS+1)!=0{rc=3}}
1189 if (upstream as i64)>0{if sys_munmap(upstream,CD_HASH_CHARS+1)!=0{rc=3}}
1190 if output!=0{return output};return rc
1191}
1192
1193func wfj_command(argc:i64,argv:*i64)->i64{return wfj_command_context(argc,argv,0 as *u8,0 as *u8)}
1194
1195// Existing sovereign plane, seven columns: id,raw_path,expected_raw_sha256,
1196// from_inclusive,to_exclusive,binding_plane,enabled|paused; optional eighth
1197// column selects an exclusive decoded-binding snapshot path. No provider call.
1198const WFJ_CONFIG_COLS:i64=7
1199const WFJ_CONFIG_PREFIX:*u8="knowledge/store/wfcost-evaluations-"
1200func wfj_config_command(argc:i64,argv:*i64)->i64 {
1201 if argc<3||argc>4{gv_puts("evaluate-config <id> [configuration-plane]\n");return 2}
1202 let id:*u8=argv[2] as *u8;var prefix:*u8=WFJ_CONFIG_PREFIX;if argc==4{prefix=argv[3] as *u8}
1203 let pm:*i64=sys_mmap_shared(40) as *i64;let f:*i64=sys_mmap_shared((WFJ_CONFIG_COLS+1)*2*8) as *i64
1204 let selected:*i64=sys_mmap_shared((WFJ_CONFIG_COLS+1)*2*8) as *i64;let digest:*u8=sys_mmap_shared(CD_HASH_CHARS+1)
1205 let args:*i64=sys_mmap_shared(9*8) as *i64;var rows:*u8=0 as *u8;var rc:i64=0
1206 if (pm as i64)<=0||(f as i64)<=0||(selected as i64)<=0||(digest as i64)<=0||(args as i64)<=0{rc=3}
1207 if rc==0{rows=wfj_plane_range(prefix,WFJ_CONFIG_COLS,1,pm);if (rows as i64)<=0{rc=3}}
1208 var found:i64=0;var pos:i64=0;var selected_cols:i64=0
1209 while rc==0&&pos<pm[0]{
1210 let end:i64=sj_le(rows,pos,pm[0]);if end==pm[0]{rc=2;break}
1211 var cols:i64=WFJ_CONFIG_COLS
1212 if wfj_fields_n(rows,pos,end,f,cols)!=0{cols=cols+1;if wfj_fields_n(rows,pos,end,f,cols)!=0{rc=2;break}}
1213 if wfj_span_eq(rows,f[0],f[1],id,0,cd_len(id))==1{
1214 found=found+1;if found>1{rc=2;break};selected_cols=cols;var k:i64=0;while k<cols*2{selected[k]=f[k];k=k+1}
1215 };pos=end+1
1216 }
1217 if rc==0&&found!=1{rc=3}
1218 if rc==0{
1219 if wfj_lit(rows,selected,6,"enabled")!=1{rc=4}
1220 if wfj_hash(rows,selected,2)!=1{rc=2}
1221 }
1222 if rc==0{
1223 rc=wfj_digest(rows,pm[0],digest)
1224 if rc==0{
1225 args[0]="nx_wfcost" as *u8 as i64;args[1]="evaluate" as *u8 as i64
1226 var k:i64=1;while k<=5{let start:i64=selected[k*2];let n:i64=selected[k*2+1];rows[start+n]=0;args[k+1]=(rows as i64+start);k=k+1};args[7]=0
1227 var ac:i64=7
1228 if selected_cols==WFJ_CONFIG_COLS+1{let start:i64=selected[14];let n:i64=selected[15];rows[start+n]=0;args[7]=rows as i64+start;args[8]=0;ac=8}
1229 rc=wfj_command_context(ac,args,id,digest)
1230 }
1231 }else{gv_puts("WF-EVALUATE-CONFIG refused: missing, malformed, duplicate or paused configuration; no evaluation ran\n")}
1232 if (rows as i64)>0{if sys_munmap(rows,pm[4])!=0{rc=3}}
1233 if (pm as i64)>0{if sys_munmap(pm as *u8,40)!=0{rc=3}};if (f as i64)>0{if sys_munmap(f as *u8,(WFJ_CONFIG_COLS+1)*2*8)!=0{rc=3}}
1234 if (selected as i64)>0{if sys_munmap(selected as *u8,(WFJ_CONFIG_COLS+1)*2*8)!=0{rc=3}}
1235 if (digest as i64)>0{if sys_munmap(digest,CD_HASH_CHARS+1)!=0{rc=3}};if (args as i64)>0{if sys_munmap(args as *u8,9*8)!=0{rc=3}}
1236 return rc
1237}