diff --git a/src/lib/AnthropicTab.svelte b/src/lib/AnthropicTab.svelte index f0c16ab..ea0f6d5 100644 --- a/src/lib/AnthropicTab.svelte +++ b/src/lib/AnthropicTab.svelte @@ -47,38 +47,33 @@ } } } - function getIconForMsg(msg) - { - if(msg.role == "user") - return "fa-user" - else - return "fa-robot" - } - function getIconForTool(msg) - { - if(msg.content[0].input.action == "screenshot") - return "fa-desktop"; - else - return "fa-screwdriver-wrench"; - } - function getMessageForTool(msg) - { - if(msg.content[0].input.action == "screenshot") - return "Screenshot"; - else - return "Use the system"; - } - function isToolUse(msg) - { - if(!Array.isArray(msg.content)) - return false; - return msg.content[0].type == "tool_use"; - } - function isToolResult(msg) - { - if(!Array.isArray(msg.content)) - return false; - return msg.content[0].type == "tool_result"; + function getMessageDetails(msg) { + const isToolUse = Array.isArray(msg.content) && msg.content[0].type === "tool_use"; + const isToolResult = Array.isArray(msg.content) && msg.content[0].type === "tool_result"; + let icon = ""; + let messageContent = ""; + + if (isToolUse) { + let tool = msg.content[0].input; + if (tool.action === "screenshot") { + icon = "fa-desktop"; + messageContent = "Screenshot"; + } else { + icon = "fa-screwdriver-wrench"; + messageContent = "Use the system"; + } + } else { + icon = msg.role === "user" ? "fa-user" : "fa-robot"; + messageContent = msg.content; + } + + return { + isToolUse, + isToolResult, + icon, + messageContent, + role: msg.role + }; }

Claude AI Integration

@@ -88,10 +83,11 @@
{#each $messageList as msg} - {#if isToolUse(msg)} -

{getMessageForTool(msg)}

- {:else if !isToolResult(msg)} -

{msg.content}

+ {@const details = getMessageDetails(msg)} + {#if details.isToolUse} +

{details.messageContent}

+ {:else if !details.isToolResult} +

{details.messageContent}

{/if} {/each}