code wiki / _hdl_build / nx_ctxcost.nx
nx_ctxcost.nx source
↩ module page · 147 lines · 6901 B
1// nx_ctxcost.nx -- CONTEXT-COST ADVISOR (operator 2026-07-21: 'make nishi SEE the cost if it can, flag to
2// you what we should do as you work a workstream'). MEASURED real usage 2026-07-21: 96pct of spend at
3// >150k context; 71pct from nishi MCP results that STAY in context re-read every turn. So: given the
4// current context_pct (relayed from the Claude Code usage banner -- nishi can't read live context, so the
5// caller feeds the number it CAN see), advise CONTINUE / COMPACT-SOON / COMPACT-NOW from data-driven
6// thresholds in ctxbudget- (rule-11, tune without code). Reminds of the cheap-reboot: /clear then
7// nx_seat boot = ~1KB (state lives in planes). Composes nx_sovjson_lib (sj_*) = OO, 5th base consumer.
8// advise <context_pct> [ws] [ctxbudgetprefix] -> verdict JSON | selftest [tmpbase]
9// ctxbudget- row = id threshold_pct verdict action reason (5-col policy plane; pick highest thr <= pct).
10// license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
11import "nx_sovjson_lib.nx"
12import "nx_store_seed_lib.nx"
13import "nx_seg_store.nx"
14import "nx_gate_verdict.nx"
15import "nx_syscalls.nx"
16
17const CC_CAP: i64 = 1048576
18const CC_OUT: i64 = 8192
19const CC_SPAN: i64 = 16
20const CC_USAGE: i64 = 2
21
22func cc_advise(pct: i64, ws: *u8, prefix: *u8, out: *u8) -> i64 {
23 let buf: *u8 = sys_mmap(CC_CAP)
24 let n: i64 = sts_load(prefix, buf, CC_CAP)
25 let c0: *i64 = sys_mmap(CC_SPAN) as *i64
26 let c1: *i64 = sys_mmap(CC_SPAN) as *i64
27 let c2: *i64 = sys_mmap(CC_SPAN) as *i64
28 let c3: *i64 = sys_mmap(CC_SPAN) as *i64
29 let c4: *i64 = sys_mmap(CC_SPAN) as *i64
30 var bestthr: i64 = 0 - 1
31 var v2s: i64 = 0 - 1
32 var v2e: i64 = 0 - 1
33 var a3s: i64 = 0 - 1
34 var a3e: i64 = 0 - 1
35 var r4s: i64 = 0 - 1
36 var r4e: i64 = 0 - 1
37 var i: i64 = 0
38 while i < n {
39 let le: i64 = sj_le(buf, i, n)
40 if sj_col(buf, i, le, 1, c1) == 1 {
41 let thr: i64 = sj_atoi_span(buf, c1[0], c1[1])
42 if thr <= pct { if thr > bestthr {
43 bestthr = thr
44 if sj_col(buf, i, le, 2, c2) == 1 { v2s = c2[0]; v2e = c2[1] }
45 if sj_col(buf, i, le, 3, c3) == 1 { a3s = c3[0]; a3e = c3[1] }
46 if sj_col(buf, i, le, 4, c4) == 1 { r4s = c4[0]; r4e = c4[1] }
47 } }
48 }
49 i = le + 1
50 }
51 var o: i64 = 0
52 o = sj_cat(out, o, "{\"organ\":\"nx_ctxcost\",\"verb\":\"advise\",\"context_pct\":" as *u8)
53 o = sj_catn(out, o, pct)
54 o = sj_cat(out, o, ",\"ws\":\"" as *u8)
55 o = sj_cat_esc(out, o, ws, 0, sj_vlen(ws), 40)
56 o = sj_cat(out, o, "\",\"verdict\":\"" as *u8)
57 if bestthr >= 0 {
58 o = sj_cat_esc(out, o, buf, v2s, v2e, 30)
59 o = sj_cat(out, o, "\",\"action\":\"" as *u8)
60 o = sj_cat_esc(out, o, buf, a3s, a3e, 100)
61 o = sj_cat(out, o, "\",\"reason\":\"" as *u8)
62 o = sj_cat_esc(out, o, buf, r4s, r4e, 140)
63 o = sj_cat(out, o, "\",\"threshold_hit\":" as *u8)
64 o = sj_catn(out, o, bestthr)
65 } else {
66 o = sj_cat(out, o, "NO-POLICY\",\"action\":\"seed-ctxbudget-plane\",\"reason\":\"no-threshold<=pct;fail-open\",\"threshold_hit\":-1" as *u8)
67 }
68 o = sj_cat(out, o, ",\"cheap_reboot\":\"after /clear: nx_seat boot <ws> = ~1KB re-establishes state (planes hold it)\",\"evidence\":\"real-usage-2026-07-21:96pct->150k-context;71pct-nishi-MCP-results-re-read-every-turn\"}" as *u8)
69 out[o] = 10 as u8
70 o = o + 1
71 return o
72}
73func cc_selftest(base: *u8) -> i64 {
74 let ctr: *i64 = gv_ctr()
75 gv_head("nx_ctxcost selftest -- context-cost advisor (highest-threshold policy, fail-open)" as *u8)
76 let now: i64 = sys_now_realtime_sec()
77 let fp: *u8 = sys_mmap(256)
78 var fo: i64 = sj_cat(fp, 0, base)
79 fo = sj_catn(fp, fo, now)
80 fo = sj_cat(fp, fo, "ctxbudget-" as *u8)
81 fp[fo] = 0 as u8
82 let seed: *u8 = sys_mmap(CC_CAP)
83 var so: i64 = 0
84 so = sj_cat(seed, so, "CB1 0 CONTINUE keep-working below-expensive-zone
85" as *u8)
86 so = sj_cat(seed, so, "CB2 60 COMPACT-SOON write-state-to-memory-then-plan-compact approaching-150k
87" as *u8)
88 so = sj_cat(seed, so, "CB3 75 COMPACT-NOW compact-now-or-clear-if-switching over-150k-reread-every-turn
89" as *u8)
90 sts_seed(fp, seed, so)
91 let out: *u8 = sys_mmap(CC_OUT)
92 var l: i64 = cc_advise(30, "w" as *u8, fp, out)
93 var t1: i64 = 0
94 if sj_span_has(out, 0, l, "\"verdict\":\"CONTINUE\"" as *u8) == 1 { if sj_span_has(out, 0, l, "\"threshold_hit\":0" as *u8) == 1 { t1 = 1 } }
95 gv_check("T1 pct 30 -> CONTINUE (threshold 0)" as *u8, t1, ctr)
96 l = cc_advise(64, "w" as *u8, fp, out)
97 var t2: i64 = 0
98 if sj_span_has(out, 0, l, "\"verdict\":\"COMPACT-SOON\"" as *u8) == 1 { if sj_span_has(out, 0, l, "\"threshold_hit\":60" as *u8) == 1 { t2 = 1 } }
99 gv_check("T2 pct 64 -> COMPACT-SOON picks HIGHEST applicable (60 not 0)" as *u8, t2, ctr)
100 l = cc_advise(90, "w" as *u8, fp, out)
101 var t3: i64 = 0
102 if sj_span_has(out, 0, l, "\"verdict\":\"COMPACT-NOW\"" as *u8) == 1 { if sj_span_has(out, 0, l, "\"threshold_hit\":75" as *u8) == 1 { t3 = 1 } }
103 gv_check("T3 pct 90 -> COMPACT-NOW (threshold 75)" as *u8, t3, ctr)
104 let ep: *u8 = sys_mmap(256)
105 var eo: i64 = sj_cat(ep, 0, base)
106 eo = sj_catn(ep, eo, now)
107 eo = sj_cat(ep, eo, "empty-" as *u8)
108 ep[eo] = 0 as u8
109 l = cc_advise(50, "w" as *u8, ep, out)
110 gv_check("T4 empty policy plane -> NO-POLICY fail-open" as *u8, sj_span_has(out, 0, l, "\"verdict\":\"NO-POLICY\"" as *u8), ctr)
111 gv_check("T5 cheap-reboot + evidence declared in-band" as *u8, sj_span_has(out, 0, l, "cheap_reboot" as *u8), ctr)
112 let rc: i64 = gv_verdict("CTXCOST-GATE" as *u8, ctr, "context-cost advisor: highest-threshold policy, fail-open, evidence-grounded" as *u8)
113 return rc
114}
115func main(argc: i64, argv: *i64) -> i64 {
116 if argc < 2 {
117 sj_werr("usage: nx_ctxcost {advise <context_pct> [ws] [ctxbudgetprefix] | selftest [tmpbase]}
118" as *u8)
119 sys_exit(CC_USAGE)
120 return CC_USAGE
121 }
122 let verb: *u8 = argv[1] as *u8
123 if sj_lit_eq(verb, 0, sj_vlen(verb), "advise" as *u8) == 1 {
124 if argc < 3 { sj_werr("CTXCOST-FAIL advise needs <context_pct>
125" as *u8); sys_exit(CC_USAGE); return CC_USAGE }
126 var ws: *u8 = "-" as *u8
127 var pfx: *u8 = "knowledge/store/ctxbudget-" as *u8
128 if argc > 3 { ws = argv[3] as *u8 }
129 if argc > 4 { pfx = argv[4] as *u8 }
130 let out: *u8 = sys_mmap(CC_OUT)
131 let n: i64 = cc_advise(sj_atoi_z(argv[2] as *u8), ws, pfx, out)
132 sys_write(1, out, n)
133 sys_exit(0)
134 return 0
135 }
136 if sj_lit_eq(verb, 0, sj_vlen(verb), "selftest" as *u8) == 1 {
137 var b: *u8 = "/tmp/nxctxc_st" as *u8
138 if argc > 2 { b = argv[2] as *u8 }
139 let rc: i64 = cc_selftest(b)
140 sys_exit(rc)
141 return rc
142 }
143 sj_werr("CTXCOST-FAIL unknown verb
144" as *u8)
145 sys_exit(CC_USAGE)
146 return CC_USAGE
147}