{
  "name": "PolyMind (Frontend)",
  "build": {
    "dockerfile": "Dockerfile",
    "context": ".",
    "args": { "VARIANT": "24" }
  },

  "remoteUser": "node",
  "updateRemoteUserUID": true,
  "workspaceFolder": "/workspaces/polymind",

  // Use host networking so the container can reach host services (agentd, witty-service)
  // at 127.0.0.1 without extra port forwarding. Ports listed below are for labeling only.
  "runArgs": ["--network", "host"],

  "containerEnv": {
    "PNPM_HOME": "/home/node/.local/share/pnpm"
  },

  "mounts": [
    "source=polymind_pnpm_store,target=/home/node/.local/share/pnpm,type=volume",
    "source=polymind_node_modules,target=/workspaces/polymind/node_modules,type=volume"
  ],

  "onCreateCommand": "bash .devcontainer/scripts/post-create.sh",
  "postStartCommand": "bash .devcontainer/scripts/post-start.sh",

  // With host networking, ports appear directly on the host — listed for VS Code Ports view
  "forwardPorts": [3000, 3001],
  "portsAttributes": {
    "3000": { "label": "PolyMind Dev Server (Next.js)" },
    "3001": { "label": "PolyMind Production CLI (standalone)" }
  },

  "customizations": {
    "vscode": {
      "extensions": [
        "dbaeumer.vscode-eslint",
        "esbenp.prettier-vscode",
        "bradlc.vscode-tailwindcss",
        "Orta.vscode-jest"
      ],
      "settings": {
        "editor.formatOnSave": true,
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.codeActionsOnSave": {
          "source.fixAll.eslint": "explicit"
        },
        "eslint.useFlatConfig": true,
        "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"],
        "typescript.tsdk": "node_modules/typescript/lib",
        "npm.packageManager": "pnpm",
        "files.eol": "\n",
        "search.exclude": {
          "**/node_modules": true,
          "**/.next": true,
          "**/coverage": true
        },
        "files.watcherExclude": {
          "**/.next/**": true,
          "**/node_modules/**": true
        },
        "terminal.integrated.defaultProfile.linux": "bash"
      }
    }
  }
}