MCPcopy Create free account
hub / github.com/MiroMindAI/MiroThinker / createStepHTML

Function createStepHTML

apps/visualize-trace/static/js/script.js:622–690  ·  view source on GitHub ↗
(step, index)

Source from the content-addressed store, hash-verified

620}
621
622function createStepHTML(step, index) {
623 const roleClass = step.role === 'user' ? 'user-message' :
624 step.role === 'tool' ? 'tool-message' :
625 step.role === 'system' ? 'system-message' :
626 'assistant-message';
627 const agentClass = step.agent.includes('browser') ? 'browser-agent' : '';
628
629 // 渲染内容
630 const renderedPreview = renderContent(step.content_preview);
631 const renderedFullContent = renderContent(step.full_content);
632
633 return `
634 <div class="execution-step fade-in" data-step-id="${step.step_id}" data-agent="${step.agent}" id="step-${index}">
635 <div class="step-header ${roleClass} ${agentClass}" data-toggle="collapse" data-target="#step-content-${index}">
636 <div class="d-flex justify-content-between align-items-center">
637 <div>
638 <span class="badge badge-role badge-${step.role}">${step.role}</span>
639 <span class="badge badge-browser ms-2">${step.agent}</span>
640 ${step.tool_calls.length > 0 ? `<span class="badge bg-warning text-dark ms-2">${step.tool_calls.length} 工具调用</span>` : ''}
641 ${step.browser_session ? `<span class="badge bg-success ms-2">Browser会话</span>` : ''}
642 </div>
643 <div class="d-flex align-items-center">
644 <span class="timestamp me-2">${formatTimestamp(step.timestamp)}</span>
645 <span class="step-toggle">
646 <i class="fas fa-chevron-down"></i>
647 </span>
648 </div>
649 </div>
650 <div class="content-preview mt-2">
651 <div class="preview-text">
652 ${renderedPreview}
653 </div>
654 </div>
655 </div>
656
657 <div class="step-content collapse" id="step-content-${index}">
658 <div class="mb-3">
659 <h6>完整内容:</h6>
660 <div class="rendered-content">${renderedFullContent}</div>
661 </div>
662
663 ${step.tool_calls.length > 0 ? `
664 <div class="mb-3">
665 <h6>工具调用:</h6>
666 ${step.tool_calls.map(tool => createToolCallHTML(tool)).join('')}
667 </div>
668 ` : ''}
669
670 ${step.browser_flow && step.browser_flow.length > 0 ? `
671 <div class="mb-3">
672 <h6>Browser会话流程:</h6>
673 <div class="browser-session">
674 <div class="browser-session-header">
675 <i class="fas fa-globe"></i> ${step.browser_session} (${step.browser_flow.length} 步骤)
676 </div>
677 ${step.browser_flow.map(browserStep => createBrowserStepHTML(browserStep, index)).join('')}
678 </div>
679 </div>

Callers 1

updateExecutionFlowFunction · 0.85

Calls 4

renderContentFunction · 0.85
formatTimestampFunction · 0.85
createToolCallHTMLFunction · 0.85
createBrowserStepHTMLFunction · 0.85

Tested by

no test coverage detected