Spaces:
No application file
No application file
Upload 10 files
Browse files- README.md +146 -9
- SETUP-GUIDE.md +151 -0
- next.config.mjs +35 -0
- package.json +70 -0
- pnpm-lock.yaml +0 -0
- postcss.config.mjs +8 -0
- requirements.txt +4 -0
- tailwind.config.ts +98 -0
- tsconfig.json +27 -0
- vercel.json +23 -0
README.md
CHANGED
|
@@ -1,12 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
|
|
|
|
|
|
| 10 |
---
|
| 11 |
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🔥 WEB.BUILDING.GENIOUS
|
| 2 |
+
|
| 3 |
+
> AI-powered software engineering and website generation agent
|
| 4 |
+
|
| 5 |
+
---
|
| 6 |
+
|
| 7 |
+
## 📌 Table of Contents
|
| 8 |
+
|
| 9 |
+
- [Quick Deploy](#-quick-deploy)
|
| 10 |
+
- [Features](#-features)
|
| 11 |
+
- [Quick Start](#-quick-start)
|
| 12 |
+
- [Environment Variables](#-environment-variables)
|
| 13 |
+
- [Docker](#-docker)
|
| 14 |
+
- [Tech Stack](#-tech-stack)
|
| 15 |
+
- [Local Development](#-local-development)
|
| 16 |
+
- [Build & Start](#-build--start)
|
| 17 |
+
- [AI Agent Capabilities](#-ai-agent-capabilities)
|
| 18 |
+
- [Cost Estimates](#-cost-estimates)
|
| 19 |
+
- [License](#-license)
|
| 20 |
+
|
| 21 |
+
---
|
| 22 |
+
|
| 23 |
+
## 🚀 Quick Deploy
|
| 24 |
+
|
| 25 |
+
[](https://vercel.com/new/clone?repository-url=https://github.com/MadScientist85/WEB.BUILDING.GENIOUS)
|
| 26 |
+
[](https://huggingface.co/new-space?template=https://github.com/MadScientist85/WEB.BUILDING.GENIOUS&sdk=docker)
|
| 27 |
+
|
| 28 |
---
|
| 29 |
+
|
| 30 |
+
## ✨ Features
|
| 31 |
+
|
| 32 |
+
- Multi-AI support: OpenAI, OpenRouter, Groq, Grok
|
| 33 |
+
- Generates full websites (HTML/CSS/JS)
|
| 34 |
+
- Supabase + MongoDB storage
|
| 35 |
+
- Upload/download chat history & export HTML
|
| 36 |
+
- Tailwind CSS with light/dark themes
|
| 37 |
+
- Ready for Vercel & HuggingFace Spaces
|
| 38 |
+
|
| 39 |
---
|
| 40 |
|
| 41 |
+
## 🛠️ Quick Start
|
| 42 |
+
|
| 43 |
+
```bash
|
| 44 |
+
# Clone repository
|
| 45 |
+
git clone https://github.com/MadScientist85/WEB.BUILDING.GENIOUS
|
| 46 |
+
cd WEB.BUILDING.GENIOUS
|
| 47 |
+
|
| 48 |
+
# Install dependencies
|
| 49 |
+
npm install
|
| 50 |
+
|
| 51 |
+
# Copy environment file
|
| 52 |
+
cp .env.example .env.local
|
| 53 |
+
|
| 54 |
+
# Add your API keys to .env.local
|
| 55 |
+
npm run dev
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
---
|
| 59 |
+
|
| 60 |
+
📋 Environment Variables
|
| 61 |
+
|
| 62 |
+
NEXT_PUBLIC_SUPABASE_URL (required)
|
| 63 |
+
|
| 64 |
+
SUPABASE_SERVICE_ROLE_KEY (required)
|
| 65 |
+
|
| 66 |
+
AI API keys (OPENAI_API_KEY, OPENROUTER_API_KEY, etc.)
|
| 67 |
+
|
| 68 |
+
Optional: MONGODB_URI
|
| 69 |
+
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
---
|
| 73 |
+
|
| 74 |
+
🐳 Docker
|
| 75 |
+
|
| 76 |
+
docker build -t web.building.genious .
|
| 77 |
+
docker run -p 3000:3000 --env-file .env.local web.building.genious
|
| 78 |
+
docker-compose up -d
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
---
|
| 82 |
+
|
| 83 |
+
🔧 Tech Stack
|
| 84 |
+
|
| 85 |
+
Frontend: Next.js 14, React, Tailwind CSS
|
| 86 |
+
|
| 87 |
+
Backend: Next.js API Routes, Vercel AI SDK
|
| 88 |
+
|
| 89 |
+
Database: Supabase + MongoDB
|
| 90 |
+
|
| 91 |
+
AI: OpenAI, OpenRouter, Groq, Grok
|
| 92 |
+
|
| 93 |
+
Deployment: Vercel, HuggingFace Spaces
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
---
|
| 98 |
+
|
| 99 |
+
📝 Local Development
|
| 100 |
+
|
| 101 |
+
yarn install
|
| 102 |
+
yarn dev
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
---
|
| 106 |
+
|
| 107 |
+
📦 Build & Start
|
| 108 |
+
|
| 109 |
+
yarn build
|
| 110 |
+
yarn start
|
| 111 |
+
|
| 112 |
+
|
| 113 |
+
---
|
| 114 |
+
|
| 115 |
+
🎯 AI Agent Capabilities
|
| 116 |
+
|
| 117 |
+
Generate complete websites with HTML/CSS/JavaScript
|
| 118 |
+
|
| 119 |
+
Debug and fix code issues
|
| 120 |
+
|
| 121 |
+
Create database schemas and migrations
|
| 122 |
+
|
| 123 |
+
Build REST APIs and integrations
|
| 124 |
+
|
| 125 |
+
Provide architectural recommendations
|
| 126 |
+
|
| 127 |
+
Generate documentation and guides
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
---
|
| 132 |
+
|
| 133 |
+
📊 Cost Estimates
|
| 134 |
+
|
| 135 |
+
Free Tier: Supabase + Groq + Vercel = $0/month
|
| 136 |
+
|
| 137 |
+
Basic Usage: ~$5-20/month with OpenAI
|
| 138 |
+
|
| 139 |
+
Heavy Usage: $20-100/month depending on AI calls
|
| 140 |
+
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
---
|
| 144 |
+
|
| 145 |
+
📄 License
|
| 146 |
+
|
| 147 |
+
MIT License - see LICENSE for details
|
| 148 |
+
|
| 149 |
+
---
|
SETUP-GUIDE.md
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🚀 DEEP.REBUILD Complete Setup Guide
|
| 2 |
+
|
| 3 |
+
## 📋 Required API Keys & Configuration
|
| 4 |
+
|
| 5 |
+
### 1. **Supabase Database** (Primary Storage)
|
| 6 |
+
- **Where to get**: [supabase.com](https://supabase.com)
|
| 7 |
+
- **Steps**:
|
| 8 |
+
1. Create free account → New Project
|
| 9 |
+
2. Go to Settings → API → Copy URL and Service Role Key
|
| 10 |
+
- **Required Variables**:
|
| 11 |
+
\`\`\`env
|
| 12 |
+
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
|
| 13 |
+
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
| 14 |
+
\`\`\`
|
| 15 |
+
|
| 16 |
+
### 2. **AI Providers** (Choose at least one)
|
| 17 |
+
|
| 18 |
+
#### OpenAI (Recommended)
|
| 19 |
+
- **Where to get**: [platform.openai.com/api-keys](https://platform.openai.com/api-keys)
|
| 20 |
+
- **Cost**: Pay-per-use (~$0.01-0.06 per 1K tokens)
|
| 21 |
+
- **Models**: GPT-4o, GPT-4o-mini, GPT-4-turbo
|
| 22 |
+
- **Variable**:
|
| 23 |
+
\`\`\`env
|
| 24 |
+
OPENAI_API_KEY=sk-proj-abc123...
|
| 25 |
+
\`\`\`
|
| 26 |
+
|
| 27 |
+
#### OpenRouter (Multi-Model Access)
|
| 28 |
+
- **Where to get**: [openrouter.ai/keys](https://openrouter.ai/keys)
|
| 29 |
+
- **Cost**: Varies by model ($0.002-0.10 per 1K tokens)
|
| 30 |
+
- **Models**: Claude, Llama, Gemini, GPT-4, and 200+ others
|
| 31 |
+
- **Variable**:
|
| 32 |
+
\`\`\`env
|
| 33 |
+
OPENROUTER_API_KEY=sk-or-v1-abc123...
|
| 34 |
+
\`\`\`
|
| 35 |
+
|
| 36 |
+
#### Groq (Ultra-Fast Inference)
|
| 37 |
+
- **Where to get**: [console.groq.com/keys](https://console.groq.com/keys)
|
| 38 |
+
- **Cost**: Free tier available, then pay-per-use
|
| 39 |
+
- **Models**: Llama 3.1, Mixtral (500+ tokens/sec)
|
| 40 |
+
- **Variable**:
|
| 41 |
+
\`\`\`env
|
| 42 |
+
GROQ_API_KEY=gsk_abc123...
|
| 43 |
+
\`\`\`
|
| 44 |
+
|
| 45 |
+
#### Grok (xAI)
|
| 46 |
+
- **Where to get**: [console.x.ai](https://console.x.ai)
|
| 47 |
+
- **Cost**: Pay-per-use
|
| 48 |
+
- **Models**: Grok-beta, Grok-vision-beta
|
| 49 |
+
- **Variable**:
|
| 50 |
+
\`\`\`env
|
| 51 |
+
XAI_API_KEY=xai-abc123...
|
| 52 |
+
\`\`\`
|
| 53 |
+
|
| 54 |
+
### 3. **MongoDB** (Optional Backup Storage)
|
| 55 |
+
- **Where to get**: [mongodb.com/atlas](https://mongodb.com/atlas)
|
| 56 |
+
- **Steps**:
|
| 57 |
+
1. Create free cluster (512MB)
|
| 58 |
+
2. Database Access → Add User
|
| 59 |
+
3. Network Access → Add IP (0.0.0.0/0 for development)
|
| 60 |
+
4. Connect → Connect Application → Copy connection string
|
| 61 |
+
- **Variable**:
|
| 62 |
+
\`\`\`env
|
| 63 |
+
MONGODB_URI=mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/deep_rebuild?retryWrites=true&w=majority
|
| 64 |
+
\`\`\`
|
| 65 |
+
|
| 66 |
+
### 4. **Deployment Tokens** (For CI/CD)
|
| 67 |
+
|
| 68 |
+
#### Vercel
|
| 69 |
+
- **Where to get**: [vercel.com/account/tokens](https://vercel.com/account/tokens)
|
| 70 |
+
- **Variable**:
|
| 71 |
+
\`\`\`env
|
| 72 |
+
VERCEL_TOKEN=abc123...
|
| 73 |
+
\`\`\`
|
| 74 |
+
|
| 75 |
+
#### HuggingFace
|
| 76 |
+
- **Where to get**: [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens)
|
| 77 |
+
- **Permissions**: Write access to create/update Spaces
|
| 78 |
+
- **Variables**:
|
| 79 |
+
\`\`\`env
|
| 80 |
+
HF_TOKEN=hf_abc123...
|
| 81 |
+
HF_SPACE_NAME=your-username/deep-rebuild
|
| 82 |
+
\`\`\`
|
| 83 |
+
|
| 84 |
+
## 🔧 Quick Setup Commands
|
| 85 |
+
|
| 86 |
+
### Local Development
|
| 87 |
+
\`\`\`bash
|
| 88 |
+
# 1. Clone and install
|
| 89 |
+
git clone <your-repo>
|
| 90 |
+
cd deep-rebuild
|
| 91 |
+
npm install
|
| 92 |
+
|
| 93 |
+
# 2. Copy environment file
|
| 94 |
+
cp .env.example .env.local
|
| 95 |
+
|
| 96 |
+
# 3. Add your API keys to .env.local
|
| 97 |
+
# 4. Run development server
|
| 98 |
+
npm run dev
|
| 99 |
+
\`\`\`
|
| 100 |
+
|
| 101 |
+
### Deploy to Vercel
|
| 102 |
+
\`\`\`bash
|
| 103 |
+
# Option 1: One-click deploy
|
| 104 |
+
# Click: https://vercel.com/new/clone?repository-url=<your-github-repo>
|
| 105 |
+
|
| 106 |
+
# Option 2: Vercel CLI
|
| 107 |
+
npm i -g vercel
|
| 108 |
+
vercel --prod
|
| 109 |
+
\`\`\`
|
| 110 |
+
|
| 111 |
+
### Deploy to HuggingFace
|
| 112 |
+
\`\`\`bash
|
| 113 |
+
# 1. Create Space at huggingface.co/new-space
|
| 114 |
+
# 2. Choose Docker SDK
|
| 115 |
+
# 3. Push your code to the Space repository
|
| 116 |
+
# 4. Add environment variables in Space settings
|
| 117 |
+
\`\`\`
|
| 118 |
+
|
| 119 |
+
## 🎯 Minimum Required Setup
|
| 120 |
+
|
| 121 |
+
**For basic functionality, you only need**:
|
| 122 |
+
1. **Supabase** (free tier) - Database
|
| 123 |
+
2. **One AI Provider** (OpenAI recommended) - AI Generation
|
| 124 |
+
3. **Environment variables** in your deployment platform
|
| 125 |
+
|
| 126 |
+
**Optional enhancements**:
|
| 127 |
+
- MongoDB for backup storage
|
| 128 |
+
- Multiple AI providers for redundancy
|
| 129 |
+
- Deployment tokens for automated CI/CD
|
| 130 |
+
|
| 131 |
+
## 🚨 Security Notes
|
| 132 |
+
|
| 133 |
+
- **Never commit API keys** to version control
|
| 134 |
+
- Use **environment variables** in production
|
| 135 |
+
- **Rotate keys** regularly
|
| 136 |
+
- Set **usage limits** on AI provider accounts
|
| 137 |
+
- Use **service role keys** for Supabase (not anon keys)
|
| 138 |
+
|
| 139 |
+
## 📊 Cost Estimates (Monthly)
|
| 140 |
+
|
| 141 |
+
- **Supabase**: Free (up to 500MB)
|
| 142 |
+
- **MongoDB Atlas**: Free (up to 512MB)
|
| 143 |
+
- **OpenAI**: $5-50 (depending on usage)
|
| 144 |
+
- **Groq**: $0-20 (generous free tier)
|
| 145 |
+
- **Vercel**: Free (hobby projects)
|
| 146 |
+
- **HuggingFace**: Free (public spaces)
|
| 147 |
+
|
| 148 |
+
**Total estimated cost**: $5-70/month depending on AI usage
|
| 149 |
+
\`\`\`
|
| 150 |
+
|
| 151 |
+
```dockerfile file="" isHidden
|
next.config.mjs
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/** @type {import('next').NextConfig} */
|
| 2 |
+
const nextConfig = {
|
| 3 |
+
reactStrictMode: true,
|
| 4 |
+
experimental: {
|
| 5 |
+
serverComponentsExternalPackages: ['mongodb']
|
| 6 |
+
},
|
| 7 |
+
output: 'standalone',
|
| 8 |
+
env: {
|
| 9 |
+
CUSTOM_KEY: process.env.CUSTOM_KEY,
|
| 10 |
+
},
|
| 11 |
+
async headers() {
|
| 12 |
+
return [
|
| 13 |
+
{
|
| 14 |
+
source: '/api/:path*',
|
| 15 |
+
headers: [
|
| 16 |
+
{ key: 'Access-Control-Allow-Origin', value: '*' },
|
| 17 |
+
{ key: 'Access-Control-Allow-Methods', value: 'GET, POST, PUT, DELETE, OPTIONS' },
|
| 18 |
+
{ key: 'Access-Control-Allow-Headers', value: 'Content-Type, Authorization' },
|
| 19 |
+
],
|
| 20 |
+
},
|
| 21 |
+
]
|
| 22 |
+
},
|
| 23 |
+
// Added eslint, typescript, and images configurations
|
| 24 |
+
eslint: {
|
| 25 |
+
ignoreDuringBuilds: true,
|
| 26 |
+
},
|
| 27 |
+
typescript: {
|
| 28 |
+
ignoreBuildErrors: true,
|
| 29 |
+
},
|
| 30 |
+
images: {
|
| 31 |
+
unoptimized: true,
|
| 32 |
+
},
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
export default nextConfig
|
package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "deep-rebuild",
|
| 3 |
+
"version": "1.0.0",
|
| 4 |
+
"private": true,
|
| 5 |
+
"scripts": {
|
| 6 |
+
"build": "next build",
|
| 7 |
+
"dev": "next dev",
|
| 8 |
+
"lint": "next lint",
|
| 9 |
+
"start": "next start",
|
| 10 |
+
"type-check": "tsc --noEmit"
|
| 11 |
+
},
|
| 12 |
+
"dependencies": {
|
| 13 |
+
"@ai-sdk/groq": "latest",
|
| 14 |
+
"@ai-sdk/openai": "latest",
|
| 15 |
+
"@aws-sdk/credential-providers": "latest",
|
| 16 |
+
"@mongodb-js/zstd": "latest",
|
| 17 |
+
"@openrouter/ai-sdk-provider": "latest",
|
| 18 |
+
"@radix-ui/react-dialog": "^1.0.5",
|
| 19 |
+
"@radix-ui/react-dropdown-menu": "^2.0.6",
|
| 20 |
+
"@radix-ui/react-scroll-area": "^1.0.5",
|
| 21 |
+
"@radix-ui/react-select": "^2.0.0",
|
| 22 |
+
"@radix-ui/react-separator": "^1.0.3",
|
| 23 |
+
"@radix-ui/react-slot": "^1.0.2",
|
| 24 |
+
"@radix-ui/react-switch": "^1.0.3",
|
| 25 |
+
"@radix-ui/react-textarea": "^1.0.4",
|
| 26 |
+
"@remix-run/react": "latest",
|
| 27 |
+
"@supabase/supabase-js": "latest",
|
| 28 |
+
"@sveltejs/kit": "latest",
|
| 29 |
+
"@types/node": "^20.0.0",
|
| 30 |
+
"@types/react": "^18.2.0",
|
| 31 |
+
"@types/react-dom": "^18.2.0",
|
| 32 |
+
"@vercel/analytics": "latest",
|
| 33 |
+
"ai": "latest",
|
| 34 |
+
"autoprefixer": "^10.4.0",
|
| 35 |
+
"class-variance-authority": "^0.7.1",
|
| 36 |
+
"clsx": "^2.1.1",
|
| 37 |
+
"gcp-metadata": "latest",
|
| 38 |
+
"geist": "latest",
|
| 39 |
+
"jszip": "^3.10.0",
|
| 40 |
+
"kerberos": "latest",
|
| 41 |
+
"lucide-react": "^0.454.0",
|
| 42 |
+
"mongodb": "latest",
|
| 43 |
+
"mongodb-client-encryption": "latest",
|
| 44 |
+
"next": "15.2.4",
|
| 45 |
+
"next-themes": "latest",
|
| 46 |
+
"openai": "^4.20.0",
|
| 47 |
+
"postcss": "^8.4.0",
|
| 48 |
+
"react": "^19",
|
| 49 |
+
"react-dom": "^19",
|
| 50 |
+
"snappy": "latest",
|
| 51 |
+
"socks": "latest",
|
| 52 |
+
"svelte": "latest",
|
| 53 |
+
"tailwind-merge": "^2.5.5",
|
| 54 |
+
"tailwindcss": "^3.4.17",
|
| 55 |
+
"tailwindcss-animate": "^1.0.7",
|
| 56 |
+
"typescript": "^5.0.0",
|
| 57 |
+
"vue": "latest",
|
| 58 |
+
"vue-router": "latest",
|
| 59 |
+
"zod": "latest"
|
| 60 |
+
},
|
| 61 |
+
"devDependencies": {
|
| 62 |
+
"@types/node": "^22",
|
| 63 |
+
"@types/react": "^19",
|
| 64 |
+
"@types/react-dom": "^19",
|
| 65 |
+
"eslint": "^8.0.0",
|
| 66 |
+
"eslint-config-next": "^14.0.0",
|
| 67 |
+
"postcss": "^8.5",
|
| 68 |
+
"typescript": "^5"
|
| 69 |
+
}
|
| 70 |
+
}
|
pnpm-lock.yaml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
postcss.config.mjs
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/** @type {import('postcss-load-config').Config} */
|
| 2 |
+
const config = {
|
| 3 |
+
plugins: {
|
| 4 |
+
tailwindcss: {},
|
| 5 |
+
},
|
| 6 |
+
};
|
| 7 |
+
|
| 8 |
+
export default config;
|
requirements.txt
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Python dependencies (for Hugging Face Spaces if needed)
|
| 2 |
+
flask
|
| 3 |
+
numpy
|
| 4 |
+
# Add other dependencies as needed
|
tailwind.config.ts
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import type { Config } from "tailwindcss";
|
| 2 |
+
|
| 3 |
+
// all in fixtures is set to tailwind v3 as interims solutions
|
| 4 |
+
|
| 5 |
+
const config: Config = {
|
| 6 |
+
darkMode: ["class"],
|
| 7 |
+
content: [
|
| 8 |
+
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
|
| 9 |
+
"./components/**/*.{js,ts,jsx,tsx,mdx}",
|
| 10 |
+
"./app/**/*.{js,ts,jsx,tsx,mdx}",
|
| 11 |
+
"*.{js,ts,jsx,tsx,mdx}"
|
| 12 |
+
],
|
| 13 |
+
theme: {
|
| 14 |
+
extend: {
|
| 15 |
+
colors: {
|
| 16 |
+
background: 'hsl(var(--background))',
|
| 17 |
+
foreground: 'hsl(var(--foreground))',
|
| 18 |
+
card: {
|
| 19 |
+
DEFAULT: 'hsl(var(--card))',
|
| 20 |
+
foreground: 'hsl(var(--card-foreground))'
|
| 21 |
+
},
|
| 22 |
+
popover: {
|
| 23 |
+
DEFAULT: 'hsl(var(--popover))',
|
| 24 |
+
foreground: 'hsl(var(--popover-foreground))'
|
| 25 |
+
},
|
| 26 |
+
primary: {
|
| 27 |
+
DEFAULT: 'hsl(var(--primary))',
|
| 28 |
+
foreground: 'hsl(var(--primary-foreground))'
|
| 29 |
+
},
|
| 30 |
+
secondary: {
|
| 31 |
+
DEFAULT: 'hsl(var(--secondary))',
|
| 32 |
+
foreground: 'hsl(var(--secondary-foreground))'
|
| 33 |
+
},
|
| 34 |
+
muted: {
|
| 35 |
+
DEFAULT: 'hsl(var(--muted))',
|
| 36 |
+
foreground: 'hsl(var(--muted-foreground))'
|
| 37 |
+
},
|
| 38 |
+
accent: {
|
| 39 |
+
DEFAULT: 'hsl(var(--accent))',
|
| 40 |
+
foreground: 'hsl(var(--accent-foreground))'
|
| 41 |
+
},
|
| 42 |
+
destructive: {
|
| 43 |
+
DEFAULT: 'hsl(var(--destructive))',
|
| 44 |
+
foreground: 'hsl(var(--destructive-foreground))'
|
| 45 |
+
},
|
| 46 |
+
border: 'hsl(var(--border))',
|
| 47 |
+
input: 'hsl(var(--input))',
|
| 48 |
+
ring: 'hsl(var(--ring))',
|
| 49 |
+
chart: {
|
| 50 |
+
'1': 'hsl(var(--chart-1))',
|
| 51 |
+
'2': 'hsl(var(--chart-2))',
|
| 52 |
+
'3': 'hsl(var(--chart-3))',
|
| 53 |
+
'4': 'hsl(var(--chart-4))',
|
| 54 |
+
'5': 'hsl(var(--chart-5))'
|
| 55 |
+
},
|
| 56 |
+
sidebar: {
|
| 57 |
+
DEFAULT: 'hsl(var(--sidebar-background))',
|
| 58 |
+
foreground: 'hsl(var(--sidebar-foreground))',
|
| 59 |
+
primary: 'hsl(var(--sidebar-primary))',
|
| 60 |
+
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
|
| 61 |
+
accent: 'hsl(var(--sidebar-accent))',
|
| 62 |
+
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
|
| 63 |
+
border: 'hsl(var(--sidebar-border))',
|
| 64 |
+
ring: 'hsl(var(--sidebar-ring))'
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
borderRadius: {
|
| 68 |
+
lg: 'var(--radius)',
|
| 69 |
+
md: 'calc(var(--radius) - 2px)',
|
| 70 |
+
sm: 'calc(var(--radius) - 4px)'
|
| 71 |
+
},
|
| 72 |
+
keyframes: {
|
| 73 |
+
'accordion-down': {
|
| 74 |
+
from: {
|
| 75 |
+
height: '0'
|
| 76 |
+
},
|
| 77 |
+
to: {
|
| 78 |
+
height: 'var(--radix-accordion-content-height)'
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
'accordion-up': {
|
| 82 |
+
from: {
|
| 83 |
+
height: 'var(--radix-accordion-content-height)'
|
| 84 |
+
},
|
| 85 |
+
to: {
|
| 86 |
+
height: '0'
|
| 87 |
+
}
|
| 88 |
+
}
|
| 89 |
+
},
|
| 90 |
+
animation: {
|
| 91 |
+
'accordion-down': 'accordion-down 0.2s ease-out',
|
| 92 |
+
'accordion-up': 'accordion-up 0.2s ease-out'
|
| 93 |
+
}
|
| 94 |
+
}
|
| 95 |
+
},
|
| 96 |
+
plugins: [require("tailwindcss-animate")],
|
| 97 |
+
};
|
| 98 |
+
export default config;
|
tsconfig.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"compilerOptions": {
|
| 3 |
+
"lib": ["dom", "dom.iterable", "esnext"],
|
| 4 |
+
"allowJs": true,
|
| 5 |
+
"target": "ES6",
|
| 6 |
+
"skipLibCheck": true,
|
| 7 |
+
"strict": true,
|
| 8 |
+
"noEmit": true,
|
| 9 |
+
"esModuleInterop": true,
|
| 10 |
+
"module": "esnext",
|
| 11 |
+
"moduleResolution": "bundler",
|
| 12 |
+
"resolveJsonModule": true,
|
| 13 |
+
"isolatedModules": true,
|
| 14 |
+
"jsx": "preserve",
|
| 15 |
+
"incremental": true,
|
| 16 |
+
"plugins": [
|
| 17 |
+
{
|
| 18 |
+
"name": "next"
|
| 19 |
+
}
|
| 20 |
+
],
|
| 21 |
+
"paths": {
|
| 22 |
+
"@/*": ["./*"]
|
| 23 |
+
}
|
| 24 |
+
},
|
| 25 |
+
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
| 26 |
+
"exclude": ["node_modules"]
|
| 27 |
+
}
|
vercel.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": 2,
|
| 3 |
+
"builds": [
|
| 4 |
+
{
|
| 5 |
+
"src": "next.config.mjs",
|
| 6 |
+
"use": "@vercel/next"
|
| 7 |
+
}
|
| 8 |
+
],
|
| 9 |
+
"routes": [
|
| 10 |
+
{
|
| 11 |
+
"src": "/(.*)",
|
| 12 |
+
"dest": "/"
|
| 13 |
+
}
|
| 14 |
+
],
|
| 15 |
+
"env": {
|
| 16 |
+
"NEXT_PUBLIC_SUPABASE_URL": "@supabase-url",
|
| 17 |
+
"SUPABASE_SERVICE_ROLE_KEY": "@supabase-service-key",
|
| 18 |
+
"OPENAI_API_KEY": "@openai-key",
|
| 19 |
+
"OPENROUTER_API_KEY": "@openrouter-key",
|
| 20 |
+
"GROQ_API_KEY": "@groq-key",
|
| 21 |
+
"XAI_API_KEY": "@xai-key"
|
| 22 |
+
}
|
| 23 |
+
}
|