FROM oven/bun:1.2.15-alpine

WORKDIR /opt/agentrun
ARG HTTP_PROXY
ARG HTTPS_PROXY
ARG NO_PROXY
ENV NODE_ENV=production
ENV PORT=8080
ENV AGENTRUN_CODEX_COMMAND=/opt/agentrun/node_modules/.bin/codex
ENV AGENTRUN_APP_ROOT=/workspace/agentrun
ENV AGENTRUN_BOOT_REPO_URL=http://git-mirror-http.devops-infra.svc.cluster.local/pikasTech/agentrun.git

RUN HTTP_PROXY="$HTTP_PROXY" HTTPS_PROXY="$HTTPS_PROXY" NO_PROXY="$NO_PROXY" http_proxy="$HTTP_PROXY" https_proxy="$HTTPS_PROXY" no_proxy="$NO_PROXY" \
  apk add --no-cache ca-certificates curl git github-cli kubectl nodejs npm openssh-client ripgrep

COPY package.json bun.lock tsconfig.json ./
RUN HTTP_PROXY="$HTTP_PROXY" HTTPS_PROXY="$HTTPS_PROXY" NO_PROXY="$NO_PROXY" http_proxy="$HTTP_PROXY" https_proxy="$HTTPS_PROXY" no_proxy="$NO_PROXY" \
  bun install --production
RUN /opt/agentrun/node_modules/.bin/codex --version && /opt/agentrun/node_modules/.bin/codex app-server --help >/dev/null
RUN set -eu; \
  for tool in bun node npm git ssh gh rg curl kubectl; do command -v "$tool" >/dev/null; done; \
  bun --version >/tmp/agentrun-work-ready-smoke.txt; \
  node --version >>/tmp/agentrun-work-ready-smoke.txt; \
  npm --version >>/tmp/agentrun-work-ready-smoke.txt; \
  git --version >>/tmp/agentrun-work-ready-smoke.txt; \
  ssh -V 2>>/tmp/agentrun-work-ready-smoke.txt || true; \
  gh --version | head -n 1 >>/tmp/agentrun-work-ready-smoke.txt; \
  rg --version | head -n 1 >>/tmp/agentrun-work-ready-smoke.txt; \
  curl --version | head -n 1 >>/tmp/agentrun-work-ready-smoke.txt; \
  kubectl version --client 2>/dev/null | head -n 1 >>/tmp/agentrun-work-ready-smoke.txt
COPY deploy/runtime/boot ./deploy/runtime/boot
RUN chmod +x /opt/agentrun/deploy/runtime/boot/*.sh

EXPOSE 8080
CMD ["/opt/agentrun/deploy/runtime/boot/agentrun-mgr.sh"]
