优化: 对话执行轨迹聚合与工具卡交互

前端聚合当前轮次工具调用数,替代每轮清零的完成计数,进度文案改轮次+累计口径
完成聚合语义由执行轨迹卡承接,工具卡复读修复与默认折叠收敛
流式与工具事件配套调整,新增轮次轨迹收集 composable
This commit is contained in:
lxy
2026-10-01 02:41:05 +08:00
parent e7cd035c62
commit 04acc4297d
15 changed files with 482 additions and 95 deletions
+3 -1
View File
@@ -20,6 +20,8 @@ export function handleToolEvent(event: AiChatEvent): boolean {
name: event.name,
args: event.args,
status: 'running',
// 后端事件不带耗时,前端记开始时刻,Completed 时差值即单卡耗时
startedAt: Date.now(),
}
// 同 id 重复 Started 不重复 push(provider id 不稳,防残留 running 空卡)
if (!findToolCall(event.id)) {
@@ -39,8 +41,8 @@ export function handleToolEvent(event: AiChatEvent): boolean {
if (tc) {
tc.status = 'completed'
tc.result = event.result
tc.completedAt = Date.now()
}
state.completedTools++ // 进度条计数器
state.pendingApprovals = state.pendingApprovals.filter(p => p.id !== event.id)
clearToolSlowTimer(event.id)
// 工具结束(无论审批通过后执行还是被拒),清审批超时计时器