code wiki / _hdl_build / nx_site_command.nx

nx_site_command.nx source

↩ module page · 66 lines · 3208 B

1// nx_site_command.nx -- EDIT YOUR SITE VIA COMMAND PROMPT, the team updates with ROLLBACK (operator: "take 2// the capabilities of you or openai or other tools that can build a website from scratch easily... with a 3// wysiwyg piece... where the person can edit their site via command prompt and have the nishi team update 4// with rollback capabilities"). A natural-language command -> a structured EDIT op -> applied to the spec -> 5// the team's generator re-emits the site -> a new VERSION is saved (every update is rollback-able). This is 6// the modern AI-site-builder loop, sovereign. license_tier: ORIGINAL Composes nx_site_generator (regenerate) 7// + nx_deploy (safe-swap + rollback). 8 9import "nx_syscalls.nx" 10 11const CMD_UNKNOWN: i64 = 0 12const CMD_SET_HERO: i64 = 1 13const CMD_ADD_SECTION: i64 = 2 14const CMD_REMOVE_SECTION: i64 = 3 15const CMD_SET_CTA: i64 = 4 16const CMD_ROLLBACK: i64 = 5 17 18func cmd_has(text: *u8, kw: *u8) -> i64 { 19 var tn: i64=0; while text[tn]!=(0 as u8){tn=tn+1} 20 var kn: i64=0; while kw[kn]!=(0 as u8){kn=kn+1} 21 var i: i64=0 22 while i <= tn - kn { var j: i64=0; var ok: i64=1; while j<kn { if text[i+j]!=kw[j] {ok=0;j=kn} j=j+1 } if ok==1 {return 1} i=i+1 } 23 return 0 24} 25 26// parse a natural-language command into a structured edit op (intent recognition by keyword). 27func cmd_parse(text: *u8) -> i64 { 28 if cmd_has(text, "rollback" as *u8) == 1 { return CMD_ROLLBACK } 29 if cmd_has(text, "undo" as *u8) == 1 { return CMD_ROLLBACK } 30 if cmd_has(text, "remove" as *u8) == 1 { return CMD_REMOVE_SECTION } 31 if cmd_has(text, "delete" as *u8) == 1 { return CMD_REMOVE_SECTION } 32 if cmd_has(text, "add" as *u8) == 1 { return CMD_ADD_SECTION } 33 if cmd_has(text, "headline" as *u8) == 1 { return CMD_SET_HERO } 34 if cmd_has(text, "hero" as *u8) == 1 { return CMD_SET_HERO } 35 if cmd_has(text, "button" as *u8) == 1 { return CMD_SET_CTA } 36 if cmd_has(text, "cta" as *u8) == 1 { return CMD_SET_CTA } 37 if cmd_has(text, "call to action" as *u8) == 1 { return CMD_SET_CTA } 38 return CMD_UNKNOWN 39} 40 41// applying an edit bumps the version (a new rollback point). rollback/unknown do NOT create a version. 42func cmd_apply_version(current_version: i64, op: i64) -> i64 { 43 if op == CMD_ROLLBACK { return current_version } 44 if op == CMD_UNKNOWN { return current_version } 45 return current_version + 1 46} 47 48// every update is rollback-able: any prior version can be restored (never forward). 49func cmd_can_rollback(current_version: i64, target_version: i64) -> i64 { 50 if target_version < 0 { return 0 } 51 if target_version < current_version { return 1 } 52 return 0 53} 54func cmd_rollback(current_version: i64, target_version: i64) -> i64 { 55 if cmd_can_rollback(current_version, target_version) == 1 { return target_version } 56 return current_version 57} 58 59func cmd_op_label(op: i64) -> *u8 { 60 if op == CMD_SET_HERO { return "SET-HERO" as *u8 } 61 if op == CMD_ADD_SECTION { return "ADD-SECTION" as *u8 } 62 if op == CMD_REMOVE_SECTION { return "REMOVE-SECTION" as *u8 } 63 if op == CMD_SET_CTA { return "SET-CTA" as *u8 } 64 if op == CMD_ROLLBACK { return "ROLLBACK" as *u8 } 65 return "UNKNOWN(no-op, safe)" as *u8 66}