#!/usr/bin/env bash
set -euo pipefail
# Signal AI Gateway — Hermes Agent 自动接入
API_KEY="${1:-}"
GATEWAY_BASE="${GATEWAY_BASE_URL:-https://api.4stoken.cn}"
BASE_URL="${GATEWAY_BASE%/}/v1"
MODEL="${GATEWAY_HERMES_MODEL:-gpt-5.5}"
OR_MODEL="${GATEWAY_HERMES_OR_MODEL:-openrouter-free}"
SETUP_DIR="$HOME/.hermes"
ENV_FILE="$SETUP_DIR/.env"
CONFIG_FILE="${HERMES_CONFIG_FILE:-$SETUP_DIR/config.json}"
SETUP_FILE="$SETUP_DIR/signal-gateway-setup.txt"
if [ -z "$API_KEY" ]; then printf '\033[1;31m错误：\033[0m请提供 Client Key\n'; exit 1; fi
mkdir -p "$SETUP_DIR"
mkdir -p "$(dirname "$CONFIG_FILE")"
backup_file() {
  local file="$1"
  if [ -f "$file" ]; then cp "$file" "$file.bak-$(date +%Y%m%d%H%M%S)"; fi
}
backup_file "$ENV_FILE"
backup_file "$CONFIG_FILE"
cat > "$ENV_FILE" <<EOF
OPENAI_API_BASE=$BASE_URL
OPENAI_BASE_URL=$BASE_URL
OPENAI_API_KEY=$API_KEY
OPENAI_MODEL=$MODEL
MODEL=$MODEL
EOF
cat > "$CONFIG_FILE" <<EOF
{
  "llm": {
    "provider": "openai-compatible",
    "base_url": "$BASE_URL",
    "api_key": "$API_KEY",
    "model": "$MODEL"
  },
  "models": ["$MODEL", "$OR_MODEL"]
}
EOF
cat > "$SETUP_FILE" <<EOF
OPENAI_API_BASE=$BASE_URL
OPENAI_BASE_URL=$BASE_URL
OPENAI_API_KEY=$API_KEY
OPENAI_MODEL=$MODEL
MODEL=$MODEL
FALLBACK_MODEL=$OR_MODEL
EOF
printf '\n\033[1;36m=== Signal Gateway → Hermes Agent ===\033[0m\n\n'
printf 'Gateway: %s\nOpenAI Base: %s\nModel: %s\nFallback: %s\n\n' "$GATEWAY_BASE" "$BASE_URL" "$MODEL" "$OR_MODEL"
printf '\033[0;32m✓ 已写入 %s\033[0m\n' "$ENV_FILE"
printf '\033[0;32m✓ 已写入 %s\033[0m\n' "$CONFIG_FILE"
printf '\033[0;32m✓ LLM Provider 已设置为 openai-compatible，模型 %s\033[0m\n' "$MODEL"
printf '\n配置备忘: %s\n' "$SETUP_FILE"
if command -v pbcopy &>/dev/null; then printf '%s' "$API_KEY" | pbcopy; printf '\033[0;32m✓ API Key 已复制\033[0m\n'; fi
printf '\033[0;33m请重新打开 Hermes Agent，让它读取新配置；如使用自定义配置路径，请设置 HERMES_CONFIG_FILE 后重跑脚本。\033[0m\n'
