diff --git a/src/renderer/components/chat-area.ts b/src/renderer/components/chat-area.ts index 394a783..5466465 100644 --- a/src/renderer/components/chat-area.ts +++ b/src/renderer/components/chat-area.ts @@ -157,6 +157,22 @@ export function appendMessageDOM(msg: ChatMessage, index: number): void { contentHtml = contentHtml.replace('
', ''); } + // v5.1.2 工具卡片移至文字上方(先展示工具执行过程,再展示最终回答) + if (msg.role === 'assistant' && msg.toolCalls && msg.toolCalls.length > 0) { + let toolHtml = '
'; + for (const tc of msg.toolCalls) { + toolHtml += renderToolCallCard(tc); + } + toolHtml += '
'; + // 插入到 msg-content 之前 + const contentIdx = contentHtml.indexOf('
'); + if (contentIdx >= 0) { + contentHtml = contentHtml.slice(0, contentIdx) + toolHtml + contentHtml.slice(contentIdx); + } else { + contentHtml = toolHtml + contentHtml; + } + } + const stats: string[] = []; const statClasses: string[] = []; if (msg.timestamp) { stats.push(formatTime(msg.timestamp)); statClasses.push(''); } @@ -166,14 +182,6 @@ export function appendMessageDOM(msg: ChatMessage, index: number): void { contentHtml += `
${stats.map((s, i) => `${s}`).join(' · ')}
`; } - if (msg.role === 'assistant' && msg.toolCalls && msg.toolCalls.length > 0) { - contentHtml += '
'; - for (const tc of msg.toolCalls) { - contentHtml += renderToolCallCard(tc); - } - contentHtml += '
'; - } - div.innerHTML = `
${avatar}
diff --git a/src/renderer/styles/style.css b/src/renderer/styles/style.css index 60e014f..8fe4d6a 100644 --- a/src/renderer/styles/style.css +++ b/src/renderer/styles/style.css @@ -833,6 +833,11 @@ html, body { box-shadow: var(--shadow-card); } +.tool-calls-container + .msg-stats + .msg-content, +.tool-calls-container + .msg-content { + margin-top: 4px; +} + .msg-content { font-size: 14px; line-height: 1.7; @@ -1976,7 +1981,9 @@ html, body { ═══════════════════════════════════════════════════════════════ */ .tool-calls-container { - margin-top: 10px; + margin-bottom: 12px; + padding-bottom: 12px; + border-bottom: 1px dashed var(--border-subtle); } .tool-call-card {