code wiki / _hdl_build / nx_orchestration_test.nx

nx_orchestration_test.nx source

↩ module page · 68 lines · 5535 B

1// nx_orchestration_test.nx -- prove conflict-free parallel git (no agent crashes) + the hub-spoke Naruto 2// clone-integrate-grow loop (monotonic, governed, no regression). Exit 0 on 12/12. license_tier: ORIGINAL 3 4import "nx_workstream_git.nx" 5import "nx_hub_spoke.nx" 6import "nx_syscalls.nx" 7 8func ot_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 9func ot_num(v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m}; 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);m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(1,bb,k); return 0 } 10 11func main() -> i64 { 12 ot_puts("=== CONFLICT-FREE GIT + HUB-SPOKE NARUTO LOOP ===\n" as *u8) 13 14 // ---- conflict-free parallel git ---- 15 // workstreams A(branch1,worktree1,files 0b0011) B(branch2,worktree2,files 0b0100) C(branch3,wt3,files 0b0001) 16 let iso_ab: i64 = wsg_isolation_ok(1, 2, 1, 2) // distinct -> ok 17 let iso_same_branch: i64 = wsg_isolation_ok(1, 1, 1, 2) // shared branch -> crash 18 let iso_same_wt: i64 = wsg_isolation_ok(1, 2, 1, 1) // shared worktree -> crash 19 let mode_crash: i64 = wsg_merge_mode(1, 3, 5) // same branch -> CRASH 20 let mode_par: i64 = wsg_merge_mode(0, 3, 4) // 0b0011 & 0b0100 = 0 -> PARALLEL 21 let mode_ser: i64 = wsg_merge_mode(0, 3, 1) // 0b0011 & 0b0001 = 1 -> SERIALIZE 22 let inflight: *i64 = sys_mmap(8*4) as *i64; inflight[0]=3; inflight[1]=4 // 0b0011, 0b0100 merging 23 let now_ok: i64 = wsg_can_merge_now(inflight, 2, 8) // 0b1000 disjoint from both -> go now 24 let now_block: i64 = wsg_can_merge_now(inflight, 2, 1) // 0b0001 overlaps 0b0011 -> queue 25 let gate_ok: i64 = wsg_merge_gate(1, 1) 26 let gate_no: i64 = wsg_merge_gate(1, 0) 27 ot_puts(" git: isolate ab=" as *u8); ot_num(iso_ab); ot_puts(" sameBranch=" as *u8); ot_num(iso_same_branch); ot_puts(" modes crash=" as *u8); ot_puts(wsg_mode_label(mode_crash)); ot_puts(" par=" as *u8); ot_puts(wsg_mode_label(mode_par)); ot_puts(" ser=" as *u8); ot_puts(wsg_mode_label(mode_ser)); ot_puts(" mergeNow ok=" as *u8); ot_num(now_ok); ot_puts(" block=" as *u8); ot_num(now_block); ot_puts("\n" as *u8) 28 29 // ---- hub-spoke Naruto loop ---- 30 let hub0: i64 = 193 31 let gains: *i64 = sys_mmap(8*4) as *i64; gains[0]=1; gains[1]=1; gains[2]=1; gains[3]=1 32 let admits: *i64 = sys_mmap(8*4) as *i64; admits[0]=1; admits[1]=1; admits[2]=1; admits[3]=1 33 let powers: *i64 = sys_mmap(8*4) as *i64 34 let hub_final: i64 = hs_run_generations(hub0, gains, admits, 4, powers) 35 ot_puts(" naruto: clone powers " as *u8); ot_num(powers[0]); ot_puts("->" as *u8); ot_num(powers[1]); ot_puts("->" as *u8); ot_num(powers[2]); ot_puts("->" as *u8); ot_num(powers[3]); ot_puts(" hub now " as *u8); ot_num(hub_final); ot_puts("\n" as *u8) 36 // a REJECTED learning must not grow OR shrink the hub 37 let hub_reject: i64 = hs_integrate(196, 5, 0) // governance said no 38 let hub_admit: i64 = hs_integrate(196, 5, 1) // governance said yes 39 // spoke receive + feedback 40 let spoke_got: i64 = hs_spoke_receive(hub_final) 41 let spoke_fb_ok: i64 = hs_spoke_feedback(2, 1) 42 let spoke_fb_no: i64 = hs_spoke_feedback(2, 0) 43 ot_puts(" hub reject(no-grow)=" as *u8); ot_num(hub_reject); ot_puts(" admit=" as *u8); ot_num(hub_admit); ot_puts(" spoke recv=" as *u8); ot_num(spoke_got); ot_puts(" fb-ok=" as *u8); ot_num(spoke_fb_ok); ot_puts(" fb-rejected=" as *u8); ot_num(spoke_fb_no); ot_puts("\n" as *u8) 44 45 let r: *i64 = sys_mmap(16*8) as *i64 46 r[0]=0; if iso_ab == 1 { r[0]=1 } 47 r[1]=0; if iso_same_branch == 0 { if iso_same_wt == 0 { r[1]=1 } } // crash structurally prevented 48 r[2]=0; if mode_crash == WSG_CRASH { r[2]=1 } 49 r[3]=0; if mode_par == WSG_PARALLEL { r[3]=1 } // disjoint -> parallel merge 50 r[4]=0; if mode_ser == WSG_SERIALIZE { r[4]=1 } // overlap -> serialize 51 r[5]=0; if now_ok == 1 { if now_block == 0 { r[5]=1 } } // merge queue disjoint-parallel/overlap-queue 52 r[6]=0; if gate_ok == 1 { if gate_no == 0 { r[6]=1 } } // pre-merge rebase+test gate 53 r[7]=0; if powers[0]==193 { if powers[1]==194 { if powers[2]==195 { if powers[3]==196 { r[7]=1 } } } } // each clone stronger 54 r[8]=0; if hub_final == 197 { r[8]=1 } // hub grew 193->197 55 r[9]=0; if hs_next_stronger(powers[2], powers[3]) == 1 { r[9]=1 } // monotonic improvement 56 r[10]=0; if hub_reject == 196 { if hs_no_regression(196, hub_reject) == 1 { r[10]=1 } } // rejected learning: no grow, no regress 57 r[11]=0; if hub_admit == 201 { if spoke_got == hub_final { if spoke_fb_ok == 2 { if spoke_fb_no == 0 { r[11]=1 } } } } // governed growth + spoke flow 58 var pass: i64 = 0; var i: i64 = 0 59 while i < 12 { pass = pass + r[i]; i = i + 1 } 60 ot_puts("---- passed " as *u8); ot_num(pass); ot_puts("/12 ----\n" as *u8) 61 if pass == 12 { 62 ot_puts(" Agents can't crash each other (isolated branch+worktree; merge-queue serializes overlaps),\n" as *u8) 63 ot_puts(" and the hub grows like Naruto: clones learn -> governed integration -> stronger next clones,\n" as *u8) 64 ot_puts(" additive-only (no regression), with spokes (Elder AI) receiving + feeding back capabilities.\n" as *u8) 65 sys_exit(0); return 0 66 } 67 ot_puts(" FAIL\n" as *u8); sys_exit(1); return 1 68}