This commit is contained in:
2026-10-08 18:29:45 -07:00
parent 8eedf03486
commit 5725de2dac
35 changed files with 3360 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
from abc import ABC, abstractmethod
from typing import List, Optional
class BaseAgent(ABC):
"""Abstract base class for AI CLI agents."""
name: str = ""
aliases: List[str] = []
@abstractmethod
def is_available(self) -> bool:
"""Check if the agent CLI binary is installed and reachable in PATH."""
pass
@abstractmethod
def launch(self, prompt: str, extra_args: Optional[List[str]] = None) -> None:
"""Launch the agent interactively with the pre-seeded prompt."""
pass
def __repr__(self) -> str:
return f"<{self.__class__.__name__} name={self.name}>"