syntax = "proto3";

package exa.language_server_pb;

import "buf/validate/validate.proto";
import "exa/auto_cascade_common_pb/auto_cascade_common.proto";
import "exa/bug_checker_pb/bug_checker.proto";
import "exa/cascade_plugins_pb/cascade_plugins.proto";
import "exa/chat_pb/chat.proto";
import "exa/code_edit/code_edit_pb/code_edit.proto";
import "exa/codeium_common_pb/codeium_common.proto";
import "exa/cortex_pb/cortex.proto";
import "exa/diff_action_pb/diff_action.proto";
import "exa/index_pb/index.proto";
import "exa/knowledge_base_pb/knowledge_base.proto";
import "exa/reactive_component_pb/reactive_component.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";

option go_package = "github.com/Exafunction/Exafunction/exa/language_server_pb";

service LanguageServerService {
    rpc GetCompletions(GetCompletionsRequest) returns (GetCompletionsResponse);
    rpc AcceptCompletion(AcceptCompletionRequest) returns (AcceptCompletionResponse);
    rpc ProvideCompletionFeedback(ProvideCompletionFeedbackRequest) returns (ProvideCompletionFeedbackResponse);
    rpc Heartbeat(HeartbeatRequest) returns (HeartbeatResponse);
    rpc GetStatus(GetStatusRequest) returns (GetStatusResponse);
    rpc GetCommandModelConfigs(GetCommandModelConfigsRequest) returns (GetCommandModelConfigsResponse);
    rpc GetCascadeModelConfigs(GetCascadeModelConfigsRequest) returns (GetCascadeModelConfigsResponse);
    rpc GetProcesses(GetProcessesRequest) returns (GetProcessesResponse);
    rpc GetExternalModel(GetExternalModelRequest) returns (GetExternalModelResponse);
    rpc GetAuthToken(GetAuthTokenRequest) returns (GetAuthTokenResponse);
    rpc RecordEvent(RecordEventRequest) returns (RecordEventResponse);
    rpc RecordSystemMetrics(RecordSystemMetricsRequest) returns (RecordSystemMetricsResponse);
    rpc CancelRequest(CancelRequestRequest) returns (CancelRequestResponse);
    rpc EditConfiguration(EditConfigurationRequest) returns (EditConfigurationResponse);
    rpc MigrateApiKey(MigrateApiKeyRequest) returns (MigrateApiKeyResponse);
    rpc GetPrimaryApiKeyForDevsOnly(GetPrimaryApiKeyForDevsOnlyRequest) returns (GetPrimaryApiKeyForDevsOnlyResponse);
    rpc WellSupportedLanguages(WellSupportedLanguagesRequest) returns (WellSupportedLanguagesResponse);
    rpc ProgressBars(ProgressBarsRequest) returns (ProgressBarsResponse);
    rpc RecordSearchDocOpen(RecordSearchDocOpenRequest) returns (RecordSearchDocOpenResponse);
    rpc RecordSearchResultsView(RecordSearchResultsViewRequest) returns (RecordSearchResultsViewResponse);
    rpc HandleStreamingCommand(HandleStreamingCommandRequest) returns (stream HandleStreamingCommandResponse);
    rpc HandleStreamingTab(HandleStreamingTabRequest) returns (stream HandleStreamingTabResponse);
    rpc HandleStreamingTabV2(HandleStreamingTabV2Request) returns (HandleStreamingTabV2Response);
    rpc HandleStreamingTerminalCommand(HandleStreamingTerminalCommandRequest) returns (stream HandleStreamingTerminalCommandResponse);
    rpc UploadRecentCommands(UploadRecentCommandsRequest) returns (UploadRecentCommandsResponse);
    rpc GetBrainStatus(GetBrainStatusRequest) returns (GetBrainStatusResponse);
    rpc SetPinnedGuideline(SetPinnedGuidelineRequest) returns (SetPinnedGuidelineResponse);
    rpc SetPinnedContext(SetPinnedContextRequest) returns (SetPinnedContextResponse);
    rpc AddTrackedWorkspace(AddTrackedWorkspaceRequest) returns (AddTrackedWorkspaceResponse);
    rpc RemoveTrackedWorkspace(RemoveTrackedWorkspaceRequest) returns (RemoveTrackedWorkspaceResponse);
    rpc StatUri(StatUriRequest) returns (StatUriResponse);
    rpc ValidateWindsurfJSAppProjectName(ValidateWindsurfJSAppProjectNameRequest) returns (ValidateWindsurfJSAppProjectNameResponse);
    rpc SaveWindsurfJSAppProjectName(SaveWindsurfJSAppProjectNameRequest) returns (SaveWindsurfJSAppProjectNameResponse);
    rpc RefreshContextForIdeAction(RefreshContextForIdeActionRequest) returns (RefreshContextForIdeActionResponse);
    rpc GetMatchingCodeContext(GetMatchingCodeContextRequest) returns (GetMatchingCodeContextResponse);
    rpc GetMatchingIndexedRepos(GetMatchingIndexedReposRequest) returns (GetMatchingIndexedReposResponse);
    rpc GetMatchingContextScopeItems(GetMatchingContextScopeItemsRequest) returns (GetMatchingContextScopeItemsResponse);
    rpc GetSuggestedContextScopeItems(GetSuggestedContextScopeItemsRequest) returns (GetSuggestedContextScopeItemsResponse);
    rpc GetChatMessage(chat_pb.GetChatMessageRequest) returns (stream GetChatMessageResponse);
    rpc RawGetChatMessage(chat_pb.RawGetChatMessageRequest) returns (stream RawGetChatMessageResponse);
    rpc GetDeepWiki(chat_pb.GetDeepWikiRequest) returns (stream GetDeepWikiResponse);
    rpc CheckUserMessageRateLimit(CheckUserMessageRateLimitRequest) returns (CheckUserMessageRateLimitResponse);
    rpc GetMessageTokenCount(GetMessageTokenCountRequest) returns (GetMessageTokenCountResponse);
    rpc RecordChatFeedback(RecordChatFeedbackRequest) returns (RecordChatFeedbackResponse);
    rpc RecordChatPanelSession(RecordChatPanelSessionRequest) returns (RecordChatPanelSessionResponse);
    rpc CheckChatCapacity(CheckChatCapacityRequest) returns (CheckChatCapacityResponse);
    rpc ShouldEnableUnleash(ShouldEnableUnleashRequest) returns (ShouldEnableUnleashResponse);
    rpc GetWorkspaceEditState(GetWorkspaceEditStateRequest) returns (GetWorkspaceEditStateResponse);
    rpc GetRepoInfos(GetRepoInfosRequest) returns (GetRepoInfosResponse);
    rpc GetWorkspaceInfos(GetWorkspaceInfosRequest) returns (GetWorkspaceInfosResponse);
    rpc GenerateCommitMessage(GenerateCommitMessageRequest) returns (GenerateCommitMessageResponse);
    rpc RecordCommitMessageSave(RecordCommitMessageSaveRequest) returns (RecordCommitMessageSaveResponse);
    rpc SendActionToChatPanel(SendActionToChatPanelRequest) returns (SendActionToChatPanelResponse);
    rpc GetUserSettings(GetUserSettingsRequest) returns (GetUserSettingsResponse);
    rpc SetUserSettings(SetUserSettingsRequest) returns (SetUserSettingsResponse);
    rpc GetDefaultWebOrigins(GetDefaultWebOriginsRequest) returns (GetDefaultWebOriginsResponse);
    rpc GetDebugDiagnostics(GetDebugDiagnosticsRequest) returns (GetDebugDiagnosticsResponse);
    rpc GetUserStatus(GetUserStatusRequest) returns (GetUserStatusResponse);
    rpc GetProfileData(GetProfileDataRequest) returns (GetProfileDataResponse);
    rpc CaptureCode(CaptureCodeRequest) returns (CaptureCodeResponse);
    rpc CaptureFile(CaptureFileRequest) returns (CaptureFileResponse);
    rpc GetChangelog(GetChangelogRequest) returns (GetChangelogResponse);
    rpc GetFunctions(GetFunctionsRequest) returns (GetFunctionsResponse);
    rpc GetClassInfos(GetClassInfosRequest) returns (GetClassInfosResponse);
    rpc SetupUniversitySandbox(SetupUniversitySandboxRequest) returns (SetupUniversitySandboxResponse);
    rpc Exit(ExitRequest) returns (ExitResponse);
    rpc ResetOnboarding(ResetOnboardingRequest) returns (ResetOnboardingResponse);
    rpc SkipOnboarding(SkipOnboardingRequest) returns (SkipOnboardingResponse);
    rpc GetUserTrajectoryDebug(GetUserTrajectoryDebugRequest) returns (GetUserTrajectoryDebugResponse);
    rpc GetUserTrajectoryDescriptions(GetUserTrajectoryDescriptionsRequest) returns (GetUserTrajectoryDescriptionsResponse);
    rpc StreamUserTrajectoryReactiveUpdates(reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream reactive_component_pb.StreamReactiveUpdatesResponse);
    rpc GetCascadeMemories(GetCascadeMemoriesRequest) returns (GetCascadeMemoriesResponse);
    rpc DeleteCascadeMemory(DeleteCascadeMemoryRequest) returns (DeleteCascadeMemoryResponse);
    rpc UpdateCascadeMemory(UpdateCascadeMemoryRequest) returns (UpdateCascadeMemoryResponse);
    rpc GetUserMemories(GetUserMemoriesRequest) returns (GetUserMemoriesResponse);
    rpc RefreshCustomization(RefreshCustomizationRequest) returns (RefreshCustomizationResponse);
    rpc GetConversationTags(GetConversationTagsRequest) returns (GetConversationTagsResponse);
    rpc UpdateConversationTags(UpdateConversationTagsRequest) returns (UpdateConversationTagsResponse);
    rpc StartCascade(StartCascadeRequest) returns (StartCascadeResponse);
    rpc CancelCascadeInvocation(CancelCascadeInvocationRequest) returns (CancelCascadeInvocationResponse);
    rpc CancelCascadeInvocationAndWait(CancelCascadeInvocationAndWaitRequest) returns (CancelCascadeInvocationAndWaitResponse);
    rpc CancelCascadeSteps(CancelCascadeStepsRequest) returns (CancelCascadeStepsResponse);
    rpc SendUserCascadeMessage(SendUserCascadeMessageRequest) returns (SendUserCascadeMessageResponse);
    rpc BranchCascade(BranchCascadeRequest) returns (BranchCascadeResponse);
    rpc QueueCascadeMessage(QueueCascadeMessageRequest) returns (QueueCascadeMessageResponse);
    rpc InterruptWithQueuedMessage(InterruptWithQueuedMessageRequest) returns (InterruptWithQueuedMessageResponse);
    rpc RemoveFromQueue(RemoveFromQueueRequest) returns (RemoveFromQueueResponse);
    rpc MoveQueuedMessage(MoveQueuedMessageRequest) returns (MoveQueuedMessageResponse);
    rpc SyncExploreAgentRun(SyncExploreAgentRunRequest) returns (SyncExploreAgentRunResponse);
    rpc RevertToCascadeStep(RevertToCascadeStepRequest) returns (RevertToCascadeStepResponse);
    rpc GetRevertPreview(GetRevertPreviewRequest) returns (GetRevertPreviewResponse);
    rpc RecordUserStepSnapshot(RecordUserStepSnapshotRequest) returns (RecordUserStepSnapshotResponse);
    rpc GetAllCascadeTrajectories(GetAllCascadeTrajectoriesRequest) returns (GetAllCascadeTrajectoriesResponse);
    rpc HandleCascadeUserInteraction(HandleCascadeUserInteractionRequest) returns (HandleCascadeUserInteractionResponse);
    rpc AcknowledgeCascadeCodeEdit(AcknowledgeCascadeCodeEditRequest) returns (AcknowledgeCascadeCodeEditResponse);
    rpc GetCodeValidationStates(GetCodeValidationStatesRequest) returns (GetCodeValidationStatesResponse);
    rpc ResolveWorktreeChanges(ResolveWorktreeChangesRequest) returns (ResolveWorktreeChangesResponse);
    rpc DeleteCascadeTrajectory(DeleteCascadeTrajectoryRequest) returns (DeleteCascadeTrajectoryResponse);
    rpc RenameCascadeTrajectory(RenameCascadeTrajectoryRequest) returns (RenameCascadeTrajectoryResponse);
    rpc InitializeCascadePanelState(InitializeCascadePanelStateRequest) returns (InitializeCascadePanelStateResponse);
    rpc UpdatePanelStateWithUserStatus(UpdatePanelStateWithUserStatusRequest) returns (UpdatePanelStateWithUserStatusResponse);
    rpc UpdateWorkspaceTrust(UpdateWorkspaceTrustRequest) returns (UpdateWorkspaceTrustResponse);
    rpc SpawnArenaModeMidConversation(SpawnArenaModeMidConversationRequest) returns (SpawnArenaModeMidConversationResponse);
    rpc ConvergeArenaCascades(ConvergeArenaCascadesRequest) returns (ConvergeArenaCascadesResponse);
    rpc StreamCascadePanelReactiveUpdates(reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream reactive_component_pb.StreamReactiveUpdatesResponse);
    rpc StreamCascadeReactiveUpdates(reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream reactive_component_pb.StreamReactiveUpdatesResponse);
    rpc StreamCascadeSummariesReactiveUpdates(reactive_component_pb.StreamReactiveUpdatesRequest) returns (stream reactive_component_pb.StreamReactiveUpdatesResponse);
    rpc ForceBackgroundResearchRefresh(ForceBackgroundResearchRefreshRequest) returns (ForceBackgroundResearchRefreshResponse);
    rpc ResolveOutstandingSteps(ResolveOutstandingStepsRequest) returns (ResolveOutstandingStepsResponse);
    rpc RefreshMcpServers(RefreshMcpServersRequest) returns (RefreshMcpServersResponse);
    rpc GetMcpServerStates(GetMcpServerStatesRequest) returns (GetMcpServerStatesResponse);
    rpc GetMcpPrompt(GetMcpPromptRequest) returns (GetMcpPromptResponse);
    rpc SaveMcpServerToConfigFile(SaveMcpServerToConfigFileRequest) returns (SaveMcpServerToConfigFileResponse);
    rpc UpdateMcpServerInConfigFile(UpdateMcpServerInConfigFileRequest) returns (UpdateMcpServerInConfigFileResponse);
    rpc ToggleMcpTool(ToggleMcpToolRequest) returns (ToggleMcpToolResponse);
    rpc DismissCodeMapSuggestion(DismissCodeMapSuggestionRequest) returns (DismissCodeMapSuggestionResponse);
    rpc StreamTerminalShellCommand(stream codeium_common_pb.TerminalShellCommandStreamChunk) returns (StreamTerminalShellCommandResponse);
    rpc GetWebDocsOptions(GetWebDocsOptionsRequest) returns (GetWebDocsOptionsResponse);
    rpc UpdateDevExperiments(UpdateDevExperimentsRequest) returns (UpdateDevExperimentsResponse);
    rpc SetBaseExperiments(SetBaseExperimentsRequest) returns (SetBaseExperimentsResponse);
    rpc GetUnleashData(GetUnleashDataRequest) returns (GetUnleashDataResponse);
    rpc GetActiveAppDeploymentForWorkspace(GetActiveAppDeploymentForWorkspaceRequest) returns (GetActiveAppDeploymentForWorkspaceResponse);
    rpc GetWindsurfJSAppDeployment(GetWindsurfJSAppDeploymentRequest) returns (GetWindsurfJSAppDeploymentResponse);
    rpc GetModelStatuses(GetModelStatusesRequest) returns (GetModelStatusesResponse);
    rpc UpdateAutoCascadeGithubCredentials(UpdateAutoCascadeGithubCredentialsRequest) returns (UpdateAutoCascadeGithubCredentialsResponse);
    rpc GetAllWorkflows(GetAllWorkflowsRequest) returns (GetAllWorkflowsResponse);
    rpc CopyBuiltinWorkflowToWorkspace(CopyBuiltinWorkflowToWorkspaceRequest) returns (CopyBuiltinWorkflowToWorkspaceResponse);
    rpc GetAllRules(GetAllRulesRequest) returns (GetAllRulesResponse);
    rpc GetAllSkills(GetAllSkillsRequest) returns (GetAllSkillsResponse);
    rpc GetAllPlans(GetAllPlansRequest) returns (GetAllPlansResponse);
    rpc UpdateEnterpriseExperimentsFromUrl(UpdateEnterpriseExperimentsFromUrlRequest) returns (UpdateEnterpriseExperimentsFromUrlResponse);
    rpc ImportFromCursor(ImportFromCursorRequest) returns (ImportFromCursorResponse);
    rpc CreateCustomizationFile(CreateCustomizationFileRequest) returns (CreateCustomizationFileResponse);
    rpc GetTeamOrganizationalControls(GetTeamOrganizationalControlsRequest) returns (GetTeamOrganizationalControlsResponse);
    rpc RecordUserGrep(RecordUserGrepRequest) returns (RecordUserGrepResponse);
    rpc GetGithubPullRequestSearchInfo(GetGithubPullRequestSearchInfoRequest) returns (GetGithubPullRequestSearchInfoResponse);
    rpc CreateTrajectoryShare(CreateTrajectoryShareRequest) returns (CreateTrajectoryShareResponse);
    rpc GetKnowledgeBaseItemsForTeam(GetKnowledgeBaseItemsForTeamRequest) returns (GetKnowledgeBaseItemsForTeamResponse);
    rpc GetCascadeTrajectory(GetCascadeTrajectoryRequest) returns (GetCascadeTrajectoryResponse);
    rpc GetUserTrajectory(GetUserTrajectoryRequest) returns (GetUserTrajectoryResponse);
    rpc GetCascadeTrajectorySteps(GetCascadeTrajectoryStepsRequest) returns (GetCascadeTrajectoryStepsResponse);
    rpc GetCascadeTrajectoryGeneratorMetadata(GetCascadeTrajectoryGeneratorMetadataRequest) returns (GetCascadeTrajectoryGeneratorMetadataResponse);
    rpc GetPatchAndCodeChange(GetPatchAndCodeChangeRequest) returns (GetPatchAndCodeChangeResponse);
    rpc GetAvailableCascadePlugins(GetAvailableCascadePluginsRequest) returns (GetAvailableCascadePluginsResponse);
    rpc InstallCascadePlugin(InstallCascadePluginRequest) returns (InstallCascadePluginResponse);
    rpc GetCascadePluginById(GetCascadePluginByIdRequest) returns (GetCascadePluginByIdResponse);
    rpc RecordLints(RecordLintsRequest) returns (RecordLintsResponse);
    rpc ReplayGroundTruthTrajectory(ReplayGroundTruthTrajectoryRequest) returns (ReplayGroundTruthTrajectoryResponse);
    rpc MountCascadeFilesystem(MountCascadeFilesystemRequest) returns (MountCascadeFilesystemResponse);
    rpc UnmountCascadeFilesystem(UnmountCascadeFilesystemRequest) returns (UnmountCascadeFilesystemResponse);
    rpc LogCascadeSession(LogCascadeSessionRequest) returns (LogCascadeSessionResponse);
    rpc GetTranscription(GetTranscriptionRequest) returns (GetTranscriptionResponse);
    rpc GenerateVibeAndReplaceStreaming(GenerateVibeAndReplaceStreamingRequest) returns (stream GenerateVibeAndReplaceStreamingResponse);
    rpc GetCodeMapsForRepos(GetCodeMapsForReposRequest) returns (GetCodeMapsForReposResponse);
    rpc GetCodeMapsForFile(GetCodeMapsForFileRequest) returns (GetCodeMapsForFileResponse);
    rpc GenerateCodeMap(GenerateCodeMapRequest) returns (stream GenerateCodeMapResponse);
    rpc BranchCascadeAndGenerateCodeMap(BranchCascadeAndGenerateCodeMapRequest) returns (stream BranchCascadeAndGenerateCodeMapResponse);
    rpc ShareCodeMap(ShareCodeMapRequest) returns (ShareCodeMapResponse);
    rpc GetSharedCodeMap(GetSharedCodeMapRequest) returns (GetSharedCodeMapResponse);
    rpc GetCodeMapSuggestions(GetCodeMapSuggestionsRequest) returns (GetCodeMapSuggestionsResponse);
    rpc UpdateCodeMapMetadata(UpdateCodeMapMetadataRequest) returns (UpdateCodeMapMetadataResponse);
    rpc SaveCodeMapFromJson(SaveCodeMapFromJsonRequest) returns (SaveCodeMapFromJsonResponse);
    rpc CheckBugs(CheckBugsRequest) returns (CheckBugsResponse);
    rpc GetLifeguardConfig(GetLifeguardConfigRequest) returns (GetLifeguardConfigResponse);
    rpc SubmitBugReport(SubmitBugReportRequest) returns (SubmitBugReportResponse);
    rpc OnEdit(OnEditRequest) returns (OnEditResponse);
    rpc GetSystemPromptAndTools(GetSystemPromptAndToolsRequest) returns (GetSystemPromptAndToolsResponse);
}

