render_event(event_type: EventType, *, delta: str = '', name: str = '', content: str = '', message: str = '') -> str | None
Build a terminal-friendly string for a single event, or None to skip.
Parameters
event_type:
The AG-UI :class:~ag_ui.core.events.EventType for this event.
delta:
Text delta for content/args events.
name:
Name for tool-call-start, step-started, or custom events.
content:
Content for tool-call-result events.
message:
Error message for run-error events.
Returns
A terminal friendly string if the event was rendered, otherwise None.
Print with print(rendered, end='') or click.echo(rendered, nl=False)
Source code in datarobot_genai/core/agents/render.py
| def render_event(
event_type: EventType,
*,
delta: str = "",
name: str = "",
content: str = "",
message: str = "",
) -> str | None:
"""Build a terminal-friendly string for a single event, or None to skip.
Parameters
----------
event_type:
The AG-UI :class:`~ag_ui.core.events.EventType` for this event.
delta:
Text delta for content/args events.
name:
Name for tool-call-start, step-started, or custom events.
content:
Content for tool-call-result events.
message:
Error message for run-error events.
Returns
-------
A terminal friendly string if the event was rendered, otherwise None.
Print with print(rendered, end='') or click.echo(rendered, nl=False)
"""
rendered: str | None = None
if event_type in (EventType.TEXT_MESSAGE_CONTENT, EventType.TEXT_MESSAGE_CHUNK):
rendered = f"{Fore.CYAN}{delta}{Style.RESET_ALL}"
elif event_type == EventType.TEXT_MESSAGE_END:
rendered = "\n"
elif event_type == EventType.TEXT_MESSAGE_START:
rendered = None
elif event_type in (EventType.REASONING_MESSAGE_CONTENT, EventType.REASONING_MESSAGE_CHUNK):
rendered = f"{Fore.YELLOW}{delta}{Style.RESET_ALL}"
elif event_type in (EventType.REASONING_END, EventType.REASONING_MESSAGE_END):
rendered = "\n"
elif event_type in (EventType.REASONING_START, EventType.REASONING_MESSAGE_START):
rendered = None
elif event_type == EventType.TOOL_CALL_START:
rendered = (
f"\n{Fore.MAGENTA}\u25b6 Tool Call: {Fore.MAGENTA}{Style.DIM}{name}{Style.RESET_ALL}"
f"\n{Fore.MAGENTA} Arguments: {Style.RESET_ALL}"
)
elif event_type == EventType.TOOL_CALL_ARGS:
rendered = f"{Fore.MAGENTA}{Style.DIM}{delta}{Style.RESET_ALL}"
elif event_type == EventType.TOOL_CALL_END:
rendered = "\n"
elif event_type == EventType.TOOL_CALL_RESULT:
if len(content) > TOOL_RESULT_MAX_LEN:
content = content[:TOOL_RESULT_MAX_LEN] + "\u2026"
rendered = f"{Fore.MAGENTA} Result: {Fore.MAGENTA}{Style.DIM}{content}{Style.RESET_ALL}\n"
elif event_type == EventType.STEP_STARTED:
rendered = f"{Style.DIM}Step: {name}{Style.RESET_ALL}\n"
elif event_type == EventType.STEP_FINISHED:
rendered = None
elif event_type == EventType.RUN_STARTED:
rendered = f"{Style.DIM}Run started{Style.RESET_ALL}\n"
elif event_type == EventType.RUN_FINISHED:
rendered = f"\n{Fore.GREEN}\u2705 Run finished.{Style.RESET_ALL}\n"
elif event_type == EventType.RUN_ERROR:
rendered = f"{Fore.RED}\u274c Run failed: {message}{Style.RESET_ALL}\n"
elif event_type == EventType.CUSTOM:
if name != "Heartbeat":
rendered = f"{Style.DIM}[{name}]{Style.RESET_ALL}\n"
else:
logger.debug(f"Unhandled event type: {event_type.value}")
return rendered
|