# 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 (M0–M50)

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 (M0–M6, M9–M11, M13–M17, M19–M25, M27–M50) 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

### AnalyticsService (7+ methods)

Separate analytics service for recording telemetry and training data.

```
BatchRecordCompletions
BatchRecordPrompts
RecordCommandUsage
RecordCompletions
RecordContextToPrompt
RecordCortexTrajectory
RecordCortexTrajectoryStep
```

**Notable:** Distinct from `ApiServerService.Record*` — likely a dedicated analytics pipeline.

### UserAnalyticsService (5+ methods)

Per-user analytics dashboard service.

```
Analytics
CascadeAnalytics
GetAnalytics
GetPreferredTimeZone
UserPageAnalytics
```

### KnowledgeBaseService (17+ methods)

Enterprise knowledge base with multi-source ingestion. Uses OpenSearch backend.

```
AddGithubUsers
AddUsers
CancelKnowledgeBaseJobs
ConnectKnowledgeBaseAccount
DeleteKnowledgeBaseConnection
ForwardSlackPayload
GetConnectorInternalConfig
GetKnowledgeBaseConnectorState
GetKnowledgeBaseItemsFromScopeItems
GetKnowledgeBaseJobStates
GetKnowledgeBaseScopeItems
GetKnowledgeBaseWebhookUrl
IngestGithubData
IngestGoogleDriveData
IngestJiraData
IngestJiraPayload
IngestSlackData
IngestSlackPayload
KnowledgeBaseSearch
UpdateConnectorConfig
```

**Key insight:** Supports ingesting from **GitHub**, **Google Drive**, **Jira**, and **Slack** — full enterprise knowledge integration.

### CodeIndexService (4+ methods)

Code search and indexing. Uses OpenSearch for hybrid vector+keyword search.

```
GraphSearch
HybridSearch
OpenSearchAddRepository
OpenSearchGetIndex
```

**Notable:** `GraphSearch` suggests code graph traversal, `HybridSearch` combines vector embeddings with keyword matching.

### 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

---

## Memory & Brain System

The LS has a sophisticated memory system that persists across conversations.

### Memory Sources

```
MEMORY_SOURCE_UNSPECIFIED
MEMORY_SOURCE_USER           — manually created by user
MEMORY_SOURCE_CASCADE         — extracted from cascade conversations
MEMORY_SOURCE_AUTO_CASCADE    — automatically generated from cascades
```

### Memory Triggers

```
MEMORY_TRIGGER_UNSPECIFIED
MEMORY_TRIGGER_ALWAYS_ON      — always active
MEMORY_TRIGGER_GLOB           — glob pattern match on file paths
MEMORY_TRIGGER_MANUAL         — only when explicitly invoked
MEMORY_TRIGGER_MODEL_DECISION — model decides when to use
```

### Memory Actions

```
MEMORY_ACTION_TYPE_UNSPECIFIED
MEMORY_ACTION_TYPE_CREATE
MEMORY_ACTION_TYPE_UPDATE
MEMORY_ACTION_TYPE_DELETE
```

### Brain Entry Types

```
BRAIN_ENTRY_TYPE_UNSPECIFIED
BRAIN_ENTRY_TYPE_PLAN         — implementation plans
BRAIN_ENTRY_TYPE_TASK         — task checklists
```

### Brain Update Triggers

```
BRAIN_UPDATE_TRIGGER_UNSPECIFIED
BRAIN_UPDATE_TRIGGER_USER_REQUESTED   — user explicitly asks
BRAIN_UPDATE_TRIGGER_USER_NEW_INFO    — user provides new info
BRAIN_UPDATE_TRIGGER_RESEARCH_NEW_INFO — research discovers new info
BRAIN_UPDATE_TRIGGER_SYSTEM_FORCED    — system-initiated update
```

### Brain Filter Strategies

```
BRAIN_FILTER_STRATEGY_UNSPECIFIED
BRAIN_FILTER_STRATEGY_NO_MEMORIES              — exclude all memories
BRAIN_FILTER_STRATEGY_NO_SYSTEM_INJECTED_STEPS — exclude system steps
```

---

## Expanded Cascade Configuration Keys

Full list of all cascade config keys extracted from binary (60+ keys):

### Core Behavior

```
CASCADE_ENFORCE_QUOTA              — quota enforcement toggle
CASCADE_BASE_MODEL_ID              — default model selection
CASCADE_DEFAULT_MODEL_OVERRIDE     — model override
CASCADE_GLOBAL_CONFIG_OVERRIDE     — global cascade config
CASCADE_MEMORY_CONFIG_OVERRIDE     — memory subsystem config
CASCADE_PLAN_BASED_CONFIG_OVERRIDE — planner config
CASCADE_FREE_CONFIG_OVERRIDE       — free-tier config
```

