Added complete source code and pre-compiled application: Source Code: - app.asar (compiled Electron app) - app-extracted/ (all extracted source files) - dist/services/aiProviderService.js - dist/services/settingsService.js - dist/ipcHandlers.js - dist/aiProviderAPI.ts - dist/ai-provider-settings.html - And all other application files Build Tools: - scripts/extract-app.sh - scripts/repack-app.sh - scripts/build-deb.sh - scripts/install-deb.sh Documentation: - SOURCE_CODE.md (repository structure) - BUILD.md (build instructions) - README.md (overview) - docs/ (complete API docs) - AI_PROVIDER_SPECIFICATION.md - AI_PROVIDER_README.md - IMPLEMENTATION_SUMMARY.md Features included: - 17+ AI provider presets - One-click provider setup - Model auto-fetching - Connection testing - Modern GUI interface - Complete IPC handlers (14 new) - TypeScript API wrapper - Persistent settings Ready to build and customize!
365 lines
11 KiB
Markdown
365 lines
11 KiB
Markdown
# Antigravity IDE - AI Provider Edition Source Code
|
|
|
|
## 📁 Repository Structure
|
|
|
|
```
|
|
antigravity-ai-providers/
|
|
├── README.md # This file
|
|
├── LICENSE # License information
|
|
├── CHANGELOG.md # Version history
|
|
├── INSTALL.md # Installation guide
|
|
├── BUILD.md # Build instructions
|
|
├── src/ # Modified source code
|
|
│ ├── app.asar # Compiled Electron app
|
|
│ ├── app-extracted/ # Extracted app contents
|
|
│ │ ├── dist/
|
|
│ │ │ ├── services/
|
|
│ │ │ │ ├── aiProviderService.js # NEW: AI Provider Service
|
|
│ │ │ │ └── settingsService.js # MODIFIED: Added AI settings
|
|
│ │ │ ├── ipcHandlers.js # MODIFIED: Added AI IPC handlers
|
|
│ │ │ ├── aiProviderAPI.ts # NEW: TypeScript API wrapper
|
|
│ │ │ ├── ai-provider-settings.html # NEW: Complete GUI
|
|
│ │ │ └── [other dist files...]
|
|
│ │ └── [other extracted files...]
|
|
│ └── [original source files...]
|
|
├── packages/ # Pre-built packages
|
|
│ └── antigravity_2.0.1-ai-providers-1_amd64.deb
|
|
├── docs/ # Documentation
|
|
│ ├── AI_PROVIDER_SPECIFICATION.md
|
|
│ ├── AI_PROVIDER_README.md
|
|
│ ├── IMPLEMENTATION_SUMMARY.md
|
|
│ └── API_REFERENCE.md
|
|
├── scripts/ # Build and utility scripts
|
|
│ ├── build-deb.sh
|
|
│ ├── extract-app.sh
|
|
│ ├── repack-app.sh
|
|
│ └── install-deb.sh
|
|
└── .gitignore
|
|
```
|
|
|
|
## 🎯 Overview
|
|
|
|
This repository contains the complete source code and pre-built packages for **Antigravity IDE v2.0.1 - AI Provider Edition**.
|
|
|
|
### What's Included
|
|
|
|
1. **Complete Electron Application Source**
|
|
- Modified main process code
|
|
- IPC handlers for AI provider operations
|
|
- Settings service with AI configuration
|
|
- TypeScript API wrapper
|
|
- Complete HTML/CSS/JS GUI implementation
|
|
|
|
2. **Pre-compiled Package**
|
|
- Ready-to-install .deb package for amd64
|
|
- All dependencies bundled
|
|
- Desktop integration
|
|
- Auto-installation scripts
|
|
|
|
3. **Build Tools**
|
|
- Shell scripts for extraction and repacking
|
|
- Build automation
|
|
- Installation helpers
|
|
|
|
4. **Comprehensive Documentation**
|
|
- Installation guides
|
|
- API reference
|
|
- Implementation details
|
|
- Usage examples
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Option 1: Install Pre-built Package
|
|
|
|
```bash
|
|
# Download the .deb file
|
|
wget https://github.rommark.dev/admin/antigravity-ai-providers/releases/download/v2.0.1-ai-providers-1/antigravity_2.0.1-ai-providers-1_amd64.deb
|
|
|
|
# Install
|
|
sudo dpkg -i antigravity_2.0.1-ai-providers-1_amd64.deb
|
|
|
|
# Launch
|
|
antigravity
|
|
```
|
|
|
|
### Option 2: Build from Source
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.rommark.dev/admin/antigravity-ai-providers.git
|
|
cd antigravity-ai-providers
|
|
|
|
# Extract app.asar
|
|
./scripts/extract-app.sh
|
|
|
|
# Make modifications (optional)
|
|
# Edit files in src/app-extracted/dist/
|
|
|
|
# Repack app.asar
|
|
./scripts/repack-app.sh
|
|
|
|
# Build .deb package
|
|
./scripts/build-deb.sh
|
|
|
|
# Install
|
|
sudo dpkg -i packages/antigravity_2.0.1-ai-providers-1_amd64.deb
|
|
```
|
|
|
|
## 📦 Source Code Components
|
|
|
|
### Backend (Electron Main Process)
|
|
|
|
#### `src/app-extracted/dist/services/aiProviderService.js`
|
|
- **Purpose**: Core AI provider management service
|
|
- **Features**:
|
|
- 17+ provider presets
|
|
- CRUD operations for providers
|
|
- Model fetching from APIs
|
|
- Connection testing
|
|
- Settings persistence
|
|
- Event system for real-time updates
|
|
|
|
#### `src/app-extracted/dist/services/settingsService.js`
|
|
- **Purpose**: Application settings management
|
|
- **Modifications**: Added AI-related settings
|
|
- `aiProvider`: Default provider ID
|
|
- `aiModel`: Default model
|
|
- `aiTemperature`: Response creativity
|
|
- `aiMaxTokens`: Max response length
|
|
- `aiStreaming`: Streaming toggle
|
|
- `aiEmbeddingProvider`: Embedding provider
|
|
|
|
#### `src/app-extracted/dist/ipcHandlers.js`
|
|
- **Purpose**: IPC communication bridge
|
|
- **Modifications**: Added 14 AI provider IPC handlers
|
|
- `ai:get-providers` - Get all providers
|
|
- `ai:get-available-presets` - List presets
|
|
- `ai:add-provider-from-preset` - Quick setup
|
|
- `ai:fetch-models` - Auto-fetch models
|
|
- `ai:test-connection` - Connection testing
|
|
- And more...
|
|
|
|
### Frontend (Renderer Process)
|
|
|
|
#### `src/app-extracted/dist/aiProviderAPI.ts`
|
|
- **Purpose**: Type-safe API wrapper
|
|
- **Features**:
|
|
- TypeScript interfaces
|
|
- IPC communication helpers
|
|
- Settings management
|
|
- Provider operations
|
|
|
|
#### `src/app-extracted/dist/ai-provider-settings.html`
|
|
- **Purpose**: Complete GUI implementation
|
|
- **Features**:
|
|
- Modern responsive design
|
|
- Provider cards with status
|
|
- Preset selector
|
|
- Model auto-fetch
|
|
- Connection testing UI
|
|
- Settings panel
|
|
- Toast notifications
|
|
- Modal dialogs
|
|
|
|
## 🔧 Building from Source
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js 18+ (for asar tools)
|
|
- npm or yarn
|
|
- Linux system (for .deb packaging)
|
|
- Standard build tools
|
|
|
|
### Step 1: Extract app.asar
|
|
|
|
```bash
|
|
cd src
|
|
mkdir -p app-extracted
|
|
cd app-extracted
|
|
npx asar extract ../app.asar dist/
|
|
```
|
|
|
|
### Step 2: Make Modifications
|
|
|
|
Edit files in `src/app-extracted/dist/`:
|
|
|
|
```bash
|
|
# Example: Modify provider presets
|
|
vim dist/services/aiProviderService.js
|
|
|
|
# Example: Add new IPC handler
|
|
vim dist/ipcHandlers.js
|
|
|
|
# Example: Customize GUI
|
|
vim dist/ai-provider-settings.html
|
|
```
|
|
|
|
### Step 3: Repack app.asar
|
|
|
|
```bash
|
|
npx asar pack dist/ ../app.asar
|
|
```
|
|
|
|
### Step 4: Build .deb Package
|
|
|
|
```bash
|
|
cd ../..
|
|
./scripts/build-deb.sh
|
|
```
|
|
|
|
## 📚 Documentation
|
|
|
|
### For Users
|
|
|
|
- **[INSTALL.md](INSTALL.md)** - Installation instructions
|
|
- **[docs/AI_PROVIDER_README.md](docs/AI_PROVIDER_README.md)** - Usage guide
|
|
|
|
### For Developers
|
|
|
|
- **[BUILD.md](BUILD.md)** - Build instructions
|
|
- **[docs/AI_PROVIDER_SPECIFICATION.md](docs/AI_PROVIDER_SPECIFICATION.md)** - API reference
|
|
- **[docs/IMPLEMENTATION_SUMMARY.md](docs/IMPLEMENTATION_SUMMARY.md)** - Architecture
|
|
|
|
## 🤝 Contributing
|
|
|
|
### Reporting Issues
|
|
|
|
1. Check existing issues
|
|
2. Create new issue with:
|
|
- Bug description
|
|
- Steps to reproduce
|
|
- Expected vs actual behavior
|
|
- System information
|
|
- Logs (if applicable)
|
|
|
|
### Submitting Changes
|
|
|
|
1. Fork the repository
|
|
2. Create feature branch
|
|
3. Make changes
|
|
4. Add tests (if applicable)
|
|
5. Submit pull request
|
|
|
|
### Code Style
|
|
|
|
- JavaScript: ES6+ with async/await
|
|
- TypeScript: Strict mode enabled
|
|
- HTML/CSS: Semantic, accessible
|
|
- Comments: English only
|
|
|
|
## 🔒 Security
|
|
|
|
### API Keys
|
|
|
|
- Never commit API keys
|
|
- Use environment variables
|
|
- Store securely in app config
|
|
- Validate before use
|
|
|
|
### Network Security
|
|
|
|
- HTTPS required for external APIs
|
|
- Certificate validation
|
|
- Secure headers
|
|
- No mixed content
|
|
|
|
## 📊 Architecture
|
|
|
|
```
|
|
┌─────────────────────────────────────────┐
|
|
│ Renderer Process (GUI) │
|
|
│ ┌─────────────────────────────────┐ │
|
|
│ │ ai-provider-settings.html │ │
|
|
│ │ ├── Provider Cards │ │
|
|
│ │ ├── Settings Panel │ │
|
|
│ │ ├── Preset Selector │ │
|
|
│ │ └── Connection Testing │ │
|
|
│ └─────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ▼ │
|
|
│ ┌─────────────────────────────────┐ │
|
|
│ │ aiProviderAPI.ts │ │
|
|
│ │ └── Type-safe IPC wrapper │ │
|
|
│ └─────────────────────────────────┘ │
|
|
└──────────────────│──────────────────────┘
|
|
│ IPC (14 handlers)
|
|
▼
|
|
┌─────────────────────────────────────────┐
|
|
│ Main Process (Backend) │
|
|
│ ┌─────────────────────────────────┐ │
|
|
│ │ ipcHandlers.js │ │
|
|
│ │ └── AI Provider handlers │ │
|
|
│ └─────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌─────────────────────────────────┐ │
|
|
│ │ aiProviderService.js │ │
|
|
│ │ ├── Provider management │ │
|
|
│ │ ├── Preset system │ │
|
|
│ │ ├── Connection testing │ │
|
|
│ │ └── Model fetching │ │
|
|
│ └─────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌─────────────────────────────────┐ │
|
|
│ │ settingsService.js │ │
|
|
│ │ └── AI settings keys │ │
|
|
│ └─────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌─────────────────────────────────┐ │
|
|
│ │ storage.js │ │
|
|
│ │ └── Persistent storage │ │
|
|
│ └─────────────────────────────────┘ │
|
|
└─────────────────────────────────────────┘
|
|
```
|
|
|
|
## 🌟 Key Features
|
|
|
|
### One-Click Provider Setup
|
|
```javascript
|
|
await window.electron.invoke('ai:add-provider-from-preset',
|
|
'Google Antigravity (OAuth)',
|
|
'api-key'
|
|
);
|
|
```
|
|
|
|
### Model Auto-Fetching
|
|
```javascript
|
|
const models = await window.electron.invoke('ai:fetch-models', providerId);
|
|
```
|
|
|
|
### Connection Testing
|
|
```javascript
|
|
const result = await window.electron.invoke('ai:test-connection', providerId);
|
|
if (result.success) {
|
|
console.log('✅ Connected!');
|
|
}
|
|
```
|
|
|
|
## 📞 Support
|
|
|
|
- **Issues**: https://github.rommark.dev/admin/antigravity-ai-providers/issues
|
|
- **Discussions**: https://github.rommark.dev/admin/antigravity-ai-providers/discussions
|
|
- **Documentation**: See `/docs` directory
|
|
|
|
## 🙏 Acknowledgments
|
|
|
|
- Antigravity IDE - Original application
|
|
- Codex Launcher - Provider presets
|
|
- Electron - Desktop framework
|
|
- Node.js - JavaScript runtime
|
|
|
|
## 📄 License
|
|
|
|
Same as original Antigravity application.
|
|
|
|
## 🎉 Summary
|
|
|
|
This repository provides:
|
|
- ✅ Complete source code
|
|
- ✅ Pre-compiled package
|
|
- ✅ Build tools
|
|
- ✅ Comprehensive docs
|
|
- ✅ Easy installation
|
|
- ✅ Full customization
|
|
|
|
**Start using or customizing Antigravity with AI Provider support today!**
|