Reasoning Level in Chat Input Settings
Added a "Reasoning Level" selector to the AI settings popover in the chat input, defaulting to Medium and only visible for models that support it.
Changes
Frontend — chat-ui package
packages/chat-ui/src/StreamingChatPanel.tsx:- Added
ReasoningLeveltype ('off' | 'low' | 'medium' | 'high' | 'xhigh') - Added
supportsReasoning?: booleantoChatModelinterface - Added
reasoningLevel?: ReasoningLeveltoAICategoryConfiginterface - Added reasoning level
<select>in the AI settings popover, between the "AI Models" header and the model pickers - Only renders when the current conversation model's
supportsReasoningistrue
- Added
Frontend — BotDetailPage
services/frontend/src/routes/bots/BotDetailPage.tsx:- Added
supportsReasoning: true/falseto each entry inQUANTAGO_MODELS - Added
reasoningLevel: 'medium'toQUANTAGO_AI_CATEGORY_MODELS.defaults
- Added
Frontend — API client
services/frontend/src/lib/api-client/index.ts:- Added
reasoningLevel?tostreamBotChatMessageoptsaiConfigtype
- Added
Backend — AI types
services/backend/src/lib/ai/types.ts:- Added
ReasoningLeveltype - Added
reasoningLevel?: ReasoningLeveltoAICategoryConfig - Default
reasoningLevel: 'medium'inDEFAULT_AI_CATEGORY_CONFIGandresolveAICategoryConfig
- Added
Backend — Chat handler
services/backend/src/routes/bots/bots-chat-handlers.ts:- Added
reasoningLevel?toDurableBotChatRequest['aiConfig']and HTTP endpoint body type - Updated all
createAIAdaptercall sites to passctx.aiConfig?.reasoningLevel
- Added
Backend — Adapter factory
services/backend/src/lib/ai/providers.ts:- Added
reasoningLevel?: ReasoningLevelparameter tocreateAIAdapter - Passes reasoning effort to
CodexAdapter(mapped fromReasoningLeveltoReasoningEffort, skipping'off')
- Added
Models with reasoning support
| Model | Supports Reasoning |
|---|---|
| DeepSeek V4 Flash | Yes |
| DeepSeek V4 Pro | Yes |
| GPT Codex 5.3 | Yes |
| Claude Sonnet 4.6 | Yes |
| Claude Haiku 4.5 | No |
| GPT-5.4 mini | No |
| Claude Opus 4.7 | Yes |
| GPT-5.5 | Yes |