Lines 203-243javascript
204`),0}var S,_i=f(()=>{"use strict";$();dn();$e();on();ae();Ae();Ve();Ue();S=p});var Ni={};re(Ni,{runVerifyInteractions:()=>zu});function zu(e={}){let t=D(e.projectRoot);console.log(`${Z.bold}=== CFM SDK \u2014 verify-interactions ===${Z.reset}`),console.log(`${Z.dim}Project: ${t}${Z.reset}
205`);let n=Oe(t);if(n.length){console.log(`${Z.red}FAIL:${Z.reset} Interaction / format contract issues:`);for(let s of n)console.log(` ${s}`);return console.log(`
206${Z.dim}Fix: field-binding-map.md \xB7 client-lib-folder.md \xB7 layout-cookbook/mcq.md \xB7 agent-per-type-verification${Z.reset}`),1}return console.log(`${Z.green}OK:${Z.reset} Interaction contracts passed
207`,"utf8"),n}function ep(e={}){let t=D(e.projectRoot),n=qi(t),s=hn(n);return console.log(`${U.green}deploy.target:${U.reset} ${
208${U.red}Core verify not recorded. Run npx cfm-sdk verify-build successfully before set-deploy-target.${U.reset}`),1;let o=Ui(n,t),r=hn(t);try{gs(n)}catch(i){return console.error(`
209${U.red}${X(i)}${U.reset}`),1}if(console.log(`${U.green}OK:${U.reset} Wrote deploy.target=${t} (${r}) \u2192 ${
211`),console.log(`${U.dim}After client pastes key: npx cfm-sdk create-distribution --s3-key=<key>${U.reset}`)}else console.log(`${U.dim}After client confirms deploy yes: npx cfm-sdk deploy${U.reset}`);return 0}var ee,Wn,
213`),1}try{hs(t,r)}catch(w){return console.error(`${pe.red}${X(w)}${pe.reset}`),1}if(!s)throw new Error("Missing OUT_DIR \u2014 set OUT_DIR to the absolute path of out/ or dist/");if(!ke.existsSync(oe.join(s,"index.html")))throw new Error(`Missing ${oe.join(s,"index.html")} \u2014 run build first`);let{survey:i,apiResponse:l}=await ve(t,o),a=i.id,u=l.cfmSurveyDTO?.name?.trim()||a,d=rp(),m=ap(s);console.log(`${pe.cyan}\u2192 Creating distribution${pe.reset} for ${u} (${a}, s3Key: ${r})`),console.log(` uploading ${m.length} files from ${s}\u2026`);let k=await cp(n,o,r,m);await up(s,k.uploads,m),c ...
215`),ys(t,r),0}catch(t){return console.error(`${pe.red}\u274C create-distribution failed: ${X(t)}${pe.reset}`),1}}var ke,oe,pe,Bi,np,Jn,sp,lp,Gi=f(()=>{"use strict";ke=I(require("fs")),oe=I(require("path"
216`);let t=await Fe("Would you like to install/upgrade Node.js v18+ automatically? (y/N): ");t.toLowerCase()==="y"||t.toLowerCase()==="yes"||(console.log(`
217\u274C ${p.red}Aborted. Please manually upgrade Node.js to v18+ and try again.${p.reset}
218`),process.exit(1));let s=process.platform==="win32",o=process.platform==="darwin";s?Pe("winget")?(console.log(`
219\u{1F4E6} ${p.green}winget package manager found! Installing Node.js v18+ in background...${p.reset}`),ie("winget",["upgrade","OpenJS.NodeJS","--silent","--accept-package-agreements","--accept-source-agreements"])?(console.log(`
220\u2714 ${p.green}Node.js installation triggered successfully. Please restart your terminal/command-prompt for changes to take effect.${p.reset}
221`),process.exit(0)):(console.log(`
222\u274C ${p.red}winget update failed. Please update Node.js manually at https://nodejs.org/${p.reset}
223`),process.exit(1))):(console.log(`
224\u274C ${p.red}winget package manager is not installed on this system.${p.reset}`),console.log(`${p.bold}\u{1F449} To proceed, please either:${p.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/
225`),process.exit(1)):o?Pe("brew")?(console.log(`
226\u{1F4E6} ${p.green}Homebrew package manager found! Installing Node.js v18+ in background...${p.reset}`),ie("brew",["install","node"])?console.log(`
227\u2714 ${p.green}Node.js installed successfully via Homebrew.${p.reset}
229\u274C ${p.red}Homebrew installation failed. Please install Node.js manually at https://nodejs.org/${p.reset}
230`),process.exit(1))):(console.log(`
231\u274C ${p.red}Homebrew package manager (brew) is not installed on this system.${p.reset}`),console.log(`${p.bold}\u{1F449} To proceed, please either:${p.reset}`),console.log(" 1. Install Homebrew by running the following command in your terminal:"),console.log(` ${p.cyan}/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"${p.reset}`),console.log(` 2. Or manually download and install Node.js (v18+) from: https://nodejs.org/
232`),process.exit(1)):(console.log(`
233\u274C ${p.red}Please install or update Node.js to v18+ using your system's package manager.${p.reset}
234`),process.exit(1))}else console.log(`\u2714 ${p.green}Node.js version (v${e}) is sufficient.${p.reset}`)}$();Te();async function ts(){console.log(`
235${p.dim}Step 2/4: Checking Vercel CLI...${p.reset}`);let e="vercel",t=!1;if(Pe("vercel"))console.log(`\u2714 ${p.green}Vercel CLI is installed!${p.reset}`);else{console.log(`\u2753 ${p.yellow}Vercel CLI was not found on your system.${p.reset}`);let n=await Fe("\u{1F449} Would you like to install Vercel CLI globally? (Y/n): ");n.toLowerCase()==="y"||n===""?(console.log(`
236\u{1F4E5} ${p.cyan}Installing Vercel CLI globally... (npm install -g vercel)${p.reset}`),ie("npm",["install","-g","vercel"])&&Pe("vercel")?console.log(`\u2714 ${p.green}Vercel CLI installed successfully!${p.reset}`):(console.log(`
237\u26A0\uFE0F ${p.yellow}Global installation failed or permissions restricted.${p.reset}`),console.log(`\u2139 ${p.dim}Falling back: Running Vercel dynamically via npx.${p.reset}`),e="npx --yes vercel",t=!0)):(console.log(`\u2139 ${p.dim}Skipping global installation. Running Vercel dynamically via npx.${p.reset}`),e="npx --yes vercel",t=!0)}return{vercelCmd:e,useNpx:t}}var ns=require("child_process");$();Te();var Zi={stdio:"ignore",shell:process.platform==="win32"?"cmd.exe":"/bin/sh"};async function ss(e){console.log(`
238${p.dim}Step 3/4: Checking Vercel Login...${p.reset}`);let t=!!process.env.VERCEL_TOKEN,n=!1;if(t)console.log(`\u2714 ${p.green}VERCEL_TOKEN environment variable detected. Skipping login check.${p.reset}`),n=!0;else try{(0,ns.execSync)(e?"npx --yes vercel whoami":"vercel whoami",Zi),n=!0,console.log(`\u2714 ${p.green}Logged in!${p.reset}`)}catch{n=!1}if(!n){console.log(`\u{1F511} ${p.yellow}Not logged in to Vercel.${p.reset}`),await Fe("\u{1F449} Press [Enter] to login to Vercel... ");let s=["login"],o=e?"npx":"vercel",r=e?["--yes","vercel",...s]:s;if(await Tt(o,r)!==0)throw new Error("Vercel ...
239\u2714 ${p.green}Logged in successfully!${p.reset}`)}return t}$();Te();async function os(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 · L223 240${p.dim}Step 4/4: Deploying project to production...${p.reset}`);let n=["--prod","--yes"];t&&n.push("--token",process.env.VERCEL_TOKEN);let s=e?"npx":"vercel",o
241`),await Tt(s,o)!==0)throw new Error("Vercel deployment failed.");console.log(`
242${p.bold}${p.green}\u{1F389} Deployment completed successfully!${p.reset}
243`)}Ue();ae();async function Ss(){Sn(D()),console.log(`
Long lines were clipped for display.