### Tool Access

```
CASCADE_ENABLE_MCP_TOOLS           — MCP tool use
CASCADE_ANTIGRAVITY_BROWSER_TOOLS_ENABLED
CASCADE_ENABLE_PROXY_WEB_SERVER    — proxy web server
CASCADE_ENABLE_IDE_TERMINAL_EXECUTION
CASCADE_VIEW_FILE_TOOL_CONFIG_OVERRIDE
CASCADE_USE_REPLACE_CONTENT_EDIT_TOOL
```

### Web Search

```
CASCADE_WEB_SEARCH_TOOL_ENABLED
CASCADE_WEB_SEARCH_TOOL_DISABLED
CASCADE_WEB_SEARCH_TOOL_UNSPECIFIED
CASCADE_WEB_APP_DEPLOYMENTS_ENABLED
```

### Extension Code Execution

```
CASCADE_RUN_EXTENSION_CODE_ENABLED
CASCADE_RUN_EXTENSION_CODE_DISABLED
CASCADE_RUN_EXTENSION_CODE_ONLY
CASCADE_RUN_EXTENSION_CODE_AUTO_RUN_ENABLED
CASCADE_RUN_EXTENSION_CODE_AUTO_RUN_MODEL_DECIDES
CASCADE_RUN_EXTENSION_CODE_AUTO_RUN_UNSPECIFIED
```

### Command Auto-Execution Policy

```
CASCADE_COMMANDS_AUTO_EXECUTION_UNSPECIFIED
CASCADE_COMMANDS_AUTO_EXECUTION_OFF    — always ask
CASCADE_COMMANDS_AUTO_EXECUTION_AUTO   — auto-run safe commands
CASCADE_COMMANDS_AUTO_EXECUTION_EAGER  — auto-run most commands
```

### Memory & Learning

```
CASCADE_ENABLE_AUTOMATED_MEMORIES  — auto-generate memories
CASCADE_USER_MEMORIES_IN_SYS_PROMPT
CASCADE_ENABLE_CUSTOM_RECIPES
CASCADE_BACKGROUND_RESEARCH_CONFIG_OVERRIDE
CASCADE_USE_EXPERIMENT_CHECKPOINTER
CASCADE_USE_SUBAGENT_CHECKPOINTER
```

### Autocomplete & Input

```
CASCADE_INPUT_AUTOCOMPLETE_ENABLED
CASCADE_INPUT_AUTOCOMPLETE_DISABLED
CASCADE_INPUT_AUTOCOMPLETE_UNSPECIFIED
CASCADE_RECIPES_AT_MENTION_VISIBILITY
```

### Run Status

```
CASCADE_RUN_STATUS_UNSPECIFIED
CASCADE_RUN_STATUS_IDLE
CASCADE_RUN_STATUS_BUSY
CASCADE_RUN_STATUS_RUNNING
CASCADE_RUN_STATUS_CANCELING
```

### Edit Importance (for code diffs)

```
CASCADE_EDIT_IMPORTANCE_UNSPECIFIED
CASCADE_EDIT_IMPORTANCE_LOW
CASCADE_EDIT_IMPORTANCE_MEDIUM
CASCADE_EDIT_IMPORTANCE_HIGH
```

### Seat Types

```
CASCADE_SEAT_TYPE_UNSPECIFIED
CASCADE_SEAT_TYPE_ENTRY      — entry tier
CASCADE_SEAT_TYPE_STANDARD   — standard tier
```

---

## Supercomplete (Tab Completion) System

The "Supercomplete" system powers multi-line tab completions, distinct from basic autocomplete.

### Trigger Conditions

```
SUPERCOMPLETE_TRIGGER_CONDITION_UNSPECIFIED
SUPERCOMPLETE_TRIGGER_CONDITION_TYPING
SUPERCOMPLETE_TRIGGER_CONDITION_AUTOCOMPLETE_ACCEPT
SUPERCOMPLETE_TRIGGER_CONDITION_AUTOCOMPLETE_PREDICTIVE
SUPERCOMPLETE_TRIGGER_CONDITION_SUPERCOMPLETE_ACCEPT
SUPERCOMPLETE_TRIGGER_CONDITION_SUPERCOMPLETE_PREDICTIVE
SUPERCOMPLETE_TRIGGER_CONDITION_TAB_JUMP_ACCEPT
SUPERCOMPLETE_TRIGGER_CONDITION_TAB_JUMP_EDIT
SUPERCOMPLETE_TRIGGER_CONDITION_TAB_JUMP_PREDICTIVE
SUPERCOMPLETE_TRIGGER_CONDITION_CURSOR_LINE_NAVIGATION
SUPERCOMPLETE_TRIGGER_CONDITION_FORCED
```

