464 lines
9.5 KiB
Markdown
464 lines
9.5 KiB
Markdown
|
|
---
|
||
|
|
title: Vapora Project - Quick Start Guide
|
||
|
|
date: 2025-11-10
|
||
|
|
status: READY
|
||
|
|
version: 1.0
|
||
|
|
---
|
||
|
|
|
||
|
|
# 🚀 Vapora - Quick Start Guide
|
||
|
|
|
||
|
|
**⏱️ Time to get running: 15-20 minutes**
|
||
|
|
|
||
|
|
This guide walks you through building and running the complete Vapora project in the simplest way possible.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📋 Prerequisites
|
||
|
|
|
||
|
|
You need:
|
||
|
|
- ✅ Rust 1.75+ (install from https://rustup.rs)
|
||
|
|
- ✅ Cargo (comes with Rust)
|
||
|
|
- ✅ Git
|
||
|
|
- ✅ NuShell 0.95+ (for scripts)
|
||
|
|
- ✅ 2GB free disk space
|
||
|
|
- ✅ Bash or Zsh shell
|
||
|
|
|
||
|
|
**Check if you have everything:**
|
||
|
|
```bash
|
||
|
|
rustc --version # Should show Rust 1.75+
|
||
|
|
cargo --version # Should show Cargo 1.75+
|
||
|
|
which git # Should show /usr/bin/git or similar
|
||
|
|
nu --version # Should show NuShell 0.95+
|
||
|
|
```
|
||
|
|
|
||
|
|
**Install NuShell if needed:**
|
||
|
|
```bash
|
||
|
|
# Using Homebrew (macOS)
|
||
|
|
brew install nu
|
||
|
|
|
||
|
|
# Or download from: https://www.nushell.sh/
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 15-Minute Quick Start
|
||
|
|
|
||
|
|
### Step 1: Navigate to Vapora
|
||
|
|
```bash
|
||
|
|
# Verify structure
|
||
|
|
ls crates/
|
||
|
|
# Should show: vapora-backend, vapora-frontend, vapora-shared, vapora-agents, vapora-llm-router, vapora-mcp-server, vapora-tracking
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 2: Install Dependencies
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Update Rust (optional but recommended)
|
||
|
|
rustup update stable
|
||
|
|
|
||
|
|
# Install workspace dependencies
|
||
|
|
cargo fetch
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 3: Build All Crates
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Build the complete workspace
|
||
|
|
cargo build
|
||
|
|
|
||
|
|
# This builds all 7 crates:
|
||
|
|
# - vapora-shared (shared utilities)
|
||
|
|
# - vapora-agents (agent framework)
|
||
|
|
# - vapora-llm-router (LLM routing)
|
||
|
|
# - vapora-tracking (change tracking system)
|
||
|
|
# - vapora-backend (REST API)
|
||
|
|
# - vapora-frontend (WASM UI)
|
||
|
|
# - vapora-mcp-server (MCP protocol support)
|
||
|
|
```
|
||
|
|
|
||
|
|
**Build time:** 2-5 minutes (first time)
|
||
|
|
|
||
|
|
**Expected output:**
|
||
|
|
```
|
||
|
|
Finished `dev` profile [unoptimized + debuginfo] target(s) in XXXs
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 4: Run Tests
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Run all tests in the workspace
|
||
|
|
cargo test --lib
|
||
|
|
|
||
|
|
# Run tests for specific crate
|
||
|
|
cargo test -p vapora-backend --lib
|
||
|
|
cargo test -p vapora-tracking --lib
|
||
|
|
|
||
|
|
# Expected output:
|
||
|
|
# test result: ok. XXX passed; 0 failed
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 5: Start the Backend Service
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Run the backend server (development mode)
|
||
|
|
cargo run -p vapora-backend
|
||
|
|
|
||
|
|
# Expected output:
|
||
|
|
# 🚀 Vapora Backend Server running on http://127.0.0.1:3000
|
||
|
|
# Available endpoints:
|
||
|
|
# GET /api/v1/health
|
||
|
|
# GET /api/v1/tracking/summary
|
||
|
|
# POST /api/v1/agents/orchestrate
|
||
|
|
# GET /api/v1/projects
|
||
|
|
```
|
||
|
|
|
||
|
|
**The server will be available at:** `http://localhost:3000`
|
||
|
|
|
||
|
|
### Step 6: (In Another Terminal) Start Frontend Development
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd crates/vapora-frontend
|
||
|
|
|
||
|
|
# Install frontend dependencies
|
||
|
|
cargo install trunk
|
||
|
|
|
||
|
|
# Run frontend with hot-reload
|
||
|
|
trunk serve
|
||
|
|
|
||
|
|
# Expected output:
|
||
|
|
# 🦕 Listening on http://127.0.0.1:8080
|
||
|
|
```
|
||
|
|
|
||
|
|
**The UI will be available at:** `http://localhost:8080`
|
||
|
|
|
||
|
|
### Step 7: Verify Everything Works
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check health of backend
|
||
|
|
curl http://localhost:3000/api/v1/health
|
||
|
|
|
||
|
|
# Expected response:
|
||
|
|
# {
|
||
|
|
# "status": "ok",
|
||
|
|
# "service": "vapora-backend",
|
||
|
|
# "timestamp": "2025-11-10T14:30:00Z"
|
||
|
|
# }
|
||
|
|
|
||
|
|
# Check tracking system
|
||
|
|
curl http://localhost:3000/api/v1/tracking/summary
|
||
|
|
|
||
|
|
# Expected response:
|
||
|
|
# {
|
||
|
|
# "total_entries": 0,
|
||
|
|
# "changes": 0,
|
||
|
|
# "todos": 0
|
||
|
|
# }
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🏗️ Project Structure Overview
|
||
|
|
|
||
|
|
```
|
||
|
|
├── Cargo.toml (workspace config)
|
||
|
|
├── crates/
|
||
|
|
│ ├── vapora-shared/ ← Shared utilities & types
|
||
|
|
│ ├── vapora-agents/ ← Agent orchestration framework
|
||
|
|
│ ├── vapora-llm-router/ ← Multi-LLM routing (Claude, OpenAI, Gemini, Ollama)
|
||
|
|
│ ├── vapora-tracking/ ← Change & TODO tracking system (NEW)
|
||
|
|
│ ├── vapora-backend/ ← REST API (Axum)
|
||
|
|
│ ├── vapora-frontend/ ← Web UI (Leptos + WASM)
|
||
|
|
│ └── vapora-mcp-server/ ← MCP protocol server
|
||
|
|
├── scripts/
|
||
|
|
│ ├── sync-tracking.nu ← Sync tracking data
|
||
|
|
│ ├── export-tracking.nu ← Export reports
|
||
|
|
│ └── start-tracking-service.nu ← Start tracking service
|
||
|
|
└── docs/
|
||
|
|
└── (API docs, architecture, etc.)
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 Available Commands
|
||
|
|
|
||
|
|
### Build Commands
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Build specific crate
|
||
|
|
cargo build -p vapora-backend
|
||
|
|
cargo build -p vapora-tracking
|
||
|
|
|
||
|
|
# Build for production (optimized)
|
||
|
|
cargo build --release
|
||
|
|
|
||
|
|
# Check without building
|
||
|
|
cargo check
|
||
|
|
|
||
|
|
# Clean build artifacts
|
||
|
|
cargo clean
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test Commands
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Run all tests
|
||
|
|
cargo test --lib
|
||
|
|
|
||
|
|
# Run tests for specific crate
|
||
|
|
cargo test -p vapora-tracking --lib
|
||
|
|
|
||
|
|
# Run tests with output
|
||
|
|
cargo test -- --nocapture
|
||
|
|
|
||
|
|
# Run specific test
|
||
|
|
cargo test -p vapora-backend test_health_endpoint -- --exact
|
||
|
|
```
|
||
|
|
|
||
|
|
### Development Commands
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Run backend server
|
||
|
|
cargo run -p vapora-backend
|
||
|
|
|
||
|
|
# Run with verbose logging
|
||
|
|
RUST_LOG=debug cargo run -p vapora-backend
|
||
|
|
|
||
|
|
# Format code
|
||
|
|
cargo fmt
|
||
|
|
|
||
|
|
# Lint code
|
||
|
|
cargo clippy -- -W clippy::all
|
||
|
|
```
|
||
|
|
|
||
|
|
### Documentation
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Generate and open documentation
|
||
|
|
cargo doc -p vapora-backend --open
|
||
|
|
|
||
|
|
# Generate for specific crate
|
||
|
|
cargo doc -p vapora-tracking --open
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 What You Can Do Now
|
||
|
|
|
||
|
|
After the quick start, you have:
|
||
|
|
|
||
|
|
✅ **Backend API running** at `http://localhost:3000`
|
||
|
|
- Health checks
|
||
|
|
- Tracking system endpoints
|
||
|
|
- Agent orchestration API
|
||
|
|
|
||
|
|
✅ **Frontend UI running** at `http://localhost:8080`
|
||
|
|
- Real-time project dashboard
|
||
|
|
- Agent status monitoring
|
||
|
|
- Change tracking interface
|
||
|
|
|
||
|
|
✅ **Tracking System**
|
||
|
|
- Log changes: `/log-change "description"`
|
||
|
|
- Create TODOs: `/add-todo "task"`
|
||
|
|
- Check status: `/track-status`
|
||
|
|
- Export reports: `./scripts/export-tracking.nu`
|
||
|
|
|
||
|
|
✅ **Agent Framework**
|
||
|
|
- Orchestrate AI agents
|
||
|
|
- Multi-LLM routing
|
||
|
|
- Parallel pipeline execution
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔗 Integration Points
|
||
|
|
|
||
|
|
### Using the Tracking System
|
||
|
|
|
||
|
|
The tracking system integrates with the backend:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Log a change
|
||
|
|
/log-change "Implemented user authentication" \
|
||
|
|
--impact backend \
|
||
|
|
--files 5
|
||
|
|
|
||
|
|
# Create a TODO
|
||
|
|
/add-todo "Review code changes" \
|
||
|
|
--priority H \
|
||
|
|
--estimate M
|
||
|
|
|
||
|
|
# Check tracking status
|
||
|
|
/track-status --limit 10
|
||
|
|
|
||
|
|
# Export to report
|
||
|
|
./scripts/export-tracking.nu json --output report.json
|
||
|
|
```
|
||
|
|
|
||
|
|
### Using the Agent Framework
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Orchestrate agents for a task
|
||
|
|
curl -X POST http://localhost:3000/api/v1/agents/orchestrate \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"task": "Code review",
|
||
|
|
"agents": ["developer", "reviewer"],
|
||
|
|
"context": "Review the authentication module"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Using the LLM Router
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Query the LLM router for optimal model selection
|
||
|
|
curl http://localhost:3000/api/v1/llm-router/select \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"task_type": "code_implementation",
|
||
|
|
"complexity": "high"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🐛 Troubleshooting
|
||
|
|
|
||
|
|
### Build Fails
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Update Rust
|
||
|
|
rustup update stable
|
||
|
|
|
||
|
|
# Clean and rebuild
|
||
|
|
cargo clean
|
||
|
|
cargo build
|
||
|
|
|
||
|
|
# Check specific error
|
||
|
|
cargo build --verbose
|
||
|
|
```
|
||
|
|
|
||
|
|
### Tests Fail
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Run with output
|
||
|
|
cargo test --lib -- --nocapture --test-threads=1
|
||
|
|
|
||
|
|
# Check Rust version
|
||
|
|
rustc --version # Should be 1.75+
|
||
|
|
```
|
||
|
|
|
||
|
|
### Backend Won't Start
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check if port 3000 is in use
|
||
|
|
lsof -i :3000
|
||
|
|
|
||
|
|
# Use different port
|
||
|
|
VAPORA_PORT=3001 cargo run -p vapora-backend
|
||
|
|
|
||
|
|
# Check logs
|
||
|
|
RUST_LOG=debug cargo run -p vapora-backend
|
||
|
|
```
|
||
|
|
|
||
|
|
### Frontend Build Issues
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Update trunk
|
||
|
|
cargo install --locked trunk
|
||
|
|
|
||
|
|
# Clear build cache
|
||
|
|
rm -rf crates/vapora-frontend/target
|
||
|
|
|
||
|
|
# Rebuild
|
||
|
|
cargo run -p vapora-frontend
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📚 Next Steps
|
||
|
|
|
||
|
|
### Short Term (This Session)
|
||
|
|
1. ✅ Build and run the complete project
|
||
|
|
2. ✅ Visit frontend at `http://localhost:8080`
|
||
|
|
3. ✅ Test API endpoints
|
||
|
|
4. ✅ Create first tracking entry
|
||
|
|
|
||
|
|
### Medium Term (This Week)
|
||
|
|
1. Read [`SETUP.md`](./SETUP.md) - Complete setup with configuration
|
||
|
|
2. Explore crate documentation: `cargo doc --open`
|
||
|
|
3. Set up development environment
|
||
|
|
4. Configure tracking system
|
||
|
|
|
||
|
|
### Long Term (Ongoing)
|
||
|
|
1. Contribute to the project
|
||
|
|
2. Deploy to production (see [`INTEGRATION.md`](./crates/vapora-tracking/INTEGRATION.md))
|
||
|
|
3. Customize agents and LLM routing
|
||
|
|
4. Integrate with external services
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📖 Learning Resources
|
||
|
|
|
||
|
|
| Resource | Location | Time |
|
||
|
|
|----------|----------|------|
|
||
|
|
| Project README | [`README.md`](./README.md) | 10 min |
|
||
|
|
| Complete Setup | [`SETUP.md`](./SETUP.md) | 20 min |
|
||
|
|
| Tracking System | [`QUICKSTART_TRACKING.md`](./QUICKSTART_TRACKING.md) | 10 min |
|
||
|
|
| Architecture | [`.coder/`](./.coder/) | 30 min |
|
||
|
|
| Source Code | [`crates/`](./crates/) | varies |
|
||
|
|
| API Docs | `cargo doc --open` | varies |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎬 Quick Reference
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# One-command build and test
|
||
|
|
cargo build && cargo test --lib
|
||
|
|
|
||
|
|
# Run backend in one terminal
|
||
|
|
cargo run -p vapora-backend
|
||
|
|
|
||
|
|
# Run frontend in another terminal
|
||
|
|
cd crates/vapora-frontend && trunk serve
|
||
|
|
|
||
|
|
# Check everything is working
|
||
|
|
curl http://localhost:3000/api/v1/health
|
||
|
|
|
||
|
|
# View logs
|
||
|
|
RUST_LOG=debug cargo run -p vapora-backend
|
||
|
|
|
||
|
|
# Format and lint all code
|
||
|
|
cargo fmt && cargo clippy --all -- -W clippy::all
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🆘 Getting Help
|
||
|
|
|
||
|
|
**Issues during quick start?**
|
||
|
|
1. Check [`SETUP.md`](./SETUP.md) - Troubleshooting section
|
||
|
|
2. Read crate-specific docs in `crates/*/README.md`
|
||
|
|
3. Check inline code documentation: `cargo doc --open`
|
||
|
|
4. Review `.coder/` documentation
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Success Checklist
|
||
|
|
|
||
|
|
- [ ] Rust 1.75+ installed
|
||
|
|
- [ ] Git repository available
|
||
|
|
- [ ] `cargo build` succeeds
|
||
|
|
- [ ] `cargo test --lib` shows all tests passing
|
||
|
|
- [ ] Backend runs at `http://localhost:3000`
|
||
|
|
- [ ] Frontend runs at `http://localhost:8080`
|
||
|
|
- [ ] Health endpoint responds
|
||
|
|
- [ ] Can create tracking entries
|
||
|
|
|
||
|
|
**All checked? ✅ You're ready to develop with Vapora!**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**For complete setup with configuration options:** See [`SETUP.md`](./SETUP.md)
|
||
|
|
|
||
|
|
**For tracking system specific guide:** See [`QUICKSTART_TRACKING.md`](./QUICKSTART_TRACKING.md)
|