|
|
@@ -0,0 +1,120 @@
|
|
|
+#!/bin/bash
|
|
|
+# Claude-Mem 安装验证脚本
|
|
|
+
|
|
|
+echo "🔍 正在验证 Claude-Mem 安装..."
|
|
|
+
|
|
|
+# 颜色定义
|
|
|
+GREEN='\033[0;32m'
|
|
|
+RED='\033[0;31m'
|
|
|
+YELLOW='\033[1;33m'
|
|
|
+NC='\033[0m' # No Color
|
|
|
+
|
|
|
+# 1. 检查 Node.js 版本
|
|
|
+echo ""
|
|
|
+echo "📦 检查 Node.js 版本..."
|
|
|
+if command -v node &> /dev/null; then
|
|
|
+ NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
|
|
|
+ if [ "$NODE_VERSION" -ge 18 ]; then
|
|
|
+ echo -e "${GREEN}✅ Node.js 版本: $(node -v) (满足要求 >= 18.0.0)${NC}"
|
|
|
+ else
|
|
|
+ echo -e "${RED}❌ Node.js 版本过低: $(node -v) (需要 >= 18.0.0)${NC}"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+else
|
|
|
+ echo -e "${RED}❌ 未检测到 Node.js${NC}"
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+# 2. 检查 Claude Code 插件目录
|
|
|
+echo ""
|
|
|
+echo "🔌 检查 Claude Code 插件..."
|
|
|
+CLAUDE_DIR="$HOME/.claude"
|
|
|
+MARKETPLACE_DIR="$CLAUDE_DIR/plugins/marketplaces/thedotmack"
|
|
|
+
|
|
|
+if [ -d "$MARKETPLACE_DIR" ]; then
|
|
|
+ echo -e "${GREEN}✅ Claude Code 插件目录存在${NC}"
|
|
|
+else
|
|
|
+ echo -e "${YELLOW}⚠️ Claude Code 插件目录不存在,可能需要先安装插件${NC}"
|
|
|
+fi
|
|
|
+
|
|
|
+# 3. 检查 worker 服务 (37777 端口)
|
|
|
+echo ""
|
|
|
+echo "🔄 检查 Claude-Mem Worker 服务..."
|
|
|
+WORKER_RUNNING=false
|
|
|
+if command -v curl &> /dev/null; then
|
|
|
+ if curl -s http://localhost:37777/api/health &> /dev/null; then
|
|
|
+ echo -e "${GREEN}✅ Claude-Mem Worker 服务运行中 (端口 37777)${NC}"
|
|
|
+ WORKER_RUNNING=true
|
|
|
+ else
|
|
|
+ echo -e "${YELLOW}⚠️ Claude-Mem Worker 服务未运行${NC}"
|
|
|
+ fi
|
|
|
+else
|
|
|
+ echo -e "${YELLOW}⚠️ 未安装 curl,无法检查服务状态${NC}"
|
|
|
+fi
|
|
|
+
|
|
|
+# 如果 Worker 未运行,尝试自动启动
|
|
|
+if [ "$WORKER_RUNNING" = false ]; then
|
|
|
+ echo ""
|
|
|
+ echo "💡 尝试自动启动 Worker 服务..."
|
|
|
+
|
|
|
+ # 检查 Bun 是否安装
|
|
|
+ if ! command -v bun &> /dev/null; then
|
|
|
+ echo -e "${YELLOW}⚠️ Bun 未安装,请先安装: npm install -g bun${NC}"
|
|
|
+ else
|
|
|
+ # 查找插件目录并启动
|
|
|
+ PLUGIN_DIR=""
|
|
|
+ for dir in "$HOME/.claude/plugins/cache/thedotmack/claude-mem" "$HOME/.claude/plugins/marketplaces/thedotmack"; do
|
|
|
+ if [ -d "$dir" ]; then
|
|
|
+ VERSION_DIR=$(find "$dir" -maxdepth 1 -type d -name "[0-9]*" 2>/dev/null | sort -V | tail -n 1)
|
|
|
+ if [ -n "$VERSION_DIR" ]; then
|
|
|
+ PLUGIN_DIR="$VERSION_DIR"
|
|
|
+ break
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ done
|
|
|
+
|
|
|
+ if [ -n "$PLUGIN_DIR" ] && [ -f "$PLUGIN_DIR/scripts/worker-cli.js" ]; then
|
|
|
+ echo "📂 找到插件目录: $PLUGIN_DIR"
|
|
|
+ cd "$PLUGIN_DIR" && node scripts/worker-cli.js start 2>/dev/null || true
|
|
|
+ sleep 2
|
|
|
+ if curl -s http://localhost:37777/api/health &> /dev/null; then
|
|
|
+ echo -e "${GREEN}✅ Worker 服务启动成功!${NC}"
|
|
|
+ else
|
|
|
+ echo -e "${YELLOW}⚠️ 自动启动失败,请手动运行: bash .claude/skills/claude-mem-install/scripts/start_worker.sh${NC}"
|
|
|
+ fi
|
|
|
+ else
|
|
|
+ echo -e "${YELLOW}⚠️ 未找到插件,请先安装: claude plugin install claude-mem${NC}"
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+fi
|
|
|
+
|
|
|
+# 4. 检查配置文件
|
|
|
+echo ""
|
|
|
+echo "⚙️ 检查配置文件..."
|
|
|
+SETTINGS_FILE="$HOME/.claude-mem/settings.json"
|
|
|
+if [ -f "$SETTINGS_FILE" ]; then
|
|
|
+ echo -e "${GREEN}✅ Claude-Mem 配置文件存在: $SETTINGS_FILE${NC}"
|
|
|
+else
|
|
|
+ echo -e "${YELLOW}⚠️ Claude-Mem 配置文件不存在(首次安装后自动创建)${NC}"
|
|
|
+fi
|
|
|
+
|
|
|
+# 5. 检查数据库
|
|
|
+echo ""
|
|
|
+echo "🗄️ 检查数据库..."
|
|
|
+DATA_DIR="$HOME/.claude-mem/data"
|
|
|
+if [ -d "$DATA_DIR" ]; then
|
|
|
+ DB_FILE=$(find "$DATA_DIR" -name "*.db" 2>/dev/null | head -n 1)
|
|
|
+ if [ -n "$DB_FILE" ]; then
|
|
|
+ echo -e "${GREEN}✅ Claude-Mem 数据库存在: $DB_FILE${NC}"
|
|
|
+ else
|
|
|
+ echo -e "${YELLOW}⚠️ 未找到数据库文件${NC}"
|
|
|
+ fi
|
|
|
+else
|
|
|
+ echo -e "${YELLOW}⚠️ Claude-Mem 数据目录不存在${NC}"
|
|
|
+fi
|
|
|
+
|
|
|
+echo ""
|
|
|
+echo "📋 验证完成!"
|
|
|
+echo ""
|
|
|
+echo "🌐 Web 查看器地址: http://localhost:37777"
|
|
|
+echo "📚 文档地址: https://docs.claude-mem.ai/"
|