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

# Signal AI Gateway — Cursor 半自动接入
# Cursor 配置在 SQLite (state.vscdb) 中，无法通过文件直接写入。

API_KEY="${1:-}"
GATEWAY_BASE="${GATEWAY_BASE_URL:-https://api.4stoken.cn}"
BASE_URL="${GATEWAY_BASE%/}/v1"
OR_MODEL="${GATEWAY_CURSOR_OR_MODEL:-openrouter-free}"
CURSOR_DIR="$HOME/.cursor"
SETUP_FILE="$CURSOR_DIR/signal-gateway-setup.txt"

if [ -z "$API_KEY" ]; then
  printf '\033[1;31m错误：\033[0m请提供 Client Key\n'
  printf '用法: ... | bash -s -- sk-YOUR_KEY\n'
  exit 1
fi

mkdir -p "$CURSOR_DIR"

cat > "$SETUP_FILE" <<EOF
Signal AI Gateway → Cursor 配置备忘
====================================
OpenAI API Key:
$API_KEY

Override OpenAI Base URL:
$BASE_URL

Add Custom Model（建议全部添加）:
  spt-5.5              → Portal gpt-5.5
  spt-5.4              → Portal gpt-5.4
  spt-5.4-nano         → Portal gpt-5.4-nano
  spt-5.4-mini         → Portal gpt-5.4-mini
  spt-5.3-codex-xhigh  → Portal gpt-5.3-codex-xhigh
  $OR_MODEL            → Portal OpenRouter Free（无 spt 别名，填 modelCode）

规则: GPT 的 gpt- 改为 spt-；OpenRouter 等无别名模型直接填 modelCode。
切换 OpenRouter: 在 Cursor 模型列表选 $OR_MODEL（需先 Add Custom Model）。
EOF

printf '\n\033[1;36m══════════════════════════════════════════\033[0m\n'
printf '\033[1m   Signal AI Gateway → Cursor 接入向导\033[0m\n'
printf '\033[1;36m══════════════════════════════════════════\033[0m\n\n'

printf '\033[1m在 Cursor Settings → Models 中填写：\033[0m\n\n'
printf '  \033[1mOpenAI API Key:\033[0m\n    %s\n\n' "$API_KEY"
printf '  \033[1mOverride OpenAI Base URL:\033[0m\n    %s\n\n' "$BASE_URL"
printf '  \033[1mAdd Custom Model:\033[0m\n'
printf '    spt-5.5 / spt-5.4 / spt-5.4-nano / spt-5.4-mini / spt-5.3-codex-xhigh\n'
printf '    \033[1m%s\033[0m  → OpenRouter 免费（无 spt 别名，必填 modelCode）\n\n' "$OR_MODEL"

if command -v pbcopy &>/dev/null; then
  printf '%s' "$API_KEY" | pbcopy
  printf '\033[0;32m✓ API Key 已复制到剪贴板\033[0m\n\n'
elif command -v xclip &>/dev/null; then
  printf '%s' "$API_KEY" | xclip -selection clipboard
  printf '\033[0;32m✓ API Key 已复制到剪贴板\033[0m\n\n'
elif command -v xsel &>/dev/null; then
  printf '%s' "$API_KEY" | xsel --clipboard
  printf '\033[0;32m✓ API Key 已复制到剪贴板\033[0m\n\n'
fi

printf '\033[1m操作步骤：\033[0m\n'
printf '  1. Cursor → Settings → Cursor Settings → Models\n'
printf '  2. API Keys → OpenAI API Key → 粘贴 Key\n'
printf '  3. Override OpenAI Base URL → 填入上方 URL\n'
printf '  4. Add Custom Model → 添加 spt-* 与 \033[1m%s\033[0m\n' "$OR_MODEL"
printf '  5. 关闭 Auto，在模型列表选择 spt-* 或 %s 后测试\n\n' "$OR_MODEL"
printf '  配置备忘已写入: %s\n\n' "$SETUP_FILE"
printf '\033[0;33m注意：Cursor 无法脚本自动写入，需手动 Add Custom Model。\033[0m\n'
