in gemini/mcp/adk_multiagent_mcp_app/static/websocketApp.js [92:142]
function addMessageToUI(messageText, senderType) {
if (!messagesDiv) {
console.error("Cannot add message: messagesDiv not found.");
return;
}
const wrapper = document.createElement("div");
wrapper.classList.add("message-wrapper", senderType); // 'user' or 'server'
const iconSpan = document.createElement("span");
iconSpan.classList.add("message-icon");
const bubbleP = document.createElement("p");
bubbleP.classList.add("message-bubble");
if (senderType === "user") {
iconSpan.classList.add("user-icon");
iconSpan.textContent = "👤";
bubbleP.classList.add("user-message");
bubbleP.textContent = messageText; // Display user messages as plain text
} else {
// Server message
iconSpan.classList.add("robot-icon");
const robotImg = document.createElement("img");
robotImg.src = ROBOT_ICON_PATH;
robotImg.alt = "Agent icon";
iconSpan.appendChild(robotImg);
bubbleP.classList.add("server-message-block");
// Attempt to render server messages as Markdown
try {
if (typeof marked !== "undefined") {
bubbleP.innerHTML = marked.parse(messageText); // Use marked library
} else {
console.warn(
"Marked library not loaded, displaying raw server message.",
);
bubbleP.textContent = messageText; // Fallback
}
} catch (e) {
console.error("Error parsing server Markdown:", e);
bubbleP.textContent = messageText; // Fallback on error
addStatusMessage(`Markdown parsing error: ${e.message}`, "error-text");
}
}
wrapper.appendChild(iconSpan);
wrapper.appendChild(bubbleP);
messagesDiv.appendChild(wrapper);
messagesDiv.scrollTop = messagesDiv.scrollHeight; // Scroll down
}