Source code for fermilink.agents.deepseek_agent

from __future__ import annotations

from pathlib import Path

from fermilink.agent_runtime import DEFAULT_SANDBOX_POLICY, normalize_sandbox_policy
from fermilink.agents.base import ProviderAgent


[docs] class DeepseekAgent(ProviderAgent): """DeepSeek provider adapter with provider-native CLI translation.""" @property def provider(self) -> str: return "deepseek" @property def bin_env_key(self) -> str: return "FERMILINK_DEEPSEEK_BIN" @property def default_binary(self) -> str: return "deepseek"
[docs] def uses_json_stream(self) -> bool: return True
[docs] def build_exec_command( self, *, provider_bin: str, repo_dir: Path, prompt: str, sandbox_policy: str = DEFAULT_SANDBOX_POLICY, sandbox_mode: str | None = None, model: str | None = None, reasoning_effort: str | None = None, json_output: bool = True, ) -> list[str]: del reasoning_effort normalized_policy = normalize_sandbox_policy(sandbox_policy) cmd = [provider_bin, "--workspace", str(Path(repo_dir))] if json_output: cmd.append("--quiet") if normalized_policy == "bypass": cmd.append("--global") else: cmd.append("--no-global") if isinstance(sandbox_mode, str) and sandbox_mode.strip() == "read-only": cmd.append("--read-only") if isinstance(model, str) and model.strip(): cmd.extend(["--model", model.strip()]) cmd.append(f"--prompt={prompt}") return cmd