FROM node:20-slim

WORKDIR /app

# Install pnpm
RUN npm install -g pnpm@10

# Copy package files first for layer caching
COPY package.json pnpm-lock.yaml ./

# Install dependencies
RUN pnpm install --frozen-lockfile

# Copy source code
COPY . .

# LangGraph dev prerequisites
RUN touch .env && mkdir -p .langgraph_api

# Expose port 8080 for Azure auto-detection
EXPOSE 8080

# Start LangGraph.js server on port 8080
ENV PORT=8080
RUN grep -q '.langgraph_api' .gitignore 2>/dev/null || echo '.langgraph_api' >> .gitignore
CMD ["npx", "langgraphjs", "dev", "--host", "0.0.0.0", "--port", "8080", "--no-browser"]
