|
628 | 628 | return false; |
629 | 629 | } |
630 | 630 |
|
631 | | - function addBubble(content, role, meta, shouldConnectToPrev = false) { |
| 631 | + function addBubble(content, role, meta, shouldConnectToPrev = false, copySource = "") { |
632 | 632 |
|
633 | 633 | const bubble = document.createElement("div"); |
634 | 634 | bubble.className = "bubble " + role; |
|
699 | 699 | `; |
700 | 700 | copyBtn.addEventListener("click", (e) => { |
701 | 701 | e.stopPropagation(); |
702 | | - // 提取纯文本内容 |
703 | | - const textContent = contentDiv.textContent || contentDiv.innerText || ""; |
| 702 | + const textContent = |
| 703 | + typeof copySource === "string" && copySource.length > 0 |
| 704 | + ? copySource |
| 705 | + : contentDiv.textContent || contentDiv.innerText || ""; |
704 | 706 | vscode.postMessage({ |
705 | 707 | type: "copyText", |
706 | 708 | text: textContent |
|
1804 | 1806 | } else if (msg.role === "user") { |
1805 | 1807 | addBubble(msg.content, "user", msg.meta, false); |
1806 | 1808 | } else if (msg.role === "assistant") { |
1807 | | - addBubble(msg.html || msg.content, "assistant", msg.meta, shouldConnect); |
| 1809 | + addBubble(msg.html || msg.content, "assistant", msg.meta, shouldConnect, msg.content || ""); |
1808 | 1810 | } else if (msg.role === "tool") { |
1809 | 1811 | addBubble(msg.content, "tool", msg.meta, shouldConnect); |
1810 | 1812 | } |
|
1959 | 1961 | } else if (message.type === "assistant") { |
1960 | 1962 | // 接收助手回复 |
1961 | 1963 | const shouldConnect = lastMessageRole !== null && lastMessageRole !== "user"; |
1962 | | - addBubble(message.html || "", "assistant", message.meta, shouldConnect); |
| 1964 | + addBubble(message.html || message.content || "", "assistant", message.meta, shouldConnect, message.content || ""); |
1963 | 1965 | } else if (message.type === "loading") { |
1964 | 1966 | // 加载状态 |
1965 | 1967 | const newStatus = message.value ? "processing" : currentSessionStatus; |
|
0 commit comments