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 "image.proto";
13import "lsp.proto";
14import "notification.proto";
15import "task.proto";
16import "toolchain.proto";
17import "worktree.proto";
18
19// Looking for a number? Search "// current max"
20
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 UpdateInviteInfo update_invite_info = 90;
126 ShowContacts show_contacts = 91;
127
128 GetUsers get_users = 92;
129 FuzzySearchUsers fuzzy_search_users = 93;
130 UsersResponse users_response = 94;
131 RequestContact request_contact = 95;
132 RespondToContactRequest respond_to_contact_request = 96;
133 RemoveContact remove_contact = 97;
134
135 Follow follow = 98;
136 FollowResponse follow_response = 99;
137 UpdateFollowers update_followers = 100;
138 Unfollow unfollow = 101;
139 UpdateDiffBases update_diff_bases = 104;
140
141 OnTypeFormatting on_type_formatting = 105;
142 OnTypeFormattingResponse on_type_formatting_response = 106;
143
144 UpdateWorktreeSettings update_worktree_settings = 107;
145
146 InlayHints inlay_hints = 108;
147 InlayHintsResponse inlay_hints_response = 109;
148 ResolveInlayHint resolve_inlay_hint = 110;
149 ResolveInlayHintResponse resolve_inlay_hint_response = 111;
150 RefreshInlayHints refresh_inlay_hints = 112;
151
152 CreateChannel create_channel = 113;
153 CreateChannelResponse create_channel_response = 114;
154 InviteChannelMember invite_channel_member = 115;
155 RemoveChannelMember remove_channel_member = 116;
156 RespondToChannelInvite respond_to_channel_invite = 117;
157 UpdateChannels update_channels = 118;
158 JoinChannel join_channel = 119;
159 DeleteChannel delete_channel = 120;
160 GetChannelMembers get_channel_members = 121;
161 GetChannelMembersResponse get_channel_members_response = 122;
162 SetChannelMemberRole set_channel_member_role = 123;
163 RenameChannel rename_channel = 124;
164 RenameChannelResponse rename_channel_response = 125;
165 SubscribeToChannels subscribe_to_channels = 207;
166
167 JoinChannelBuffer join_channel_buffer = 126;
168 JoinChannelBufferResponse join_channel_buffer_response = 127;
169 UpdateChannelBuffer update_channel_buffer = 128;
170 LeaveChannelBuffer leave_channel_buffer = 129;
171 UpdateChannelBufferCollaborators update_channel_buffer_collaborators = 130;
172 RejoinChannelBuffers rejoin_channel_buffers = 131;
173 RejoinChannelBuffersResponse rejoin_channel_buffers_response = 132;
174 AckBufferOperation ack_buffer_operation = 133;
175
176 JoinChannelChat join_channel_chat = 134;
177 JoinChannelChatResponse join_channel_chat_response = 135;
178 LeaveChannelChat leave_channel_chat = 136;
179 SendChannelMessage send_channel_message = 137;
180 SendChannelMessageResponse send_channel_message_response = 138;
181 ChannelMessageSent channel_message_sent = 139;
182 GetChannelMessages get_channel_messages = 140;
183 GetChannelMessagesResponse get_channel_messages_response = 141;
184 RemoveChannelMessage remove_channel_message = 142;
185 AckChannelMessage ack_channel_message = 143;
186 GetChannelMessagesById get_channel_messages_by_id = 144;
187
188 MoveChannel move_channel = 147;
189 ReorderChannel reorder_channel = 349;
190 SetChannelVisibility set_channel_visibility = 148;
191
192 AddNotification add_notification = 149;
193 GetNotifications get_notifications = 150;
194 GetNotificationsResponse get_notifications_response = 151;
195 DeleteNotification delete_notification = 152;
196 MarkNotificationRead mark_notification_read = 153;
197 LspExtExpandMacro lsp_ext_expand_macro = 154;
198 LspExtExpandMacroResponse lsp_ext_expand_macro_response = 155;
199 SetRoomParticipantRole set_room_participant_role = 156;
200
201 UpdateUserChannels update_user_channels = 157;
202
203 GetImplementation get_implementation = 162;
204 GetImplementationResponse get_implementation_response = 163;
205
206 UpdateChannelMessage update_channel_message = 170;
207 ChannelMessageUpdate channel_message_update = 171;
208
209 BlameBuffer blame_buffer = 172;
210 BlameBufferResponse blame_buffer_response = 173;
211
212 UpdateNotification update_notification = 174;
213
214 RestartLanguageServers restart_language_servers = 208;
215
216 RejoinRemoteProjects rejoin_remote_projects = 186;
217 RejoinRemoteProjectsResponse rejoin_remote_projects_response = 187;
218
219 OpenNewBuffer open_new_buffer = 196;
220
221 GetSupermavenApiKey get_supermaven_api_key = 198;
222 GetSupermavenApiKeyResponse get_supermaven_api_key_response = 199;
223
224 TaskContextForLocation task_context_for_location = 203;
225 TaskContext task_context = 204;
226
227 LinkedEditingRange linked_editing_range = 209;
228 LinkedEditingRangeResponse linked_editing_range_response = 210;
229
230 AdvertiseContexts advertise_contexts = 211;
231 OpenContext open_context = 212;
232 OpenContextResponse open_context_response = 213;
233 CreateContext create_context = 232;
234 CreateContextResponse create_context_response = 233;
235 UpdateContext update_context = 214;
236 SynchronizeContexts synchronize_contexts = 215;
237 SynchronizeContextsResponse synchronize_contexts_response = 216;
238
239 GetSignatureHelp get_signature_help = 217;
240 GetSignatureHelpResponse get_signature_help_response = 218;
241
242 ListRemoteDirectory list_remote_directory = 219;
243 ListRemoteDirectoryResponse list_remote_directory_response = 220;
244 AddWorktree add_worktree = 222;
245 AddWorktreeResponse add_worktree_response = 223;
246
247 LspExtSwitchSourceHeader lsp_ext_switch_source_header = 241;
248 LspExtSwitchSourceHeaderResponse lsp_ext_switch_source_header_response = 242;
249
250 FindSearchCandidates find_search_candidates = 243;
251 FindSearchCandidatesResponse find_search_candidates_response = 244;
252
253 CloseBuffer close_buffer = 245;
254
255 ShutdownRemoteServer shutdown_remote_server = 257;
256
257 RemoveWorktree remove_worktree = 258;
258
259 LanguageServerLog language_server_log = 260;
260
261 Toast toast = 261;
262 HideToast hide_toast = 262;
263
264 OpenServerSettings open_server_settings = 263;
265
266 GetPermalinkToLine get_permalink_to_line = 264;
267 GetPermalinkToLineResponse get_permalink_to_line_response = 265;
268
269 FlushBufferedMessages flush_buffered_messages = 267;
270
271 LanguageServerPromptRequest language_server_prompt_request = 268;
272 LanguageServerPromptResponse language_server_prompt_response = 269;
273
274 GitBranchesResponse git_branches_response = 271;
275
276 UpdateGitBranch update_git_branch = 272;
277
278 ListToolchains list_toolchains = 273;
279 ListToolchainsResponse list_toolchains_response = 274;
280 ActivateToolchain activate_toolchain = 275;
281 ActiveToolchain active_toolchain = 276;
282 ActiveToolchainResponse active_toolchain_response = 277;
283
284 GetPathMetadata get_path_metadata = 278;
285 GetPathMetadataResponse get_path_metadata_response = 279;
286
287 CancelLanguageServerWork cancel_language_server_work = 282;
288
289 LspExtOpenDocs lsp_ext_open_docs = 283;
290 LspExtOpenDocsResponse lsp_ext_open_docs_response = 284;
291
292 SyncExtensions sync_extensions = 285;
293 SyncExtensionsResponse sync_extensions_response = 286;
294 InstallExtension install_extension = 287;
295
296 OpenUnstagedDiff open_unstaged_diff = 288;
297 OpenUnstagedDiffResponse open_unstaged_diff_response = 289;
298
299 RegisterBufferWithLanguageServers register_buffer_with_language_servers = 290;
300
301 Stage stage = 293;
302 Unstage unstage = 294;
303 Commit commit = 295;
304 OpenCommitMessageBuffer open_commit_message_buffer = 296;
305
306 OpenUncommittedDiff open_uncommitted_diff = 297;
307 OpenUncommittedDiffResponse open_uncommitted_diff_response = 298;
308
309 SetIndexText set_index_text = 299;
310
311 GitShow git_show = 300;
312 GitReset git_reset = 301;
313 GitCommitDetails git_commit_details = 302;
314 GitCheckoutFiles git_checkout_files = 303;
315
316 Push push = 304;
317 Fetch fetch = 305;
318 GetRemotes get_remotes = 306;
319 GetRemotesResponse get_remotes_response = 307;
320 Pull pull = 308;
321
322 ApplyCodeActionKind apply_code_action_kind = 309;
323 ApplyCodeActionKindResponse apply_code_action_kind_response = 310;
324
325 RemoteMessageResponse remote_message_response = 311;
326
327 GitGetBranches git_get_branches = 312;
328 GitCreateBranch git_create_branch = 313;
329 GitChangeBranch git_change_branch = 314;
330
331 CheckForPushedCommits check_for_pushed_commits = 315;
332 CheckForPushedCommitsResponse check_for_pushed_commits_response = 316;
333
334 AskPassRequest ask_pass_request = 317;
335 AskPassResponse ask_pass_response = 318;
336
337 GitDiff git_diff = 319;
338 GitDiffResponse git_diff_response = 320;
339 GitInit git_init = 321;
340
341 CodeLens code_lens = 322;
342 GetCodeLens get_code_lens = 323;
343 GetCodeLensResponse get_code_lens_response = 324;
344 RefreshCodeLens refresh_code_lens = 325;
345
346 ToggleBreakpoint toggle_breakpoint = 326;
347 BreakpointsForFile breakpoints_for_file = 327;
348
349 UpdateRepository update_repository = 328;
350 RemoveRepository remove_repository = 329;
351
352 GetDocumentSymbols get_document_symbols = 330;
353 GetDocumentSymbolsResponse get_document_symbols_response = 331;
354
355 LoadCommitDiff load_commit_diff = 334;
356 LoadCommitDiffResponse load_commit_diff_response = 335;
357
358 StopLanguageServers stop_language_servers = 336;
359
360 LspExtRunnables lsp_ext_runnables = 337;
361 LspExtRunnablesResponse lsp_ext_runnables_response = 338;
362
363 GetDebugAdapterBinary get_debug_adapter_binary = 339;
364 DebugAdapterBinary debug_adapter_binary = 340;
365 RunDebugLocators run_debug_locators = 341;
366 DebugRequest debug_request = 342;
367
368 LspExtGoToParentModule lsp_ext_go_to_parent_module = 343;
369 LspExtGoToParentModuleResponse lsp_ext_go_to_parent_module_response = 344;
370 LspExtCancelFlycheck lsp_ext_cancel_flycheck = 345;
371 LspExtRunFlycheck lsp_ext_run_flycheck = 346;
372 LspExtClearFlycheck lsp_ext_clear_flycheck = 347;
373
374 LogToDebugConsole log_to_debug_console = 348;
375
376 GetDocumentDiagnostics get_document_diagnostics = 350;
377 GetDocumentDiagnosticsResponse get_document_diagnostics_response = 351;
378 PullWorkspaceDiagnostics pull_workspace_diagnostics = 352;
379
380 GetDocumentColor get_document_color = 353;
381 GetDocumentColorResponse get_document_color_response = 354;
382 GetColorPresentation get_color_presentation = 355;
383 GetColorPresentationResponse get_color_presentation_response = 356;
384
385 Stash stash = 357;
386 StashPop stash_pop = 358;
387
388 GetDefaultBranch get_default_branch = 359;
389 GetDefaultBranchResponse get_default_branch_response = 360;
390
391 GetCrashFiles get_crash_files = 361;
392 GetCrashFilesResponse get_crash_files_response = 362;
393
394 GitClone git_clone = 363;
395 GitCloneResponse git_clone_response = 364;
396
397 LspQuery lsp_query = 365;
398 LspQueryResponse lsp_query_response = 366;
399 ToggleLspLogs toggle_lsp_logs = 367;
400
401 UpdateUserSettings update_user_settings = 368;
402
403 GetProcesses get_processes = 369;
404 GetProcessesResponse get_processes_response = 370;
405
406 ResolveToolchain resolve_toolchain = 371;
407 ResolveToolchainResponse resolve_toolchain_response = 372;
408
409 GetAgentServerCommand get_agent_server_command = 373;
410 AgentServerCommand agent_server_command = 374;
411
412 ExternalAgentsUpdated external_agents_updated = 375;
413
414 ExternalAgentLoadingStatusUpdated external_agent_loading_status_updated = 376;
415 NewExternalAgentVersionAvailable new_external_agent_version_available = 377;
416
417 StashDrop stash_drop = 378;
418 StashApply stash_apply = 379;
419
420 GitRenameBranch git_rename_branch = 380;
421
422 RemoteStarted remote_started = 381;
423
424 GetDirectoryEnvironment get_directory_environment = 382;
425 DirectoryEnvironment directory_environment = 383;
426
427 GetTreeDiff get_tree_diff = 384;
428 GetTreeDiffResponse get_tree_diff_response = 385;
429
430 GetBlobContent get_blob_content = 386;
431 GetBlobContentResponse get_blob_content_response = 387;
432
433 GitWorktreesResponse git_worktrees_response = 388;
434 GitGetWorktrees git_get_worktrees = 389;
435 GitCreateWorktree git_create_worktree = 390;
436
437 OpenImageByPath open_image_by_path = 391;
438 OpenImageResponse open_image_response = 392;
439 CreateImageForPeer create_image_for_peer = 393; // current max
440 }
441
442 reserved 87 to 88;
443 reserved 102 to 103;
444 reserved 158 to 161;
445 reserved 164;
446 reserved 166 to 169;
447 reserved 175 to 185;
448 reserved 188;
449 reserved 189 to 192;
450 reserved 193 to 195;
451 reserved 197;
452 reserved 200 to 202;
453 reserved 205 to 206;
454 reserved 221;
455 reserved 224 to 229;
456 reserved 230 to 231;
457 reserved 234 to 236;
458 reserved 239 to 240;
459 reserved 246;
460 reserved 247 to 254;
461 reserved 255 to 256;
462 reserved 259;
463 reserved 270;
464 reserved 280 to 281;
465 reserved 332 to 333;
466}
467
468message Hello {
469 PeerId peer_id = 1;
470}
471
472message Ping {}
473
474message Ack {}
475
476message Error {
477 string message = 1;
478 ErrorCode code = 2;
479 repeated string tags = 3;
480}
481
482enum ErrorCode {
483 Internal = 0;
484 NoSuchChannel = 1;
485 Disconnected = 2;
486 SignedOut = 3;
487 UpgradeRequired = 4;
488 Forbidden = 5;
489 NeedsCla = 7;
490 NotARootChannel = 8;
491 BadPublicNesting = 9;
492 CircularNesting = 10;
493 WrongMoveTarget = 11;
494 UnsharedItem = 12;
495 NoSuchProject = 13;
496 DevServerProjectPathDoesNotExist = 16;
497 RemoteUpgradeRequired = 17;
498 RateLimitExceeded = 18;
499 CommitFailed = 19;
500 reserved 6;
501 reserved 14 to 15;
502}
503
504message EndStream {}
505
506message Test {
507 uint64 id = 1;
508}
509
510message FlushBufferedMessages {}
511
512message FlushBufferedMessagesResponse {}
513
514message RemoteStarted {}