-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathinstall.sh
More file actions
executable file
·243 lines (221 loc) · 8.11 KB
/
install.sh
File metadata and controls
executable file
·243 lines (221 loc) · 8.11 KB
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
#!/bin/bash
# SuperOptiX Installation Script
# This script detects your environment and installs SuperOptiX using the best method
set -e
echo "👑 Welcome to SuperOptiX: The King of Agent Frameworks"
echo "🚀 Optimization-First AI Agent Framework"
echo "======================================================"
echo ""
# Function to detect Python version
check_python() {
if command -v python3 &> /dev/null; then
PYTHON_VERSION=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
echo "✅ Found Python $PYTHON_VERSION"
# Check if version is 3.11 or higher
if python3 -c "import sys; exit(0 if sys.version_info >= (3, 11) else 1)" 2>/dev/null; then
return 0
else
echo "❌ Python version must be 3.11 or higher. Found: $PYTHON_VERSION"
return 1
fi
else
echo "❌ Python 3 not found. Please install Python 3.11 or higher."
return 1
fi
}
# Function to detect package managers
detect_package_manager() {
echo "🔍 Detecting your environment..."
if command -v uv &> /dev/null; then
echo "✅ Found uv (recommended)"
INSTALL_METHOD="uv"
return 0
elif command -v conda &> /dev/null; then
echo "✅ Found conda"
INSTALL_METHOD="conda"
return 0
elif command -v pip &> /dev/null; then
echo "✅ Found pip"
INSTALL_METHOD="pip"
return 0
else
echo "❌ No package manager found. Please install pip, conda, or uv."
return 1
fi
}
# Function to install uv if not present
install_uv() {
echo "📦 Installing uv (recommended package manager)..."
curl -LsSf https://astral.sh/uv/install.sh | sh
echo "✅ uv installed successfully!"
echo "🔄 Please restart your terminal or run: source ~/.bashrc"
echo " Then run this script again."
exit 0
}
# Function to install SuperOptiX
install_superoptix() {
echo ""
echo "📦 Installing SuperOptiX..."
case $INSTALL_METHOD in
"uv")
echo "Using uv (fastest method)..."
echo "📦 Installing with lock file for reproducible builds..."
uv lock
uv sync
echo "🔒 Lock file generated for consistent installations"
;;
"conda")
echo "Using conda..."
echo "Creating conda environment 'superoptix'..."
conda create -n superoptix python=3.11 -y
echo "Activating environment..."
source $(conda info --base)/etc/profile.d/conda.sh
conda activate superoptix
pip install superoptix
;;
"pip")
echo "Using pip..."
pip install superoptix
;;
esac
echo "✅ SuperOptiX installed successfully!"
}
# Function to show optional dependencies
show_optional_deps() {
echo ""
echo "🔧 Optional Dependencies Available:"
echo ""
echo "📚 Vector Databases (RAG Support):"
if command -v uv &> /dev/null; then
echo " uv sync --extra chromadb # ChromaDB (recommended)"
echo " uv sync --extra lancedb # LanceDB (fast local)"
echo " uv sync --extra faiss # FAISS (high performance)"
echo " uv sync --extra weaviate # Weaviate (semantic search)"
echo " uv sync --extra qdrant # Qdrant (production)"
echo " uv sync --extra milvus # Milvus (enterprise)"
echo " uv sync --extra pinecone # Pinecone (cloud)"
echo " uv sync --extra vectordb # All vector databases"
echo ""
echo "🎨 Additional Features:"
echo " uv sync --extra ui # UI dashboards"
echo " uv sync --extra observability # Monitoring"
echo " uv sync --extra web # Web frameworks"
echo " uv sync --extra data # Data processing"
echo " uv sync --extra cloud # Cloud deployment"
echo " uv sync --extra redis # Redis caching"
echo " uv sync --all-extras # All optional deps"
else
echo " pip install superoptix[chromadb] # ChromaDB (recommended)"
echo " pip install superoptix[lancedb] # LanceDB (fast local)"
echo " pip install superoptix[faiss] # FAISS (high performance)"
echo " pip install superoptix[weaviate] # Weaviate (semantic search)"
echo " pip install superoptix[qdrant] # Qdrant (production)"
echo " pip install superoptix[milvus] # Milvus (enterprise)"
echo " pip install superoptix[pinecone] # Pinecone (cloud)"
echo " pip install superoptix[vectordb] # All vector databases"
echo ""
echo "🎨 Additional Features:"
echo " pip install superoptix[ui] # UI dashboards"
echo " pip install superoptix[observability] # Monitoring"
echo " pip install superoptix[web] # Web frameworks"
echo " pip install superoptix[data] # Data processing"
echo " pip install superoptix[cloud] # Cloud deployment"
echo " pip install superoptix[redis] # Redis caching"
echo " pip install superoptix[all] # All optional deps"
fi
echo ""
}
# Function to verify installation
verify_installation() {
echo ""
echo "🔍 Verifying installation..."
if command -v super &> /dev/null; then
echo "✅ SuperOptiX CLI installed successfully!"
echo ""
echo "🎉 Installation complete! Here's what you can do next:"
echo ""
echo "1. 🚀 Start with our Getting Started Guide:"
echo " https://github.com/SuperagenticAI/superoptix/blob/main/GETTING_STARTED.md"
echo ""
echo "2. 🎯 Create your first project:"
echo " super init my_first_ai_system"
echo ""
echo "3. 📚 View all available commands:"
echo " super --help"
echo ""
echo "4. 🏪 Browse the marketplace:"
echo " super marketplace browse"
echo ""
echo "👑 Welcome to the King of Agent Frameworks!"
echo ""
echo "🚀 Evaluate • Optimize • Orchestrate • Operate"
else
echo "❌ Installation verification failed. Please try again."
exit 1
fi
}
# Function to show installation options
show_options() {
echo ""
echo "📋 Installation Options:"
echo "1. Install uv (recommended) - Fastest package manager"
echo "2. Use existing conda environment"
echo "3. Use existing pip installation"
echo "4. Install from GitHub (latest features)"
echo ""
read -p "Choose an option (1-4): " choice
case $choice in
1)
install_uv
;;
2)
INSTALL_METHOD="conda"
install_superoptix
;;
3)
INSTALL_METHOD="pip"
install_superoptix
;;
4)
echo "Installing from GitHub..."
if command -v uv &> /dev/null; then
uv pip install git+https://github.com/SuperagenticAI/superoptix.git
elif command -v pip &> /dev/null; then
pip install git+https://github.com/SuperagenticAI/superoptix.git
else
echo "❌ No suitable package manager found for GitHub installation."
exit 1
fi
;;
*)
echo "❌ Invalid option. Please run the script again."
exit 1
;;
esac
}
# Main installation flow
main() {
# Check Python version
if ! check_python; then
exit 1
fi
# Detect package manager
if ! detect_package_manager; then
echo ""
echo "💡 No package manager detected. Would you like to install uv (recommended)?"
read -p "Install uv? (y/n): " install_uv_choice
if [[ $install_uv_choice =~ ^[Yy]$ ]]; then
install_uv
else
show_options
fi
fi
# Install SuperOptiX
install_superoptix
# Show optional dependencies
show_optional_deps
# Verify installation
verify_installation
}
# Run main function
main "$@"