Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions pydantic_ai_slim/pydantic_ai/ui/ag_ui/_event_stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,18 @@
from ag_ui.core import (
BaseEvent,
EventType,
ReasoningEndEvent,
ReasoningStartEvent,
ReasoningTextMessageContentEvent,
ReasoningTextMessageEndEvent,
ReasoningTextMessageStartEvent,
RunAgentInput,
RunErrorEvent,
RunFinishedEvent,
RunStartedEvent,
TextMessageContentEvent,
TextMessageEndEvent,
TextMessageStartEvent,
ThinkingEndEvent,
ThinkingStartEvent,
ThinkingTextMessageContentEvent,
ThinkingTextMessageEndEvent,
ThinkingTextMessageStartEvent,
ToolCallArgsEvent,
ToolCallEndEvent,
ToolCallResultEvent,
Expand Down Expand Up @@ -148,32 +148,32 @@ async def handle_thinking_start(
self, part: ThinkingPart, follows_thinking: bool = False
) -> AsyncIterator[BaseEvent]:
if not follows_thinking:
yield ThinkingStartEvent(type=EventType.THINKING_START)
yield ReasoningStartEvent(type=EventType.REASONING_START)

if part.content:
yield ThinkingTextMessageStartEvent(type=EventType.THINKING_TEXT_MESSAGE_START)
yield ThinkingTextMessageContentEvent(type=EventType.THINKING_TEXT_MESSAGE_CONTENT, delta=part.content)
yield ReasoningTextMessageStartEvent(type=EventType.REASONING_TEXT_MESSAGE_START)
yield ReasoningTextMessageContentEvent(type=EventType.REASONING_TEXT_MESSAGE_CONTENT, delta=part.content)
self._thinking_text = True

async def handle_thinking_delta(self, delta: ThinkingPartDelta) -> AsyncIterator[BaseEvent]:
if not delta.content_delta:
return # pragma: no cover

if not self._thinking_text:
yield ThinkingTextMessageStartEvent(type=EventType.THINKING_TEXT_MESSAGE_START)
yield ReasoningTextMessageStartEvent(type=EventType.REASONING_TEXT_MESSAGE_START)
self._thinking_text = True

yield ThinkingTextMessageContentEvent(type=EventType.THINKING_TEXT_MESSAGE_CONTENT, delta=delta.content_delta)
yield ReasoningTextMessageContentEvent(type=EventType.REASONING_TEXT_MESSAGE_CONTENT, delta=delta.content_delta)

async def handle_thinking_end(
self, part: ThinkingPart, followed_by_thinking: bool = False
) -> AsyncIterator[BaseEvent]:
if self._thinking_text:
yield ThinkingTextMessageEndEvent(type=EventType.THINKING_TEXT_MESSAGE_END)
yield ReasoningTextMessageEndEvent(type=EventType.REASONING_TEXT_MESSAGE_END)
self._thinking_text = False

if not followed_by_thinking:
yield ThinkingEndEvent(type=EventType.THINKING_END)
yield ReasoningEndEvent(type=EventType.REASONING_END)

def handle_tool_call_start(self, part: ToolCallPart | BuiltinToolCallPart) -> AsyncIterator[BaseEvent]:
return self._handle_tool_call_start(part)
Expand Down
Loading