message GetGithubPullRequestSearchInfoRequest {
    codeium_common_pb.Metadata metadata = 1;
    string query = 2;
}

message GetGithubPullRequestSearchInfoResponse {
    repeated auto_cascade_common_pb.GithubPullRequestInfo pull_request_infos = 1;
}

message UpdateAutoCascadeGithubCredentialsRequest {
    codeium_common_pb.Metadata metadata = 1;
    string github_token = 2;
}

message UpdateAutoCascadeGithubCredentialsResponse {
    
}

message HandleStreamingCommandRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.Document document = 2;
    codeium_common_pb.EditorOptions editor_options = 3;
    codeium_common_pb.Model requested_model_id = 4;
    uint64 selection_start_line = 6;
    uint64 selection_end_line = 7;
    string command_text = 8;
    codeium_common_pb.CommandRequestSource request_source = 9;
    codeium_common_pb.ContextScope mentioned_scope = 10;
    codeium_common_pb.ActionPointer action_pointer = 11;
    string parent_completion_id = 12;
    diff_action_pb.DiffType diff_type = 13;
    repeated codeium_common_pb.CodeDiagnostic diagnostics = 14;
    codeium_common_pb.SupercompleteTriggerCondition supercomplete_trigger_condition = 15;
    codeium_common_pb.TerminalCommandData terminal_command_data = 16;
    codeium_common_pb.ExperimentConfig experiment_config = 5 [deprecated = true];
    bool ignore_supercomplete_debounce = 17;
    string clipboard_entry = 18;
    repeated codeium_common_pb.IntellisenseSuggestion intellisense_suggestions = 19;
}

