File size: 4,130 Bytes
5a81b95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/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!"