From 8d5e59c60fe7e3714822b74a8191193f1fda1231 Mon Sep 17 00:00:00 2001 From: CD Date: Sat, 7 Mar 2026 17:16:19 +0900 Subject: [PATCH] feat: use sendPromptToAgentPanel + add 171 command reference doc --- docs/antigravity-commands.md | 234 +++++++++++++++++++++++++++++++++++ extension/src/extension.ts | 62 ++++------ 2 files changed, 257 insertions(+), 39 deletions(-) create mode 100644 docs/antigravity-commands.md diff --git a/docs/antigravity-commands.md b/docs/antigravity-commands.md new file mode 100644 index 0000000..2559af8 --- /dev/null +++ b/docs/antigravity-commands.md @@ -0,0 +1,234 @@ +# Antigravity IDE Commands Reference + +> Verified from running Antigravity IDE (v2026-03) via `vscode.commands.getCommands(true)` +> Total: **171 antigravity commands** + **6 chat commands** + +--- + +## 🎯 Chat / Agent Communication + +| Command | Description | +|---------|-------------| +| `antigravity.sendPromptToAgentPanel` | **Send prompt directly to agent panel** | +| `antigravity.sendChatActionMessage` | Send a chat action message | +| `antigravity.sendTextToChat` | Send text to chat (may appear as @tagged) | +| `antigravity.sendTerminalToSidePanel` | Send terminal content to side panel | +| `antigravity.startNewConversation` | Start a new conversation | +| `antigravity.setVisibleConversation` | Set the visible conversation | +| `antigravity.openConversationPicker` | Open conversation picker | +| `antigravity.openConversationWorkspaceQuickPick` | Open conversation workspace quick pick | +| `antigravity.toggleChatFocus` | Toggle chat focus | +| `antigravity.switchBetweenWorkspaceAndAgent` | Switch between workspace and agent | +| `antigravity.prioritized.chat.openNewConversation` | Open new conversation (prioritized) | + +## 🖥️ Agent Panel + +| Command | Description | +|---------|-------------| +| `antigravity.agentPanel.open` | Open agent panel | +| `antigravity.agentPanel.focus` | Focus agent panel | +| `antigravity.agentPanel.expandView` | Expand agent panel view | +| `antigravity.agentPanel.resetViewLocation` | Reset panel view location | +| `antigravity.agentSidePanel.open` | Open agent side panel | +| `antigravity.agentSidePanel.focus` | Focus agent side panel | +| `antigravity.agentSidePanel.expandView` | Expand side panel view | +| `antigravity.agentSidePanel.removeView` | Remove side panel view | +| `antigravity.agentSidePanel.resetViewLocation` | Reset side panel location | +| `antigravity.agentSidePanel.toggleVisibility` | Toggle side panel visibility | +| `antigravity.openAgent` | Open agent | +| `antigravity.initializeAgent` | Initialize agent | + +## ✅ Agent Step Control + +| Command | Description | +|---------|-------------| +| `antigravity.agent.acceptAgentStep` | Accept agent step | +| `antigravity.agent.rejectAgentStep` | Reject agent step | +| `antigravity.command.accept` | Accept command | +| `antigravity.command.reject` | Reject command | +| `antigravity.terminalCommand.accept` | Accept terminal command | +| `antigravity.terminalCommand.reject` | Reject terminal command | +| `antigravity.terminalCommand.run` | Run terminal command | +| `antigravity.acceptCompletion` | Accept completion | +| `antigravity.prioritized.agentAcceptAllInFile` | Accept all changes in file | +| `antigravity.prioritized.agentAcceptFocusedHunk` | Accept focused hunk | +| `antigravity.prioritized.agentFocusNextFile` | Focus next file | +| `antigravity.prioritized.agentFocusNextHunk` | Focus next hunk | +| `antigravity.prioritized.agentFocusPreviousFile` | Focus previous file | +| `antigravity.prioritized.agentFocusPreviousHunk` | Focus previous hunk | +| `antigravity.prioritized.agentRejectAllInFile` | Reject all changes in file | +| `antigravity.prioritized.agentRejectFocusedHunk` | Reject focused hunk | +| `antigravity.prioritized.supercompleteAccept` | Supercomplete accept | +| `antigravity.prioritized.supercompleteEscape` | Supercomplete escape | + +## 📝 Diff / Editor + +| Command | Description | +|---------|-------------| +| `antigravity.closeAllDiffZones` | Close all diff zones | +| `antigravity.handleDiffZoneEdit` | Handle diff zone edit | +| `antigravity.openDiffZones` | Open diff zones | +| `antigravity.setDiffZonesState` | Set diff zones state | +| `antigravity.sidecar.sendDiffZone` | Send diff zone via sidecar | +| `antigravity.openReviewChanges` | Open review changes | + +## 🖥️ Terminal + +| Command | Description | +|---------|-------------| +| `antigravity.showManagedTerminal` | Show managed terminal | +| `antigravity.onManagerTerminalCommandData` | Terminal command data event | +| `antigravity.onManagerTerminalCommandFinish` | Terminal command finish event | +| `antigravity.onManagerTerminalCommandStart` | Terminal command start event | +| `antigravity.onShellCommandCompletion` | Shell command completion event | +| `antigravity.updateTerminalLastCommand` | Update terminal last command | +| `antigravity.prioritized.terminalCommand.open` | Open terminal command | +| `antigravity.prioritized.command.open` | Open command (prioritized) | + +## 🔧 System / Config + +| Command | Description | +|---------|-------------| +| `antigravity.getDiagnostics` | Get diagnostics | +| `antigravity.downloadDiagnostics` | Download diagnostics | +| `antigravity.getManagerTrace` | Get manager trace | +| `antigravity.getWorkbenchTrace` | Get workbench trace | +| `antigravity.enableTracing` | Enable tracing | +| `antigravity.clearAndDisableTracing` | Clear and disable tracing | +| `antigravity.captureTraces` | Capture traces | +| `antigravity.reloadWindow` | Reload window | +| `antigravity.restartLanguageServer` | Restart language server | +| `antigravity.killLanguageServerAndReloadWindow` | Kill LS and reload window | +| `antigravity.killRemoteExtensionHost` | Kill remote extension host | +| `antigravity.restartUserStatusUpdater` | Restart user status updater | +| `antigravity.handleAuthRefresh` | Handle auth refresh | +| `antigravity.cancelLogin` | Cancel login | +| `antigravity.editorModeSettings` | Editor mode settings | +| `antigravity.setWorkingDirectories` | Set working directories | +| `antigravity.simulateSegFault` | Simulate segfault (debug) | + +## 🌐 Browser / MCP + +| Command | Description | +|---------|-------------| +| `antigravity.openBrowser` | Open browser | +| `antigravity.getBrowserOnboardingPort` | Get browser onboarding port | +| `antigravity.getChromeDevtoolsMcpUrl` | Get Chrome DevTools MCP URL | +| `antigravity.openMcpConfigFile` | Open MCP config file | +| `antigravity.openMcpDocsPage` | Open MCP docs page | +| `antigravity.pollMcpServerStates` | Poll MCP server states | +| `antigravity.showBrowserAllowList` | Show browser allow list | + +## 📦 Workflow / Rules / Artifacts + +| Command | Description | +|---------|-------------| +| `antigravity.createGlobalWorkflow` | Create global workflow | +| `antigravity.createRule` | Create rule | +| `antigravity.createWorkflow` | Create workflow | +| `antigravity.artifacts.startComment` | Start artifact comment | +| `antigravity.getCascadePluginTemplate` | Get cascade plugin template | +| `antigravity.executeCascadeAction` | Execute cascade action | +| `antigravity.explainAndFixProblem` | Explain and fix problem | +| `antigravity.prioritized.explainProblem` | Explain problem (prioritized) | + +## 📊 Reporting / Analytics + +| Command | Description | +|---------|-------------| +| `antigravity.generateCommitMessage` | Generate commit message | +| `antigravity.cancelGenerateCommitMessage` | Cancel commit message generation | +| `antigravity.sendAnalyticsAction` | Send analytics action | +| `antigravity.logObservabilityDataAction` | Log observability data | +| `antigravity.tabReporting` | Tab reporting | +| `antigravity.trackBackgroundConversationCreated` | Track background conversation | +| `antigravity.uploadErrorAction` | Upload error action | +| `antigravityAgentManager.clearErrors` | Clear agent manager errors | +| `antigravityAgentManager.reportError` | Report error | +| `antigravityAgentManager.reportNotification` | Report notification | +| `antigravityAgentManager.reportStatus` | Report status | + +## 🎨 UI / Navigation + +| Command | Description | +|---------|-------------| +| `antigravity.openDocs` | Open docs | +| `antigravity.openChangeLog` | Open changelog | +| `antigravity.openCustomizationsTab` | Open customizations tab | +| `antigravity.openConfigurePluginsPage` | Open configure plugins page | +| `antigravity.openGenericUrl` | Open generic URL | +| `antigravity.openGlobalRules` | Open global rules | +| `antigravity.openInteractiveEditor` | Open interactive editor | +| `antigravity.openIssueReporter` | Open issue reporter | +| `antigravity.openQuickSettingsPanel` | Open quick settings panel | +| `antigravity.openRulesEducationalLink` | Open rules educational link | +| `antigravity.openTroubleshooting` | Open troubleshooting | +| `antigravity.openInCiderAction.topBar` | Open in Cider action | +| `antigravity.customizeAppIcon` | Customize app icon | +| `antigravity.hideFullScreenView` | Hide full screen view | + +## 🔌 Import / Migration + +| Command | Description | +|---------|-------------| +| `antigravity.importCiderSettings` | Import Cider settings | +| `antigravity.importCursorExtensions` | Import Cursor extensions | +| `antigravity.importCursorSettings` | Import Cursor settings | +| `antigravity.importVSCodeExtensions` | Import VS Code extensions | +| `antigravity.importVSCodeRecentWorkspaces` | Import VS Code workspaces | +| `antigravity.importVSCodeSettings` | Import VS Code settings | +| `antigravity.importWindsurfExtensions` | Import Windsurf extensions | +| `antigravity.importWindsurfSettings` | Import Windsurf settings | +| `antigravity.migrateWindsurfSettings` | Migrate Windsurf settings | + +## 🐳 Dev Containers / SSH / WSL + +| Command | Description | +|---------|-------------| +| `antigravity-dev-containers.attachToRunningContainer` | Attach to running container | +| `antigravity-dev-containers.openInContainer` | Open in container | +| `antigravity-dev-containers.reopenFolderLocally` | Reopen folder locally | +| `antigravity-dev-containers.reopenInContainer` | Reopen in container | +| `antigravity-dev-containers.showLog` | Show container log | +| `antigravitySSHHosts.*` | SSH host management | +| `antigravityWslTargets.*` | WSL target management | + +## 🔊 Audio / Demo + +| Command | Description | +|---------|-------------| +| `antigravity.playAudio` | Play audio | +| `antigravity.playNote` | Play note | +| `antigravity.startDemoMode` | Start demo mode | +| `antigravity.endDemoMode` | End demo mode | + +## 🔍 Debug + +| Command | Description | +|---------|-------------| +| `antigravity.toggleDebugInfoWidget` | Toggle debug info widget | +| `antigravity.updateDebugInfoWidget` | Update debug info widget | +| `antigravity.toggleManagerDevTools` | Toggle manager dev tools | +| `antigravity.toggleSettingsDevTools` | Toggle settings dev tools | +| `antigravity.toggleNewConvoStreamFormat` | Toggle new convo stream format | +| `antigravity.togglePersistentLanguageServer` | Toggle persistent LS | +| `antigravity.toggleRerenderFrequencyAlerts` | Toggle rerender frequency alerts | + +## 💬 Chat Commands (Non-Antigravity) + +| Command | Description | +|---------|-------------| +| `chat.inlineResourceAnchor.openToSide` | Open inline resource | +| `chat.openFileSnapshot` | Open file snapshot | +| `chat.openFileUpdatedBySnapshot` | Open file updated by snapshot | +| `workbench.action.chat.openStorageFolder` | Open chat storage folder | +| `workbench.action.terminal.chat.openTerminalSettingsLink` | Open terminal chat settings | + +## 🔗 Git (Antigravity) + +| Command | Description | +|---------|-------------| +| `git.antigravityClearCloneProgress` | Clear clone progress | +| `git.antigravityCloneNonInteractive` | Clone non-interactive | +| `git.antigravityGetRemoteUrl` | Get remote URL | +| `git.antigravityReportCloneProgress` | Report clone progress | diff --git a/extension/src/extension.ts b/extension/src/extension.ts index 5042a85..3564f7f 100644 --- a/extension/src/extension.ts +++ b/extension/src/extension.ts @@ -279,46 +279,30 @@ async function handleCommand(filePath: string) { return; } - // General text: send to Antigravity chat - // Step 1: Ensure agent panel is open - const openCmds = [ - 'antigravity.prioritized.chat.openNewConversation', - 'workbench.panel.chat.view.copilot.focus', - ]; - for (const cmd of openCmds) { + // General text: send directly to Antigravity agent panel + try { + await vscode.commands.executeCommand('antigravity.sendPromptToAgentPanel', command.text); + console.log(`Gravity Bridge: ✅ sent via sendPromptToAgentPanel`); + } catch (e1) { + console.log(`Gravity Bridge: sendPromptToAgentPanel failed: ${e1}`); + // Fallback: try sendChatActionMessage try { - await vscode.commands.executeCommand(cmd); - console.log(`Gravity Bridge: panel opened with "${cmd}"`); - break; - } catch { /* try next */ } - } - - // Step 2: Wait for panel to be ready - await new Promise(resolve => setTimeout(resolve, 1000)); - - // Step 3: Try sending text via native API - let sent = false; - for (const flag of [true, false]) { - try { - await vscode.commands.executeCommand('antigravity.sendTextToChat', flag, command.text); - console.log(`Gravity Bridge: ✅ sendTextToChat(${flag}) executed`); - sent = true; - break; - } catch (e) { - console.log(`Gravity Bridge: sendTextToChat(${flag}) error: ${e}`); - } - } - - // Step 4: If native API didn't work, clipboard paste - if (!sent) { - try { - const oldClip = await vscode.env.clipboard.readText(); - await vscode.env.clipboard.writeText(command.text); - await vscode.commands.executeCommand('editor.action.clipboardPasteAction'); - await vscode.env.clipboard.writeText(oldClip); - console.log('Gravity Bridge: clipboard paste fallback'); - } catch (e) { - console.error('Gravity Bridge: all methods failed', e); + await vscode.commands.executeCommand('antigravity.sendChatActionMessage', command.text); + console.log(`Gravity Bridge: ✅ sent via sendChatActionMessage`); + } catch (e2) { + console.log(`Gravity Bridge: sendChatActionMessage failed: ${e2}`); + // Last resort: focus panel + clipboard paste + try { + await vscode.commands.executeCommand('antigravity.agentPanel.focus'); + await new Promise(resolve => setTimeout(resolve, 300)); + const oldClip = await vscode.env.clipboard.readText(); + await vscode.env.clipboard.writeText(command.text); + await vscode.commands.executeCommand('editor.action.clipboardPasteAction'); + await vscode.env.clipboard.writeText(oldClip); + console.log('Gravity Bridge: clipboard paste fallback'); + } catch (e3) { + console.error('Gravity Bridge: all methods failed', e3); + } } }