fix claude
This commit is contained in:
148
scripts/setup.sh
Executable file
148
scripts/setup.sh
Executable file
@ -0,0 +1,148 @@
|
||||
#!/bin/bash
|
||||
# ai.shell setup script for macOS
|
||||
# Sets up Python venv environment in ~/.config/ai-shell
|
||||
|
||||
set -e
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Directories
|
||||
CONFIG_DIR="$HOME/.config/ai-shell"
|
||||
VENV_DIR="$CONFIG_DIR/venv"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
|
||||
echo -e "${BLUE}🚀 Setting up ai.shell environment...${NC}"
|
||||
|
||||
# Create config directory
|
||||
echo -e "${YELLOW}📁 Creating config directory...${NC}"
|
||||
mkdir -p "$CONFIG_DIR"
|
||||
|
||||
# Check Python version
|
||||
echo -e "${YELLOW}🐍 Checking Python version...${NC}"
|
||||
if ! command -v python3 &> /dev/null; then
|
||||
echo -e "${RED}❌ Python 3 is not installed. Please install Python 3.9 or later.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
|
||||
echo -e "${GREEN}✓ Found Python $PYTHON_VERSION${NC}"
|
||||
|
||||
# Create virtual environment
|
||||
if [ ! -d "$VENV_DIR" ]; then
|
||||
echo -e "${YELLOW}🔧 Creating virtual environment...${NC}"
|
||||
python3 -m venv "$VENV_DIR"
|
||||
echo -e "${GREEN}✓ Virtual environment created${NC}"
|
||||
else
|
||||
echo -e "${GREEN}✓ Virtual environment already exists${NC}"
|
||||
fi
|
||||
|
||||
# Activate virtual environment
|
||||
echo -e "${YELLOW}🔌 Activating virtual environment...${NC}"
|
||||
source "$VENV_DIR/bin/activate"
|
||||
|
||||
# Upgrade pip
|
||||
echo -e "${YELLOW}📦 Upgrading pip...${NC}"
|
||||
pip install --upgrade pip
|
||||
|
||||
# Install Python dependencies
|
||||
echo -e "${YELLOW}📦 Installing Python dependencies...${NC}"
|
||||
pip install -r "$PROJECT_DIR/requirements.txt"
|
||||
|
||||
# Copy MCP server to config directory
|
||||
echo -e "${YELLOW}📄 Copying MCP server...${NC}"
|
||||
cp "$PROJECT_DIR/mcp_server.py" "$CONFIG_DIR/"
|
||||
|
||||
# Create config file if it doesn't exist
|
||||
if [ ! -f "$CONFIG_DIR/config.toml" ]; then
|
||||
echo -e "${YELLOW}⚙️ Creating default config...${NC}"
|
||||
cp "$PROJECT_DIR/config/default.toml" "$CONFIG_DIR/config.toml"
|
||||
fi
|
||||
|
||||
# Create bin directory for scripts
|
||||
mkdir -p "$CONFIG_DIR/bin"
|
||||
|
||||
# Create MCP server startup script
|
||||
cat > "$CONFIG_DIR/bin/mcp-server" << 'EOF'
|
||||
#!/bin/bash
|
||||
# MCP Server startup script
|
||||
|
||||
CONFIG_DIR="$HOME/.config/ai-shell"
|
||||
VENV_DIR="$CONFIG_DIR/venv"
|
||||
|
||||
# Activate virtual environment
|
||||
source "$VENV_DIR/bin/activate"
|
||||
|
||||
# Start MCP server
|
||||
cd "$CONFIG_DIR"
|
||||
python mcp_server.py "$@"
|
||||
EOF
|
||||
|
||||
chmod +x "$CONFIG_DIR/bin/mcp-server"
|
||||
|
||||
# Create ai-shell wrapper script
|
||||
cat > "$CONFIG_DIR/bin/ai-shell" << EOF
|
||||
#!/bin/bash
|
||||
# ai-shell wrapper script
|
||||
|
||||
CONFIG_DIR="\$HOME/.config/ai-shell"
|
||||
PROJECT_DIR="$PROJECT_DIR"
|
||||
|
||||
# Check if MCP server is running
|
||||
if ! curl -s http://localhost:8765/health > /dev/null 2>&1; then
|
||||
echo "Starting MCP server..."
|
||||
"\$CONFIG_DIR/bin/mcp-server" > /dev/null 2>&1 &
|
||||
|
||||
# Wait for server to start
|
||||
for i in {1..10}; do
|
||||
if curl -s http://localhost:8765/health > /dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 0.5
|
||||
done
|
||||
fi
|
||||
|
||||
# Run ai-shell CLI
|
||||
cd "\$PROJECT_DIR"
|
||||
cargo run --release -- "\$@"
|
||||
EOF
|
||||
|
||||
chmod +x "$CONFIG_DIR/bin/ai-shell"
|
||||
|
||||
# Check if Ollama is installed
|
||||
echo -e "${YELLOW}🦙 Checking Ollama...${NC}"
|
||||
if ! command -v ollama &> /dev/null; then
|
||||
echo -e "${YELLOW}⚠️ Ollama is not installed.${NC}"
|
||||
echo -e " Please install Ollama from: https://ollama.ai"
|
||||
echo -e " Then run: ollama pull qwen2.5-coder:7b"
|
||||
else
|
||||
echo -e "${GREEN}✓ Ollama is installed${NC}"
|
||||
|
||||
# Check if model is available
|
||||
if ! ollama list | grep -q "qwen2.5-coder:7b"; then
|
||||
echo -e "${YELLOW}📥 Pulling qwen2.5-coder:7b model...${NC}"
|
||||
echo -e " This may take a while..."
|
||||
ollama pull qwen2.5-coder:7b
|
||||
else
|
||||
echo -e "${GREEN}✓ Model qwen2.5-coder:7b is available${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Build Rust project
|
||||
echo -e "${YELLOW}🔨 Building Rust CLI...${NC}"
|
||||
cd "$PROJECT_DIR"
|
||||
cargo build --release
|
||||
|
||||
echo -e "\n${GREEN}✨ Setup complete!${NC}"
|
||||
echo -e "\n${BLUE}To use ai.shell:${NC}"
|
||||
echo -e "1. Add to your PATH: ${YELLOW}export PATH=\"\$HOME/.config/ai-shell/bin:\$PATH\"${NC}"
|
||||
echo -e "2. Run: ${YELLOW}ai-shell${NC}"
|
||||
echo -e "\nOr use the full path: ${YELLOW}~/.config/ai-shell/bin/ai-shell${NC}"
|
||||
|
||||
# Deactivate virtual environment
|
||||
deactivate
|
16
scripts/start.sh
Executable file
16
scripts/start.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
# ai.shell startup script (uses ~/.config/ai-shell setup)
|
||||
|
||||
set -e
|
||||
|
||||
CONFIG_DIR="$HOME/.config/ai-shell"
|
||||
|
||||
# Check if setup has been run
|
||||
if [ ! -d "$CONFIG_DIR/venv" ]; then
|
||||
echo "❌ ai.shell is not set up yet."
|
||||
echo "Please run: ./scripts/setup.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Run ai-shell
|
||||
exec "$CONFIG_DIR/bin/ai-shell" "$@"
|
Reference in New Issue
Block a user