### Filters

```
SUPERCOMPLETE_FILTER_PREFIX_MATCH
SUPERCOMPLETE_FILTER_SUFFIX_MATCH
SUPERCOMPLETE_FILTER_INSERTION_CAP
SUPERCOMPLETE_FILTER_DELETION_CAP
SUPERCOMPLETE_FILTER_NO_OP
SUPERCOMPLETE_FILTER_REVERT
SUPERCOMPLETE_FILTER_PREVIOUSLY_SHOWN
SUPERCOMPLETE_FILTER_WHITESPACE_ONLY
SUPERCOMPLETE_FILTER_SCORE_THRESHOLD
```

### Config Keys

```
SUPERCOMPLETE_TEMPERATURE
SUPERCOMPLETE_MODEL_CONFIG
SUPERCOMPLETE_LINE_RADIUS
SUPERCOMPLETE_MIN_SCORE
SUPERCOMPLETE_MAX_INSERTIONS
SUPERCOMPLETE_MAX_DELETIONS
SUPERCOMPLETE_MAX_TRAJECTORY_STEPS
SUPERCOMPLETE_MAX_TRAJECTORY_STEP_SIZE
SUPERCOMPLETE_MAX_CONCURRENT_REQUESTS
SUPERCOMPLETE_FAST_DEBOUNCE
SUPERCOMPLETE_REGULAR_DEBOUNCE
SUPERCOMPLETE_RECENT_STEPS_DURATION
SUPERCOMPLETE_USE_CODE_DIAGNOSTICS
SUPERCOMPLETE_CODE_DIAGNOSTICS_TOP_K
SUPERCOMPLETE_DIAGNOSTIC_SEVERITY_THRESHOLD
SUPERCOMPLETE_DISABLE_TYPING_CACHE
SUPERCOMPLETE_DONT_FILTER_MID_STREAMED
SUPERCOMPLETE_ALWAYS_USE_CACHE_ON_EQUAL_STATE
SUPERCOMPLETE_CACHE_ON_PARENT_ID_KILL_SWITCH
SUPERCOMPLETE_ON_ACCEPT_ONLY
SUPERCOMPLETE_PRUNE_RESPONSE
SUPERCOMPLETE_PRUNE_MAX_INSERT_DELETE_LINE_DELTA
SUPERCOMPLETE_INLINE_PURE_DELETE
SUPERCOMPLETE_INLINE_RICH_GHOST_TEXT_INSERTIONS
SUPERCOMPLETE_USE_CURRENT_LINE
SUPERCOMPLETE_NO_ACTIVE_NODE
```

### Tab Jump (Cursor Navigation)

```
TAB_JUMP_ENABLED
TAB_JUMP_LINE_RADIUS
TAB_JUMP_CUMULATIVE_PROMPT_CONFIG
TAB_JUMP_FILTER_IN_SELECTION
TAB_JUMP_FILTER_INSERTION_CAP
TAB_JUMP_FILTER_DELETION_CAP
TAB_JUMP_FILTER_SCORE_THRESHOLD
TAB_JUMP_FILTER_WHITESPACE_ONLY
TAB_JUMP_FILTER_NO_OP
TAB_JUMP_FILTER_REVERT
TAB_JUMP_STOP_TOKEN_MIDSTREAM
TAB_JUMP_ON_ACCEPT_ONLY
TAB_JUMP_PRUNE_RESPONSE
TAB_JUMP_PRUNE_MAX_INSERT_DELETE_LINE_DELTA
TAB_JUMP_MIN_FILTER_RADIUS
```

---

## Browser Automation Policies

### JS Execution Policy (user can control)

```
BROWSER_JS_EXECUTION_POLICY_UNSPECIFIED
BROWSER_JS_EXECUTION_POLICY_ALWAYS_ASK
BROWSER_JS_EXECUTION_POLICY_MODEL_DECIDES
BROWSER_JS_EXECUTION_POLICY_TURBO      — never ask
BROWSER_JS_EXECUTION_POLICY_DISABLED
```

### JS Auto-Run Policy (cascade-level)

```
BROWSER_JS_AUTO_RUN_POLICY_UNSPECIFIED
BROWSER_JS_AUTO_RUN_POLICY_ENABLED
BROWSER_JS_AUTO_RUN_POLICY_DISABLED
BROWSER_JS_AUTO_RUN_POLICY_MODEL_DECIDES
```

