UNPKG

buroventures-harald-code

Version:

Harald Code - AI-powered coding assistant CLI

132 lines (131 loc) 4.54 kB
/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { MCPServerConfig, BugCommandSettings, TelemetrySettings, AuthType } from 'buroventures-harald-code-core'; import { CustomTheme } from '../ui/themes/theme.js'; export declare const SETTINGS_DIRECTORY_NAME = ".qwen"; export declare const USER_SETTINGS_DIR: string; export declare const USER_SETTINGS_PATH: string; export declare const DEFAULT_EXCLUDED_ENV_VARS: string[]; export declare function getSystemSettingsPath(): string; export declare function getWorkspaceSettingsPath(workspaceDir: string): string; export type DnsResolutionOrder = 'ipv4first' | 'verbatim'; export declare enum SettingScope { User = "User", Workspace = "Workspace", System = "System" } export interface CheckpointingSettings { enabled?: boolean; } export interface SummarizeToolOutputSettings { tokenBudget?: number; } export interface AccessibilitySettings { disableLoadingPhrases?: boolean; } export interface ApiKeyRotationSettings { /** List of API keys to rotate between */ apiKeys?: string[]; /** Current active key index */ currentKeyIndex?: number; /** Whether to enable automatic rotation on rate limits */ autoRotateOnRateLimit?: boolean; /** Reset rotation daily (to handle daily limits) */ resetRotationDaily?: boolean; /** Track usage per key per day */ dailyUsageTracking?: Record<string, { date: string; requests: number; }>; } export interface Settings { theme?: string; customThemes?: Record<string, CustomTheme>; selectedAuthType?: AuthType; useExternalAuth?: boolean; sandbox?: boolean | string; coreTools?: string[]; excludeTools?: string[]; toolDiscoveryCommand?: string; toolCallCommand?: string; mcpServerCommand?: string; mcpServers?: Record<string, MCPServerConfig>; allowMCPServers?: string[]; excludeMCPServers?: string[]; showMemoryUsage?: boolean; contextFileName?: string | string[]; accessibility?: AccessibilitySettings; telemetry?: TelemetrySettings; usageStatisticsEnabled?: boolean; preferredEditor?: string; bugCommand?: BugCommandSettings; checkpointing?: CheckpointingSettings; autoConfigureMaxOldSpaceSize?: boolean; /** The model name to use (e.g 'gemini-9.0-pro') */ model?: string; enableOpenAILogging?: boolean; /** API key rotation configuration */ apiKeyRotation?: ApiKeyRotationSettings; fileFiltering?: { respectGitIgnore?: boolean; respectGeminiIgnore?: boolean; enableRecursiveFileSearch?: boolean; }; hideWindowTitle?: boolean; hideTips?: boolean; hideBanner?: boolean; maxSessionTurns?: number; sessionTokenLimit?: number; maxFolderItems?: number; summarizeToolOutput?: Record<string, SummarizeToolOutputSettings>; vimMode?: boolean; memoryImportFormat?: 'tree' | 'flat'; ideModeFeature?: boolean; ideMode?: boolean; disableAutoUpdate?: boolean; disableUpdateNag?: boolean; memoryDiscoveryMaxDirs?: number; excludedProjectEnvVars?: string[]; dnsResolutionOrder?: DnsResolutionOrder; sampling_params?: Record<string, unknown>; systemPromptMappings?: Array<{ baseUrls: string[]; modelNames: string[]; template: string; }>; contentGenerator?: { timeout?: number; maxRetries?: number; }; } export interface SettingsError { message: string; path: string; } export interface SettingsFile { settings: Settings; path: string; } export declare class LoadedSettings { constructor(system: SettingsFile, user: SettingsFile, workspace: SettingsFile, errors: SettingsError[]); readonly system: SettingsFile; readonly user: SettingsFile; readonly workspace: SettingsFile; readonly errors: SettingsError[]; private _merged; get merged(): Settings; private computeMergedSettings; forScope(scope: SettingScope): SettingsFile; setValue<K extends keyof Settings>(scope: SettingScope, key: K, value: Settings[K]): void; } export declare function setUpCloudShellEnvironment(envFilePath: string | null): void; export declare function loadEnvironment(settings?: Settings): void; /** * Loads settings from user and workspace directories. * Project settings override user settings. */ export declare function loadSettings(workspaceDir: string): LoadedSettings; export declare function saveSettings(settingsFile: SettingsFile): void;