widgettdc-api / scripts /autonomous-deploy-hf.sh
Kraft102's picture
fix: sql.js Docker/Alpine compatibility layer for PatternMemory and FailureMemory
5a81b95
#!/bin/bash
# AUTONOMOUS DEPLOYMENT RECOVERY SCRIPT
# This script will be executed if GitHub Actions fails
set -e
echo "πŸ”§ AUTONOMOUS RECOVERY MODE"
echo "This script deploys directly without GitHub Actions"
# Configuration
HF_SPACE="Kraft102/widgetdc-cortex"
DEPLOY_DIR="hf-deploy-manual"
echo "πŸ“‹ Configuration:"
echo " Space: $HF_SPACE"
echo " Deploy Dir: $DEPLOY_DIR"
# Step 1: Check HF CLI
echo ""
echo "1️⃣ Checking HuggingFace CLI..."
if ! command -v huggingface-cli &> /dev/null; then
echo "Installing HuggingFace CLI..."
pip install -U "huggingface_hub[cli]"
fi
echo "βœ… HF CLI ready"
# Step 2: Login (requires HF_TOKEN env var)
echo ""
echo "2️⃣ Logging in to HuggingFace..."
if [ -z "$HF_TOKEN" ]; then
echo "❌ ERROR: HF_TOKEN environment variable not set"
echo "Set it with: export HF_TOKEN='your_token_here'"
exit 1
fi
huggingface-cli login --token "$HF_TOKEN"
echo "βœ… Logged in"
# Step 3: Prepare files
echo ""
echo "3️⃣ Preparing deployment files..."
rm -rf "$DEPLOY_DIR"
mkdir -p "$DEPLOY_DIR"
# Copy backend
mkdir -p "$DEPLOY_DIR/apps/backend"
cp -r apps/backend/src "$DEPLOY_DIR/apps/backend/"
cp -r apps/backend/prisma "$DEPLOY_DIR/apps/backend/"
cp apps/backend/package.json "$DEPLOY_DIR/apps/backend/"
cp apps/backend/tsconfig.json "$DEPLOY_DIR/apps/backend/"
[ -f apps/backend/package-lock.json ] && cp apps/backend/package-lock.json "$DEPLOY_DIR/apps/backend/"
# Copy packages
mkdir -p "$DEPLOY_DIR/packages/domain-types"
cp -r packages/domain-types/src "$DEPLOY_DIR/packages/domain-types/"
cp packages/domain-types/package.json "$DEPLOY_DIR/packages/domain-types/"
cp packages/domain-types/tsconfig.json "$DEPLOY_DIR/packages/domain-types/"
mkdir -p "$DEPLOY_DIR/packages/mcp-types"
cp -r packages/mcp-types/src "$DEPLOY_DIR/packages/mcp-types/"
cp packages/mcp-types/package.json "$DEPLOY_DIR/packages/mcp-types/"
cp packages/mcp-types/tsconfig.json "$DEPLOY_DIR/packages/mcp-types/"
# Copy root config
cp package.json "$DEPLOY_DIR/"
[ -f package-lock.json ] && cp package-lock.json "$DEPLOY_DIR/"
[ -f tsconfig.json ] && cp tsconfig.json "$DEPLOY_DIR/"
# Copy Dockerfile
if [ -f scripts/hf-backend.dockerfile ]; then
cp scripts/hf-backend.dockerfile "$DEPLOY_DIR/Dockerfile"
elif [ -f Dockerfile ]; then
cp Dockerfile "$DEPLOY_DIR/"
fi
# Clean unwanted files
find "$DEPLOY_DIR" -name "*.pdf" -delete 2>/dev/null || true
find "$DEPLOY_DIR" -name "*.db*" -delete 2>/dev/null || true
find "$DEPLOY_DIR" -name "*.sqlite" -delete 2>/dev/null || true
find "$DEPLOY_DIR" -name "*.log" -delete 2>/dev/null || true
find "$DEPLOY_DIR" -name "node_modules" -type d -exec rm -rf {} + 2>/dev/null || true
find "$DEPLOY_DIR" -name "dist" -type d -exec rm -rf {} + 2>/dev/null || true
# Create README
cat > "$DEPLOY_DIR/README.md" <<'EOF'
---
title: WidgeTDC Cortex
emoji: 🧠
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 7860
hardware: t4-small
---
# WidgeTDC Cortex - Neural Backend
Enterprise AI backend with GPU-accelerated embeddings and MCP agents.
## Features
- GPU-accelerated embeddings via sentence-transformers
- MCP (Model Context Protocol) tool execution
- Real-time WebSocket communication
- Health monitoring at /health endpoint
EOF
echo "βœ… Files prepared"
# Step 4: Create Space (if not exists)
echo ""
echo "4️⃣ Creating Space (if needed)..."
huggingface-cli repo create "$HF_SPACE" --type space --space_sdk docker || echo "Space already exists"
echo "βœ… Space ready"
# Step 5: Upload
echo ""
echo "5️⃣ Uploading to HuggingFace..."
huggingface-cli upload \
"$HF_SPACE" \
"$DEPLOY_DIR" \
. \
--repo-type=space \
--commit-message="Manual deployment from recovery script - $(date +%Y-%m-%d_%H-%M-%S)"
echo ""
echo "βœ… βœ… βœ… DEPLOYMENT SUCCESSFUL! βœ… βœ… βœ…"
echo ""
echo "πŸ“ Space URL: https://huggingface.co/spaces/$HF_SPACE"
echo "πŸ”— API Endpoint: https://$(echo $HF_SPACE | tr '/' '-').hf.space/"
echo ""
echo "⏳ Space is now building Docker image (5-10 minutes)"
echo "πŸ”‘ Don't forget to add environment variables in Space settings!"
echo ""
echo "πŸŽ‰ Deployment complete!"