KI-Agent: Änderungen erscheinen in Live-Vorschau und PDF
- Dateien des Agenten werden sofort committet (die Vorschau liest in anderer Sitzung; vorher KeyError/unverändert) - Beispielprotokoll der PDF-Vorschau gehört zum Arbeitsstand: neues Tool set_sample, run_prompt_test setzt das LLM-Ergebnis als Beispiel; im Vorschlag und bei der Freigabe übernommen - Vorschau wechselt bei PDF-relevanten Änderungen automatisch auf die PDF-Ansicht - Regressionstests inkl. echter SSE-/Freigabe-Strecke Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -427,12 +427,12 @@ async function sendChat(text){
|
||||
let i; while((i = buf.indexOf('\n\n')) >= 0){
|
||||
const ev = JSON.parse(buf.slice(6, i)); buf = buf.slice(i+2);
|
||||
if(ev.type==='mode'){ ui.agentSrc = 'ws:' + ev.run; $('#pv-agent').textContent = 'Agent-Stand (live)'; setPvSrc('agent'); }
|
||||
else if(ev.type==='changed'){ refreshPreviewLive(); }
|
||||
else if(ev.type==='changed'){ showPdfIfRelevant(ev.paths); refreshPreviewLive(); }
|
||||
else if(ev.type==='step') live.querySelector('.steps').insertAdjacentHTML('beforeend', stepsHtml([ev]));
|
||||
else if(ev.type==='thought') live.querySelector('.steps').insertAdjacentHTML('beforeend', `<div class="thought">${esc(ev.text)}</div>`);
|
||||
else if(ev.type==='error') live.querySelector('.typing').textContent = '⚠ ' + ev.text;
|
||||
else if(ev.type==='done'){ live.replaceWith(msgEl(ev.message));
|
||||
if(ev.message.proposal){ ui.agentSrc = 'proposal:' + ev.message.id; $('#pv-agent').textContent = 'Agent-Vorschlag'; setPvSrc('agent'); } else { ui.agentSrc = null; setPvSrc('draft'); }
|
||||
if(ev.message.proposal){ showPdfIfRelevant((ev.message.proposal.items||[]).map(i=>i.path)); ui.agentSrc = 'proposal:' + ev.message.id; $('#pv-agent').textContent = 'Agent-Vorschlag'; setPvSrc('agent'); } else { ui.agentSrc = null; setPvSrc('draft'); }
|
||||
refreshPreview(true); }
|
||||
box.scrollTop = 1e9;
|
||||
}
|
||||
@@ -440,6 +440,11 @@ async function sendChat(text){
|
||||
} catch(e){ live.remove(); toast(e.message, 1); }
|
||||
$('#chat-send').disabled = false;
|
||||
}
|
||||
const PDF_PATH = /^(protocol\.|pdf_|office\.|preview_sample)/;
|
||||
function showPdfIfRelevant(paths){
|
||||
if(!(paths||[]).some(p => PDF_PATH.test(p))) return;
|
||||
if(ui.pvKind !== 'pdf'){ ui.pvKind = 'pdf'; document.querySelectorAll('#pv-kind button').forEach(b => b.classList.toggle('on', b.dataset.k === 'pdf')); }
|
||||
}
|
||||
async function decide(id, d){
|
||||
const m = await api('POST', A(`/chat/${id}/${d}`)); $('#m'+id).replaceWith(msgEl(m));
|
||||
ui.agentSrc = null; setPvSrc('draft');
|
||||
|
||||
Reference in New Issue
Block a user