### Browser Subagent Mode

```
BROWSER_SUBAGENT_MODE_UNSPECIFIED
BROWSER_SUBAGENT_MODE_MAIN_AGENT_ONLY
BROWSER_SUBAGENT_MODE_SUBAGENT_ONLY
BROWSER_SUBAGENT_MODE_SUBAGENT_PRIMARILY
BROWSER_SUBAGENT_MODE_BOTH_AGENTS
```

### Tool Set Mode (input/output level)

```
BROWSER_TOOL_SET_MODE_UNSPECIFIED
BROWSER_TOOL_SET_MODE_ALL_TOOLS
BROWSER_TOOL_SET_MODE_PIXEL_ONLY
BROWSER_TOOL_SET_MODE_ALL_INPUT_PIXEL_OUTPUT
```

### Ephemeral Options (what gets captured)

```
BROWSER_EPHEMERAL_OPTION_UNSPECIFIED
BROWSER_EPHEMERAL_OPTION_DOM
BROWSER_EPHEMERAL_OPTION_SCREENSHOT
```

### Action Waiting Reasons

```
BROWSER_ACTION_WAITING_REASON_UNSPECIFIED
BROWSER_ACTION_WAITING_REASON_PAGE_ACCESS
BROWSER_ACTION_WAITING_REASON_ACTION_PERMISSION
BROWSER_ACTION_WAITING_REASON_PAGE_ACCESS_AND_ACTION_PERMISSION
```

### Installation Status

```
BROWSER_INSTALLATION_STATUS_UNSPECIFIED
BROWSER_INSTALLATION_STATUS_NOT_INSTALLED
BROWSER_INSTALLATION_STATUS_IN_PROGRESS
BROWSER_INSTALLATION_STATUS_COMPLETE
BROWSER_INSTALLATION_STATUS_ERROR
```

---

## Sandbox System (macOS Seatbelt)

The LS includes a `sandbox-wrapper.sh` that sandboxes command execution on macOS using Apple's Seatbelt framework.

### Key Behaviors

- **File writes**: Denied by default, allowed only to workspace dir and `/tmp`
- **Network**: Denied unless `--allow-network` flag is passed
- **Gitignore**: Reads `.gitignore` and `.agyignore` to deny access to ignored files
- **Process isolation**: Uses `sandbox-exec` with a generated Seatbelt profile
- **Violation detection**: Detects "Operation not permitted" errors and suggests disabling sandbox

### `.agyignore` File

Custom ignore file (like `.gitignore`) specifically for the sandbox. Patterns in `.agyignore` deny both read and write access within the sandbox.

---

## Trainer / RLHF Infrastructure

The binary contains extensive proto definitions for model training, suggesting the LS participates in or configures training runs.

### Proto Package: `exa.trainer_pb`

**Training Objectives:**

```
DPOConfig           — Direct Preference Optimization
KTOConfig           — Kahneman-Tversky Optimization
OnPolicyGRPOConfig  — Group Relative Policy Optimization
KnowledgeDistillationConfig
PreferenceLoss      — preference-based loss functions
```

**Model Architecture:**

```
BaseModelConfig
EncoderDecoderModelConfig
MixtureOfExpertsConfig       — MoE architecture
MultiLatentAttentionConfig   — MLA (DeepSeek-style?)
MultiTokenPredictionConfig
CrossAttentionConfig
SlidingWindowAttentionConfig
```

**Quantization:**

```
QuantizationConfig
QuantizationMethod
QuantizationPrecision
QuantizationPolicy / PolicySet
LinearQuantization
LayerNormQuantization
```

**Training Infrastructure:**

```
OptimizerType / OptimizerExpAvgDtype
CheckpointBackend (TORCH_DCP, ZARR)
ParallelismConfig / LayerParallelismConfig
RoPEEmbeddingConfig (Llama, DeepseekV scaling)
SGLangInferenceProviderConfig
MockedInferenceProviderConfig
```

**Experiment Management:**

```
ExperimentProject / ExperimentMetadata
SweepAxis / SweepItem
ScheduledModel / SchedulingGroupConfig
DeviceWorkerRoutingInfo
DraftTargetModelPair    — speculative decoding?
```

### Key Proto Packages

```
exa.cortex_pb        — agent/cascade core
exa.chat_pb          — chat message/conversation protos
exa.trainer_pb       — training/RLHF
exa.analytics_pb     — telemetry
exa.api_server_pb    — cloud API server
exa.seat_management_pb — user/team management
exa.user_analytics_pb  — user analytics
exa.opensearch_clients_pb — knowledge base / code index
exa.language_server_pb    — LS service
exa.extension_server_pb   — extension server
exa.model_management_pb   — model management
```

