diff --git a/src/components/thread/messages/tool-calls.tsx b/src/components/thread/messages/tool-calls.tsx index ebf39f6..bd768c3 100644 --- a/src/components/thread/messages/tool-calls.tsx +++ b/src/components/thread/messages/tool-calls.tsx @@ -64,20 +64,46 @@ export function ToolCalls({ export function ToolResult({ message }: { message: ToolMessage }) { const [isExpanded, setIsExpanded] = useState(false); - const contentStr = JSON.stringify(message.content, null, 2); - const contentLines = contentStr.split('\n'); + + let parsedContent: any; + let isJsonContent = false; + + try { + if (typeof message.content === "string") { + parsedContent = JSON.parse(message.content); + isJsonContent = true; + } + } catch { + // Content is not JSON, use as is + parsedContent = message.content; + } + + const contentStr = isJsonContent + ? JSON.stringify(parsedContent, null, 2) + : String(message.content); + const contentLines = contentStr.split("\n"); const shouldTruncate = contentLines.length > 4 || contentStr.length > 500; - const displayedContent = shouldTruncate && !isExpanded - ? (contentStr.length > 500 - ? contentStr.slice(0, 500) + '...' - : contentLines.slice(0, 4).join('\n') + '\n...') - : contentStr; + const displayedContent = + shouldTruncate && !isExpanded + ? contentStr.length > 500 + ? contentStr.slice(0, 500) + "..." + : contentLines.slice(0, 4).join("\n") + "\n..." + : contentStr; return (
{message.name}
+ {message.name}
+
+
{message.tool_call_id}
@@ -85,7 +111,7 @@ export function ToolResult({ message }: { message: ToolMessage }) {
)}
{displayedContent}
+ {isJsonContent ? (
+ | + {key} + | +
+ {isComplexValue(value) ? (
+
+ {JSON.stringify(value, null, 2)}
+
+ ) : (
+ String(value)
+ )}
+ |
+
{displayedContent}
+ )}