Files
ag-x/dist/menu.js
admin 43e2a2f78f AG X v2.0.3 - Antigravity fork with multi-provider support
Features:
- Welcome screen on first run (provider choice before LS starts)
- 15+ AI providers (Google Gemini, OpenAI, Anthropic, DeepSeek, Ollama, etc.)
- Provider config syncs to endpoints.json for translation proxy
- Built-in Node.js translation proxy for non-native backends
- Auto-update support, tray integration, URI scheme handler
2026-05-22 23:20:10 +04:00

82 lines
3.0 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupApplicationMenu = setupApplicationMenu;
const electron_1 = require("electron");
const utils_1 = require("./utils");
const updater_1 = require("./updater");
const providerSettings_1 = require("./providerSettings");
/**
* Applies modifications to the default application menu.
* Adds "New Window", "AI Provider Settings", and other items.
*/
function setupApplicationMenu(url) {
const menu = electron_1.Menu.getApplicationMenu();
if (!menu) {
return;
}
// Adds a "New Window" item to the top of the existing File menu.
addItemToSubmenu(menu, 'File', 0, new electron_1.MenuItem({
label: 'New Window',
accelerator: 'CmdOrCtrl+Shift+N',
click: () => {
(0, utils_1.createWindow)(url);
},
}));
// Add "AI Provider Settings" to the File menu
addItemToSubmenu(menu, 'File', 1, new electron_1.MenuItem({
label: 'AI Provider Settings',
accelerator: 'CmdOrCtrl+,',
click: () => {
electron_1.BrowserWindow.getAllWindows()[0]?.webContents.send('provider:open-settings');
electron_1.ipcMain.emit('provider:open-settings-request');
},
}));
// Add separator after new items
addItemToSubmenu(menu, 'File', 2, new electron_1.MenuItem({
type: 'separator',
}));
// Add "Check for Updates" to the application menu on macOS.
if ((0, utils_1.isMacOS)()) {
const appSubmenu = menu.items[0]?.submenu;
if (appSubmenu) {
appSubmenu.insert(1, new electron_1.MenuItem({
id: 'check-for-updates',
label: updater_1.MenuUpdateStep.CheckForUpdates,
click: (menuItem) => {
const action = updater_1.updateActions[menuItem.label];
action?.();
},
}));
}
}
// Adds Docs, AI Provider Settings, and Toggle Developer Tools to the Help menu
addItemToSubmenu(menu, 'Help', 0, new electron_1.MenuItem({
label: 'Docs',
click: async () => {
await electron_1.shell.openExternal('https://ag-x.dev/docs');
},
}));
addItemToSubmenu(menu, 'Help', 1, new electron_1.MenuItem({
label: 'AI Provider Settings',
click: () => {
electron_1.BrowserWindow.getAllWindows()[0]?.webContents.send('provider:open-settings');
electron_1.ipcMain.emit('provider:open-settings-request');
},
}));
addItemToSubmenu(menu, 'Help', 2, new electron_1.MenuItem({
role: 'toggleDevTools',
}));
// Re-apply the menu so the change takes effect.
electron_1.Menu.setApplicationMenu(menu);
}
/**
* Adds a menu item to a submenu of the main application menu.
*/
function addItemToSubmenu(appMenu, submenuLabel, position, item) {
const submenuItem = appMenu.items.find((item) => item.label === submenuLabel);
if (!submenuItem?.submenu) {
return;
}
submenuItem.submenu.insert(position, item);
}