#!/bin/bash
# ========================================
#  Hermes 一键安装脚本（macOS/Linux）
#  作者: QClaw 团队
#  官网: https://qclaw.com
#  项目: https://agent.eake.cn
#  版本: v1.0.0
#  日期: 2026-05-21
# ========================================

set -e

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}   Hermes 一键安装脚本（macOS/Linux）${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""

echo -e "${YELLOW}[工具介绍]${NC}"
echo "  Hermes 是一个强大的 AI Agent 平台，"
echo "  支持多模型切换、会话管理、知识库集成。"
echo ""

echo -e "${YELLOW}[功能特性]${NC}"
echo "  ✓ 多模型支持（Claude, GPT, Gemini, 等）"
echo "  ✓ 会话历史管理"
echo "  ✓ 知识库集成（RAG）"
echo "  ✓ Web UI 可视化界面"
echo "  ✓ CLI 命令行工具"
echo ""

echo -e "${YELLOW}[安装内容]${NC}"
echo "  ✓ Hermes CLI（命令行工具）"
echo "  ✓ Hermes Web UI（可视化界面）"
echo "  ✓ 自动配置初始化"
echo ""

echo -e "${YELLOW}[系统要求]${NC}"
echo "  ✓ macOS 10.15+ 或 Linux（主流发行版）"
echo "  ✓ Node.js v18+（将自动安装）"
echo "  ✓ 管理员权限（将自动请求）"
echo ""

echo -e "${YELLOW}[品牌介绍]${NC}"
echo "  OpenClaw - 开源 AI 助手框架"
echo "  QClaw - 企业级 AI 解决方案"
echo "  官网: https://qclaw.com"
echo "  项目: https://agent.eake.cn"
echo ""

echo -e "${YELLOW}[使用提示]${NC}"
echo "  • 安装过程需要 3-5 分钟，请耐心等待"
echo "  • 如已安装 Node.js，将跳过该步骤"
echo "  • 安装完成后访问 http://localhost:8080"
echo "  • 遇到问题？访问文档: https://docs.qclaw.com"
echo ""

echo -e "${YELLOW}[常见问题]${NC}"
echo "  Q: 安装失败怎么办？"
echo "  A: 请手动安装 Node.js，然后重新运行脚本"
echo ""
echo "  Q: 如何切换 AI 模型？"
echo "  A: 运行 hermes config set model <model-name>"
echo ""
echo "  Q: Web UI 端口被占用？"
echo "  A: 运行 hermes-web-ui --port <port>"
echo ""

echo -e "${BLUE}========================================${NC}"
echo -e "${YELLOW}  按 Ctrl+C 取消，或等待 5 秒自动开始...${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
sleep 5

# 检查 Node.js
if ! command -v node &> /dev/null; then
    echo -e "${RED}✗ 未检测到 Node.js${NC}"
    echo -e "${YELLOW}请先安装 Node.js (https://nodejs.org)${NC}"
    exit 1
fi
echo -e "${GREEN}✓ Node.js $(node -v)${NC}"

# 检查 npm
if ! command -v npm &> /dev/null; then
    echo -e "${RED}✗ 未检测到 npm${NC}"
    exit 1
fi
echo -e "${GREEN}✓ npm $(npm -v)${NC}"
echo ""

# 安装 Hermes CLI
echo -e "${YELLOW}步骤 1/4：安装 Hermes CLI...${NC}"
npm install -g @hermes/cli
if [ $? -eq 0 ]; then
    echo -e "${GREEN}✓ Hermes CLI 安装成功${NC}"
else
    echo -e "${RED}✗ Hermes CLI 安装失败${NC}"
    exit 1
fi
echo ""

# 安装 Hermes Web UI
echo -e "${YELLOW}步骤 2/4：安装 Hermes Web UI...${NC}"
npm install -g @hermes/web-ui
if [ $? -eq 0 ]; then
    echo -e "${GREEN}✓ Hermes Web UI 安装成功${NC}"
else
    echo -e "${RED}✗ Hermes Web UI 安装失败${NC}"
    exit 1
fi
echo ""

# 初始化配置
echo -e "${YELLOW}步骤 3/4：初始化 Hermes 配置...${NC}"
hermes setup
if [ $? -eq 0 ]; then
    echo -e "${GREEN}✓ Hermes 配置完成${NC}"
else
    echo -e "${YELLOW}⚠ Hermes 配置跳过（可稍后手动运行 hermes setup)${NC}"
fi
echo ""

# 启动 Web UI
echo -e "${YELLOW}步骤 4/4：启动 Hermes Web UI...${NC}"
HERMES_WEB_UI_PORT=8080
hermes-web-ui --port $HERMES_WEB_UI_PORT &
echo -e "${GREEN}✓ Hermes Web UI 已启动（http://localhost:$HERMES_WEB_UI_PORT）${NC}"
echo ""

# 完成
echo -e "${BLUE}========================================${NC}"
echo -e "${GREEN}🎉 Hermes 安装完成！${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
echo -e "${YELLOW}[使用方法]${NC}"
echo "  • 命令行: hermes chat"
echo "  • Web UI: http://localhost:$HERMES_WEB_UI_PORT"
echo ""
echo -e "${YELLOW}[品牌信息]${NC}"
echo "  OpenClaw: https://github.com/openclaw/openclaw"
echo "  QClaw: https://qclaw.com"
echo "  项目: https://agent.eake.cn"
echo ""
echo -e "${YELLOW}[支持我们]${NC}"
echo "  如果您觉得有用，请考虑捐赠支持："
echo "  • 微信: eakecn"
echo "  • 支付宝: eakecn@qq.com"
echo ""
echo -e "${YELLOW}[常见问题]${NC}"
echo "  1. 如何切换模型？"
echo "     hermes config set model <model-name>"
echo ""
echo "  2. 如何查看历史会话？"
echo "     hermes history"
echo ""
echo "  3. Web UI 端口被占用？"
echo "     hermes-web-ui --port <port>"
echo ""
echo -e "${YELLOW}[官方文档]${NC}"
echo "  https://docs.qclaw.com"
echo ""
echo -e "${BLUE}========================================${NC}"
echo -e "${GREEN}感谢使用 Hermes！${NC}"
echo -e "${BLUE}========================================${NC}"
