import type { ChatProviderId } from "../providers/registry.js"; import type { GatewayDaemonRuntime } from "./daemon-runtime.js"; export type OnboardMode = "local" | "remote"; export type AuthChoice = // Legacy alias for `setup-token` (kept for backwards CLI compatibility). | "oauth" | "setup-token" | "claude-cli" | "token" | "openai-codex" | "openai-api-key" | "openrouter-api-key" | "codex-cli" | "antigravity" | "apiKey" | "gemini-api-key" | "zai-api-key" | "minimax-cloud" | "minimax" | "minimax-api" | "opencode-zen" | "skip"; export type GatewayAuthChoice = "off" | "token" | "password"; export type ResetScope = "config" | "config+creds+sessions" | "full"; export type GatewayBind = "loopback" | "lan" | "tailnet" | "auto"; export type TailscaleMode = "off" | "serve" | "funnel"; export type NodeManagerChoice = "npm" | "pnpm" | "bun"; export type ProviderChoice = ChatProviderId; export type OnboardOptions = { mode?: OnboardMode; flow?: "quickstart" | "advanced"; workspace?: string; nonInteractive?: boolean; authChoice?: AuthChoice; /** Used when `authChoice=token` in non-interactive mode. */ tokenProvider?: string; /** Used when `authChoice=token` in non-interactive mode. */ token?: string; /** Used when `authChoice=token` in non-interactive mode. */ tokenProfileId?: string; /** Used when `authChoice=token` in non-interactive mode. */ tokenExpiresIn?: string; anthropicApiKey?: string; openaiApiKey?: string; openrouterApiKey?: string; geminiApiKey?: string; zaiApiKey?: string; minimaxApiKey?: string; opencodeZenApiKey?: string; gatewayPort?: number; gatewayBind?: GatewayBind; gatewayAuth?: GatewayAuthChoice; gatewayToken?: string; gatewayPassword?: string; tailscale?: TailscaleMode; tailscaleResetOnExit?: boolean; installDaemon?: boolean; daemonRuntime?: GatewayDaemonRuntime; skipProviders?: boolean; skipSkills?: boolean; skipHealth?: boolean; skipUi?: boolean; nodeManager?: NodeManagerChoice; remoteUrl?: string; remoteToken?: string; json?: boolean; };