#!/usr/bin/env bash
set -euo pipefail
# Signal AI Gateway — Trae 配置包生成器
API_KEY="${1:-}"
GATEWAY_BASE="${GATEWAY_BASE_URL:-https://api.4stoken.cn}"
BASE_URL="${GATEWAY_BASE%/}/v1"
MODEL="${GATEWAY_TRAE_MODEL:-gpt-5.5}"
OR_MODEL="${GATEWAY_TRAE_OR_MODEL:-openrouter-free}"
SETUP_DIR="$HOME/.trae"
SETUP_FILE="$SETUP_DIR/signal-gateway-setup.txt"
JSON_FILE="$SETUP_DIR/signal-gateway.json"
ENV_FILE="$SETUP_DIR/signal-gateway.env"
if [ -z "$API_KEY" ]; then printf '\033[1;31m错误：\033[0m请提供 Client Key\n'; exit 1; fi
mkdir -p "$SETUP_DIR"
cat > "$SETUP_FILE" <<EOF
Signal Gateway → Trae
=====================
Provider: Custom OpenAI
Base URL: $BASE_URL
API Key: $API_KEY
Model ID: $MODEL
Fallback Model ID: $OR_MODEL

Trae 当前未公开稳定的本地配置文件格式。请在 Settings → Models → Custom OpenAI 中按上方字段填写。
EOF
cat > "$JSON_FILE" <<EOF
{
  "provider": "Custom OpenAI",
  "baseUrl": "$BASE_URL",
  "apiKey": "$API_KEY",
  "models": ["$MODEL", "$OR_MODEL"],
  "defaultModel": "$MODEL"
}
EOF
cat > "$ENV_FILE" <<EOF
OPENAI_BASE_URL=$BASE_URL
OPENAI_API_KEY=$API_KEY
OPENAI_MODEL=$MODEL
GATEWAY_OPENROUTER_FREE_MODEL=$OR_MODEL
EOF
printf '\n\033[1;36m=== Signal Gateway → Trae ===\033[0m\n\n'
printf 'Gateway: %s\nOpenAI Base: %s\nModel: %s\nOpenRouter: %s\n\n' "$GATEWAY_BASE" "$BASE_URL" "$MODEL" "$OR_MODEL"
printf '\033[0;32m✓ 已生成配置清单 %s\033[0m\n' "$SETUP_FILE"
printf '\033[0;32m✓ 已生成 JSON 配置包 %s\033[0m\n' "$JSON_FILE"
printf '\033[0;32m✓ 已生成 env 配置 %s\033[0m\n\n' "$ENV_FILE"
printf '\033[1m操作步骤：\033[0m\n'
printf '  1. Trae → Settings → Models → Custom OpenAI\n'
printf "  2. Base URL: %s\n" "$BASE_URL"
printf "  3. API Key: %s\n" "$API_KEY"
printf "  4. Model ID: %s / %s\n" "$MODEL" "$OR_MODEL"
if command -v pbcopy &>/dev/null; then printf '%s' "$API_KEY" | pbcopy; printf '\n\033[0;32m✓ API Key 已复制\033[0m\n'; fi
printf '\n\033[0;33m注意：Trae 目前未公开稳定配置落盘格式，脚本已生成可复制/导入配置包，仍需在客户端确认。\033[0m\n'
