diff --git a/ra_aid/output/interface/base.py b/ra_aid/output/interface/base.py new file mode 100644 index 0000000..114e3e6 --- /dev/null +++ b/ra_aid/output/interface/base.py @@ -0,0 +1,8 @@ +from typing import Protocol +from .models import MarkdownPanel, StageHeader, TaskHeader, StatusMessage + +class OutputRenderer(Protocol): + def render_panel(self, panel: MarkdownPanel) -> None: ... + def render_stage(self, header: StageHeader) -> None: ... + def render_task(self, header: TaskHeader) -> None: ... + def render_status(self, message: StatusMessage) -> None: ... diff --git a/ra_aid/output/interface/models.py b/ra_aid/output/interface/models.py new file mode 100644 index 0000000..644a01a --- /dev/null +++ b/ra_aid/output/interface/models.py @@ -0,0 +1,24 @@ +from dataclasses import dataclass +from typing import Optional + +@dataclass +class MarkdownPanel: + content: str + title: Optional[str] = None + icon: Optional[str] = None + border_style: Optional[str] = None + +@dataclass +class StageHeader: + text: str + icon: Optional[str] = None + +@dataclass +class TaskHeader: + text: str + icon: Optional[str] = None + +@dataclass +class StatusMessage: + text: str + style: Optional[str] = None