function streamTextToElement(element) { const url = element.dataset.sseUrl; if (!url) { return; } const source = new EventSource(url); const appendLine = (line) => { element.textContent += `${line}\n`; element.scrollTop = element.scrollHeight; }; source.onmessage = (event) => { appendLine(event.data); }; source.addEventListener("stdout", (event) => { appendLine(event.data); }); source.addEventListener("stderr", (event) => { appendLine(`[stderr] ${event.data}`); }); } document.addEventListener("DOMContentLoaded", () => { document.querySelectorAll("[data-sse-url]").forEach(streamTextToElement); });