sandbox-agent/examples/docker-python/credentials.py
2026-02-25 02:18:16 -08:00

32 lines
1 KiB
Python

"""Agent detection and credential helpers for sandbox-agent examples."""
import os
import sys
def detect_agent() -> str:
"""Pick an agent based on env vars. Exits if no credentials are found."""
if os.environ.get("SANDBOX_AGENT"):
return os.environ["SANDBOX_AGENT"]
has_claude = bool(
os.environ.get("ANTHROPIC_API_KEY")
or os.environ.get("CLAUDE_API_KEY")
or os.environ.get("CLAUDE_CODE_OAUTH_TOKEN")
)
has_codex = (os.environ.get("OPENAI_API_KEY") or "").startswith("sk-")
if has_codex:
return "codex"
if has_claude:
return "claude"
print("No API keys found. Set ANTHROPIC_API_KEY or OPENAI_API_KEY.")
sys.exit(1)
def build_container_env() -> dict[str, str]:
"""Collect credential env vars to forward into the Docker container."""
env: dict[str, str] = {}
for key in ("ANTHROPIC_API_KEY", "CLAUDE_API_KEY", "OPENAI_API_KEY", "CODEX_API_KEY"):
val = os.environ.get(key)
if val:
env[key] = val
return env