base types for abstracting output

This commit is contained in:
AI Christianson 2025-02-24 13:50:25 -05:00
parent 2c18655fb7
commit 3af8780f51
2 changed files with 32 additions and 0 deletions

View File

@ -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: ...

View File

@ -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