MCPcopy Create free account
hub / github.com/CodeClash-ai/CodeClash / createComplexContentHTML

Function createComplexContentHTML

codeclash/viewer/static/js/trajectory.js:239–272  ·  view source on GitHub ↗
(contentParts)

Source from the content-addressed store, hash-verified

237}
238
239function createComplexContentHTML(contentParts) {
240 let html = '<div class="message-content-full">';
241
242 contentParts.forEach((part) => {
243 if (part.type === "text") {
244 const lines = part.text.split("\n");
245 if (lines.length <= 5) {
246 html += `<div class="message-text"><pre>${escapeHtml(
247 part.text,
248 )}</pre></div>`;
249 } else {
250 const preview = lines.slice(0, 5).join("\n");
251 const moreLines = lines.length - 5;
252 html += `
253 <div class="message-preview-short clickable-message" title="Click to expand (${moreLines} more lines)">
254 <div class="message-text"><pre>${escapeHtml(preview)}</pre></div>
255 <div class="expand-indicator">▼ ${moreLines} more lines</div>
256 </div>
257 <div class="message-content-expanded" style="display: none;" title="Content expanded - click collapse button below to hide">
258 <div class="message-text"><pre>${escapeHtml(part.text)}</pre></div>
259 <div class="collapse-indicator clickable-message" title="Click to collapse">▲ Click to collapse</div>
260 </div>
261 `;
262 }
263 } else {
264 html += `<div class="message-part"><strong>${
265 part.type.charAt(0).toUpperCase() + part.type.slice(1)
266 }:</strong><pre>${JSON.stringify(part, null, 2)}</pre></div>`;
267 }
268 });
269
270 html += "</div>";
271 return html;
272}
273
274function createToolCallContentHTML(message) {
275 // Render a mini-swe-agent v2 tool-call assistant message: the reasoning text (if any)

Callers 1

createMessageElementFunction · 0.85

Calls 1

escapeHtmlFunction · 0.70

Tested by

no test coverage detected