const showToolCallInProgress = $derived(config().showToolCallInProgress as boolean);
const showThoughtInProgress = $derived(config().showThoughtInProgress as boolean);
+ const renderThinkingAsMarkdown = $derived(config().renderThinkingAsMarkdown as boolean);
const hasReasoningError = $derived(
isLastAssistantMessage ? !!agenticLastError(message.convId) : false
onToggle={() => toggleExpanded(index, section)}
>
<div class="pt-3">
- <div class="text-xs leading-relaxed break-words whitespace-pre-wrap">
- {section.content}
- </div>
+ {#if renderThinkingAsMarkdown}
+ <MarkdownContent content={section.content} attachments={message?.extra} />
+ {:else}
+ <div class="text-xs leading-relaxed break-words whitespace-pre-wrap">
+ {section.content}
+ </div>
+ {/if}
</div>
</CollapsibleContentBlock>
{:else if section.type === AgenticSectionType.REASONING_PENDING}
onToggle={() => toggleExpanded(index, section)}
>
<div class="pt-3">
- <div class="text-xs leading-relaxed break-words whitespace-pre-wrap">
- {section.content}
- </div>
+ {#if renderThinkingAsMarkdown}
+ <MarkdownContent content={section.content} attachments={message?.extra} />
+ {:else}
+ <div class="text-xs leading-relaxed break-words whitespace-pre-wrap">
+ {section.content}
+ </div>
+ {/if}
</div>
</CollapsibleContentBlock>
{/if}
SHOW_MODEL_TAGS: 'showModelTags',
SHOW_BUILD_VERSION: 'showBuildVersion',
SHOW_SYSTEM_MESSAGE: 'showSystemMessage',
+ RENDER_THINKING_AS_MARKDOWN: 'renderThinkingAsMarkdown',
// Sampling
TEMPERATURE: 'temperature',
DYNATEMP_RANGE: 'dynatemp_range',
paramType: SyncableParameterType.BOOLEAN
}
},
+ {
+ key: SETTINGS_KEYS.RENDER_THINKING_AS_MARKDOWN,
+ label: 'Render thinking as Markdown',
+ help: 'Render the reasoning/thinking block content as formatted Markdown instead of plain text.',
+ defaultValue: true,
+ type: SettingsFieldType.CHECKBOX,
+ section: SETTINGS_SECTION_SLUGS.DISPLAY,
+ sync: {
+ serverKey: SETTINGS_KEYS.RENDER_THINKING_AS_MARKDOWN,
+ paramType: SyncableParameterType.BOOLEAN
+ }
+ },
{
key: SETTINGS_KEYS.FULL_HEIGHT_CODE_BLOCKS,
label: 'Use full height code blocks',