#!/bin/bash # ───────────────────────────────────────────── # LemonBoss — 启动脚本 # ───────────────────────────────────────────── set -e echo "🧬 LemonBoss 启动中..." echo "═══════════════════════════════════" # 检查依赖 if [ ! -d "node_modules" ]; then echo "⚠️ 未安装依赖,先运行: ./install.sh" exit 1 fi # 检测并清理端口冲突 for PORT in 3010 5173; do PID=$(lsof -ti:$PORT 2>/dev/null || true) if [ -n "$PID" ]; then echo "⚠️ 端口 $PORT 被占用 (PID: $PID),正在释放..." kill -9 $PID 2>/dev/null || true sleep 0.5 echo " ✅ 端口 $PORT 已释放" fi done # 启动后端 Agent Chat Server echo "🔌 启动 Agent Server (端口 3010)..." PORT=3010 node server/agent-server.js & SERVER_PID=$! # 等待后端启动 sleep 1 # 启动前端 Vite Dev Server echo "🖥️ 启动前端 (端口 5173)..." cd web && npx vite --host 2>/dev/null & WEB_PID=$! # 等待前端启动 sleep 2 echo "" echo "═══════════════════════════════════" echo "✅ LemonBoss 已启动!" echo "" echo " 🌐 打开: http://localhost:5173" echo " 🧬 Innovator: http://localhost:5173/agent/innovator-001" echo " 🔌 API: http://localhost:3010/api/agent/list" echo "" echo " 按 Ctrl+C 停止" echo "═══════════════════════════════════" # 等待中断 trap "echo ''; echo '🛑 正在关闭...'; kill $SERVER_PID $WEB_PID 2>/dev/null; exit 0" SIGINT SIGTERM wait