nx_dr_conductor_cli.nx source
↩ module page · 92 lines · 4425 B
1// nx_dr_conductor_cli.nx -- callable MCP/API surface for the Co-Scientist conductor (DR-4).
2// Runs the whole deterministic research loop (verify-yield -> Elo tournament -> opp-cost
3// budget dispatch) over N candidate research vectors and emits the ranked plan + which
4// vectors earn deep compute.
5// nx_dr_conductor <budget> [supported total cost]... per vector: 3 ints
6// e.g. nx_dr_conductor 8 8 10 3 2 10 2 9 10 5 0 10 1
7// -> {"selected":2,"spent":8,"vectors":[{"rank":1,"id":0,"quality":800,"rating":..,"selected":1},...]}
8// license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
9import "nx_dr_conductor.nx"
10import "nx_syscalls.nx"
11
12func cd_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
13func cd_q() -> i64 { let b: *u8 = sys_mmap(1); b[0] = 34 as u8; sys_write(1, b, 1); return 0 }
14func cd_key(name: *u8) -> i64 { cd_q(); cd_puts(name); cd_q(); cd_puts(":" as *u8); return 0 }
15func cd_num(v: i64) -> i64 {
16 let bb: *u8 = sys_mmap(28); var m: i64 = v; var neg: i64 = 0
17 if m < 0 { neg = 1; m = 0 - m }
18 let t: *u8 = sys_mmap(28); var k: i64 = 0
19 if m == 0 { t[0] = 48 as u8; k = 1 }
20 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
21 var o: i64 = 0
22 if neg == 1 { bb[o] = 45 as u8; o = o + 1 }
23 var i: i64 = 0
24 while i < k { bb[o] = t[k-1-i]; o = o + 1; i = i + 1 }
25 sys_write(1, bb, o); return 0
26}
27func cd_atoi(a: *u8) -> i64 {
28 var v: i64 = 0; var i: i64 = 0
29 while a[i] != (0 as u8) {
30 let ch: i64 = a[i] as i64
31 if ch >= 48 { if ch <= 57 { v = v * 10 + (ch - 48) } }
32 i = i + 1
33 }
34 return v
35}
36
37func main(argc: i64, argv: *i64) -> i64 {
38 if argc < 2 { cd_puts("{" as *u8); cd_key("error" as *u8); cd_q(); cd_puts("usage: nx_dr_conductor <budget> [supported total cost]..." as *u8); cd_q(); cd_puts("}\n" as *u8); sys_exit(2); return 2 }
39 let budget: i64 = cd_atoi(argv[1] as *u8)
40 let n: i64 = (argc - 2) / 3
41 if n < 1 { cd_puts("{" as *u8); cd_key("error" as *u8); cd_q(); cd_puts("need >=1 vector: supported total cost" as *u8); cd_q(); cd_puts("}\n" as *u8); sys_exit(1); return 1 }
42
43 let sup: *i64 = sys_mmap(n * 8) as *i64
44 let tot: *i64 = sys_mmap(n * 8) as *i64
45 let cost: *i64 = sys_mmap(n * 8) as *i64
46 var t: i64 = 0
47 while t < n {
48 sup[t] = cd_atoi(argv[2 + t * 3] as *u8)
49 tot[t] = cd_atoi(argv[2 + t * 3 + 1] as *u8)
50 cost[t] = cd_atoi(argv[2 + t * 3 + 2] as *u8)
51 t = t + 1
52 }
53
54 // packed output buffer: (5n+1) i64
55 let out: *i64 = sys_mmap((5 * n + 1) * 8) as *i64
56 let cnt: i64 = cond_run(sup, tot, cost, n, budget, out)
57 let ql: *i64 = out
58 let rt: *i64 = ((out as i64) + n * 8) as *i64
59 let pr: *i64 = ((out as i64) + n * 16) as *i64
60 let ord: *i64 = ((out as i64) + n * 24) as *i64
61 let sel: *i64 = ((out as i64) + n * 32) as *i64
62 let spent: *i64 = ((out as i64) + n * 40) as *i64
63
64 cd_puts("{" as *u8)
65 cd_key("tool" as *u8); cd_q(); cd_puts("nx_dr_conductor" as *u8); cd_q(); cd_puts("," as *u8)
66 cd_key("n" as *u8); cd_num(n); cd_puts("," as *u8)
67 cd_key("budget" as *u8); cd_num(budget); cd_puts("," as *u8)
68 cd_key("selected" as *u8); cd_num(cnt); cd_puts("," as *u8)
69 cd_key("spent" as *u8); cd_num(spent[0]); cd_puts("," as *u8)
70 cd_key("vectors" as *u8); cd_puts("[" as *u8)
71 var r: i64 = 0
72 while r < n {
73 if r > 0 { cd_puts("," as *u8) }
74 let id: i64 = ord[r]
75 cd_puts("{" as *u8)
76 cd_key("rank" as *u8); cd_num(r + 1); cd_puts("," as *u8)
77 cd_key("id" as *u8); cd_num(id); cd_puts("," as *u8)
78 cd_key("supported" as *u8); cd_num(sup[id]); cd_puts("," as *u8)
79 cd_key("total" as *u8); cd_num(tot[id]); cd_puts("," as *u8)
80 cd_key("quality_permil" as *u8); cd_num(ql[id]); cd_puts("," as *u8)
81 cd_key("elo" as *u8); cd_num(rt[id]); cd_puts("," as *u8)
82 cd_key("priority" as *u8); cd_num(pr[id]); cd_puts("," as *u8)
83 cd_key("cost" as *u8); cd_num(cost[id]); cd_puts("," as *u8)
84 cd_key("selected" as *u8); cd_num(sel[id])
85 cd_puts("}" as *u8)
86 r = r + 1
87 }
88 cd_puts("]," as *u8)
89 cd_key("note" as *u8); cd_q(); cd_puts("verify-yield(DR3/2)->Elo tournament(DR1)->opp-cost budget dispatch(DR6); deterministic; feeds DR-0 scorer" as *u8); cd_q()
90 cd_puts("}\n" as *u8)
91 sys_exit(0); return 0
92}