diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 000000000..35d290d1b --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,8 @@ +FROM mcr.microsoft.com/devcontainers/typescript-node:1-22-bookworm + +ENV BUN_INSTALL=/usr/local/bun + +RUN set -eux; \ + curl -fsSL https://bun.sh/install | bash; \ + ln -sf /usr/local/bun/bin/bun /usr/local/bin/bun; \ + ln -sf /usr/local/bun/bin/bunx /usr/local/bin/bunx diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..8efef08ef --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,14 @@ +{ + "name": "Node.js & TypeScript", + "build": { + "dockerfile": "Dockerfile", + "context": "." + }, + "customizations": { + "vscode": { + "extensions": ["oven.bun-vscode"] + } + }, + "postCreateCommand": "bun install --frozen-lockfile && bash ./.devcontainer/setup-gstack.sh", + "remoteUser": "node" +} diff --git a/.devcontainer/setup-gstack.sh b/.devcontainer/setup-gstack.sh new file mode 100755 index 000000000..86bcca00c --- /dev/null +++ b/.devcontainer/setup-gstack.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" +SKILL_DIR="$HOME/.claude/skills" + +mkdir -p "$SKILL_DIR" + +target="$SKILL_DIR" + +# Copy repo contents into ~/.claude/skills without deleting existing files. +cp -a "$REPO_ROOT"/. "$target"/ + +echo "Skill directory: $SKILL_DIR" +echo "Copied project root into: $target"