message HandleStreamingCommandResponse {
    string completion_id = 1;
    string prompt_id = 2;
    diff_action_pb.UnifiedDiff diff = 3;
    LatencyInfo latency_info = 4;
    uint64 selection_start_line = 5;
    uint64 selection_end_line = 6;
    double score = 7;
    diff_action_pb.CharacterDiff character_diff = 8;
    diff_action_pb.ComboDiff combo_diff = 9;
    codeium_common_pb.SuperCompleteFilterReason filter_reason = 10;
    RequestInfo request_info = 12;
    codeium_common_pb.StopReason stop_reason = 13;
    cortex_pb.CortexTrajectory trajectory = 15;
    string raw_text = 16;
    string request_uid = 17;
    
    oneof _jump_position {
        codeium_common_pb.DocumentPosition jump_position = 14;
    }
    
    oneof _closest_changed_line {
        uint64 closest_changed_line = 11 [deprecated = true];
    }
}

message HandleStreamingTabRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.Document document = 2;
    codeium_common_pb.EditorOptions editor_options = 3;
    TabRequestSource request_source = 4;
    repeated codeium_common_pb.CodeDiagnostic diagnostics = 5;
    codeium_common_pb.SupercompleteTriggerCondition supercomplete_trigger_condition = 6;
    string clipboard_entry = 7;
    repeated codeium_common_pb.IntellisenseSuggestion intellisense_suggestions = 8;
    repeated codeium_common_pb.Document other_documents = 9;
    
    reserved 10;
    
    reserved "deep_wiki_context";
}

message TabRequestInfo {
    string prompt_id = 1;
    string prompt = 2;
    string typing_as_suggested_prompt_suffix = 3;
}

message HandleStreamingTabResponse {
    string completion_id = 1;
    string prompt_id = 2;
    diff_action_pb.UnifiedDiff diff = 3;
    LatencyInfo latency_info = 4;
    uint64 selection_start_line = 5;
    uint64 selection_end_line = 6;
    double score = 7;
    diff_action_pb.CharacterDiff character_diff = 8;
    codeium_common_pb.SuperCompleteFilterReason filter_reason = 10;
    TabRequestInfo request_info = 12;
    codeium_common_pb.StopReason stop_reason = 13;
    string raw_text = 16;
    string request_uid = 17;
    
    oneof _jump_position {
        codeium_common_pb.DocumentPosition jump_position = 14;
    }
    
    oneof _closest_changed_line {
        uint64 closest_changed_line = 11 [deprecated = true];
    }
    
    oneof _old_str {
        string old_str = 18;
    }
    
    reserved 9, 15;
}

message HandleStreamingTabV2Request {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.Document document = 2;
    codeium_common_pb.EditorOptions editor_options = 3;
    repeated codeium_common_pb.CodeDiagnostic diagnostics = 5;
    codeium_common_pb.SupercompleteTriggerCondition supercomplete_trigger_condition = 6;
    string clipboard_entry = 7;
    repeated codeium_common_pb.IntellisenseSuggestion intellisense_suggestions = 8;
    repeated codeium_common_pb.Document other_documents = 9;
    chat_pb.DeepWikiContext deep_wiki_context_v2 = 12;
    repeated cortex_pb.CortexTrajectoryStep predictive_trajectory_steps = 11;
    bool disable_supercomplete = 13;
    bool disable_tab_jump = 14;
    
    reserved 10;
    
    reserved "deep_wiki_context";
}

message HandleStreamingTabV2Response {
    string completion_id = 1;
    string prompt_id = 2;
    string request_uid = 3;
    codeium_common_pb.SuperCompleteFilterReason filter_reason = 4;
    codeium_common_pb.StopReason stop_reason = 5;
    TabRequestInfo request_info = 6;
    
    oneof suggestion {
        Diff diff = 7;
        TabJump tab_jump = 8;
        NoOp noop = 9;
    }
    
    message Diff {
        string path = 1;
        uint64 selection_start_line = 2;
        uint64 selection_end_line = 3;
        diff_action_pb.CharacterDiff character_diff = 4;
        codeium_common_pb.DocumentPosition cursor_position = 5;
        string old_str = 6;
        diff_action_pb.UnifiedDiff unified_diff = 9;
        
        oneof render_info {
            SideHintRender side_hint_render = 7;
            InlineHintRender inline_hint_render = 8;
        }
        
        message SideHintRender {
            
        }
        
        message InlineHintRender {
            
        }
    }
    
    message TabJump {
        string path = 1;
        codeium_common_pb.DocumentPosition jump_position = 2;
        bool is_import = 3;
    }
    
    message NoOp {
        
    }
}

message UploadRecentCommandsRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message UploadRecentCommandsResponse {
    repeated string request_uids = 1;
}

message MultilineConfig {
    float threshold = 1;
}

message GetCompletionsRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.Document document = 2;
    codeium_common_pb.EditorOptions editor_options = 3;
    repeated codeium_common_pb.Document other_documents = 5;
    codeium_common_pb.MockResponseData mock_response_data = 6;
    bool disable_cache = 8;
    repeated codeium_common_pb.CodeContextItem oracle_items = 9;
    string model_name = 10;
    codeium_common_pb.Model requested_model_id = 12;
    MultilineConfig multiline_config = 13;
    codeium_common_pb.ExperimentConfig experiment_config = 7 [deprecated = true];
    
    reserved 4, 11;
    
    reserved "api_server_params", "super_complete";
}

message GetCompletionsResponse {
    State state = 1;
    repeated CompletionItem completion_items = 2;
    repeated CompletionItem filtered_completion_items = 7;
    RequestInfo request_info = 3;
    LatencyInfo latency_info = 4;
    string model_tag = 5;
    string prompt_id = 6;
    repeated CodeRange code_ranges = 8;
}

message AcceptCompletionRequest {
    codeium_common_pb.Metadata metadata = 1;
    string completion_id = 2;
}

message AcceptCompletionResponse {
    
}

message ProvideCompletionFeedbackRequest {
    codeium_common_pb.Metadata metadata = 1;
    bool is_accepted = 2;
    int64 feedback_delay_ms = 3;
    string completion_id = 4;
    string prompt_id = 5;
    LatencyInfo latency_info = 6;
    codeium_common_pb.ProviderSource source = 7;
    codeium_common_pb.Document document = 8;
    uint64 view_columns_open = 10;
    bool is_intentional_reject = 11;
    bool is_partial = 12;
    string midstream_autocomplete_text = 13;
    bool has_active_vim_extension = 14;
    string completion_text = 15;
    bool is_client_filter_reject = 16;
    codeium_common_pb.ExperimentConfig experiment_config = 9 [deprecated = true];
}

message ProvideCompletionFeedbackResponse {
    
}

message HeartbeatRequest {
    codeium_common_pb.Metadata metadata = 1;
    repeated codeium_common_pb.ErrorTrace previous_error_traces = 2;
    codeium_common_pb.ExperimentConfig experiment_config = 3 [deprecated = true];
}

message HeartbeatResponse {
    google.protobuf.Timestamp last_extension_heartbeat = 1;
}

message GetStatusRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetStatusResponse {
    codeium_common_pb.Status status = 1;
    bool show_review_prompt = 2;
}

message GetCascadeModelConfigsRequest {
    codeium_common_pb.Metadata metadata = 1;
    
    oneof _filter {
        bool filter = 2;
    }
}

