@@ -105,6 +105,7 @@ import useMcpServer from './mcp/useMcp'
105105import MarkdownRenderer from ' ./mcp/MarkdownRenderer.vue'
106106import LoadingRenderer from ' ./mcp/LoadingRenderer.vue'
107107import { sendMcpRequest } from ' ./mcp/utils'
108+ import type { RobotMessage } from ' ./mcp/types'
108109
109110export default {
110111 components: {
@@ -127,7 +128,7 @@ export default {
127128 const avatarUrl = ref (' ' )
128129 const chatWindowOpened = ref (true )
129130 let sessionProcess = null
130- const messages = ref ([])
131+ const messages = ref < RobotMessage []> ([])
131132 const activeMessages = ref ([])
132133 const connectedFailed = ref (false )
133134 const inputContent = ref (' ' )
@@ -234,7 +235,18 @@ export default {
234235 }
235236 })
236237 } catch (error ) {
237- messages .value [messages .value .length - 1 ].content = ' 连接失败'
238+ const { renderContent } = messages .value .at (- 1 )!
239+ if (renderContent ?.length ) {
240+ if (renderContent .at (- 1 )! .type === ' loading' ) {
241+ renderContent .pop ()
242+ }
243+ renderContent .push ({
244+ type: ' text' ,
245+ content: ' 连接失败, 请稍后重试'
246+ })
247+ } else {
248+ messages .value .at (- 1 )! .content = ' 连接失败, 请稍后重试'
249+ }
238250 } finally {
239251 inProcesing .value = false
240252 requestLoading .value = false
@@ -431,7 +443,8 @@ export default {
431443 contentRenderer: MarkdownRenderer ,
432444 customContentField: ' renderContent'
433445 },
434- user: { placement: ' end' , avatar: userAvatar , maxWidth: ' 90%' , contentRenderer: MarkdownRenderer }
446+ user: { placement: ' end' , avatar: userAvatar , maxWidth: ' 90%' , contentRenderer: MarkdownRenderer },
447+ system: { hidden: true }
435448 }
436449
437450 watch ([() => activeMessages .value .length , () => activeMessages .value .at (- 1 )?.renderContent ?.length ?? 0 ], () => {
0 commit comments