/** * [WHO]: SessionSettingsAccessors() mixin — AgentSession 的 settings getter/setter 转发面 * [FROM]: Depends on SettingsManager type and a minimal host interface * [TO]: Consumed by AgentSession (core/runtime/agent-session.ts) via mixin composition * [HERE]: core/runtime/session-settings-accessors.ts — settings accessor surface of AgentSession * * 拆分背景:agent-session.ts 曾有 115 个方法,其中 52 个是 settingsManager 的 * 一行转发(display/model/image/behavior settings 的 GUI-facing 访问面)。 * 这些方法不含会话逻辑,抽离后主类瘦身 ~300 行,公共 API 面不变 * (mixin 方法落在原型链上,session.getTheme() 等调用方无感知)。 */ import type { SettingsManager, ThinkingBudgetsSettings } from "../platform/config/settings-manager.js"; /** Minimal host shape required by the mixin. */ export interface SettingsManagerHost { settingsManager: SettingsManager; } type Constructor = abstract new (...args: any[]) => T; /** * Mixin providing the settings getter/setter forwarding surface. * All methods are one-line delegations to `this.settingsManager` — pure * data access, no session logic, no side effects beyond the settings store. */ export declare function SessionSettingsAccessors>(Base: THost): (abstract new (...args: any[]) => { /** Current theme name. */ getTheme(): string | undefined; /** Set theme. Saves to settings. */ setTheme(theme: string): void; /** Whether images are rendered in terminal. */ getShowImages(): boolean; /** Show or hide images in terminal. Saves to settings. */ setShowImages(show: boolean): void; /** Whether token usage stats are shown in footer. */ getShowTokenStats(): boolean; /** Show or hide token usage stats in footer. Saves to settings. */ setShowTokenStats(enabled: boolean): void; /** Whether tool execution trace (including edit diffs) is shown in chat. */ getShowWorkingTrace(): boolean; /** Show or hide tool execution trace (including edit diffs) in chat. Saves to settings. */ setShowWorkingTrace(enabled: boolean): void; /** Whether NanoMem search/recall/alignment traces are shown in chat. */ getShowMemoryTrace(): boolean; /** Show or hide NanoMem traces in chat. Saves to settings. */ setShowMemoryTrace(enabled: boolean): void; /** Whether buddy pet is displayed. */ getBuddyEnabled(): boolean; /** Enable or disable buddy pet. Saves to settings. */ setBuddyEnabled(enabled: boolean): void; /** Buddy species index. */ getBuddySpecies(): number; /** Set buddy species index. Saves to settings. */ setBuddySpecies(species: number): void; /** Whether presence feature is enabled. */ getPresenceEnabled(): boolean; /** Enable or disable presence. Saves to settings. */ setPresenceEnabled(enabled: boolean): void; /** Whether hardware cursor is shown. */ getShowHardwareCursor(): boolean; /** Show or hide hardware cursor. Saves to settings. */ setShowHardwareCursor(enabled: boolean): void; /** Whether empty rows are cleared when content shrinks. */ getClearOnShrink(): boolean; /** Enable or disable clear-on-shrink. Saves to settings. */ setClearOnShrink(enabled: boolean): void; /** Whether startup banner is suppressed. */ getQuietStartup(): boolean; /** Enable or disable quiet startup. Saves to settings. */ setQuietStartup(quiet: boolean): void; /** Whether thinking blocks are hidden in output. */ getHideThinkingBlock(): boolean; /** Show or hide thinking blocks. Saves to settings. */ setHideThinkingBlock(hide: boolean): void; /** Double-escape key action. */ getDoubleEscapeAction(): "fork" | "tree" | "none"; /** Set double-escape key action. Saves to settings. */ setDoubleEscapeAction(action: "fork" | "tree" | "none"): void; /** Editor horizontal padding (0-3). */ getEditorPaddingX(): number; /** Set editor horizontal padding (0-3). Saves to settings. */ setEditorPaddingX(padding: number): void; /** Max visible autocomplete suggestions (3-20). */ getAutocompleteMaxVisible(): number; /** Set max visible autocomplete suggestions (3-20). Saves to settings. */ setAutocompleteMaxVisible(maxVisible: number): void; /** Code block indent string. */ getCodeBlockIndent(): string; /** Default model provider name. */ getDefaultProvider(): string | undefined; /** Set default model provider. Saves to settings. */ setDefaultProvider(provider: string): void; /** Default model ID. */ getDefaultModel(): string | undefined; /** Set default model ID. Saves to settings. */ setDefaultModel(modelId: string): void; /** Set both default provider and model atomically. Saves to settings. */ setDefaultModelAndProvider(provider: string, modelId: string): void; /** Thinking token budgets per level. */ getThinkingBudgets(): ThinkingBudgetsSettings | undefined; /** Enabled model patterns (undefined = all). */ getEnabledModels(): string[] | undefined; /** Set enabled model patterns (undefined = all). Saves to settings. */ setEnabledModels(patterns: string[] | undefined): void; /** Whether images are auto-resized for model compatibility. */ getImageAutoResize(): boolean; /** Enable or disable image auto-resize. Saves to settings. */ setImageAutoResize(enabled: boolean): void; /** Whether all images are blocked from being sent to LLM. */ getBlockImages(): boolean; /** Block or unblock images from being sent to LLM. Saves to settings. */ setBlockImages(blocked: boolean): void; /** Shell executable path. */ getShellPath(): string | undefined; /** Set shell executable path. Saves to settings. */ setShellPath(path: string | undefined): void; /** Shell command prefix (e.g., wrapper). */ getShellCommandPrefix(): string | undefined; /** Set shell command prefix. Saves to settings. */ setShellCommandPrefix(prefix: string | undefined): void; /** Auto-update mode. */ getAutoUpdate(): "always" | "prompt" | "never"; /** Set auto-update mode. Saves to settings. */ setAutoUpdate(mode: "always" | "prompt" | "never"): void; /** Whether skill slash commands are enabled. */ getEnableSkillCommands(): boolean; /** Enable or disable skill slash commands. Saves to settings. */ setEnableSkillCommands(enabled: boolean): void; /** Whether auto-retry is enabled */ get autoRetryEnabled(): boolean; /** Toggle auto-retry setting. */ setAutoRetryEnabled(enabled: boolean): void; settingsManager: SettingsManager; }) & THost; export {};