"""AbstractRuntime — runtime interface."""

from __future__ import annotations

from abc import ABC, abstractmethod

from aqm.core.agent import AgentDefinition
from aqm.core.task import Task


class AbstractRuntime(ABC):
    @property
    @abstractmethod
    def name(self) -> str:
        ...

    @abstractmethod
    def run(self, prompt: str, agent: AgentDefinition, task: Task) -> str:
        """Run the agent and return text output."""
        ...
