FROM node:22-bookworm-slim@sha256:c3de60bf2f9dd0ac6370e6117950ff62d6e339527e7472301c9c78a017978392 AS build
RUN apt-get update && apt-get install -y --no-install-recommends python3 make g++ ca-certificates git \
    && rm -rf /var/lib/apt/lists/*
WORKDIR /opt/cloudcli
COPY cloudcli/package*.json ./
RUN npm ci --omit=dev --no-audit --no-fund
COPY cloudcli /opt/aiserver/cloudcli
RUN node /opt/aiserver/cloudcli/patch-runtime.mjs /opt/cloudcli/node_modules/@cloudcli-ai/cloudcli \
    && node /opt/aiserver/cloudcli/patch-policy.mjs /opt/cloudcli/node_modules/@cloudcli-ai/cloudcli \
    && node /opt/aiserver/cloudcli/patch-client.mjs /opt/cloudcli/node_modules/@cloudcli-ai/cloudcli
ADD --checksum=sha256:018121b715608a98b461a827cf657c75397087a6843527cffb62bcdf1c45e472 https://codeload.github.com/siteboon/claudecodeui/tar.gz/272a10884a5a11e30667888318439b324895549b /tmp/upstream-source.tar.gz
RUN mkdir /tmp/cloudcli-full-source \
    && tar -xzf /tmp/upstream-source.tar.gz --strip-components=1 -C /tmp/cloudcli-full-source \
    && node /opt/aiserver/cloudcli/patch-client.mjs /opt/cloudcli/node_modules/@cloudcli-ai/cloudcli /tmp/cloudcli-full-source
COPY . /tmp/integration-source
RUN python3 /opt/aiserver/cloudcli/build-source.py --upstream /tmp/upstream-source.tar.gz \
    --package /opt/cloudcli/node_modules/@cloudcli-ai/cloudcli \
    --source /tmp/cloudcli-full-source \
    --integration /tmp/integration-source --output /opt/aiserver/source.tar.gz

FROM node:22-bookworm-slim@sha256:c3de60bf2f9dd0ac6370e6117950ff62d6e339527e7472301c9c78a017978392
RUN apt-get update && apt-get install -y --no-install-recommends python3 ca-certificates \
    && rm -rf /var/lib/apt/lists/* \
    && groupadd -g 10001 agent && useradd -u 10001 -g 10001 -m -d /home/agent agent \
    && mkdir -p /workspace /transcripts /home/agent/.cloudcli \
    && chown 10001:10001 /home/agent/.cloudcli
COPY --from=build /opt/cloudcli /opt/cloudcli
COPY --from=build /opt/aiserver/cloudcli /opt/aiserver/cloudcli
COPY --from=build /opt/aiserver/source.tar.gz /opt/aiserver/source.tar.gz
RUN cp /opt/aiserver/cloudcli/bridge.py /opt/aiserver/cloudcli-bridge \
    && chmod 0555 /opt/aiserver/cloudcli-bridge
ENV NODE_ENV=production HOME=/home/agent CODEX_HOME=/transcripts \
    SERVER_PORT=8080 HOST=0.0.0.0 WORKSPACES_ROOT=/workspace \
    DATABASE_PATH=/home/agent/.cloudcli/auth.db \
    AISERVER_BRIDGE_URL=http://control:8082 \
    AISERVER_CONTROL_URL=http://control:8082 \
    AISERVER_BRIDGE_TOKEN_FILE=/run/secrets/bridge_token
WORKDIR /opt/cloudcli/node_modules/@cloudcli-ai/cloudcli
USER 10001:10001
CMD ["node", "/opt/aiserver/cloudcli/bootstrap.mjs"]
