claude:
  description: "Claude Code AI assistant"
  dockerfile:
    args:
      CLAUDE_CODE_VERSION: "latest"
    dirs:
      - "/home/$USERNAME/.claude"
    run:
      - "sudo npm install -g @anthropic-ai/claude-code@${CLAUDE_CODE_VERSION}"
  devcontainer:
    build_args:
      CLAUDE_CODE_VERSION: "latest"
    mounts:
      - "source={volume_prefix}-claude-config-${devcontainerId},target=/home/developer/.claude,type=volume"
    container_env:
      CLAUDE_CONFIG_DIR: "/home/developer/.claude"
  firewall:
    domains:
      - "registry.npmjs.org"
      - "api.anthropic.com"
      - "sentry.io"
      - "statsig.anthropic.com"
      - "statsig.com"

codex:
  description: "OpenAI Codex CLI assistant"
  dockerfile:
    args:
      CODEX_VERSION: "latest"
    dirs:
      - "/home/$USERNAME/.codex"
    run:
      - "sudo npm install -g @openai/codex@${CODEX_VERSION}"
  devcontainer:
    build_args:
      CODEX_VERSION: "latest"
    mounts:
      - "source={volume_prefix}-codex-config-${devcontainerId},target=/home/developer/.codex,type=volume"
    container_env:
      CODEX_HOME: "/home/developer/.codex"
  firewall:
    domains:
      - "registry.npmjs.org"
      - "api.openai.com"

gemini:
  description: "Google Gemini CLI assistant"
  dockerfile:
    args:
      GEMINI_CLI_VERSION: "latest"
    dirs:
      - "/home/$USERNAME/.gemini"
    run:
      - "sudo npm install -g @google/gemini-cli@${GEMINI_CLI_VERSION}"
  devcontainer:
    build_args:
      GEMINI_CLI_VERSION: "latest"
    mounts:
      - "source={volume_prefix}-gemini-config-${devcontainerId},target=/home/developer/.gemini,type=volume"
  firewall:
    domains:
      - "registry.npmjs.org"
      - "generativelanguage.googleapis.com"

postgres:
  description: "PostgreSQL client tools"
  dockerfile:
    run:
      - "sudo apt-get update && sudo apt-get install -y --no-install-recommends postgresql-client && sudo apt-get clean && sudo rm -rf /var/lib/apt/lists/*"

flyio:
  description: "Fly.io CLI for deployment"
  dockerfile:
    dirs:
      - "/home/$USERNAME/.fly"
    run:
      - "curl -L https://fly.io/install.sh | FLYCTL_INSTALL=/home/$USERNAME/.fly sh"
  devcontainer:
    mounts:
      - "source={volume_prefix}-fly-config-${devcontainerId},target=/home/developer/.fly,type=volume"
    container_env:
      PATH: "/home/developer/.fly/bin:${containerEnv:PATH}"
  firewall:
    domains:
      - "fly.io"
      - "api.fly.io"
      - "registry.fly.io"