message GetCascadeModelConfigsResponse {
    repeated codeium_common_pb.ClientModelConfig client_model_configs = 1;
    repeated codeium_common_pb.ClientModelSort client_model_sorts = 2;
    
    oneof _default_override_model_config {
        codeium_common_pb.DefaultOverrideModelConfig default_override_model_config = 3;
    }
}

message TeamOrganizationalControls {
    string team_id = 1;
    repeated string cascade_model_labels = 2;
    repeated string command_model_labels = 3;
    google.protobuf.Timestamp created_at = 4;
    google.protobuf.Timestamp updated_at = 5;
    repeated string extension_model_labels = 6;
    repeated codeium_common_pb.APIProvider allowed_api_providers = 8;
    
    reserved 7;
}

message GetTeamOrganizationalControlsRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetTeamOrganizationalControlsResponse {
    codeium_common_pb.TeamOrganizationalControls controls = 1;
}

message GetCommandModelConfigsRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetCommandModelConfigsResponse {
    repeated codeium_common_pb.ClientModelConfig client_model_configs = 1;
}

message GetProcessesRequest {
    
}

message GetExternalModelResponse {
    repeated codeium_common_pb.ExternalModel models = 1;
}

message GetExternalModelRequest {
    string api_key = 1;
}

message GetProcessesResponse {
    uint32 lsp_port = 1;
    uint32 chat_client_port = 3;
    
    reserved 2;
    
    reserved "chat_web_server_port";
}

message GetAuthTokenRequest {
    
}

message GetAuthTokenResponse {
    string auth_token = 1;
    string uuid = 2;
}

message RecordEventRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.Event event = 2;
}

message RecordEventResponse {
    
}

message RecordSystemMetricsRequest {
    codeium_common_pb.Metadata metadata = 1;
    string system_metrics_json = 2;
}

message RecordSystemMetricsResponse {
    
}

message CancelRequestRequest {
    codeium_common_pb.Metadata metadata = 1;
    uint64 request_id = 2;
}

message CancelRequestResponse {
    
}

message EditConfigurationRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.CompletionConfiguration completion_configuration = 2;
}

message EditConfigurationResponse {
    codeium_common_pb.CompletionConfiguration completion_configuration = 1;
}

message GetTranscriptionRequest {
    codeium_common_pb.Metadata metadata = 1;
    bytes audio_data = 2;
}

message GetTranscriptionResponse {
    string transcribed_text = 1;
}

message ValidateWindsurfJSAppProjectNameRequest {
    codeium_common_pb.Metadata metadata = 1;
    string project_name = 2;
}

message ValidateWindsurfJSAppProjectNameResponse {
    codeium_common_pb.ValidationStatus status = 1;
    string invalid_reason = 3;
    repeated string alternative_names = 2;
}

message SaveWindsurfJSAppProjectNameRequest {
    codeium_common_pb.Metadata metadata = 1;
    string workspace_uri = 2;
    string project_name = 3;
}

message SaveWindsurfJSAppProjectNameResponse {
    codeium_common_pb.WebAppDeploymentConfig deployment_config = 1;
}

message RegisterUserRequest {
    string firebase_id_token = 1;
}

message RegisterUserResponse {
    string api_key = 1;
    string name = 2;
    string api_server_url = 3;
}

message MigrateApiKeyRequest {
    string api_key = 1;
}

message MigrateApiKeyResponse {
    string session_token = 1;
}

message WellSupportedLanguagesRequest {
    
}

message WellSupportedLanguagesResponse {
    repeated codeium_common_pb.Language languages = 1;
}

message ProgressBarsRequest {
    
}

message ProgressBarsResponse {
    map<string, ProgressBar> progress_bars = 1;
}

message RecordSearchDocOpenRequest {
    codeium_common_pb.Metadata metadata = 1;
    string result_id = 2;
}

message RecordSearchDocOpenResponse {
    
}

message RecordSearchResultsViewRequest {
    codeium_common_pb.Metadata metadata = 1;
    string cluster_search_id = 2;
    string exact_search_id = 3;
    repeated string search_result_ids = 4;
}

message RecordSearchResultsViewResponse {
    
}

message ContextInfoRequest {
    
}

message ContextInfoResponse {
    repeated string active_workspaces = 1;
    repeated string ignored_workspaces = 2;
}

message RefreshContextForIdeActionRequest {
    codeium_common_pb.Metadata metadata = 8;
    codeium_common_pb.Document active_document = 1;
    repeated string open_document_filepaths_migrate_me_to_uri = 2 [deprecated = true];
    repeated string open_document_uris = 6;
    repeated codeium_common_pb.Document other_documents = 5;
    repeated string workspace_paths_migrate_me_to_uri = 3 [deprecated = true];
    repeated string workspace_uris = 7;
    bool blocking = 4;
    codeium_common_pb.ExperimentConfig experiment_config = 9 [deprecated = true];
    IdeAction ide_action = 10;
}

message RefreshContextForIdeActionResponse {
    
}

message GetMatchingCodeContextRequest {
    string query = 1;
    bool fuzzy_match = 2;
    repeated codeium_common_pb.CodeContextType allowed_types = 3;
    int32 max_items = 4;
    bool case_insensitive = 5;
}

message GetMatchingCodeContextResponse {
    repeated codeium_common_pb.CodeContextItem matched_items = 1;
}

message GetMatchingIndexedReposRequest {
    codeium_common_pb.Metadata metadata = 1;
    string query = 2;
    bool fuzzy_match = 3;
    int32 max_items = 4;
    bool case_insensitive = 5;
}

message GetMatchingIndexedReposResponse {
    repeated codeium_common_pb.GitRepoInfo matched_repositories = 1;
}

message GetChatMessageResponse {
    chat_pb.ChatMessage chat_message = 1;
    uint32 num_tokens_in_intent = 2;
}

message RawGetChatMessageResponse {
    chat_pb.RawChatMessage delta_message = 1;
}

message GetDeepWikiResponse {
    RawGetChatMessageResponse response = 1;
    string request_id = 2;
    codeium_common_pb.DeepWikiModelType model_type = 3;
    string followup_questions = 4;
    bool is_article_done = 5;
}

message CheckUserMessageRateLimitRequest {
    codeium_common_pb.Metadata metadata = 1;
    string model_uid = 3;
    
    reserved 2;
    
    reserved "model";
}

message CheckUserMessageRateLimitResponse {
    bool has_capacity = 1;
    string message = 2;
    int32 messages_remaining = 3;
    int32 max_messages = 4;
    int64 resets_in_seconds = 5;
}

message GetMessageTokenCountRequest {
    string chat_message = 1;
    codeium_common_pb.Model requested_model_id = 2;
}

message GetMessageTokenCountResponse {
    uint32 token_count = 1;
}

message RecordChatFeedbackRequest {
    codeium_common_pb.Metadata metadata = 1;
    string message_id = 2;
    chat_pb.ChatFeedbackType feedback = 3;
    string reason = 4;
    google.protobuf.Timestamp timestamp = 5;
}

message RecordChatFeedbackResponse {
    
}

message RecordChatPanelSessionRequest {
    codeium_common_pb.Metadata metadata = 1;
    google.protobuf.Timestamp start_timestamp = 2;
    google.protobuf.Timestamp end_timestamp = 3;
}

message RecordChatPanelSessionResponse {
    
}

message CheckChatCapacityRequest {
    codeium_common_pb.Metadata metadata = 1;
    string model_uid = 3;
    
    reserved 2;
    
    reserved "model";
}

message CheckChatCapacityResponse {
    bool has_capacity = 1;
    string message = 2;
    int32 active_sessions = 3;
}

message GetUserAnalyticsSummaryRequest {
    codeium_common_pb.Metadata metadata = 1;
    string time_zone = 2;
    google.protobuf.Timestamp start_timestamp = 3;
    google.protobuf.Timestamp end_timestamp = 4;
}

message GetUserAnalyticsSummaryResponse {
    codeium_common_pb.CompletionStatistics completion_statistics = 1;
    repeated codeium_common_pb.CompletionByDateEntry completions_by_day = 2;
    repeated codeium_common_pb.CompletionByLanguageEntry completions_by_language = 3;
    repeated codeium_common_pb.ChatStatsByModelEntry chats_by_model = 4;
}

message GetUserStatusRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetUserStatusResponse {
    codeium_common_pb.UserStatus user_status = 1;
    codeium_common_pb.PlanInfo plan_info = 2;
}

message GetPrimaryApiKeyForDevsOnlyRequest {
    string session_token = 1;
}

message GetPrimaryApiKeyForDevsOnlyResponse {
    string api_key = 1;
}

message GetProfileDataRequest {
    string api_key = 1;
}

message GetProfileDataResponse {
    string profile_picture_url = 1;
}

message CaptureCodeRequest {
    codeium_common_pb.Metadata metadata = 1;
    string prompt_id = 2;
    string code = 3;
    uint64 timeout_sec = 4;
    string completion_text = 5;
    codeium_common_pb.ProviderSource provider_source = 6;
    string completion_id = 7;
    string diagnostic_severity = 8;
}

message CaptureCodeResponse {
    
}

message CaptureFileRequest {
    codeium_common_pb.CaptureFileRequestData data = 1;
    codeium_common_pb.ExperimentConfig experiment_config = 2 [deprecated = true];
}

message CaptureFileResponse {
    
}

message GetChangelogRequest {
    string version = 1;
}

message GetChangelogResponse {
    string path = 1;
}

message GetFunctionsRequest {
    codeium_common_pb.Document document = 1;
}

message GetFunctionsResponse {
    repeated codeium_common_pb.FunctionInfo function_captures = 1;
}

message GetClassInfosRequest {
    codeium_common_pb.Document document = 1;
}

message GetClassInfosResponse {
    repeated codeium_common_pb.ClassInfo class_captures = 1;
}

message ExitRequest {
    
}

message ExitResponse {
    
}

message State {
    CodeiumState state = 1;
    string message = 2;
}

message RequestInfo {
    string prompt_id = 1;
    codeium_common_pb.CompletionsRequest completions_request = 4;
    string typing_as_suggested_prompt_suffix = 5;
    codeium_common_pb.CompletionType completion_type = 6;
    
    reserved 2, 3;
    
    reserved "prompt", "line_type";
}

