29 lines
625 B
Python
29 lines
625 B
Python
"""Agent factory for clink CLI integrations."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from clink.models import ResolvedCLIClient
|
|
|
|
from .base import AgentOutput, BaseCLIAgent, CLIAgentError
|
|
from .codex import CodexAgent
|
|
from .gemini import GeminiAgent
|
|
|
|
_AGENTS: dict[str, type[BaseCLIAgent]] = {
|
|
"gemini": GeminiAgent,
|
|
"codex": CodexAgent,
|
|
}
|
|
|
|
|
|
def create_agent(client: ResolvedCLIClient) -> BaseCLIAgent:
|
|
agent_key = client.name.lower()
|
|
agent_cls = _AGENTS.get(agent_key, BaseCLIAgent)
|
|
return agent_cls(client)
|
|
|
|
|
|
__all__ = [
|
|
"AgentOutput",
|
|
"BaseCLIAgent",
|
|
"CLIAgentError",
|
|
"create_agent",
|
|
]
|