docs: comprehensive LS binary reverse engineering with model enum mapping
This commit is contained in:
834
docs/ls-binary-analysis.md
Normal file
834
docs/ls-binary-analysis.md
Normal file
@@ -0,0 +1,834 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
These are the internal names for the agent's tool-use steps:
|
||||||
|
|
||||||
|
```
|
||||||
|
CORTEX_STEP_TYPE_CODE_ACTION
|
||||||
|
CORTEX_STEP_TYPE_COMMAND_STATUS
|
||||||
|
CORTEX_STEP_TYPE_COMPILE_TOOL_PYLINT
|
||||||
|
CORTEX_STEP_TYPE_GREP_SEARCH
|
||||||
|
CORTEX_STEP_TYPE_RUN_COMMAND
|
||||||
|
CORTEX_STEP_TYPE_VIEW_CODE_ITEM
|
||||||
|
```
|
||||||
|
|
||||||
|
### 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
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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 |
|
||||||
|
| 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 |
|
||||||
@@ -240,3 +240,36 @@ sudo update-ca-certificates
|
|||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
→ See `docs/standalone-ls-todo.md` for standalone LS isolation work
|
→ See `docs/standalone-ls-todo.md` for standalone LS isolation work
|
||||||
|
→ See `docs/ls-binary-analysis.md` for comprehensive binary reverse engineering
|
||||||
|
|
||||||
|
## New Findings (from binary analysis)
|
||||||
|
|
||||||
|
### Alternative to Polling: `StreamCascadeReactiveUpdates`
|
||||||
|
|
||||||
|
The LS has a streaming gRPC method `StreamCascadeReactiveUpdates` that pushes
|
||||||
|
cascade state changes in real-time via server-sent streaming. The extension uses
|
||||||
|
this instead of polling `GetCascadeTrajectorySteps`.
|
||||||
|
|
||||||
|
**Potential improvement:** If we switch from polling to this streaming RPC, we'd
|
||||||
|
get lower latency and less backend traffic. However, our current polling approach
|
||||||
|
works reliably and doesn't require maintaining a long-lived gRPC stream.
|
||||||
|
|
||||||
|
### Quota Endpoint: `retrieveUserQuota`
|
||||||
|
|
||||||
|
The `PredictionService/RetrieveUserQuota` gRPC method and
|
||||||
|
`v1internal:retrieveUserQuota` REST endpoint provide quota/credit information.
|
||||||
|
This could be used to implement a proper `/v1/quota` endpoint instead of
|
||||||
|
scraping the LS's own quota tracking.
|
||||||
|
|
||||||
|
### `internalAtomicAgenticChat`
|
||||||
|
|
||||||
|
A REST endpoint that appears to handle the entire agentic chat loop atomically
|
||||||
|
(tool calls + responses in one request?). Investigation needed to understand
|
||||||
|
the request/response format.
|
||||||
|
|
||||||
|
### Credits System
|
||||||
|
|
||||||
|
The `google/internal/cloud/code/v1internal/credits` proto package exists with
|
||||||
|
`Credits_CreditType` enum. The `CASCADE_ENFORCE_QUOTA` config key controls
|
||||||
|
whether quotas are enforced. Related methods: `AddExtraFlexCreditsInternal`,
|
||||||
|
`GetTeamCreditEntries`, `GetPlanStatus`.
|
||||||
|
|||||||
@@ -72,3 +72,16 @@ curl -sk "https://127.0.0.1:42200/.../StartCascade" ...
|
|||||||
- Model IDs: M18=Flash, M8=Pro-High, M7=Pro-Low, M26=Opus4.6, M12=Opus4.5
|
- Model IDs: M18=Flash, M8=Pro-High, M7=Pro-Low, M26=Opus4.6, M12=Opus4.5
|
||||||
- LS binary: `/usr/share/antigravity/resources/app/extensions/antigravity/bin/language_server_linux_x64`
|
- LS binary: `/usr/share/antigravity/resources/app/extensions/antigravity/bin/language_server_linux_x64`
|
||||||
- API endpoint: `daily-cloudcode-pa.googleapis.com/v1internal:streamGenerateContent?alt=sse`
|
- API endpoint: `daily-cloudcode-pa.googleapis.com/v1internal:streamGenerateContent?alt=sse`
|
||||||
|
|
||||||
|
## New Leads (from binary analysis)
|
||||||
|
|
||||||
|
- **`GetUnleashData`** — LS method to fetch Unleash flags directly. Could compare
|
||||||
|
main vs standalone to check if flags differ.
|
||||||
|
- **`GetStaticExperimentStatus`** / `SetBaseExperiments` / `UpdateDevExperiments` —
|
||||||
|
experiment management. Standalone might be missing experiment overrides.
|
||||||
|
- **`FetchAdminControls`** — admin-level controls that might gate cascade execution.
|
||||||
|
- **`LoadCodeAssist`** — initialization step that might be required before cascades work.
|
||||||
|
- **`GetUserStatus` vs `GetUserMemories`** — check if standalone has auth context
|
||||||
|
by calling both.
|
||||||
|
|
||||||
|
→ See `docs/ls-binary-analysis.md` for full RPC method catalog.
|
||||||
|
|||||||
Reference in New Issue
Block a user