eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
33 lines (32 loc) • 1.48 kB
TypeScript
import { type Asker } from "../ask.js";
import type { SetupMode, SetupState } from "../state.js";
import type { SetupBox } from "../step.js";
export interface SelectSetupModeOptions {
/** Resolves the mode question; the composed stack decides how. */
asker: Asker;
/**
* Skip the mode question and use this value. Stays a factory option (not a
* `withAnswers` rung) so it short-circuits before any ask, which is what
* lets a headless `--one-shot` run resolve without a terminal.
*/
presetMode?: SetupMode;
/**
* Model baked into a one-shot scaffold instead of {@link DEFAULT_AGENT_MODEL_ID}.
* Threaded from the same `--model` preset the model box consumes, so the
* flag keeps working when the model box is skipped.
*/
presetModel?: string;
}
/** The mode plus the model a one-shot run pins, since the model box is skipped. */
export interface SelectSetupModePayload {
mode: SetupMode;
modelId?: string;
}
/**
* THE SETUP-MODE BOX: decide whether the run is the complete onboarding flow
* or a one-shot scaffold. One-shot pins the default model here because every
* later interview box (including the model picker) is gated off. The question
* is skippable, so a headless stack without a preset resolves to "complete"
* and current headless behavior is unchanged.
*/
export declare function selectSetupMode(options: SelectSetupModeOptions): SetupBox<SetupState, SetupMode, SelectSetupModePayload>;