zed.proto

  1syntax = "proto3";
  2package zed.messages;
  3
  4import "ai.proto";
  5import "app.proto";
  6import "buffer.proto";
  7import "call.proto";
  8import "channel.proto";
  9import "core.proto";
 10import "debugger.proto";
 11import "download.proto";
 12import "git.proto";
 13import "image.proto";
 14import "lsp.proto";
 15import "notification.proto";
 16import "task.proto";
 17import "toolchain.proto";
 18import "worktree.proto";
 19
 20// Looking for a number? Search "// current max"
 21message Envelope {
 22  uint32 id = 1;
 23  optional uint32 responding_to = 2;
 24  optional PeerId original_sender_id = 3;
 25  optional uint32 ack_id = 266;
 26
 27  oneof payload {
 28    Hello hello = 4;
 29    Ack ack = 5;
 30    Error error = 6;
 31    Ping ping = 7;
 32    Test test = 8;
 33    EndStream end_stream = 165;
 34
 35    CreateRoom create_room = 9;
 36    CreateRoomResponse create_room_response = 10;
 37    JoinRoom join_room = 11;
 38    JoinRoomResponse join_room_response = 12;
 39    RejoinRoom rejoin_room = 13;
 40    RejoinRoomResponse rejoin_room_response = 14;
 41    LeaveRoom leave_room = 15;
 42    Call call = 16;
 43    IncomingCall incoming_call = 17;
 44    CallCanceled call_canceled = 18;
 45    CancelCall cancel_call = 19;
 46    DeclineCall decline_call = 20;
 47    UpdateParticipantLocation update_participant_location = 21;
 48    RoomUpdated room_updated = 22;
 49
 50    ShareProject share_project = 23;
 51    ShareProjectResponse share_project_response = 24;
 52    UnshareProject unshare_project = 25;
 53    JoinProject join_project = 26;
 54    JoinProjectResponse join_project_response = 27;
 55    LeaveProject leave_project = 28;
 56    AddProjectCollaborator add_project_collaborator = 29;
 57    UpdateProjectCollaborator update_project_collaborator = 30;
 58    RemoveProjectCollaborator remove_project_collaborator = 31;
 59
 60    GetDefinition get_definition = 32;
 61    GetDefinitionResponse get_definition_response = 33;
 62    GetDeclaration get_declaration = 237;
 63    GetDeclarationResponse get_declaration_response = 238;
 64    GetTypeDefinition get_type_definition = 34;
 65    GetTypeDefinitionResponse get_type_definition_response = 35;
 66
 67    GetReferences get_references = 36;
 68    GetReferencesResponse get_references_response = 37;
 69    GetDocumentHighlights get_document_highlights = 38;
 70    GetDocumentHighlightsResponse get_document_highlights_response = 39;
 71    GetProjectSymbols get_project_symbols = 40;
 72    GetProjectSymbolsResponse get_project_symbols_response = 41;
 73    OpenBufferForSymbol open_buffer_for_symbol = 42;
 74    OpenBufferForSymbolResponse open_buffer_for_symbol_response = 43;
 75
 76    UpdateProject update_project = 44;
 77    UpdateWorktree update_worktree = 45;
 78
 79    CreateProjectEntry create_project_entry = 46;
 80    RenameProjectEntry rename_project_entry = 47;
 81    CopyProjectEntry copy_project_entry = 48;
 82    DeleteProjectEntry delete_project_entry = 49;
 83    ProjectEntryResponse project_entry_response = 50;
 84    ExpandProjectEntry expand_project_entry = 51;
 85    ExpandProjectEntryResponse expand_project_entry_response = 52;
 86    ExpandAllForProjectEntry expand_all_for_project_entry = 291;
 87    ExpandAllForProjectEntryResponse expand_all_for_project_entry_response = 292;
 88    UpdateDiagnosticSummary update_diagnostic_summary = 53;
 89    StartLanguageServer start_language_server = 54;
 90    UpdateLanguageServer update_language_server = 55;
 91
 92    OpenBufferById open_buffer_by_id = 56;
 93    OpenBufferByPath open_buffer_by_path = 57;
 94    OpenBufferResponse open_buffer_response = 58;
 95    CreateBufferForPeer create_buffer_for_peer = 59;
 96    UpdateBuffer update_buffer = 60;
 97    UpdateBufferFile update_buffer_file = 61;
 98    SaveBuffer save_buffer = 62;
 99    BufferSaved buffer_saved = 63;
100    BufferReloaded buffer_reloaded = 64;
101    ReloadBuffers reload_buffers = 65;
102    ReloadBuffersResponse reload_buffers_response = 66;
103    SynchronizeBuffers synchronize_buffers = 67;
104    SynchronizeBuffersResponse synchronize_buffers_response = 68;
105    FormatBuffers format_buffers = 69;
106    FormatBuffersResponse format_buffers_response = 70;
107    GetCompletions get_completions = 71;
108    GetCompletionsResponse get_completions_response = 72;
109    ResolveCompletionDocumentation resolve_completion_documentation = 73;
110    ResolveCompletionDocumentationResponse resolve_completion_documentation_response = 74;
111    ApplyCompletionAdditionalEdits apply_completion_additional_edits = 75;
112    ApplyCompletionAdditionalEditsResponse apply_completion_additional_edits_response = 76;
113    GetCodeActions get_code_actions = 77;
114    GetCodeActionsResponse get_code_actions_response = 78;
115    GetHover get_hover = 79;
116    GetHoverResponse get_hover_response = 80;
117    ApplyCodeAction apply_code_action = 81;
118    ApplyCodeActionResponse apply_code_action_response = 82;
119    PrepareRename prepare_rename = 83;
120    PrepareRenameResponse prepare_rename_response = 84;
121    PerformRename perform_rename = 85;
122    PerformRenameResponse perform_rename_response = 86;
123
124    UpdateContacts update_contacts = 89;
125    ShowContacts show_contacts = 91;
126
127    GetUsers get_users = 92;
128    FuzzySearchUsers fuzzy_search_users = 93;
129    UsersResponse users_response = 94;
130    RequestContact request_contact = 95;
131    RespondToContactRequest respond_to_contact_request = 96;
132    RemoveContact remove_contact = 97;
133
134    Follow follow = 98;
135    FollowResponse follow_response = 99;
136    UpdateFollowers update_followers = 100;
137    Unfollow unfollow = 101;
138    UpdateDiffBases update_diff_bases = 104;
139
140    OnTypeFormatting on_type_formatting = 105;
141    OnTypeFormattingResponse on_type_formatting_response = 106;
142
143    UpdateWorktreeSettings update_worktree_settings = 107;
144
145    InlayHints inlay_hints = 108;
146    InlayHintsResponse inlay_hints_response = 109;
147    ResolveInlayHint resolve_inlay_hint = 110;
148    ResolveInlayHintResponse resolve_inlay_hint_response = 111;
149    RefreshInlayHints refresh_inlay_hints = 112;
150
151    CreateChannel create_channel = 113;
152    CreateChannelResponse create_channel_response = 114;
153    InviteChannelMember invite_channel_member = 115;
154    RemoveChannelMember remove_channel_member = 116;
155    RespondToChannelInvite respond_to_channel_invite = 117;
156    UpdateChannels update_channels = 118;
157    JoinChannel join_channel = 119;
158    DeleteChannel delete_channel = 120;
159    GetChannelMembers get_channel_members = 121;
160    GetChannelMembersResponse get_channel_members_response = 122;
161    SetChannelMemberRole set_channel_member_role = 123;
162    RenameChannel rename_channel = 124;
163    RenameChannelResponse rename_channel_response = 125;
164    SubscribeToChannels subscribe_to_channels = 207;
165
166    JoinChannelBuffer join_channel_buffer = 126;
167    JoinChannelBufferResponse join_channel_buffer_response = 127;
168    UpdateChannelBuffer update_channel_buffer = 128;
169    LeaveChannelBuffer leave_channel_buffer = 129;
170    UpdateChannelBufferCollaborators update_channel_buffer_collaborators = 130;
171    RejoinChannelBuffers rejoin_channel_buffers = 131;
172    RejoinChannelBuffersResponse rejoin_channel_buffers_response = 132;
173    AckBufferOperation ack_buffer_operation = 133;
174
175    JoinChannelChat join_channel_chat = 134;
176    JoinChannelChatResponse join_channel_chat_response = 135;
177    LeaveChannelChat leave_channel_chat = 136;
178    SendChannelMessage send_channel_message = 137;
179    SendChannelMessageResponse send_channel_message_response = 138;
180    ChannelMessageSent channel_message_sent = 139;
181    GetChannelMessages get_channel_messages = 140;
182    GetChannelMessagesResponse get_channel_messages_response = 141;
183    RemoveChannelMessage remove_channel_message = 142;
184    AckChannelMessage ack_channel_message = 143;
185    GetChannelMessagesById get_channel_messages_by_id = 144;
186
187    MoveChannel move_channel = 147;
188    ReorderChannel reorder_channel = 349;
189    SetChannelVisibility set_channel_visibility = 148;
190
191    AddNotification add_notification = 149;
192    GetNotifications get_notifications = 150;
193    GetNotificationsResponse get_notifications_response = 151;
194    DeleteNotification delete_notification = 152;
195    MarkNotificationRead mark_notification_read = 153;
196    LspExtExpandMacro lsp_ext_expand_macro = 154;
197    LspExtExpandMacroResponse lsp_ext_expand_macro_response = 155;
198    SetRoomParticipantRole set_room_participant_role = 156;
199
200    UpdateUserChannels update_user_channels = 157;
201
202    GetImplementation get_implementation = 162;
203    GetImplementationResponse get_implementation_response = 163;
204
205    UpdateChannelMessage update_channel_message = 170;
206    ChannelMessageUpdate channel_message_update = 171;
207
208    BlameBuffer blame_buffer = 172;
209    BlameBufferResponse blame_buffer_response = 173;
210
211    UpdateNotification update_notification = 174;
212
213    RestartLanguageServers restart_language_servers = 208;
214
215    RejoinRemoteProjects rejoin_remote_projects = 186;
216    RejoinRemoteProjectsResponse rejoin_remote_projects_response = 187;
217
218    OpenNewBuffer open_new_buffer = 196;
219
220    TaskContextForLocation task_context_for_location = 203;
221    TaskContext task_context = 204;
222
223    LinkedEditingRange linked_editing_range = 209;
224    LinkedEditingRangeResponse linked_editing_range_response = 210;
225
226    GetSignatureHelp get_signature_help = 217;
227    GetSignatureHelpResponse get_signature_help_response = 218;
228
229    ListRemoteDirectory list_remote_directory = 219;
230    ListRemoteDirectoryResponse list_remote_directory_response = 220;
231    AddWorktree add_worktree = 222;
232    AddWorktreeResponse add_worktree_response = 223;
233
234    LspExtSwitchSourceHeader lsp_ext_switch_source_header = 241;
235    LspExtSwitchSourceHeaderResponse lsp_ext_switch_source_header_response = 242;
236
237    FindSearchCandidates find_search_candidates = 243;
238
239    CloseBuffer close_buffer = 245;
240
241    ShutdownRemoteServer shutdown_remote_server = 257;
242
243    RemoveWorktree remove_worktree = 258;
244
245    LanguageServerLog language_server_log = 260;
246
247    Toast toast = 261;
248    HideToast hide_toast = 262;
249
250    OpenServerSettings open_server_settings = 263;
251
252    GetPermalinkToLine get_permalink_to_line = 264;
253    GetPermalinkToLineResponse get_permalink_to_line_response = 265;
254
255    FlushBufferedMessages flush_buffered_messages = 267;
256
257    LanguageServerPromptRequest language_server_prompt_request = 268;
258    LanguageServerPromptResponse language_server_prompt_response = 269;
259
260    GitBranchesResponse git_branches_response = 271;
261
262    UpdateGitBranch update_git_branch = 272;
263
264    ListToolchains list_toolchains = 273;
265    ListToolchainsResponse list_toolchains_response = 274;
266    ActivateToolchain activate_toolchain = 275;
267    ActiveToolchain active_toolchain = 276;
268    ActiveToolchainResponse active_toolchain_response = 277;
269
270    GetPathMetadata get_path_metadata = 278;
271    GetPathMetadataResponse get_path_metadata_response = 279;
272
273    CancelLanguageServerWork cancel_language_server_work = 282;
274
275    LspExtOpenDocs lsp_ext_open_docs = 283;
276    LspExtOpenDocsResponse lsp_ext_open_docs_response = 284;
277
278    SyncExtensions sync_extensions = 285;
279    SyncExtensionsResponse sync_extensions_response = 286;
280    InstallExtension install_extension = 287;
281
282    OpenUnstagedDiff open_unstaged_diff = 288;
283    OpenUnstagedDiffResponse open_unstaged_diff_response = 289;
284
285    RegisterBufferWithLanguageServers register_buffer_with_language_servers = 290;
286
287    Stage stage = 293;
288    Unstage unstage = 294;
289    Commit commit = 295;
290    OpenCommitMessageBuffer open_commit_message_buffer = 296;
291
292    OpenUncommittedDiff open_uncommitted_diff = 297;
293    OpenUncommittedDiffResponse open_uncommitted_diff_response = 298;
294
295    SetIndexText set_index_text = 299;
296
297    GitShow git_show = 300;
298    GitReset git_reset = 301;
299    GitCommitDetails git_commit_details = 302;
300    GitCheckoutFiles git_checkout_files = 303;
301
302    Push push = 304;
303    Fetch fetch = 305;
304    GetRemotes get_remotes = 306;
305    GetRemotesResponse get_remotes_response = 307;
306    Pull pull = 308;
307
308    ApplyCodeActionKind apply_code_action_kind = 309;
309    ApplyCodeActionKindResponse apply_code_action_kind_response = 310;
310
311    RemoteMessageResponse remote_message_response = 311;
312
313    GitGetBranches git_get_branches = 312;
314    GitCreateBranch git_create_branch = 313;
315    GitChangeBranch git_change_branch = 314;
316
317    CheckForPushedCommits check_for_pushed_commits = 315;
318    CheckForPushedCommitsResponse check_for_pushed_commits_response = 316;
319
320    AskPassRequest ask_pass_request = 317;
321    AskPassResponse ask_pass_response = 318;
322
323    GitDiff git_diff = 319;
324    GitDiffResponse git_diff_response = 320;
325    GitInit git_init = 321;
326
327    CodeLens code_lens = 322;
328    GetCodeLens get_code_lens = 323;
329    GetCodeLensResponse get_code_lens_response = 324;
330    RefreshCodeLens refresh_code_lens = 325;
331
332    ToggleBreakpoint toggle_breakpoint = 326;
333    BreakpointsForFile breakpoints_for_file = 327;
334
335    UpdateRepository update_repository = 328;
336    RemoveRepository remove_repository = 329;
337
338    GetDocumentSymbols get_document_symbols = 330;
339    GetDocumentSymbolsResponse get_document_symbols_response = 331;
340
341    LoadCommitDiff load_commit_diff = 334;
342    LoadCommitDiffResponse load_commit_diff_response = 335;
343
344    StopLanguageServers stop_language_servers = 336;
345
346    LspExtRunnables lsp_ext_runnables = 337;
347    LspExtRunnablesResponse lsp_ext_runnables_response = 338;
348
349    GetDebugAdapterBinary get_debug_adapter_binary = 339;
350    DebugAdapterBinary debug_adapter_binary = 340;
351    RunDebugLocators run_debug_locators = 341;
352    DebugRequest debug_request = 342;
353
354    LspExtGoToParentModule lsp_ext_go_to_parent_module = 343;
355    LspExtGoToParentModuleResponse lsp_ext_go_to_parent_module_response = 344;
356    LspExtCancelFlycheck lsp_ext_cancel_flycheck = 345;
357    LspExtRunFlycheck lsp_ext_run_flycheck = 346;
358    LspExtClearFlycheck lsp_ext_clear_flycheck = 347;
359
360    LogToDebugConsole log_to_debug_console = 348;
361
362    GetDocumentDiagnostics get_document_diagnostics = 350;
363    GetDocumentDiagnosticsResponse get_document_diagnostics_response = 351;
364    PullWorkspaceDiagnostics pull_workspace_diagnostics = 352;
365
366    GetDocumentColor get_document_color = 353;
367    GetDocumentColorResponse get_document_color_response = 354;
368    GetColorPresentation get_color_presentation = 355;
369    GetColorPresentationResponse get_color_presentation_response = 356;
370
371    Stash stash = 357;
372    StashPop stash_pop = 358;
373
374    GetDefaultBranch get_default_branch = 359;
375    GetDefaultBranchResponse get_default_branch_response = 360;
376
377    GetCrashFiles get_crash_files = 361;
378    GetCrashFilesResponse get_crash_files_response = 362;
379
380    GitClone git_clone = 363;
381    GitCloneResponse git_clone_response = 364;
382
383    LspQuery lsp_query = 365;
384    LspQueryResponse lsp_query_response = 366;
385    ToggleLspLogs toggle_lsp_logs = 367;
386
387    UpdateUserSettings update_user_settings = 368;
388
389    GetProcesses get_processes = 369;
390    GetProcessesResponse get_processes_response = 370;
391
392    ResolveToolchain resolve_toolchain = 371;
393    ResolveToolchainResponse resolve_toolchain_response = 372;
394
395    GetAgentServerCommand get_agent_server_command = 373;
396    AgentServerCommand agent_server_command = 374;
397
398    ExternalAgentsUpdated external_agents_updated = 375;
399    ExternalAgentLoadingStatusUpdated external_agent_loading_status_updated = 376;
400    NewExternalAgentVersionAvailable new_external_agent_version_available = 377;
401
402    StashDrop stash_drop = 378;
403    StashApply stash_apply = 379;
404
405    GitRenameBranch git_rename_branch = 380;
406
407    RemoteStarted remote_started = 381;
408
409    GetDirectoryEnvironment get_directory_environment = 382;
410    DirectoryEnvironment directory_environment = 383;
411
412    GetTreeDiff get_tree_diff = 384;
413    GetTreeDiffResponse get_tree_diff_response = 385;
414
415    GetBlobContent get_blob_content = 386;
416    GetBlobContentResponse get_blob_content_response = 387;
417
418    GitWorktreesResponse git_worktrees_response = 388;
419    GitGetWorktrees git_get_worktrees = 389;
420    GitCreateWorktree git_create_worktree = 390;
421
422    OpenImageByPath open_image_by_path = 391;
423    OpenImageResponse open_image_response = 392;
424    CreateImageForPeer create_image_for_peer = 393;
425
426    GitFileHistory git_file_history = 397;
427    GitFileHistoryResponse git_file_history_response = 398;
428
429    RunGitHook run_git_hook = 399;
430
431    GitDeleteBranch git_delete_branch = 400;
432
433    ExternalExtensionAgentsUpdated external_extension_agents_updated = 401;
434
435    GitCreateRemote git_create_remote = 402;
436    GitRemoveRemote git_remove_remote = 403;
437
438    TrustWorktrees trust_worktrees = 404;
439    RestrictWorktrees restrict_worktrees = 405;
440
441    ShareAgentThread share_agent_thread = 406;
442    GetSharedAgentThread get_shared_agent_thread = 407;
443    GetSharedAgentThreadResponse get_shared_agent_thread_response = 408;
444
445    FindSearchCandidatesChunk find_search_candidates_chunk = 409;
446    FindSearchCandidatesCancelled find_search_candidates_cancelled = 410;
447    GetContextServerCommand get_context_server_command = 411;
448    ContextServerCommand context_server_command = 412;
449
450    AllocateWorktreeId allocate_worktree_id = 413;
451    AllocateWorktreeIdResponse allocate_worktree_id_response = 414;
452
453    DownloadFileByPath download_file_by_path = 415;
454    DownloadFileResponse download_file_response = 416;
455    CreateFileForPeer create_file_for_peer = 417;
456
457    SemanticTokens semantic_tokens = 418;
458    SemanticTokensResponse semantic_tokens_response = 419;
459    RefreshSemanticTokens refresh_semantic_tokens = 420;
460    GetFoldingRanges get_folding_ranges = 421;
461    GetFoldingRangesResponse get_folding_ranges_response = 422;
462
463    GetRemoteProfilingData get_remote_profiling_data = 423;
464    GetRemoteProfilingDataResponse get_remote_profiling_data_response = 424;
465
466    SpawnKernel spawn_kernel = 426;
467    SpawnKernelResponse spawn_kernel_response = 427;
468    KillKernel kill_kernel = 428;
469    GitRemoveWorktree git_remove_worktree = 431;
470    GitRenameWorktree git_rename_worktree = 432;
471    GitCreateCheckpoint git_create_checkpoint = 433;
472    GitCreateCheckpointResponse git_create_checkpoint_response = 434;
473    GitRestoreCheckpoint git_restore_checkpoint = 435;
474    GitCompareCheckpoints git_compare_checkpoints = 436;
475    GitCompareCheckpointsResponse git_compare_checkpoints_response = 437;
476    GitDiffCheckpoints git_diff_checkpoints = 438;
477    GitDiffCheckpointsResponse git_diff_checkpoints_response = 439;
478    GitGetHeadSha git_get_head_sha = 440;
479    GitGetHeadShaResponse git_get_head_sha_response = 441;
480    TrashProjectEntry trash_project_entry = 442;
481    TrashProjectEntryResponse trash_project_entry_response = 443;
482    RestoreProjectEntry restore_project_entry = 444;
483    RestoreProjectEntryResponse restore_project_entry_response = 445; // current max
484  }
485
486  reserved 87 to 88;
487  reserved 90;
488  reserved 102 to 103;
489  reserved 158 to 161;
490  reserved 164;
491  reserved 166 to 169;
492  reserved 175 to 185;
493  reserved 188 to 195;
494  reserved 197;
495  reserved 198 to 202;
496  reserved 205 to 206;
497  reserved 221;
498  reserved 224 to 231;
499  reserved 234 to 236;
500  reserved 239 to 240;
501  reserved 244;
502  reserved 246 to 256;
503  reserved 259;
504  reserved 270;
505  reserved 280 to 281;
506  reserved 332 to 333;
507  reserved 394 to 396;
508  reserved 429 to 430;
509  reserved 211 to 216, 232 to 233;
510}
511
512message Hello {
513  PeerId peer_id = 1;
514}
515
516message Ping {}
517
518message Ack {}
519
520message Error {
521  string message = 1;
522  ErrorCode code = 2;
523  repeated string tags = 3;
524}
525
526enum ErrorCode {
527  Internal = 0;
528  NoSuchChannel = 1;
529  Disconnected = 2;
530  SignedOut = 3;
531  UpgradeRequired = 4;
532  Forbidden = 5;
533  NeedsCla = 7;
534  NotARootChannel = 8;
535  BadPublicNesting = 9;
536  CircularNesting = 10;
537  WrongMoveTarget = 11;
538  UnsharedItem = 12;
539  NoSuchProject = 13;
540  DevServerProjectPathDoesNotExist = 16;
541  RemoteUpgradeRequired = 17;
542  RateLimitExceeded = 18;
543  CommitFailed = 19;
544  reserved 6;
545  reserved 14 to 15;
546}
547
548message EndStream {}
549
550message Test {
551  uint64 id = 1;
552}
553
554message FlushBufferedMessages {}
555
556message FlushBufferedMessagesResponse {}
557
558message RemoteStarted {}
559
560message SpawnKernel {
561  string kernel_name = 1;
562  string working_directory = 2;
563  uint64 project_id = 3;
564  string command = 4;
565  repeated string args = 5;
566}
567
568message SpawnKernelResponse {
569  string kernel_id = 1;
570  string connection_file = 2;
571}
572
573message KillKernel {
574  string kernel_id = 1;
575  uint64 project_id = 2;
576}