Structure webber into three independent subprojects: - webber-api/: FastAPI backend server with all agent code - webber-cli/: Standalone CLI client (renamed from cli/ to webber_cli/) - webber-sandbox/: Test project for functional testing Key changes: - Each subproject has its own .venv (Python 3.12+) - Added sandbox.sh for managing test project templates - Created sandbox-templates/ with calculator-cli and empty starter - Updated CI/CD for prefixed tags (api/v*, cli/v*) - Added comprehensive AGENTS.md with operational instructions - Added gitignore filtering to glob and grep tools - Created pyproject.toml for each subproject Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
53 lines
1.5 KiB
Bash
Executable File
53 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Webber Server Startup Script
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${GREEN}Starting Webber...${NC}"
|
|
|
|
# Development port (8095) - Production uses 8086 in Docker
|
|
DEV_PORT=8095
|
|
|
|
# Check if dev port is already in use
|
|
if lsof -Pi :$DEV_PORT -sTCP:LISTEN -t >/dev/null 2>&1 ; then
|
|
echo -e "${RED}Error: Port $DEV_PORT is already in use${NC}"
|
|
echo "Run: lsof -i :$DEV_PORT to see what's using it"
|
|
echo "Or run: kill \$(lsof -t -i:$DEV_PORT) to stop it"
|
|
exit 1
|
|
fi
|
|
|
|
# Activate virtual environment if not already activated
|
|
if [ -z "$VIRTUAL_ENV" ]; then
|
|
if [ -d ".venv" ]; then
|
|
echo -e "${YELLOW}Activating virtual environment...${NC}"
|
|
source .venv/bin/activate
|
|
else
|
|
echo -e "${RED}Error: Virtual environment not found${NC}"
|
|
echo "Run: python -m venv .venv && source .venv/bin/activate && pip install -r requirements-dev.txt"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Create logs directory if it doesn't exist
|
|
LOGS_DIR="logs"
|
|
mkdir -p "$LOGS_DIR"
|
|
|
|
# Clear/create log file
|
|
LOG_FILE="$LOGS_DIR/server.log"
|
|
> "$LOG_FILE"
|
|
echo -e "${YELLOW}Logs will be written to: ${LOG_FILE}${NC}"
|
|
|
|
# Start the server
|
|
echo -e "${GREEN}Starting uvicorn server on http://localhost:$DEV_PORT${NC}"
|
|
echo -e "${YELLOW}Production is on :8086, dev is on :$DEV_PORT${NC}"
|
|
echo -e "${YELLOW}Press Ctrl+C to stop the server${NC}"
|
|
echo ""
|
|
|
|
uvicorn src.main:app --reload --host 0.0.0.0 --port $DEV_PORT 2>&1 | tee "$LOG_FILE"
|