From 81807e17ca515d60f1f6161c3a1acd9380927370 Mon Sep 17 00:00:00 2001 From: Simon <10131203+gaomeng1900@users.noreply.github.com> Date: Wed, 21 Jan 2026 16:59:22 +0800 Subject: [PATCH] feat: add stepIndex to history events --- packages/core/src/PageAgentCore.ts | 1 + packages/core/src/types.ts | 1 + packages/ui/src/panel/Panel.ts | 20 +++++++++++--------- packages/ui/src/panel/types.ts | 1 + 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/core/src/PageAgentCore.ts b/packages/core/src/PageAgentCore.ts index 97afc1a..a8595ad 100644 --- a/packages/core/src/PageAgentCore.ts +++ b/packages/core/src/PageAgentCore.ts @@ -263,6 +263,7 @@ export class PageAgentCore extends EventTarget { this.history.push({ type: 'step', + stepIndex: step, reflection, action, usage: result.usage, diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 91c94a0..57c8f9f 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -35,6 +35,7 @@ export interface MacroToolResult { */ export interface AgentStep { type: 'step' + stepIndex: number reflection: Partial action: { name: string diff --git a/packages/ui/src/panel/Panel.ts b/packages/ui/src/panel/Panel.ts index 8b4b85f..8f8446f 100644 --- a/packages/ui/src/panel/Panel.ts +++ b/packages/ui/src/panel/Panel.ts @@ -563,9 +563,8 @@ export class Panel { // 2. Render each history event const history = this.#agent.history - for (let i = 0; i < history.length; i++) { - const event = history[i] - items.push(...this.#createHistoryCards(event, i + 1)) + for (const event of history) { + items.push(...this.#createHistoryCards(event)) } this.#historySection.innerHTML = items.join('') @@ -577,14 +576,17 @@ export class Panel { } /** Create cards for a history event */ - #createHistoryCards(event: PanelAgentAdapter['history'][number], stepNumber: number): string[] { + #createHistoryCards(event: PanelAgentAdapter['history'][number]): string[] { const cards: string[] = [] const time = formatTime(this.#config.language ?? 'en-US') - const meta = this.#i18n.t('ui.panel.step', { - number: stepNumber.toString(), - time, - duration: '', - }) + const meta = + event.type === 'step' && event.stepIndex !== undefined + ? this.#i18n.t('ui.panel.step', { + number: (event.stepIndex + 1).toString(), + time, + duration: '', + }) + : time if (event.type === 'step') { // Reflection card diff --git a/packages/ui/src/panel/types.ts b/packages/ui/src/panel/types.ts index 2f4298a..75af53e 100644 --- a/packages/ui/src/panel/types.ts +++ b/packages/ui/src/panel/types.ts @@ -34,6 +34,7 @@ export interface PanelAgentAdapter extends EventTarget { /** History of agent events */ readonly history: readonly { type: 'step' | 'observation' | 'user_takeover' | 'error' + stepIndex?: number /** For 'step' type */ reflection?: { evaluation_previous_goal?: string