"""Executor adapters. `make_executor` picks the adapter class by the executor's `adapter` (default: its name).""" from .base import ExecResult, Executor, Run # noqa: F401 def make_executor(cfg, terminal, name, transport): ecfg = cfg.executors[name] adapter = ecfg.get("adapter", name) if adapter == "codex": from .codex import CodexExecutor as cls elif adapter == "claude-code": from .claude_code import ClaudeCodeExecutor as cls elif adapter == "shell": from .shell import ShellExecutor as cls else: raise ValueError("no executor adapter %s" % adapter) return cls(name, ecfg, terminal, cfg.terminals[terminal], transport)