message LatencyInfo {
    uint64 client_latency_ms = 1;
    uint64 prompt_latency_ms = 2;
    repeated codeium_common_pb.PromptStageLatency prompt_stage_latencies = 3;
    uint64 debounce_latency_ms = 4;
    uint64 rpc_latency_ms = 5;
    uint64 network_latency_ms = 6;
}

message Suffix {
    string text = 1;
    int64 delta_cursor_offset = 2;
}

message CompletionPart {
    string text = 1;
    uint64 offset = 2;
    CompletionPartType type = 3;
    string prefix = 4;
    uint64 line = 5;
}

message CompletionItem {
    codeium_common_pb.Completion completion = 1;
    Suffix suffix = 5;
    codeium_common_pb.Range range = 2;
    codeium_common_pb.CompletionSource source = 3;
    repeated CompletionPart completion_parts = 8;
    
    reserved 4, 6, 7;
    
    reserved "latency_ms", "network_latency_ms", "client_latency_ms";
}

message SearchResult {
    int64 embedding_id = 1;
    string absolute_path_migrate_me_to_uri = 2 [deprecated = true];
    string absolute_uri = 7;
    repeated codeium_common_pb.WorkspacePath workspace_paths = 3;
    codeium_common_pb.EmbeddingMetadata embedding_metadata = 4;
    float similarity_score = 5;
    codeium_common_pb.CodeContextItem code_context_item = 6;
}

message SearchResultCluster {
    repeated SearchResult search_results = 1;
    string representative_path = 2;
    string description = 3;
    float mean_similarity_score = 4;
    string search_id = 5;
    string result_id = 6;
}

message ProgressBar {
    float progress = 1;
    string text = 2;
    bool hidden = 3;
    google.protobuf.Duration remaining_time = 4;
}

message ExactSearchQuery {
    string pattern = 1;
    bool is_multiline = 2;
    bool is_reg_exp = 3;
    bool is_case_sensitive = 4;
    bool is_word_match = 5;
}

message ExactSearchOptions {
    string folder = 1;
    repeated string includes = 2;
    repeated string excludes = 3;
    bool disregard_ignore_files = 4;
    bool follow_symlinks = 5;
    bool disregard_global_ignore_files = 6;
    bool disregard_parent_ignore_files = 7;
    uint32 max_file_size = 8;
    string encoding = 9;
    uint32 before_context_lines = 10;
    uint32 after_context_lines = 11;
    uint32 max_results = 12;
    ExactSearchPreviewOptions preview_options = 13;
}

message ExactSearchPreviewOptions {
    uint32 match_lines = 1;
    uint32 chars_per_line = 2;
}

message ExactSearchResult {
    string absolute_path = 1;
    string relative_path = 4;
    repeated codeium_common_pb.Range ranges = 2;
    ExactSearchMatchPreview preview = 3;
    string result_id = 5;
}

message ExactSearchMatchPreview {
    string text = 1;
    repeated codeium_common_pb.Range ranges = 2;
}

message AddTrackedWorkspaceRequest {
    string workspace = 1;
}

message AddTrackedWorkspaceResponse {
    
}

message RemoveTrackedWorkspaceRequest {
    string workspace = 1;
}

message RemoveTrackedWorkspaceResponse {
    
}

message GetWorkspaceEditStateRequest {
    
}

message WorkspaceEditState {
    string repo_root = 1;
    uint64 num_additions = 2;
    uint64 num_deletions = 3;
    repeated cortex_pb.ActionResultEdit edits = 4;
}

message GetWorkspaceEditStateResponse {
    repeated WorkspaceEditState workspace_edits = 1;
}

message BranchInfo {
    string name = 1;
    bool is_current_branch = 2;
}

message RepoInfo {
    string name = 1;
    string repo_path = 2;
    repeated BranchInfo branches = 3;
    codeium_common_pb.ScmType scm_type = 4;
    string full_repo_name = 5;
}

message GetRepoInfosRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetRepoInfosResponse {
    repeated RepoInfo repos = 1;
}

message GetWorkspaceInfosRequest {
    
}

message WorkspaceInfo {
    string workspace_uri = 1;
    string git_root_uri = 2;
}

message GetWorkspaceInfosResponse {
    string home_dir_path = 1;
    repeated WorkspaceInfo workspace_infos = 2;
    string home_dir_uri = 3;
}

message GenerateCommitMessageRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.PlanInfo plan_info = 2;
}

message CommitMessageData {
    string repo_root = 1;
    string commit_message_summary = 2;
    string commit_message_description = 3;
    repeated string changed_files_migrate_me_to_uri = 4 [deprecated = true];
    repeated string changed_file_uris = 5;
}

message GenerateCommitMessageResponse {
    repeated CommitMessageData commit_messages = 1;
}

message RecordCommitMessageSaveRequest {
    codeium_common_pb.Metadata metadata = 1;
    string repo_root = 2;
    string branch_name = 3;
    string commit_hash = 4;
    string commit_message = 5;
    google.protobuf.Timestamp commit_timestamp = 6;
    string parent_commit_hash = 7;
    string author_name = 8;
    string author_email = 9;
}

message RecordCommitMessageSaveResponse {
    
}

message VibeAndReplaceFile {
    string file_uri = 1;
    string original_content = 2;
    repeated string matches = 3;
    repeated int32 match_lines = 4;
}

message GenerateVibeAndReplaceStreamingRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.PlanInfo plan_info = 2;
    string prompt = 3;
    string search_query = 4;
    string search_options_text = 5;
    repeated VibeAndReplaceFile files = 6;
    string cascade_id = 7;
    
    oneof _model_uid_for_generation {
        string model_uid_for_generation = 9;
    }
    
    reserved 8;
    
    reserved "modelForGeneration";
}

message VibeAndReplaceData {
    string request_id = 1;
    string output = 2;
    repeated codeium_common_pb.ChatToolCall tool_calls = 3;
    codeium_common_pb.GRPCStatus error = 4;
    string file_path = 5;
    bool is_skipped = 6;
}

message GenerateVibeAndReplaceStreamingResponse {
    VibeAndReplaceData vibe_and_replace_data = 1;
}

message GetUserSettingsRequest {
    
}

message GetUserSettingsResponse {
    codeium_common_pb.UserSettings user_settings = 1;
}

message SetUserSettingsRequest {
    codeium_common_pb.UserSettings user_settings = 1;
}

message SetUserSettingsResponse {
    codeium_common_pb.UserSettings user_settings = 1;
}

message GetDefaultWebOriginsRequest {
    
}

message GetDefaultWebOriginsResponse {
    repeated string default_origins = 1;
}

message GetDebugDiagnosticsRequest {
    
}

message GetDebugDiagnosticsResponse {
    codeium_common_pb.LanguageServerDiagnostics language_server_diagnostics = 1;
}

message CodeRange {
    codeium_common_pb.CodeSource source = 1;
    uint64 start_offset = 2;
    uint64 end_offset = 3;
    bool modified = 4;
    string completion_id = 5;
    codeium_common_pb.CompletionType completion_type = 6;
    codeium_common_pb.ProviderSource provider_source = 7;
}

message CodeTrackerState {
    string absolute_path_migrate_me_to_uri = 1 [deprecated = true];
    string absolute_uri = 6;
    string text = 2;
    repeated CodeRange ranges = 3;
    string commit = 4;
    string repo_root_migrate_me_to_uri = 5 [deprecated = true];
    string repo_root_uri = 7;
}

message GetSuggestedContextScopeItemsRequest {
    codeium_common_pb.Metadata metadata = 1;
    repeated ContextSuggestionSource suggestion_sources = 2;
    string query = 3;
    uint64 auto_expand_file_limit = 4;
    uint64 max_items = 5;
}

message GetSuggestedContextScopeItemsResponse {
    repeated codeium_common_pb.ContextScopeItem items = 1;
}

message GetMatchingContextScopeItemsRequest {
    codeium_common_pb.Metadata metadata = 1;
    repeated codeium_common_pb.ContextScopeType allowed_types = 2;
    repeated codeium_common_pb.CodeContextType allowed_context_types = 7;
    string query = 3;
    bool fuzzy_match = 4;
    int32 max_items = 5;
    bool case_insensitive = 6;
    string repo_filter = 8;
    bool enable_path_resolution = 10;
    
    reserved 9;
}

message GetMatchingContextScopeItemsResponse {
    repeated codeium_common_pb.ContextScopeItem items = 1;
}

message ContextStatus {
    codeium_common_pb.Document active_document = 1;
    codeium_common_pb.CodeContextItem last_active_code_context_item = 2;
    codeium_common_pb.ContextScope pinned_scope = 3;
    codeium_common_pb.Guideline pinned_guideline = 4;
    codeium_common_pb.ContextScope default_pinned_scope = 5;
}

message LocalIndexStatus {
    string workspace_folder = 1;
    string git_root = 2;
    string repo_name = 3;
    codeium_common_pb.GitRepoInfo remote_repo = 4;
    index_pb.IndexStats index_stats = 5;
    codeium_common_pb.WorkspaceStats workspace_stats = 7;
    codeium_common_pb.PartialIndexMetadata partial_index_metadata = 8;
    map<string, ProgressBar> index_progress = 6;
}

message IndexStatus {
    repeated LocalIndexStatus local_indexes = 1;
    repeated string ignored_local_workspaces = 2;
    uint32 local_files_index_capacity = 3;
}

message BrainStatus {
    ContextStatus context_status = 1;
    IndexStatus index_status = 2;
}

message GetBrainStatusRequest {
    codeium_common_pb.Metadata metadata = 1;
    bool force_refresh = 2;
}

message GetBrainStatusResponse {
    BrainStatus brain_status = 1;
}

message SetPinnedGuidelineRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.Guideline pinned_guideline = 2;
}

message SetPinnedContextRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.ContextScope pinned_scope = 2;
}

message SetPinnedGuidelineResponse {
    
}

message SetPinnedContextResponse {
    
}

message SetupUniversitySandboxRequest {
    
}

message SetupUniversitySandboxResponse {
    string base_directory = 1;
}

