eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
80 lines (79 loc) • 2.96 kB
TypeScript
import type { RunDevelopmentTuiInput } from "#cli/dev/tui/tui.js";
import type { DevelopmentServerHandle, DevelopmentServerOptions, ProductionServerHandle } from "#internal/nitro/host/types.js";
import type { AssistantResponseStatsMode, LogDisplayMode, TerminalPartDisplayMode, TuiDisplayOptions } from "#cli/dev/tui/types.js";
interface CliLogger {
error(message: string): void;
log(message: string): void;
}
interface DevelopmentCliOptions {
assistantResponseStats?: AssistantResponseStatsMode;
connectionAuth?: TerminalPartDisplayMode;
contextSize?: number;
host?: string;
input?: string;
logs?: LogDisplayMode;
name?: string;
port?: number;
reasoning?: TerminalPartDisplayMode;
subagents?: TerminalPartDisplayMode;
tools?: TerminalPartDisplayMode;
ui?: boolean;
url?: string;
}
interface CliRuntimeDependencies {
isCodingAgentLaunch(): Promise<boolean>;
buildHost(appRoot: string): Promise<string>;
printApplicationInfo(logger: CliLogger, appRoot: string, options?: {
json?: boolean;
}): Promise<void>;
runDevelopmentTui(input: RunDevelopmentTuiInput): Promise<void>;
runEvalCommand(evalIds: readonly string[], options: EvalCliOptions, logger: CliLogger): Promise<void>;
startHost(appRoot: string, options?: DevelopmentServerOptions): Promise<DevelopmentServerHandle>;
startProductionHost(appRoot: string, options?: {
host?: string;
port?: number;
}): Promise<ProductionServerHandle>;
}
type CliRuntimeOverrides = Partial<CliRuntimeDependencies>;
interface EvalCliOptions {
json?: boolean;
junit?: string;
list?: boolean;
maxConcurrency?: string;
skipReport?: boolean;
strict?: boolean;
tag?: string[];
timeout?: string;
url?: string;
verbose?: boolean;
}
/**
* The interactive UI `eve dev` runs against a server.
*
* - `tui` — the default terminal UI.
* - `headless` — no UI: just keep the server running (`--no-ui`, or a
* non-interactive terminal).
*
* Exported for unit coverage of the flag-routing contract.
*/
export type DevUiMode = "tui" | "headless";
/**
* Resolves which UI `eve dev` should run from the parsed flags and whether
* the terminal is interactive. `--no-ui` and non-TTY terminals force
* `headless`; otherwise the terminal UI runs.
*/
export declare function resolveDevUiMode(input: {
options: Pick<DevelopmentCliOptions, "ui">;
interactive: boolean;
}): DevUiMode;
/**
* Builds the terminal-UI display options for `eve dev`. Tools default to
* `auto-collapsed`, reasoning to `full`, and stderr logs are visible so
* long-running local sandbox work can report progress.
*/
export declare function resolveTuiDisplayOptions(options: DevelopmentCliOptions): TuiDisplayOptions;
/**
* Runs the eve CLI entrypoint.
*/
export declare function runCli(argv?: string[], logger?: CliLogger, runtime?: CliRuntimeOverrides): Promise<void>;
export {};