#!/bin/bash

# 启动所有服务

# 获取脚本所在目录的父目录（即项目根目录）
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"

# 设置工作目录为 ~/.evolve
cd ~/.evolve

echo "🚀 启动所有服务..."

# 设置PYTHONPATH，指向项目根目录
export PYTHONPATH=$PROJECT_ROOT

# 检查虚拟环境是否存在，如果不存在则创建
if [ ! -d "$PROJECT_ROOT/venv" ]; then
    echo "创建Python虚拟环境..."
    python3 -m venv $PROJECT_ROOT/venv
fi

# 激活虚拟环境
echo "激活虚拟环境..."
source $PROJECT_ROOT/venv/bin/activate

# 杀掉可能占用端口的进程
echo "检查并清理占用的端口..."
for port in 3333 8000; do
    if lsof -i :$port > /dev/null 2>&1; then
        echo "杀掉占用端口 $port 的进程..."
        lsof -ti :$port | xargs kill -9 2>/dev/null || echo "无法杀掉端口 $port 的进程"
    fi
done

# 初始化LlamaIndex RAG数据（增量模式，启动文件监控）
echo "- 初始化LlamaIndex RAG数据..."
python $PROJECT_ROOT/scripts/init-rag-llama.py --monitor > /tmp/rag-llama-init.log 2>&1

# 启动LMCE API
echo "- 启动LMCE API..."
python $PROJECT_ROOT/scripts/start-lmce.py > /tmp/lmce.log 2>&1 &
LMCE_PID=$!

# 启动MCP Server
echo "- 启动MCP Server..."
python $PROJECT_ROOT/scripts/start-mcp.py > /tmp/mcp.log 2>&1 &
MCP_PID=$!


# 将PID写入文件以便后续管理
echo $LMCE_PID > .pids
echo $MCP_PID >> .pids

echo "✅ 所有服务已启动（日志分别位于 /tmp/rag-llama-init.log, /tmp/lmce.log, /tmp/mcp.log）"