@@ -70,7 +70,9 @@ function upperName(name: string) {
7070 return splitByCase (name ).map (p => upperFirst (p )).join (' ' )
7171}
7272
73- function getToolMessage(state : UIToolInvocation <any >[' state' ], toolName : string , input : any ) {
73+ type State = UIToolInvocation <any >[' state' ]
74+
75+ function getToolMessage(state : State , toolName : string , input : any ) {
7476 const searchVerb = state === ' output-available' ? ' Searched' : ' Searching'
7577 const readVerb = state === ' output-available' ? ' Read' : ' Reading'
7678
@@ -84,18 +86,21 @@ function getToolMessage(state: UIToolInvocation<any>['state'], toolName: string,
8486 get_documentation_page: ` ${readVerb } ${input .path || ' ' } page ` ,
8587 list_documentation_pages: ` ${searchVerb } documentation pages ` ,
8688 list_getting_started_guides: ` ${searchVerb } documentation guides ` ,
87- get_migration_guide: ` ${readVerb } ${input .version } migration guide ` ,
89+ get_migration_guide: ` ${readVerb } migration guide ${input .version ? ` for ${ input . version } ` : ' ' } ` ,
8890 list_examples: ` ${searchVerb } examples ` ,
8991 get_example: ` ${readVerb } ${upperName (input .exampleName )} example ` ,
9092 search_components_by_category: ` ${searchVerb } components${input .category ? ` in ${input .category } category ` : ' ' }${input .search ? ` for "${input .search }" ` : ' ' } `
9193 }[toolName ] || ` ${searchVerb } ${toolName } `
9294}
95+
96+ const getCachedToolMessage = useMemoize ((state : State , toolName : string , input : string ) =>
97+ getToolMessage (state , toolName , JSON .parse (input ))
98+ )
9399 </script >
94100
95101<template >
96102 <UChatPalette >
97103 <UChatMessages
98- should-auto-scroll
99104 :messages =" chat.messages"
100105 :status =" chat.status"
101106 :user =" { side: 'left', variant: 'naked', icon: 'i-lucide-user' }"
@@ -115,7 +120,7 @@ function getToolMessage(state: UIToolInvocation<any>['state'], toolName: string,
115120 />
116121
117122 <p v-if =" part.type === 'dynamic-tool'" class =" text-muted text-sm leading-6 my-1.5" >
118- {{ getToolMessage (part.state, part.toolName, part.input || {}) }}
123+ {{ getCachedToolMessage (part.state, part.toolName, JSON.stringify( part.input || {}) ) }}
119124 </p >
120125 </template >
121126 </div >
0 commit comments