#!/usr/bin/env bash
set -euo pipefail

echo 'DevProfile Linux Bootstrap'
echo '聚焦：MCP Server、工具套件與 Agent 框架。'
echo '請先閱讀腳本內容，確認後再執行。本腳本不會設定任何 Secret 值。'
echo ''

# 1. 基礎 Runtime 與套件管理器
sudo apt-get update
sudo apt-get install -y git nodejs npm

curl -fsSL https://bun.sh/install | bash
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. npm 全域工具套件
NPM_GLOBALS=(
  '@colbymchenry/codegraph'
  '@fission-ai/openspec'
  'codebase-memory-mcp'
)
for pkg in "${NPM_GLOBALS[@]}"; do
  echo "npm install -g $pkg"
  sudo npm install -g "$pkg"
done

# 3. Python MCP（Serena 語意導航、MemPalace 記憶系統）
echo 'Installing Serena via uv...'
uv tool install -p 3.13 serena-agent
echo 'Installing MemPalace via uv...'
uv tool install mempalace

# 4. MCP Server 設定提示
echo ''
echo '=== MCP Server 設定提示（寫入 AI Client 的 MCP 設定檔） ==='
cat <<'EOF'
  context7:            npx -y @upstash/context7-mcp
  sequential-thinking: npx -y @modelcontextprotocol/server-sequential-thinking
  filesystem:          npx -y @modelcontextprotocol/server-filesystem <允許目錄>
  memory:              npx -y @modelcontextprotocol/server-memory
  playwright:          npx -y @playwright/mcp
  fetch:               uvx mcp-server-fetch
  mempalace:           mempalace mcp
  serena:              serena start-mcp-server
  codegraph:           codegraph serve --mcp
  codebase-memory:     codebase-memory-mcp
  github (remote):     https://api.githubcopilot.com/mcp/
EOF

# 5. Claude Plugin 與 Agent Harness
echo ''
echo '=== Claude Plugin / Agent Harness（於對應 CLI 內執行） ==='
echo '  Superpowers:       /plugin install superpowers@claude-plugins-official'
echo '  UI/UX Pro Max:     /plugin marketplace add nextlevelbuilder/ui-ux-pro-max-skill'
echo '  oh-my-openagent:   bunx oh-my-openagent install'

# 6. 需手動設定的環境變數
echo ''
echo '=== 請手動於安全位置設定以下環境變數（僅記錄名稱） ==='
echo '  - oh-my-openagent: OMO_DISABLE_POSTHOG, OMO_SEND_ANONYMOUS_TELEMETRY'
echo '  - GitHub MCP:      GITHUB_PERSONAL_ACCESS_TOKEN（本機 Docker 模式才需要）'

echo ''
echo '完成。Secret 值請自行以安全方式設定，網站不保存任何金鑰內容。'
