docs: add setup guides and error notification component
- Add OpenFang Kernel configuration guide (docs/setup/OPENFANG-SETUP.md) - Add Chinese models configuration guide (docs/setup/chinese-models.md) - Add quick start guide (docs/quick-start.md) - Add quick start scripts for Windows and Linux/macOS - Add ErrorNotification component for centralized error display These additions help users: - Quickly set up development environment - Configure OpenFang backend correctly - Configure Chinese LLM providers (GLM, Qwen, Kimi, MiniMax) - See error notifications in a consistent UI Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
218
scripts/quick-start.sh
Normal file
218
scripts/quick-start.sh
Normal file
@@ -0,0 +1,218 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# ZCLAW Development Quick Start Script
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/quick-start.sh [options]
|
||||
#
|
||||
# Options:
|
||||
# --skip-backend Skip backend startup (assume already running)
|
||||
# --desktop-only Start desktop only
|
||||
# --stop Stop all services
|
||||
# --help Show this help message
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
PROJECT_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
SKIP_BACKEND=false
|
||||
DESKTOP_ONLY=false
|
||||
STOP_SERVICES=false
|
||||
|
||||
# Parse arguments
|
||||
for arg in "$@"; do
|
||||
case $arg in
|
||||
--skip-backend)
|
||||
SKIP_BACKEND=true
|
||||
shift
|
||||
;;
|
||||
--desktop-only)
|
||||
DESKTOP_ONLY=true
|
||||
shift
|
||||
;;
|
||||
--stop)
|
||||
STOP_SERVICES=true
|
||||
shift
|
||||
;;
|
||||
--help)
|
||||
echo "ZCLAW Development Quick Start Script"
|
||||
echo ""
|
||||
echo "Usage: $0 [options]"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " --skip-backend Skip backend startup"
|
||||
echo " --desktop-only Start desktop only"
|
||||
echo " --stop Stop all services"
|
||||
echo " --help Show this help"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $arg"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Colors
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Output functions
|
||||
step() {
|
||||
echo -e "\n${CYAN}[STEP]${NC} $1"
|
||||
}
|
||||
|
||||
success() {
|
||||
echo -e "${GREEN}[OK]${NC} $1"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo -e "${YELLOW}[WARN]${NC} $1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# Stop services
|
||||
if [ "$STOP_SERVICES" = true ]; then
|
||||
step "Stopping all services..."
|
||||
|
||||
# Kill OpenFang processes
|
||||
pkill -f "openfang" 2>/dev/null || true
|
||||
|
||||
# Kill Vite processes
|
||||
pkill -f "vite" 2>/dev/null || true
|
||||
|
||||
# Kill Tauri processes
|
||||
pkill -f "tauri" 2>/dev/null || true
|
||||
|
||||
success "All services stopped"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo -e "${CYAN}========================================${NC}"
|
||||
echo -e "${CYAN} ZCLAW Development Quick Start${NC}"
|
||||
echo -e "${CYAN}========================================${NC}"
|
||||
|
||||
# 1. Check Node.js
|
||||
step "Checking Node.js..."
|
||||
if ! command -v node &> /dev/null; then
|
||||
error "Node.js not found"
|
||||
echo "Please install from https://nodejs.org"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
NODE_VERSION=$(node -v | sed 's/v//')
|
||||
MAJOR_VERSION=$(echo "$NODE_VERSION" | cut -d. -f1)
|
||||
|
||||
if [ "$MAJOR_VERSION" -lt 18 ]; then
|
||||
error "Node.js version too low: v$NODE_VERSION (requires 18+)"
|
||||
echo "Please upgrade from https://nodejs.org"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
success "Node.js $(node -v)"
|
||||
|
||||
# 2. Check pnpm
|
||||
step "Checking pnpm..."
|
||||
if ! command -v pnpm &> /dev/null; then
|
||||
warn "pnpm not found, installing..."
|
||||
npm install -g pnpm
|
||||
if [ $? -ne 0 ]; then
|
||||
error "Failed to install pnpm"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
success "pnpm $(pnpm -v)"
|
||||
|
||||
# 3. Check and install dependencies
|
||||
step "Checking dependencies..."
|
||||
|
||||
if [ ! -d "$PROJECT_ROOT/node_modules" ]; then
|
||||
echo "Installing root dependencies..."
|
||||
cd "$PROJECT_ROOT"
|
||||
pnpm install
|
||||
fi
|
||||
|
||||
if [ ! -d "$PROJECT_ROOT/desktop/node_modules" ]; then
|
||||
echo "Installing desktop dependencies..."
|
||||
cd "$PROJECT_ROOT/desktop"
|
||||
pnpm install
|
||||
fi
|
||||
|
||||
success "Dependencies ready"
|
||||
|
||||
# 4. Check/Start backend
|
||||
if [ "$SKIP_BACKEND" = false ] && [ "$DESKTOP_ONLY" = false ]; then
|
||||
step "Checking backend service..."
|
||||
|
||||
BACKEND_RUNNING=false
|
||||
|
||||
if curl -s --connect-timeout 2 "http://127.0.0.1:50051/api/health" > /dev/null 2>&1; then
|
||||
BACKEND_RUNNING=true
|
||||
success "Backend service already running"
|
||||
fi
|
||||
|
||||
if [ "$BACKEND_RUNNING" = false ]; then
|
||||
echo "Starting OpenFang backend..."
|
||||
|
||||
STARTED=false
|
||||
|
||||
# Method 1: Use openfang CLI
|
||||
if command -v openfang &> /dev/null; then
|
||||
openfang start &
|
||||
STARTED=true
|
||||
fi
|
||||
|
||||
# Method 2: Use the project's start script
|
||||
if [ "$STARTED" = false ] && [ -f "$PROJECT_ROOT/start-all.sh" ]; then
|
||||
"$PROJECT_ROOT/start-all.sh" &
|
||||
STARTED=true
|
||||
fi
|
||||
|
||||
if [ "$STARTED" = false ]; then
|
||||
error "Cannot start backend service"
|
||||
echo "Please start OpenFang manually:"
|
||||
echo " openfang start"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Wait for backend
|
||||
echo "Waiting for backend to start..."
|
||||
RETRIES=0
|
||||
MAX_RETRIES=15
|
||||
|
||||
while [ $RETRIES -lt $MAX_RETRIES ]; do
|
||||
sleep 1
|
||||
if curl -s --connect-timeout 2 "http://127.0.0.1:50051/api/health" > /dev/null 2>&1; then
|
||||
success "Backend started successfully"
|
||||
break
|
||||
fi
|
||||
RETRIES=$((RETRIES + 1))
|
||||
printf "."
|
||||
done
|
||||
|
||||
if [ $RETRIES -ge $MAX_RETRIES ]; then
|
||||
error "Backend startup timeout"
|
||||
echo "Please check if OpenFang is properly installed"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# 5. Start development environment
|
||||
step "Starting development environment..."
|
||||
|
||||
cd "$PROJECT_ROOT"
|
||||
|
||||
if [ "$DESKTOP_ONLY" = true ]; then
|
||||
echo "Starting desktop only..."
|
||||
pnpm desktop
|
||||
else
|
||||
echo "Starting full development environment..."
|
||||
pnpm start:dev
|
||||
fi
|
||||
Reference in New Issue
Block a user