Lines 150-197javascript
151`),0}var S,Wr=d(()=>{"use strict";M();nn();Rt();re();xe();Fe();Oe();S=u});var zr={};oe(zr,{runVerifyInteractions:()=>ic});function ic(e={}){let t=O(e.projectRoot);console.log(`${W.bold}=== CFM SDK \u2014 verify-interactions ===${W.reset}`),console.log(`${W.dim}Project: ${t}${W.reset}
152`);let n=Te(t);if(n.length){console.log(`${W.red}FAIL:${W.reset} Interaction / format contract issues:`);for(let o of n)console.log(` ${o}`);return console.log(`
153${W.dim}Fix: field-binding-map.md \xB7 client-lib-folder.md \xB7 layout-cookbook/mcq.md \xB7 agent-per-type-verification${W.reset}`),1}return console.log(`${W.green}OK:${W.reset} Interaction contracts passed (Likert field names, star icons, MCQ pickers)`),console.log(`${W.dim}Reminder: load dev URL and confirm runtime smoke in client
154`,"utf8"),n}function cc(e={}){let t=O(e.projectRoot),n=ti(t),o=ln(n);return console.log(`${Q.green}deploy.target:${Q.reset} ${n}`),console.log(`${Q.dim}Platform: ${o} (from ${rn})${Q
155${Q.red}Core verify not recorded. Run npx cfm-sdk verify-build successfully before set-deploy-target.${Q.reset}`),1;let s=ni(n,t),r=ln(t);try{so(n)}catch(i){return console.error(`
156${Q.red}${B(i)}${Q.reset}`),1}if(console.log(`${Q.green}OK:${Q.reset} Wrote deploy.target=${t} (${r}) \u2192 ${s}`),t==="aws"){let i=e.surveyId?.trim()||"<survey-id>"
158`),console.log(`${Q.dim}After client pastes key: npx cfm-sdk create-distribution --s3-key=<key>${Q.reset}`)}else console.log(`${Q.dim}After client confirms deploy yes: npx cfm-sdk deploy${Q.reset}`);return 0}var z,Fn,Q,rn,ac,qn=d(()=>{"use strict";z=x(require(
160`),1}try{io(t,r)}catch(A){return console.error(`${ie.red}${B(A)}${ie.reset}`),1}if(!o)throw new Error("Missing OUT_DIR \u2014 set OUT_DIR to the absolute path of out/ or dist/");if(!ye.existsSync(te.join(o,"index.html")))throw new Error(`Missing ${te.join(o,"index.html")} \u2014 run build first`);let{survey:i,apiResponse:l}=await Ie(t,s),a=i.id,p=l.cfmSurveyDTO?.name?.trim()||a,f=mc(),m=yc(o);console.log(`${ie.cyan}\u2192 Creating distribution${ie.reset} for ${p} (${a}, s3Key: ${r})`),console.log(` uploading ${m.length} files from ${o}\u2026`);let b=await Sc(n,s,r,m);await xc(o,b.uploads,m),c ...
162`),ro(t,r),0}catch(t){return console.error(`${ie.red}\u274C create-distribution failed: ${B(t)}${ie.reset}`),1}}var ye,te,ie,oi,pc,Un,dc,hc,ri=d(()=>{"use strict";ye=x(require("fs")),te=x(require("path"));gt();re();M();ft();xe();Oe();ie=u,oi=500,pc=52428800,Un=3,dc=2e3;hc=e=>new Promise(t=>setTimeout(t,e))});M();M();Se();var jn=x(require("readline/promises")),St=require("process");async function Ee(e){let t=jn.default.createInterface({input:St.stdin,output:St.stdout});try{return(await t.
163`);let t=await Ee("Would you like to install/upgrade Node.js v18+ automatically? (y/N): ");t.toLowerCase()==="y"||t.toLowerCase()==="yes"||(console.log(`
164\u274C ${u.red}Aborted. Please manually upgrade Node.js to v18+ and try again.${u.reset}
165`),process.exit(1));let o=process.platform==="win32",s=process.platform==="darwin";o?Re("winget")?(console.log(`
166\u{1F4E6} ${u.green}winget package manager found! Installing Node.js v18+ in background...${u.reset}`),se("winget",["upgrade","OpenJS.NodeJS","--silent","--accept-package-agreements","--accept-source-agreements"])?(console.log(`
167\u2714 ${u.green}Node.js installation triggered successfully. Please restart your terminal/command-prompt for changes to take effect.${u.reset}
168`),process.exit(0)):(console.log(`
169\u274C ${u.red}winget update failed. Please update Node.js manually at https://nodejs.org/${u.reset}
170`),process.exit(1))):(console.log(`
171\u274C ${u.red}winget package manager is not installed on this system.${u.reset}`),console.log(`${u.bold}\u{1F449} To proceed, please either:${u.reset}`),console.log(" 1. Install winget (App Installer) from the Microsoft Store."),console.log(` 2. Or manually download and install Node.js (v18+) from: https://nodejs.org/
172`),process.exit(1)):s?Re("brew")?(console.log(`
173\u{1F4E6} ${u.green}Homebrew package manager found! Installing Node.js v18+ in background...${u.reset}`),se("brew",["install","node"])?console.log(`
174\u2714 ${u.green}Node.js installed successfully via Homebrew.${u.reset}
176\u274C ${u.red}Homebrew installation failed. Please install Node.js manually at https://nodejs.org/${u.reset}
177`),process.exit(1))):(console.log(`
178\u274C ${u.red}Homebrew package manager (brew) is not installed on this system.${u.reset}`),console.log(`${u.bold}\u{1F449} To proceed, please either:${u.reset}`),console.log(" 1. Install Homebrew by running the following command in your terminal:"),console.log(` ${u.cyan}/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"${u.reset}`),console.log(` 2. Or manually download and install Node.js (v18+) from: https://nodejs.org/
179`),process.exit(1)):(console.log(`
180\u274C ${u.red}Please install or update Node.js to v18+ using your system's package manager.${u.reset}
181`),process.exit(1))}else console.log(`\u2714 ${u.green}Node.js version (v${e}) is sufficient.${u.reset}`)}M();Se();async function Hn(){console.log(`
182${u.dim}Step 2/4: Checking Vercel CLI...${u.reset}`);let e="vercel",t=!1;if(Re("vercel"))console.log(`\u2714 ${u.green}Vercel CLI is installed!${u.reset}`);else{console.log(`\u2753 ${u.yellow}Vercel CLI was not found on your system.${u.reset}`);let n=await Ee("\u{1F449} Would you like to install Vercel CLI globally? (Y/n): ");n.toLowerCase()==="y"||n===""?(console.log(`
183\u{1F4E5} ${u.cyan}Installing Vercel CLI globally... (npm install -g vercel)${u.reset}`),se("npm",["install","-g","vercel"])&&Re("vercel")?console.log(`\u2714 ${u.green}Vercel CLI installed successfully!${u.reset}`):(console.log(`
184\u26A0\uFE0F ${u.yellow}Global installation failed or permissions restricted.${u.reset}`),console.log(`\u2139 ${u.dim}Falling back: Running Vercel dynamically via npx.${u.reset}`),e="npx --yes vercel",t=!0)):(console.log(`\u2139 ${u.dim}Skipping global installation. Running Vercel dynamically via npx.${u.reset}`),e="npx --yes vercel",t=!0)}return{vercelCmd:e,useNpx:t}}var Vn=require("child_process");M();Se();var mi={stdio:"ignore",shell:process.platform==="win32"?"cmd.exe":"/bin/sh"};async function Gn(e){console.log(`
HighRuntime Package Install
Package source invokes a package manager install command at runtime.
dist/cli/index.jsView on unpkg · L177 185${u.dim}Step 3/4: Checking Vercel Login...${u.reset}`);let t=!!process.env.VERCEL_TOKEN,n=!1;if(t)console.log(`\u2714 ${u.green}VERCEL_TOKEN environment variable detected. Skipping login check.${u.reset}`),n=!0;else try{(0,Vn.execSync)(e?"npx --yes vercel whoami":"vercel whoami",mi),n=!0,console.log(`\u2714 ${u.green}Logged in!${u.reset}`)}catch{n=!1}if(!n){console.log(`\u{1F511} ${u.yellow}Not logged in to Vercel.${u.reset}`),await Ee("\u{1F449} Press [Enter] to login to Vercel... ");let o=["login"],s=e?"npx":"vercel",r=e?["--yes","vercel",...o]:o;if(await ht(s,r)!==0)throw new Error("Vercel ...
186\u2714 ${u.green}Logged in successfully!${u.reset}`)}return t}M();Se();async function Kn(e,t){console.log(`
HighSame File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/cli/index.jsView on unpkg · L170 187${u.dim}Step 4/4: Deploying project to production...${u.reset}`);let n=["--prod","--yes"];t&&n.push("--token",process.env.VERCEL_TOKEN);let o=e?"npx":"vercel",s=e?["--yes","vercel",...n]:n;if(console.
188`),await ht(o,s)!==0)throw new Error("Vercel deployment failed.");console.log(`
189${u.bold}${u.green}\u{1F389} Deployment completed successfully!${u.reset}
190`)}Oe();re();async function lo(){un(O()),console.log(`
191${u.bold}${u.cyan}\u{1F680} Starting CFM Vercel Deployment...${u.reset}
192`),await Bn();let{useNpx:e}=await Hn(),t=await Gn(e);await Kn(e,t)}M();gn();re();var X=x(require("fs")),me=x(require("path"));Fe();function qi(e
193`);let n=vt(t);for(let o of n.warnings)console.log(`${$.yellow}WARN:${$.reset} ${o}`);if(n.errors.length>0){console.log(`${$.red}FAIL:${$.reset} Framework scaffold incomplete (${n.framework}) \u2014 fix all items before authoring components:`);for(let o of n.errors)console.log(` - ${o}`);return console.log(`
194${$.dim}Fix: setup/index.md \xB7 Next: npx cfm-sdk scaffold-check${$.reset}`),1}return n.framework!=="unknown"&&console.log(`${$.green}OK:${$.reset} Framework scaffold verified (${n.framework})`),console.log(`${$.dim}Core deps OK. Survey-type deps print after fill-implementation-plan --from-fetch.${$.reset}`),console.log(`${$.dim}Scaffold complete \u2014 run npx cfm-sdk seed-phase5 next.${$.reset}`),console.log(`
195${$.dim}${mn()}${$.reset}`),console.log(`
196${$.dim}Next: Phase 3\u20134 copy bundle + implementation_plan${$.reset}`),0}var Ot=x(require("fs")),Pt=x(require("path"));M();re();Rt();Se();xe();Oe();ut();var c=u,za=["@tanstack/react-query","@dnd-kit/core"];function Ja(e){let t=Pt.join(e,"survey-ui","verify-agent-build.sh");if(Ot.existsSync(t))return t;let n=Pt.join(__dirname,"..","..","templates","docs","survey-ui","verify-agent-build.sh");return Ot.existsSync(n)?n:null}function Za(e){console.log(`${c.bold}=== CFM SDK \u2014 verify-build --fast (speed tool) ===${c.reset}`),console.log(`${c.dim}Project: ${e}${c.reset}
197`);let t=vt(e);for(let a of t.warnings)console.log(`${c.yellow}WARN:${c.reset} ${a}`);if(!t.ok){console.log(`${c.red}FAIL:${c.reset} Scaffold incomplete:`);for(let a of t.errors)console.log(` - ${a}`);return console.log(`
Long lines were clipped for display.