{#snippet icon()} {#if toolSuccess} {:else} {/if} {/snippet} {#if toolFnName} (isOpen = !isOpen)} > {toolError ? "Error calling" : toolDone ? "Called" : "Calling"} tool {availableTools.find((entry) => entry.name === toolFnName)?.displayName ?? toolFnName} (isOpen = !isOpen)} aria-label={isOpen ? "Collapse" : "Expand"} > {#if isOpen} {#each tool as update, i (`${update.subtype}-${i}`)} {#if update.subtype === MessageToolUpdateType.Call} Input {formatValue( update.call.parameters )} {:else if update.subtype === MessageToolUpdateType.Error} Error {update.message} {:else if isMessageToolResultUpdate(update) && update.result.status === ToolResultStatus.Success && update.result.display} Output {#each parseToolOutputs(update.result.outputs) as parsedOutput} {#if parsedOutput.text} {parsedOutput.text} {/if} {#if parsedOutput.images.length > 0} {#each parsedOutput.images as image, imageIndex} {/each} {/if} {#if parsedOutput.metadata.length > 0} {formatValue( Object.fromEntries(parsedOutput.metadata) )} {/if} {/each} {:else if isMessageToolResultUpdate(update) && update.result.status === ToolResultStatus.Error && update.result.display} Error {update.result .message} {/if} {/each} {/if} {/if}
{availableTools.find((entry) => entry.name === toolFnName)?.displayName ?? toolFnName}
{formatValue( update.call.parameters )}
{update.message}
{parsedOutput.text}
{formatValue( Object.fromEntries(parsedOutput.metadata) )}
{update.result .message}