From 1f80c6679e2fa240210cfa7a5df7441a1ba7c023 Mon Sep 17 00:00:00 2001 From: Michael Peter Christen Date: Sat, 28 Mar 2026 21:33:54 +0100 Subject: Add search tool backed by shared RAG search document output --- htroot/yacychat.html | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'htroot') diff --git a/htroot/yacychat.html b/htroot/yacychat.html index 447293e34..3ac314d04 100644 --- a/htroot/yacychat.html +++ b/htroot/yacychat.html @@ -2050,6 +2050,30 @@ return base64 ? base64ToUtf8(base64) : ''; } + function parseStructuredToolResult(result) { + const raw = result?.content || result?.function?.content || ''; + if (typeof raw !== 'string' || !raw.trim()) return null; + try { + return JSON.parse(raw); + } catch (err) { + return null; + } + } + + function inferAttachmentFromToolResult(result) { + const payload = parseStructuredToolResult(result); + const name = payload?.['search-filename']; + const base64 = payload?.['search-text-base64']; + if (!name || !base64) return null; + return { + kind: 'text', + name, + dataUrl: `data:text/markdown;base64,${base64}`, + mime: 'text/markdown', + textContent: base64ToUtf8(base64) + }; + } + function messageDisplayText(message) { if (!message) return ''; if (typeof message.display === 'string') return message.display; @@ -2175,9 +2199,18 @@ responseTitle.textContent = 'Response'; item.appendChild(responseTitle); + const attachment = inferAttachmentFromToolResult(result); + if (attachment) { + const attachmentContainer = document.createElement('div'); + attachmentContainer.appendChild(createAttachmentChip(attachment)); + item.appendChild(attachmentContainer); + } + const responseBody = document.createElement('pre'); responseBody.className = 'toolcall-result'; - responseBody.textContent = formatToolArguments(result?.content || result?.function?.content || ''); + responseBody.textContent = attachment + ? attachmentTextContent(attachment) + : formatToolArguments(result?.content || result?.function?.content || ''); item.appendChild(responseBody); } -- cgit v1.2.3