// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
{
	"name": "SpecKitDevContainer",
	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
	"image": "mcr.microsoft.com/devcontainers/python:3.13-trixie", // based on Debian "Trixie" (13)
	"features": {
		"ghcr.io/devcontainers/features/common-utils:2": {
			"installZsh": true,
			"installOhMyZsh": true,
			"installOhMyZshConfig": true,
			"upgradePackages": true,
			"username": "devcontainer",
			"userUid": "automatic",
			"userGid": "automatic"
		},
		"ghcr.io/devcontainers/features/dotnet:2": {
			"version": "lts"
		},
		"ghcr.io/devcontainers/features/git:1": {
			"ppa": true,
			"version": "latest"
		},
		"ghcr.io/devcontainers/features/node": {
			"version": "lts"
		}
	},

	// Use 'forwardPorts' to make a list of ports inside the container available locally.
  "forwardPorts": [
	8080 // for Spec-Kit documentation site
  ],
  "containerUser": "devcontainer",
  "updateRemoteUserUID": true,
  "postCreateCommand": "chmod +x ./.devcontainer/post-create.sh && ./.devcontainer/post-create.sh",
  "postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
  "customizations": {
    "vscode": {
      "extensions": [
		"mhutchie.git-graph",
		"eamodio.gitlens",
		"anweber.reveal-button",
		"chrisdias.promptboost",
		// Github Copilot
		"GitHub.copilot",
		"GitHub.copilot-chat",
		// Codex
		"openai.chatgpt",
		// Kilo Code
		"kilocode.Kilo-Code",
		// Roo Code
		"RooVeterinaryInc.roo-cline",
		// Amazon Developer Q
		"AmazonWebServices.amazon-q-vscode",
		// Claude Code
		"anthropic.claude-code"
	],
      "settings": {
		"debug.javascript.autoAttachFilter": "disabled", // fix running commands in integrated terminal

		// Specify settings for Github Copilot
		"git.autofetch": true,
		"chat.promptFilesRecommendations": {
			"speckit.constitution": true,
			"speckit.specify": true,
			"speckit.plan": true,
			"speckit.tasks": true,
			"speckit.implement": true
		},
		"chat.tools.terminal.autoApprove": {
			".specify/scripts/bash/": true,
			".specify/scripts/powershell/": true
		}
      }
    }
  }
}