message UnifiedDiffChange {
    string text = 1;
    UnifiedDiffChangeType type = 2;
}

message UnifiedDiff {
    repeated UnifiedDiffChange changes = 1;
}

message CodeTheme {
    string background = 1;
    string text = 2;
    string whitespace = 3;
    string other = 4;
    string literal = 5;
    string literal_string = 6;
    string number = 7;
    string operator = 8;
    string punctuation = 9;
    string generic = 10;
    string name = 11;
    string keyword = 12;
    string comment = 13;
    string error = 14;
}

message OnboardingItemState {
    codeium_common_pb.OnboardingActionType action_type = 1;
    bool completed = 2;
}

message OnboardingState {
    bool has_skipped = 1;
    repeated OnboardingItemState items = 2;
}

message ResetOnboardingRequest {
    bool clear_history = 1;
}

message ResetOnboardingResponse {
    
}

message SkipOnboardingRequest {
    
}

message SkipOnboardingResponse {
    
}

message GetUserTrajectoryDebugRequest {
    bool include_all_trajectories = 1 [deprecated = true];
}

message GetUserTrajectoryDebugResponse {
    repeated cortex_pb.ImplicitTrajectory mainline = 1;
    cortex_pb.CortexTrajectory granular = 2;
}

message GetUserTrajectoryDescriptionsRequest {
    
}

message GetUserTrajectoryDescriptionsResponse {
    repeated cortex_pb.ImplicitTrajectoryDescription trajectories = 1;
}

message ForceBackgroundResearchRefreshRequest {
    option deprecated = true;
    codeium_common_pb.Metadata metadata = 1;
    string mainline_trajectory_id = 2;
    bool blocking = 3;
    bool full_refresh = 4;
}

message ForceBackgroundResearchRefreshResponse {
    option deprecated = true;
}

message ReplayGroundTruthTrajectoryRequest {
    codeium_common_pb.Metadata metadata = 1;
    repeated cortex_pb.CortexTrajectoryStep replay_steps = 2;
    string cascade_id = 3;
    cortex_pb.CascadeConfig cascade_config = 4;
}

message ReplayGroundTruthTrajectoryResponse {
    cortex_pb.CortexTrajectory trajectory = 1;
}

message InitializeCascadePanelStateRequest {
    codeium_common_pb.Metadata metadata = 1;
    bool workspace_trusted = 3;
    
    reserved 2;
}

message InitializeCascadePanelStateResponse {
    
}

message UpdatePanelStateWithUserStatusRequest {
    codeium_common_pb.Metadata metadata = 1;
    codeium_common_pb.UserStatus user_status = 2;
}

message UpdatePanelStateWithUserStatusResponse {
    
}

message UpdateWorkspaceTrustRequest {
    codeium_common_pb.Metadata metadata = 1;
    bool workspace_trusted = 2;
}

message UpdateWorkspaceTrustResponse {
    
}

message GenerateCodeMapRequest {
    string prompt = 1;
    string mode = 2;
    string source = 3;
}

message GenerateCodeMapResponse {
    oneof result {
        string updates_json = 1;
        Success success = 2;
        string status = 3;
    }
    
    message Success {
        string code_map_json = 1;
    }
}

message BranchCascadeAndGenerateCodeMapRequest {
    string cascade_id = 1;
    
    oneof _prompt {
        string prompt = 2;
    }
    
    oneof _source {
        string source = 3;
    }
    
    oneof _editing_codemap_id {
        string editing_codemap_id = 4;
    }
    
    oneof _mode {
        string mode = 5;
    }
}

message BranchCascadeAndGenerateCodeMapResponse {
    oneof result {
        string updates_json = 1;
        Success success = 2;
        string status = 3;
    }
    
    message Success {
        string code_map_json = 1;
        string new_cascade_id = 2;
    }
}

message StartCascadeRequest {
    codeium_common_pb.Metadata metadata = 1;
    cortex_pb.BaseTrajectoryIdentifier base_trajectory_identifier = 3;
    cortex_pb.CortexTrajectorySource source = 4;
    cortex_pb.CortexTrajectoryType trajectory_type = 5;
    codeium_common_pb.ExperimentConfig experiment_config = 2 [deprecated = true];
    
    oneof _start_arena {
        uint32 start_arena = 6;
    }
    
    oneof _git_worktree {
        bool git_worktree = 7;
    }
    
    oneof _arena_mode_info {
        cortex_pb.ArenaModeInfo arena_mode_info = 8;
    }
}

message StartCascadeResponse {
    string cascade_id = 1;
    repeated string arena_cascade_ids = 2;
}

message GetCascadeTrajectoryRequest {
    string cascade_id = 1;
}

message GetCascadeTrajectoryResponse {
    cortex_pb.CortexTrajectory trajectory = 1;
    cortex_pb.CascadeRunStatus status = 2;
    uint32 num_total_steps = 3;
    uint32 num_total_generator_metadata = 4;
}

message GetUserTrajectoryRequest {
    string trajectory_id = 1;
}

message GetUserTrajectoryResponse {
    cortex_pb.CortexTrajectory trajectory = 1;
}

message GetCascadeTrajectoryStepsRequest {
    string cascade_id = 1;
    uint32 step_offset = 2;
}

message GetCascadeTrajectoryStepsResponse {
    repeated cortex_pb.CortexTrajectoryStep steps = 1;
}

message GetCascadeTrajectoryGeneratorMetadataRequest {
    string cascade_id = 1;
    uint32 generator_metadata_offset = 2;
}

message GetCascadeTrajectoryGeneratorMetadataResponse {
    repeated cortex_pb.CortexStepGeneratorMetadata generator_metadata = 1;
}

message GetAllCascadeTrajectoriesRequest {
    oneof _include_user_inputs {
        bool include_user_inputs = 1;
    }
}

message GetAllCascadeTrajectoriesResponse {
    map<string, cortex_pb.CascadeTrajectorySummary> trajectory_summaries = 1;
    repeated UserInputWithMetadata user_inputs = 2;
}

message CancelCascadeInvocationRequest {
    string cascade_id = 1;
}

message CancelCascadeInvocationResponse {
    
}

message CancelCascadeInvocationAndWaitRequest {
    string cascade_id = 1;
}

message CancelCascadeInvocationAndWaitResponse {
    
}

message CancelCascadeStepsRequest {
    string cascade_id = 1;
    repeated uint32 step_indices = 2;
}

message CancelCascadeStepsResponse {
    
}

message SendUserCascadeMessageRequest {
    codeium_common_pb.Metadata metadata = 3;
    string cascade_id = 1;
    repeated codeium_common_pb.TextOrScopeItem items = 2;
    repeated codeium_common_pb.ImageData images = 6;
    cortex_pb.CascadeConfig cascade_config = 5;
    codeium_common_pb.ExperimentConfig experiment_config = 4 [deprecated = true];
    repeated string recipe_ids = 7;
    bool blocking = 8;
    repeated cortex_pb.CortexTrajectoryStep additional_steps = 9;
}

message SendUserCascadeMessageResponse {
    
}

message BranchCascadeRequest {
    codeium_common_pb.Metadata metadata = 1;
    string base_cascade_id = 2;
    repeated codeium_common_pb.TextOrScopeItem items = 3;
    repeated codeium_common_pb.ImageData images = 4;
    cortex_pb.CascadeConfig cascade_config = 5;
    repeated string recipe_ids = 6;
    bool blocking = 7;
    repeated cortex_pb.CortexTrajectoryStep additional_steps = 8;
    
    oneof _branch_from_step_index {
        int32 branch_from_step_index = 9;
    }
}

message BranchCascadeResponse {
    string new_cascade_id = 1;
}

message QueueCascadeMessageRequest {
    codeium_common_pb.Metadata metadata = 1;
    string cascade_id = 2;
    repeated codeium_common_pb.TextOrScopeItem items = 3;
    repeated codeium_common_pb.ImageData images = 4;
    cortex_pb.CascadeConfig cascade_config = 5;
}

message QueueCascadeMessageResponse {
    string queue_id = 1;
}

message InterruptWithQueuedMessageRequest {
    codeium_common_pb.Metadata metadata = 1;
    string cascade_id = 2;
    
    oneof _queue_id {
        string queue_id = 3;
    }
}

message InterruptWithQueuedMessageResponse {
    
}

message RemoveFromQueueRequest {
    codeium_common_pb.Metadata metadata = 1;
    string cascade_id = 2;
    string queue_id = 3;
}

message RemoveFromQueueResponse {
    bool removed = 1;
}

message MoveQueuedMessageRequest {
    codeium_common_pb.Metadata metadata = 1;
    string cascade_id = 2;
    string queue_id = 3;
    int32 to_index = 4;
}

message MoveQueuedMessageResponse {
    
}

message RevertToCascadeStepRequest {
    codeium_common_pb.Metadata metadata = 3;
    string cascade_id = 1;
    int32 step_index = 2;
    codeium_common_pb.ExperimentConfig experiment_config = 4 [deprecated = true];
    bool keep_changes = 5;
}

message RevertToCascadeStepResponse {
    cortex_pb.RevertMetadata metadata = 1;
}

message CodeEditRevertPreview {
    string file_uri = 1;
    diff_action_pb.UnifiedDiff diff = 2;
    CodeRevertActionType action_type = 3;
}

message GetRevertPreviewRequest {
    string cascade_id = 1;
    uint32 step_index = 2;
    codeium_common_pb.Metadata metadata = 3;
}

message GetRevertPreviewResponse {
    repeated CodeEditRevertPreview code_edit_previews = 1;
}

message RecordUserStepSnapshotRequest {
    string cascade_id = 1;
    int32 step_index = 2;
    cortex_pb.UserStepSnapshot snapshot = 3;
}

message RecordUserStepSnapshotResponse {
    
}

message HandleCascadeUserInteractionRequest {
    string cascade_id = 1;
    cortex_pb.CascadeUserInteraction interaction = 2;
}

message HandleCascadeUserInteractionResponse {
    
}

message AcknowledgeCascadeCodeEditRequest {
    codeium_common_pb.Metadata metadata = 4;
    string cascade_id = 1;
    repeated string absolute_uri = 2;
    repeated string contents = 5;
    bool accept = 3;
}

