syntax = "proto3"; package aiserver.v1; enum ClientSideToolV2 { // aiserver.v1.ClientSideToolV2 CLIENT_SIDE_TOOL_V2_UNSPECIFIED = 0; CLIENT_SIDE_TOOL_V2_READ_SEMSEARCH_FILES = 1; CLIENT_SIDE_TOOL_V2_READ_FILE_FOR_IMPORTS = 2; CLIENT_SIDE_TOOL_V2_RIPGREP_SEARCH = 3; CLIENT_SIDE_TOOL_V2_RUN_TERMINAL_COMMAND = 4; CLIENT_SIDE_TOOL_V2_READ_FILE = 5; CLIENT_SIDE_TOOL_V2_LIST_DIR = 6; CLIENT_SIDE_TOOL_V2_EDIT_FILE = 7; CLIENT_SIDE_TOOL_V2_FILE_SEARCH = 8; CLIENT_SIDE_TOOL_V2_SEMANTIC_SEARCH_FULL = 9; CLIENT_SIDE_TOOL_V2_CREATE_FILE = 10; CLIENT_SIDE_TOOL_V2_DELETE_FILE = 11; } enum EmbeddingModel { // aiserver.v1.EmbeddingModel EMBEDDING_MODEL_UNSPECIFIED = 0; EMBEDDING_MODEL_VOYAGE_CODE_2 = 1; EMBEDDING_MODEL_TEXT_EMBEDDINGS_LARGE_3 = 2; EMBEDDING_MODEL_QWEN_1_5B_CUSTOM = 3; } enum ChunkType { // aiserver.v1.ChunkType CHUNK_TYPE_UNSPECIFIED = 0; CHUNK_TYPE_CODEBASE = 1; CHUNK_TYPE_LONG_FILE = 2; CHUNK_TYPE_DOCS = 3; } enum FastApplySource { // aiserver.v1.FastApplySource FAST_APPLY_SOURCE_UNSPECIFIED = 0; FAST_APPLY_SOURCE_COMPOSER = 1; FAST_APPLY_SOURCE_CLICKED_APPLY = 2; FAST_APPLY_SOURCE_CACHED_APPLY = 3; } enum BuiltinTool { // aiserver.v1.BuiltinTool BUILTIN_TOOL_UNSPECIFIED = 0; BUILTIN_TOOL_SEARCH = 1; BUILTIN_TOOL_READ_CHUNK = 2; BUILTIN_TOOL_GOTODEF = 3; BUILTIN_TOOL_EDIT = 4; BUILTIN_TOOL_UNDO_EDIT = 5; BUILTIN_TOOL_END = 6; BUILTIN_TOOL_NEW_FILE = 7; BUILTIN_TOOL_ADD_TEST = 8; BUILTIN_TOOL_RUN_TEST = 9; BUILTIN_TOOL_DELETE_TEST = 10; BUILTIN_TOOL_SAVE_FILE = 11; BUILTIN_TOOL_GET_TESTS = 12; BUILTIN_TOOL_GET_SYMBOLS = 13; BUILTIN_TOOL_SEMANTIC_SEARCH = 14; BUILTIN_TOOL_GET_PROJECT_STRUCTURE = 15; BUILTIN_TOOL_CREATE_RM_FILES = 16; BUILTIN_TOOL_RUN_TERMINAL_COMMANDS = 17; BUILTIN_TOOL_NEW_EDIT = 18; BUILTIN_TOOL_READ_WITH_LINTER = 19; } enum FeatureType { // aiserver.v1.FeatureType FEATURE_TYPE_UNSPECIFIED = 0; FEATURE_TYPE_EDIT = 1; FEATURE_TYPE_GENERATE = 2; FEATURE_TYPE_INLINE_LONG_COMPLETION = 3; } enum TaskStatus { // aiserver.v1.TaskStatus TASK_STATUS_UNSPECIFIED = 0; TASK_STATUS_RUNNING = 1; TASK_STATUS_PAUSED = 2; TASK_STATUS_DONE = 3; TASK_STATUS_NOT_STARTED = 4; } enum RerankerAlgorithm { // aiserver.v1.RerankerAlgorithm RERANKER_ALGORITHM_UNSPECIFIED = 0; RERANKER_ALGORITHM_LULEA = 1; RERANKER_ALGORITHM_UMEA = 2; RERANKER_ALGORITHM_NONE = 3; RERANKER_ALGORITHM_LLAMA = 4; RERANKER_ALGORITHM_STARCODER_V1 = 5; RERANKER_ALGORITHM_GPT_3_5_LOGPROBS = 6; RERANKER_ALGORITHM_LULEA_HAIKU = 7; RERANKER_ALGORITHM_COHERE = 8; RERANKER_ALGORITHM_VOYAGE = 9; RERANKER_ALGORITHM_VOYAGE_EMBEDS = 10; RERANKER_ALGORITHM_IDENTITY = 11; RERANKER_ALGORITHM_ADA_EMBEDS = 12; } enum RechunkerChoice { // aiserver.v1.RechunkerChoice RECHUNKER_CHOICE_UNSPECIFIED = 0; RECHUNKER_CHOICE_IDENTITY = 1; RECHUNKER_CHOICE_600_TOKS = 2; RECHUNKER_CHOICE_2400_TOKS = 3; RECHUNKER_CHOICE_4000_TOKS = 4; } enum LintGenerator { // aiserver.v1.LintGenerator LINT_GENERATOR_UNSPECIFIED = 0; LINT_GENERATOR_NAIVE = 1; LINT_GENERATOR_COMMENT_PIPELINE = 2; LINT_GENERATOR_SIMPLE_BUG = 3; LINT_GENERATOR_SIMPLE_LINT_RULES = 4; } enum LintDiscriminator { // aiserver.v1.LintDiscriminator LINT_DISCRIMINATOR_UNSPECIFIED = 0; LINT_DISCRIMINATOR_SPECIFIC_RULES = 1; LINT_DISCRIMINATOR_COMPILE_ERRORS = 2; LINT_DISCRIMINATOR_CHANGE_BEHAVIOR = 3; LINT_DISCRIMINATOR_RELEVANCE = 4; LINT_DISCRIMINATOR_USER_AWARENESS = 5; LINT_DISCRIMINATOR_CORRECTNESS = 6; LINT_DISCRIMINATOR_CHUNKING = 7; LINT_DISCRIMINATOR_TYPO = 8; LINT_DISCRIMINATOR_CONFIDENCE = 9; LINT_DISCRIMINATOR_DISMISSED_BUGS = 10; } enum CppSource { // aiserver.v1.CppSource CPP_SOURCE_UNSPECIFIED = 0; CPP_SOURCE_LINE_CHANGE = 1; CPP_SOURCE_TYPING = 2; CPP_SOURCE_OPTION_HOLD = 3; CPP_SOURCE_LINTER_ERRORS = 4; CPP_SOURCE_PARAMETER_HINTS = 5; CPP_SOURCE_CURSOR_PREDICTION = 6; CPP_SOURCE_MANUAL_TRIGGER = 7; CPP_SOURCE_EDITOR_CHANGE = 8; } enum ChunkingStrategy { // aiserver.v1.ChunkingStrategy CHUNKING_STRATEGY_UNSPECIFIED = 0; CHUNKING_STRATEGY_DEFAULT = 1; } message ErrorDetails { // aiserver.v1.ErrorDetails enum Error { // aiserver.v1.ErrorDetails.Error ERROR_UNSPECIFIED = 0; ERROR_BAD_API_KEY = 1; ERROR_NOT_LOGGED_IN = 2; ERROR_INVALID_AUTH_ID = 3; ERROR_NOT_HIGH_ENOUGH_PERMISSIONS = 4; ERROR_BAD_MODEL_NAME = 5; ERROR_USER_NOT_FOUND = 6; ERROR_FREE_USER_RATE_LIMIT_EXCEEDED = 7; ERROR_PRO_USER_RATE_LIMIT_EXCEEDED = 8; ERROR_FREE_USER_USAGE_LIMIT = 9; ERROR_PRO_USER_USAGE_LIMIT = 10; ERROR_AUTH_TOKEN_NOT_FOUND = 11; ERROR_AUTH_TOKEN_EXPIRED = 12; ERROR_OPENAI = 13; ERROR_OPENAI_RATE_LIMIT_EXCEEDED = 14; ERROR_OPENAI_ACCOUNT_LIMIT_EXCEEDED = 15; ERROR_TASK_UUID_NOT_FOUND = 16; ERROR_TASK_NO_PERMISSIONS = 17; ERROR_AGENT_REQUIRES_LOGIN = 18; ERROR_AGENT_ENGINE_NOT_FOUND = 19; ERROR_MAX_TOKENS = 20; ERROR_USER_ABORTED_REQUEST = 21; ERROR_GENERIC_RATE_LIMIT_EXCEEDED = 22; ERROR_PRO_USER_ONLY = 23; ERROR_API_KEY_NOT_SUPPORTED = 24; ERROR_SLASH_EDIT_FILE_TOO_LONG = 26; ERROR_FILE_UNSUPPORTED = 27; ERROR_GPT_4_VISION_PREVIEW_RATE_LIMIT = 28; ERROR_CUSTOM_MESSAGE = 29; ERROR_OUTDATED_CLIENT = 30; ERROR_CLAUDE_IMAGE_TOO_LARGE = 31; ERROR_GITGRAPH_NOT_FOUND = 32; ERROR_FILE_NOT_FOUND = 33; ERROR_API_KEY_RATE_LIMIT = 34; ERROR_DEBOUNCED = 35; ERROR_BAD_REQUEST = 36; ERROR_REPOSITORY_SERVICE_REPOSITORY_IS_NOT_INITIALIZED = 37; ERROR_UNAUTHORIZED = 38; ERROR_NOT_FOUND = 39; ERROR_DEPRECATED = 40; ERROR_RESOURCE_EXHAUSTED = 41; } Error error = 1; CustomErrorDetails details = 2; optional bool is_expected = 3; } message CustomErrorDetails { // aiserver.v1.CustomErrorDetails string title = 1; string detail = 2; optional bool allow_command_links_potentially_unsafe_please_only_use_for_handwritten_trusted_markdown = 3; optional bool is_retryable = 4; optional bool show_request_id = 5; } message GetChatRequest { // aiserver.v1.GetChatRequest CurrentFileInfo current_file = 1; repeated ConversationMessage conversation = 2; repeated RepositoryInfo repositories = 3; ExplicitContext explicit_context = 4; optional string workspace_root_path = 5; repeated CodeBlock code_blocks = 6; ModelDetails model_details = 7; repeated string documentation_identifiers = 8; string request_id = 9; LinterErrors linter_errors = 10; optional string summary = 11; optional int32 summary_up_until_index = 12; optional bool allow_long_file_scan = 13; optional bool is_bash = 14; string conversation_id = 15; optional bool can_handle_filenames_after_language_ids = 16; optional string use_web = 17; repeated ChatQuote quotes = 18; optional DebugInfo debug_info = 19; optional string workspace_id = 20; repeated ChatExternalLink external_links = 21; repeated CommitNote commit_notes = 23; optional bool long_context_mode = 22; optional bool is_eval = 24; optional int32 desired_max_tokens = 26; ContextAST context_ast = 25; optional bool is_composer = 27; optional bool runnable_code_blocks = 28; optional bool should_cache = 29; } message CurrentFileInfo { // aiserver.v1.CurrentFileInfo message NotebookCell { // aiserver.v1.CurrentFileInfo.NotebookCell } string relative_workspace_path = 1; string contents = 2; bool rely_on_filesync = 18; optional string sha_256_hash = 17; repeated NotebookCell cells = 16; repeated BM25Chunk top_chunks = 10; int32 contents_start_at_line = 9; CursorPosition cursor_position = 3; repeated DataframeInfo dataframes = 4; int32 total_number_of_lines = 8; string language_id = 5; CursorRange selection = 6; optional int32 alternative_version_id = 11; repeated Diagnostic diagnostics = 7; optional int32 file_version = 14; repeated int32 cell_start_lines = 15; string workspace_root_path = 19; } message BM25Chunk { // aiserver.v1.BM25Chunk string content = 1; SimplestRange range = 2; int32 score = 3; string relative_path = 4; } message SimplestRange { // aiserver.v1.SimplestRange int32 start_line = 1; int32 end_line_inclusive = 2; } message CursorPosition { // aiserver.v1.CursorPosition int32 line = 1; int32 column = 2; } message DataframeInfo { // aiserver.v1.DataframeInfo message Column { // aiserver.v1.DataframeInfo.Column string key = 1; string type = 2; } string name = 1; string shape = 2; int32 data_dimensionality = 3; repeated Column columns = 6; int32 row_count = 7; string index_column = 8; } message CursorRange { // aiserver.v1.CursorRange CursorPosition start_position = 1; CursorPosition end_position = 2; } message Diagnostic { // aiserver.v1.Diagnostic enum DiagnosticSeverity { // aiserver.v1.Diagnostic.DiagnosticSeverity DIAGNOSTIC_SEVERITY_UNSPECIFIED = 0; DIAGNOSTIC_SEVERITY_ERROR = 1; DIAGNOSTIC_SEVERITY_WARNING = 2; DIAGNOSTIC_SEVERITY_INFORMATION = 3; DIAGNOSTIC_SEVERITY_HINT = 4; } message RelatedInformation { // aiserver.v1.Diagnostic.RelatedInformation string message = 1; CursorRange range = 2; } string message = 1; CursorRange range = 2; DiagnosticSeverity severity = 3; repeated RelatedInformation related_information = 4; } message ConversationMessage { // aiserver.v1.ConversationMessage enum MessageType { // aiserver.v1.ConversationMessage.MessageType MESSAGE_TYPE_UNSPECIFIED = 0; MESSAGE_TYPE_HUMAN = 1; MESSAGE_TYPE_AI = 2; } message CodeChunk { // aiserver.v1.ConversationMessage.CodeChunk enum SummarizationStrategy { // aiserver.v1.ConversationMessage.CodeChunk.SummarizationStrategy SUMMARIZATION_STRATEGY_NONE_UNSPECIFIED = 0; SUMMARIZATION_STRATEGY_SUMMARIZED = 1; SUMMARIZATION_STRATEGY_EMBEDDED = 2; } enum Intent { // aiserver.v1.ConversationMessage.CodeChunk.Intent INTENT_UNSPECIFIED = 0; INTENT_COMPOSER_FILE = 1; INTENT_COMPRESSED_COMPOSER_FILE = 2; INTENT_RECENTLY_VIEWED_FILE = 3; INTENT_OUTLINE = 4; INTENT_MENTIONED_FILE = 5; } string relative_workspace_path = 1; int32 start_line_number = 2; repeated string lines = 3; optional SummarizationStrategy summarization_strategy = 4; string language_identifier = 5; optional Intent intent = 6; optional bool is_final_version = 7; optional bool is_first_version = 8; optional bool contents_are_missing = 9; } message ApproximateLintError { // aiserver.v1.ConversationMessage.ApproximateLintError string message = 1; string value = 2; int32 start_line = 3; int32 end_line = 4; int32 start_column = 5; int32 end_column = 6; } message Lints { // aiserver.v1.ConversationMessage.Lints GetLintsForChangeResponse lints = 1; string chat_codeblock_model_value = 2; } message ToolResult { // aiserver.v1.ConversationMessage.ToolResult message CodeChunk { // aiserver.v1.ConversationMessage.CodeChunk enum SummarizationStrategy { // aiserver.v1.ConversationMessage.CodeChunk.SummarizationStrategy SUMMARIZATION_STRATEGY_NONE_UNSPECIFIED = 0; SUMMARIZATION_STRATEGY_SUMMARIZED = 1; SUMMARIZATION_STRATEGY_EMBEDDED = 2; } enum Intent { // aiserver.v1.ConversationMessage.CodeChunk.Intent INTENT_UNSPECIFIED = 0; INTENT_COMPOSER_FILE = 1; INTENT_COMPRESSED_COMPOSER_FILE = 2; INTENT_RECENTLY_VIEWED_FILE = 3; INTENT_OUTLINE = 4; INTENT_MENTIONED_FILE = 5; } string relative_workspace_path = 1; int32 start_line_number = 2; repeated string lines = 3; optional SummarizationStrategy summarization_strategy = 4; string language_identifier = 5; optional Intent intent = 6; optional bool is_final_version = 7; optional bool is_first_version = 8; optional bool contents_are_missing = 9; } string tool_call_id = 1; string tool_name = 2; uint32 tool_index = 3; string args = 4; string raw_args = 5; repeated CodeChunk attached_code_chunks = 6; optional string content = 7; ClientSideToolV2Result result = 8; optional ToolResultError error = 9; } message NotepadContext { // aiserver.v1.ConversationMessage.NotepadContext message CodeChunk { // aiserver.v1.ConversationMessage.CodeChunk enum SummarizationStrategy { // aiserver.v1.ConversationMessage.CodeChunk.SummarizationStrategy SUMMARIZATION_STRATEGY_NONE_UNSPECIFIED = 0; SUMMARIZATION_STRATEGY_SUMMARIZED = 1; SUMMARIZATION_STRATEGY_EMBEDDED = 2; } enum Intent { // aiserver.v1.ConversationMessage.CodeChunk.Intent INTENT_UNSPECIFIED = 0; INTENT_COMPOSER_FILE = 1; INTENT_COMPRESSED_COMPOSER_FILE = 2; INTENT_RECENTLY_VIEWED_FILE = 3; INTENT_OUTLINE = 4; INTENT_MENTIONED_FILE = 5; } string relative_workspace_path = 1; int32 start_line_number = 2; repeated string lines = 3; optional SummarizationStrategy summarization_strategy = 4; string language_identifier = 5; optional Intent intent = 6; optional bool is_final_version = 7; optional bool is_first_version = 8; optional bool contents_are_missing = 9; } string name = 1; string text = 2; repeated CodeChunk attached_code_chunks = 3; repeated string attached_folders = 4; repeated Commit commits = 5; repeated PullRequest pull_requests = 6; repeated GitDiff git_diffs = 7; repeated ImageProto images = 8; } message EditTrailContext { // aiserver.v1.ConversationMessage.EditTrailContext message EditLocation { // aiserver.v1.ConversationMessage.EditLocation string relative_workspace_path = 1; SimplestRange range = 3; SimplestRange initial_range = 4; string context_lines = 5; string text = 6; SimplestRange text_range = 7; } string unique_id = 1; repeated EditLocation edit_trail_sorted = 2; } message RecentLocation { // aiserver.v1.ConversationMessage.RecentLocation string relative_workspace_path = 1; int32 line_number = 2; } string text = 1; MessageType type = 2; repeated CodeChunk attached_code_chunks = 3; repeated CodeBlock codebase_context_chunks = 4; repeated Commit commits = 5; repeated PullRequest pull_requests = 6; repeated GitDiff git_diffs = 7; repeated SimpleFileDiff assistant_suggested_diffs = 8; repeated InterpreterResult interpreter_results = 9; repeated ImageProto images = 10; repeated string attached_folders = 11; repeated ApproximateLintError approximate_lint_errors = 12; string bubble_id = 13; optional string server_bubble_id = 32; repeated FolderInfo attached_folders_new = 14; repeated Lints lints = 15; repeated UserResponseToSuggestedCodeBlock user_responses_to_suggested_code_blocks = 16; repeated string relevant_files = 17; repeated ToolResult tool_results = 18; repeated NotepadContext notepads = 19; optional bool is_capability_iteration = 20; repeated ComposerCapabilityRequest capabilities = 21; repeated EditTrailContext edit_trail_contexts = 22; repeated SuggestedCodeBlock suggested_code_blocks = 23; repeated RedDiff diffs_for_compressing_files = 24; repeated LinterErrorsWithoutFileContents multi_file_linter_errors = 25; repeated DiffHistoryData diff_histories = 26; repeated CodeChunk recently_viewed_files = 27; repeated RecentLocation recent_locations_history = 28; bool is_agentic = 29; repeated ComposerFileDiffHistory file_diff_trajectories = 30; optional ConversationSummary conversation_summary = 31; } message CodeBlock { // aiserver.v1.CodeBlock message Signatures { // aiserver.v1.CodeBlock.Signatures repeated CursorRange ranges = 1; } string relative_workspace_path = 1; optional string file_contents = 2; CursorRange range = 3; string contents = 4; Signatures signatures = 5; optional string override_contents = 6; optional string original_contents = 7; repeated DetailedLine detailed_lines = 8; } message DetailedLine { // aiserver.v1.DetailedLine string text = 1; float line_number = 2; bool is_signature = 3; } message Commit { // aiserver.v1.Commit string sha = 1; string message = 2; string description = 3; repeated FileDiff diff = 4; string author = 5; string date = 6; } message FileDiff { // aiserver.v1.FileDiff message Chunk { // aiserver.v1.FileDiff.Chunk string content = 1; repeated string lines = 2; int32 old_start = 3; int32 old_lines = 4; int32 new_start = 5; int32 new_lines = 6; } string from = 1; string to = 2; repeated Chunk chunks = 3; } message PullRequest { // aiserver.v1.PullRequest string title = 1; string body = 2; repeated FileDiff diff = 3; } message GitDiff { // aiserver.v1.GitDiff enum DiffType { // aiserver.v1.GitDiff.DiffType DIFF_TYPE_UNSPECIFIED = 0; DIFF_TYPE_DIFF_TO_HEAD = 1; DIFF_TYPE_DIFF_FROM_BRANCH_TO_MAIN = 2; } repeated FileDiff diffs = 1; DiffType diff_type = 2; } message SimpleFileDiff { // aiserver.v1.SimpleFileDiff message Chunk { // aiserver.v1.SimpleFileDiff.Chunk repeated string old_lines = 1; repeated string new_lines = 2; LineRange old_range = 3; LineRange new_range = 4; } string relative_workspace_path = 1; repeated Chunk chunks = 3; } message LineRange { // aiserver.v1.LineRange int32 start_line_number = 1; int32 end_line_number_inclusive = 2; } message InterpreterResult { // aiserver.v1.InterpreterResult string output = 1; bool success = 2; } message ImageProto { // aiserver.v1.ImageProto message Dimension { // aiserver.v1.ImageProto.Dimension int32 width = 1; int32 height = 2; } bytes data = 1; Dimension dimension = 2; } message FolderInfo { // aiserver.v1.FolderInfo string relative_path = 1; repeated FolderFileInfo files = 2; } message FolderFileInfo { // aiserver.v1.FolderFileInfo string relative_path = 1; string content = 2; bool truncated = 3; float score = 4; } message GetLintsForChangeResponse { // aiserver.v1.GetLintsForChangeResponse message Lint { // aiserver.v1.GetLintsForChangeResponse.Lint message QuickFix { // aiserver.v1.GetLintsForChangeResponse.Lint.QuickFix message Edit { // aiserver.v1.GetLintsForChangeResponse.Lint.QuickFix.Edit string relative_workspace_path = 1; string text = 2; int32 start_line_number_one_indexed = 3; int32 start_column_one_indexed = 4; int32 end_line_number_inclusive_one_indexed = 5; int32 end_column_one_indexed = 6; } string message = 1; string kind = 2; bool is_preferred = 3; repeated Edit edits = 4; } string message = 1; string severity = 2; string relative_workspace_path = 3; int32 start_line_number_one_indexed = 4; int32 start_column_one_indexed = 5; int32 end_line_number_inclusive_one_indexed = 6; int32 end_column_one_indexed = 7; repeated QuickFix quick_fixes = 9; } repeated Lint lints = 1; } message UserResponseToSuggestedCodeBlock { // aiserver.v1.UserResponseToSuggestedCodeBlock enum UserResponseType { // aiserver.v1.UserResponseToSuggestedCodeBlock.UserResponseType USER_RESPONSE_TYPE_UNSPECIFIED = 0; USER_RESPONSE_TYPE_ACCEPT = 1; USER_RESPONSE_TYPE_REJECT = 2; USER_RESPONSE_TYPE_MODIFY = 3; } UserResponseType user_response_type = 1; string file_path = 2; optional FileDiff user_modifications_to_suggested_code_blocks = 3; } message ClientSideToolV2Result { // aiserver.v1.ClientSideToolV2Result ClientSideToolV2 tool = 1; ReadSemsearchFilesResult read_semsearch_files_result = 2; ReadFileForImportsResult read_file_for_imports_result = 3; RipgrepSearchResult ripgrep_search_result = 4; RunTerminalCommandResult run_terminal_command_result = 5; ReadFileResult read_file_result = 6; ListDirResult list_dir_result = 9; EditFileResult edit_file_result = 10; ToolCallFileSearchResult file_search_result = 11; SemanticSearchFullResult semantic_search_full_result = 18; CreateFileResult create_file_result = 19; DeleteFileResult delete_file_result = 20; optional ToolResultError error = 8; } message ReadSemsearchFilesResult { // aiserver.v1.ReadSemsearchFilesResult repeated CodeResult code_results = 1; } message CodeResult { // aiserver.v1.CodeResult CodeBlock code_block = 1; float score = 2; } message ReadFileForImportsResult { // aiserver.v1.ReadFileForImportsResult string contents = 1; } message RipgrepSearchResult { // aiserver.v1.RipgrepSearchResult RipgrepSearchResultInternal internal = 1; } message RipgrepSearchResultInternal { // aiserver.v1.RipgrepSearchResultInternal message IFileMatch { // aiserver.v1.RipgrepSearchResultInternal.IFileMatch message ITextSearchResult { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchResult message ITextSearchMatch { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchMatch message ISearchRangeSetPairing { // aiserver.v1.RipgrepSearchResultInternal.ISearchRangeSetPairing message ISearchRange { // aiserver.v1.RipgrepSearchResultInternal.ISearchRange int32 start_line_number = 1; int32 start_column = 2; int32 end_line_number = 3; int32 end_column = 4; } ISearchRange source = 1; ISearchRange preview = 2; } optional string uri = 1; repeated ISearchRangeSetPairing range_locations = 2; string preview_text = 3; optional int32 webview_index = 4; optional string cell_fragment = 5; } message ITextSearchContext { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchContext optional string uri = 1; string text = 2; int32 line_number = 3; } ITextSearchMatch match = 1; ITextSearchContext context = 2; } string resource = 1; repeated ITextSearchResult results = 2; } enum SearchCompletionExitCode { // aiserver.v1.RipgrepSearchResultInternal.SearchCompletionExitCode SEARCH_COMPLETION_EXIT_CODE_UNSPECIFIED = 0; SEARCH_COMPLETION_EXIT_CODE_NORMAL = 1; SEARCH_COMPLETION_EXIT_CODE_NEW_SEARCH_STARTED = 2; } message ITextSearchCompleteMessage { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchCompleteMessage enum TextSearchCompleteMessageType { // aiserver.v1.RipgrepSearchResultInternal.TextSearchCompleteMessageType TEXT_SEARCH_COMPLETE_MESSAGE_TYPE_UNSPECIFIED = 0; TEXT_SEARCH_COMPLETE_MESSAGE_TYPE_INFORMATION = 1; TEXT_SEARCH_COMPLETE_MESSAGE_TYPE_WARNING = 2; } string text = 1; TextSearchCompleteMessageType type = 2; optional bool trusted = 3; } message IFileSearchStats { // aiserver.v1.RipgrepSearchResultInternal.IFileSearchStats message ISearchEngineStats { // aiserver.v1.RipgrepSearchResultInternal.ISearchEngineStats int32 file_walk_time = 1; int32 directories_walked = 2; int32 files_walked = 3; int32 cmd_time = 4; optional int32 cmd_result_count = 5; } message ICachedSearchStats { // aiserver.v1.RipgrepSearchResultInternal.ICachedSearchStats bool cache_was_resolved = 1; int32 cache_lookup_time = 2; int32 cache_filter_time = 3; int32 cache_entry_count = 4; } message IFileSearchProviderStats { // aiserver.v1.RipgrepSearchResultInternal.IFileSearchProviderStats int32 provider_time = 1; int32 post_process_time = 2; } enum FileSearchProviderType { // aiserver.v1.RipgrepSearchResultInternal.IFileSearchStats.FileSearchProviderType FILE_SEARCH_PROVIDER_TYPE_UNSPECIFIED = 0; FILE_SEARCH_PROVIDER_TYPE_FILE_SEARCH_PROVIDER = 1; FILE_SEARCH_PROVIDER_TYPE_SEARCH_PROCESS = 2; } bool from_cache = 1; ISearchEngineStats search_engine_stats = 2; ICachedSearchStats cached_search_stats = 3; IFileSearchProviderStats file_search_provider_stats = 4; int32 result_count = 5; FileSearchProviderType type = 6; optional int32 sorting_time = 7; } message ITextSearchStats { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchStats enum TextSearchProviderType { // aiserver.v1.RipgrepSearchResultInternal.ITextSearchStats.TextSearchProviderType TEXT_SEARCH_PROVIDER_TYPE_UNSPECIFIED = 0; TEXT_SEARCH_PROVIDER_TYPE_TEXT_SEARCH_PROVIDER = 1; TEXT_SEARCH_PROVIDER_TYPE_SEARCH_PROCESS = 2; TEXT_SEARCH_PROVIDER_TYPE_AI_TEXT_SEARCH_PROVIDER = 3; } TextSearchProviderType type = 1; } repeated IFileMatch results = 1; optional SearchCompletionExitCode exit = 2; optional bool limit_hit = 3; repeated ITextSearchCompleteMessage messages = 4; IFileSearchStats file_search_stats = 5; ITextSearchStats text_search_stats = 6; } message RunTerminalCommandResult { // aiserver.v1.RunTerminalCommandResult string output = 1; int32 exit_code = 2; optional bool rejected = 3; bool popped_out_into_background = 4; } message ReadFileResult { // aiserver.v1.ReadFileResult string contents = 1; bool did_downgrade_to_line_range = 2; bool did_shorten_line_range = 3; bool did_set_default_line_range = 4; optional string full_file_contents = 5; optional string outline = 6; optional int32 start_line_one_indexed = 7; optional int32 end_line_one_indexed_inclusive = 8; string relative_workspace_path = 9; bool did_shorten_char_range = 10; } message ListDirResult { // aiserver.v1.ListDirResult message File { // aiserver.v1.ListDirResult.File message Timestamp { // google.protobuf.Timestamp int64 seconds = 1; int32 nanos = 2; } string name = 1; bool is_directory = 2; optional int64 size = 3; optional Timestamp last_modified = 4; optional int32 num_children = 5; optional int32 num_lines = 6; } repeated File files = 1; string directory_relative_workspace_path = 2; } message EditFileResult { // aiserver.v1.EditFileResult message FileDiff { // aiserver.v1.EditFileResult.FileDiff message ChunkDiff { // aiserver.v1.EditFileResult.FileDiff.ChunkDiff string diff_string = 1; int32 old_start = 2; int32 new_start = 3; int32 old_lines = 4; int32 new_lines = 5; int32 lines_removed = 6; int32 lines_added = 7; } enum Editor { // aiserver.v1.EditFileResult.FileDiff.Editor EDITOR_UNSPECIFIED = 0; EDITOR_AI = 1; EDITOR_HUMAN = 2; } repeated ChunkDiff chunks = 1; Editor editor = 2; bool hit_timeout = 3; } FileDiff diff = 1; bool is_applied = 2; bool apply_failed = 3; } message ToolCallFileSearchResult { // aiserver.v1.ToolCallFileSearchResult message File { // aiserver.v1.ToolCallFileSearchResult.File string uri = 1; } repeated File files = 1; optional bool limit_hit = 2; int32 num_results = 3; } message SemanticSearchFullResult { // aiserver.v1.SemanticSearchFullResult repeated CodeResult code_results = 1; } message CreateFileResult { // aiserver.v1.CreateFileResult bool file_created_successfully = 1; bool file_already_exists = 2; } message DeleteFileResult { // aiserver.v1.DeleteFileResult bool rejected = 1; bool file_non_existent = 2; bool file_deleted_successfully = 3; } message ToolResultError { // aiserver.v1.ToolResultError string client_visible_error_message = 1; string model_visible_error_message = 2; } message ComposerCapabilityRequest { // aiserver.v1.ComposerCapabilityRequest enum ComposerCapabilityType { // aiserver.v1.ComposerCapabilityRequest.ComposerCapabilityType COMPOSER_CAPABILITY_TYPE_UNSPECIFIED = 0; COMPOSER_CAPABILITY_TYPE_LOOP_ON_LINTS = 1; COMPOSER_CAPABILITY_TYPE_LOOP_ON_TESTS = 2; COMPOSER_CAPABILITY_TYPE_MEGA_PLANNER = 3; COMPOSER_CAPABILITY_TYPE_LOOP_ON_COMMAND = 4; COMPOSER_CAPABILITY_TYPE_TOOL_CALL = 5; COMPOSER_CAPABILITY_TYPE_DIFF_REVIEW = 6; COMPOSER_CAPABILITY_TYPE_CONTEXT_PICKING = 7; COMPOSER_CAPABILITY_TYPE_EDIT_TRAIL = 8; COMPOSER_CAPABILITY_TYPE_AUTO_CONTEXT = 9; COMPOSER_CAPABILITY_TYPE_CONTEXT_PLANNER = 10; COMPOSER_CAPABILITY_TYPE_DIFF_HISTORY = 11; COMPOSER_CAPABILITY_TYPE_REMEMBER_THIS = 12; COMPOSER_CAPABILITY_TYPE_DECOMPOSER = 13; COMPOSER_CAPABILITY_TYPE_USES_CODEBASE = 14; COMPOSER_CAPABILITY_TYPE_TOOL_FORMER = 15; } message LoopOnLintsCapability { // aiserver.v1.ComposerCapabilityRequest.LoopOnLintsCapability repeated LinterErrors linter_errors = 1; optional string custom_instructions = 2; } message LoopOnTestsCapability { // aiserver.v1.ComposerCapabilityRequest.LoopOnTestsCapability repeated string test_names = 1; optional string custom_instructions = 2; } message MegaPlannerCapability { // aiserver.v1.ComposerCapabilityRequest.MegaPlannerCapability optional string custom_instructions = 1; } message LoopOnCommandCapability { // aiserver.v1.ComposerCapabilityRequest.LoopOnCommandCapability string command = 1; optional string custom_instructions = 2; optional string output = 3; optional int32 exit_code = 4; } message ToolCallCapability { // aiserver.v1.ComposerCapabilityRequest.ToolCallCapability message ToolSchema { // aiserver.v1.ComposerCapabilityRequest.ToolSchema enum ToolType { // aiserver.v1.ComposerCapabilityRequest.ToolType TOOL_TYPE_UNSPECIFIED = 0; TOOL_TYPE_ADD_FILE_TO_CONTEXT = 1; TOOL_TYPE_RUN_TERMINAL_COMMAND = 2; TOOL_TYPE_ITERATE = 3; TOOL_TYPE_REMOVE_FILE_FROM_CONTEXT = 4; TOOL_TYPE_SEMANTIC_SEARCH_CODEBASE = 5; } ToolType type = 1; string name = 2; repeated string required = 4; } optional string custom_instructions = 1; repeated ToolSchema tool_schemas = 2; repeated string relevant_files = 3; repeated string files_in_context = 4; repeated string semantic_search_files = 5; } message DiffReviewCapability { // aiserver.v1.ComposerCapabilityRequest.DiffReviewCapability message SimpleFileDiff { // aiserver.v1.ComposerCapabilityRequest.DiffReviewCapability.SimpleFileDiff message Chunk { // aiserver.v1.ComposerCapabilityRequest.DiffReviewCapability.SimpleFileDiff.Chunk repeated string old_lines = 1; repeated string new_lines = 2; LineRange old_range = 3; LineRange new_range = 4; } string relative_workspace_path = 1; repeated Chunk chunks = 3; } optional string custom_instructions = 1; repeated SimpleFileDiff diffs = 2; } message ContextPickingCapability { // aiserver.v1.ComposerCapabilityRequest.ContextPickingCapability optional string custom_instructions = 1; repeated string potential_context_files = 2; repeated CodeChunk potential_context_code_chunks = 3; repeated string files_in_context = 4; } message EditTrailCapability { // aiserver.v1.ComposerCapabilityRequest.EditTrailCapability optional string custom_instructions = 1; } message AutoContextCapability { // aiserver.v1.ComposerCapabilityRequest.AutoContextCapability optional string custom_instructions = 1; repeated string additional_files = 2; } message ContextPlannerCapability { // aiserver.v1.ComposerCapabilityRequest.ContextPlannerCapability optional string custom_instructions = 1; repeated CodeChunk attached_code_chunks = 2; } message RememberThisCapability { // aiserver.v1.ComposerCapabilityRequest.RememberThisCapability optional string custom_instructions = 1; string memory = 2; } message DecomposerCapability { // aiserver.v1.ComposerCapabilityRequest.DecomposerCapability optional string custom_instructions = 1; } ComposerCapabilityType type = 1; LoopOnLintsCapability loop_on_lints = 2; LoopOnTestsCapability loop_on_tests = 3; MegaPlannerCapability mega_planner = 4; LoopOnCommandCapability loop_on_command = 5; ToolCallCapability tool_call = 6; DiffReviewCapability diff_review = 7; ContextPickingCapability context_picking = 8; EditTrailCapability edit_trail = 9; AutoContextCapability auto_context = 10; ContextPlannerCapability context_planner = 11; RememberThisCapability remember_this = 12; DecomposerCapability decomposer = 13; } message LinterErrors { // aiserver.v1.LinterErrors string relative_workspace_path = 1; repeated LinterError errors = 2; string file_contents = 3; } message LinterError { // aiserver.v1.LinterError message RelatedInformation { // aiserver.v1.Diagnostic.RelatedInformation string message = 1; CursorRange range = 2; } enum DiagnosticSeverity { // aiserver.v1.Diagnostic.DiagnosticSeverity DIAGNOSTIC_SEVERITY_UNSPECIFIED = 0; DIAGNOSTIC_SEVERITY_ERROR = 1; DIAGNOSTIC_SEVERITY_WARNING = 2; DIAGNOSTIC_SEVERITY_INFORMATION = 3; DIAGNOSTIC_SEVERITY_HINT = 4; } string message = 1; CursorRange range = 2; optional string source = 3; repeated RelatedInformation related_information = 4; optional DiagnosticSeverity severity = 5; } message CodeChunk { // aiserver.v1.CodeChunk enum SummarizationStrategy { // aiserver.v1.CodeChunk.SummarizationStrategy SUMMARIZATION_STRATEGY_NONE_UNSPECIFIED = 0; SUMMARIZATION_STRATEGY_SUMMARIZED = 1; SUMMARIZATION_STRATEGY_EMBEDDED = 2; } enum Intent { // aiserver.v1.CodeChunk.Intent INTENT_UNSPECIFIED = 0; INTENT_COMPOSER_FILE = 1; INTENT_COMPRESSED_COMPOSER_FILE = 2; } string relative_workspace_path = 1; int32 start_line_number = 2; repeated string lines = 3; optional SummarizationStrategy summarization_strategy = 4; string language_identifier = 5; optional Intent intent = 6; optional bool is_final_version = 7; optional bool is_first_version = 8; } message SuggestedCodeBlock { // aiserver.v1.SuggestedCodeBlock string relative_workspace_path = 1; } message RedDiff { // aiserver.v1.RedDiff string relative_workspace_path = 1; repeated SimplestRange red_ranges = 2; repeated SimplestRange red_ranges_reversed = 3; string start_hash = 4; string end_hash = 5; } message LinterErrorsWithoutFileContents { // aiserver.v1.LinterErrorsWithoutFileContents string relative_workspace_path = 1; repeated LinterError errors = 2; } message DiffHistoryData { // aiserver.v1.DiffHistoryData string relative_workspace_path = 1; repeated ComposerFileDiff diffs = 2; double timestamp = 3; string unique_id = 4; ComposerFileDiff start_to_end_diff = 5; } message ComposerFileDiff { // aiserver.v1.ComposerFileDiff message ChunkDiff { // aiserver.v1.ComposerFileDiff.ChunkDiff string diff_string = 1; int32 old_start = 2; int32 new_start = 3; int32 old_lines = 4; int32 new_lines = 5; int32 lines_removed = 6; int32 lines_added = 7; } enum Editor { // aiserver.v1.ComposerFileDiff.Editor EDITOR_UNSPECIFIED = 0; EDITOR_AI = 1; EDITOR_HUMAN = 2; } repeated ChunkDiff chunks = 1; Editor editor = 2; bool hit_timeout = 3; } message ComposerFileDiffHistory { // aiserver.v1.ComposerFileDiffHistory string file_name = 1; repeated string diff_history = 2; repeated double diff_history_timestamps = 3; } message ConversationSummary { // aiserver.v1.ConversationSummary string summary = 1; string truncation_last_bubble_id_inclusive = 2; string client_should_start_sending_from_inclusive_bubble_id = 3; } message RepositoryInfo { // aiserver.v1.RepositoryInfo string relative_workspace_path = 1; repeated string remote_urls = 2; repeated string remote_names = 3; string repo_name = 4; string repo_owner = 5; bool is_tracked = 6; bool is_local = 7; optional int32 num_files = 8; optional double orthogonal_transform_seed = 9; optional EmbeddingModel preferred_embedding_model = 10; } message ExplicitContext { // aiserver.v1.ExplicitContext string context = 1; optional string repo_context = 2; } message ModelDetails { // aiserver.v1.ModelDetails optional string model_name = 1; optional string api_key = 2; optional bool enable_ghost_mode = 3; optional AzureState azure_state = 4; optional bool enable_slow_pool = 5; optional string openai_api_base_url = 6; } message AzureState { // aiserver.v1.AzureState string api_key = 1; string base_url = 2; string deployment = 3; bool use_azure = 4; } message ChatQuote { // aiserver.v1.ChatQuote string markdown = 1; string bubble_id = 2; int32 section_index = 3; } message DebugInfo { // aiserver.v1.DebugInfo message Breakpoint { // aiserver.v1.DebugInfo.Breakpoint string relative_workspace_path = 1; int32 line_number = 2; repeated string lines_before_breakpoint = 3; repeated string lines_after_breakpoint = 4; optional string exception_info = 5; } message CallStackFrame { // aiserver.v1.DebugInfo.CallStackFrame message Scope { // aiserver.v1.DebugInfo.Scope message Variable { // aiserver.v1.DebugInfo.Variable string name = 1; string value = 2; optional string type = 3; } string name = 1; repeated Variable variables = 2; } string relative_workspace_path = 1; int32 line_number = 2; string function_name = 3; repeated Scope scopes = 4; } Breakpoint breakpoint = 1; repeated CallStackFrame call_stack = 2; repeated CodeBlock history = 3; } message ChatExternalLink { // aiserver.v1.ChatExternalLink string url = 1; string uuid = 2; } message CommitNote { // aiserver.v1.CommitNote string note = 1; string commit_hash = 2; } message ContextAST { // aiserver.v1.ContextAST repeated ContainerTree files = 1; } message ContainerTree { // aiserver.v1.ContainerTree string relative_workspace_path = 1; repeated ContainerTreeNode nodes = 2; } message ContainerTreeNode { // aiserver.v1.ContainerTreeNode message Container { // aiserver.v1.ContainerTreeNode.Container message Reference { // aiserver.v1.ContainerTreeNode.Reference string value = 1; string relative_workspace_path = 2; } string doc_string = 1; string header = 2; string trailer = 3; repeated ContainerTreeNode children = 5; repeated Reference references = 6; double score = 7; } message Blob { // aiserver.v1.ContainerTreeNode.Blob optional string value = 1; } message Symbol { // aiserver.v1.ContainerTreeNode.Symbol message Reference { // aiserver.v1.ContainerTreeNode.Reference string value = 1; string relative_workspace_path = 2; } string doc_string = 1; string value = 2; repeated Reference references = 6; double score = 7; } Container container = 1; Blob blob = 2; Symbol symbol = 3; } message StreamChatResponse { // aiserver.v1.StreamChatResponse message ChunkIdentity { // aiserver.v1.StreamChatResponse.ChunkIdentity string file_name = 1; int32 start_line = 2; int32 end_line = 3; string text = 4; ChunkType chunk_type = 5; } string text = 1; optional string server_bubble_id = 22; optional string debugging_only_chat_prompt = 2; optional int32 debugging_only_token_count = 3; DocumentationCitation document_citation = 4; optional string filled_prompt = 5; optional bool is_big_file = 6; optional string intermediate_text = 7; optional bool is_using_slow_request = 10; optional ChunkIdentity chunk_identity = 8; optional DocsReference docs_reference = 9; optional WebCitation web_citation = 11; optional StatusUpdates status_updates = 12; optional ServerTimingInfo timing_info = 13; optional SymbolLink symbol_link = 14; optional FileLink file_link = 15; optional ConversationSummary conversation_summary = 16; optional ServiceStatusUpdate service_status_update = 17; } message DocumentationCitation { // aiserver.v1.DocumentationCitation repeated DocumentationChunk chunks = 1; } message DocumentationChunk { // aiserver.v1.DocumentationChunk string doc_name = 1; string page_url = 2; string documentation_chunk = 3; float score = 4; string page_title = 5; } message DocsReference { // aiserver.v1.DocsReference string title = 1; string url = 2; } message WebCitation { // aiserver.v1.WebCitation repeated WebReference references = 1; } message WebReference { // aiserver.v1.WebReference string title = 2; string url = 1; } message StatusUpdates { // aiserver.v1.StatusUpdates repeated StatusUpdate updates = 1; } message StatusUpdate { // aiserver.v1.StatusUpdate string message = 1; optional string metadata = 2; } message ServerTimingInfo { // aiserver.v1.ServerTimingInfo double server_start_time = 1; double server_first_token_time = 2; double server_request_sent_time = 3; double server_end_time = 4; } message SymbolLink { // aiserver.v1.SymbolLink string symbol_name = 1; string symbol_search_string = 2; string relative_workspace_path = 3; int32 rough_line_number = 4; } message FileLink { // aiserver.v1.FileLink string display_name = 1; string relative_workspace_path = 2; } message ServiceStatusUpdate { // aiserver.v1.ServiceStatusUpdate string message = 1; string codicon = 2; optional bool allow_command_links_potentially_unsafe_please_only_use_for_handwritten_trusted_markdown = 3; }