from __future__ import annotations from dataclasses import dataclass from typing import Protocol @dataclass class Message: role: str # "user" or "assistant" content: str class LLMProvider(Protocol): def send(self, messages: list[Message], system: str = "") -> str: ... @property def model_name(self) -> str: ...