/** * [WHO]: Provides THINKING_LEVELS, THINKING_LEVELS_WITH_XHIGH, modelSupportsThinking, * modelSupportsXhigh, availableThinkingLevels, clampThinkingLevel, nextThinkingLevel * [FROM]: Depends on @catui/ai (supportsXhigh, Model) and @catui/agent-core (ThinkingLevel) * [TO]: Consumed by core/runtime/model-controller.ts and core/runtime/agent-session.ts; reusable by any caller that maps a model to * its thinking-level vocabulary (e.g. rpc/print mode) * [HERE]: core/runtime/agent-session.ts split (P4.2) — pure thinking-level logic, no session state * * Extracted from AgentSession: the stateless decision logic for which thinking levels a model * supports, clamping a requested level into the supported set, and cycling. AgentSession's * setThinkingLevel/cycleThinkingLevel/getAvailableThinkingLevels/supportsThinking methods * delegate here; the side-effects (agent.setThinkingLevel, persistence) stay in the session. */ import type { Model } from "@catui/ai/types"; import type { ThinkingLevel } from "@catui/agent-core"; export declare const THINKING_LEVELS: ThinkingLevel[]; /** Thinking levels including xhigh (for supported models). */ export declare const THINKING_LEVELS_WITH_XHIGH: ThinkingLevel[]; /** Whether a model supports thinking/reasoning at all. */ export declare function modelSupportsThinking(model: Model | undefined): boolean; /** Whether a model supports the xhigh thinking level. */ export declare function modelSupportsXhigh(model: Model | undefined): boolean; /** * Thinking levels available for a model. The provider clamps further to what the * specific model supports internally. */ export declare function availableThinkingLevels(model: Model | undefined): ThinkingLevel[]; /** Clamp a requested level into the available set (prefer higher, then lower, then first). */ export declare function clampThinkingLevel(level: ThinkingLevel, availableLevels: ThinkingLevel[]): ThinkingLevel; /** Next level when cycling; undefined if the model does not support thinking. */ export declare function nextThinkingLevel(current: ThinkingLevel, model: Model | undefined): ThinkingLevel | undefined;