message AcknowledgeCascadeCodeEditResponse {
    
}

message GetCodeValidationStatesRequest {
    string cascade_id = 1;
}

message GetCodeValidationStatesResponse {
    repeated ValidationState states = 1;
}

message ResolveWorktreeChangesRequest {
    string cascade_id = 1;
    repeated string uris = 2;
    ResolveWorktreeChangesMode mode = 3;
    bool fail_on_conflicts = 4;
}

message ResolveWorktreeChangesResponse {
    bool had_conflicts = 1;
}

message ValidationState {
    string uri = 1;
    string last_acknowledged_state = 2;
    string current_state = 3;
    bool last_state_file_nonexistent = 4;
    bool current_state_file_nonexistent = 5;
    bool is_notebook = 6;
    int32 cell_index = 7;
}

message DeleteCascadeTrajectoryRequest {
    string cascade_id = 1;
}

message DeleteCascadeTrajectoryResponse {
    
}

message RenameCascadeTrajectoryRequest {
    string cascade_id = 1;
    string name = 2;
}

message RenameCascadeTrajectoryResponse {
    
}

message ResolveOutstandingStepsRequest {
    string cascade_id = 1;
}

message ResolveOutstandingStepsResponse {
    
}

message MountCascadeFilesystemRequest {
    string cascade_id = 1;
}

message MountCascadeFilesystemResponse {
    
}

message UnmountCascadeFilesystemRequest {
    string cascade_id = 1;
}

message UnmountCascadeFilesystemResponse {
    
}

message StreamTerminalShellCommandResponse {
    
}

message GetWebDocsOptionsRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetWebDocsOptionsResponse {
    repeated codeium_common_pb.WebDocsOption options = 1;
}

message UpdateDevExperimentsRequest {
    codeium_common_pb.ExperimentConfig experiment_config = 1;
}

message UpdateDevExperimentsResponse {
    
}

message SetBaseExperimentsRequest {
    codeium_common_pb.ExperimentConfig experiment_config = 1;
}

message SetBaseExperimentsResponse {
    
}

message GetActiveAppDeploymentForWorkspaceRequest {
    codeium_common_pb.Metadata metadata = 1;
    string workspace_uri = 2;
}

message GetActiveAppDeploymentForWorkspaceResponse {
    codeium_common_pb.WebAppDeploymentConfig deployment_config = 1;
    codeium_common_pb.WindsurfDeployment deployment = 2;
    string project_name = 3;
    string subdomain = 4;
    google.protobuf.Timestamp project_created_at = 5;
    string team_slug = 6;
}

message GetWindsurfJSAppDeploymentRequest {
    codeium_common_pb.Metadata metadata = 1;
    string deployment_id = 2;
}

message GetWindsurfJSAppDeploymentResponse {
    codeium_common_pb.WindsurfDeployment deployment = 1;
    codeium_common_pb.DeploymentBuildStatus build_status = 2;
    string deployment_url = 3;
    string build_error = 4;
    string build_logs = 5;
    bool is_claimed = 6;
    string claim_url = 7;
}

message GetCascadeMemoriesRequest {
    
}

message GetCascadeMemoriesResponse {
    repeated cortex_pb.CortexMemory memories = 1;
}

message GetModelStatusesRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetModelStatusesResponse {
    repeated codeium_common_pb.ModelStatusInfo model_status_infos = 1;
}

message DeleteCascadeMemoryRequest {
    string memory_id = 1;
}

message DeleteCascadeMemoryResponse {
    
}

message UpdateCascadeMemoryRequest {
    string memory_id = 1;
    string title = 2;
    string content = 3;
    repeated string tags = 4;
}

message UpdateCascadeMemoryResponse {
    
}

message GetUserMemoriesRequest {
    
}

message GetUserMemoriesResponse {
    repeated cortex_pb.CortexMemory memories = 1;
}

message RefreshCustomizationRequest {
    codeium_common_pb.RefreshCustomizationType config_type = 1;
}

message RefreshCustomizationResponse {
    
}

message GetConversationTagsRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetConversationTagsResponse {
    map<string, ConversationTagList> conversation_tags = 1;
}

message ConversationTagList {
    repeated string tags = 1;
}

message UpdateConversationTagsRequest {
    codeium_common_pb.Metadata metadata = 1;
    string cascade_id = 2;
    repeated string tags = 3;
}

message UpdateConversationTagsResponse {
    
}

message RefreshMcpServersRequest {
    bool shallow = 1;
    
    oneof _server_name {
        string server_name = 2;
    }
}

message RefreshMcpServersResponse {
    
}

message GetMcpServerStatesRequest {
    
}

message GetMcpServerStatesResponse {
    repeated cortex_pb.McpServerState states = 1;
    
    reserved 2, 3;
}

message SaveMcpServerToConfigFileRequest {
    string server_id = 1;
    bool shallow_refresh = 3;
    
    oneof _template_json {
        string template_json = 2;
    }
}

message SaveMcpServerToConfigFileResponse {
    oneof _error_message {
        string error_message = 2;
    }
    
    reserved 1;
}

message UpdateMcpServerInConfigFileRequest {
    string server_id = 1;
    
    reserved 2;
}

message UpdateMcpServerInConfigFileResponse {
    oneof _error_message {
        string error_message = 2;
    }
    
    reserved 1;
}

message ToggleMcpToolRequest {
    string server_id = 1;
    string tool_name = 2;
}

message ToggleMcpToolResponse {
    oneof _error_message {
        string error_message = 1;
    }
}

message GetMcpPromptRequest {
    string server_name = 1;
    string prompt_name = 2;
    map<string, string> arguments = 3;
}

message McpPromptMessageContent {
    oneof content {
        string text = 1;
        cortex_pb.McpResourceContent resource = 2;
    }
}

message McpPromptMessage {
    string role = 1;
    repeated McpPromptMessageContent content = 2;
}

message GetMcpPromptResponse {
    repeated McpPromptMessage messages = 1;
}

message GetAllWorkflowsRequest {
    
}

message GetAllWorkflowsResponse {
    repeated cortex_pb.WorkflowSpec workflows = 2;
    
    reserved 1;
}

message CopyBuiltinWorkflowToWorkspaceRequest {
    cortex_pb.WorkflowSpec workflow = 1;
    codeium_common_pb.Metadata metadata = 2;
}

message CopyBuiltinWorkflowToWorkspaceResponse {
    cortex_pb.WorkflowSpec workflow = 1;
}

message GetAllRulesRequest {
    
}

message GetAllRulesResponse {
    repeated cortex_pb.CortexMemory memories = 2;
    repeated cortex_pb.CortexSkill skills = 3;
    
    reserved 1;
}

message GetAllSkillsRequest {
    
}

message GetAllSkillsResponse {
    repeated cortex_pb.CortexSkill skills = 1;
}

message GetAllPlansRequest {
    
}

message GetAllPlansResponse {
    repeated PlanFileInfo plans = 1;
}

message PlanFileInfo {
    string path = 1;
    string title = 2;
    string description = 3;
}

message UpdateEnterpriseExperimentsFromUrlRequest {
    string portal_url = 1;
}

message UpdateEnterpriseExperimentsFromUrlResponse {
    bool success = 1;
    string error_message = 2;
    codeium_common_pb.ExperimentConfig experiment_config = 3;
}

message ImportFromCursorRequest {
    string source_path = 1;
}

message ImportFromCursorResponse {
    repeated string copied_files = 1;
    repeated string duplicate_files = 2;
    repeated string problem_files = 3;
}

message CreateCustomizationFileRequest {
    CustomizationFileType file_type = 1;
    string file_name = 2;
}

message CreateCustomizationFileResponse {
    string file_path = 1;
}

message SendActionToChatPanelRequest {
    string action_type = 1;
    repeated bytes payload = 2;
}

message SendActionToChatPanelResponse {
    
}

message RecordUserGrepRequest {
    string query = 1;
    repeated cortex_pb.GrepSearchResult results = 2;
    google.protobuf.Timestamp timestamp = 3;
}

message RecordUserGrepResponse {
    
}

message GetUnleashDataRequest {
    codeium_common_pb.Metadata metadata = 1;
    map<string, string> properties = 2;
}

message GetUnleashDataResponse {
    codeium_common_pb.UnleashContext context = 1;
    codeium_common_pb.ExperimentConfig experiment_config = 2;
}

message ShouldEnableUnleashRequest {
    
}

message ShouldEnableUnleashResponse {
    bool should_enable = 1;
}

message GetPatchAndCodeChangeRequest {
    string intent = 1;
    codeium_common_pb.GitRepoInfo base_state_repo_info = 2;
    string repo_path = 3;
}

message GetPatchAndCodeChangeResponse {
    string patch_string = 1;
    code_edit.code_edit_pb.CodeChangeWithContext code_change_with_context = 2;
}

message CreateTrajectoryShareRequest {
    codeium_common_pb.Metadata metadata = 1;
    cortex_pb.TrajectoryShareStatus share_status = 3;
    string cascade_id = 4;
    
    reserved 2;
}

message CreateTrajectoryShareResponse {
    string url = 1;
}

message GetAvailableCascadePluginsRequest {
    codeium_common_pb.Metadata metadata = 1;
    string os = 2;
    
    oneof _search_query {
        string search_query = 3;
    }
}

message GetAvailableCascadePluginsResponse {
    repeated cascade_plugins_pb.CascadePluginTemplate plugins = 1;
}

message InstallCascadePluginRequest {
    codeium_common_pb.Metadata metadata = 1;
    string plugin_id = 2;
}

message InstallCascadePluginResponse {
    int64 installation_count = 1;
}

message GetKnowledgeBaseItemsForTeamRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetKnowledgeBaseItemsForTeamResponse {
    repeated knowledge_base_pb.KnowledgeBaseItem items = 1;
}

message GetCascadePluginByIdRequest {
    codeium_common_pb.Metadata metadata = 1;
    string os = 2;
    string plugin_id = 3;
}

message GetCascadePluginByIdResponse {
    cascade_plugins_pb.CascadePluginTemplate plugin = 1;
}

