Files
zerogravity/docs/ls-binary-analysis.md

1022 lines
33 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LS Binary Analysis — Reverse Engineering Notes
Source: `strings` analysis of `/usr/share/antigravity/resources/app/extensions/antigravity/bin/language_server_linux_x64`
---
## Model IDs (All Known)
### Placeholder Models (M0M50)
51 placeholder model slots (`MODEL_PLACEHOLDER_M0` through `MODEL_PLACEHOLDER_M50`).
**Known mappings** (confirmed via traffic analysis):
| Placeholder | Model |
| ----------------------- | ------------------- |
| `MODEL_PLACEHOLDER_M7` | Gemini 3 Pro (Low) |
| `MODEL_PLACEHOLDER_M8` | Gemini 3 Pro (High) |
| `MODEL_PLACEHOLDER_M12` | Claude Opus 4.5 |
| `MODEL_PLACEHOLDER_M18` | Gemini 3 Flash |
| `MODEL_PLACEHOLDER_M26` | Claude Opus 4.6 |
Remaining placeholders (M0M6, M9M11, M13M17, M19M25, M27M50) are unmapped — likely reserved for future models or A/B test variants.
### Claude Models
| Model ID | Notes |
| --------------------------------------------------- | ------------------ |
| `MODEL_CLAUDE_3_HAIKU_20240307` | Legacy |
| `MODEL_CLAUDE_3_SONNET_20240229` | Legacy |
| `MODEL_CLAUDE_3_OPUS_20240229` | Legacy |
| `MODEL_CLAUDE_3_5_HAIKU_20241022` | |
| `MODEL_CLAUDE_3_5_SONNET_20240620` | |
| `MODEL_CLAUDE_3_5_SONNET_20241022` | |
| `MODEL_CLAUDE_3_5_SONNET_BYOK` | Bring Your Own Key |
| `MODEL_CLAUDE_3_7_SONNET_20250219` | |
| `MODEL_CLAUDE_3_7_SONNET_20250219_THINKING` | Extended thinking |
| `MODEL_CLAUDE_3_7_SONNET_BYOK` | BYOK |
| `MODEL_CLAUDE_3_7_SONNET_OPEN_ROUTER_BYOK` | OpenRouter BYOK |
| `MODEL_CLAUDE_3_7_SONNET_THINKING_BYOK` | BYOK + thinking |
| `MODEL_CLAUDE_3_7_SONNET_THINKING_OPEN_ROUTER_BYOK` | OpenRouter BYOK |
| `MODEL_CLAUDE_4_SONNET` | Claude 4 Sonnet |
| `MODEL_CLAUDE_4_SONNET_THINKING` | + thinking |
| `MODEL_CLAUDE_4_SONNET_BYOK` | BYOK |
| `MODEL_CLAUDE_4_SONNET_DATABRICKS` | Databricks hosted |
| `MODEL_CLAUDE_4_SONNET_THINKING_DATABRICKS` | Databricks + think |
| `MODEL_CLAUDE_4_SONNET_OPEN_ROUTER_BYOK` | OpenRouter BYOK |
| `MODEL_CLAUDE_4_SONNET_THINKING_OPEN_ROUTER_BYOK` | OpenRouter BYOK |
| `MODEL_CLAUDE_4_SONNET_THINKING_BYOK` | BYOK + thinking |
| `MODEL_CLAUDE_4_OPUS` | Claude 4 Opus |
| `MODEL_CLAUDE_4_OPUS_THINKING` | + thinking |
| `MODEL_CLAUDE_4_OPUS_BYOK` | BYOK |
| `MODEL_CLAUDE_4_OPUS_THINKING_BYOK` | BYOK + thinking |
| `MODEL_CLAUDE_4_5_SONNET` | Claude 4.5 Sonnet |
| `MODEL_CLAUDE_4_5_SONNET_THINKING` | + thinking |
| `MODEL_CLAUDE_4_5_HAIKU` | Claude 4.5 Haiku |
| `MODEL_CLAUDE_4_5_HAIKU_THINKING` | + thinking |
### Google Models
| Model ID | Notes |
| ------------------------------------------------------ | ----------------------- |
| `MODEL_GOOGLE_GEMINI_1_0_PRO` | Legacy |
| `MODEL_GOOGLE_GEMINI_1_5_PRO` | Legacy |
| `MODEL_GOOGLE_GEMINI_2_0_FLASH` | |
| `MODEL_GOOGLE_GEMINI_2_5_FLASH` | |
| `MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE` | |
| `MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING` | |
| `MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING_TOOLS` | With tool use |
| `MODEL_GOOGLE_GEMINI_2_5_FLASH_IMAGE_PREVIEW` | Image input |
| `MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_04_17` | April preview |
| `MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20` | May preview |
| `MODEL_GOOGLE_GEMINI_2_5_FLASH_PREVIEW_05_20_THINKING` | May preview + thinking |
| `MODEL_GOOGLE_GEMINI_2_5_PRO` | |
| `MODEL_GOOGLE_GEMINI_2_5_PRO_EVAL` | Evaluation variant |
| `MODEL_GOOGLE_GEMINI_COMPUTER_USE_EXPERIMENTAL` | Browser/computer use |
| `MODEL_GOOGLE_GEMINI_EXP_1206` | December experiment |
| `MODEL_GOOGLE_GEMINI_FOR_GOOGLE_2_5_PRO` | Google-internal 2.5 Pro |
| `MODEL_GOOGLE_GEMINI_INTERNAL_BYOM` | Bring Your Own Model |
| `MODEL_GOOGLE_GEMINI_INTERNAL_TAB_FLASH_LITE` | Tab completion model |
| `MODEL_GOOGLE_GEMINI_INTERNAL_TAB_JUMP_FLASH_LITE` | Tab-jump completion |
| `MODEL_GOOGLE_GEMINI_TRAINING_POLICY` | RLHF/training policy |
| `MODEL_GOOGLE_TRAINING_CHECKPOINT` | Training checkpoint |
| `MODEL_GOOGLE_TRAINING_JUDGE` | Evaluation judge |
| **Codename models** (likely Gemini 3.x variants): | |
| `MODEL_GOOGLE_GEMINI_RIFTRUNNER` | Codename |
| `MODEL_GOOGLE_GEMINI_RIFTRUNNER_THINKING_HIGH` | High compute |
| `MODEL_GOOGLE_GEMINI_RIFTRUNNER_THINKING_LOW` | Low compute |
| `MODEL_GOOGLE_GEMINI_HORIZONDAWN` | Codename |
| `MODEL_GOOGLE_GEMINI_COSMICFORGE` | Codename |
| `MODEL_GOOGLE_GEMINI_INFINITYJET` | Codename |
| `MODEL_GOOGLE_GEMINI_INFINITYBLOOM` | Codename |
| `MODEL_GOOGLE_GEMINI_NEMOSREEF` | Codename |
| `MODEL_GOOGLE_GEMINI_PUREPRISM` | Codename |
| `MODEL_GOOGLE_GEMINI_ORIONFIRE` | Codename |
| `MODEL_GOOGLE_GEMINI_RAINSONG` | Codename |
| `MODEL_GOOGLE_GEMINI_GENTLEISLAND` | Codename |
| `MODEL_GOOGLE_JARVIS_PROXY` | Jarvis proxy endpoint |
| `MODEL_GOOGLE_JARVIS_V4S` | Jarvis v4s model |
### OpenAI Models
| Model ID | Notes |
| ---------------------------------- | ---------------- |
| `MODEL_OPENAI_COMPATIBLE` | Generic compat |
| `MODEL_OPENAI_GPT_OSS_120B_MEDIUM` | Open-source 120B |
---
## gRPC Services
### LanguageServerService (137+ methods)
The main service running locally on the user's machine. Communicates with both
the extension and the API server.
<details>
<summary>Full method list (click to expand)</summary>
```
AcceptTermsOfService
AcknowledgeCascadeCodeEdit
AcknowledgeCodeActionStep
AddToBrowserWhitelist
AddTrackedWorkspace
BrowserValidateCascadeOrCancelOverlayGenerate
CancelCascadeInvocation
CancelCascadeSteps
CaptureConsoleLogs
CaptureScreenshot
ConvertTrajectoryToMarkdown
CopyBuiltinWorkflowToWorkspace
CopyTrajectory
CreateCustomizationFile
CreateReplayWorkspace
CreateTrajectoryShare
CreateWorktree
DeleteCascadeMemory
DeleteCascadeTrajectory
DeleteMediaArtifact
DeleteQueuedUserInputStep
DumpFlightRecorder
DumpPprof
Exit
FocusUserPage
ForceBackgroundResearchRefresh
GenerateCommitMessage
GetAgentScripts
GetAllBrowserWhitelistedUrls
GetAllCascadeTrajectories
GetAllCustomAgentConfigs
GetAllRules
GetAllSkills
GetAllWorkflows
GetArtifactSnapshots
GetAvailableCascadePlugins
GetBrowserOpenConversation
GetBrowserWhitelistFilePath
GetCascadeMemories
GetCascadeModelConfigData
GetCascadeModelConfigs
GetCascadeNuxes
GetCascadePluginById
GetCascadeTrajectory
GetCascadeTrajectoryGeneratorMetadata
GetCascadeTrajectorySteps
GetChangelog
GetCodeValidationStates
GetCommandModelConfigs
GetDebugDiagnostics
GetMatchingContextScopeItems
GetMcpServerStates
GetMcpServerTemplates
GetModelResponse
GetModelStatuses
GetPatchAndCodeChange
GetProfileData
GetRepoInfos
GetRevertPreview
GetRevisionArtifact
GetStaticExperimentStatus
GetStatus
GetTeamOrganizationalControls
GetTermsOfService
GetTranscription
GetUnleashData
GetUserAnalyticsSummary
GetUserMemories
GetUserSettings
GetUserStatus
GetUserTrajectory
GetUserTrajectoryDebug
GetUserTrajectoryDescriptions
GetWebDocsOptions
GetWorkingDirectories
GetWorkspaceEditState
GetWorkspaceInfos
HandleCascadeUserInteraction
HandleScreenRecording
HandleStreamingCommand
Heartbeat
ImportFromCursor
InitializeCascadePanelState
InstallCascadePlugin
ListMcpResources
ListPages
LoadReplayConversation
LoadTrajectory
MigrateApiKey
OpenUrl
ProvideCompletionFeedback
RecordAnalyticsEvent
RecordChatFeedback
RecordChatPanelSession
RecordCommitMessageSave
RecordEvent
RecordInteractiveCascadeFeedback
RecordLints
RecordSearchDocOpen
RecordSearchResultsView
RecordUserGrep
RecordUserStepSnapshot
RefreshContextForIdeAction
RefreshMcpServers
RegisterGdmUser
RemoveTrackedWorkspace
ReplayGroundTruthTrajectory
ResetOnboarding
ResolveOutstandingSteps
RevertToCascadeStep
SaveMediaAsArtifact
SaveScreenRecording
SendActionToChatPanel
SendAllQueuedMessages
SendUserCascadeMessage
SetBaseExperiments
SetBrowserOpenConversation
SetUserSettings
SetWorkingDirectories
SetupUniversitySandbox
ShouldEnableUnleash
SignalExecutableIdle
SimulateSegFault
SkipOnboarding
SmartFocusConversation
SmartOpenBrowser
StartCascade
StartScreenRecording
StatUri
StreamCascadePanelReactiveUpdates
StreamCascadeReactiveUpdates
StreamCascadeSummariesReactiveUpdates
StreamTerminalShellCommand
StreamUserTrajectoryReactiveUpdates
UpdateCascadeMemory
UpdateConversationAnnotations
UpdateDevExperiments
UpdateEnterpriseExperimentsFromUrl
UpdatePRForWorktree
WellSupportedLanguages
```
</details>
**Notable new findings:**
- `StreamCascadeReactiveUpdates` — server-sent streaming RPC for real-time cascade updates (alternative to our current polling approach)
- `GetUnleashData` — direct access to feature flag data
- `GetUserMemories` — persistent memory system
- `DumpFlightRecorder` / `DumpPprof` — debug/profiling endpoints
- `SimulateSegFault` — intentional crash trigger (testing?)
- `ImportFromCursor` — competitive migration tool
- `GetAllRules` / `GetAllWorkflows` / `GetAllSkills` — customization system
- `StreamTerminalShellCommand` — streaming terminal execution
- `HandleScreenRecording` / `CaptureScreenshot` — browser automation
- `CreateWorktree` / `UpdatePRForWorktree` — git worktree integration
- `ListMcpResources` / `RefreshMcpServers` — MCP tool integration
### ApiServerService (87+ methods)
Cloud-hosted API server. LS communicates with this for analytics, model config,
and remote operations.
<details>
<summary>Full method list (click to expand)</summary>
```
ApplyTrajectoryHeuristics
BatchRecordChatRequestRecords
BatchRecordCompletions
BatchRecordPrompts
BatchRecordUserLastUpdateTimes
CheckHybridDeploymentStatus
ContactForm
CreateHybridDeploymentInternal
CreateTrajectoryShare
DeleteAllowlist
DeleteOidcProvider
DeleteTeamOrganizationalControls
DeleteTrajectoryShare
ExchangeOidcCode
FetchTrajectoryShare
FetchTrajectoryShareByUser
GenerateSyntheticRule
GetAllOidcProviders
GetAllowlist
GetCascadeModelConfigs
GetCascadeNuxes
GetChatMessage
GetCommandModelConfigs
GetCompletionExamples
GetDefaultWorkflowTemplates
GetDeploymentConfig
GetEmbeddings
GetExtensionStats
GetHybridDeploymentsInternal
GetImageGeneration
GetMQuery
GetMcpServerTemplates
GetModelInfos
GetModelStatuses
GetOidcAuthorizationUrl
GetStatus
GetStreamingExternalChatCompletions
GetStreamingModelAPITextCompletion
GetTeamOidcProviders
GetTeamOrganizationalControls
GetTeamOrganizationalControlsForSite
GetTranscription
GetUnleashContextFields
GetUserAllowlist
GetWebDocsOptions
GetWebSearchRedirect
GetWebSearchResults
InsertAllowlist
IsConversationSharingBlocked
JoinWaitlist
LogChatHybrid
LogCompletionsHybrid
LogFeedbackHybrid
PingGemini
ProvideFeedback
RecordAsyncTelemetry
RecordCascadeUsage
RecordChatFeedback
RecordChatModelNodeRun
RecordChatPanelSession
RecordChatSuccessfully
RecordCodeTrackerUpdates
RecordCommandUsage
RecordCommitMessageGeneration
RecordCommitMessageSave
RecordCompletionExample
RecordCompletions
RecordContextRefresh
RecordContextToPrompt
RecordCortexCodingPlan
RecordCortexCodingStep
RecordCortexCodingStepFeedback
RecordCortexError
RecordCortexExecutionMetadata
RecordCortexFeedback
RecordCortexGeneratorMetadata
RecordCortexStep
RecordCortexTrajectory
RecordCortexTrajectoryStep
RecordDebounce
RecordEvent
RecordFullTrajectoryAnalytics
RecordGitTelemetry
RecordMQuery
RecordNewCortexPlan
RecordOpportunities
RecordPinnedContext
RecordProfilingData
RecordReadUrlContent
RecordSearch
RecordSearchDocOpen
RecordSearchResults
RecordSearchResultsView
RecordStateInitializationData
RecordTrajectorySegmentAnalytics
RecordTrajectorySegmentEvents
RefreshOidcToken
RegisterHybridDeployment
RegisterOidcProvider
RemoveHybridDeploymentInternal
RunCodeAlignment
SendReferralEmail
StreamingTest
Subscribe
SubscribeToBlog
SupportsRemoteIndexing
UnsubscribeFromEmails
UploadErrorTraces
UpsertDeploymentConfig
UpsertTeamOrganizationalControls
UpsertTeamOrganizationalControlsForSite
ValidateEmail
ValidateRegistrationCode
WhoAmI
```
</details>
**Notable:**
- `GetStreamingExternalChatCompletions` — streaming chat API
- `GetStreamingModelAPITextCompletion` — streaming text completion
- `GetImageGeneration` — image generation capability
- `GetMQuery` / `RecordMQuery` — unknown "MQuery" system
- `GetEmbeddings` — embedding generation
- `PingGemini` — health check for Gemini
- `RecordCascadeUsage` — usage reporting (our MITM target!)
- `RunCodeAlignment` — code alignment/formatting service
- `GetWebSearchResults` — web search integration
### ExtensionServerService (53+ methods)
Extension-side service that the LS calls back into for IDE operations.
<details>
<summary>Full method list (click to expand)</summary>
```
AddAnnotation
BroadcastConversationDeletion
CheckTerminalShellSupport
EndAudioRecording
ExecuteCommand
FetchMCPAuthToken
FindAllReferences
FocusIDEWindow
GetBrowserOnboardingPort
GetChromeDevtoolsMcpUrl
GetCurrentAudioRecording
GetDefinition
GetLintErrors
GetSecretValue
HandleAsyncPostMessage
HandleProposeCodeExtensionVerification
InsertCodeAtCursor
IsAgentManagerEnabled
LanguageServerStarted
LaunchBrowser
LogEvent
OpenAntigravityRulesFile
OpenConfigurePluginsPage
OpenConversationWorkspaceQuickPick
OpenDiffZones
OpenExternalUrl
OpenFilePointer
OpenPluginConfigModal
OpenPluginPage
OpenSetting
OpenTerminal
OpenVirtualFile
PlaySound
PushUnifiedStateSyncUpdate
ReadTerminal
RecordErrorDelta
RemoveAnnotation
RestartUserStatusUpdater
RunExtensionCode
SaveDocument
SendTerminalInput
ShowAnnotation
ShowConversationPicker
ShowTerminal
SmartFocusConversation
StartAudioRecording
StoreSecretValue
SubscribeToUnifiedStateSyncTopic
TerminalResearchResult
TerminateCommand
UpdateCascadeTrajectorySummaries
UpdateDetailedViewWithCascadeInputPath
WriteCascadeEdit
```
</details>
**Notable:**
- `FetchMCPAuthToken` — the extension handles MCP auth token fetching
- `GetChromeDevtoolsMcpUrl` — Chrome DevTools MCP integration
- `RunExtensionCode` — the LS can execute arbitrary extension code
- `StartAudioRecording` / `EndAudioRecording` — audio input support
- `PlaySound` — audio output
- `LaunchBrowser` — browser automation trigger
- `StoreSecretValue` / `GetSecretValue` — secret management
### SeatManagementService (97+ methods)
Team/organization management. Handles licensing, seats, credits.
**Notable methods:**
- `AddExtraFlexCreditsInternal` — credit topup
- `GetCascadeAnalytics` — usage analytics
- `GetPlanStatus` — subscription status
- `GetTeamCreditEntries` — credit ledger
- `GetTeamSettings` / `UpdateTeamConfig` — team configuration
- `GetWrapped` — Spotify-wrapped style usage summary
- `UpdateCascadeWebSearchEnabled` — toggle web search
- `SetUserApiProviderKey` — BYOK key management
### ModelManagementService (8 methods)
Self-hosted model management for hybrid deployments.
```
AddModel
DeleteModel
ListInferenceServers
ListModels
PollInferenceServerMemory
StartInferenceServer
StopInferenceServer
UpdateInferenceServerMemory
```
### PredictionService (~15 methods)
Google AI Platform prediction service (the upstream LLM API).
```
AsyncGenerateContent
CompleteCode
CountTokens
DirectPredict
DirectRawPredict
EmbedContent
Explain
FetchAvailableModels
FetchPredictOperation
GenerateContent
Predict
PredictLongRunning
RawPredictLongRunning
RawPredict
RetrieveUserQuota ← quota retrieval!
TestGrpcPredict
```
### CloudCode Service (22 methods)
Google internal CloudCode REST-like API at `daily-cloudcode-pa.googleapis.com`.
```
CompleteCode
FetchAdminControls
FetchCodeCustomizationState
GenerateChat
GenerateCode
GetCodeAssistGlobalUserSetting
InternalAtomicAgenticChat ← agentic chat endpoint!
ListAgents
ListCloudAICompanionProjects
ListExperiments
ListModelConfigs
ListRemoteRepositories
LoadCodeAssist
MigrateDatabaseCode
OnboardUser
OnboardUserBackgroundTasks
RecordClientEvent
RecordCodeAssistMetrics
RecordSmartchoicesFeedback
SearchSnippets
SetCodeAssistGlobalUserSetting
TransformCode
```
---
## REST Endpoints (v1internal)
Discovered REST endpoints on `daily-cloudcode-pa.googleapis.com`:
```
v1internal:checkUrlDenylist
v1internal:completeCode
v1internal:countTokens
v1internal:fetchAdminControls
v1internal:fetchAvailableModels
v1internal:fetchCodeCustomizationState
v1internal:fetchUserInfo
v1internal:generateChat
v1internal:generateCode
v1internal:generateContent
v1internal:getCodeAssistGlobalUserSetting
v1internal:internalAtomicAgenticChat
v1internal:listAgents
v1internal:listCloudAICompanionProjects
v1internal:listExperiments
v1internal:listModelConfigs
v1internal:listRemoteRepositories
v1internal:loadCodeAssist
v1internal:logClientError
v1internal:migrateDatabaseCode
v1internal:onboardUser
v1internal:onboardUserBackgroundTasks
v1internal:recordClientEvent
v1internal:recordCodeAssistMetrics
v1internal:recordSmartchoicesFeedback
v1internal:recordTrajectoryAnalytics
v1internal:retrieveUserQuota
v1internal:rewriteUri
v1internal:searchSnippets
v1internal:setCodeAssistGlobalUserSetting
v1internal:setUserSettings
v1internal:streamGenerateChat
v1internal:streamGenerateContent ← main LLM API
v1internal:tabChat
v1internal:transformCode
```
**Key endpoints:**
- `streamGenerateContent` — the main LLM streaming endpoint (confirmed via MITM)
- `internalAtomicAgenticChat` — agentic chat (full tool-use loop in one call?)
- `retrieveUserQuota` — quota/credits check
- `listModelConfigs` — available models and configuration
- `fetchAvailableModels` — model discovery
- `countTokens` — tokenization
- `streamGenerateChat` — streaming chat variant
- `tabChat` — tab completion chat
- `fetchUserInfo` — user information
- `listExperiments` — A/B test experiments
---
## Proto Packages (v1internal)
Internal proto packages discovered in the binary:
```
google/internal/cloud/code/v1internal/cloudcode
google/internal/cloud/code/v1internal/credits
google/internal/cloud/code/v1internal/jetski
google/internal/cloud/code/v1internal/metrics
google/internal/cloud/code/v1internal/model
google/internal/cloud/code/v1internal/onboarding
google/internal/cloud/code/v1internal/prediction
google/internal/cloud/code/v1internal/remote
```
**Notable:**
- `credits` — credit/quota system proto definitions
- `jetski` — internal codename for the cascade/agent system
- `prediction` — AI model prediction layer
- `metrics` — telemetry/analytics
---
## Feature Flags & Configuration
### Proxy Detection
```
DETECT_AND_USE_PROXY_UNSPECIFIED (0, default — ignores proxy)
DETECT_AND_USE_PROXY_ENABLED (1, honors HTTPS_PROXY)
DETECT_AND_USE_PROXY_DISABLED (2, explicitly ignores proxy)
```
### Cascade Config Keys
```
CASCADE_ENFORCE_QUOTA ← quota enforcement toggle
CASCADE_BASE_MODEL_ID ← default model selection
CASCADE_ENABLE_MCP_TOOLS ← MCP tool use
CASCADE_ANTIGRAVITY_BROWSER_TOOLS_ENABLED
CASCADE_AUTO_FIX_LINTS
CASCADE_WEB_SEARCH_TOOL_ENABLED/DISABLED
CASCADE_BACKGROUND_RESEARCH_CONFIG_OVERRIDE
CASCADE_GLOBAL_CONFIG_OVERRIDE
CASCADE_MEMORY_CONFIG_OVERRIDE
CASCADE_DEFAULT_MODEL_OVERRIDE
CASCADE_PLAN_BASED_CONFIG_OVERRIDE
CASCADE_ENABLE_AUTOMATED_MEMORIES
```
### Model Status
```
MODEL_STATUS_UNSPECIFIED
MODEL_STATUS_INFO
MODEL_STATUS_WARNING
```
### Cortex Step Types (Complete Tool Catalog)
Every tool the agent can invoke, organized by category:
**File Operations:**
```
CODE_ACTION — edit/create files
VIEW_FILE — read file contents
VIEW_FILE_OUTLINE — view file structure
VIEW_CODE_ITEM — view specific code symbol
VIEW_CONTENT_CHUNK — view document chunk
LIST_DIRECTORY — list directory contents
FIND — find files
GREP_SEARCH — search file contents
CODE_SEARCH — semantic code search
FIND_ALL_REFERENCES — find all references to symbol
FILE_CHANGE — track file changes
DELETE_DIRECTORY — delete directory
MOVE — move/rename files
```
**Terminal / Commands:**
```
RUN_COMMAND — execute shell command
COMMAND_STATUS — check command status
SEND_COMMAND_INPUT — send input to running command
READ_TERMINAL — read terminal output
SHELL_EXEC — execute shell (lightweight variant)
DEFINE_NEW_ENV_VARIABLE — set environment variable
```
**Browser Automation:**
```
OPEN_BROWSER_URL — navigate to URL
READ_BROWSER_PAGE — read current page
BROWSER_CLICK_ELEMENT — click element
BROWSER_INPUT — type into element
BROWSER_SELECT_OPTION — select dropdown option
BROWSER_PRESS_KEY — keyboard press
BROWSER_SCROLL / _UP / _DOWN — scroll page
BROWSER_REFRESH_PAGE — refresh
BROWSER_RESIZE_WINDOW — resize viewport
BROWSER_MOVE_MOUSE — move cursor
BROWSER_MOUSE_DOWN / _UP — mouse events
BROWSER_MOUSE_WHEEL — scroll wheel
BROWSER_DRAG_PIXEL_TO_PIXEL — drag and drop
CLICK_BROWSER_PIXEL — click at pixel coordinates
CAPTURE_BROWSER_SCREENSHOT — screenshot
CAPTURE_BROWSER_CONSOLE_LOGS — console output
BROWSER_GET_DOM — get DOM tree
BROWSER_LIST_NETWORK_REQUESTS — list network requests
BROWSER_GET_NETWORK_REQUEST — get specific request
EXECUTE_BROWSER_JAVASCRIPT — run JS in page
LIST_BROWSER_PAGES — list open pages
BROWSER_SUBAGENT — spawn browser sub-agent
```
**Web & External:**
```
SEARCH_WEB — web search
READ_URL_CONTENT — fetch URL
READ_RESOURCE — read MCP resource
LIST_RESOURCES — list MCP resources
MCP_TOOL — invoke MCP tool
```
**Git & PR:**
```
GIT_COMMIT — create commit
POST_PR_REVIEW — post PR review
```
**Knowledge & Memory:**
```
MEMORY — store memory
RETRIEVE_MEMORY — recall memory
KNOWLEDGE_GENERATION — generate knowledge item
KNOWLEDGE_ARTIFACTS — manage knowledge artifacts
KI_INSERTION — insert knowledge item
BRAIN_UPDATE — update brain state
RETRIEVE_CONTENT — retrieve stored content
CONVERSATION_HISTORY — access conversation history
```
**Planning & Control Flow:**
```
PLANNER_RESPONSE — planner output
PLAN_INPUT — plan step input
TASK_BOUNDARY — mark task boundary
CHECKPOINT — checkpoint state
TRAJECTORY_CHOICE — choose trajectory branch
TRAJECTORY_SEARCH — search trajectories
TOOL_CALL_CHOICE — choose tool call
TOOL_CALL_PROPOSAL — propose tool call
PROPOSE_CODE — propose code change
CODE_ACKNOWLEDGEMENT — acknowledge code change
MANAGER_FEEDBACK — agent manager feedback
PROPOSAL_FEEDBACK — proposal feedback
CRITIQUE — self-critique step
FINISH — mark completion
WAIT — wait/pause
```
**Media & UI:**
```
GENERATE_IMAGE — generate image
SUGGESTED_RESPONSES — suggest user responses
NOTIFY_USER — notify user
EPHEMERAL_MESSAGE — temporary message
ERROR_MESSAGE — error display
SYSTEM_MESSAGE — system message
ADD_ANNOTATION — add UI annotation
CLIPBOARD — clipboard access
```
**Code Quality:**
```
COMPILE — compile/build
COMPILE_APPLET — compile applet
LINT_DIFF — lint changes
LINT_APPLET — lint applet
FINDINGS — code findings
```
**Workspace & Deployment:**
```
WORKSPACE_API — workspace operations
RESTART_DEV_SERVER — restart dev server
SET_UP_FIREBASE — Firebase setup
DEPLOY_FIREBASE — Firebase deployment
INSTALL_APPLET_DEPENDENCIES — install deps
INSTALL_APPLET_PACKAGE — install package
RUN_EXTENSION_CODE — run VS Code extension code
```
**Google-Internal (corp only):**
```
INTERNAL_SEARCH — internal search (Moma?)
MOMA — Google Moma system
MQUERY — Google MQuery
BLAZE_BUILD_TARGETS — Blaze build
BLAZE_TEST_TARGETS — Blaze test
BUILD_CLEANER — build cleaning
CIDER_AGENT_DUMMY — Cider agent placeholder
AGENCY_TOOL_CALL — agency tool
```
### Cortex Generation Types
```
CORTEX_GENERATION_TYPE_CCI_RESEARCH
CORTEX_GENERATION_TYPE_DYNAMIC_TRAJECTORY
CORTEX_GENERATION_TYPE_FILE_RESEARCH
CORTEX_GENERATION_TYPE_GRAPH
CORTEX_GENERATION_TYPE_GROUNDTRUTH
CORTEX_GENERATION_TYPE_INFORM
CORTEX_GENERATION_TYPE_MASKED_GROUND_TRUTH_TRAJECTORY
CORTEX_GENERATION_TYPE_REAPPLY_GROUND_TRUTH
CORTEX_GENERATION_TYPE_STATIC_TRAJECTORY
CORTEX_GENERATION_TYPE_VERIFY
```
### Cortex Trajectory Types
Different "modes" the agent can operate in:
```
CASCADE — standard cascade (user-initiated)
INTERACTIVE_CASCADE — interactive cascade (multi-turn)
AUTO_CASCADE — auto-triggered cascade
AUTO_CASCADE_MANAGER — manages auto-cascades
BACKGROUND_RESEARCH — background research thread
BROWSER — browser automation trajectory
DEEP_THINK — extended reasoning mode
KNOWLEDGE_GENERATION — knowledge item generation
APPLIER — code application trajectory
BRAIN_UPDATE — brain/memory update
CHECKPOINT — state checkpoint
CUSTOM_TOOL — custom tool execution
LLM_JUDGE — LLM-as-judge evaluation
PASSIVE_CODER — passive coding assistance
RETRIEVE_MEMORY — memory retrieval
SUPERCOMPLETE — tab-completion trajectory
TOOL_CALL_PROPOSAL — tool call proposal
TRAJECTORY_CHOICE — trajectory branching
USER_MAINLINE — user's main trajectory
USER_GRANULAR — granular user trajectory
ARTIFACT_SUMMARY — artifact summary generation
```
### Cortex Trajectory Sources
Where trajectories originate from:
```
INTERACTIVE_CASCADE — user-initiated cascade
CASCADE_CLIENT — cascade client
REFACTOR_FUNCTION — refactor action
EXPLAIN_PROBLEM — explain/debug action
PASSIVE_CODER — passive coding
REPLAY — trajectory replay
SDK / PYTHON_SDK — API/SDK access
EVAL / EVAL_TASK — evaluation system
ASYNC_CF / ASYNC_SL / ASYNC_CM / ASYNC_PRD / ASYNC_PRR — async operations
```
## Hardcoded URLs
```
https://play.googleapis.com/log ← Clearcut telemetry
https://oauth2.googleapis.com/token ← Token refresh
https://oauth2.googleapis.com/device/code ← Device auth flow
https://www.googleapis.com/oauth2/v2/userinfo
https://docs.googleapis.com/v1/documents/ ← Google Docs integration
https://iamcredentials.googleapis.com/v1/ ← Service account impersonation
```
---
## Miscellaneous Findings
- **Unleash config**: Auth key `*:production.e44558998bfc35ea9584dc65858e4485fdaa5d7ef46903e0c67712d1`, domain `antigravity-unleash.goog`
- **Sentry**: Has a sample rate config (`ANTIGRAVITY_SENTRY_SAMPLE_RATE`)
- **Flight recorder**: Internal debug recording system (`DumpFlightRecorder`)
- **Browser extension IDs**: Several Chrome extension IDs visible (`pebbhcjfokadbgbnlmogdkkaahmamnap`, etc.)
- **Cortex memory**: `CORTEX_MEMORY_SOURCE_AUTO_CASCADE` — auto-generates memories from cascades
- **RLHF/Training**: `MODEL_GOOGLE_TRAINING_JUDGE`, `MODEL_GOOGLE_TRAINING_CHECKPOINT`, `MODEL_GOOGLE_GEMINI_TRAINING_POLICY` — suggests the LS participates in model training/evaluation
- **Hybrid deployment**: Multiple methods for on-prem/hybrid deployments (`CheckHybridDeploymentStatus`, `CreateHybridDeploymentInternal`, etc.)
- **BYOK support**: Claude and OpenAI models have BYOK variants; also open-router and databricks hosting options
- **Jetski**: Internal codename for the cascade/agent system. Google-internal health check: `http://jetski-server.corp.goog/healthz`
- **XboxInferenceToolRequest**: Proto message `exa.chat_pb.XboxInferenceToolRequest` — "Xbox" is a codename for their inference tool system
---
## Protobuf Enum Numbers (from extension.js)
Extracted from the compiled protobuf enum definitions in `extension.js`.
These are the wire values sent in proto field 1 (model) of usage messages.
### Placeholder Models
| Enum `no` | Proto Name |
| --------- | ------------------------- |
| 1000 | MODEL_PLACEHOLDER_M0 |
| 1001 | MODEL_PLACEHOLDER_M1 |
| 1002 | MODEL_PLACEHOLDER_M2 |
| 1003 | MODEL_PLACEHOLDER_M3 |
| 1004 | MODEL_PLACEHOLDER_M4 |
| 1005 | MODEL_PLACEHOLDER_M5 |
| 1006 | MODEL_PLACEHOLDER_M6 |
| 1007 | MODEL_PLACEHOLDER_M7 |
| 1008 | MODEL_PLACEHOLDER_M8 |
| 1009 | MODEL_PLACEHOLDER_M9 |
| 1010 | MODEL_PLACEHOLDER_M10 |
| 1011 | MODEL_PLACEHOLDER_M11 |
| 1012 | MODEL_PLACEHOLDER_M12 |
| 10131050 | MODEL_PLACEHOLDER_M13M50 |
### Claude Models
| Enum `no` | Proto Name |
| --------- | -------------------------------- |
| 281 | MODEL_CLAUDE_4_SONNET |
| 282 | MODEL_CLAUDE_4_SONNET_THINKING |
| 290 | MODEL_CLAUDE_4_OPUS |
| 291 | MODEL_CLAUDE_4_OPUS_THINKING |
| 333 | MODEL_CLAUDE_4_5_SONNET |
| 334 | MODEL_CLAUDE_4_5_SONNET_THINKING |
| 340 | MODEL_CLAUDE_4_5_HAIKU |
| 341 | MODEL_CLAUDE_4_5_HAIKU_THINKING |
### Google Models
| Enum `no` | Proto Name |
| --------- | ------------------------------------------------ |
| 246 | MODEL_GOOGLE_GEMINI_2_5_PRO |
| 312 | MODEL_GOOGLE_GEMINI_2_5_FLASH |
| 313 | MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING |
| 323 | MODEL_GOOGLE_GEMINI_TRAINING_POLICY |
| 326 | MODEL_GOOGLE_GEMINI_INTERNAL_BYOM |
| 327 | MODEL_GOOGLE_GEMINI_FOR_GOOGLE_2_5_PRO |
| 328 | MODEL_GOOGLE_GEMINI_NEMOSREEF |
| 329 | MODEL_GOOGLE_GEMINI_2_5_FLASH_THINKING_TOOLS |
| 330 | MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE |
| 331 | MODEL_GOOGLE_GEMINI_2_5_PRO_EVAL |
| 332 | MODEL_GOOGLE_GEMINI_2_5_FLASH_IMAGE_PREVIEW |
| 335 | MODEL_GOOGLE_GEMINI_COMPUTER_USE_EXPERIMENTAL |
| 336 | MODEL_GOOGLE_GEMINI_HORIZONDAWN |
| 337 | MODEL_GOOGLE_GEMINI_PUREPRISM |
| 338 | MODEL_GOOGLE_GEMINI_GENTLEISLAND |
| 339 | MODEL_GOOGLE_GEMINI_RAINSONG |
| 343 | MODEL_GOOGLE_GEMINI_ORIONFIRE |
| 344 | MODEL_GOOGLE_GEMINI_INTERNAL_TAB_FLASH_LITE |
| 345 | MODEL_GOOGLE_GEMINI_INTERNAL_TAB_JUMP_FLASH_LITE |
| 346 | MODEL_GOOGLE_JARVIS_PROXY |
| 347 | MODEL_GOOGLE_GEMINI_COSMICFORGE |
| 348 | MODEL_GOOGLE_GEMINI_RIFTRUNNER |
| 349 | MODEL_GOOGLE_JARVIS_V4S |
| 350 | MODEL_GOOGLE_GEMINI_INFINITYJET |
| 351 | MODEL_GOOGLE_GEMINI_INFINITYBLOOM |
| 352 | MODEL_GOOGLE_GEMINI_RIFTRUNNER_THINKING_LOW |
| 353 | MODEL_GOOGLE_GEMINI_RIFTRUNNER_THINKING_HIGH |
### OpenAI Models
| Enum `no` | Proto Name |
| --------- | -------------------------------- |
| 342 | MODEL_OPENAI_GPT_OSS_120B_MEDIUM |
### Key Mapping Summary (for proxy constants.rs)
| Our Name | Placeholder | Proto Enum |
| ------------------- | ----------- | ---------- |
| Gemini 3 Pro (Low) | M7 | 1007 |
| Gemini 3 Pro (High) | M8 | 1008 |
| Claude Opus 4.5 | M12 | 1012 |
| Gemini 3 Flash | M18 | 1018 |
| Claude Opus 4.6 | M26 | 1026 |