code wiki / _hdl_build / nx_site_command_test.nx

nx_site_command_test.nx source

↩ module page · 49 lines · 3279 B

1// nx_site_command_test.nx -- prove editing the site VIA COMMAND PROMPT with versioned ROLLBACK (the modern 2// AI-site-builder loop, sovereign). Exit 0 on 9/9. license_tier: ORIGINAL 3 4import "nx_site_command.nx" 5import "nx_syscalls.nx" 6 7func mt_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 8func mt_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 } 9 10func main() -> i64 { 11 mt_puts("=== EDIT VIA COMMAND PROMPT + ROLLBACK ===\n" as *u8) 12 let c_add: i64 = cmd_parse("add an immigration law practice area" as *u8) 13 let c_hero: i64 = cmd_parse("change the hero headline to something punchier" as *u8) 14 let c_cta: i64 = cmd_parse("make the button say Call Now" as *u8) 15 let c_rm: i64 = cmd_parse("remove the criminal defense section" as *u8) 16 let c_rb: i64 = cmd_parse("rollback to the previous version" as *u8) 17 let c_unk: i64 = cmd_parse("please paint it teal-ish maybe" as *u8) 18 mt_puts(" parse: add->" as *u8); mt_puts(cmd_op_label(c_add)); mt_puts(" hero->" as *u8); mt_puts(cmd_op_label(c_hero)); mt_puts(" button->" as *u8); mt_puts(cmd_op_label(c_cta)); mt_puts(" rollback->" as *u8); mt_puts(cmd_op_label(c_rb)); mt_puts("\n" as *u8) 19 20 // versioned editing: v0 -> add -> v1 -> hero -> v2 -> cta -> v3 ; unknown = no-op 21 var v: i64 = 0 22 v = cmd_apply_version(v, c_add) // 1 23 v = cmd_apply_version(v, c_hero) // 2 24 v = cmd_apply_version(v, c_cta) // 3 25 let v_after_unknown: i64 = cmd_apply_version(v, c_unk) // stays 3 (safe no-op) 26 // rollback to v1 27 let restored: i64 = cmd_rollback(v, 1) 28 mt_puts(" versions: after 3 edits v=" as *u8); mt_num(v); mt_puts(" unknown-cmd keeps v=" as *u8); mt_num(v_after_unknown); mt_puts(" rollback->v" as *u8); mt_num(restored); mt_puts("\n" as *u8) 29 30 let r: *i64 = sys_mmap(8*8) as *i64 31 r[0]=0; if c_add == CMD_ADD_SECTION { r[0]=1 } 32 r[1]=0; if c_hero == CMD_SET_HERO { r[1]=1 } 33 r[2]=0; if c_cta == CMD_SET_CTA { r[2]=1 } // "button" -> set CTA 34 r[3]=0; if c_rm == CMD_REMOVE_SECTION { r[3]=1 } 35 r[4]=0; if c_rb == CMD_ROLLBACK { r[4]=1 } 36 r[5]=0; if c_unk == CMD_UNKNOWN { r[5]=1 } // ambiguous -> no-op (safe) 37 r[6]=0; if v == 3 { if v_after_unknown == 3 { r[6]=1 } } // 3 real edits; unknown didn't bump 38 r[7]=0; if restored == 1 { r[7]=1 } // rollback restored v1 39 r[8]=0; if cmd_can_rollback(3, 1) == 1 { if cmd_can_rollback(3, 5) == 0 { r[8]=1 } } // back yes, forward no 40 var pass: i64 = 0; var j: i64 = 0 41 while j < 9 { pass = pass + r[j]; j = j + 1 } 42 mt_puts("---- passed " as *u8); mt_num(pass); mt_puts("/9 ----\n" as *u8) 43 if pass == 9 { 44 mt_puts(" The person edits via prompt; the team parses the intent, regenerates, versions every change,\n" as *u8) 45 mt_puts(" and can ROLL BACK -- the modern AI-site-builder loop, sovereign (Researcher->Generator->Command->Deploy).\n" as *u8) 46 sys_exit(0); return 0 47 } 48 mt_puts(" FAIL\n" as *u8); sys_exit(1); return 1 49}