feat: update historical event types

This commit is contained in:
Simon
2026-01-22 15:15:18 +08:00
parent d861f7b7f2
commit 8c43fe1409
2 changed files with 29 additions and 4 deletions

View File

@@ -1,4 +1,9 @@
import { type AgentErrorEvent, type AgentStepEvent, type ObservationEvent } from '@page-agent/core' import {
type AgentErrorEvent,
type AgentStepEvent,
type ObservationEvent,
type RetryEvent,
} from '@page-agent/core'
import { import {
CheckCircle, CheckCircle,
ChevronDown, ChevronDown,
@@ -8,6 +13,7 @@ import {
Keyboard, Keyboard,
Mouse, Mouse,
MoveVertical, MoveVertical,
RefreshCw,
Sparkles, Sparkles,
XCircle, XCircle,
Zap, Zap,
@@ -200,6 +206,19 @@ function ObservationCard({ event }: { event: ObservationEvent }) {
) )
} }
function RetryCard({ event }: { event: RetryEvent }) {
return (
<div className="rounded-lg border border-amber-500/30 bg-amber-500/10 p-2.5">
<div className="flex items-start gap-1.5">
<RefreshCw className="size-3 text-amber-500 shrink-0 mt-0.5" />
<span className="text-xs text-amber-600 dark:text-amber-400">
{event.message} ({event.attempt}/{event.maxAttempts})
</span>
</div>
</div>
)
}
function ErrorCard({ event }: { event: AgentErrorEvent }) { function ErrorCard({ event }: { event: AgentErrorEvent }) {
return ( return (
<div className="rounded-lg border border-destructive/30 bg-destructive/10 p-2.5"> <div className="rounded-lg border border-destructive/30 bg-destructive/10 p-2.5">
@@ -238,6 +257,10 @@ export function EventCard({ event }: { event: HistoricalEvent }) {
return <ObservationCard event={event as ObservationEvent} /> return <ObservationCard event={event as ObservationEvent} />
} }
if (event.type === 'retry') {
return <RetryCard event={event as RetryEvent} />
}
if (event.type === 'error') { if (event.type === 'error') {
return <ErrorCard event={event as AgentErrorEvent} /> return <ErrorCard event={event as AgentErrorEvent} />
} }

View File

@@ -55,7 +55,7 @@ export type AgentActivity =
/** Historical event (simplified for serialization) */ /** Historical event (simplified for serialization) */
export interface HistoricalEvent { export interface HistoricalEvent {
type: 'step' | 'observation' | 'user_takeover' | 'error' type: 'step' | 'observation' | 'user_takeover' | 'retry' | 'error'
// For 'step' type // For 'step' type
stepIndex?: number stepIndex?: number
reflection?: { reflection?: {
@@ -70,8 +70,10 @@ export interface HistoricalEvent {
} }
// For 'observation' type // For 'observation' type
content?: string content?: string
// For 'error' type // For 'retry' type
errorType?: 'retry' | 'error' attempt?: number
maxAttempts?: number
// For 'error' and 'retry' types
message?: string message?: string
// Raw LLM response for debugging (step and error types) // Raw LLM response for debugging (step and error types)
rawResponse?: unknown rawResponse?: unknown