UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 2.69 kB
import{serializeHeadlessSetupEvent}from"./setup-headless.js";import{createPrompter}from"#setup/prompter.js";import{ensureVercelProject}from"#setup/flows/ensure-vercel-project.js";import{createHeadlessPrompter}from"#setup/headless.js";import{SetupPrerequisiteRequired}from"#setup/integrations/shared/prerequisite.js";import{createRegistrySetupClient}from"#setup/registry-setup-client.js";import{InteractionRequired,InvalidAnswerError,headlessAsker,interactiveAsker,withAnswers,withPolicy}from"#setup/ask.js";import{runIntegrationSetup}from"#setup/integrations/runner.js";import{setupQuestionToWire}from"#setup/setup-question-wire.js";const defaultIntegrationSetupDependencies={};async function runIntegrationSetupCommand(e,t,n,r={},i=defaultIntegrationSetupDependencies){let a=createRegistrySetupClient({process:i.setupProcess,signal:r.signal});try{let o=r.nonInteractive===!0,s=a?.prompter??i.createPrompter?.()??(o?createHeadlessPrompter(()=>{}):createPrompter()),c=o?headlessAsker():interactiveAsker(s),l=r.yes?withPolicy(`assume`)(c):c,u=withAnswers(r.answers??{})(l),d=await runIntegrationSetup(n,{appRoot:t,prompter:s,asker:u,force:r.force,resolveVercelProject:o?void 0:()=>ensureVercelProject({appRoot:t,prompter:s,signal:a?.signal??r.signal}),signal:a?.signal??r.signal,beginExternalAction:o?t=>{let n=`external-action-${crypto.randomUUID()}`;return e.log(serializeHeadlessSetupEvent({version:1,type:`external_action`,id:n,blocking:!0,...t})),{complete(){e.log(serializeHeadlessSetupEvent({version:1,type:`external_action_resolved`,id:n}))}}}:void 0},i.runnerDeps);if(d.kind===`cancelled`){a?.cancel(),process.env.EVE_SETUP===`1`?process.exitCode=130:o&&e.error(serializeHeadlessSetupEvent({version:1,type:`cancelled`,item:n}));return}s.outro(`Integration set up.`),a?.complete(d.completion),o&&a===void 0&&e.log(serializeHeadlessSetupEvent({version:1,type:`completed`,item:n}))}catch(t){if(a?.fail(t),a!==void 0)return;r.nonInteractive&&t instanceof InteractionRequired?(e.error(serializeHeadlessSetupEvent({version:1,type:`blocked`,status:`input_required`,question:setupQuestionToWire(t.question)})),process.exitCode=2):r.nonInteractive&&t instanceof InvalidAnswerError?(e.error(serializeHeadlessSetupEvent({version:1,type:`blocked`,status:`input_required`,question:setupQuestionToWire(t.question),issue:{code:`invalid_answer`,message:t.message}})),process.exitCode=2):r.nonInteractive&&t instanceof SetupPrerequisiteRequired?(e.error(serializeHeadlessSetupEvent({version:1,type:`blocked`,status:`prerequisite_required`,prerequisite:t.prerequisite})),process.exitCode=2):(e.error(t instanceof Error?t.message:String(t)),process.exitCode=1)}}export{runIntegrationSetupCommand};