${esc(r.content)}import '../shared/base.css'; import { App } from '@modelcontextprotocol/ext-apps'; interface CompareResponse { provider: string; nickname: string; model: string; content: string; latency: number; tokens: { prompt: number; completion: number; total: number } | null; error?: string; } const app = new App({ name: 'CompareDucks', version: '1.0.0' }, {}); app.ontoolresult = (params) => { const container = document.getElementById('app')!; if (params.isError) { container.innerHTML = `
`; return; } // Parse JSON from second content item const content = params.content; if (!content || !Array.isArray(content) || content.length < 2) { container.innerHTML = ``; return; } try { const data: CompareResponse[] = JSON.parse((content[1] as { type: string; text: string }).text); render(data); } catch { container.innerHTML = ``; } }; function render(responses: CompareResponse[]) { const container = document.getElementById('app')!; const successCount = responses.filter((r) => !r.error).length; let html = ``; html += `${esc(r.content)}${esc(r.content)}