"""Content renderers for the TUI chat panel."""

from __future__ import annotations

from .base import ContentRenderer
from .registry import RendererRegistry
from . import message, tool, thinking, error, markdown_content, plain, diff, artifact, status, planning, subagent, turn_meta


def default_registry() -> RendererRegistry:
    """Return a registry with all built-in renderers."""
    reg = RendererRegistry()
    reg.register(message.UserMessageRenderer())
    reg.register(message.AssistantMessageRenderer())
    reg.register(thinking.ThinkingRenderer())
    # spawn_agent cards must be checked before the generic tool renderers.
    reg.register(subagent.SpawnAgentStartedRenderer())
    reg.register(subagent.SpawnAgentResultRenderer())
    reg.register(tool.ToolStartedRenderer())
    reg.register(tool.ToolResultRenderer())
    reg.register(error.ErrorRenderer())
    reg.register(status.StatusRenderer())
    reg.register(planning.PlanningStatusRenderer())
    reg.register(planning.PlanReadyRenderer())
    reg.register(turn_meta.TurnMetaRenderer())
    reg.register(markdown_content.MarkdownRenderer())
    reg.register(diff.DiffRenderer())
    reg.register(artifact.ArtifactRenderer())
    reg.register(plain.PlainRenderer())
    return reg


__all__ = [
    "ContentRenderer",
    "RendererRegistry",
    "default_registry",
]
