File size: 2,279 Bytes
1f21206 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | // Source: src/server/api/models.ts, src/server/api/settings.ts
export type PermissionMode = 'default' | 'acceptEdits' | 'plan' | 'bypassPermissions' | 'dontAsk'
export type EffortLevel = 'low' | 'medium' | 'high' | 'max'
export const THEME_MODES = ['white', 'light', 'dark'] as const
export type ThemeMode = (typeof THEME_MODES)[number]
export function isThemeMode(value: unknown): value is ThemeMode {
return typeof value === 'string' && (THEME_MODES as readonly string[]).includes(value)
}
export type WebSearchMode = 'auto' | 'anthropic' | 'tavily' | 'brave' | 'disabled'
export type WebSearchSettings = {
mode?: WebSearchMode
tavilyApiKey?: string
braveApiKey?: string
}
export type UpdateProxyMode = 'system' | 'manual'
export type UpdateProxySettings = {
mode: UpdateProxyMode
url: string
}
export type NetworkProxyMode = 'system' | 'manual'
export type NetworkProxySettings = {
mode: NetworkProxyMode
url: string
}
export type NetworkSettings = {
aiRequestTimeoutMs: number
proxy: NetworkProxySettings
}
export type H5AccessSettings = {
enabled: boolean
tokenPreview: string | null
allowedOrigins: string[]
publicBaseUrl: string | null
}
export type DesktopTerminalStartupShell =
| 'system'
| 'pwsh'
| 'powershell'
| 'cmd'
| 'custom'
export type DesktopTerminalSettings = {
startupShell: DesktopTerminalStartupShell
customShellPath: string
}
export type ModelInfo = {
id: string
name: string
description: string
context: string
}
export type UserSettings = {
model?: string
modelContext?: string
effort?: EffortLevel
alwaysThinkingEnabled?: boolean
permissionMode?: PermissionMode
theme?: ThemeMode
skipWebFetchPreflight?: boolean
desktopNotificationsEnabled?: boolean
webSearch?: WebSearchSettings
updateProxy?: Partial<UpdateProxySettings>
network?: {
aiRequestTimeoutMs?: number
proxy?: Partial<NetworkProxySettings>
}
language?: string
desktopTerminal?: Partial<DesktopTerminalSettings>
[key: string]: unknown
}
export type AppMode = 'default' | 'portable'
export type AppModeConfig = {
mode: AppMode
portableDir: string | null
defaultPortableDir: string | null
activeConfigDir?: string | null
configDirSource?: 'system' | 'environment' | 'portable'
}
|