eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.81 kB
JavaScript
import{defineSetupIntegration}from"../types.js";import{reportOverwrittenFiles}from"../shared/scaffold.js";import{ensureChannel}from"#setup/scaffold/index.js";import{formatNodeEngineOverrideWarning}from"#setup/node-engine.js";import{detectPackageManager}from"#setup/package-manager.js";function reportCompetingNextConfigFiles(e,t){for(let n of t??[])e.warning(`Found competing Next.js config at ${n}; merge any needed settings into next.config.ts and remove it before starting the preview, or Next.js may ignore the generated eve rewrite.`)}const defaultDeps={detectPackageManager,ensureChannel};async function prepareWebSetup(e,t=defaultDeps){return{packageManager:(await t.detectPackageManager(e.appRoot)).kind,configureVercelServices:e.environment.vercel.kind===`available`}}async function applyWebSetup(e,t,n=defaultDeps){t.presenter.log.message(`Scaffolding Web Chat channel files...`);let r={projectRoot:t.appRoot,kind:`web`,packageManager:e.packageManager,configureVercelServices:e.configureVercelServices,force:t.force,skipDependencyMutation:!0},i=await n.ensureChannel(r);return reportOverwrittenFiles(t.presenter.log,i.filesOverwritten),i.kind===`web`&&i.action!==`skipped`&&i.nodeEngineOverride!==void 0&&t.presenter.log.warning(formatNodeEngineOverrideWarning(i.nodeEngineOverride)),reportCompetingNextConfigFiles(t.presenter.log,`competingNextConfigFiles`in i?i.competingNextConfigFiles:void 0),i.action===`skipped`?(t.presenter.log.info(`Next.js project detected. Skipping Web Chat scaffolding.`),{facts:[]}):(t.presenter.log.success(`Scaffolded channel: web`),{facts:[],deploymentRequired:!0})}const WEB_SETUP=defineSetupIntegration({kind:`web`,label:`Web Chat`,hint:`Browser-based chat interface`,prepare:prepareWebSetup,apply:applyWebSetup});export{WEB_SETUP,applyWebSetup,prepareWebSetup};