Files
ag-x/BUILD.md
Admin 0265d58123 Complete source code - AI Provider Edition v2.0.1
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!
2026-05-22 10:34:10 +00:00

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 management
  • services/settingsService.js - Application settings
  • ipcHandlers.js - IPC communication
  • aiProviderAPI.ts - TypeScript API wrapper
  • ai-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

  1. Fork repository
  2. Create branch: git checkout -b feature/my-feature
  3. Commit changes: git commit -am 'Add my feature'
  4. Push: git push origin feature/my-feature
  5. Create Pull Request

API Documentation

See /docs/ directory for complete API reference:

  • AI_PROVIDER_SPECIFICATION.md - AI Provider API
  • AI_PROVIDER_README.md - Integration guide
  • IMPLEMENTATION_SUMMARY.md - Architecture details

Need Help?

Summary

  1. Extract: ./scripts/extract-app.sh
  2. Modify: Edit files in src/app-extracted/dist/
  3. Repack: ./scripts/repack-app.sh
  4. Build: ./scripts/build-deb.sh
  5. Install: sudo dpkg -i packages/*.deb

Happy coding! 🚀