message RecordLintsRequest {
    codeium_common_pb.Language current_language = 1;
    repeated codeium_common_pb.CodeDiagnostic lints = 2;
    google.protobuf.Timestamp timestamp = 3;
}

message RecordLintsResponse {
    
}

message StatUriRequest {
    string uri = 1;
}

message StatUriResponse {
    FileType file_type = 1;
}

message LogCascadeSessionRequest {
    codeium_common_pb.Metadata metadata = 1;
    repeated string workspace_paths = 2;
}

message LogCascadeSessionResponse {
    
}

message SyncExploreAgentRunRequest {
    codeium_common_pb.Metadata metadata = 1;
    string cascade_id = 2;
    string query_id = 3;
    int32 message_index = 4;
    repeated codeium_common_pb.TextOrScopeItem items = 5;
    bool is_complete = 7;
    
    oneof _title {
        string title = 8;
    }
    
    oneof _response {
        string response = 6;
    }
}

message SyncExploreAgentRunResponse {
    int32 message_index = 1;
}

message UserInputWithMetadata {
    string cascade_id = 1;
    string user_response = 2;
    repeated codeium_common_pb.TextOrScopeItem items = 3;
    google.protobuf.Timestamp timestamp = 4;
}

message GetCodeMapsForReposRequest {
    repeated string repo_paths = 1;
}

message GetCodeMapsForFileRequest {
    string file_path = 1;
}

message GetCodeMapsForReposResponse {
    repeated string code_maps = 1;
}

message GetCodeMapsForFileResponse {
    repeated string code_maps = 1;
}

message ShareCodeMapRequest {
    codeium_common_pb.Metadata metadata = 1;
    string code_map_json = 2;
    string file_name = 3;
}

message ShareCodeMapResponse {
    string share_url = 1;
}

message GetSharedCodeMapRequest {
    codeium_common_pb.Metadata metadata = 1;
    string code_map_id = 2;
    int32 time_since_install = 3;
}

message GetSharedCodeMapResponse {
    string code_map_data = 1;
}

message GetCodeMapSuggestionsRequest {
    codeium_common_pb.Metadata metadata = 1;
    repeated string navigation_history = 2;
}

message GetCodeMapSuggestionsResponse {
    repeated cortex_pb.CodeMapSuggestion suggestions = 1;
}

message UpdateCodeMapMetadataRequest {
    string id = 1;
    
    oneof _starred {
        bool starred = 2;
    }
    
    oneof _archived {
        bool archived = 3;
    }
}

message UpdateCodeMapMetadataResponse {
    
}

message SaveCodeMapFromJsonRequest {
    codeium_common_pb.Metadata metadata = 1;
    string code_map_json = 2;
}

message SaveCodeMapFromJsonResponse {
    string code_map_json = 1;
}

message CheckBugsRequest {
    codeium_common_pb.Metadata metadata = 1;
    string diff = 2;
    string repo_name = 3;
    string commit_hash = 4;
    string author_name = 5;
    string model = 6;
    string commit_message = 7;
    int32 lines_changed = 8;
    repeated string user_rules = 9;
    string method = 10;
    string symbol_context = 11;
    string check_type = 12;
    string base_ref = 13;
    string git_root = 14;
}

message CheckBugsResponse {
    repeated bug_checker_pb.Bug bugs = 1;
    string bug_check_id = 2;
    string method_used = 3;
    string model_used = 4 [deprecated = true];
    string playgrounds = 5;
    codeium_common_pb.Model model_id = 6;
    string agent_version = 7;
}

message GetLifeguardConfigRequest {
    codeium_common_pb.Metadata metadata = 1;
}

message GetLifeguardConfigResponse {
    codeium_common_pb.LifeguardConfig config = 1;
}

message HandleStreamingTerminalCommandRequest {
    codeium_common_pb.Metadata metadata = 1;
    string command_text = 2;
    codeium_common_pb.TerminalCommandData terminal_command_data = 3;
    repeated TerminalCommandConversationEntry conversation_history = 5;
    
    oneof _model {
        codeium_common_pb.Model model = 4;
    }
}

message TerminalCommandConversationEntry {
    string user_prompt = 1;
    string generated_command = 2;
    
    oneof _explanation {
        string explanation = 3;
    }
}

message HandleStreamingTerminalCommandResponse {
    string completion_id = 1;
    string command = 2;
    string explanation = 3;
}

message SpawnArenaModeMidConversationRequest {
    codeium_common_pb.Metadata metadata = 1;
    string cascade_id = 2;
    uint32 count = 3;
}

message SpawnArenaModeMidConversationResponse {
    repeated string cascade_ids = 1;
}

message ConvergeArenaCascadesRequest {
    codeium_common_pb.Metadata metadata = 1;
    string target_cascade_id = 2;
}

message ConvergeArenaCascadesResponse {
    repeated string converged_cascade_ids = 1;
}

message DismissCodeMapSuggestionRequest {
    string cascade_id = 1;
    string suggestion_id = 2;
}

message DismissCodeMapSuggestionResponse {
    
}

message OnEditRequest {
    codeium_common_pb.Document initial_document = 1;
    codeium_common_pb.Document final_document = 2;
    EditSource source = 3;
}

message OnEditResponse {
    
}

message GetSystemPromptAndToolsRequest {
    codeium_common_pb.Metadata metadata = 1;
    cortex_pb.CascadeConfig cascade_config = 2;
}

message GetSystemPromptAndToolsResponse {
    string system_prompt = 1;
    repeated chat_pb.ChatToolDefinition tool_definitions = 2;
}

message SubmitBugReportRequest {
    codeium_common_pb.Metadata metadata = 1;
    string description = 2;
    string bug_type = 3;
    string diagnostics_json = 4;
    bytes screenshot = 5;
    string tab_info = 6;
    string other = 7;
}

message SubmitBugReportResponse {
    string message_link = 1;
}

enum TabRequestSource {
    TAB_REQUEST_SOURCE_UNSPECIFIED = 0;
    TAB_REQUEST_SOURCE_SUPERCOMPLETE = 1;
    TAB_REQUEST_SOURCE_TAB_JUMP = 2;
}

enum IdeAction {
    IDE_ACTION_UNSPECIFIED = 0;
    IDE_ACTION_SAVE = 1;
    IDE_ACTION_SELECTION_CHANGED = 2;
    IDE_ACTION_VISIBLE_RANGES_CHANGED = 3;
    IDE_ACTION_ACTIVE_EDITOR_CHANGED = 4;
    IDE_ACTION_STARTUP = 5;
}

enum CodeiumState {
    CODEIUM_STATE_UNSPECIFIED = 0;
    CODEIUM_STATE_INACTIVE = 1;
    CODEIUM_STATE_PROCESSING = 2;
    CODEIUM_STATE_SUCCESS = 3;
    CODEIUM_STATE_WARNING = 4;
    CODEIUM_STATE_ERROR = 5;
}

enum CompletionPartType {
    COMPLETION_PART_TYPE_UNSPECIFIED = 0;
    COMPLETION_PART_TYPE_INLINE = 1;
    COMPLETION_PART_TYPE_BLOCK = 2;
    COMPLETION_PART_TYPE_INLINE_MASK = 3;
}

enum ContextSuggestionSource {
    CONTEXT_SUGGESTION_SOURCE_UNSPECIFIED = 0;
    CONTEXT_SUGGESTION_SOURCE_COMMIT_HISTORY = 1;
    CONTEXT_SUGGESTION_SOURCE_CURRENT_PLAN = 2;
}

enum UnifiedDiffChangeType {
    UNIFIED_DIFF_CHANGE_TYPE_UNSPECIFIED = 0;
    UNIFIED_DIFF_CHANGE_TYPE_INSERT = 1;
    UNIFIED_DIFF_CHANGE_TYPE_DELETE = 2;
    UNIFIED_DIFF_CHANGE_TYPE_UNCHANGED = 3;
}

enum CodeRevertActionType {
    CODE_REVERT_ACTION_TYPE_UNSPECIFIED = 0;
    CODE_REVERT_ACTION_TYPE_MODIFY = 1;
    CODE_REVERT_ACTION_TYPE_CREATE = 2;
    CODE_REVERT_ACTION_TYPE_DELETE = 3;
}

enum ResolveWorktreeChangesMode {
    RESOLVE_WORKTREE_CHANGES_MODE_UNSPECIFIED = 0;
    RESOLVE_WORKTREE_CHANGES_MODE_MERGE = 1;
    RESOLVE_WORKTREE_CHANGES_MODE_STASH = 2;
}

enum CustomizationFileType {
    CUSTOMIZATION_FILE_TYPE_UNSPECIFIED = 0;
    CUSTOMIZATION_FILE_TYPE_RULES = 1;
    CUSTOMIZATION_FILE_TYPE_WORKFLOWS = 2;
    CUSTOMIZATION_FILE_TYPE_GLOBAL_WORKFLOWS = 3;
    CUSTOMIZATION_FILE_TYPE_SKILLS = 4;
    CUSTOMIZATION_FILE_TYPE_GLOBAL_SKILLS = 5;
}

enum FileType {
    FILE_TYPE_UNSPECIFIED = 0;
    FILE_TYPE_FILE = 1;
    FILE_TYPE_DIRECTORY = 2;
    FILE_TYPE_SYMLINK = 3;
}

enum EditSource {
    EDIT_SOURCE_UNSPECIFIED = 0;
    EDIT_SOURCE_USER_TYPED = 1;
    EDIT_SOURCE_USER_PASTED = 2;
    EDIT_SOURCE_USER_UNDO = 3;
    EDIT_SOURCE_USER_REDO = 4;
    EDIT_SOURCE_USER_CUT = 5;
    EDIT_SOURCE_USER_DRAG_DROP = 6;
    EDIT_SOURCE_USER_TAB = 7;
    EDIT_SOURCE_USER_REFACTORING = 8;
    EDIT_SOURCE_USER_FORMATTING = 9;
    EDIT_SOURCE_CASCADE_GENERATED = 10;
    EDIT_SOURCE_DISK_CHANGE = 11;
    EDIT_SOURCE_USER_OTHER = 12;
}