---

## MCP Integration Constants

```
MCP_SERVER_STATUS_UNSPECIFIED
MCP_SERVER_STATUS_PENDING
MCP_SERVER_STATUS_READY
MCP_SERVER_STATUS_ERROR
MCP_ADD_SERVER
MCP_SAVE_CONFIG
MCP_EXPAND_TOOLS
MCP_TOOL
MCP_RESOURCE
```

---

## Cortex Step Statuses

```
CORTEX_STEP_STATUS_UNSPECIFIED
CORTEX_STEP_STATUS_PENDING
CORTEX_STEP_STATUS_QUEUED
CORTEX_STEP_STATUS_GENERATING
CORTEX_STEP_STATUS_RUNNING
CORTEX_STEP_STATUS_WAITING
CORTEX_STEP_STATUS_DONE
CORTEX_STEP_STATUS_ERROR
CORTEX_STEP_STATUS_CANCELED
CORTEX_STEP_STATUS_CLEARED
CORTEX_STEP_STATUS_HALTED
CORTEX_STEP_STATUS_INTERRUPTED
CORTEX_STEP_STATUS_INVALID
```

### Step Sources

```
CORTEX_STEP_SOURCE_UNSPECIFIED
CORTEX_STEP_SOURCE_MODEL          — generated by LLM
CORTEX_STEP_SOURCE_SYSTEM         — system-generated
CORTEX_STEP_SOURCE_SYSTEM_SDK     — SDK-generated
CORTEX_STEP_SOURCE_USER_EXPLICIT  — user-initiated
CORTEX_STEP_SOURCE_USER_IMPLICIT  — implied by user action
```

### Step Credit Reasons

```
CORTEX_STEP_CREDIT_REASON_UNSPECIFIED
CORTEX_STEP_CREDIT_REASON_LINT_FIXING_DISCOUNT — lint fixes are discounted
```

### Manager Feedback Status

```
CORTEX_STEP_MANAGER_FEEDBACK_STATUS_UNSPECIFIED
CORTEX_STEP_MANAGER_FEEDBACK_STATUS_APPROVED
CORTEX_STEP_MANAGER_FEEDBACK_STATUS_DENIED
CORTEX_STEP_MANAGER_FEEDBACK_STATUS_ERROR
```

### Error Categories

```
CORTEX_ERROR_CATEGORY_UNSPECIFIED
CORTEX_ERROR_CATEGORY_OVERALL
CORTEX_ERROR_CATEGORY_ACTION_PREPARE
CORTEX_ERROR_CATEGORY_ACTION_APPLY
```

### Compile Tools (Lint Integration)

```
CORTEX_STEP_COMPILE_TOOL_UNSPECIFIED
CORTEX_STEP_COMPILE_TOOL_PYLINT
```

---

## Onboarding Flow

```
ONBOARDING_PROGRESS_UNKNOWN
ONBOARDING_PROGRESS_NONE
ONBOARDING_PROGRESS_ELIGIBLE
ONBOARDING_PROGRESS_ONBOARDED

ONBOARDING_ACTION_TYPE_UNSPECIFIED
ONBOARDING_ACTION_TYPE_CHAT
ONBOARDING_ACTION_TYPE_AUTOCOMPLETE
ONBOARDING_ACTION_TYPE_COMMAND

ONBOARDING_PAGE_TYPE_UNSPECIFIED
ONBOARDING_PAGE_TYPE_HOTKEY
ONBOARDING_PAGE_TYPE_LENS
ONBOARDING_PAGE_TYPE_SEARCH
```

**Onboarding pages discovered:**

```
ONBOARDING_LANDING_PAGE_OPENED
ONBOARDING_AUTH_PAGE_OPENED
ONBOARDING_AUTH_MANUAL_PAGE_OPENED
ONBOARDING_CHOOSE_THEME_PAGE_OPENED
ONBOARDING_KEYBINDINGS_PAGE_OPENED
ONBOARDING_AGENT_CONFIG_PAGE_OPENED
ONBOARDING_IMPORT_PAGE_OPENED
ONBOARDING_MIGRATION_SCOPE_PAGE_OPENED
ONBOARDING_SETUP_PAGE_OPENED
ONBOARDING_TERMS_OF_USE_PAGE_OPENED
ONBOARDING_USAGE_MODE_PAGE_OPENED
```

---

## 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     |
| 1013–1050 | MODEL_PLACEHOLDER_M13–M50 |

### 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       |
