/** * Thinking Types * * Defines types for thinking ability management across the application. * Thinking-level labels for transcript hygiene. */ import type { ResponseLanguage } from '../../i18n/response-language.js'; /** * Thinking level for models that support extended thinking. * - off: No thinking * - minimal: Minimal thinking effort * - low: Low thinking effort * - medium: Medium thinking effort * - high: High thinking effort * - xhigh: Extra high thinking (for supported models only) * - adaptive: Automatically adjust based on task complexity */ export type ThinkLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'adaptive'; /** * Reasoning visibility level. * Controls whether the model's reasoning/thinking is shown to the user. * - off: Hide reasoning * - on: Show reasoning after completion * - stream: Stream reasoning in real-time */ export type ReasoningLevel = 'off' | 'on' | 'stream'; /** * Verbose level for agent output. * - off: Minimal output * - on: Normal verbose output * - full: Full verbose output with all details */ export type VerboseLevel = 'off' | 'on' | 'full'; /** * Elevated mode for bash execution permissions. * - off: No elevated permissions * - ask: Ask for confirmation before elevated commands * - full: Allow all elevated commands without confirmation */ export type ElevatedMode = 'off' | 'ask' | 'full'; /** * Session-level configuration for agent behavior. * These settings can be overridden per-session. */ export interface SessionAgentConfig { /** Thinking level for this session */ thinkingLevel?: ThinkLevel; /** Reasoning visibility for this session */ reasoningLevel?: ReasoningLevel; /** Verbose level for this session */ verboseLevel?: VerboseLevel; /** Elevated mode for this session */ elevatedMode?: ElevatedMode; /** Model override for this session */ modelOverride?: string; /** Provider override for this session */ providerOverride?: string; /** Per-session markdown workspace root override (immutable once set) */ workingDirectoryOverride?: string; /** Preferred language for user-visible responses in this session. */ responseLanguage?: ResponseLanguage; } /** * Normalize a raw string to ThinkLevel. * Handles various aliases and formats. */ export declare function normalizeThinkLevel(raw?: string | null): ThinkLevel | undefined; /** * Normalize a raw string to ReasoningLevel. */ export declare function normalizeReasoningLevel(raw?: string | null): ReasoningLevel | undefined; /** * Normalize a raw string to VerboseLevel. */ export declare function normalizeVerboseLevel(raw?: string | null): VerboseLevel | undefined; /** * Normalize a raw string to ElevatedMode. */ export declare function normalizeElevatedMode(raw?: string | null): ElevatedMode | undefined; /** * Get available thinking levels for a provider/model. * Returns ['off', 'on'] for binary providers like z.ai. */ export declare function listThinkingLevels(provider?: string | null, model?: string | null): (ThinkLevel | 'on')[]; /** * Format thinking levels as a comma-separated string for display. */ export declare function formatThinkingLevels(provider?: string | null, model?: string | null): string; /** * Convert ThinkLevel to a numeric value for comparison. * Higher value = more thinking. */ export declare function thinkLevelToNumber(level: ThinkLevel): number;