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}