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!
4.6 KiB
4.6 KiB
Building Antigravity from Source
This guide explains how to extract, modify, and rebuild the Antigravity IDE from source.
Prerequisites
- Linux system (Ubuntu/Debian recommended)
- Node.js 18+ with npm
- Git
- Standard build tools
- ~1GB disk space
Quick Build
If you just want to rebuild the package without modifications:
# Clone repository
git clone https://github.rommark.dev/admin/antigravity-ai-providers.git
cd antigravity-ai-providers
# Build .deb package
./scripts/build-deb.sh
# Install
sudo dpkg -i packages/antigravity_2.0.1-ai-providers-1_amd64.deb
Detailed Build Process
Step 1: Extract app.asar
The application code is packaged in app.asar. Extract it to modify:
# Extract app
./scripts/extract-app.sh
# This creates: src/app-extracted/
Step 2: Modify Code
Navigate to extracted files:
cd src/app-extracted/dist/
Key Files:
services/aiProviderService.js- AI provider managementservices/settingsService.js- Application settingsipcHandlers.js- IPC communicationaiProviderAPI.ts- TypeScript API wrapperai-provider-settings.html- Complete GUI
Example Modifications:
Add a New Provider Preset
Edit services/aiProviderService.js:
const PROVIDER_PRESETS = {
// ... existing presets ...
"My Custom Provider": {
type: AIProviderType.CUSTOM,
endpoint: "https://api.myprovider.com/v1",
models: ["model-1", "model-2"],
capabilities: [AIProviderCapability.CHAT, AIProviderCapability.STREAMING],
},
};
Add New IPC Handler
Edit ipcHandlers.js:
electron_1.ipcMain.handle('ai:my-new-handler', async (_event, arg) => {
// Your handler logic
return result;
});
Customize GUI
Edit ai-provider-settings.html:
<!-- Add your UI changes -->
<div id="my-new-section">
<h2>My New Feature</h2>
<!-- ... -->
</div>
Step 3: Repack app.asar
After making changes, repack:
# Repack
./scripts/repack-app.sh
# This updates: src/app.asar
Step 4: Build Package
Create the .deb package:
# Build
./scripts/build-deb.sh
# Output: packages/antigravity_2.0.1-ai-providers-1_amd64.deb
Step 5: Install & Test
# Install
sudo dpkg -i packages/antigravity_2.0.1-ai-providers-1_amd64.deb
# Test
antigravity
Development Workflow
Watching for Changes
For rapid development:
# Terminal 1: Extract and watch
./scripts/extract-app.sh
# (Manual repack after changes)
# Terminal 2: Build and install
./scripts/build-deb.sh && sudo dpkg -i packages/*.deb
Debugging
View logs:
# Electron logs
cat ~/.config/antigravity/logs/*.log
# Language server logs
cat ~/.cache/antigravity/language_server.log
Run in debug mode:
antigravity --enable-logging
Testing Changes
# Reinstall and test
sudo dpkg -r antigravity
sudo dpkg -i packages/antigravity_2.0.1-ai-providers-1_amd64.deb
antigravity
Troubleshooting
asar command not found
npm install -g asar
Build fails
Check dependencies:
sudo apt-get install build-essential
Installation fails
Fix dependencies:
sudo dpkg -i antigravity_2.0.1-ai-providers-1_amd64.deb
sudo apt-get install -f
App doesn't start
Check logs:
journalctl -xe
cat ~/.config/antigravity/logs/*.log
Advanced: Custom Package
Create Different Architecture
Edit scripts/build-deb.sh:
# For ARM64
ARCH="arm64"
DEB_FILE="antigravity_${VERSION}_arm64.deb"
Add Extra Dependencies
Edit scripts/build-deb.sh:
# Add to Depends field in control file
Depends: ..., my-custom-package
Include Additional Files
# In build-deb.sh, after copying app files:
cp /path/to/your/file "$TEMP_DIR/opt/antigravity/"
Contributing Changes
- Fork repository
- Create branch:
git checkout -b feature/my-feature - Commit changes:
git commit -am 'Add my feature' - Push:
git push origin feature/my-feature - Create Pull Request
API Documentation
See /docs/ directory for complete API reference:
AI_PROVIDER_SPECIFICATION.md- AI Provider APIAI_PROVIDER_README.md- Integration guideIMPLEMENTATION_SUMMARY.md- Architecture details
Need Help?
- Issues: https://github.rommark.dev/admin/antigravity-ai-providers/issues
- Discussions: https://github.rommark.dev/admin/antigravity-ai-providers/discussions
Summary
- Extract:
./scripts/extract-app.sh - Modify: Edit files in
src/app-extracted/dist/ - Repack:
./scripts/repack-app.sh - Build:
./scripts/build-deb.sh - Install:
sudo dpkg -i packages/*.deb
Happy coding! 🚀