/** * The questions `vendo init --agent` hands back, as data. * * One personality for init in every mode: it detects, asks, logs in and writes. * Agent mode only changes how the questions TRAVEL — init emits them as JSON, * the coding agent relays the prompts VERBATIM in chat, the answers come back * as flags on a re-run, and that run writes. No new flags exist for any of it: * every option below names one of the six init already validates. * * Only what a PERSON must decide appears here. The zod floor and the theme * slots are mechanical, so they default exactly as `--yes` leaves them and show * up in the diff instead of in someone's chat. * * PURE apart from reading the host's dependencies for auth: every prompt is * decided from the answers already on the command line, so the whole set is * assertable without a run. */ import { type AuthPresetName } from "./init-auth.js"; import type { InitOptions } from "./init.js"; /** One answer, carrying the literal thing the agent does to pick it: a flag on the re-run, or a command to run before it. No select-vs-confirm machinery — yes/no is simply two options. */ export interface InitQuestionOption { label: string; flag?: string; command?: string; note?: string; recommended?: boolean; } export interface InitQuestion { id: string; /** Chat-ready: agents relay it verbatim. */ prompt: string; options: InitQuestionOption[]; } export interface InitQuestions { status: "questions"; detected: { framework: string; auth?: AuthPresetName; }; questions: InitQuestion[]; } /** What is still unanswered on this command line, or null when nothing is — which is the signal to go ahead and write. */ export declare function initQuestions(input: { root: string; options: InitOptions; framework: string; /** A model key is already in hand (env or .env.local), so the models question is settled and disappears on the re-run. */ modelKey: boolean; /** A Vendo Cloud key specifically — it settles sign-in for both environments at once, so it decides whether the MCP arm's question exists at all. */ cloudKey: boolean; /** The port the host's `dev` script names — the dev-URL question's prefill. Passed in rather than read here so the whole set stays assertable. */ devPort: number; /** The host's own agent-loop route (`app/api/chat`), or null — what moves the use-case recommendation. Detected by the caller (framework.ts), so this set stays assertable without a temp directory. */ agentLoopRoute?: string | null; }): Promise;