import type { AgentInfoResult } from "#client/index.js"; /** One boot-time setup problem the TUI can point at a fixing command. */ export interface SetupIssue { /** Short category label, e.g. "AI Gateway credentials". */ label: string; /** The slash command that fixes it, e.g. "/model". */ command: string; } /** What a boot detection may inspect. */ export interface BootDetectionContext { /** The local project the in-process dev server is running. */ appRoot: string; /** `eve dev` loads the project env files before the TUI boots. */ env: Record; /** Best-effort agent truth from the header fetch; undefined when unavailable. */ info?: AgentInfoResult; } /** * One installation-state check run at TUI boot, before the user hits the * failure mid-conversation. Detections must stay cheap and local (env reads, * a single fs stat) — they run between the header and the first prompt. */ export interface BootDetection { id: string; detect(context: BootDetectionContext): SetupIssue[] | Promise; } /** The built-in boot detections, run in order. */ export declare const BOOT_DETECTIONS: readonly BootDetection[]; /** * The logged-out hint. Deliberately not a {@link BootDetection}: confirming * Vercel login is a `vercel whoami` subprocess, too costly for the cheap, * local detections that run between the header and the first prompt. The * runner probes it off the critical path and renders this issue only when the * probe resolves logged-out. */ export declare const LOGIN_SETUP_ISSUE: SetupIssue; /** * The CLI-missing hint, surfaced by the same off-critical-path probe as * {@link LOGIN_SETUP_ISSUE}. When the `vercel` binary is absent the probe * reports this instead of the login hint, so the diagnostic points at its fix * command (`/vc`) rather than a logged-out state the probe can't determine. */ export declare const CLI_MISSING_SETUP_ISSUE: SetupIssue; /** * Runs the boot detections and aggregates their issues. Each detection is * individually guarded: one that throws contributes nothing and never blocks * the prompt. */ export declare function detectSetupIssues(context: BootDetectionContext, detections?: readonly BootDetection[]): Promise; /** Places the auth issue before boot-time setup issues. */ export declare function orderedSetupIssues(bootIssues: readonly SetupIssue[], authIssue: SetupIssue | undefined): SetupIssue[]; /** * The attention line's body, mirroring Claude Code's * `1 setup issue: MCP · /doctor` shape; the renderer prefixes the warning * glyph and paints the command blue. */ export declare function formatSetupIssuesLine(issues: readonly SetupIssue[]): string;