eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
51 lines (50 loc) • 1.61 kB
TypeScript
import { type ReasoningLevel } from "#setup/boxes/model-capabilities.js";
import { type SelectState } from "#setup/cli/select-state.js";
import type { ModelSettingsRequest, ModelSettingsResult } from "#setup/flows/model.js";
import type { Theme } from "./theme.js";
type ModelPickerStep = "model" | "speed" | "reasoning";
interface ModelPickerDraft {
model: string | null;
speed: "standard" | "priority";
reasoning: "default" | ReasoningLevel;
}
interface ModelPickerPage {
step: ModelPickerStep;
select: SelectState;
draft: ModelPickerDraft;
}
export interface ModelPickerState extends ModelPickerPage {
history: readonly Pick<ModelPickerPage, "step" | "select">[];
}
export type ModelPickerEvent = {
type: "up";
} | {
type: "down";
} | {
type: "back";
} | {
type: "cancel";
} | {
type: "submit";
} | {
type: "backspace";
} | {
type: "delete-word-backward";
} | {
type: "char";
char: string;
};
export type ModelPickerTransition = {
kind: "render";
state: ModelPickerState;
} | {
kind: "cancel";
} | {
kind: "settle";
result: ModelSettingsResult;
};
export declare function initialModelPickerState(request: ModelSettingsRequest): ModelPickerState;
export declare function transitionModelPicker(state: ModelPickerState, event: ModelPickerEvent, request: ModelSettingsRequest): ModelPickerTransition;
export declare function modelPickerTitle(state: ModelPickerState): string;
export declare function renderModelPicker(request: ModelSettingsRequest, state: ModelPickerState, theme: Theme, width: number): string[];
export {};