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 "git.proto";
12import "lsp.proto";
13import "notification.proto";
14import "task.proto";
15import "toolchain.proto";
16import "worktree.proto";
17
18// Looking for a number? Search "// current max"
19
20message Envelope {
21 uint32 id = 1;
22 optional uint32 responding_to = 2;
23 optional PeerId original_sender_id = 3;
24 optional uint32 ack_id = 266;
25
26 oneof payload {
27 Hello hello = 4;
28 Ack ack = 5;
29 Error error = 6;
30 Ping ping = 7;
31 Test test = 8;
32 EndStream end_stream = 165;
33
34 CreateRoom create_room = 9;
35 CreateRoomResponse create_room_response = 10;
36 JoinRoom join_room = 11;
37 JoinRoomResponse join_room_response = 12;
38 RejoinRoom rejoin_room = 13;
39 RejoinRoomResponse rejoin_room_response = 14;
40 LeaveRoom leave_room = 15;
41 Call call = 16;
42 IncomingCall incoming_call = 17;
43 CallCanceled call_canceled = 18;
44 CancelCall cancel_call = 19;
45 DeclineCall decline_call = 20;
46 UpdateParticipantLocation update_participant_location = 21;
47 RoomUpdated room_updated = 22;
48
49 ShareProject share_project = 23;
50 ShareProjectResponse share_project_response = 24;
51 UnshareProject unshare_project = 25;
52 JoinProject join_project = 26;
53 JoinProjectResponse join_project_response = 27;
54 LeaveProject leave_project = 28;
55 AddProjectCollaborator add_project_collaborator = 29;
56 UpdateProjectCollaborator update_project_collaborator = 30;
57 RemoveProjectCollaborator remove_project_collaborator = 31;
58
59 GetDefinition get_definition = 32;
60 GetDefinitionResponse get_definition_response = 33;
61 GetDeclaration get_declaration = 237;
62 GetDeclarationResponse get_declaration_response = 238;
63 GetTypeDefinition get_type_definition = 34;
64 GetTypeDefinitionResponse get_type_definition_response = 35;
65
66 GetReferences get_references = 36;
67 GetReferencesResponse get_references_response = 37;
68 GetDocumentHighlights get_document_highlights = 38;
69 GetDocumentHighlightsResponse get_document_highlights_response = 39;
70 GetProjectSymbols get_project_symbols = 40;
71 GetProjectSymbolsResponse get_project_symbols_response = 41;
72 OpenBufferForSymbol open_buffer_for_symbol = 42;
73 OpenBufferForSymbolResponse open_buffer_for_symbol_response = 43;
74
75 UpdateProject update_project = 44;
76 UpdateWorktree update_worktree = 45;
77
78 CreateProjectEntry create_project_entry = 46;
79 RenameProjectEntry rename_project_entry = 47;
80 CopyProjectEntry copy_project_entry = 48;
81 DeleteProjectEntry delete_project_entry = 49;
82 ProjectEntryResponse project_entry_response = 50;
83 ExpandProjectEntry expand_project_entry = 51;
84 ExpandProjectEntryResponse expand_project_entry_response = 52;
85 ExpandAllForProjectEntry expand_all_for_project_entry = 291;
86 ExpandAllForProjectEntryResponse expand_all_for_project_entry_response = 292;
87 UpdateDiagnosticSummary update_diagnostic_summary = 53;
88 StartLanguageServer start_language_server = 54;
89 UpdateLanguageServer update_language_server = 55;
90
91 OpenBufferById open_buffer_by_id = 56;
92 OpenBufferByPath open_buffer_by_path = 57;
93 OpenBufferResponse open_buffer_response = 58;
94 CreateBufferForPeer create_buffer_for_peer = 59;
95 UpdateBuffer update_buffer = 60;
96 UpdateBufferFile update_buffer_file = 61;
97 SaveBuffer save_buffer = 62;
98 BufferSaved buffer_saved = 63;
99 BufferReloaded buffer_reloaded = 64;
100 ReloadBuffers reload_buffers = 65;
101 ReloadBuffersResponse reload_buffers_response = 66;
102 SynchronizeBuffers synchronize_buffers = 67;
103 SynchronizeBuffersResponse synchronize_buffers_response = 68;
104 FormatBuffers format_buffers = 69;
105 FormatBuffersResponse format_buffers_response = 70;
106 GetCompletions get_completions = 71;
107 GetCompletionsResponse get_completions_response = 72;
108 ResolveCompletionDocumentation resolve_completion_documentation = 73;
109 ResolveCompletionDocumentationResponse resolve_completion_documentation_response = 74;
110 ApplyCompletionAdditionalEdits apply_completion_additional_edits = 75;
111 ApplyCompletionAdditionalEditsResponse apply_completion_additional_edits_response = 76;
112 GetCodeActions get_code_actions = 77;
113 GetCodeActionsResponse get_code_actions_response = 78;
114 GetHover get_hover = 79;
115 GetHoverResponse get_hover_response = 80;
116 ApplyCodeAction apply_code_action = 81;
117 ApplyCodeActionResponse apply_code_action_response = 82;
118 PrepareRename prepare_rename = 83;
119 PrepareRenameResponse prepare_rename_response = 84;
120 PerformRename perform_rename = 85;
121 PerformRenameResponse perform_rename_response = 86;
122
123 UpdateContacts update_contacts = 89;
124 UpdateInviteInfo update_invite_info = 90;
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 GetSupermavenApiKey get_supermaven_api_key = 198;
221 GetSupermavenApiKeyResponse get_supermaven_api_key_response = 199;
222
223 TaskContextForLocation task_context_for_location = 203;
224 TaskContext task_context = 204;
225
226 LinkedEditingRange linked_editing_range = 209;
227 LinkedEditingRangeResponse linked_editing_range_response = 210;
228
229 AdvertiseContexts advertise_contexts = 211;
230 OpenContext open_context = 212;
231 OpenContextResponse open_context_response = 213;
232 CreateContext create_context = 232;
233 CreateContextResponse create_context_response = 233;
234 UpdateContext update_context = 214;
235 SynchronizeContexts synchronize_contexts = 215;
236 SynchronizeContextsResponse synchronize_contexts_response = 216;
237
238 GetSignatureHelp get_signature_help = 217;
239 GetSignatureHelpResponse get_signature_help_response = 218;
240
241 ListRemoteDirectory list_remote_directory = 219;
242 ListRemoteDirectoryResponse list_remote_directory_response = 220;
243 AddWorktree add_worktree = 222;
244 AddWorktreeResponse add_worktree_response = 223;
245
246 LspExtSwitchSourceHeader lsp_ext_switch_source_header = 241;
247 LspExtSwitchSourceHeaderResponse lsp_ext_switch_source_header_response = 242;
248
249 FindSearchCandidates find_search_candidates = 243;
250 FindSearchCandidatesResponse find_search_candidates_response = 244;
251
252 CloseBuffer close_buffer = 245;
253
254 ShutdownRemoteServer shutdown_remote_server = 257;
255
256 RemoveWorktree remove_worktree = 258;
257
258 LanguageServerLog language_server_log = 260;
259
260 Toast toast = 261;
261 HideToast hide_toast = 262;
262
263 OpenServerSettings open_server_settings = 263;
264
265 GetPermalinkToLine get_permalink_to_line = 264;
266 GetPermalinkToLineResponse get_permalink_to_line_response = 265;
267
268 FlushBufferedMessages flush_buffered_messages = 267;
269
270 LanguageServerPromptRequest language_server_prompt_request = 268;
271 LanguageServerPromptResponse language_server_prompt_response = 269;
272
273 GitBranchesResponse git_branches_response = 271;
274
275 UpdateGitBranch update_git_branch = 272;
276
277 ListToolchains list_toolchains = 273;
278 ListToolchainsResponse list_toolchains_response = 274;
279 ActivateToolchain activate_toolchain = 275;
280 ActiveToolchain active_toolchain = 276;
281 ActiveToolchainResponse active_toolchain_response = 277;
282
283 GetPathMetadata get_path_metadata = 278;
284 GetPathMetadataResponse get_path_metadata_response = 279;
285
286 CancelLanguageServerWork cancel_language_server_work = 282;
287
288 LspExtOpenDocs lsp_ext_open_docs = 283;
289 LspExtOpenDocsResponse lsp_ext_open_docs_response = 284;
290
291 SyncExtensions sync_extensions = 285;
292 SyncExtensionsResponse sync_extensions_response = 286;
293 InstallExtension install_extension = 287;
294
295 OpenUnstagedDiff open_unstaged_diff = 288;
296 OpenUnstagedDiffResponse open_unstaged_diff_response = 289;
297
298 RegisterBufferWithLanguageServers register_buffer_with_language_servers = 290;
299
300 Stage stage = 293;
301 Unstage unstage = 294;
302 Commit commit = 295;
303 OpenCommitMessageBuffer open_commit_message_buffer = 296;
304
305 OpenUncommittedDiff open_uncommitted_diff = 297;
306 OpenUncommittedDiffResponse open_uncommitted_diff_response = 298;
307
308 SetIndexText set_index_text = 299;
309
310 GitShow git_show = 300;
311 GitReset git_reset = 301;
312 GitCommitDetails git_commit_details = 302;
313 GitCheckoutFiles git_checkout_files = 303;
314
315 Push push = 304;
316 Fetch fetch = 305;
317 GetRemotes get_remotes = 306;
318 GetRemotesResponse get_remotes_response = 307;
319 Pull pull = 308;
320
321 ApplyCodeActionKind apply_code_action_kind = 309;
322 ApplyCodeActionKindResponse apply_code_action_kind_response = 310;
323
324 RemoteMessageResponse remote_message_response = 311;
325
326 GitGetBranches git_get_branches = 312;
327 GitCreateBranch git_create_branch = 313;
328 GitChangeBranch git_change_branch = 314;
329
330 CheckForPushedCommits check_for_pushed_commits = 315;
331 CheckForPushedCommitsResponse check_for_pushed_commits_response = 316;
332
333 AskPassRequest ask_pass_request = 317;
334 AskPassResponse ask_pass_response = 318;
335
336 GitDiff git_diff = 319;
337 GitDiffResponse git_diff_response = 320;
338 GitInit git_init = 321;
339
340 CodeLens code_lens = 322;
341 GetCodeLens get_code_lens = 323;
342 GetCodeLensResponse get_code_lens_response = 324;
343 RefreshCodeLens refresh_code_lens = 325;
344
345 ToggleBreakpoint toggle_breakpoint = 326;
346 BreakpointsForFile breakpoints_for_file = 327;
347
348 UpdateRepository update_repository = 328;
349 RemoveRepository remove_repository = 329;
350
351 GetDocumentSymbols get_document_symbols = 330;
352 GetDocumentSymbolsResponse get_document_symbols_response = 331;
353
354 LoadCommitDiff load_commit_diff = 334;
355 LoadCommitDiffResponse load_commit_diff_response = 335;
356
357 StopLanguageServers stop_language_servers = 336;
358
359 LspExtRunnables lsp_ext_runnables = 337;
360 LspExtRunnablesResponse lsp_ext_runnables_response = 338;
361
362 GetDebugAdapterBinary get_debug_adapter_binary = 339;
363 DebugAdapterBinary debug_adapter_binary = 340;
364 RunDebugLocators run_debug_locators = 341;
365 DebugRequest debug_request = 342;
366
367 LspExtGoToParentModule lsp_ext_go_to_parent_module = 343;
368 LspExtGoToParentModuleResponse lsp_ext_go_to_parent_module_response = 344;
369 LspExtCancelFlycheck lsp_ext_cancel_flycheck = 345;
370 LspExtRunFlycheck lsp_ext_run_flycheck = 346;
371 LspExtClearFlycheck lsp_ext_clear_flycheck = 347;
372
373 LogToDebugConsole log_to_debug_console = 348;
374
375 GetDocumentDiagnostics get_document_diagnostics = 350;
376 GetDocumentDiagnosticsResponse get_document_diagnostics_response = 351;
377 PullWorkspaceDiagnostics pull_workspace_diagnostics = 352;
378
379 GetDocumentColor get_document_color = 353;
380 GetDocumentColorResponse get_document_color_response = 354;
381 GetColorPresentation get_color_presentation = 355;
382 GetColorPresentationResponse get_color_presentation_response = 356;
383
384 Stash stash = 357;
385 StashPop stash_pop = 358;
386
387 GetDefaultBranch get_default_branch = 359;
388 GetDefaultBranchResponse get_default_branch_response = 360;
389
390 GetCrashFiles get_crash_files = 361;
391 GetCrashFilesResponse get_crash_files_response = 362;
392
393 GitClone git_clone = 363;
394 GitCloneResponse git_clone_response = 364;
395
396 LspQuery lsp_query = 365;
397 LspQueryResponse lsp_query_response = 366;
398 ToggleLspLogs toggle_lsp_logs = 367;
399
400 UpdateUserSettings update_user_settings = 368;
401
402 GetProcesses get_processes = 369;
403 GetProcessesResponse get_processes_response = 370;
404
405 ResolveToolchain resolve_toolchain = 371;
406 ResolveToolchainResponse resolve_toolchain_response = 372;
407
408 GetAgentServerCommand get_agent_server_command = 373;
409 AgentServerCommand agent_server_command = 374;
410
411 ExternalAgentsUpdated external_agents_updated = 375;
412
413 ExternalAgentLoadingStatusUpdated external_agent_loading_status_updated = 376;
414 NewExternalAgentVersionAvailable new_external_agent_version_available = 377;
415
416 StashDrop stash_drop = 378;
417 StashApply stash_apply = 379;
418
419 GitRenameBranch git_rename_branch = 380;
420
421 RemoteStarted remote_started = 381;
422
423 GetDirectoryEnvironment get_directory_environment = 382;
424 DirectoryEnvironment directory_environment = 383;
425
426 GetTreeDiff get_tree_diff = 384;
427 GetTreeDiffResponse get_tree_diff_response = 385;
428
429 GetBlobContent get_blob_content = 386;
430 GetBlobContentResponse get_blob_content_response = 387;
431
432 GitWorktreesResponse git_worktrees_response = 388;
433 GitGetWorktrees git_get_worktrees = 389;
434 GitCreateWorktree git_create_worktree = 390; // current max
435 }
436
437 reserved 87 to 88;
438 reserved 102 to 103;
439 reserved 158 to 161;
440 reserved 164;
441 reserved 166 to 169;
442 reserved 175 to 185;
443 reserved 188;
444 reserved 189 to 192;
445 reserved 193 to 195;
446 reserved 197;
447 reserved 200 to 202;
448 reserved 205 to 206;
449 reserved 221;
450 reserved 224 to 229;
451 reserved 230 to 231;
452 reserved 234 to 236;
453 reserved 239 to 240;
454 reserved 246;
455 reserved 247 to 254;
456 reserved 255 to 256;
457 reserved 259;
458 reserved 270;
459 reserved 280 to 281;
460 reserved 332 to 333;
461}
462
463message Hello {
464 PeerId peer_id = 1;
465}
466
467message Ping {}
468
469message Ack {}
470
471message Error {
472 string message = 1;
473 ErrorCode code = 2;
474 repeated string tags = 3;
475}
476
477enum ErrorCode {
478 Internal = 0;
479 NoSuchChannel = 1;
480 Disconnected = 2;
481 SignedOut = 3;
482 UpgradeRequired = 4;
483 Forbidden = 5;
484 NeedsCla = 7;
485 NotARootChannel = 8;
486 BadPublicNesting = 9;
487 CircularNesting = 10;
488 WrongMoveTarget = 11;
489 UnsharedItem = 12;
490 NoSuchProject = 13;
491 DevServerProjectPathDoesNotExist = 16;
492 RemoteUpgradeRequired = 17;
493 RateLimitExceeded = 18;
494 CommitFailed = 19;
495 reserved 6;
496 reserved 14 to 15;
497}
498
499message EndStream {}
500
501message Test {
502 uint64 id = 1;
503}
504
505message FlushBufferedMessages {}
506
507message FlushBufferedMessagesResponse {}
508
509message RemoteStarted {}