code wiki / (root) / nx_dr_chain_cli.nx

nx_dr_chain_cli.nx source

↩ module page · 161 lines · 7857 B

1// nx_dr_chain_cli.nx -- ONE CALL runs the whole sovereign deep-research loop (DR-CHAIN). 2// judge (tokenize+containment of every source vs the shared groundtruth insight set) 3// -> conduct (verify-yield -> Elo tournament -> opportunity-cost budget dispatch) 4// -> score (insight-recall of what was actually selected, vs what was achievable) 5// nx_dr_chain <threshold_permil> <budget> <n_insights> <insight_1..n> <cost_1> <doc_1> ... 6// e.g. nx_dr_chain 600 3 3 "alpha one" "beta two" "gamma three" \ 7// 2 "alpha one beta two" 3 "gamma three extra words here" 1 "alpha one" 8// -> {"recall_all_permil":1000,"recall_selected_permil":666,"budget_cost_permil":334,...} 9// The recall_all vs recall_selected delta is the MEASURED COST of the opportunity-cost 10// constraint -- the number no single-agent research tool reports. 11// license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0 12import "nx_dr_chain.nx" 13import "nx_itoa_lib.nx" // shared MSB-first emitter (zero-alloc) 14import "nx_dr_run.nx" 15import "nx_dr_conductor.nx" 16import "nx_dr_drbench.nx" 17import "nx_syscalls.nx" 18const K_MAGIC_8192: i64 = 8192 19const K_MAGIC_1024: i64 = 1024 20const K_MAGIC_65536: i64 = 65536 21 22func ch_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 23func ch_q() -> i64 { let b: *u8 = sys_mmap(1); b[0] = 34 as u8; sys_write(1, b, 1); return 0 } 24func ch_key(name: *u8) -> i64 { ch_q(); ch_puts(name); ch_q(); ch_puts(":" as *u8); return 0 } 25// MIGRATED to the shared emitter (debt 1785563586). The old body mmapped a scratch buffer 26// per call and never freed it. At PAGE granularity that is 4096B leaked PER CALL -- the 27// defect that took 28.5GB of a 36GB host in nx_ts_lumadiff (2MB input, ~3.66M calls). 28// nxi_* is MSB-first, allocates NOTHING, and emits identical bytes including the sign. 29func ch_num(v: i64) -> i64 { nxi_out(v); return 0 } 30func ch_atoi(a: *u8) -> i64 { 31 var v: i64 = 0; var i: i64 = 0 32 while a[i] != (0 as u8) { 33 let c: i64 = a[i] as i64 34 if c >= 48 { if c <= 57 { v = v * 10 + (c - 48) } } 35 i = i + 1 36 } 37 return v 38} 39 40func main(argc: i64, argv: *i64) -> i64 { 41 if argc < 7 { ch_puts("{" as *u8); ch_key("error" as *u8); ch_q(); ch_puts("usage: nx_dr_chain <threshold> <budget> <n_insights> <insight..> <cost doc>.." as *u8); ch_q(); ch_puts("}\n" as *u8); sys_exit(2); return 2 } 42 let threshold: i64 = ch_atoi(argv[1] as *u8) 43 let budget: i64 = ch_atoi(argv[2] as *u8) 44 let ni: i64 = ch_atoi(argv[3] as *u8) 45 if ni < 1 { ch_puts("{" as *u8); ch_key("error" as *u8); ch_q(); ch_puts("n_insights must be >= 1" as *u8); ch_q(); ch_puts("}\n" as *u8); sys_exit(1); return 1 } 46 let base: i64 = 4 + ni 47 let ndocs: i64 = (argc - base) / 2 48 if ndocs < 1 { ch_puts("{" as *u8); ch_key("error" as *u8); ch_q(); ch_puts("need >=1 <cost doc> pair" as *u8); ch_q(); ch_puts("}\n" as *u8); sys_exit(1); return 1 } 49 50 // ---- pack the shared groundtruth insight set 51 let ins_pack: *i64 = sys_mmap((1 + 2 * ni + K_MAGIC_8192) * 8) as *i64 52 ins_pack[0] = ni 53 let ins_tok: *i64 = ((ins_pack as i64) + (1 + 2 * ni) * 8) as *i64 54 var off: i64 = 0 55 var i: i64 = 0 56 while i < ni { 57 let s: *u8 = argv[4 + i] as *u8 58 let dst: *i64 = ((ins_tok as i64) + off * 8) as *i64 59 let ln: i64 = drr_tokenize(s, drr_strlen(s), dst, K_MAGIC_1024) 60 ins_pack[1 + i] = off 61 ins_pack[1 + ni + i] = ln 62 off = off + ln 63 i = i + 1 64 } 65 66 // ---- pack the source documents + their costs 67 let doc_pack: *i64 = sys_mmap((1 + ndocs + K_MAGIC_65536) * 8) as *i64 68 doc_pack[0] = ndocs 69 let doc_tok: *i64 = ((doc_pack as i64) + (1 + ndocs) * 8) as *i64 70 let cost: *i64 = sys_mmap(ndocs * 8) as *i64 71 var doff: i64 = 0 72 var d: i64 = 0 73 while d < ndocs { 74 cost[d] = ch_atoi(argv[base + d * 2] as *u8) 75 let ds: *u8 = argv[base + d * 2 + 1] as *u8 76 let dst: *i64 = ((doc_tok as i64) + doff * 8) as *i64 77 let dl: i64 = drr_tokenize(ds, drr_strlen(ds), dst, K_MAGIC_8192) 78 doc_pack[1 + d] = dl 79 doff = doff + dl 80 d = d + 1 81 } 82 83 // ---- STAGE 1 judge 84 let sup: *i64 = sys_mmap(ndocs * 8) as *i64 85 let cov: *i64 = sys_mmap(ndocs * ni * 8) as *i64 86 chain_judge_all(ins_pack, doc_pack, threshold, sup, cov) 87 88 // achievable recall (every source read) 89 let allsel: *i64 = sys_mmap(ndocs * 8) as *i64 90 var a: i64 = 0 91 while a < ndocs { allsel[a] = 1; a = a + 1 } 92 let allcov: *i64 = sys_mmap(ni * 8) as *i64 93 chain_sel_cov(cov, allsel, ndocs, ni, allcov) 94 let recall_all: i64 = dr_frac(allcov, ni) 95 96 // ---- STAGE 2 conduct 97 let total: *i64 = sys_mmap(ndocs * 8) as *i64 98 var t2: i64 = 0 99 while t2 < ndocs { total[t2] = ni; t2 = t2 + 1 } 100 let out: *i64 = sys_mmap((5 * ndocs + 1) * 8) as *i64 101 let cnt: i64 = cond_run(sup, total, cost, ndocs, budget, out) 102 let ql: *i64 = out 103 let rt: *i64 = ((out as i64) + ndocs * 8) as *i64 104 let pri: *i64 = ((out as i64) + ndocs * 16) as *i64 105 let ord: *i64 = ((out as i64) + ndocs * 24) as *i64 106 let sel: *i64 = ((out as i64) + ndocs * 32) as *i64 107 let spent: i64 = out[5 * ndocs] 108 109 // ---- STAGE 3 score what was selected 110 let selcov: *i64 = sys_mmap(ni * 8) as *i64 111 chain_sel_cov(cov, sel, ndocs, ni, selcov) 112 let recall_sel: i64 = dr_frac(selcov, ni) 113 var retained: i64 = 1000 114 if recall_all > 0 { retained = (recall_sel * 1000) / recall_all } 115 116 ch_puts("{" as *u8) 117 ch_key("tool" as *u8); ch_q(); ch_puts("nx_dr_chain" as *u8); ch_q(); ch_puts("," as *u8) 118 ch_key("n_insights" as *u8); ch_num(ni); ch_puts("," as *u8) 119 ch_key("n_sources" as *u8); ch_num(ndocs); ch_puts("," as *u8) 120 ch_key("threshold_permil" as *u8); ch_num(threshold); ch_puts("," as *u8) 121 ch_key("budget" as *u8); ch_num(budget); ch_puts("," as *u8) 122 ch_key("selected" as *u8); ch_num(cnt); ch_puts("," as *u8) 123 ch_key("spent" as *u8); ch_num(spent); ch_puts("," as *u8) 124 ch_key("recall_all_permil" as *u8); ch_num(recall_all); ch_puts("," as *u8) 125 ch_key("recall_selected_permil" as *u8); ch_num(recall_sel); ch_puts("," as *u8) 126 ch_key("budget_cost_permil" as *u8); ch_num(recall_all - recall_sel); ch_puts("," as *u8) 127 ch_key("recall_retained_permil" as *u8); ch_num(retained); ch_puts("," as *u8) 128 ch_key("sources" as *u8); ch_puts("[" as *u8) 129 var r: i64 = 0 130 while r < ndocs { 131 if r > 0 { ch_puts("," as *u8) } 132 let id: i64 = ord[r] 133 ch_puts("{" as *u8) 134 ch_key("rank" as *u8); ch_num(r + 1); ch_puts("," as *u8) 135 ch_key("id" as *u8); ch_num(id); ch_puts("," as *u8) 136 ch_key("supported" as *u8); ch_num(sup[id]); ch_puts("," as *u8) 137 ch_key("quality_permil" as *u8); ch_num(ql[id]); ch_puts("," as *u8) 138 ch_key("elo" as *u8); ch_num(rt[id]); ch_puts("," as *u8) 139 ch_key("priority" as *u8); ch_num(pri[id]); ch_puts("," as *u8) 140 ch_key("cost" as *u8); ch_num(cost[id]); ch_puts("," as *u8) 141 ch_key("selected" as *u8); ch_num(sel[id]) 142 ch_puts("}" as *u8) 143 r = r + 1 144 } 145 ch_puts("]," as *u8) 146 ch_key("insights" as *u8); ch_puts("[" as *u8) 147 var k2: i64 = 0 148 while k2 < ni { 149 if k2 > 0 { ch_puts("," as *u8) } 150 ch_puts("{" as *u8) 151 ch_key("idx" as *u8); ch_num(k2); ch_puts("," as *u8) 152 ch_key("achievable" as *u8); ch_num(allcov[k2]); ch_puts("," as *u8) 153 ch_key("obtained" as *u8); ch_num(selcov[k2]) 154 ch_puts("}" as *u8) 155 k2 = k2 + 1 156 } 157 ch_puts("]," as *u8) 158 ch_key("note" as *u8); ch_q(); ch_puts("one-call loop: judge(lexical containment)->conduct(Elo+opp-cost budget)->score; budget_cost = achievable minus obtained recall; sovereign integer" as *u8); ch_q() 159 ch_puts("}\n" as *u8) 160 sys_exit(0); return 0 161}