diff --git a/src/services/dialogService.ts b/src/services/dialogService.ts index 3eb3bed..c1019f0 100644 --- a/src/services/dialogService.ts +++ b/src/services/dialogService.ts @@ -41,6 +41,7 @@ export interface MessageSegment { toolName?: string; toolStatus?: "running" | "success" | "error"; toolResult?: string; + toolDescription?: string; askId?: string; question?: string; options?: string[]; @@ -180,7 +181,8 @@ export class DialogSession { private updateToolSegment( toolName: string, status: "success" | "error", - result?: string + result?: string, + description?: string ): void { // 找到最后一个匹配的工具段落 for (let i = this.segments.length - 1; i >= 0; i--) { @@ -192,6 +194,9 @@ export class DialogSession { ) { seg.toolStatus = status; seg.toolResult = result; + if (description !== undefined) { + seg.toolDescription = description; + } break; } } @@ -590,7 +595,7 @@ export class DialogSession { }, onToolComplete: (data) => { - this.updateToolSegment(data.tool_name, "success", data.result); + this.updateToolSegment(data.tool_name, "success", data.result, data.description); callbacks.onToolComplete?.(data.tool_name, data.result); // 实时发送段落更新 callbacks.onSegmentUpdate?.(this.segments); diff --git a/src/types/api.ts b/src/types/api.ts index d2ea3e5..2ad72f1 100644 --- a/src/types/api.ts +++ b/src/types/api.ts @@ -96,6 +96,7 @@ export interface ToolStartEvent { export interface ToolCompleteEvent { tool_name: string; result: string; + description?: string; } /** tool_error 事件数据 */ diff --git a/src/views/messageArea.ts b/src/views/messageArea.ts index 205dd57..103aa58 100644 --- a/src/views/messageArea.ts +++ b/src/views/messageArea.ts @@ -543,6 +543,12 @@ export function getMessageAreaStyles(): string { .tool-segment-content.collapsed { max-height: 0; } + .tool-segment-description { + margin: 2px 0 0 0px; + font-size: 12px; + color: #fff; + line-height: 1.4; + } /* 低调显示的工具调用样式 */ .segment-tool.low-profile .tool-segment-header { opacity: 0.65; @@ -1067,6 +1073,7 @@ export function getMessageAreaScript(): string { const toolResult = segment.toolResult || ''; const toolCount = segment.toolCount || 1; const countSuffix = toolCount > 1 ? \` x\${toolCount}\` : ''; + const toolDescription = segment.toolDescription || ''; // 检查工具结果是否过长(超过一行显示不下) const shouldCollapse = toolResult && toolResult.length > 60; @@ -1084,6 +1091,7 @@ export function getMessageAreaScript(): string { \${toolResult && !shouldCollapse ? \`\${toolResult}\` : ''} \${shouldCollapse ? \`
\${toolResult}
\` : ''} + \${toolDescription ? \`

\${toolDescription}

\` : ''} \`; // 如果是仿真工具且成功完成,尝试添加波形预览 @@ -1331,6 +1339,7 @@ export function getMessageAreaScript(): string { const toolResult = segment.toolResult || ''; const toolCount = segment.toolCount || 1; const countSuffix = toolCount > 1 ? \` x\${toolCount}\` : ''; + const toolDescription = segment.toolDescription || ''; // 检查工具结果是否过长(超过一行显示不下) const shouldCollapse = toolResult && toolResult.length > 60; @@ -1342,6 +1351,7 @@ export function getMessageAreaScript(): string { \${toolResult && !shouldCollapse ? \`\${toolResult}\` : ''} \${shouldCollapse ? \`\` : ''} + \${toolDescription ? \`

\${toolDescription}

\` : ''} \`; // 如果是仿真工具且成功完成,尝试添加波形预览