from dataclasses import dataclass from typing import Any @dataclass class TraceItem: """Base class for trace items.""" pass @dataclass class AgentMessageItem(TraceItem): """Agent's text response.""" text: str model: str @dataclass class ThinkingItem(TraceItem): """Agent's internal reasoning (extended thinking).""" text: str model: str @dataclass class ToolUseItem(TraceItem): """Tool invocation request.""" tool_name: str tool_input: dict[str, Any] tool_use_id: str @dataclass class ToolResultItem(TraceItem): """Tool execution result.""" tool_name: str tool_use_id: str content: str | list[dict[str, Any]] | None = None is_error: bool = False @dataclass class ErrorItem(TraceItem): """Error that occurred during execution.""" message: str error_type: str | None = None