zed.messages.rs

   1#[derive(serde::Serialize, serde::Deserialize)]
   2#[derive(Clone, PartialEq, ::prost::Message)]
   3pub struct PeerId {
   4    #[prost(uint32, tag="1")]
   5    pub owner_id: u32,
   6    #[prost(uint32, tag="2")]
   7    pub id: u32,
   8}
   9#[derive(serde::Serialize, serde::Deserialize)]
  10#[derive(Clone, PartialEq, ::prost::Message)]
  11pub struct User {
  12    #[prost(uint64, tag="1")]
  13    pub id: u64,
  14    #[prost(string, tag="2")]
  15    pub github_login: ::prost::alloc::string::String,
  16    #[prost(string, tag="3")]
  17    pub avatar_url: ::prost::alloc::string::String,
  18    #[prost(string, optional, tag="5")]
  19    pub name: ::core::option::Option<::prost::alloc::string::String>,
  20}
  21#[derive(serde::Serialize, serde::Deserialize)]
  22#[derive(Clone, PartialEq, ::prost::Message)]
  23pub struct Nonce {
  24    #[prost(uint64, tag="1")]
  25    pub upper_half: u64,
  26    #[prost(uint64, tag="2")]
  27    pub lower_half: u64,
  28}
  29#[derive(serde::Serialize, serde::Deserialize)]
  30#[derive(Clone, PartialEq, ::prost::Message)]
  31pub struct Collaborator {
  32    #[prost(message, optional, tag="1")]
  33    pub peer_id: ::core::option::Option<PeerId>,
  34    #[prost(uint32, tag="2")]
  35    pub replica_id: u32,
  36    #[prost(uint64, tag="3")]
  37    pub user_id: u64,
  38    #[prost(bool, tag="4")]
  39    pub is_host: bool,
  40    #[prost(string, optional, tag="5")]
  41    pub committer_name: ::core::option::Option<::prost::alloc::string::String>,
  42    #[prost(string, optional, tag="6")]
  43    pub committer_email: ::core::option::Option<::prost::alloc::string::String>,
  44}
  45#[derive(serde::Serialize, serde::Deserialize)]
  46#[derive(Clone, PartialEq, ::prost::Message)]
  47pub struct Timestamp {
  48    #[prost(uint64, tag="1")]
  49    pub seconds: u64,
  50    #[prost(uint32, tag="2")]
  51    pub nanos: u32,
  52}
  53#[derive(serde::Serialize, serde::Deserialize)]
  54#[derive(Clone, PartialEq, ::prost::Message)]
  55pub struct File {
  56    #[prost(uint64, tag="1")]
  57    pub worktree_id: u64,
  58    #[prost(uint64, optional, tag="2")]
  59    pub entry_id: ::core::option::Option<u64>,
  60    #[prost(string, tag="3")]
  61    pub path: ::prost::alloc::string::String,
  62    #[prost(message, optional, tag="4")]
  63    pub mtime: ::core::option::Option<Timestamp>,
  64    #[prost(bool, tag="5")]
  65    pub is_deleted: bool,
  66}
  67#[derive(serde::Serialize, serde::Deserialize)]
  68#[derive(Clone, PartialEq, ::prost::Message)]
  69pub struct Entry {
  70    #[prost(uint64, tag="1")]
  71    pub id: u64,
  72    #[prost(bool, tag="2")]
  73    pub is_dir: bool,
  74    #[prost(string, tag="3")]
  75    pub path: ::prost::alloc::string::String,
  76    #[prost(uint64, tag="4")]
  77    pub inode: u64,
  78    #[prost(message, optional, tag="5")]
  79    pub mtime: ::core::option::Option<Timestamp>,
  80    #[prost(bool, tag="7")]
  81    pub is_ignored: bool,
  82    #[prost(bool, tag="8")]
  83    pub is_external: bool,
  84    #[prost(bool, tag="10")]
  85    pub is_fifo: bool,
  86    #[prost(uint64, optional, tag="11")]
  87    pub size: ::core::option::Option<u64>,
  88    #[prost(string, optional, tag="12")]
  89    pub canonical_path: ::core::option::Option<::prost::alloc::string::String>,
  90    #[prost(bool, tag="13")]
  91    pub is_hidden: bool,
  92}
  93#[derive(serde::Serialize, serde::Deserialize)]
  94#[derive(Clone, PartialEq, ::prost::Message)]
  95pub struct AddWorktree {
  96    #[prost(string, tag="1")]
  97    pub path: ::prost::alloc::string::String,
  98    #[prost(uint64, tag="2")]
  99    pub project_id: u64,
 100    #[prost(bool, tag="3")]
 101    pub visible: bool,
 102}
 103#[derive(serde::Serialize, serde::Deserialize)]
 104#[derive(Clone, PartialEq, ::prost::Message)]
 105pub struct AddWorktreeResponse {
 106    #[prost(uint64, tag="1")]
 107    pub worktree_id: u64,
 108    #[prost(string, tag="2")]
 109    pub canonicalized_path: ::prost::alloc::string::String,
 110}
 111#[derive(serde::Serialize, serde::Deserialize)]
 112#[derive(Clone, PartialEq, ::prost::Message)]
 113pub struct RemoveWorktree {
 114    #[prost(uint64, tag="1")]
 115    pub worktree_id: u64,
 116}
 117#[derive(serde::Serialize, serde::Deserialize)]
 118#[derive(Clone, PartialEq, ::prost::Message)]
 119pub struct GetPathMetadata {
 120    #[prost(uint64, tag="1")]
 121    pub project_id: u64,
 122    #[prost(string, tag="2")]
 123    pub path: ::prost::alloc::string::String,
 124}
 125#[derive(serde::Serialize, serde::Deserialize)]
 126#[derive(Clone, PartialEq, ::prost::Message)]
 127pub struct GetPathMetadataResponse {
 128    #[prost(bool, tag="1")]
 129    pub exists: bool,
 130    #[prost(string, tag="2")]
 131    pub path: ::prost::alloc::string::String,
 132    #[prost(bool, tag="3")]
 133    pub is_dir: bool,
 134}
 135#[derive(serde::Serialize, serde::Deserialize)]
 136#[derive(Clone, PartialEq, ::prost::Message)]
 137pub struct WorktreeMetadata {
 138    #[prost(uint64, tag="1")]
 139    pub id: u64,
 140    #[prost(string, tag="2")]
 141    pub root_name: ::prost::alloc::string::String,
 142    #[prost(bool, tag="3")]
 143    pub visible: bool,
 144    #[prost(string, tag="4")]
 145    pub abs_path: ::prost::alloc::string::String,
 146}
 147#[derive(serde::Serialize, serde::Deserialize)]
 148#[derive(Hash, Eq)]
 149#[derive(Clone, PartialEq, ::prost::Message)]
 150pub struct ProjectPath {
 151    #[prost(uint64, tag="1")]
 152    pub worktree_id: u64,
 153    #[prost(string, tag="2")]
 154    pub path: ::prost::alloc::string::String,
 155}
 156#[derive(serde::Serialize, serde::Deserialize)]
 157#[derive(Clone, PartialEq, ::prost::Message)]
 158pub struct ListRemoteDirectoryConfig {
 159    #[prost(bool, tag="1")]
 160    pub is_dir: bool,
 161}
 162#[derive(serde::Serialize, serde::Deserialize)]
 163#[derive(Clone, PartialEq, ::prost::Message)]
 164pub struct ListRemoteDirectory {
 165    #[prost(uint64, tag="1")]
 166    pub dev_server_id: u64,
 167    #[prost(string, tag="2")]
 168    pub path: ::prost::alloc::string::String,
 169    #[prost(message, optional, tag="3")]
 170    pub config: ::core::option::Option<ListRemoteDirectoryConfig>,
 171}
 172#[derive(serde::Serialize, serde::Deserialize)]
 173#[derive(Clone, PartialEq, ::prost::Message)]
 174pub struct EntryInfo {
 175    #[prost(bool, tag="1")]
 176    pub is_dir: bool,
 177}
 178#[derive(serde::Serialize, serde::Deserialize)]
 179#[derive(Clone, PartialEq, ::prost::Message)]
 180pub struct ListRemoteDirectoryResponse {
 181    #[prost(string, repeated, tag="1")]
 182    pub entries: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
 183    #[prost(message, repeated, tag="2")]
 184    pub entry_info: ::prost::alloc::vec::Vec<EntryInfo>,
 185}
 186#[derive(serde::Serialize, serde::Deserialize)]
 187#[derive(Clone, PartialEq, ::prost::Message)]
 188pub struct CreateProjectEntry {
 189    #[prost(uint64, tag="1")]
 190    pub project_id: u64,
 191    #[prost(uint64, tag="2")]
 192    pub worktree_id: u64,
 193    #[prost(string, tag="3")]
 194    pub path: ::prost::alloc::string::String,
 195    #[prost(bool, tag="4")]
 196    pub is_directory: bool,
 197    #[prost(bytes="vec", optional, tag="5")]
 198    pub content: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
 199}
 200#[derive(serde::Serialize, serde::Deserialize)]
 201#[derive(Clone, PartialEq, ::prost::Message)]
 202pub struct RenameProjectEntry {
 203    #[prost(uint64, tag="1")]
 204    pub project_id: u64,
 205    #[prost(uint64, tag="2")]
 206    pub entry_id: u64,
 207    #[prost(string, tag="3")]
 208    pub new_path: ::prost::alloc::string::String,
 209    #[prost(uint64, tag="4")]
 210    pub new_worktree_id: u64,
 211}
 212#[derive(serde::Serialize, serde::Deserialize)]
 213#[derive(Clone, PartialEq, ::prost::Message)]
 214pub struct CopyProjectEntry {
 215    #[prost(uint64, tag="1")]
 216    pub project_id: u64,
 217    #[prost(uint64, tag="2")]
 218    pub entry_id: u64,
 219    #[prost(string, tag="3")]
 220    pub new_path: ::prost::alloc::string::String,
 221    #[prost(uint64, tag="5")]
 222    pub new_worktree_id: u64,
 223}
 224#[derive(serde::Serialize, serde::Deserialize)]
 225#[derive(Clone, PartialEq, ::prost::Message)]
 226pub struct DeleteProjectEntry {
 227    #[prost(uint64, tag="1")]
 228    pub project_id: u64,
 229    #[prost(uint64, tag="2")]
 230    pub entry_id: u64,
 231    #[prost(bool, tag="3")]
 232    pub use_trash: bool,
 233}
 234#[derive(serde::Serialize, serde::Deserialize)]
 235#[derive(Clone, PartialEq, ::prost::Message)]
 236pub struct ExpandProjectEntry {
 237    #[prost(uint64, tag="1")]
 238    pub project_id: u64,
 239    #[prost(uint64, tag="2")]
 240    pub entry_id: u64,
 241}
 242#[derive(serde::Serialize, serde::Deserialize)]
 243#[derive(Clone, PartialEq, ::prost::Message)]
 244pub struct ExpandProjectEntryResponse {
 245    #[prost(uint64, tag="1")]
 246    pub worktree_scan_id: u64,
 247}
 248#[derive(serde::Serialize, serde::Deserialize)]
 249#[derive(Clone, PartialEq, ::prost::Message)]
 250pub struct ExpandAllForProjectEntry {
 251    #[prost(uint64, tag="1")]
 252    pub project_id: u64,
 253    #[prost(uint64, tag="2")]
 254    pub entry_id: u64,
 255}
 256#[derive(serde::Serialize, serde::Deserialize)]
 257#[derive(Clone, PartialEq, ::prost::Message)]
 258pub struct ExpandAllForProjectEntryResponse {
 259    #[prost(uint64, tag="1")]
 260    pub worktree_scan_id: u64,
 261}
 262#[derive(serde::Serialize, serde::Deserialize)]
 263#[derive(Clone, PartialEq, ::prost::Message)]
 264pub struct ProjectEntryResponse {
 265    #[prost(message, optional, tag="1")]
 266    pub entry: ::core::option::Option<Entry>,
 267    #[prost(uint64, tag="2")]
 268    pub worktree_scan_id: u64,
 269}
 270#[derive(serde::Serialize, serde::Deserialize)]
 271#[derive(Clone, PartialEq, ::prost::Message)]
 272pub struct UpdateWorktreeSettings {
 273    #[prost(uint64, tag="1")]
 274    pub project_id: u64,
 275    #[prost(uint64, tag="2")]
 276    pub worktree_id: u64,
 277    #[prost(string, tag="3")]
 278    pub path: ::prost::alloc::string::String,
 279    #[prost(string, optional, tag="4")]
 280    pub content: ::core::option::Option<::prost::alloc::string::String>,
 281    #[prost(enumeration="LocalSettingsKind", optional, tag="5")]
 282    pub kind: ::core::option::Option<i32>,
 283}
 284#[derive(serde::Serialize, serde::Deserialize)]
 285#[derive(Clone, PartialEq, ::prost::Message)]
 286pub struct UpdateUserSettings {
 287    #[prost(uint64, tag="1")]
 288    pub project_id: u64,
 289    #[prost(string, tag="2")]
 290    pub contents: ::prost::alloc::string::String,
 291}
 292#[derive(serde::Serialize, serde::Deserialize)]
 293#[derive(Clone, PartialEq, ::prost::Message)]
 294pub struct TrustWorktrees {
 295    #[prost(uint64, tag="1")]
 296    pub project_id: u64,
 297    #[prost(message, repeated, tag="2")]
 298    pub trusted_paths: ::prost::alloc::vec::Vec<PathTrust>,
 299}
 300#[derive(serde::Serialize, serde::Deserialize)]
 301#[derive(Clone, PartialEq, ::prost::Message)]
 302pub struct PathTrust {
 303    #[prost(oneof="path_trust::Content", tags="2, 3")]
 304    pub content: ::core::option::Option<path_trust::Content>,
 305}
 306/// Nested message and enum types in `PathTrust`.
 307pub mod path_trust {
 308    #[derive(serde::Serialize, serde::Deserialize)]
 309    #[derive(Clone, PartialEq, ::prost::Oneof)]
 310    pub enum Content {
 311        #[prost(uint64, tag="2")]
 312        WorktreeId(u64),
 313        #[prost(string, tag="3")]
 314        AbsPath(::prost::alloc::string::String),
 315    }
 316}
 317#[derive(serde::Serialize, serde::Deserialize)]
 318#[derive(Clone, PartialEq, ::prost::Message)]
 319pub struct RestrictWorktrees {
 320    #[prost(uint64, tag="1")]
 321    pub project_id: u64,
 322    #[prost(uint64, repeated, tag="3")]
 323    pub worktree_ids: ::prost::alloc::vec::Vec<u64>,
 324}
 325#[derive(serde::Serialize, serde::Deserialize)]
 326#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
 327#[repr(i32)]
 328pub enum LocalSettingsKind {
 329    Settings = 0,
 330    Tasks = 1,
 331    Editorconfig = 2,
 332    Debug = 3,
 333}
 334#[derive(serde::Serialize, serde::Deserialize)]
 335#[derive(Clone, PartialEq, ::prost::Message)]
 336pub struct OpenNewBuffer {
 337    #[prost(uint64, tag="1")]
 338    pub project_id: u64,
 339}
 340#[derive(serde::Serialize, serde::Deserialize)]
 341#[derive(Clone, PartialEq, ::prost::Message)]
 342pub struct OpenBufferResponse {
 343    #[prost(uint64, tag="1")]
 344    pub buffer_id: u64,
 345}
 346#[derive(serde::Serialize, serde::Deserialize)]
 347#[derive(Clone, PartialEq, ::prost::Message)]
 348pub struct CreateBufferForPeer {
 349    #[prost(uint64, tag="1")]
 350    pub project_id: u64,
 351    #[prost(message, optional, tag="2")]
 352    pub peer_id: ::core::option::Option<PeerId>,
 353    #[prost(oneof="create_buffer_for_peer::Variant", tags="3, 4")]
 354    pub variant: ::core::option::Option<create_buffer_for_peer::Variant>,
 355}
 356/// Nested message and enum types in `CreateBufferForPeer`.
 357pub mod create_buffer_for_peer {
 358    #[derive(serde::Serialize, serde::Deserialize)]
 359    #[derive(Clone, PartialEq, ::prost::Oneof)]
 360    pub enum Variant {
 361        #[prost(message, tag="3")]
 362        State(super::BufferState),
 363        #[prost(message, tag="4")]
 364        Chunk(super::BufferChunk),
 365    }
 366}
 367#[derive(serde::Serialize, serde::Deserialize)]
 368#[derive(Clone, PartialEq, ::prost::Message)]
 369pub struct UpdateBuffer {
 370    #[prost(uint64, tag="1")]
 371    pub project_id: u64,
 372    #[prost(uint64, tag="2")]
 373    pub buffer_id: u64,
 374    #[prost(message, repeated, tag="3")]
 375    pub operations: ::prost::alloc::vec::Vec<Operation>,
 376}
 377#[derive(serde::Serialize, serde::Deserialize)]
 378#[derive(Clone, PartialEq, ::prost::Message)]
 379pub struct OpenBufferByPath {
 380    #[prost(uint64, tag="1")]
 381    pub project_id: u64,
 382    #[prost(uint64, tag="2")]
 383    pub worktree_id: u64,
 384    #[prost(string, tag="3")]
 385    pub path: ::prost::alloc::string::String,
 386}
 387#[derive(serde::Serialize, serde::Deserialize)]
 388#[derive(Clone, PartialEq, ::prost::Message)]
 389pub struct OpenBufferById {
 390    #[prost(uint64, tag="1")]
 391    pub project_id: u64,
 392    #[prost(uint64, tag="2")]
 393    pub id: u64,
 394}
 395#[derive(serde::Serialize, serde::Deserialize)]
 396#[derive(Clone, PartialEq, ::prost::Message)]
 397pub struct UpdateBufferFile {
 398    #[prost(uint64, tag="1")]
 399    pub project_id: u64,
 400    #[prost(uint64, tag="2")]
 401    pub buffer_id: u64,
 402    #[prost(message, optional, tag="3")]
 403    pub file: ::core::option::Option<File>,
 404}
 405#[derive(serde::Serialize, serde::Deserialize)]
 406#[derive(Clone, PartialEq, ::prost::Message)]
 407pub struct SaveBuffer {
 408    #[prost(uint64, tag="1")]
 409    pub project_id: u64,
 410    #[prost(uint64, tag="2")]
 411    pub buffer_id: u64,
 412    #[prost(message, repeated, tag="3")]
 413    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
 414    #[prost(message, optional, tag="4")]
 415    pub new_path: ::core::option::Option<ProjectPath>,
 416}
 417#[derive(serde::Serialize, serde::Deserialize)]
 418#[derive(Clone, PartialEq, ::prost::Message)]
 419pub struct CloseBuffer {
 420    #[prost(uint64, tag="1")]
 421    pub project_id: u64,
 422    #[prost(uint64, tag="2")]
 423    pub buffer_id: u64,
 424}
 425#[derive(serde::Serialize, serde::Deserialize)]
 426#[derive(Clone, PartialEq, ::prost::Message)]
 427pub struct BufferSaved {
 428    #[prost(uint64, tag="1")]
 429    pub project_id: u64,
 430    #[prost(uint64, tag="2")]
 431    pub buffer_id: u64,
 432    #[prost(message, repeated, tag="3")]
 433    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
 434    #[prost(message, optional, tag="4")]
 435    pub mtime: ::core::option::Option<Timestamp>,
 436}
 437#[derive(serde::Serialize, serde::Deserialize)]
 438#[derive(Clone, PartialEq, ::prost::Message)]
 439pub struct BufferReloaded {
 440    #[prost(uint64, tag="1")]
 441    pub project_id: u64,
 442    #[prost(uint64, tag="2")]
 443    pub buffer_id: u64,
 444    #[prost(message, repeated, tag="3")]
 445    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
 446    #[prost(message, optional, tag="4")]
 447    pub mtime: ::core::option::Option<Timestamp>,
 448    #[prost(enumeration="LineEnding", tag="6")]
 449    pub line_ending: i32,
 450}
 451#[derive(serde::Serialize, serde::Deserialize)]
 452#[derive(Clone, PartialEq, ::prost::Message)]
 453pub struct ReloadBuffers {
 454    #[prost(uint64, tag="1")]
 455    pub project_id: u64,
 456    #[prost(uint64, repeated, tag="2")]
 457    pub buffer_ids: ::prost::alloc::vec::Vec<u64>,
 458}
 459#[derive(serde::Serialize, serde::Deserialize)]
 460#[derive(Clone, PartialEq, ::prost::Message)]
 461pub struct ReloadBuffersResponse {
 462    #[prost(message, optional, tag="1")]
 463    pub transaction: ::core::option::Option<ProjectTransaction>,
 464}
 465#[derive(serde::Serialize, serde::Deserialize)]
 466#[derive(Clone, PartialEq, ::prost::Message)]
 467pub struct SynchronizeBuffers {
 468    #[prost(uint64, tag="1")]
 469    pub project_id: u64,
 470    #[prost(message, repeated, tag="2")]
 471    pub buffers: ::prost::alloc::vec::Vec<BufferVersion>,
 472}
 473#[derive(serde::Serialize, serde::Deserialize)]
 474#[derive(Clone, PartialEq, ::prost::Message)]
 475pub struct SynchronizeBuffersResponse {
 476    #[prost(message, repeated, tag="1")]
 477    pub buffers: ::prost::alloc::vec::Vec<BufferVersion>,
 478}
 479#[derive(serde::Serialize, serde::Deserialize)]
 480#[derive(Clone, PartialEq, ::prost::Message)]
 481pub struct BufferVersion {
 482    #[prost(uint64, tag="1")]
 483    pub id: u64,
 484    #[prost(message, repeated, tag="2")]
 485    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
 486}
 487#[derive(serde::Serialize, serde::Deserialize)]
 488#[derive(Clone, PartialEq, ::prost::Message)]
 489pub struct BufferState {
 490    #[prost(uint64, tag="1")]
 491    pub id: u64,
 492    #[prost(message, optional, tag="2")]
 493    pub file: ::core::option::Option<File>,
 494    #[prost(string, tag="3")]
 495    pub base_text: ::prost::alloc::string::String,
 496    #[prost(enumeration="LineEnding", tag="5")]
 497    pub line_ending: i32,
 498    #[prost(message, repeated, tag="6")]
 499    pub saved_version: ::prost::alloc::vec::Vec<VectorClockEntry>,
 500    #[prost(message, optional, tag="8")]
 501    pub saved_mtime: ::core::option::Option<Timestamp>,
 502}
 503#[derive(serde::Serialize, serde::Deserialize)]
 504#[derive(Clone, PartialEq, ::prost::Message)]
 505pub struct BufferChunk {
 506    #[prost(uint64, tag="1")]
 507    pub buffer_id: u64,
 508    #[prost(message, repeated, tag="2")]
 509    pub operations: ::prost::alloc::vec::Vec<Operation>,
 510    #[prost(bool, tag="3")]
 511    pub is_last: bool,
 512}
 513#[derive(serde::Serialize, serde::Deserialize)]
 514#[derive(Clone, PartialEq, ::prost::Message)]
 515pub struct VectorClockEntry {
 516    #[prost(uint32, tag="1")]
 517    pub replica_id: u32,
 518    #[prost(uint32, tag="2")]
 519    pub timestamp: u32,
 520}
 521#[derive(serde::Serialize, serde::Deserialize)]
 522#[derive(Clone, PartialEq, ::prost::Message)]
 523pub struct UndoMapEntry {
 524    #[prost(uint32, tag="1")]
 525    pub replica_id: u32,
 526    #[prost(uint32, tag="2")]
 527    pub local_timestamp: u32,
 528    #[prost(message, repeated, tag="3")]
 529    pub counts: ::prost::alloc::vec::Vec<UndoCount>,
 530}
 531#[derive(serde::Serialize, serde::Deserialize)]
 532#[derive(Clone, PartialEq, ::prost::Message)]
 533pub struct UndoCount {
 534    #[prost(uint32, tag="1")]
 535    pub replica_id: u32,
 536    #[prost(uint32, tag="2")]
 537    pub lamport_timestamp: u32,
 538    #[prost(uint32, tag="3")]
 539    pub count: u32,
 540}
 541#[derive(serde::Serialize, serde::Deserialize)]
 542#[derive(Clone, PartialEq, ::prost::Message)]
 543pub struct Operation {
 544    #[prost(oneof="operation::Variant", tags="1, 2, 3, 4, 5, 6")]
 545    pub variant: ::core::option::Option<operation::Variant>,
 546}
 547/// Nested message and enum types in `Operation`.
 548pub mod operation {
 549    #[derive(serde::Serialize, serde::Deserialize)]
 550    #[derive(Clone, PartialEq, ::prost::Message)]
 551    pub struct Edit {
 552        #[prost(uint32, tag="1")]
 553        pub replica_id: u32,
 554        #[prost(uint32, tag="2")]
 555        pub lamport_timestamp: u32,
 556        #[prost(message, repeated, tag="3")]
 557        pub version: ::prost::alloc::vec::Vec<super::VectorClockEntry>,
 558        #[prost(message, repeated, tag="4")]
 559        pub ranges: ::prost::alloc::vec::Vec<super::Range>,
 560        #[prost(string, repeated, tag="5")]
 561        pub new_text: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
 562    }
 563    #[derive(serde::Serialize, serde::Deserialize)]
 564    #[derive(Clone, PartialEq, ::prost::Message)]
 565    pub struct Undo {
 566        #[prost(uint32, tag="1")]
 567        pub replica_id: u32,
 568        #[prost(uint32, tag="2")]
 569        pub lamport_timestamp: u32,
 570        #[prost(message, repeated, tag="3")]
 571        pub version: ::prost::alloc::vec::Vec<super::VectorClockEntry>,
 572        #[prost(message, repeated, tag="4")]
 573        pub counts: ::prost::alloc::vec::Vec<super::UndoCount>,
 574    }
 575    #[derive(serde::Serialize, serde::Deserialize)]
 576    #[derive(Clone, PartialEq, ::prost::Message)]
 577    pub struct UpdateSelections {
 578        #[prost(uint32, tag="1")]
 579        pub replica_id: u32,
 580        #[prost(uint32, tag="2")]
 581        pub lamport_timestamp: u32,
 582        #[prost(message, repeated, tag="3")]
 583        pub selections: ::prost::alloc::vec::Vec<super::Selection>,
 584        #[prost(bool, tag="4")]
 585        pub line_mode: bool,
 586        #[prost(enumeration="super::CursorShape", tag="5")]
 587        pub cursor_shape: i32,
 588    }
 589    #[derive(serde::Serialize, serde::Deserialize)]
 590    #[derive(Clone, PartialEq, ::prost::Message)]
 591    pub struct UpdateCompletionTriggers {
 592        #[prost(uint32, tag="1")]
 593        pub replica_id: u32,
 594        #[prost(uint32, tag="2")]
 595        pub lamport_timestamp: u32,
 596        #[prost(string, repeated, tag="3")]
 597        pub triggers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
 598        #[prost(uint64, tag="4")]
 599        pub language_server_id: u64,
 600    }
 601    #[derive(serde::Serialize, serde::Deserialize)]
 602    #[derive(Clone, PartialEq, ::prost::Message)]
 603    pub struct UpdateLineEnding {
 604        #[prost(uint32, tag="1")]
 605        pub replica_id: u32,
 606        #[prost(uint32, tag="2")]
 607        pub lamport_timestamp: u32,
 608        #[prost(enumeration="super::LineEnding", tag="3")]
 609        pub line_ending: i32,
 610    }
 611    #[derive(serde::Serialize, serde::Deserialize)]
 612    #[derive(Clone, PartialEq, ::prost::Oneof)]
 613    pub enum Variant {
 614        #[prost(message, tag="1")]
 615        Edit(Edit),
 616        #[prost(message, tag="2")]
 617        Undo(Undo),
 618        #[prost(message, tag="3")]
 619        UpdateSelections(UpdateSelections),
 620        #[prost(message, tag="4")]
 621        UpdateDiagnostics(super::UpdateDiagnostics),
 622        #[prost(message, tag="5")]
 623        UpdateCompletionTriggers(UpdateCompletionTriggers),
 624        #[prost(message, tag="6")]
 625        UpdateLineEnding(UpdateLineEnding),
 626    }
 627}
 628#[derive(serde::Serialize, serde::Deserialize)]
 629#[derive(Clone, PartialEq, ::prost::Message)]
 630pub struct ProjectTransaction {
 631    #[prost(uint64, repeated, tag="1")]
 632    pub buffer_ids: ::prost::alloc::vec::Vec<u64>,
 633    #[prost(message, repeated, tag="2")]
 634    pub transactions: ::prost::alloc::vec::Vec<Transaction>,
 635}
 636#[derive(serde::Serialize, serde::Deserialize)]
 637#[derive(Clone, PartialEq, ::prost::Message)]
 638pub struct Transaction {
 639    #[prost(message, optional, tag="1")]
 640    pub id: ::core::option::Option<LamportTimestamp>,
 641    #[prost(message, repeated, tag="2")]
 642    pub edit_ids: ::prost::alloc::vec::Vec<LamportTimestamp>,
 643    #[prost(message, repeated, tag="3")]
 644    pub start: ::prost::alloc::vec::Vec<VectorClockEntry>,
 645}
 646#[derive(serde::Serialize, serde::Deserialize)]
 647#[derive(Clone, PartialEq, ::prost::Message)]
 648pub struct LamportTimestamp {
 649    #[prost(uint32, tag="1")]
 650    pub replica_id: u32,
 651    #[prost(uint32, tag="2")]
 652    pub value: u32,
 653}
 654#[derive(serde::Serialize, serde::Deserialize)]
 655#[derive(Clone, PartialEq, ::prost::Message)]
 656pub struct Range {
 657    #[prost(uint64, tag="1")]
 658    pub start: u64,
 659    #[prost(uint64, tag="2")]
 660    pub end: u64,
 661}
 662#[derive(serde::Serialize, serde::Deserialize)]
 663#[derive(Clone, PartialEq, ::prost::Message)]
 664pub struct Selection {
 665    #[prost(uint64, tag="1")]
 666    pub id: u64,
 667    #[prost(message, optional, tag="2")]
 668    pub start: ::core::option::Option<EditorAnchor>,
 669    #[prost(message, optional, tag="3")]
 670    pub end: ::core::option::Option<EditorAnchor>,
 671    #[prost(bool, tag="4")]
 672    pub reversed: bool,
 673}
 674#[derive(serde::Serialize, serde::Deserialize)]
 675#[derive(Clone, PartialEq, ::prost::Message)]
 676pub struct EditorAnchor {
 677    #[prost(uint64, tag="1")]
 678    pub excerpt_id: u64,
 679    #[prost(message, optional, tag="2")]
 680    pub anchor: ::core::option::Option<Anchor>,
 681}
 682#[derive(serde::Serialize, serde::Deserialize)]
 683#[derive(Clone, PartialEq, ::prost::Message)]
 684pub struct UpdateDiagnostics {
 685    #[prost(uint32, tag="1")]
 686    pub replica_id: u32,
 687    #[prost(uint32, tag="2")]
 688    pub lamport_timestamp: u32,
 689    #[prost(uint64, tag="3")]
 690    pub server_id: u64,
 691    #[prost(message, repeated, tag="4")]
 692    pub diagnostics: ::prost::alloc::vec::Vec<Diagnostic>,
 693}
 694#[derive(serde::Serialize, serde::Deserialize)]
 695#[derive(Hash, Eq)]
 696#[derive(Clone, PartialEq, ::prost::Message)]
 697pub struct Anchor {
 698    #[prost(uint32, tag="1")]
 699    pub replica_id: u32,
 700    #[prost(uint32, tag="2")]
 701    pub timestamp: u32,
 702    #[prost(uint64, tag="3")]
 703    pub offset: u64,
 704    #[prost(enumeration="Bias", tag="4")]
 705    pub bias: i32,
 706    #[prost(uint64, optional, tag="5")]
 707    pub buffer_id: ::core::option::Option<u64>,
 708}
 709#[derive(serde::Serialize, serde::Deserialize)]
 710#[derive(Clone, PartialEq, ::prost::Message)]
 711pub struct AnchorRange {
 712    #[prost(message, optional, tag="1")]
 713    pub start: ::core::option::Option<Anchor>,
 714    #[prost(message, optional, tag="2")]
 715    pub end: ::core::option::Option<Anchor>,
 716}
 717#[derive(serde::Serialize, serde::Deserialize)]
 718#[derive(Clone, PartialEq, ::prost::Message)]
 719pub struct Location {
 720    #[prost(uint64, tag="1")]
 721    pub buffer_id: u64,
 722    #[prost(message, optional, tag="2")]
 723    pub start: ::core::option::Option<Anchor>,
 724    #[prost(message, optional, tag="3")]
 725    pub end: ::core::option::Option<Anchor>,
 726}
 727#[derive(serde::Serialize, serde::Deserialize)]
 728#[derive(Clone, PartialEq, ::prost::Message)]
 729pub struct Diagnostic {
 730    #[prost(message, optional, tag="1")]
 731    pub start: ::core::option::Option<Anchor>,
 732    #[prost(message, optional, tag="2")]
 733    pub end: ::core::option::Option<Anchor>,
 734    #[prost(string, optional, tag="3")]
 735    pub source: ::core::option::Option<::prost::alloc::string::String>,
 736    #[prost(string, optional, tag="17")]
 737    pub registration_id: ::core::option::Option<::prost::alloc::string::String>,
 738    #[prost(enumeration="diagnostic::SourceKind", tag="16")]
 739    pub source_kind: i32,
 740    #[prost(enumeration="diagnostic::Severity", tag="4")]
 741    pub severity: i32,
 742    #[prost(string, tag="5")]
 743    pub message: ::prost::alloc::string::String,
 744    #[prost(string, optional, tag="6")]
 745    pub code: ::core::option::Option<::prost::alloc::string::String>,
 746    #[prost(uint64, tag="7")]
 747    pub group_id: u64,
 748    #[prost(bool, tag="8")]
 749    pub is_primary: bool,
 750    #[prost(bool, tag="10")]
 751    pub is_disk_based: bool,
 752    #[prost(bool, tag="11")]
 753    pub is_unnecessary: bool,
 754    #[prost(bool, tag="15")]
 755    pub underline: bool,
 756    #[prost(string, optional, tag="12")]
 757    pub data: ::core::option::Option<::prost::alloc::string::String>,
 758    #[prost(string, optional, tag="13")]
 759    pub code_description: ::core::option::Option<::prost::alloc::string::String>,
 760    #[prost(string, optional, tag="14")]
 761    pub markdown: ::core::option::Option<::prost::alloc::string::String>,
 762}
 763/// Nested message and enum types in `Diagnostic`.
 764pub mod diagnostic {
 765    #[derive(serde::Serialize, serde::Deserialize)]
 766    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
 767    #[repr(i32)]
 768    pub enum SourceKind {
 769        Pulled = 0,
 770        Pushed = 1,
 771        Other = 2,
 772    }
 773    #[derive(serde::Serialize, serde::Deserialize)]
 774    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
 775    #[repr(i32)]
 776    pub enum Severity {
 777        None = 0,
 778        Error = 1,
 779        Warning = 2,
 780        Information = 3,
 781        Hint = 4,
 782    }
 783}
 784#[derive(serde::Serialize, serde::Deserialize)]
 785#[derive(Clone, PartialEq, ::prost::Message)]
 786pub struct SearchQuery {
 787    #[prost(string, tag="2")]
 788    pub query: ::prost::alloc::string::String,
 789    #[prost(bool, tag="3")]
 790    pub regex: bool,
 791    #[prost(bool, tag="4")]
 792    pub whole_word: bool,
 793    #[prost(bool, tag="5")]
 794    pub case_sensitive: bool,
 795    #[prost(string, repeated, tag="10")]
 796    pub files_to_include: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
 797    #[prost(string, repeated, tag="11")]
 798    pub files_to_exclude: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
 799    #[prost(bool, tag="9")]
 800    pub match_full_paths: bool,
 801    #[prost(bool, tag="8")]
 802    pub include_ignored: bool,
 803    #[prost(string, tag="6")]
 804    pub files_to_include_legacy: ::prost::alloc::string::String,
 805    #[prost(string, tag="7")]
 806    pub files_to_exclude_legacy: ::prost::alloc::string::String,
 807}
 808#[derive(serde::Serialize, serde::Deserialize)]
 809#[derive(Clone, PartialEq, ::prost::Message)]
 810pub struct FindSearchCandidates {
 811    #[prost(uint64, tag="1")]
 812    pub project_id: u64,
 813    #[prost(message, optional, tag="2")]
 814    pub query: ::core::option::Option<SearchQuery>,
 815    #[prost(uint64, tag="3")]
 816    pub limit: u64,
 817}
 818#[derive(serde::Serialize, serde::Deserialize)]
 819#[derive(Clone, PartialEq, ::prost::Message)]
 820pub struct FindSearchCandidatesResponse {
 821    #[prost(uint64, repeated, tag="1")]
 822    pub buffer_ids: ::prost::alloc::vec::Vec<u64>,
 823}
 824#[derive(serde::Serialize, serde::Deserialize)]
 825#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
 826#[repr(i32)]
 827pub enum LineEnding {
 828    Unix = 0,
 829    Windows = 1,
 830}
 831#[derive(serde::Serialize, serde::Deserialize)]
 832#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
 833#[repr(i32)]
 834pub enum CursorShape {
 835    CursorBar = 0,
 836    CursorBlock = 1,
 837    CursorUnderscore = 2,
 838    CursorHollow = 3,
 839}
 840#[derive(serde::Serialize, serde::Deserialize)]
 841#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
 842#[repr(i32)]
 843pub enum Bias {
 844    Left = 0,
 845    Right = 1,
 846}
 847#[derive(serde::Serialize, serde::Deserialize)]
 848#[derive(Clone, PartialEq, ::prost::Message)]
 849pub struct TaskContextForLocation {
 850    #[prost(uint64, tag="1")]
 851    pub project_id: u64,
 852    #[prost(message, optional, tag="2")]
 853    pub location: ::core::option::Option<Location>,
 854    #[prost(map="string, string", tag="3")]
 855    pub task_variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
 856}
 857#[derive(serde::Serialize, serde::Deserialize)]
 858#[derive(Clone, PartialEq, ::prost::Message)]
 859pub struct TaskContext {
 860    #[prost(string, optional, tag="1")]
 861    pub cwd: ::core::option::Option<::prost::alloc::string::String>,
 862    #[prost(map="string, string", tag="2")]
 863    pub task_variables: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
 864    #[prost(map="string, string", tag="3")]
 865    pub project_env: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
 866}
 867#[derive(serde::Serialize, serde::Deserialize)]
 868#[derive(Clone, PartialEq, ::prost::Message)]
 869pub struct Shell {
 870    #[prost(oneof="shell::ShellType", tags="1, 2, 3")]
 871    pub shell_type: ::core::option::Option<shell::ShellType>,
 872}
 873/// Nested message and enum types in `Shell`.
 874pub mod shell {
 875    #[derive(serde::Serialize, serde::Deserialize)]
 876    #[derive(Clone, PartialEq, ::prost::Message)]
 877    pub struct WithArguments {
 878        #[prost(string, tag="1")]
 879        pub program: ::prost::alloc::string::String,
 880        #[prost(string, repeated, tag="2")]
 881        pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
 882    }
 883    #[derive(serde::Serialize, serde::Deserialize)]
 884    #[derive(Clone, PartialEq, ::prost::Oneof)]
 885    pub enum ShellType {
 886        #[prost(message, tag="1")]
 887        System(super::System),
 888        #[prost(string, tag="2")]
 889        Program(::prost::alloc::string::String),
 890        #[prost(message, tag="3")]
 891        WithArguments(WithArguments),
 892    }
 893}
 894#[derive(serde::Serialize, serde::Deserialize)]
 895#[derive(Clone, PartialEq, ::prost::Message)]
 896pub struct System {
 897}
 898#[derive(serde::Serialize, serde::Deserialize)]
 899#[derive(Clone, PartialEq, ::prost::Message)]
 900pub struct SpawnInTerminal {
 901    #[prost(string, tag="1")]
 902    pub label: ::prost::alloc::string::String,
 903    #[prost(string, optional, tag="2")]
 904    pub command: ::core::option::Option<::prost::alloc::string::String>,
 905    #[prost(string, repeated, tag="3")]
 906    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
 907    #[prost(map="string, string", tag="4")]
 908    pub env: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
 909    #[prost(string, optional, tag="5")]
 910    pub cwd: ::core::option::Option<::prost::alloc::string::String>,
 911}
 912#[derive(serde::Serialize, serde::Deserialize)]
 913#[derive(Clone, PartialEq, ::prost::Message)]
 914pub struct GetDirectoryEnvironment {
 915    #[prost(uint64, tag="1")]
 916    pub project_id: u64,
 917    #[prost(message, optional, tag="2")]
 918    pub shell: ::core::option::Option<Shell>,
 919    #[prost(string, tag="3")]
 920    pub directory: ::prost::alloc::string::String,
 921}
 922#[derive(serde::Serialize, serde::Deserialize)]
 923#[derive(Clone, PartialEq, ::prost::Message)]
 924pub struct DirectoryEnvironment {
 925    #[prost(map="string, string", tag="1")]
 926    pub environment: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
 927}
 928#[derive(serde::Serialize, serde::Deserialize)]
 929#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
 930#[repr(i32)]
 931pub enum RevealStrategy {
 932    RevealAlways = 0,
 933    RevealNever = 1,
 934}
 935#[derive(serde::Serialize, serde::Deserialize)]
 936#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
 937#[repr(i32)]
 938pub enum HideStrategy {
 939    HideAlways = 0,
 940    HideNever = 1,
 941    HideOnSuccess = 2,
 942}
 943#[derive(serde::Serialize, serde::Deserialize)]
 944#[derive(Clone, PartialEq, ::prost::Message)]
 945pub struct Context {
 946    #[prost(message, repeated, tag="1")]
 947    pub operations: ::prost::alloc::vec::Vec<ContextOperation>,
 948}
 949#[derive(serde::Serialize, serde::Deserialize)]
 950#[derive(Clone, PartialEq, ::prost::Message)]
 951pub struct ContextMetadata {
 952    #[prost(string, tag="1")]
 953    pub context_id: ::prost::alloc::string::String,
 954    #[prost(string, optional, tag="2")]
 955    pub summary: ::core::option::Option<::prost::alloc::string::String>,
 956}
 957#[derive(serde::Serialize, serde::Deserialize)]
 958#[derive(Clone, PartialEq, ::prost::Message)]
 959pub struct ContextMessageStatus {
 960    #[prost(oneof="context_message_status::Variant", tags="1, 2, 3, 4")]
 961    pub variant: ::core::option::Option<context_message_status::Variant>,
 962}
 963/// Nested message and enum types in `ContextMessageStatus`.
 964pub mod context_message_status {
 965    #[derive(serde::Serialize, serde::Deserialize)]
 966    #[derive(Clone, PartialEq, ::prost::Message)]
 967    pub struct Done {
 968    }
 969    #[derive(serde::Serialize, serde::Deserialize)]
 970    #[derive(Clone, PartialEq, ::prost::Message)]
 971    pub struct Pending {
 972    }
 973    #[derive(serde::Serialize, serde::Deserialize)]
 974    #[derive(Clone, PartialEq, ::prost::Message)]
 975    pub struct Error {
 976        #[prost(string, tag="1")]
 977        pub message: ::prost::alloc::string::String,
 978    }
 979    #[derive(serde::Serialize, serde::Deserialize)]
 980    #[derive(Clone, PartialEq, ::prost::Message)]
 981    pub struct Canceled {
 982    }
 983    #[derive(serde::Serialize, serde::Deserialize)]
 984    #[derive(Clone, PartialEq, ::prost::Oneof)]
 985    pub enum Variant {
 986        #[prost(message, tag="1")]
 987        Done(Done),
 988        #[prost(message, tag="2")]
 989        Pending(Pending),
 990        #[prost(message, tag="3")]
 991        Error(Error),
 992        #[prost(message, tag="4")]
 993        Canceled(Canceled),
 994    }
 995}
 996#[derive(serde::Serialize, serde::Deserialize)]
 997#[derive(Clone, PartialEq, ::prost::Message)]
 998pub struct ContextMessage {
 999    #[prost(message, optional, tag="1")]
1000    pub id: ::core::option::Option<LamportTimestamp>,
1001    #[prost(message, optional, tag="2")]
1002    pub start: ::core::option::Option<Anchor>,
1003    #[prost(enumeration="LanguageModelRole", tag="3")]
1004    pub role: i32,
1005    #[prost(message, optional, tag="4")]
1006    pub status: ::core::option::Option<ContextMessageStatus>,
1007}
1008#[derive(serde::Serialize, serde::Deserialize)]
1009#[derive(Clone, PartialEq, ::prost::Message)]
1010pub struct SlashCommandOutputSection {
1011    #[prost(message, optional, tag="1")]
1012    pub range: ::core::option::Option<AnchorRange>,
1013    #[prost(string, tag="2")]
1014    pub icon_name: ::prost::alloc::string::String,
1015    #[prost(string, tag="3")]
1016    pub label: ::prost::alloc::string::String,
1017    #[prost(string, optional, tag="4")]
1018    pub metadata: ::core::option::Option<::prost::alloc::string::String>,
1019}
1020#[derive(serde::Serialize, serde::Deserialize)]
1021#[derive(Clone, PartialEq, ::prost::Message)]
1022pub struct ThoughtProcessOutputSection {
1023    #[prost(message, optional, tag="1")]
1024    pub range: ::core::option::Option<AnchorRange>,
1025}
1026#[derive(serde::Serialize, serde::Deserialize)]
1027#[derive(Clone, PartialEq, ::prost::Message)]
1028pub struct ContextOperation {
1029    #[prost(oneof="context_operation::Variant", tags="1, 2, 3, 5, 6, 7, 8, 9")]
1030    pub variant: ::core::option::Option<context_operation::Variant>,
1031}
1032/// Nested message and enum types in `ContextOperation`.
1033pub mod context_operation {
1034    #[derive(serde::Serialize, serde::Deserialize)]
1035    #[derive(Clone, PartialEq, ::prost::Message)]
1036    pub struct InsertMessage {
1037        #[prost(message, optional, tag="1")]
1038        pub message: ::core::option::Option<super::ContextMessage>,
1039        #[prost(message, repeated, tag="2")]
1040        pub version: ::prost::alloc::vec::Vec<super::VectorClockEntry>,
1041    }
1042    #[derive(serde::Serialize, serde::Deserialize)]
1043    #[derive(Clone, PartialEq, ::prost::Message)]
1044    pub struct UpdateMessage {
1045        #[prost(message, optional, tag="1")]
1046        pub message_id: ::core::option::Option<super::LamportTimestamp>,
1047        #[prost(enumeration="super::LanguageModelRole", tag="2")]
1048        pub role: i32,
1049        #[prost(message, optional, tag="3")]
1050        pub status: ::core::option::Option<super::ContextMessageStatus>,
1051        #[prost(message, optional, tag="4")]
1052        pub timestamp: ::core::option::Option<super::LamportTimestamp>,
1053        #[prost(message, repeated, tag="5")]
1054        pub version: ::prost::alloc::vec::Vec<super::VectorClockEntry>,
1055    }
1056    #[derive(serde::Serialize, serde::Deserialize)]
1057    #[derive(Clone, PartialEq, ::prost::Message)]
1058    pub struct UpdateSummary {
1059        #[prost(string, tag="1")]
1060        pub summary: ::prost::alloc::string::String,
1061        #[prost(bool, tag="2")]
1062        pub done: bool,
1063        #[prost(message, optional, tag="3")]
1064        pub timestamp: ::core::option::Option<super::LamportTimestamp>,
1065        #[prost(message, repeated, tag="4")]
1066        pub version: ::prost::alloc::vec::Vec<super::VectorClockEntry>,
1067    }
1068    #[derive(serde::Serialize, serde::Deserialize)]
1069    #[derive(Clone, PartialEq, ::prost::Message)]
1070    pub struct SlashCommandStarted {
1071        #[prost(message, optional, tag="1")]
1072        pub id: ::core::option::Option<super::LamportTimestamp>,
1073        #[prost(message, optional, tag="2")]
1074        pub output_range: ::core::option::Option<super::AnchorRange>,
1075        #[prost(string, tag="3")]
1076        pub name: ::prost::alloc::string::String,
1077        #[prost(message, repeated, tag="4")]
1078        pub version: ::prost::alloc::vec::Vec<super::VectorClockEntry>,
1079    }
1080    #[derive(serde::Serialize, serde::Deserialize)]
1081    #[derive(Clone, PartialEq, ::prost::Message)]
1082    pub struct SlashCommandOutputSectionAdded {
1083        #[prost(message, optional, tag="1")]
1084        pub timestamp: ::core::option::Option<super::LamportTimestamp>,
1085        #[prost(message, optional, tag="2")]
1086        pub section: ::core::option::Option<super::SlashCommandOutputSection>,
1087        #[prost(message, repeated, tag="3")]
1088        pub version: ::prost::alloc::vec::Vec<super::VectorClockEntry>,
1089    }
1090    #[derive(serde::Serialize, serde::Deserialize)]
1091    #[derive(Clone, PartialEq, ::prost::Message)]
1092    pub struct SlashCommandCompleted {
1093        #[prost(message, optional, tag="1")]
1094        pub id: ::core::option::Option<super::LamportTimestamp>,
1095        #[prost(message, optional, tag="3")]
1096        pub timestamp: ::core::option::Option<super::LamportTimestamp>,
1097        #[prost(string, optional, tag="4")]
1098        pub error_message: ::core::option::Option<::prost::alloc::string::String>,
1099        #[prost(message, repeated, tag="5")]
1100        pub version: ::prost::alloc::vec::Vec<super::VectorClockEntry>,
1101    }
1102    #[derive(serde::Serialize, serde::Deserialize)]
1103    #[derive(Clone, PartialEq, ::prost::Message)]
1104    pub struct ThoughtProcessOutputSectionAdded {
1105        #[prost(message, optional, tag="1")]
1106        pub timestamp: ::core::option::Option<super::LamportTimestamp>,
1107        #[prost(message, optional, tag="2")]
1108        pub section: ::core::option::Option<super::ThoughtProcessOutputSection>,
1109        #[prost(message, repeated, tag="3")]
1110        pub version: ::prost::alloc::vec::Vec<super::VectorClockEntry>,
1111    }
1112    #[derive(serde::Serialize, serde::Deserialize)]
1113    #[derive(Clone, PartialEq, ::prost::Message)]
1114    pub struct BufferOperation {
1115        #[prost(message, optional, tag="1")]
1116        pub operation: ::core::option::Option<super::Operation>,
1117    }
1118    #[derive(serde::Serialize, serde::Deserialize)]
1119    #[derive(Clone, PartialEq, ::prost::Oneof)]
1120    pub enum Variant {
1121        #[prost(message, tag="1")]
1122        InsertMessage(InsertMessage),
1123        #[prost(message, tag="2")]
1124        UpdateMessage(UpdateMessage),
1125        #[prost(message, tag="3")]
1126        UpdateSummary(UpdateSummary),
1127        #[prost(message, tag="5")]
1128        BufferOperation(BufferOperation),
1129        #[prost(message, tag="6")]
1130        SlashCommandStarted(SlashCommandStarted),
1131        #[prost(message, tag="7")]
1132        SlashCommandOutputSectionAdded(SlashCommandOutputSectionAdded),
1133        #[prost(message, tag="8")]
1134        SlashCommandCompleted(SlashCommandCompleted),
1135        #[prost(message, tag="9")]
1136        ThoughtProcessOutputSectionAdded(ThoughtProcessOutputSectionAdded),
1137    }
1138}
1139#[derive(serde::Serialize, serde::Deserialize)]
1140#[derive(Clone, PartialEq, ::prost::Message)]
1141pub struct AdvertiseContexts {
1142    #[prost(uint64, tag="1")]
1143    pub project_id: u64,
1144    #[prost(message, repeated, tag="2")]
1145    pub contexts: ::prost::alloc::vec::Vec<ContextMetadata>,
1146}
1147#[derive(serde::Serialize, serde::Deserialize)]
1148#[derive(Clone, PartialEq, ::prost::Message)]
1149pub struct OpenContext {
1150    #[prost(uint64, tag="1")]
1151    pub project_id: u64,
1152    #[prost(string, tag="2")]
1153    pub context_id: ::prost::alloc::string::String,
1154}
1155#[derive(serde::Serialize, serde::Deserialize)]
1156#[derive(Clone, PartialEq, ::prost::Message)]
1157pub struct OpenContextResponse {
1158    #[prost(message, optional, tag="1")]
1159    pub context: ::core::option::Option<Context>,
1160}
1161#[derive(serde::Serialize, serde::Deserialize)]
1162#[derive(Clone, PartialEq, ::prost::Message)]
1163pub struct CreateContext {
1164    #[prost(uint64, tag="1")]
1165    pub project_id: u64,
1166}
1167#[derive(serde::Serialize, serde::Deserialize)]
1168#[derive(Clone, PartialEq, ::prost::Message)]
1169pub struct CreateContextResponse {
1170    #[prost(string, tag="1")]
1171    pub context_id: ::prost::alloc::string::String,
1172    #[prost(message, optional, tag="2")]
1173    pub context: ::core::option::Option<Context>,
1174}
1175#[derive(serde::Serialize, serde::Deserialize)]
1176#[derive(Clone, PartialEq, ::prost::Message)]
1177pub struct UpdateContext {
1178    #[prost(uint64, tag="1")]
1179    pub project_id: u64,
1180    #[prost(string, tag="2")]
1181    pub context_id: ::prost::alloc::string::String,
1182    #[prost(message, optional, tag="3")]
1183    pub operation: ::core::option::Option<ContextOperation>,
1184}
1185#[derive(serde::Serialize, serde::Deserialize)]
1186#[derive(Clone, PartialEq, ::prost::Message)]
1187pub struct ContextVersion {
1188    #[prost(string, tag="1")]
1189    pub context_id: ::prost::alloc::string::String,
1190    #[prost(message, repeated, tag="2")]
1191    pub context_version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1192    #[prost(message, repeated, tag="3")]
1193    pub buffer_version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1194}
1195#[derive(serde::Serialize, serde::Deserialize)]
1196#[derive(Clone, PartialEq, ::prost::Message)]
1197pub struct SynchronizeContexts {
1198    #[prost(uint64, tag="1")]
1199    pub project_id: u64,
1200    #[prost(message, repeated, tag="2")]
1201    pub contexts: ::prost::alloc::vec::Vec<ContextVersion>,
1202}
1203#[derive(serde::Serialize, serde::Deserialize)]
1204#[derive(Clone, PartialEq, ::prost::Message)]
1205pub struct SynchronizeContextsResponse {
1206    #[prost(message, repeated, tag="1")]
1207    pub contexts: ::prost::alloc::vec::Vec<ContextVersion>,
1208}
1209#[derive(serde::Serialize, serde::Deserialize)]
1210#[derive(Clone, PartialEq, ::prost::Message)]
1211pub struct GetAgentServerCommand {
1212    #[prost(uint64, tag="1")]
1213    pub project_id: u64,
1214    #[prost(string, tag="2")]
1215    pub name: ::prost::alloc::string::String,
1216    #[prost(string, optional, tag="3")]
1217    pub root_dir: ::core::option::Option<::prost::alloc::string::String>,
1218}
1219#[derive(serde::Serialize, serde::Deserialize)]
1220#[derive(Clone, PartialEq, ::prost::Message)]
1221pub struct AgentServerCommand {
1222    #[prost(string, tag="1")]
1223    pub path: ::prost::alloc::string::String,
1224    #[prost(string, repeated, tag="2")]
1225    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1226    #[prost(map="string, string", tag="3")]
1227    pub env: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1228    #[prost(string, tag="4")]
1229    pub root_dir: ::prost::alloc::string::String,
1230    #[prost(message, optional, tag="5")]
1231    pub login: ::core::option::Option<SpawnInTerminal>,
1232}
1233#[derive(serde::Serialize, serde::Deserialize)]
1234#[derive(Clone, PartialEq, ::prost::Message)]
1235pub struct ExternalAgentsUpdated {
1236    #[prost(uint64, tag="1")]
1237    pub project_id: u64,
1238    #[prost(string, repeated, tag="2")]
1239    pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1240}
1241#[derive(serde::Serialize, serde::Deserialize)]
1242#[derive(Clone, PartialEq, ::prost::Message)]
1243pub struct ExternalExtensionAgentTarget {
1244    #[prost(string, tag="1")]
1245    pub archive: ::prost::alloc::string::String,
1246    #[prost(string, tag="2")]
1247    pub cmd: ::prost::alloc::string::String,
1248    #[prost(string, repeated, tag="3")]
1249    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1250    #[prost(string, optional, tag="4")]
1251    pub sha256: ::core::option::Option<::prost::alloc::string::String>,
1252    #[prost(map="string, string", tag="5")]
1253    pub env: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1254}
1255#[derive(serde::Serialize, serde::Deserialize)]
1256#[derive(Clone, PartialEq, ::prost::Message)]
1257pub struct ExternalExtensionAgent {
1258    #[prost(string, tag="1")]
1259    pub name: ::prost::alloc::string::String,
1260    #[prost(string, optional, tag="2")]
1261    pub icon_path: ::core::option::Option<::prost::alloc::string::String>,
1262    #[prost(string, tag="3")]
1263    pub extension_id: ::prost::alloc::string::String,
1264    #[prost(map="string, message", tag="4")]
1265    pub targets: ::std::collections::HashMap<::prost::alloc::string::String, ExternalExtensionAgentTarget>,
1266    #[prost(map="string, string", tag="5")]
1267    pub env: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
1268}
1269#[derive(serde::Serialize, serde::Deserialize)]
1270#[derive(Clone, PartialEq, ::prost::Message)]
1271pub struct ExternalExtensionAgentsUpdated {
1272    #[prost(uint64, tag="1")]
1273    pub project_id: u64,
1274    #[prost(message, repeated, tag="2")]
1275    pub agents: ::prost::alloc::vec::Vec<ExternalExtensionAgent>,
1276}
1277#[derive(serde::Serialize, serde::Deserialize)]
1278#[derive(Clone, PartialEq, ::prost::Message)]
1279pub struct ExternalAgentLoadingStatusUpdated {
1280    #[prost(uint64, tag="1")]
1281    pub project_id: u64,
1282    #[prost(string, tag="2")]
1283    pub name: ::prost::alloc::string::String,
1284    #[prost(string, tag="3")]
1285    pub status: ::prost::alloc::string::String,
1286}
1287#[derive(serde::Serialize, serde::Deserialize)]
1288#[derive(Clone, PartialEq, ::prost::Message)]
1289pub struct NewExternalAgentVersionAvailable {
1290    #[prost(uint64, tag="1")]
1291    pub project_id: u64,
1292    #[prost(string, tag="2")]
1293    pub name: ::prost::alloc::string::String,
1294    #[prost(string, tag="3")]
1295    pub version: ::prost::alloc::string::String,
1296}
1297#[derive(serde::Serialize, serde::Deserialize)]
1298#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1299#[repr(i32)]
1300pub enum LanguageModelRole {
1301    LanguageModelUser = 0,
1302    LanguageModelAssistant = 1,
1303    LanguageModelSystem = 2,
1304}
1305#[derive(serde::Serialize, serde::Deserialize)]
1306#[derive(Clone, PartialEq, ::prost::Message)]
1307pub struct UpdateInviteInfo {
1308    #[prost(string, tag="1")]
1309    pub url: ::prost::alloc::string::String,
1310    #[prost(uint32, tag="2")]
1311    pub count: u32,
1312}
1313#[derive(serde::Serialize, serde::Deserialize)]
1314#[derive(Clone, PartialEq, ::prost::Message)]
1315pub struct ShutdownRemoteServer {
1316}
1317#[derive(serde::Serialize, serde::Deserialize)]
1318#[derive(Clone, PartialEq, ::prost::Message)]
1319pub struct Toast {
1320    #[prost(uint64, tag="1")]
1321    pub project_id: u64,
1322    #[prost(string, tag="2")]
1323    pub notification_id: ::prost::alloc::string::String,
1324    #[prost(string, tag="3")]
1325    pub message: ::prost::alloc::string::String,
1326}
1327#[derive(serde::Serialize, serde::Deserialize)]
1328#[derive(Clone, PartialEq, ::prost::Message)]
1329pub struct HideToast {
1330    #[prost(uint64, tag="1")]
1331    pub project_id: u64,
1332    #[prost(string, tag="2")]
1333    pub notification_id: ::prost::alloc::string::String,
1334}
1335#[derive(serde::Serialize, serde::Deserialize)]
1336#[derive(Clone, PartialEq, ::prost::Message)]
1337pub struct OpenServerSettings {
1338    #[prost(uint64, tag="1")]
1339    pub project_id: u64,
1340}
1341#[derive(serde::Serialize, serde::Deserialize)]
1342#[derive(Clone, PartialEq, ::prost::Message)]
1343pub struct GetCrashFiles {
1344}
1345#[derive(serde::Serialize, serde::Deserialize)]
1346#[derive(Clone, PartialEq, ::prost::Message)]
1347pub struct GetCrashFilesResponse {
1348    #[prost(message, repeated, tag="1")]
1349    pub crashes: ::prost::alloc::vec::Vec<CrashReport>,
1350}
1351#[derive(serde::Serialize, serde::Deserialize)]
1352#[derive(Clone, PartialEq, ::prost::Message)]
1353pub struct CrashReport {
1354    #[prost(string, tag="3")]
1355    pub metadata: ::prost::alloc::string::String,
1356    #[prost(bytes="vec", tag="4")]
1357    pub minidump_contents: ::prost::alloc::vec::Vec<u8>,
1358}
1359#[derive(serde::Serialize, serde::Deserialize)]
1360#[derive(Clone, PartialEq, ::prost::Message)]
1361pub struct Extension {
1362    #[prost(string, tag="1")]
1363    pub id: ::prost::alloc::string::String,
1364    #[prost(string, tag="2")]
1365    pub version: ::prost::alloc::string::String,
1366    #[prost(bool, tag="3")]
1367    pub dev: bool,
1368}
1369#[derive(serde::Serialize, serde::Deserialize)]
1370#[derive(Clone, PartialEq, ::prost::Message)]
1371pub struct SyncExtensions {
1372    #[prost(message, repeated, tag="1")]
1373    pub extensions: ::prost::alloc::vec::Vec<Extension>,
1374}
1375#[derive(serde::Serialize, serde::Deserialize)]
1376#[derive(Clone, PartialEq, ::prost::Message)]
1377pub struct SyncExtensionsResponse {
1378    #[prost(string, tag="1")]
1379    pub tmp_dir: ::prost::alloc::string::String,
1380    #[prost(message, repeated, tag="2")]
1381    pub missing_extensions: ::prost::alloc::vec::Vec<Extension>,
1382}
1383#[derive(serde::Serialize, serde::Deserialize)]
1384#[derive(Clone, PartialEq, ::prost::Message)]
1385pub struct InstallExtension {
1386    #[prost(message, optional, tag="1")]
1387    pub extension: ::core::option::Option<Extension>,
1388    #[prost(string, tag="2")]
1389    pub tmp_dir: ::prost::alloc::string::String,
1390}
1391#[derive(serde::Serialize, serde::Deserialize)]
1392#[derive(Clone, PartialEq, ::prost::Message)]
1393pub struct AskPassRequest {
1394    #[prost(uint64, tag="1")]
1395    pub project_id: u64,
1396    #[prost(uint64, tag="3")]
1397    pub repository_id: u64,
1398    #[prost(uint64, tag="4")]
1399    pub askpass_id: u64,
1400    #[prost(string, tag="5")]
1401    pub prompt: ::prost::alloc::string::String,
1402}
1403#[derive(serde::Serialize, serde::Deserialize)]
1404#[derive(Clone, PartialEq, ::prost::Message)]
1405pub struct AskPassResponse {
1406    #[prost(string, tag="1")]
1407    pub response: ::prost::alloc::string::String,
1408}
1409#[derive(serde::Serialize, serde::Deserialize)]
1410#[derive(Clone, PartialEq, ::prost::Message)]
1411pub struct GetSupermavenApiKey {
1412}
1413#[derive(serde::Serialize, serde::Deserialize)]
1414#[derive(Clone, PartialEq, ::prost::Message)]
1415pub struct GetSupermavenApiKeyResponse {
1416    #[prost(string, tag="1")]
1417    pub api_key: ::prost::alloc::string::String,
1418}
1419#[derive(serde::Serialize, serde::Deserialize)]
1420#[derive(Clone, PartialEq, ::prost::Message)]
1421pub struct GetDefinition {
1422    #[prost(uint64, tag="1")]
1423    pub project_id: u64,
1424    #[prost(uint64, tag="2")]
1425    pub buffer_id: u64,
1426    #[prost(message, optional, tag="3")]
1427    pub position: ::core::option::Option<Anchor>,
1428    #[prost(message, repeated, tag="4")]
1429    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1430}
1431#[derive(serde::Serialize, serde::Deserialize)]
1432#[derive(Clone, PartialEq, ::prost::Message)]
1433pub struct GetDefinitionResponse {
1434    #[prost(message, repeated, tag="1")]
1435    pub links: ::prost::alloc::vec::Vec<LocationLink>,
1436}
1437#[derive(serde::Serialize, serde::Deserialize)]
1438#[derive(Clone, PartialEq, ::prost::Message)]
1439pub struct GetDeclaration {
1440    #[prost(uint64, tag="1")]
1441    pub project_id: u64,
1442    #[prost(uint64, tag="2")]
1443    pub buffer_id: u64,
1444    #[prost(message, optional, tag="3")]
1445    pub position: ::core::option::Option<Anchor>,
1446    #[prost(message, repeated, tag="4")]
1447    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1448}
1449#[derive(serde::Serialize, serde::Deserialize)]
1450#[derive(Clone, PartialEq, ::prost::Message)]
1451pub struct GetDeclarationResponse {
1452    #[prost(message, repeated, tag="1")]
1453    pub links: ::prost::alloc::vec::Vec<LocationLink>,
1454}
1455#[derive(serde::Serialize, serde::Deserialize)]
1456#[derive(Clone, PartialEq, ::prost::Message)]
1457pub struct GetTypeDefinition {
1458    #[prost(uint64, tag="1")]
1459    pub project_id: u64,
1460    #[prost(uint64, tag="2")]
1461    pub buffer_id: u64,
1462    #[prost(message, optional, tag="3")]
1463    pub position: ::core::option::Option<Anchor>,
1464    #[prost(message, repeated, tag="4")]
1465    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1466}
1467#[derive(serde::Serialize, serde::Deserialize)]
1468#[derive(Clone, PartialEq, ::prost::Message)]
1469pub struct GetTypeDefinitionResponse {
1470    #[prost(message, repeated, tag="1")]
1471    pub links: ::prost::alloc::vec::Vec<LocationLink>,
1472}
1473#[derive(serde::Serialize, serde::Deserialize)]
1474#[derive(Clone, PartialEq, ::prost::Message)]
1475pub struct GetImplementation {
1476    #[prost(uint64, tag="1")]
1477    pub project_id: u64,
1478    #[prost(uint64, tag="2")]
1479    pub buffer_id: u64,
1480    #[prost(message, optional, tag="3")]
1481    pub position: ::core::option::Option<Anchor>,
1482    #[prost(message, repeated, tag="4")]
1483    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1484}
1485#[derive(serde::Serialize, serde::Deserialize)]
1486#[derive(Clone, PartialEq, ::prost::Message)]
1487pub struct GetImplementationResponse {
1488    #[prost(message, repeated, tag="1")]
1489    pub links: ::prost::alloc::vec::Vec<LocationLink>,
1490}
1491#[derive(serde::Serialize, serde::Deserialize)]
1492#[derive(Clone, PartialEq, ::prost::Message)]
1493pub struct GetReferences {
1494    #[prost(uint64, tag="1")]
1495    pub project_id: u64,
1496    #[prost(uint64, tag="2")]
1497    pub buffer_id: u64,
1498    #[prost(message, optional, tag="3")]
1499    pub position: ::core::option::Option<Anchor>,
1500    #[prost(message, repeated, tag="4")]
1501    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1502}
1503#[derive(serde::Serialize, serde::Deserialize)]
1504#[derive(Clone, PartialEq, ::prost::Message)]
1505pub struct GetReferencesResponse {
1506    #[prost(message, repeated, tag="1")]
1507    pub locations: ::prost::alloc::vec::Vec<Location>,
1508}
1509#[derive(serde::Serialize, serde::Deserialize)]
1510#[derive(Clone, PartialEq, ::prost::Message)]
1511pub struct GetDocumentHighlights {
1512    #[prost(uint64, tag="1")]
1513    pub project_id: u64,
1514    #[prost(uint64, tag="2")]
1515    pub buffer_id: u64,
1516    #[prost(message, optional, tag="3")]
1517    pub position: ::core::option::Option<Anchor>,
1518    #[prost(message, repeated, tag="4")]
1519    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1520}
1521#[derive(serde::Serialize, serde::Deserialize)]
1522#[derive(Clone, PartialEq, ::prost::Message)]
1523pub struct GetDocumentHighlightsResponse {
1524    #[prost(message, repeated, tag="1")]
1525    pub highlights: ::prost::alloc::vec::Vec<DocumentHighlight>,
1526}
1527#[derive(serde::Serialize, serde::Deserialize)]
1528#[derive(Clone, PartialEq, ::prost::Message)]
1529pub struct LocationLink {
1530    #[prost(message, optional, tag="1")]
1531    pub origin: ::core::option::Option<Location>,
1532    #[prost(message, optional, tag="2")]
1533    pub target: ::core::option::Option<Location>,
1534}
1535#[derive(serde::Serialize, serde::Deserialize)]
1536#[derive(Clone, PartialEq, ::prost::Message)]
1537pub struct DocumentHighlight {
1538    #[prost(enumeration="document_highlight::Kind", tag="1")]
1539    pub kind: i32,
1540    #[prost(message, optional, tag="2")]
1541    pub start: ::core::option::Option<Anchor>,
1542    #[prost(message, optional, tag="3")]
1543    pub end: ::core::option::Option<Anchor>,
1544}
1545/// Nested message and enum types in `DocumentHighlight`.
1546pub mod document_highlight {
1547    #[derive(serde::Serialize, serde::Deserialize)]
1548    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1549    #[repr(i32)]
1550    pub enum Kind {
1551        Text = 0,
1552        Read = 1,
1553        Write = 2,
1554    }
1555}
1556#[derive(serde::Serialize, serde::Deserialize)]
1557#[derive(Clone, PartialEq, ::prost::Message)]
1558pub struct GetProjectSymbols {
1559    #[prost(uint64, tag="1")]
1560    pub project_id: u64,
1561    #[prost(string, tag="2")]
1562    pub query: ::prost::alloc::string::String,
1563}
1564#[derive(serde::Serialize, serde::Deserialize)]
1565#[derive(Clone, PartialEq, ::prost::Message)]
1566pub struct GetProjectSymbolsResponse {
1567    #[prost(message, repeated, tag="4")]
1568    pub symbols: ::prost::alloc::vec::Vec<Symbol>,
1569}
1570#[derive(serde::Serialize, serde::Deserialize)]
1571#[derive(Clone, PartialEq, ::prost::Message)]
1572pub struct Symbol {
1573    #[prost(uint64, tag="1")]
1574    pub source_worktree_id: u64,
1575    #[prost(uint64, tag="2")]
1576    pub worktree_id: u64,
1577    #[prost(string, tag="3")]
1578    pub language_server_name: ::prost::alloc::string::String,
1579    #[prost(string, tag="4")]
1580    pub name: ::prost::alloc::string::String,
1581    #[prost(int32, tag="5")]
1582    pub kind: i32,
1583    #[prost(string, tag="6")]
1584    pub path: ::prost::alloc::string::String,
1585    /// Cannot use generate anchors for unopened files,
1586    /// so we are forced to use point coords instead
1587    #[prost(message, optional, tag="7")]
1588    pub start: ::core::option::Option<PointUtf16>,
1589    #[prost(message, optional, tag="8")]
1590    pub end: ::core::option::Option<PointUtf16>,
1591    #[prost(bytes="vec", tag="9")]
1592    pub signature: ::prost::alloc::vec::Vec<u8>,
1593    #[prost(uint64, tag="10")]
1594    pub language_server_id: u64,
1595}
1596#[derive(serde::Serialize, serde::Deserialize)]
1597#[derive(Clone, PartialEq, ::prost::Message)]
1598pub struct GetDocumentSymbols {
1599    #[prost(uint64, tag="1")]
1600    pub project_id: u64,
1601    #[prost(uint64, tag="2")]
1602    pub buffer_id: u64,
1603    #[prost(message, repeated, tag="3")]
1604    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1605}
1606#[derive(serde::Serialize, serde::Deserialize)]
1607#[derive(Clone, PartialEq, ::prost::Message)]
1608pub struct GetDocumentSymbolsResponse {
1609    #[prost(message, repeated, tag="1")]
1610    pub symbols: ::prost::alloc::vec::Vec<DocumentSymbol>,
1611}
1612#[derive(serde::Serialize, serde::Deserialize)]
1613#[derive(Clone, PartialEq, ::prost::Message)]
1614pub struct DocumentSymbol {
1615    #[prost(string, tag="1")]
1616    pub name: ::prost::alloc::string::String,
1617    #[prost(int32, tag="2")]
1618    pub kind: i32,
1619    /// Cannot use generate anchors for unopened files,
1620    /// so we are forced to use point coords instead
1621    #[prost(message, optional, tag="3")]
1622    pub start: ::core::option::Option<PointUtf16>,
1623    #[prost(message, optional, tag="4")]
1624    pub end: ::core::option::Option<PointUtf16>,
1625    #[prost(message, optional, tag="5")]
1626    pub selection_start: ::core::option::Option<PointUtf16>,
1627    #[prost(message, optional, tag="6")]
1628    pub selection_end: ::core::option::Option<PointUtf16>,
1629    #[prost(message, repeated, tag="7")]
1630    pub children: ::prost::alloc::vec::Vec<DocumentSymbol>,
1631}
1632#[derive(serde::Serialize, serde::Deserialize)]
1633#[derive(Clone, PartialEq, ::prost::Message)]
1634pub struct InlayHints {
1635    #[prost(uint64, tag="1")]
1636    pub project_id: u64,
1637    #[prost(uint64, tag="2")]
1638    pub buffer_id: u64,
1639    #[prost(message, optional, tag="3")]
1640    pub start: ::core::option::Option<Anchor>,
1641    #[prost(message, optional, tag="4")]
1642    pub end: ::core::option::Option<Anchor>,
1643    #[prost(message, repeated, tag="5")]
1644    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1645}
1646#[derive(serde::Serialize, serde::Deserialize)]
1647#[derive(Clone, PartialEq, ::prost::Message)]
1648pub struct InlayHintsResponse {
1649    #[prost(message, repeated, tag="1")]
1650    pub hints: ::prost::alloc::vec::Vec<InlayHint>,
1651    #[prost(message, repeated, tag="2")]
1652    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1653}
1654#[derive(serde::Serialize, serde::Deserialize)]
1655#[derive(Clone, PartialEq, ::prost::Message)]
1656pub struct PointUtf16 {
1657    #[prost(uint32, tag="1")]
1658    pub row: u32,
1659    #[prost(uint32, tag="2")]
1660    pub column: u32,
1661}
1662#[derive(serde::Serialize, serde::Deserialize)]
1663#[derive(Clone, PartialEq, ::prost::Message)]
1664pub struct LspExtExpandMacro {
1665    #[prost(uint64, tag="1")]
1666    pub project_id: u64,
1667    #[prost(uint64, tag="2")]
1668    pub buffer_id: u64,
1669    #[prost(message, optional, tag="3")]
1670    pub position: ::core::option::Option<Anchor>,
1671}
1672#[derive(serde::Serialize, serde::Deserialize)]
1673#[derive(Clone, PartialEq, ::prost::Message)]
1674pub struct LspExtExpandMacroResponse {
1675    #[prost(string, tag="1")]
1676    pub name: ::prost::alloc::string::String,
1677    #[prost(string, tag="2")]
1678    pub expansion: ::prost::alloc::string::String,
1679}
1680#[derive(serde::Serialize, serde::Deserialize)]
1681#[derive(Clone, PartialEq, ::prost::Message)]
1682pub struct LspExtOpenDocs {
1683    #[prost(uint64, tag="1")]
1684    pub project_id: u64,
1685    #[prost(uint64, tag="2")]
1686    pub buffer_id: u64,
1687    #[prost(message, optional, tag="3")]
1688    pub position: ::core::option::Option<Anchor>,
1689}
1690#[derive(serde::Serialize, serde::Deserialize)]
1691#[derive(Clone, PartialEq, ::prost::Message)]
1692pub struct LspExtOpenDocsResponse {
1693    #[prost(string, optional, tag="1")]
1694    pub web: ::core::option::Option<::prost::alloc::string::String>,
1695    #[prost(string, optional, tag="2")]
1696    pub local: ::core::option::Option<::prost::alloc::string::String>,
1697}
1698#[derive(serde::Serialize, serde::Deserialize)]
1699#[derive(Clone, PartialEq, ::prost::Message)]
1700pub struct LspExtSwitchSourceHeader {
1701    #[prost(uint64, tag="1")]
1702    pub project_id: u64,
1703    #[prost(uint64, tag="2")]
1704    pub buffer_id: u64,
1705}
1706#[derive(serde::Serialize, serde::Deserialize)]
1707#[derive(Clone, PartialEq, ::prost::Message)]
1708pub struct LspExtSwitchSourceHeaderResponse {
1709    #[prost(string, tag="1")]
1710    pub target_file: ::prost::alloc::string::String,
1711}
1712#[derive(serde::Serialize, serde::Deserialize)]
1713#[derive(Clone, PartialEq, ::prost::Message)]
1714pub struct LspExtGoToParentModule {
1715    #[prost(uint64, tag="1")]
1716    pub project_id: u64,
1717    #[prost(uint64, tag="2")]
1718    pub buffer_id: u64,
1719    #[prost(message, optional, tag="3")]
1720    pub position: ::core::option::Option<Anchor>,
1721}
1722#[derive(serde::Serialize, serde::Deserialize)]
1723#[derive(Clone, PartialEq, ::prost::Message)]
1724pub struct LspExtGoToParentModuleResponse {
1725    #[prost(message, repeated, tag="1")]
1726    pub links: ::prost::alloc::vec::Vec<LocationLink>,
1727}
1728#[derive(serde::Serialize, serde::Deserialize)]
1729#[derive(Clone, PartialEq, ::prost::Message)]
1730pub struct GetCompletionsResponse {
1731    #[prost(message, repeated, tag="1")]
1732    pub completions: ::prost::alloc::vec::Vec<Completion>,
1733    #[prost(message, repeated, tag="2")]
1734    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1735    /// `!is_complete`, inverted for a default of `is_complete = true`
1736    #[prost(bool, tag="3")]
1737    pub can_reuse: bool,
1738}
1739#[derive(serde::Serialize, serde::Deserialize)]
1740#[derive(Clone, PartialEq, ::prost::Message)]
1741pub struct ApplyCompletionAdditionalEdits {
1742    #[prost(uint64, tag="1")]
1743    pub project_id: u64,
1744    #[prost(uint64, tag="2")]
1745    pub buffer_id: u64,
1746    #[prost(message, optional, tag="3")]
1747    pub completion: ::core::option::Option<Completion>,
1748}
1749#[derive(serde::Serialize, serde::Deserialize)]
1750#[derive(Clone, PartialEq, ::prost::Message)]
1751pub struct ApplyCompletionAdditionalEditsResponse {
1752    #[prost(message, optional, tag="1")]
1753    pub transaction: ::core::option::Option<Transaction>,
1754}
1755#[derive(serde::Serialize, serde::Deserialize)]
1756#[derive(Clone, PartialEq, ::prost::Message)]
1757pub struct Completion {
1758    #[prost(message, optional, tag="1")]
1759    pub old_replace_start: ::core::option::Option<Anchor>,
1760    #[prost(message, optional, tag="2")]
1761    pub old_replace_end: ::core::option::Option<Anchor>,
1762    #[prost(string, tag="3")]
1763    pub new_text: ::prost::alloc::string::String,
1764    #[prost(uint64, tag="4")]
1765    pub server_id: u64,
1766    #[prost(bytes="vec", tag="5")]
1767    pub lsp_completion: ::prost::alloc::vec::Vec<u8>,
1768    #[prost(bool, tag="6")]
1769    pub resolved: bool,
1770    #[prost(enumeration="completion::Source", tag="7")]
1771    pub source: i32,
1772    #[prost(bytes="vec", optional, tag="8")]
1773    pub lsp_defaults: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1774    #[prost(message, optional, tag="9")]
1775    pub buffer_word_start: ::core::option::Option<Anchor>,
1776    #[prost(message, optional, tag="10")]
1777    pub buffer_word_end: ::core::option::Option<Anchor>,
1778    #[prost(message, optional, tag="11")]
1779    pub old_insert_start: ::core::option::Option<Anchor>,
1780    #[prost(message, optional, tag="12")]
1781    pub old_insert_end: ::core::option::Option<Anchor>,
1782    #[prost(string, optional, tag="13")]
1783    pub sort_text: ::core::option::Option<::prost::alloc::string::String>,
1784}
1785/// Nested message and enum types in `Completion`.
1786pub mod completion {
1787    #[derive(serde::Serialize, serde::Deserialize)]
1788    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1789    #[repr(i32)]
1790    pub enum Source {
1791        Lsp = 0,
1792        Custom = 1,
1793        BufferWord = 2,
1794        Dap = 3,
1795    }
1796}
1797#[derive(serde::Serialize, serde::Deserialize)]
1798#[derive(Clone, PartialEq, ::prost::Message)]
1799pub struct GetCodeActions {
1800    #[prost(uint64, tag="1")]
1801    pub project_id: u64,
1802    #[prost(uint64, tag="2")]
1803    pub buffer_id: u64,
1804    #[prost(message, optional, tag="3")]
1805    pub start: ::core::option::Option<Anchor>,
1806    #[prost(message, optional, tag="4")]
1807    pub end: ::core::option::Option<Anchor>,
1808    #[prost(message, repeated, tag="5")]
1809    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1810}
1811#[derive(serde::Serialize, serde::Deserialize)]
1812#[derive(Clone, PartialEq, ::prost::Message)]
1813pub struct GetCodeActionsResponse {
1814    #[prost(message, repeated, tag="1")]
1815    pub actions: ::prost::alloc::vec::Vec<CodeAction>,
1816    #[prost(message, repeated, tag="2")]
1817    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1818}
1819#[derive(serde::Serialize, serde::Deserialize)]
1820#[derive(Clone, PartialEq, ::prost::Message)]
1821pub struct GetSignatureHelp {
1822    #[prost(uint64, tag="1")]
1823    pub project_id: u64,
1824    #[prost(uint64, tag="2")]
1825    pub buffer_id: u64,
1826    #[prost(message, optional, tag="3")]
1827    pub position: ::core::option::Option<Anchor>,
1828    #[prost(message, repeated, tag="4")]
1829    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1830}
1831#[derive(serde::Serialize, serde::Deserialize)]
1832#[derive(Clone, PartialEq, ::prost::Message)]
1833pub struct GetSignatureHelpResponse {
1834    #[prost(message, optional, tag="1")]
1835    pub signature_help: ::core::option::Option<SignatureHelp>,
1836}
1837#[derive(serde::Serialize, serde::Deserialize)]
1838#[derive(Clone, PartialEq, ::prost::Message)]
1839pub struct SignatureHelp {
1840    #[prost(message, repeated, tag="1")]
1841    pub signatures: ::prost::alloc::vec::Vec<SignatureInformation>,
1842    #[prost(uint32, optional, tag="2")]
1843    pub active_signature: ::core::option::Option<u32>,
1844    #[prost(uint32, optional, tag="3")]
1845    pub active_parameter: ::core::option::Option<u32>,
1846}
1847#[derive(serde::Serialize, serde::Deserialize)]
1848#[derive(Clone, PartialEq, ::prost::Message)]
1849pub struct SignatureInformation {
1850    #[prost(string, tag="1")]
1851    pub label: ::prost::alloc::string::String,
1852    #[prost(message, optional, tag="2")]
1853    pub documentation: ::core::option::Option<Documentation>,
1854    #[prost(message, repeated, tag="3")]
1855    pub parameters: ::prost::alloc::vec::Vec<ParameterInformation>,
1856    #[prost(uint32, optional, tag="4")]
1857    pub active_parameter: ::core::option::Option<u32>,
1858}
1859#[derive(serde::Serialize, serde::Deserialize)]
1860#[derive(Clone, PartialEq, ::prost::Message)]
1861pub struct Documentation {
1862    #[prost(oneof="documentation::Content", tags="1, 2")]
1863    pub content: ::core::option::Option<documentation::Content>,
1864}
1865/// Nested message and enum types in `Documentation`.
1866pub mod documentation {
1867    #[derive(serde::Serialize, serde::Deserialize)]
1868    #[derive(Clone, PartialEq, ::prost::Oneof)]
1869    pub enum Content {
1870        #[prost(string, tag="1")]
1871        Value(::prost::alloc::string::String),
1872        #[prost(message, tag="2")]
1873        MarkupContent(super::MarkupContent),
1874    }
1875}
1876#[derive(serde::Serialize, serde::Deserialize)]
1877#[derive(Clone, PartialEq, ::prost::Message)]
1878pub struct ParameterInformation {
1879    #[prost(message, optional, tag="3")]
1880    pub documentation: ::core::option::Option<Documentation>,
1881    #[prost(oneof="parameter_information::Label", tags="1, 2")]
1882    pub label: ::core::option::Option<parameter_information::Label>,
1883}
1884/// Nested message and enum types in `ParameterInformation`.
1885pub mod parameter_information {
1886    #[derive(serde::Serialize, serde::Deserialize)]
1887    #[derive(Clone, PartialEq, ::prost::Oneof)]
1888    pub enum Label {
1889        #[prost(string, tag="1")]
1890        Simple(::prost::alloc::string::String),
1891        #[prost(message, tag="2")]
1892        LabelOffsets(super::LabelOffsets),
1893    }
1894}
1895#[derive(serde::Serialize, serde::Deserialize)]
1896#[derive(Clone, PartialEq, ::prost::Message)]
1897pub struct LabelOffsets {
1898    #[prost(uint32, tag="1")]
1899    pub start: u32,
1900    #[prost(uint32, tag="2")]
1901    pub end: u32,
1902}
1903#[derive(serde::Serialize, serde::Deserialize)]
1904#[derive(Clone, PartialEq, ::prost::Message)]
1905pub struct GetHover {
1906    #[prost(uint64, tag="1")]
1907    pub project_id: u64,
1908    #[prost(uint64, tag="2")]
1909    pub buffer_id: u64,
1910    #[prost(message, optional, tag="3")]
1911    pub position: ::core::option::Option<Anchor>,
1912    #[prost(message, repeated, tag="5")]
1913    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1914}
1915#[derive(serde::Serialize, serde::Deserialize)]
1916#[derive(Clone, PartialEq, ::prost::Message)]
1917pub struct GetHoverResponse {
1918    #[prost(message, optional, tag="1")]
1919    pub start: ::core::option::Option<Anchor>,
1920    #[prost(message, optional, tag="2")]
1921    pub end: ::core::option::Option<Anchor>,
1922    #[prost(message, repeated, tag="3")]
1923    pub contents: ::prost::alloc::vec::Vec<HoverBlock>,
1924}
1925#[derive(serde::Serialize, serde::Deserialize)]
1926#[derive(Clone, PartialEq, ::prost::Message)]
1927pub struct HoverBlock {
1928    #[prost(string, tag="1")]
1929    pub text: ::prost::alloc::string::String,
1930    #[prost(string, optional, tag="2")]
1931    pub language: ::core::option::Option<::prost::alloc::string::String>,
1932    #[prost(bool, tag="3")]
1933    pub is_markdown: bool,
1934}
1935#[derive(serde::Serialize, serde::Deserialize)]
1936#[derive(Clone, PartialEq, ::prost::Message)]
1937pub struct ApplyCodeAction {
1938    #[prost(uint64, tag="1")]
1939    pub project_id: u64,
1940    #[prost(uint64, tag="2")]
1941    pub buffer_id: u64,
1942    #[prost(message, optional, tag="3")]
1943    pub action: ::core::option::Option<CodeAction>,
1944}
1945#[derive(serde::Serialize, serde::Deserialize)]
1946#[derive(Clone, PartialEq, ::prost::Message)]
1947pub struct ApplyCodeActionResponse {
1948    #[prost(message, optional, tag="1")]
1949    pub transaction: ::core::option::Option<ProjectTransaction>,
1950}
1951#[derive(serde::Serialize, serde::Deserialize)]
1952#[derive(Clone, PartialEq, ::prost::Message)]
1953pub struct PrepareRename {
1954    #[prost(uint64, tag="1")]
1955    pub project_id: u64,
1956    #[prost(uint64, tag="2")]
1957    pub buffer_id: u64,
1958    #[prost(message, optional, tag="3")]
1959    pub position: ::core::option::Option<Anchor>,
1960    #[prost(message, repeated, tag="4")]
1961    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1962}
1963#[derive(serde::Serialize, serde::Deserialize)]
1964#[derive(Clone, PartialEq, ::prost::Message)]
1965pub struct PrepareRenameResponse {
1966    #[prost(bool, tag="1")]
1967    pub can_rename: bool,
1968    #[prost(message, optional, tag="2")]
1969    pub start: ::core::option::Option<Anchor>,
1970    #[prost(message, optional, tag="3")]
1971    pub end: ::core::option::Option<Anchor>,
1972    #[prost(message, repeated, tag="4")]
1973    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1974    #[prost(bool, tag="5")]
1975    pub only_unprepared_rename_supported: bool,
1976}
1977#[derive(serde::Serialize, serde::Deserialize)]
1978#[derive(Clone, PartialEq, ::prost::Message)]
1979pub struct PerformRename {
1980    #[prost(uint64, tag="1")]
1981    pub project_id: u64,
1982    #[prost(uint64, tag="2")]
1983    pub buffer_id: u64,
1984    #[prost(message, optional, tag="3")]
1985    pub position: ::core::option::Option<Anchor>,
1986    #[prost(string, tag="4")]
1987    pub new_name: ::prost::alloc::string::String,
1988    #[prost(message, repeated, tag="5")]
1989    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
1990}
1991#[derive(serde::Serialize, serde::Deserialize)]
1992#[derive(Clone, PartialEq, ::prost::Message)]
1993pub struct OnTypeFormatting {
1994    #[prost(uint64, tag="1")]
1995    pub project_id: u64,
1996    #[prost(uint64, tag="2")]
1997    pub buffer_id: u64,
1998    #[prost(message, optional, tag="3")]
1999    pub position: ::core::option::Option<Anchor>,
2000    #[prost(string, tag="4")]
2001    pub trigger: ::prost::alloc::string::String,
2002    #[prost(message, repeated, tag="5")]
2003    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
2004}
2005#[derive(serde::Serialize, serde::Deserialize)]
2006#[derive(Clone, PartialEq, ::prost::Message)]
2007pub struct OnTypeFormattingResponse {
2008    #[prost(message, optional, tag="1")]
2009    pub transaction: ::core::option::Option<Transaction>,
2010}
2011#[derive(serde::Serialize, serde::Deserialize)]
2012#[derive(Clone, PartialEq, ::prost::Message)]
2013pub struct LinkedEditingRange {
2014    #[prost(uint64, tag="1")]
2015    pub project_id: u64,
2016    #[prost(uint64, tag="2")]
2017    pub buffer_id: u64,
2018    #[prost(message, optional, tag="3")]
2019    pub position: ::core::option::Option<Anchor>,
2020    #[prost(message, repeated, tag="4")]
2021    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
2022}
2023#[derive(serde::Serialize, serde::Deserialize)]
2024#[derive(Clone, PartialEq, ::prost::Message)]
2025pub struct LinkedEditingRangeResponse {
2026    #[prost(message, repeated, tag="1")]
2027    pub items: ::prost::alloc::vec::Vec<AnchorRange>,
2028    #[prost(message, repeated, tag="4")]
2029    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
2030}
2031#[derive(serde::Serialize, serde::Deserialize)]
2032#[derive(Clone, PartialEq, ::prost::Message)]
2033pub struct InlayHint {
2034    #[prost(message, optional, tag="1")]
2035    pub position: ::core::option::Option<Anchor>,
2036    #[prost(message, optional, tag="2")]
2037    pub label: ::core::option::Option<InlayHintLabel>,
2038    #[prost(string, optional, tag="3")]
2039    pub kind: ::core::option::Option<::prost::alloc::string::String>,
2040    #[prost(bool, tag="4")]
2041    pub padding_left: bool,
2042    #[prost(bool, tag="5")]
2043    pub padding_right: bool,
2044    #[prost(message, optional, tag="6")]
2045    pub tooltip: ::core::option::Option<InlayHintTooltip>,
2046    #[prost(message, optional, tag="7")]
2047    pub resolve_state: ::core::option::Option<ResolveState>,
2048}
2049#[derive(serde::Serialize, serde::Deserialize)]
2050#[derive(Clone, PartialEq, ::prost::Message)]
2051pub struct InlayHintLabel {
2052    #[prost(oneof="inlay_hint_label::Label", tags="1, 2")]
2053    pub label: ::core::option::Option<inlay_hint_label::Label>,
2054}
2055/// Nested message and enum types in `InlayHintLabel`.
2056pub mod inlay_hint_label {
2057    #[derive(serde::Serialize, serde::Deserialize)]
2058    #[derive(Clone, PartialEq, ::prost::Oneof)]
2059    pub enum Label {
2060        #[prost(string, tag="1")]
2061        Value(::prost::alloc::string::String),
2062        #[prost(message, tag="2")]
2063        LabelParts(super::InlayHintLabelParts),
2064    }
2065}
2066#[derive(serde::Serialize, serde::Deserialize)]
2067#[derive(Clone, PartialEq, ::prost::Message)]
2068pub struct InlayHintLabelParts {
2069    #[prost(message, repeated, tag="1")]
2070    pub parts: ::prost::alloc::vec::Vec<InlayHintLabelPart>,
2071}
2072#[derive(serde::Serialize, serde::Deserialize)]
2073#[derive(Clone, PartialEq, ::prost::Message)]
2074pub struct InlayHintLabelPart {
2075    #[prost(string, tag="1")]
2076    pub value: ::prost::alloc::string::String,
2077    #[prost(message, optional, tag="2")]
2078    pub tooltip: ::core::option::Option<InlayHintLabelPartTooltip>,
2079    #[prost(string, optional, tag="3")]
2080    pub location_url: ::core::option::Option<::prost::alloc::string::String>,
2081    #[prost(message, optional, tag="4")]
2082    pub location_range_start: ::core::option::Option<PointUtf16>,
2083    #[prost(message, optional, tag="5")]
2084    pub location_range_end: ::core::option::Option<PointUtf16>,
2085    #[prost(uint64, optional, tag="6")]
2086    pub language_server_id: ::core::option::Option<u64>,
2087}
2088#[derive(serde::Serialize, serde::Deserialize)]
2089#[derive(Clone, PartialEq, ::prost::Message)]
2090pub struct InlayHintTooltip {
2091    #[prost(oneof="inlay_hint_tooltip::Content", tags="1, 2")]
2092    pub content: ::core::option::Option<inlay_hint_tooltip::Content>,
2093}
2094/// Nested message and enum types in `InlayHintTooltip`.
2095pub mod inlay_hint_tooltip {
2096    #[derive(serde::Serialize, serde::Deserialize)]
2097    #[derive(Clone, PartialEq, ::prost::Oneof)]
2098    pub enum Content {
2099        #[prost(string, tag="1")]
2100        Value(::prost::alloc::string::String),
2101        #[prost(message, tag="2")]
2102        MarkupContent(super::MarkupContent),
2103    }
2104}
2105#[derive(serde::Serialize, serde::Deserialize)]
2106#[derive(Clone, PartialEq, ::prost::Message)]
2107pub struct InlayHintLabelPartTooltip {
2108    #[prost(oneof="inlay_hint_label_part_tooltip::Content", tags="1, 2")]
2109    pub content: ::core::option::Option<inlay_hint_label_part_tooltip::Content>,
2110}
2111/// Nested message and enum types in `InlayHintLabelPartTooltip`.
2112pub mod inlay_hint_label_part_tooltip {
2113    #[derive(serde::Serialize, serde::Deserialize)]
2114    #[derive(Clone, PartialEq, ::prost::Oneof)]
2115    pub enum Content {
2116        #[prost(string, tag="1")]
2117        Value(::prost::alloc::string::String),
2118        #[prost(message, tag="2")]
2119        MarkupContent(super::MarkupContent),
2120    }
2121}
2122#[derive(serde::Serialize, serde::Deserialize)]
2123#[derive(Clone, PartialEq, ::prost::Message)]
2124pub struct ResolveState {
2125    #[prost(enumeration="resolve_state::State", tag="1")]
2126    pub state: i32,
2127    #[prost(message, optional, tag="2")]
2128    pub lsp_resolve_state: ::core::option::Option<resolve_state::LspResolveState>,
2129}
2130/// Nested message and enum types in `ResolveState`.
2131pub mod resolve_state {
2132    #[derive(serde::Serialize, serde::Deserialize)]
2133    #[derive(Clone, PartialEq, ::prost::Message)]
2134    pub struct LspResolveState {
2135        #[prost(string, optional, tag="1")]
2136        pub value: ::core::option::Option<::prost::alloc::string::String>,
2137        #[prost(uint64, tag="2")]
2138        pub server_id: u64,
2139    }
2140    #[derive(serde::Serialize, serde::Deserialize)]
2141    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2142    #[repr(i32)]
2143    pub enum State {
2144        Resolved = 0,
2145        CanResolve = 1,
2146        Resolving = 2,
2147    }
2148}
2149/// This type is used to resolve more than just
2150/// the documentation, but for backwards-compatibility
2151/// reasons we can't rename the type.
2152#[derive(serde::Serialize, serde::Deserialize)]
2153#[derive(Clone, PartialEq, ::prost::Message)]
2154pub struct ResolveCompletionDocumentation {
2155    #[prost(uint64, tag="1")]
2156    pub project_id: u64,
2157    #[prost(uint64, tag="2")]
2158    pub language_server_id: u64,
2159    #[prost(bytes="vec", tag="3")]
2160    pub lsp_completion: ::prost::alloc::vec::Vec<u8>,
2161    #[prost(uint64, tag="4")]
2162    pub buffer_id: u64,
2163}
2164#[derive(serde::Serialize, serde::Deserialize)]
2165#[derive(Clone, PartialEq, ::prost::Message)]
2166pub struct ResolveCompletionDocumentationResponse {
2167    #[prost(string, tag="1")]
2168    pub documentation: ::prost::alloc::string::String,
2169    #[prost(bool, tag="2")]
2170    pub documentation_is_markdown: bool,
2171    #[prost(message, optional, tag="3")]
2172    pub old_replace_start: ::core::option::Option<Anchor>,
2173    #[prost(message, optional, tag="4")]
2174    pub old_replace_end: ::core::option::Option<Anchor>,
2175    #[prost(string, tag="5")]
2176    pub new_text: ::prost::alloc::string::String,
2177    #[prost(bytes="vec", tag="6")]
2178    pub lsp_completion: ::prost::alloc::vec::Vec<u8>,
2179    #[prost(message, optional, tag="7")]
2180    pub old_insert_start: ::core::option::Option<Anchor>,
2181    #[prost(message, optional, tag="8")]
2182    pub old_insert_end: ::core::option::Option<Anchor>,
2183}
2184#[derive(serde::Serialize, serde::Deserialize)]
2185#[derive(Clone, PartialEq, ::prost::Message)]
2186pub struct ResolveInlayHint {
2187    #[prost(uint64, tag="1")]
2188    pub project_id: u64,
2189    #[prost(uint64, tag="2")]
2190    pub buffer_id: u64,
2191    #[prost(uint64, tag="3")]
2192    pub language_server_id: u64,
2193    #[prost(message, optional, tag="4")]
2194    pub hint: ::core::option::Option<InlayHint>,
2195}
2196#[derive(serde::Serialize, serde::Deserialize)]
2197#[derive(Clone, PartialEq, ::prost::Message)]
2198pub struct ResolveInlayHintResponse {
2199    #[prost(message, optional, tag="1")]
2200    pub hint: ::core::option::Option<InlayHint>,
2201}
2202#[derive(serde::Serialize, serde::Deserialize)]
2203#[derive(Clone, PartialEq, ::prost::Message)]
2204pub struct RefreshInlayHints {
2205    #[prost(uint64, tag="1")]
2206    pub project_id: u64,
2207    #[prost(uint64, tag="2")]
2208    pub server_id: u64,
2209    #[prost(uint64, optional, tag="3")]
2210    pub request_id: ::core::option::Option<u64>,
2211}
2212#[derive(serde::Serialize, serde::Deserialize)]
2213#[derive(Clone, PartialEq, ::prost::Message)]
2214pub struct CodeLens {
2215    #[prost(bytes="vec", tag="1")]
2216    pub lsp_lens: ::prost::alloc::vec::Vec<u8>,
2217}
2218#[derive(serde::Serialize, serde::Deserialize)]
2219#[derive(Clone, PartialEq, ::prost::Message)]
2220pub struct GetCodeLens {
2221    #[prost(uint64, tag="1")]
2222    pub project_id: u64,
2223    #[prost(uint64, tag="2")]
2224    pub buffer_id: u64,
2225    #[prost(message, repeated, tag="3")]
2226    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
2227}
2228#[derive(serde::Serialize, serde::Deserialize)]
2229#[derive(Clone, PartialEq, ::prost::Message)]
2230pub struct GetCodeLensResponse {
2231    #[prost(message, repeated, tag="1")]
2232    pub lens_actions: ::prost::alloc::vec::Vec<CodeAction>,
2233    #[prost(message, repeated, tag="2")]
2234    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
2235}
2236#[derive(serde::Serialize, serde::Deserialize)]
2237#[derive(Clone, PartialEq, ::prost::Message)]
2238pub struct RefreshCodeLens {
2239    #[prost(uint64, tag="1")]
2240    pub project_id: u64,
2241}
2242#[derive(serde::Serialize, serde::Deserialize)]
2243#[derive(Clone, PartialEq, ::prost::Message)]
2244pub struct MarkupContent {
2245    #[prost(bool, tag="1")]
2246    pub is_markdown: bool,
2247    #[prost(string, tag="2")]
2248    pub value: ::prost::alloc::string::String,
2249}
2250#[derive(serde::Serialize, serde::Deserialize)]
2251#[derive(Clone, PartialEq, ::prost::Message)]
2252pub struct PerformRenameResponse {
2253    #[prost(message, optional, tag="2")]
2254    pub transaction: ::core::option::Option<ProjectTransaction>,
2255}
2256#[derive(serde::Serialize, serde::Deserialize)]
2257#[derive(Clone, PartialEq, ::prost::Message)]
2258pub struct CodeAction {
2259    #[prost(uint64, tag="1")]
2260    pub server_id: u64,
2261    #[prost(message, optional, tag="2")]
2262    pub start: ::core::option::Option<Anchor>,
2263    #[prost(message, optional, tag="3")]
2264    pub end: ::core::option::Option<Anchor>,
2265    #[prost(bytes="vec", tag="4")]
2266    pub lsp_action: ::prost::alloc::vec::Vec<u8>,
2267    #[prost(enumeration="code_action::Kind", tag="5")]
2268    pub kind: i32,
2269    #[prost(bool, tag="6")]
2270    pub resolved: bool,
2271}
2272/// Nested message and enum types in `CodeAction`.
2273pub mod code_action {
2274    #[derive(serde::Serialize, serde::Deserialize)]
2275    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2276    #[repr(i32)]
2277    pub enum Kind {
2278        Action = 0,
2279        Command = 1,
2280        CodeLens = 2,
2281    }
2282}
2283#[derive(serde::Serialize, serde::Deserialize)]
2284#[derive(Clone, PartialEq, ::prost::Message)]
2285pub struct LanguageServer {
2286    #[prost(uint64, tag="1")]
2287    pub id: u64,
2288    #[prost(string, tag="2")]
2289    pub name: ::prost::alloc::string::String,
2290    #[prost(uint64, optional, tag="3")]
2291    pub worktree_id: ::core::option::Option<u64>,
2292}
2293#[derive(serde::Serialize, serde::Deserialize)]
2294#[derive(Clone, PartialEq, ::prost::Message)]
2295pub struct StartLanguageServer {
2296    #[prost(uint64, tag="1")]
2297    pub project_id: u64,
2298    #[prost(message, optional, tag="2")]
2299    pub server: ::core::option::Option<LanguageServer>,
2300    #[prost(string, tag="3")]
2301    pub capabilities: ::prost::alloc::string::String,
2302}
2303#[derive(serde::Serialize, serde::Deserialize)]
2304#[derive(Clone, PartialEq, ::prost::Message)]
2305pub struct UpdateDiagnosticSummary {
2306    #[prost(uint64, tag="1")]
2307    pub project_id: u64,
2308    #[prost(uint64, tag="2")]
2309    pub worktree_id: u64,
2310    #[prost(message, optional, tag="3")]
2311    pub summary: ::core::option::Option<DiagnosticSummary>,
2312    #[prost(message, repeated, tag="4")]
2313    pub more_summaries: ::prost::alloc::vec::Vec<DiagnosticSummary>,
2314}
2315#[derive(serde::Serialize, serde::Deserialize)]
2316#[derive(Clone, PartialEq, ::prost::Message)]
2317pub struct DiagnosticSummary {
2318    #[prost(string, tag="1")]
2319    pub path: ::prost::alloc::string::String,
2320    #[prost(uint64, tag="2")]
2321    pub language_server_id: u64,
2322    #[prost(uint32, tag="3")]
2323    pub error_count: u32,
2324    #[prost(uint32, tag="4")]
2325    pub warning_count: u32,
2326}
2327#[derive(serde::Serialize, serde::Deserialize)]
2328#[derive(Clone, PartialEq, ::prost::Message)]
2329pub struct UpdateLanguageServer {
2330    #[prost(uint64, tag="1")]
2331    pub project_id: u64,
2332    #[prost(uint64, tag="2")]
2333    pub language_server_id: u64,
2334    #[prost(string, optional, tag="8")]
2335    pub server_name: ::core::option::Option<::prost::alloc::string::String>,
2336    #[prost(oneof="update_language_server::Variant", tags="3, 4, 5, 6, 7, 9, 10, 11")]
2337    pub variant: ::core::option::Option<update_language_server::Variant>,
2338}
2339/// Nested message and enum types in `UpdateLanguageServer`.
2340pub mod update_language_server {
2341    #[derive(serde::Serialize, serde::Deserialize)]
2342    #[derive(Clone, PartialEq, ::prost::Oneof)]
2343    pub enum Variant {
2344        #[prost(message, tag="3")]
2345        WorkStart(super::LspWorkStart),
2346        #[prost(message, tag="4")]
2347        WorkProgress(super::LspWorkProgress),
2348        #[prost(message, tag="5")]
2349        WorkEnd(super::LspWorkEnd),
2350        #[prost(message, tag="6")]
2351        DiskBasedDiagnosticsUpdating(super::LspDiskBasedDiagnosticsUpdating),
2352        #[prost(message, tag="7")]
2353        DiskBasedDiagnosticsUpdated(super::LspDiskBasedDiagnosticsUpdated),
2354        #[prost(message, tag="9")]
2355        StatusUpdate(super::StatusUpdate),
2356        #[prost(message, tag="10")]
2357        RegisteredForBuffer(super::RegisteredForBuffer),
2358        #[prost(message, tag="11")]
2359        MetadataUpdated(super::ServerMetadataUpdated),
2360    }
2361}
2362#[derive(serde::Serialize, serde::Deserialize)]
2363#[derive(Clone, PartialEq, ::prost::Message)]
2364pub struct ProgressToken {
2365    #[prost(oneof="progress_token::Value", tags="1, 2")]
2366    pub value: ::core::option::Option<progress_token::Value>,
2367}
2368/// Nested message and enum types in `ProgressToken`.
2369pub mod progress_token {
2370    #[derive(serde::Serialize, serde::Deserialize)]
2371    #[derive(Clone, PartialEq, ::prost::Oneof)]
2372    pub enum Value {
2373        #[prost(int32, tag="1")]
2374        Number(i32),
2375        #[prost(string, tag="2")]
2376        String(::prost::alloc::string::String),
2377    }
2378}
2379#[derive(serde::Serialize, serde::Deserialize)]
2380#[derive(Clone, PartialEq, ::prost::Message)]
2381pub struct LspWorkStart {
2382    #[prost(string, optional, tag="4")]
2383    pub title: ::core::option::Option<::prost::alloc::string::String>,
2384    #[prost(string, optional, tag="2")]
2385    pub message: ::core::option::Option<::prost::alloc::string::String>,
2386    #[prost(uint32, optional, tag="3")]
2387    pub percentage: ::core::option::Option<u32>,
2388    #[prost(bool, optional, tag="5")]
2389    pub is_cancellable: ::core::option::Option<bool>,
2390    #[prost(message, optional, tag="6")]
2391    pub token: ::core::option::Option<ProgressToken>,
2392}
2393#[derive(serde::Serialize, serde::Deserialize)]
2394#[derive(Clone, PartialEq, ::prost::Message)]
2395pub struct LspWorkProgress {
2396    #[prost(string, optional, tag="2")]
2397    pub message: ::core::option::Option<::prost::alloc::string::String>,
2398    #[prost(uint32, optional, tag="3")]
2399    pub percentage: ::core::option::Option<u32>,
2400    #[prost(bool, optional, tag="4")]
2401    pub is_cancellable: ::core::option::Option<bool>,
2402    #[prost(message, optional, tag="5")]
2403    pub token: ::core::option::Option<ProgressToken>,
2404}
2405#[derive(serde::Serialize, serde::Deserialize)]
2406#[derive(Clone, PartialEq, ::prost::Message)]
2407pub struct LspWorkEnd {
2408    #[prost(message, optional, tag="2")]
2409    pub token: ::core::option::Option<ProgressToken>,
2410}
2411#[derive(serde::Serialize, serde::Deserialize)]
2412#[derive(Clone, PartialEq, ::prost::Message)]
2413pub struct LspDiskBasedDiagnosticsUpdating {
2414}
2415#[derive(serde::Serialize, serde::Deserialize)]
2416#[derive(Clone, PartialEq, ::prost::Message)]
2417pub struct LspDiskBasedDiagnosticsUpdated {
2418}
2419#[derive(serde::Serialize, serde::Deserialize)]
2420#[derive(Clone, PartialEq, ::prost::Message)]
2421pub struct StatusUpdate {
2422    #[prost(string, optional, tag="1")]
2423    pub message: ::core::option::Option<::prost::alloc::string::String>,
2424    #[prost(oneof="status_update::Status", tags="2, 3")]
2425    pub status: ::core::option::Option<status_update::Status>,
2426}
2427/// Nested message and enum types in `StatusUpdate`.
2428pub mod status_update {
2429    #[derive(serde::Serialize, serde::Deserialize)]
2430    #[derive(Clone, PartialEq, ::prost::Oneof)]
2431    pub enum Status {
2432        #[prost(enumeration="super::ServerBinaryStatus", tag="2")]
2433        Binary(i32),
2434        #[prost(enumeration="super::ServerHealth", tag="3")]
2435        Health(i32),
2436    }
2437}
2438#[derive(serde::Serialize, serde::Deserialize)]
2439#[derive(Clone, PartialEq, ::prost::Message)]
2440pub struct RegisteredForBuffer {
2441    #[prost(string, tag="1")]
2442    pub buffer_abs_path: ::prost::alloc::string::String,
2443    #[prost(uint64, tag="2")]
2444    pub buffer_id: u64,
2445}
2446#[derive(serde::Serialize, serde::Deserialize)]
2447#[derive(Clone, PartialEq, ::prost::Message)]
2448pub struct LanguageServerBinaryInfo {
2449    #[prost(string, tag="1")]
2450    pub path: ::prost::alloc::string::String,
2451    #[prost(string, repeated, tag="2")]
2452    pub arguments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2453}
2454#[derive(serde::Serialize, serde::Deserialize)]
2455#[derive(Clone, PartialEq, ::prost::Message)]
2456pub struct ServerMetadataUpdated {
2457    #[prost(string, optional, tag="1")]
2458    pub capabilities: ::core::option::Option<::prost::alloc::string::String>,
2459    #[prost(message, optional, tag="2")]
2460    pub binary: ::core::option::Option<LanguageServerBinaryInfo>,
2461    #[prost(string, optional, tag="3")]
2462    pub configuration: ::core::option::Option<::prost::alloc::string::String>,
2463    #[prost(string, repeated, tag="4")]
2464    pub workspace_folders: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2465}
2466#[derive(serde::Serialize, serde::Deserialize)]
2467#[derive(Clone, PartialEq, ::prost::Message)]
2468pub struct LanguageServerLog {
2469    #[prost(uint64, tag="1")]
2470    pub project_id: u64,
2471    #[prost(uint64, tag="2")]
2472    pub language_server_id: u64,
2473    #[prost(string, tag="3")]
2474    pub message: ::prost::alloc::string::String,
2475    #[prost(oneof="language_server_log::LogType", tags="4, 5, 6")]
2476    pub log_type: ::core::option::Option<language_server_log::LogType>,
2477}
2478/// Nested message and enum types in `LanguageServerLog`.
2479pub mod language_server_log {
2480    #[derive(serde::Serialize, serde::Deserialize)]
2481    #[derive(Clone, PartialEq, ::prost::Oneof)]
2482    pub enum LogType {
2483        #[prost(message, tag="4")]
2484        Log(super::LogMessage),
2485        #[prost(message, tag="5")]
2486        Trace(super::TraceMessage),
2487        #[prost(message, tag="6")]
2488        Rpc(super::RpcMessage),
2489    }
2490}
2491#[derive(serde::Serialize, serde::Deserialize)]
2492#[derive(Clone, PartialEq, ::prost::Message)]
2493pub struct LogMessage {
2494    #[prost(enumeration="log_message::LogLevel", tag="1")]
2495    pub level: i32,
2496}
2497/// Nested message and enum types in `LogMessage`.
2498pub mod log_message {
2499    #[derive(serde::Serialize, serde::Deserialize)]
2500    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2501    #[repr(i32)]
2502    pub enum LogLevel {
2503        Log = 0,
2504        Info = 1,
2505        Warning = 2,
2506        Error = 3,
2507    }
2508}
2509#[derive(serde::Serialize, serde::Deserialize)]
2510#[derive(Clone, PartialEq, ::prost::Message)]
2511pub struct TraceMessage {
2512    #[prost(string, optional, tag="1")]
2513    pub verbose_info: ::core::option::Option<::prost::alloc::string::String>,
2514}
2515#[derive(serde::Serialize, serde::Deserialize)]
2516#[derive(Clone, PartialEq, ::prost::Message)]
2517pub struct RpcMessage {
2518    #[prost(enumeration="rpc_message::Kind", tag="1")]
2519    pub kind: i32,
2520}
2521/// Nested message and enum types in `RpcMessage`.
2522pub mod rpc_message {
2523    #[derive(serde::Serialize, serde::Deserialize)]
2524    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2525    #[repr(i32)]
2526    pub enum Kind {
2527        Received = 0,
2528        Sent = 1,
2529    }
2530}
2531#[derive(serde::Serialize, serde::Deserialize)]
2532#[derive(Clone, PartialEq, ::prost::Message)]
2533pub struct LspLogTrace {
2534    #[prost(string, optional, tag="1")]
2535    pub message: ::core::option::Option<::prost::alloc::string::String>,
2536}
2537#[derive(serde::Serialize, serde::Deserialize)]
2538#[derive(Clone, PartialEq, ::prost::Message)]
2539pub struct ApplyCodeActionKind {
2540    #[prost(uint64, tag="1")]
2541    pub project_id: u64,
2542    #[prost(string, tag="2")]
2543    pub kind: ::prost::alloc::string::String,
2544    #[prost(uint64, repeated, tag="3")]
2545    pub buffer_ids: ::prost::alloc::vec::Vec<u64>,
2546}
2547#[derive(serde::Serialize, serde::Deserialize)]
2548#[derive(Clone, PartialEq, ::prost::Message)]
2549pub struct ApplyCodeActionKindResponse {
2550    #[prost(message, optional, tag="1")]
2551    pub transaction: ::core::option::Option<ProjectTransaction>,
2552}
2553#[derive(serde::Serialize, serde::Deserialize)]
2554#[derive(Clone, PartialEq, ::prost::Message)]
2555pub struct RegisterBufferWithLanguageServers {
2556    #[prost(uint64, tag="1")]
2557    pub project_id: u64,
2558    #[prost(uint64, tag="2")]
2559    pub buffer_id: u64,
2560    #[prost(message, repeated, tag="3")]
2561    pub only_servers: ::prost::alloc::vec::Vec<LanguageServerSelector>,
2562}
2563#[derive(serde::Serialize, serde::Deserialize)]
2564#[derive(Clone, PartialEq, ::prost::Message)]
2565pub struct OpenBufferForSymbol {
2566    #[prost(uint64, tag="1")]
2567    pub project_id: u64,
2568    #[prost(message, optional, tag="2")]
2569    pub symbol: ::core::option::Option<Symbol>,
2570}
2571#[derive(serde::Serialize, serde::Deserialize)]
2572#[derive(Clone, PartialEq, ::prost::Message)]
2573pub struct OpenBufferForSymbolResponse {
2574    #[prost(uint64, tag="1")]
2575    pub buffer_id: u64,
2576}
2577#[derive(serde::Serialize, serde::Deserialize)]
2578#[derive(Clone, PartialEq, ::prost::Message)]
2579pub struct FormatBuffers {
2580    #[prost(uint64, tag="1")]
2581    pub project_id: u64,
2582    #[prost(enumeration="FormatTrigger", tag="2")]
2583    pub trigger: i32,
2584    #[prost(uint64, repeated, tag="3")]
2585    pub buffer_ids: ::prost::alloc::vec::Vec<u64>,
2586}
2587#[derive(serde::Serialize, serde::Deserialize)]
2588#[derive(Clone, PartialEq, ::prost::Message)]
2589pub struct FormatBuffersResponse {
2590    #[prost(message, optional, tag="1")]
2591    pub transaction: ::core::option::Option<ProjectTransaction>,
2592}
2593#[derive(serde::Serialize, serde::Deserialize)]
2594#[derive(Clone, PartialEq, ::prost::Message)]
2595pub struct GetCompletions {
2596    #[prost(uint64, tag="1")]
2597    pub project_id: u64,
2598    #[prost(uint64, tag="2")]
2599    pub buffer_id: u64,
2600    #[prost(message, optional, tag="3")]
2601    pub position: ::core::option::Option<Anchor>,
2602    #[prost(message, repeated, tag="4")]
2603    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
2604    #[prost(uint64, optional, tag="5")]
2605    pub server_id: ::core::option::Option<u64>,
2606}
2607#[derive(serde::Serialize, serde::Deserialize)]
2608#[derive(Clone, PartialEq, ::prost::Message)]
2609pub struct CancelLanguageServerWork {
2610    #[prost(uint64, tag="1")]
2611    pub project_id: u64,
2612    #[prost(oneof="cancel_language_server_work::Work", tags="2, 3")]
2613    pub work: ::core::option::Option<cancel_language_server_work::Work>,
2614}
2615/// Nested message and enum types in `CancelLanguageServerWork`.
2616pub mod cancel_language_server_work {
2617    #[derive(serde::Serialize, serde::Deserialize)]
2618    #[derive(Clone, PartialEq, ::prost::Message)]
2619    pub struct Buffers {
2620        #[prost(uint64, repeated, tag="2")]
2621        pub buffer_ids: ::prost::alloc::vec::Vec<u64>,
2622    }
2623    #[derive(serde::Serialize, serde::Deserialize)]
2624    #[derive(Clone, PartialEq, ::prost::Message)]
2625    pub struct LanguageServerWork {
2626        #[prost(uint64, tag="1")]
2627        pub language_server_id: u64,
2628        #[prost(message, optional, tag="3")]
2629        pub token: ::core::option::Option<super::ProgressToken>,
2630    }
2631    #[derive(serde::Serialize, serde::Deserialize)]
2632    #[derive(Clone, PartialEq, ::prost::Oneof)]
2633    pub enum Work {
2634        #[prost(message, tag="2")]
2635        Buffers(Buffers),
2636        #[prost(message, tag="3")]
2637        LanguageServerWork(LanguageServerWork),
2638    }
2639}
2640#[derive(serde::Serialize, serde::Deserialize)]
2641#[derive(Clone, PartialEq, ::prost::Message)]
2642pub struct LanguageServerPromptRequest {
2643    #[prost(uint64, tag="1")]
2644    pub project_id: u64,
2645    #[prost(string, tag="5")]
2646    pub message: ::prost::alloc::string::String,
2647    #[prost(string, repeated, tag="6")]
2648    pub actions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2649    #[prost(string, tag="7")]
2650    pub lsp_name: ::prost::alloc::string::String,
2651    #[prost(oneof="language_server_prompt_request::Level", tags="2, 3, 4")]
2652    pub level: ::core::option::Option<language_server_prompt_request::Level>,
2653}
2654/// Nested message and enum types in `LanguageServerPromptRequest`.
2655pub mod language_server_prompt_request {
2656    #[derive(serde::Serialize, serde::Deserialize)]
2657    #[derive(Clone, PartialEq, ::prost::Message)]
2658    pub struct Info {
2659    }
2660    #[derive(serde::Serialize, serde::Deserialize)]
2661    #[derive(Clone, PartialEq, ::prost::Message)]
2662    pub struct Warning {
2663    }
2664    #[derive(serde::Serialize, serde::Deserialize)]
2665    #[derive(Clone, PartialEq, ::prost::Message)]
2666    pub struct Critical {
2667    }
2668    #[derive(serde::Serialize, serde::Deserialize)]
2669    #[derive(Clone, PartialEq, ::prost::Oneof)]
2670    pub enum Level {
2671        #[prost(message, tag="2")]
2672        Info(Info),
2673        #[prost(message, tag="3")]
2674        Warning(Warning),
2675        #[prost(message, tag="4")]
2676        Critical(Critical),
2677    }
2678}
2679#[derive(serde::Serialize, serde::Deserialize)]
2680#[derive(Clone, PartialEq, ::prost::Message)]
2681pub struct LanguageServerPromptResponse {
2682    #[prost(uint64, optional, tag="1")]
2683    pub action_response: ::core::option::Option<u64>,
2684}
2685#[derive(serde::Serialize, serde::Deserialize)]
2686#[derive(Clone, PartialEq, ::prost::Message)]
2687pub struct GetDocumentColor {
2688    #[prost(uint64, tag="1")]
2689    pub project_id: u64,
2690    #[prost(uint64, tag="2")]
2691    pub buffer_id: u64,
2692    #[prost(message, repeated, tag="3")]
2693    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
2694}
2695#[derive(serde::Serialize, serde::Deserialize)]
2696#[derive(Clone, PartialEq, ::prost::Message)]
2697pub struct GetDocumentColorResponse {
2698    #[prost(message, repeated, tag="1")]
2699    pub colors: ::prost::alloc::vec::Vec<ColorInformation>,
2700    #[prost(message, repeated, tag="2")]
2701    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
2702}
2703#[derive(serde::Serialize, serde::Deserialize)]
2704#[derive(Clone, PartialEq, ::prost::Message)]
2705pub struct ColorInformation {
2706    #[prost(message, optional, tag="1")]
2707    pub lsp_range_start: ::core::option::Option<PointUtf16>,
2708    #[prost(message, optional, tag="2")]
2709    pub lsp_range_end: ::core::option::Option<PointUtf16>,
2710    #[prost(float, tag="3")]
2711    pub red: f32,
2712    #[prost(float, tag="4")]
2713    pub green: f32,
2714    #[prost(float, tag="5")]
2715    pub blue: f32,
2716    #[prost(float, tag="6")]
2717    pub alpha: f32,
2718}
2719#[derive(serde::Serialize, serde::Deserialize)]
2720#[derive(Clone, PartialEq, ::prost::Message)]
2721pub struct GetColorPresentation {
2722    #[prost(uint64, tag="1")]
2723    pub project_id: u64,
2724    #[prost(uint64, tag="2")]
2725    pub buffer_id: u64,
2726    #[prost(message, optional, tag="3")]
2727    pub color: ::core::option::Option<ColorInformation>,
2728    #[prost(uint64, tag="4")]
2729    pub server_id: u64,
2730}
2731#[derive(serde::Serialize, serde::Deserialize)]
2732#[derive(Clone, PartialEq, ::prost::Message)]
2733pub struct GetColorPresentationResponse {
2734    #[prost(message, repeated, tag="1")]
2735    pub presentations: ::prost::alloc::vec::Vec<ColorPresentation>,
2736}
2737#[derive(serde::Serialize, serde::Deserialize)]
2738#[derive(Clone, PartialEq, ::prost::Message)]
2739pub struct ColorPresentation {
2740    #[prost(string, tag="1")]
2741    pub label: ::prost::alloc::string::String,
2742    #[prost(message, optional, tag="2")]
2743    pub text_edit: ::core::option::Option<TextEdit>,
2744    #[prost(message, repeated, tag="3")]
2745    pub additional_text_edits: ::prost::alloc::vec::Vec<TextEdit>,
2746}
2747#[derive(serde::Serialize, serde::Deserialize)]
2748#[derive(Clone, PartialEq, ::prost::Message)]
2749pub struct TextEdit {
2750    #[prost(string, tag="1")]
2751    pub new_text: ::prost::alloc::string::String,
2752    #[prost(message, optional, tag="2")]
2753    pub lsp_range_start: ::core::option::Option<PointUtf16>,
2754    #[prost(message, optional, tag="3")]
2755    pub lsp_range_end: ::core::option::Option<PointUtf16>,
2756}
2757#[derive(serde::Serialize, serde::Deserialize)]
2758#[derive(Clone, PartialEq, ::prost::Message)]
2759pub struct LspQuery {
2760    #[prost(uint64, tag="1")]
2761    pub project_id: u64,
2762    #[prost(uint64, tag="2")]
2763    pub lsp_request_id: u64,
2764    #[prost(uint64, optional, tag="15")]
2765    pub server_id: ::core::option::Option<u64>,
2766    #[prost(oneof="lsp_query::Request", tags="3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14")]
2767    pub request: ::core::option::Option<lsp_query::Request>,
2768}
2769/// Nested message and enum types in `LspQuery`.
2770pub mod lsp_query {
2771    #[derive(serde::Serialize, serde::Deserialize)]
2772    #[derive(Clone, PartialEq, ::prost::Oneof)]
2773    pub enum Request {
2774        #[prost(message, tag="3")]
2775        GetReferences(super::GetReferences),
2776        #[prost(message, tag="4")]
2777        GetDocumentColor(super::GetDocumentColor),
2778        #[prost(message, tag="5")]
2779        GetHover(super::GetHover),
2780        #[prost(message, tag="6")]
2781        GetCodeActions(super::GetCodeActions),
2782        #[prost(message, tag="7")]
2783        GetSignatureHelp(super::GetSignatureHelp),
2784        #[prost(message, tag="8")]
2785        GetCodeLens(super::GetCodeLens),
2786        #[prost(message, tag="9")]
2787        GetDocumentDiagnostics(super::GetDocumentDiagnostics),
2788        #[prost(message, tag="10")]
2789        GetDefinition(super::GetDefinition),
2790        #[prost(message, tag="11")]
2791        GetDeclaration(super::GetDeclaration),
2792        #[prost(message, tag="12")]
2793        GetTypeDefinition(super::GetTypeDefinition),
2794        #[prost(message, tag="13")]
2795        GetImplementation(super::GetImplementation),
2796        #[prost(message, tag="14")]
2797        InlayHints(super::InlayHints),
2798    }
2799}
2800#[derive(serde::Serialize, serde::Deserialize)]
2801#[derive(Clone, PartialEq, ::prost::Message)]
2802pub struct LspQueryResponse {
2803    #[prost(uint64, tag="1")]
2804    pub project_id: u64,
2805    #[prost(uint64, tag="2")]
2806    pub lsp_request_id: u64,
2807    #[prost(message, repeated, tag="3")]
2808    pub responses: ::prost::alloc::vec::Vec<LspResponse>,
2809}
2810#[derive(serde::Serialize, serde::Deserialize)]
2811#[derive(Clone, PartialEq, ::prost::Message)]
2812pub struct LspResponse {
2813    #[prost(uint64, tag="7")]
2814    pub server_id: u64,
2815    #[prost(oneof="lsp_response::Response", tags="1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13")]
2816    pub response: ::core::option::Option<lsp_response::Response>,
2817}
2818/// Nested message and enum types in `LspResponse`.
2819pub mod lsp_response {
2820    #[derive(serde::Serialize, serde::Deserialize)]
2821    #[derive(Clone, PartialEq, ::prost::Oneof)]
2822    pub enum Response {
2823        #[prost(message, tag="1")]
2824        GetHoverResponse(super::GetHoverResponse),
2825        #[prost(message, tag="2")]
2826        GetCodeActionsResponse(super::GetCodeActionsResponse),
2827        #[prost(message, tag="3")]
2828        GetSignatureHelpResponse(super::GetSignatureHelpResponse),
2829        #[prost(message, tag="4")]
2830        GetCodeLensResponse(super::GetCodeLensResponse),
2831        #[prost(message, tag="5")]
2832        GetDocumentDiagnosticsResponse(super::GetDocumentDiagnosticsResponse),
2833        #[prost(message, tag="6")]
2834        GetDocumentColorResponse(super::GetDocumentColorResponse),
2835        #[prost(message, tag="8")]
2836        GetDefinitionResponse(super::GetDefinitionResponse),
2837        #[prost(message, tag="9")]
2838        GetDeclarationResponse(super::GetDeclarationResponse),
2839        #[prost(message, tag="10")]
2840        GetTypeDefinitionResponse(super::GetTypeDefinitionResponse),
2841        #[prost(message, tag="11")]
2842        GetImplementationResponse(super::GetImplementationResponse),
2843        #[prost(message, tag="12")]
2844        GetReferencesResponse(super::GetReferencesResponse),
2845        #[prost(message, tag="13")]
2846        InlayHintsResponse(super::InlayHintsResponse),
2847    }
2848}
2849#[derive(serde::Serialize, serde::Deserialize)]
2850#[derive(Clone, PartialEq, ::prost::Message)]
2851pub struct AllLanguageServers {
2852}
2853#[derive(serde::Serialize, serde::Deserialize)]
2854#[derive(Clone, PartialEq, ::prost::Message)]
2855pub struct LanguageServerSelector {
2856    #[prost(oneof="language_server_selector::Selector", tags="1, 2")]
2857    pub selector: ::core::option::Option<language_server_selector::Selector>,
2858}
2859/// Nested message and enum types in `LanguageServerSelector`.
2860pub mod language_server_selector {
2861    #[derive(serde::Serialize, serde::Deserialize)]
2862    #[derive(Clone, PartialEq, ::prost::Oneof)]
2863    pub enum Selector {
2864        #[prost(uint64, tag="1")]
2865        ServerId(u64),
2866        #[prost(string, tag="2")]
2867        Name(::prost::alloc::string::String),
2868    }
2869}
2870#[derive(serde::Serialize, serde::Deserialize)]
2871#[derive(Clone, PartialEq, ::prost::Message)]
2872pub struct RestartLanguageServers {
2873    #[prost(uint64, tag="1")]
2874    pub project_id: u64,
2875    #[prost(uint64, repeated, tag="2")]
2876    pub buffer_ids: ::prost::alloc::vec::Vec<u64>,
2877    #[prost(message, repeated, tag="3")]
2878    pub only_servers: ::prost::alloc::vec::Vec<LanguageServerSelector>,
2879    #[prost(bool, tag="4")]
2880    pub all: bool,
2881}
2882#[derive(serde::Serialize, serde::Deserialize)]
2883#[derive(Clone, PartialEq, ::prost::Message)]
2884pub struct StopLanguageServers {
2885    #[prost(uint64, tag="1")]
2886    pub project_id: u64,
2887    #[prost(uint64, repeated, tag="2")]
2888    pub buffer_ids: ::prost::alloc::vec::Vec<u64>,
2889    #[prost(message, repeated, tag="3")]
2890    pub also_servers: ::prost::alloc::vec::Vec<LanguageServerSelector>,
2891    #[prost(bool, tag="4")]
2892    pub all: bool,
2893}
2894#[derive(serde::Serialize, serde::Deserialize)]
2895#[derive(Clone, PartialEq, ::prost::Message)]
2896pub struct LspExtRunnables {
2897    #[prost(uint64, tag="1")]
2898    pub project_id: u64,
2899    #[prost(uint64, tag="2")]
2900    pub buffer_id: u64,
2901    #[prost(message, optional, tag="3")]
2902    pub position: ::core::option::Option<Anchor>,
2903}
2904#[derive(serde::Serialize, serde::Deserialize)]
2905#[derive(Clone, PartialEq, ::prost::Message)]
2906pub struct LspExtRunnablesResponse {
2907    #[prost(message, repeated, tag="1")]
2908    pub runnables: ::prost::alloc::vec::Vec<LspRunnable>,
2909}
2910#[derive(serde::Serialize, serde::Deserialize)]
2911#[derive(Clone, PartialEq, ::prost::Message)]
2912pub struct LspRunnable {
2913    #[prost(bytes="vec", tag="1")]
2914    pub task_template: ::prost::alloc::vec::Vec<u8>,
2915    #[prost(message, optional, tag="2")]
2916    pub location: ::core::option::Option<LocationLink>,
2917}
2918#[derive(serde::Serialize, serde::Deserialize)]
2919#[derive(Clone, PartialEq, ::prost::Message)]
2920pub struct LspExtCancelFlycheck {
2921    #[prost(uint64, tag="1")]
2922    pub project_id: u64,
2923    #[prost(uint64, tag="2")]
2924    pub language_server_id: u64,
2925}
2926#[derive(serde::Serialize, serde::Deserialize)]
2927#[derive(Clone, PartialEq, ::prost::Message)]
2928pub struct LspExtRunFlycheck {
2929    #[prost(uint64, tag="1")]
2930    pub project_id: u64,
2931    #[prost(uint64, optional, tag="2")]
2932    pub buffer_id: ::core::option::Option<u64>,
2933    #[prost(uint64, tag="3")]
2934    pub language_server_id: u64,
2935    #[prost(bool, tag="4")]
2936    pub current_file_only: bool,
2937}
2938#[derive(serde::Serialize, serde::Deserialize)]
2939#[derive(Clone, PartialEq, ::prost::Message)]
2940pub struct LspExtClearFlycheck {
2941    #[prost(uint64, tag="1")]
2942    pub project_id: u64,
2943    #[prost(uint64, tag="2")]
2944    pub language_server_id: u64,
2945}
2946#[derive(serde::Serialize, serde::Deserialize)]
2947#[derive(Clone, PartialEq, ::prost::Message)]
2948pub struct LspDiagnosticRelatedInformation {
2949    #[prost(string, optional, tag="1")]
2950    pub location_url: ::core::option::Option<::prost::alloc::string::String>,
2951    #[prost(message, optional, tag="2")]
2952    pub location_range_start: ::core::option::Option<PointUtf16>,
2953    #[prost(message, optional, tag="3")]
2954    pub location_range_end: ::core::option::Option<PointUtf16>,
2955    #[prost(string, tag="4")]
2956    pub message: ::prost::alloc::string::String,
2957}
2958#[derive(serde::Serialize, serde::Deserialize)]
2959#[derive(Clone, PartialEq, ::prost::Message)]
2960pub struct LspDiagnostic {
2961    #[prost(message, optional, tag="1")]
2962    pub start: ::core::option::Option<PointUtf16>,
2963    #[prost(message, optional, tag="2")]
2964    pub end: ::core::option::Option<PointUtf16>,
2965    #[prost(enumeration="lsp_diagnostic::Severity", tag="3")]
2966    pub severity: i32,
2967    #[prost(string, optional, tag="4")]
2968    pub code: ::core::option::Option<::prost::alloc::string::String>,
2969    #[prost(string, optional, tag="5")]
2970    pub code_description: ::core::option::Option<::prost::alloc::string::String>,
2971    #[prost(string, optional, tag="6")]
2972    pub source: ::core::option::Option<::prost::alloc::string::String>,
2973    #[prost(string, tag="7")]
2974    pub message: ::prost::alloc::string::String,
2975    #[prost(message, repeated, tag="8")]
2976    pub related_information: ::prost::alloc::vec::Vec<LspDiagnosticRelatedInformation>,
2977    #[prost(enumeration="LspDiagnosticTag", repeated, tag="9")]
2978    pub tags: ::prost::alloc::vec::Vec<i32>,
2979    #[prost(string, optional, tag="10")]
2980    pub data: ::core::option::Option<::prost::alloc::string::String>,
2981}
2982/// Nested message and enum types in `LspDiagnostic`.
2983pub mod lsp_diagnostic {
2984    #[derive(serde::Serialize, serde::Deserialize)]
2985    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2986    #[repr(i32)]
2987    pub enum Severity {
2988        None = 0,
2989        Error = 1,
2990        Warning = 2,
2991        Information = 3,
2992        Hint = 4,
2993    }
2994}
2995#[derive(serde::Serialize, serde::Deserialize)]
2996#[derive(Clone, PartialEq, ::prost::Message)]
2997pub struct GetDocumentDiagnostics {
2998    #[prost(uint64, tag="1")]
2999    pub project_id: u64,
3000    #[prost(uint64, tag="2")]
3001    pub buffer_id: u64,
3002    #[prost(message, repeated, tag="3")]
3003    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
3004}
3005#[derive(serde::Serialize, serde::Deserialize)]
3006#[derive(Clone, PartialEq, ::prost::Message)]
3007pub struct GetDocumentDiagnosticsResponse {
3008    #[prost(message, repeated, tag="1")]
3009    pub pulled_diagnostics: ::prost::alloc::vec::Vec<PulledDiagnostics>,
3010}
3011#[derive(serde::Serialize, serde::Deserialize)]
3012#[derive(Clone, PartialEq, ::prost::Message)]
3013pub struct PulledDiagnostics {
3014    #[prost(uint64, tag="1")]
3015    pub server_id: u64,
3016    #[prost(string, tag="2")]
3017    pub uri: ::prost::alloc::string::String,
3018    #[prost(string, optional, tag="3")]
3019    pub result_id: ::core::option::Option<::prost::alloc::string::String>,
3020    #[prost(bool, tag="4")]
3021    pub changed: bool,
3022    #[prost(message, repeated, tag="5")]
3023    pub diagnostics: ::prost::alloc::vec::Vec<LspDiagnostic>,
3024    #[prost(string, optional, tag="6")]
3025    pub registration_id: ::core::option::Option<::prost::alloc::string::String>,
3026}
3027#[derive(serde::Serialize, serde::Deserialize)]
3028#[derive(Clone, PartialEq, ::prost::Message)]
3029pub struct PullWorkspaceDiagnostics {
3030    #[prost(uint64, tag="1")]
3031    pub project_id: u64,
3032    #[prost(uint64, tag="2")]
3033    pub server_id: u64,
3034}
3035#[derive(serde::Serialize, serde::Deserialize)]
3036#[derive(Clone, PartialEq, ::prost::Message)]
3037pub struct ToggleLspLogs {
3038    #[prost(uint64, tag="1")]
3039    pub project_id: u64,
3040    #[prost(enumeration="toggle_lsp_logs::LogType", tag="2")]
3041    pub log_type: i32,
3042    #[prost(uint64, tag="3")]
3043    pub server_id: u64,
3044    #[prost(bool, tag="4")]
3045    pub enabled: bool,
3046}
3047/// Nested message and enum types in `ToggleLspLogs`.
3048pub mod toggle_lsp_logs {
3049    #[derive(serde::Serialize, serde::Deserialize)]
3050    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3051    #[repr(i32)]
3052    pub enum LogType {
3053        Log = 0,
3054        Trace = 1,
3055        Rpc = 2,
3056    }
3057}
3058#[derive(serde::Serialize, serde::Deserialize)]
3059#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3060#[repr(i32)]
3061pub enum MarkupKind {
3062    PlainText = 0,
3063    Markdown = 1,
3064}
3065#[derive(serde::Serialize, serde::Deserialize)]
3066#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3067#[repr(i32)]
3068pub enum ServerHealth {
3069    Ok = 0,
3070    Warning = 1,
3071    Error = 2,
3072}
3073#[derive(serde::Serialize, serde::Deserialize)]
3074#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3075#[repr(i32)]
3076pub enum ServerBinaryStatus {
3077    None = 0,
3078    CheckingForUpdate = 1,
3079    Downloading = 2,
3080    Starting = 3,
3081    Stopping = 4,
3082    Stopped = 5,
3083    Failed = 6,
3084}
3085#[derive(serde::Serialize, serde::Deserialize)]
3086#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3087#[repr(i32)]
3088pub enum FormatTrigger {
3089    Save = 0,
3090    Manual = 1,
3091}
3092#[derive(serde::Serialize, serde::Deserialize)]
3093#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3094#[repr(i32)]
3095pub enum LspDiagnosticTag {
3096    None = 0,
3097    Unnecessary = 1,
3098    Deprecated = 2,
3099}
3100#[derive(serde::Serialize, serde::Deserialize)]
3101#[derive(Clone, PartialEq, ::prost::Message)]
3102pub struct Channel {
3103    #[prost(uint64, tag="1")]
3104    pub id: u64,
3105    #[prost(string, tag="2")]
3106    pub name: ::prost::alloc::string::String,
3107    #[prost(enumeration="ChannelVisibility", tag="3")]
3108    pub visibility: i32,
3109    #[prost(int32, tag="4")]
3110    pub channel_order: i32,
3111    #[prost(uint64, repeated, tag="5")]
3112    pub parent_path: ::prost::alloc::vec::Vec<u64>,
3113}
3114#[derive(serde::Serialize, serde::Deserialize)]
3115#[derive(Clone, PartialEq, ::prost::Message)]
3116pub struct UpdateChannels {
3117    #[prost(message, repeated, tag="1")]
3118    pub channels: ::prost::alloc::vec::Vec<Channel>,
3119    #[prost(uint64, repeated, tag="4")]
3120    pub delete_channels: ::prost::alloc::vec::Vec<u64>,
3121    #[prost(message, repeated, tag="5")]
3122    pub channel_invitations: ::prost::alloc::vec::Vec<Channel>,
3123    #[prost(uint64, repeated, tag="6")]
3124    pub remove_channel_invitations: ::prost::alloc::vec::Vec<u64>,
3125    #[prost(message, repeated, tag="7")]
3126    pub channel_participants: ::prost::alloc::vec::Vec<ChannelParticipants>,
3127    #[prost(message, repeated, tag="9")]
3128    pub latest_channel_buffer_versions: ::prost::alloc::vec::Vec<ChannelBufferVersion>,
3129}
3130#[derive(serde::Serialize, serde::Deserialize)]
3131#[derive(Clone, PartialEq, ::prost::Message)]
3132pub struct UpdateUserChannels {
3133    #[prost(message, repeated, tag="2")]
3134    pub observed_channel_buffer_version: ::prost::alloc::vec::Vec<ChannelBufferVersion>,
3135    #[prost(message, repeated, tag="3")]
3136    pub channel_memberships: ::prost::alloc::vec::Vec<ChannelMembership>,
3137}
3138#[derive(serde::Serialize, serde::Deserialize)]
3139#[derive(Clone, PartialEq, ::prost::Message)]
3140pub struct ChannelMembership {
3141    #[prost(uint64, tag="1")]
3142    pub channel_id: u64,
3143    #[prost(enumeration="ChannelRole", tag="2")]
3144    pub role: i32,
3145}
3146#[derive(serde::Serialize, serde::Deserialize)]
3147#[derive(Clone, PartialEq, ::prost::Message)]
3148pub struct ChannelMessageId {
3149    #[prost(uint64, tag="1")]
3150    pub channel_id: u64,
3151    #[prost(uint64, tag="2")]
3152    pub message_id: u64,
3153}
3154#[derive(serde::Serialize, serde::Deserialize)]
3155#[derive(Clone, PartialEq, ::prost::Message)]
3156pub struct ChannelPermission {
3157    #[prost(uint64, tag="1")]
3158    pub channel_id: u64,
3159    #[prost(enumeration="ChannelRole", tag="3")]
3160    pub role: i32,
3161}
3162#[derive(serde::Serialize, serde::Deserialize)]
3163#[derive(Clone, PartialEq, ::prost::Message)]
3164pub struct ChannelParticipants {
3165    #[prost(uint64, tag="1")]
3166    pub channel_id: u64,
3167    #[prost(uint64, repeated, tag="2")]
3168    pub participant_user_ids: ::prost::alloc::vec::Vec<u64>,
3169}
3170#[derive(serde::Serialize, serde::Deserialize)]
3171#[derive(Clone, PartialEq, ::prost::Message)]
3172pub struct JoinChannel {
3173    #[prost(uint64, tag="1")]
3174    pub channel_id: u64,
3175}
3176#[derive(serde::Serialize, serde::Deserialize)]
3177#[derive(Clone, PartialEq, ::prost::Message)]
3178pub struct DeleteChannel {
3179    #[prost(uint64, tag="1")]
3180    pub channel_id: u64,
3181}
3182#[derive(serde::Serialize, serde::Deserialize)]
3183#[derive(Clone, PartialEq, ::prost::Message)]
3184pub struct GetChannelMembers {
3185    #[prost(uint64, tag="1")]
3186    pub channel_id: u64,
3187    #[prost(string, tag="2")]
3188    pub query: ::prost::alloc::string::String,
3189    #[prost(uint64, tag="3")]
3190    pub limit: u64,
3191}
3192#[derive(serde::Serialize, serde::Deserialize)]
3193#[derive(Clone, PartialEq, ::prost::Message)]
3194pub struct GetChannelMembersResponse {
3195    #[prost(message, repeated, tag="1")]
3196    pub members: ::prost::alloc::vec::Vec<ChannelMember>,
3197    #[prost(message, repeated, tag="2")]
3198    pub users: ::prost::alloc::vec::Vec<User>,
3199}
3200#[derive(serde::Serialize, serde::Deserialize)]
3201#[derive(Clone, PartialEq, ::prost::Message)]
3202pub struct ChannelMember {
3203    #[prost(uint64, tag="1")]
3204    pub user_id: u64,
3205    #[prost(enumeration="channel_member::Kind", tag="3")]
3206    pub kind: i32,
3207    #[prost(enumeration="ChannelRole", tag="4")]
3208    pub role: i32,
3209}
3210/// Nested message and enum types in `ChannelMember`.
3211pub mod channel_member {
3212    #[derive(serde::Serialize, serde::Deserialize)]
3213    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3214    #[repr(i32)]
3215    pub enum Kind {
3216        Member = 0,
3217        Invitee = 1,
3218    }
3219}
3220#[derive(serde::Serialize, serde::Deserialize)]
3221#[derive(Clone, PartialEq, ::prost::Message)]
3222pub struct SubscribeToChannels {
3223}
3224#[derive(serde::Serialize, serde::Deserialize)]
3225#[derive(Clone, PartialEq, ::prost::Message)]
3226pub struct CreateChannel {
3227    #[prost(string, tag="1")]
3228    pub name: ::prost::alloc::string::String,
3229    #[prost(uint64, optional, tag="2")]
3230    pub parent_id: ::core::option::Option<u64>,
3231}
3232#[derive(serde::Serialize, serde::Deserialize)]
3233#[derive(Clone, PartialEq, ::prost::Message)]
3234pub struct CreateChannelResponse {
3235    #[prost(message, optional, tag="1")]
3236    pub channel: ::core::option::Option<Channel>,
3237    #[prost(uint64, optional, tag="2")]
3238    pub parent_id: ::core::option::Option<u64>,
3239}
3240#[derive(serde::Serialize, serde::Deserialize)]
3241#[derive(Clone, PartialEq, ::prost::Message)]
3242pub struct InviteChannelMember {
3243    #[prost(uint64, tag="1")]
3244    pub channel_id: u64,
3245    #[prost(uint64, tag="2")]
3246    pub user_id: u64,
3247    #[prost(enumeration="ChannelRole", tag="4")]
3248    pub role: i32,
3249}
3250#[derive(serde::Serialize, serde::Deserialize)]
3251#[derive(Clone, PartialEq, ::prost::Message)]
3252pub struct RemoveChannelMember {
3253    #[prost(uint64, tag="1")]
3254    pub channel_id: u64,
3255    #[prost(uint64, tag="2")]
3256    pub user_id: u64,
3257}
3258#[derive(serde::Serialize, serde::Deserialize)]
3259#[derive(Clone, PartialEq, ::prost::Message)]
3260pub struct SetChannelMemberRole {
3261    #[prost(uint64, tag="1")]
3262    pub channel_id: u64,
3263    #[prost(uint64, tag="2")]
3264    pub user_id: u64,
3265    #[prost(enumeration="ChannelRole", tag="3")]
3266    pub role: i32,
3267}
3268#[derive(serde::Serialize, serde::Deserialize)]
3269#[derive(Clone, PartialEq, ::prost::Message)]
3270pub struct SetChannelVisibility {
3271    #[prost(uint64, tag="1")]
3272    pub channel_id: u64,
3273    #[prost(enumeration="ChannelVisibility", tag="2")]
3274    pub visibility: i32,
3275}
3276#[derive(serde::Serialize, serde::Deserialize)]
3277#[derive(Clone, PartialEq, ::prost::Message)]
3278pub struct RenameChannel {
3279    #[prost(uint64, tag="1")]
3280    pub channel_id: u64,
3281    #[prost(string, tag="2")]
3282    pub name: ::prost::alloc::string::String,
3283}
3284#[derive(serde::Serialize, serde::Deserialize)]
3285#[derive(Clone, PartialEq, ::prost::Message)]
3286pub struct RenameChannelResponse {
3287    #[prost(message, optional, tag="1")]
3288    pub channel: ::core::option::Option<Channel>,
3289}
3290#[derive(serde::Serialize, serde::Deserialize)]
3291#[derive(Clone, PartialEq, ::prost::Message)]
3292pub struct JoinChannelChat {
3293    #[prost(uint64, tag="1")]
3294    pub channel_id: u64,
3295}
3296#[derive(serde::Serialize, serde::Deserialize)]
3297#[derive(Clone, PartialEq, ::prost::Message)]
3298pub struct JoinChannelChatResponse {
3299    #[prost(message, repeated, tag="1")]
3300    pub messages: ::prost::alloc::vec::Vec<ChannelMessage>,
3301    #[prost(bool, tag="2")]
3302    pub done: bool,
3303}
3304#[derive(serde::Serialize, serde::Deserialize)]
3305#[derive(Clone, PartialEq, ::prost::Message)]
3306pub struct LeaveChannelChat {
3307    #[prost(uint64, tag="1")]
3308    pub channel_id: u64,
3309}
3310#[derive(serde::Serialize, serde::Deserialize)]
3311#[derive(Clone, PartialEq, ::prost::Message)]
3312pub struct SendChannelMessage {
3313    #[prost(uint64, tag="1")]
3314    pub channel_id: u64,
3315    #[prost(string, tag="2")]
3316    pub body: ::prost::alloc::string::String,
3317    #[prost(message, optional, tag="3")]
3318    pub nonce: ::core::option::Option<Nonce>,
3319    #[prost(message, repeated, tag="4")]
3320    pub mentions: ::prost::alloc::vec::Vec<ChatMention>,
3321    #[prost(uint64, optional, tag="5")]
3322    pub reply_to_message_id: ::core::option::Option<u64>,
3323}
3324#[derive(serde::Serialize, serde::Deserialize)]
3325#[derive(Clone, PartialEq, ::prost::Message)]
3326pub struct RemoveChannelMessage {
3327    #[prost(uint64, tag="1")]
3328    pub channel_id: u64,
3329    #[prost(uint64, tag="2")]
3330    pub message_id: u64,
3331}
3332#[derive(serde::Serialize, serde::Deserialize)]
3333#[derive(Clone, PartialEq, ::prost::Message)]
3334pub struct UpdateChannelMessage {
3335    #[prost(uint64, tag="1")]
3336    pub channel_id: u64,
3337    #[prost(uint64, tag="2")]
3338    pub message_id: u64,
3339    #[prost(message, optional, tag="4")]
3340    pub nonce: ::core::option::Option<Nonce>,
3341    #[prost(string, tag="5")]
3342    pub body: ::prost::alloc::string::String,
3343    #[prost(message, repeated, tag="6")]
3344    pub mentions: ::prost::alloc::vec::Vec<ChatMention>,
3345}
3346#[derive(serde::Serialize, serde::Deserialize)]
3347#[derive(Clone, PartialEq, ::prost::Message)]
3348pub struct AckChannelMessage {
3349    #[prost(uint64, tag="1")]
3350    pub channel_id: u64,
3351    #[prost(uint64, tag="2")]
3352    pub message_id: u64,
3353}
3354#[derive(serde::Serialize, serde::Deserialize)]
3355#[derive(Clone, PartialEq, ::prost::Message)]
3356pub struct SendChannelMessageResponse {
3357    #[prost(message, optional, tag="1")]
3358    pub message: ::core::option::Option<ChannelMessage>,
3359}
3360#[derive(serde::Serialize, serde::Deserialize)]
3361#[derive(Clone, PartialEq, ::prost::Message)]
3362pub struct ChannelMessageSent {
3363    #[prost(uint64, tag="1")]
3364    pub channel_id: u64,
3365    #[prost(message, optional, tag="2")]
3366    pub message: ::core::option::Option<ChannelMessage>,
3367}
3368#[derive(serde::Serialize, serde::Deserialize)]
3369#[derive(Clone, PartialEq, ::prost::Message)]
3370pub struct ChannelMessageUpdate {
3371    #[prost(uint64, tag="1")]
3372    pub channel_id: u64,
3373    #[prost(message, optional, tag="2")]
3374    pub message: ::core::option::Option<ChannelMessage>,
3375}
3376#[derive(serde::Serialize, serde::Deserialize)]
3377#[derive(Clone, PartialEq, ::prost::Message)]
3378pub struct GetChannelMessages {
3379    #[prost(uint64, tag="1")]
3380    pub channel_id: u64,
3381    #[prost(uint64, tag="2")]
3382    pub before_message_id: u64,
3383}
3384#[derive(serde::Serialize, serde::Deserialize)]
3385#[derive(Clone, PartialEq, ::prost::Message)]
3386pub struct GetChannelMessagesResponse {
3387    #[prost(message, repeated, tag="1")]
3388    pub messages: ::prost::alloc::vec::Vec<ChannelMessage>,
3389    #[prost(bool, tag="2")]
3390    pub done: bool,
3391}
3392#[derive(serde::Serialize, serde::Deserialize)]
3393#[derive(Clone, PartialEq, ::prost::Message)]
3394pub struct GetChannelMessagesById {
3395    #[prost(uint64, repeated, tag="1")]
3396    pub message_ids: ::prost::alloc::vec::Vec<u64>,
3397}
3398#[derive(serde::Serialize, serde::Deserialize)]
3399#[derive(Clone, PartialEq, ::prost::Message)]
3400pub struct MoveChannel {
3401    #[prost(uint64, tag="1")]
3402    pub channel_id: u64,
3403    #[prost(uint64, tag="2")]
3404    pub to: u64,
3405}
3406#[derive(serde::Serialize, serde::Deserialize)]
3407#[derive(Clone, PartialEq, ::prost::Message)]
3408pub struct ReorderChannel {
3409    #[prost(uint64, tag="1")]
3410    pub channel_id: u64,
3411    #[prost(enumeration="reorder_channel::Direction", tag="2")]
3412    pub direction: i32,
3413}
3414/// Nested message and enum types in `ReorderChannel`.
3415pub mod reorder_channel {
3416    #[derive(serde::Serialize, serde::Deserialize)]
3417    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3418    #[repr(i32)]
3419    pub enum Direction {
3420        Up = 0,
3421        Down = 1,
3422    }
3423}
3424#[derive(serde::Serialize, serde::Deserialize)]
3425#[derive(Clone, PartialEq, ::prost::Message)]
3426pub struct JoinChannelBuffer {
3427    #[prost(uint64, tag="1")]
3428    pub channel_id: u64,
3429}
3430#[derive(serde::Serialize, serde::Deserialize)]
3431#[derive(Clone, PartialEq, ::prost::Message)]
3432pub struct ChannelBufferVersion {
3433    #[prost(uint64, tag="1")]
3434    pub channel_id: u64,
3435    #[prost(message, repeated, tag="2")]
3436    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
3437    #[prost(uint64, tag="3")]
3438    pub epoch: u64,
3439}
3440#[derive(serde::Serialize, serde::Deserialize)]
3441#[derive(Clone, PartialEq, ::prost::Message)]
3442pub struct UpdateChannelBufferCollaborators {
3443    #[prost(uint64, tag="1")]
3444    pub channel_id: u64,
3445    #[prost(message, repeated, tag="2")]
3446    pub collaborators: ::prost::alloc::vec::Vec<Collaborator>,
3447}
3448#[derive(serde::Serialize, serde::Deserialize)]
3449#[derive(Clone, PartialEq, ::prost::Message)]
3450pub struct UpdateChannelBuffer {
3451    #[prost(uint64, tag="1")]
3452    pub channel_id: u64,
3453    #[prost(message, repeated, tag="2")]
3454    pub operations: ::prost::alloc::vec::Vec<Operation>,
3455}
3456#[derive(serde::Serialize, serde::Deserialize)]
3457#[derive(Clone, PartialEq, ::prost::Message)]
3458pub struct ChannelMessage {
3459    #[prost(uint64, tag="1")]
3460    pub id: u64,
3461    #[prost(string, tag="2")]
3462    pub body: ::prost::alloc::string::String,
3463    #[prost(uint64, tag="3")]
3464    pub timestamp: u64,
3465    #[prost(uint64, tag="4")]
3466    pub sender_id: u64,
3467    #[prost(message, optional, tag="5")]
3468    pub nonce: ::core::option::Option<Nonce>,
3469    #[prost(message, repeated, tag="6")]
3470    pub mentions: ::prost::alloc::vec::Vec<ChatMention>,
3471    #[prost(uint64, optional, tag="7")]
3472    pub reply_to_message_id: ::core::option::Option<u64>,
3473    #[prost(uint64, optional, tag="8")]
3474    pub edited_at: ::core::option::Option<u64>,
3475}
3476#[derive(serde::Serialize, serde::Deserialize)]
3477#[derive(Clone, PartialEq, ::prost::Message)]
3478pub struct ChatMention {
3479    #[prost(message, optional, tag="1")]
3480    pub range: ::core::option::Option<Range>,
3481    #[prost(uint64, tag="2")]
3482    pub user_id: u64,
3483}
3484#[derive(serde::Serialize, serde::Deserialize)]
3485#[derive(Clone, PartialEq, ::prost::Message)]
3486pub struct RejoinChannelBuffers {
3487    #[prost(message, repeated, tag="1")]
3488    pub buffers: ::prost::alloc::vec::Vec<ChannelBufferVersion>,
3489}
3490#[derive(serde::Serialize, serde::Deserialize)]
3491#[derive(Clone, PartialEq, ::prost::Message)]
3492pub struct RejoinChannelBuffersResponse {
3493    #[prost(message, repeated, tag="1")]
3494    pub buffers: ::prost::alloc::vec::Vec<RejoinedChannelBuffer>,
3495}
3496#[derive(serde::Serialize, serde::Deserialize)]
3497#[derive(Clone, PartialEq, ::prost::Message)]
3498pub struct AckBufferOperation {
3499    #[prost(uint64, tag="1")]
3500    pub buffer_id: u64,
3501    #[prost(uint64, tag="2")]
3502    pub epoch: u64,
3503    #[prost(message, repeated, tag="3")]
3504    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
3505}
3506#[derive(serde::Serialize, serde::Deserialize)]
3507#[derive(Clone, PartialEq, ::prost::Message)]
3508pub struct JoinChannelBufferResponse {
3509    #[prost(uint64, tag="1")]
3510    pub buffer_id: u64,
3511    #[prost(uint32, tag="2")]
3512    pub replica_id: u32,
3513    #[prost(string, tag="3")]
3514    pub base_text: ::prost::alloc::string::String,
3515    #[prost(message, repeated, tag="4")]
3516    pub operations: ::prost::alloc::vec::Vec<Operation>,
3517    #[prost(message, repeated, tag="5")]
3518    pub collaborators: ::prost::alloc::vec::Vec<Collaborator>,
3519    #[prost(uint64, tag="6")]
3520    pub epoch: u64,
3521}
3522#[derive(serde::Serialize, serde::Deserialize)]
3523#[derive(Clone, PartialEq, ::prost::Message)]
3524pub struct RejoinedChannelBuffer {
3525    #[prost(uint64, tag="1")]
3526    pub channel_id: u64,
3527    #[prost(message, repeated, tag="2")]
3528    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
3529    #[prost(message, repeated, tag="3")]
3530    pub operations: ::prost::alloc::vec::Vec<Operation>,
3531    #[prost(message, repeated, tag="4")]
3532    pub collaborators: ::prost::alloc::vec::Vec<Collaborator>,
3533}
3534#[derive(serde::Serialize, serde::Deserialize)]
3535#[derive(Clone, PartialEq, ::prost::Message)]
3536pub struct LeaveChannelBuffer {
3537    #[prost(uint64, tag="1")]
3538    pub channel_id: u64,
3539}
3540#[derive(serde::Serialize, serde::Deserialize)]
3541#[derive(Clone, PartialEq, ::prost::Message)]
3542pub struct RespondToChannelInvite {
3543    #[prost(uint64, tag="1")]
3544    pub channel_id: u64,
3545    #[prost(bool, tag="2")]
3546    pub accept: bool,
3547}
3548#[derive(serde::Serialize, serde::Deserialize)]
3549#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3550#[repr(i32)]
3551pub enum ChannelVisibility {
3552    Public = 0,
3553    Members = 1,
3554}
3555#[derive(serde::Serialize, serde::Deserialize)]
3556#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3557#[repr(i32)]
3558pub enum ChannelRole {
3559    Admin = 0,
3560    Member = 1,
3561    Guest = 2,
3562    Banned = 3,
3563    Talker = 4,
3564}
3565#[derive(serde::Serialize, serde::Deserialize)]
3566#[derive(Clone, PartialEq, ::prost::Message)]
3567pub struct GitBranchesResponse {
3568    #[prost(message, repeated, tag="1")]
3569    pub branches: ::prost::alloc::vec::Vec<Branch>,
3570}
3571#[derive(serde::Serialize, serde::Deserialize)]
3572#[derive(Clone, PartialEq, ::prost::Message)]
3573pub struct UpdateDiffBases {
3574    #[prost(uint64, tag="1")]
3575    pub project_id: u64,
3576    #[prost(uint64, tag="2")]
3577    pub buffer_id: u64,
3578    #[prost(string, optional, tag="3")]
3579    pub staged_text: ::core::option::Option<::prost::alloc::string::String>,
3580    #[prost(string, optional, tag="4")]
3581    pub committed_text: ::core::option::Option<::prost::alloc::string::String>,
3582    #[prost(enumeration="update_diff_bases::Mode", tag="5")]
3583    pub mode: i32,
3584}
3585/// Nested message and enum types in `UpdateDiffBases`.
3586pub mod update_diff_bases {
3587    #[derive(serde::Serialize, serde::Deserialize)]
3588    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3589    #[repr(i32)]
3590    pub enum Mode {
3591        /// No collaborator is using the unstaged diff.
3592        HeadOnly = 0,
3593        /// No collaborator is using the diff from HEAD.
3594        IndexOnly = 1,
3595        /// Both the unstaged and uncommitted diffs are demanded,
3596        /// and the contents of the index and HEAD are the same for this path.
3597        IndexMatchesHead = 2,
3598        /// Both the unstaged and uncommitted diffs are demanded,
3599        /// and the contents of the index and HEAD differ for this path,
3600        /// where None means the path doesn't exist in that state of the repo.
3601        IndexAndHead = 3,
3602    }
3603}
3604#[derive(serde::Serialize, serde::Deserialize)]
3605#[derive(Clone, PartialEq, ::prost::Message)]
3606pub struct OpenUnstagedDiff {
3607    #[prost(uint64, tag="1")]
3608    pub project_id: u64,
3609    #[prost(uint64, tag="2")]
3610    pub buffer_id: u64,
3611}
3612#[derive(serde::Serialize, serde::Deserialize)]
3613#[derive(Clone, PartialEq, ::prost::Message)]
3614pub struct OpenUnstagedDiffResponse {
3615    #[prost(string, optional, tag="1")]
3616    pub staged_text: ::core::option::Option<::prost::alloc::string::String>,
3617}
3618#[derive(serde::Serialize, serde::Deserialize)]
3619#[derive(Clone, PartialEq, ::prost::Message)]
3620pub struct OpenUncommittedDiff {
3621    #[prost(uint64, tag="1")]
3622    pub project_id: u64,
3623    #[prost(uint64, tag="2")]
3624    pub buffer_id: u64,
3625}
3626#[derive(serde::Serialize, serde::Deserialize)]
3627#[derive(Clone, PartialEq, ::prost::Message)]
3628pub struct OpenUncommittedDiffResponse {
3629    #[prost(string, optional, tag="1")]
3630    pub staged_text: ::core::option::Option<::prost::alloc::string::String>,
3631    #[prost(string, optional, tag="2")]
3632    pub committed_text: ::core::option::Option<::prost::alloc::string::String>,
3633    #[prost(enumeration="open_uncommitted_diff_response::Mode", tag="3")]
3634    pub mode: i32,
3635}
3636/// Nested message and enum types in `OpenUncommittedDiffResponse`.
3637pub mod open_uncommitted_diff_response {
3638    #[derive(serde::Serialize, serde::Deserialize)]
3639    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3640    #[repr(i32)]
3641    pub enum Mode {
3642        IndexMatchesHead = 0,
3643        IndexAndHead = 1,
3644    }
3645}
3646#[derive(serde::Serialize, serde::Deserialize)]
3647#[derive(Clone, PartialEq, ::prost::Message)]
3648pub struct SetIndexText {
3649    #[prost(uint64, tag="1")]
3650    pub project_id: u64,
3651    #[prost(uint64, tag="3")]
3652    pub repository_id: u64,
3653    #[prost(string, tag="4")]
3654    pub path: ::prost::alloc::string::String,
3655    #[prost(string, optional, tag="5")]
3656    pub text: ::core::option::Option<::prost::alloc::string::String>,
3657}
3658#[derive(serde::Serialize, serde::Deserialize)]
3659#[derive(Clone, PartialEq, ::prost::Message)]
3660pub struct GetPermalinkToLine {
3661    #[prost(uint64, tag="1")]
3662    pub project_id: u64,
3663    #[prost(uint64, tag="2")]
3664    pub buffer_id: u64,
3665    #[prost(message, optional, tag="3")]
3666    pub selection: ::core::option::Option<Range>,
3667}
3668#[derive(serde::Serialize, serde::Deserialize)]
3669#[derive(Clone, PartialEq, ::prost::Message)]
3670pub struct GetPermalinkToLineResponse {
3671    #[prost(string, tag="1")]
3672    pub permalink: ::prost::alloc::string::String,
3673}
3674#[derive(serde::Serialize, serde::Deserialize)]
3675#[derive(Clone, PartialEq, ::prost::Message)]
3676pub struct Branch {
3677    #[prost(bool, tag="1")]
3678    pub is_head: bool,
3679    #[prost(string, tag="2")]
3680    pub ref_name: ::prost::alloc::string::String,
3681    #[prost(uint64, optional, tag="3")]
3682    pub unix_timestamp: ::core::option::Option<u64>,
3683    #[prost(message, optional, tag="4")]
3684    pub upstream: ::core::option::Option<GitUpstream>,
3685    #[prost(message, optional, tag="5")]
3686    pub most_recent_commit: ::core::option::Option<CommitSummary>,
3687}
3688#[derive(serde::Serialize, serde::Deserialize)]
3689#[derive(Clone, PartialEq, ::prost::Message)]
3690pub struct GitUpstream {
3691    #[prost(string, tag="1")]
3692    pub ref_name: ::prost::alloc::string::String,
3693    #[prost(message, optional, tag="2")]
3694    pub tracking: ::core::option::Option<UpstreamTracking>,
3695}
3696#[derive(serde::Serialize, serde::Deserialize)]
3697#[derive(Clone, PartialEq, ::prost::Message)]
3698pub struct UpstreamTracking {
3699    #[prost(uint64, tag="1")]
3700    pub ahead: u64,
3701    #[prost(uint64, tag="2")]
3702    pub behind: u64,
3703}
3704#[derive(serde::Serialize, serde::Deserialize)]
3705#[derive(Clone, PartialEq, ::prost::Message)]
3706pub struct CommitSummary {
3707    #[prost(string, tag="1")]
3708    pub sha: ::prost::alloc::string::String,
3709    #[prost(string, tag="2")]
3710    pub subject: ::prost::alloc::string::String,
3711    #[prost(int64, tag="3")]
3712    pub commit_timestamp: i64,
3713    #[prost(string, tag="4")]
3714    pub author_name: ::prost::alloc::string::String,
3715}
3716#[derive(serde::Serialize, serde::Deserialize)]
3717#[derive(Clone, PartialEq, ::prost::Message)]
3718pub struct GitBranches {
3719    #[prost(uint64, tag="1")]
3720    pub project_id: u64,
3721    #[prost(message, optional, tag="2")]
3722    pub repository: ::core::option::Option<ProjectPath>,
3723}
3724#[derive(serde::Serialize, serde::Deserialize)]
3725#[derive(Clone, PartialEq, ::prost::Message)]
3726pub struct UpdateGitBranch {
3727    #[prost(uint64, tag="1")]
3728    pub project_id: u64,
3729    #[prost(string, tag="2")]
3730    pub branch_name: ::prost::alloc::string::String,
3731    #[prost(message, optional, tag="3")]
3732    pub repository: ::core::option::Option<ProjectPath>,
3733}
3734#[derive(serde::Serialize, serde::Deserialize)]
3735#[derive(Clone, PartialEq, ::prost::Message)]
3736pub struct UpdateRepository {
3737    #[prost(uint64, tag="1")]
3738    pub project_id: u64,
3739    #[prost(uint64, tag="2")]
3740    pub id: u64,
3741    #[prost(string, tag="3")]
3742    pub abs_path: ::prost::alloc::string::String,
3743    #[prost(uint64, repeated, tag="4")]
3744    pub entry_ids: ::prost::alloc::vec::Vec<u64>,
3745    #[prost(message, optional, tag="5")]
3746    pub branch_summary: ::core::option::Option<Branch>,
3747    #[prost(message, repeated, tag="6")]
3748    pub updated_statuses: ::prost::alloc::vec::Vec<StatusEntry>,
3749    #[prost(string, repeated, tag="7")]
3750    pub removed_statuses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3751    #[prost(string, repeated, tag="8")]
3752    pub current_merge_conflicts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3753    #[prost(uint64, tag="9")]
3754    pub scan_id: u64,
3755    #[prost(bool, tag="10")]
3756    pub is_last_update: bool,
3757    #[prost(message, optional, tag="11")]
3758    pub head_commit_details: ::core::option::Option<GitCommitDetails>,
3759    #[prost(string, optional, tag="12")]
3760    pub merge_message: ::core::option::Option<::prost::alloc::string::String>,
3761    #[prost(message, repeated, tag="13")]
3762    pub stash_entries: ::prost::alloc::vec::Vec<StashEntry>,
3763    #[prost(string, optional, tag="14")]
3764    pub remote_upstream_url: ::core::option::Option<::prost::alloc::string::String>,
3765    #[prost(string, optional, tag="15")]
3766    pub remote_origin_url: ::core::option::Option<::prost::alloc::string::String>,
3767}
3768#[derive(serde::Serialize, serde::Deserialize)]
3769#[derive(Clone, PartialEq, ::prost::Message)]
3770pub struct RemoveRepository {
3771    #[prost(uint64, tag="1")]
3772    pub project_id: u64,
3773    #[prost(uint64, tag="2")]
3774    pub id: u64,
3775}
3776#[derive(serde::Serialize, serde::Deserialize)]
3777#[derive(Clone, PartialEq, ::prost::Message)]
3778pub struct GitFileStatus {
3779    #[prost(oneof="git_file_status::Variant", tags="1, 2, 3, 4")]
3780    pub variant: ::core::option::Option<git_file_status::Variant>,
3781}
3782/// Nested message and enum types in `GitFileStatus`.
3783pub mod git_file_status {
3784    #[derive(serde::Serialize, serde::Deserialize)]
3785    #[derive(Clone, PartialEq, ::prost::Message)]
3786    pub struct Untracked {
3787    }
3788    #[derive(serde::Serialize, serde::Deserialize)]
3789    #[derive(Clone, PartialEq, ::prost::Message)]
3790    pub struct Ignored {
3791    }
3792    #[derive(serde::Serialize, serde::Deserialize)]
3793    #[derive(Clone, PartialEq, ::prost::Message)]
3794    pub struct Unmerged {
3795        #[prost(enumeration="super::GitStatus", tag="1")]
3796        pub first_head: i32,
3797        #[prost(enumeration="super::GitStatus", tag="2")]
3798        pub second_head: i32,
3799    }
3800    #[derive(serde::Serialize, serde::Deserialize)]
3801    #[derive(Clone, PartialEq, ::prost::Message)]
3802    pub struct Tracked {
3803        #[prost(enumeration="super::GitStatus", tag="1")]
3804        pub index_status: i32,
3805        #[prost(enumeration="super::GitStatus", tag="2")]
3806        pub worktree_status: i32,
3807    }
3808    #[derive(serde::Serialize, serde::Deserialize)]
3809    #[derive(Clone, PartialEq, ::prost::Oneof)]
3810    pub enum Variant {
3811        #[prost(message, tag="1")]
3812        Untracked(Untracked),
3813        #[prost(message, tag="2")]
3814        Ignored(Ignored),
3815        #[prost(message, tag="3")]
3816        Unmerged(Unmerged),
3817        #[prost(message, tag="4")]
3818        Tracked(Tracked),
3819    }
3820}
3821#[derive(serde::Serialize, serde::Deserialize)]
3822#[derive(Clone, PartialEq, ::prost::Message)]
3823pub struct GitGetBranches {
3824    #[prost(uint64, tag="1")]
3825    pub project_id: u64,
3826    #[prost(uint64, tag="3")]
3827    pub repository_id: u64,
3828}
3829#[derive(serde::Serialize, serde::Deserialize)]
3830#[derive(Clone, PartialEq, ::prost::Message)]
3831pub struct GitCreateBranch {
3832    #[prost(uint64, tag="1")]
3833    pub project_id: u64,
3834    #[prost(uint64, tag="3")]
3835    pub repository_id: u64,
3836    #[prost(string, tag="4")]
3837    pub branch_name: ::prost::alloc::string::String,
3838}
3839#[derive(serde::Serialize, serde::Deserialize)]
3840#[derive(Clone, PartialEq, ::prost::Message)]
3841pub struct GitChangeBranch {
3842    #[prost(uint64, tag="1")]
3843    pub project_id: u64,
3844    #[prost(uint64, tag="3")]
3845    pub repository_id: u64,
3846    #[prost(string, tag="4")]
3847    pub branch_name: ::prost::alloc::string::String,
3848}
3849#[derive(serde::Serialize, serde::Deserialize)]
3850#[derive(Clone, PartialEq, ::prost::Message)]
3851pub struct GitRenameBranch {
3852    #[prost(uint64, tag="1")]
3853    pub project_id: u64,
3854    #[prost(uint64, tag="2")]
3855    pub repository_id: u64,
3856    #[prost(string, tag="3")]
3857    pub branch: ::prost::alloc::string::String,
3858    #[prost(string, tag="4")]
3859    pub new_name: ::prost::alloc::string::String,
3860}
3861#[derive(serde::Serialize, serde::Deserialize)]
3862#[derive(Clone, PartialEq, ::prost::Message)]
3863pub struct GitCreateRemote {
3864    #[prost(uint64, tag="1")]
3865    pub project_id: u64,
3866    #[prost(uint64, tag="2")]
3867    pub repository_id: u64,
3868    #[prost(string, tag="3")]
3869    pub remote_name: ::prost::alloc::string::String,
3870    #[prost(string, tag="4")]
3871    pub remote_url: ::prost::alloc::string::String,
3872}
3873#[derive(serde::Serialize, serde::Deserialize)]
3874#[derive(Clone, PartialEq, ::prost::Message)]
3875pub struct GitRemoveRemote {
3876    #[prost(uint64, tag="1")]
3877    pub project_id: u64,
3878    #[prost(uint64, tag="2")]
3879    pub repository_id: u64,
3880    #[prost(string, tag="3")]
3881    pub remote_name: ::prost::alloc::string::String,
3882}
3883#[derive(serde::Serialize, serde::Deserialize)]
3884#[derive(Clone, PartialEq, ::prost::Message)]
3885pub struct GitDeleteBranch {
3886    #[prost(uint64, tag="1")]
3887    pub project_id: u64,
3888    #[prost(uint64, tag="2")]
3889    pub repository_id: u64,
3890    #[prost(string, tag="3")]
3891    pub branch_name: ::prost::alloc::string::String,
3892}
3893#[derive(serde::Serialize, serde::Deserialize)]
3894#[derive(Clone, PartialEq, ::prost::Message)]
3895pub struct GitDiff {
3896    #[prost(uint64, tag="1")]
3897    pub project_id: u64,
3898    #[prost(uint64, tag="3")]
3899    pub repository_id: u64,
3900    #[prost(enumeration="git_diff::DiffType", tag="4")]
3901    pub diff_type: i32,
3902}
3903/// Nested message and enum types in `GitDiff`.
3904pub mod git_diff {
3905    #[derive(serde::Serialize, serde::Deserialize)]
3906    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
3907    #[repr(i32)]
3908    pub enum DiffType {
3909        HeadToWorktree = 0,
3910        HeadToIndex = 1,
3911    }
3912}
3913#[derive(serde::Serialize, serde::Deserialize)]
3914#[derive(Clone, PartialEq, ::prost::Message)]
3915pub struct GitDiffResponse {
3916    #[prost(string, tag="1")]
3917    pub diff: ::prost::alloc::string::String,
3918}
3919#[derive(serde::Serialize, serde::Deserialize)]
3920#[derive(Clone, PartialEq, ::prost::Message)]
3921pub struct GitInit {
3922    #[prost(uint64, tag="1")]
3923    pub project_id: u64,
3924    #[prost(string, tag="2")]
3925    pub abs_path: ::prost::alloc::string::String,
3926    #[prost(string, tag="3")]
3927    pub fallback_branch_name: ::prost::alloc::string::String,
3928}
3929#[derive(serde::Serialize, serde::Deserialize)]
3930#[derive(Clone, PartialEq, ::prost::Message)]
3931pub struct GitClone {
3932    #[prost(uint64, tag="1")]
3933    pub project_id: u64,
3934    #[prost(string, tag="2")]
3935    pub abs_path: ::prost::alloc::string::String,
3936    #[prost(string, tag="3")]
3937    pub remote_repo: ::prost::alloc::string::String,
3938}
3939#[derive(serde::Serialize, serde::Deserialize)]
3940#[derive(Clone, PartialEq, ::prost::Message)]
3941pub struct GitCloneResponse {
3942    #[prost(bool, tag="1")]
3943    pub success: bool,
3944}
3945#[derive(serde::Serialize, serde::Deserialize)]
3946#[derive(Clone, PartialEq, ::prost::Message)]
3947pub struct CheckForPushedCommits {
3948    #[prost(uint64, tag="1")]
3949    pub project_id: u64,
3950    #[prost(uint64, tag="3")]
3951    pub repository_id: u64,
3952}
3953#[derive(serde::Serialize, serde::Deserialize)]
3954#[derive(Clone, PartialEq, ::prost::Message)]
3955pub struct CheckForPushedCommitsResponse {
3956    #[prost(string, repeated, tag="1")]
3957    pub pushed_to: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3958}
3959#[derive(serde::Serialize, serde::Deserialize)]
3960#[derive(Clone, PartialEq, ::prost::Message)]
3961pub struct GitShow {
3962    #[prost(uint64, tag="1")]
3963    pub project_id: u64,
3964    #[prost(uint64, tag="3")]
3965    pub repository_id: u64,
3966    #[prost(string, tag="4")]
3967    pub commit: ::prost::alloc::string::String,
3968}
3969#[derive(serde::Serialize, serde::Deserialize)]
3970#[derive(Clone, PartialEq, ::prost::Message)]
3971pub struct GitCommitDetails {
3972    #[prost(string, tag="1")]
3973    pub sha: ::prost::alloc::string::String,
3974    #[prost(string, tag="2")]
3975    pub message: ::prost::alloc::string::String,
3976    #[prost(int64, tag="3")]
3977    pub commit_timestamp: i64,
3978    #[prost(string, tag="4")]
3979    pub author_email: ::prost::alloc::string::String,
3980    #[prost(string, tag="5")]
3981    pub author_name: ::prost::alloc::string::String,
3982}
3983#[derive(serde::Serialize, serde::Deserialize)]
3984#[derive(Clone, PartialEq, ::prost::Message)]
3985pub struct LoadCommitDiff {
3986    #[prost(uint64, tag="1")]
3987    pub project_id: u64,
3988    #[prost(uint64, tag="3")]
3989    pub repository_id: u64,
3990    #[prost(string, tag="4")]
3991    pub commit: ::prost::alloc::string::String,
3992}
3993#[derive(serde::Serialize, serde::Deserialize)]
3994#[derive(Clone, PartialEq, ::prost::Message)]
3995pub struct LoadCommitDiffResponse {
3996    #[prost(message, repeated, tag="1")]
3997    pub files: ::prost::alloc::vec::Vec<CommitFile>,
3998}
3999#[derive(serde::Serialize, serde::Deserialize)]
4000#[derive(Clone, PartialEq, ::prost::Message)]
4001pub struct CommitFile {
4002    #[prost(string, tag="1")]
4003    pub path: ::prost::alloc::string::String,
4004    #[prost(string, optional, tag="2")]
4005    pub old_text: ::core::option::Option<::prost::alloc::string::String>,
4006    #[prost(string, optional, tag="3")]
4007    pub new_text: ::core::option::Option<::prost::alloc::string::String>,
4008}
4009#[derive(serde::Serialize, serde::Deserialize)]
4010#[derive(Clone, PartialEq, ::prost::Message)]
4011pub struct GitReset {
4012    #[prost(uint64, tag="1")]
4013    pub project_id: u64,
4014    #[prost(uint64, tag="3")]
4015    pub repository_id: u64,
4016    #[prost(string, tag="4")]
4017    pub commit: ::prost::alloc::string::String,
4018    #[prost(enumeration="git_reset::ResetMode", tag="5")]
4019    pub mode: i32,
4020}
4021/// Nested message and enum types in `GitReset`.
4022pub mod git_reset {
4023    #[derive(serde::Serialize, serde::Deserialize)]
4024    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4025    #[repr(i32)]
4026    pub enum ResetMode {
4027        Soft = 0,
4028        Mixed = 1,
4029    }
4030}
4031#[derive(serde::Serialize, serde::Deserialize)]
4032#[derive(Clone, PartialEq, ::prost::Message)]
4033pub struct GitCheckoutFiles {
4034    #[prost(uint64, tag="1")]
4035    pub project_id: u64,
4036    #[prost(uint64, tag="3")]
4037    pub repository_id: u64,
4038    #[prost(string, tag="4")]
4039    pub commit: ::prost::alloc::string::String,
4040    #[prost(string, repeated, tag="5")]
4041    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4042}
4043#[derive(serde::Serialize, serde::Deserialize)]
4044#[derive(Clone, PartialEq, ::prost::Message)]
4045pub struct GitFileHistory {
4046    #[prost(uint64, tag="1")]
4047    pub project_id: u64,
4048    #[prost(uint64, tag="3")]
4049    pub repository_id: u64,
4050    #[prost(string, tag="4")]
4051    pub path: ::prost::alloc::string::String,
4052    #[prost(uint64, tag="5")]
4053    pub skip: u64,
4054    #[prost(uint64, optional, tag="6")]
4055    pub limit: ::core::option::Option<u64>,
4056}
4057#[derive(serde::Serialize, serde::Deserialize)]
4058#[derive(Clone, PartialEq, ::prost::Message)]
4059pub struct GitFileHistoryResponse {
4060    #[prost(message, repeated, tag="1")]
4061    pub entries: ::prost::alloc::vec::Vec<FileHistoryEntry>,
4062    #[prost(string, tag="2")]
4063    pub path: ::prost::alloc::string::String,
4064}
4065#[derive(serde::Serialize, serde::Deserialize)]
4066#[derive(Clone, PartialEq, ::prost::Message)]
4067pub struct FileHistoryEntry {
4068    #[prost(string, tag="1")]
4069    pub sha: ::prost::alloc::string::String,
4070    #[prost(string, tag="2")]
4071    pub subject: ::prost::alloc::string::String,
4072    #[prost(string, tag="3")]
4073    pub message: ::prost::alloc::string::String,
4074    #[prost(int64, tag="4")]
4075    pub commit_timestamp: i64,
4076    #[prost(string, tag="5")]
4077    pub author_name: ::prost::alloc::string::String,
4078    #[prost(string, tag="6")]
4079    pub author_email: ::prost::alloc::string::String,
4080}
4081/// Move to `git.proto` once collab's min version is >=0.171.0.
4082#[derive(serde::Serialize, serde::Deserialize)]
4083#[derive(Clone, PartialEq, ::prost::Message)]
4084pub struct StatusEntry {
4085    #[prost(string, tag="1")]
4086    pub repo_path: ::prost::alloc::string::String,
4087    /// Can be removed once collab's min version is >=0.171.0.
4088    #[prost(enumeration="GitStatus", tag="2")]
4089    pub simple_status: i32,
4090    #[prost(message, optional, tag="3")]
4091    pub status: ::core::option::Option<GitFileStatus>,
4092}
4093#[derive(serde::Serialize, serde::Deserialize)]
4094#[derive(Clone, PartialEq, ::prost::Message)]
4095pub struct StashEntry {
4096    #[prost(bytes="vec", tag="1")]
4097    pub oid: ::prost::alloc::vec::Vec<u8>,
4098    #[prost(string, tag="2")]
4099    pub message: ::prost::alloc::string::String,
4100    #[prost(string, optional, tag="3")]
4101    pub branch: ::core::option::Option<::prost::alloc::string::String>,
4102    #[prost(uint64, tag="4")]
4103    pub index: u64,
4104    #[prost(int64, tag="5")]
4105    pub timestamp: i64,
4106}
4107#[derive(serde::Serialize, serde::Deserialize)]
4108#[derive(Clone, PartialEq, ::prost::Message)]
4109pub struct Stage {
4110    #[prost(uint64, tag="1")]
4111    pub project_id: u64,
4112    #[prost(uint64, tag="3")]
4113    pub repository_id: u64,
4114    #[prost(string, repeated, tag="4")]
4115    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4116}
4117#[derive(serde::Serialize, serde::Deserialize)]
4118#[derive(Clone, PartialEq, ::prost::Message)]
4119pub struct Unstage {
4120    #[prost(uint64, tag="1")]
4121    pub project_id: u64,
4122    #[prost(uint64, tag="3")]
4123    pub repository_id: u64,
4124    #[prost(string, repeated, tag="4")]
4125    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4126}
4127#[derive(serde::Serialize, serde::Deserialize)]
4128#[derive(Clone, PartialEq, ::prost::Message)]
4129pub struct Stash {
4130    #[prost(uint64, tag="1")]
4131    pub project_id: u64,
4132    #[prost(uint64, tag="2")]
4133    pub repository_id: u64,
4134    #[prost(string, repeated, tag="3")]
4135    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4136}
4137#[derive(serde::Serialize, serde::Deserialize)]
4138#[derive(Clone, PartialEq, ::prost::Message)]
4139pub struct StashPop {
4140    #[prost(uint64, tag="1")]
4141    pub project_id: u64,
4142    #[prost(uint64, tag="2")]
4143    pub repository_id: u64,
4144    #[prost(uint64, optional, tag="3")]
4145    pub stash_index: ::core::option::Option<u64>,
4146}
4147#[derive(serde::Serialize, serde::Deserialize)]
4148#[derive(Clone, PartialEq, ::prost::Message)]
4149pub struct StashApply {
4150    #[prost(uint64, tag="1")]
4151    pub project_id: u64,
4152    #[prost(uint64, tag="2")]
4153    pub repository_id: u64,
4154    #[prost(uint64, optional, tag="3")]
4155    pub stash_index: ::core::option::Option<u64>,
4156}
4157#[derive(serde::Serialize, serde::Deserialize)]
4158#[derive(Clone, PartialEq, ::prost::Message)]
4159pub struct StashDrop {
4160    #[prost(uint64, tag="1")]
4161    pub project_id: u64,
4162    #[prost(uint64, tag="2")]
4163    pub repository_id: u64,
4164    #[prost(uint64, optional, tag="3")]
4165    pub stash_index: ::core::option::Option<u64>,
4166}
4167#[derive(serde::Serialize, serde::Deserialize)]
4168#[derive(Clone, PartialEq, ::prost::Message)]
4169pub struct Commit {
4170    #[prost(uint64, tag="1")]
4171    pub project_id: u64,
4172    #[prost(uint64, tag="3")]
4173    pub repository_id: u64,
4174    #[prost(string, optional, tag="4")]
4175    pub name: ::core::option::Option<::prost::alloc::string::String>,
4176    #[prost(string, optional, tag="5")]
4177    pub email: ::core::option::Option<::prost::alloc::string::String>,
4178    #[prost(string, tag="6")]
4179    pub message: ::prost::alloc::string::String,
4180    #[prost(message, optional, tag="7")]
4181    pub options: ::core::option::Option<commit::CommitOptions>,
4182    #[prost(uint64, tag="9")]
4183    pub askpass_id: u64,
4184}
4185/// Nested message and enum types in `Commit`.
4186pub mod commit {
4187    #[derive(serde::Serialize, serde::Deserialize)]
4188    #[derive(Clone, PartialEq, ::prost::Message)]
4189    pub struct CommitOptions {
4190        #[prost(bool, tag="1")]
4191        pub amend: bool,
4192        #[prost(bool, tag="2")]
4193        pub signoff: bool,
4194    }
4195}
4196#[derive(serde::Serialize, serde::Deserialize)]
4197#[derive(Clone, PartialEq, ::prost::Message)]
4198pub struct OpenCommitMessageBuffer {
4199    #[prost(uint64, tag="1")]
4200    pub project_id: u64,
4201    #[prost(uint64, tag="3")]
4202    pub repository_id: u64,
4203}
4204#[derive(serde::Serialize, serde::Deserialize)]
4205#[derive(Clone, PartialEq, ::prost::Message)]
4206pub struct Push {
4207    #[prost(uint64, tag="1")]
4208    pub project_id: u64,
4209    #[prost(uint64, tag="3")]
4210    pub repository_id: u64,
4211    #[prost(string, tag="4")]
4212    pub remote_name: ::prost::alloc::string::String,
4213    #[prost(string, tag="5")]
4214    pub branch_name: ::prost::alloc::string::String,
4215    #[prost(enumeration="push::PushOptions", optional, tag="6")]
4216    pub options: ::core::option::Option<i32>,
4217    #[prost(uint64, tag="7")]
4218    pub askpass_id: u64,
4219}
4220/// Nested message and enum types in `Push`.
4221pub mod push {
4222    #[derive(serde::Serialize, serde::Deserialize)]
4223    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4224    #[repr(i32)]
4225    pub enum PushOptions {
4226        SetUpstream = 0,
4227        Force = 1,
4228    }
4229}
4230#[derive(serde::Serialize, serde::Deserialize)]
4231#[derive(Clone, PartialEq, ::prost::Message)]
4232pub struct Fetch {
4233    #[prost(uint64, tag="1")]
4234    pub project_id: u64,
4235    #[prost(uint64, tag="3")]
4236    pub repository_id: u64,
4237    #[prost(uint64, tag="4")]
4238    pub askpass_id: u64,
4239    #[prost(string, optional, tag="5")]
4240    pub remote: ::core::option::Option<::prost::alloc::string::String>,
4241}
4242#[derive(serde::Serialize, serde::Deserialize)]
4243#[derive(Clone, PartialEq, ::prost::Message)]
4244pub struct GetRemotes {
4245    #[prost(uint64, tag="1")]
4246    pub project_id: u64,
4247    #[prost(uint64, tag="3")]
4248    pub repository_id: u64,
4249    #[prost(string, optional, tag="4")]
4250    pub branch_name: ::core::option::Option<::prost::alloc::string::String>,
4251    #[prost(bool, tag="5")]
4252    pub is_push: bool,
4253}
4254#[derive(serde::Serialize, serde::Deserialize)]
4255#[derive(Clone, PartialEq, ::prost::Message)]
4256pub struct GetRemotesResponse {
4257    #[prost(message, repeated, tag="1")]
4258    pub remotes: ::prost::alloc::vec::Vec<get_remotes_response::Remote>,
4259}
4260/// Nested message and enum types in `GetRemotesResponse`.
4261pub mod get_remotes_response {
4262    #[derive(serde::Serialize, serde::Deserialize)]
4263    #[derive(Clone, PartialEq, ::prost::Message)]
4264    pub struct Remote {
4265        #[prost(string, tag="1")]
4266        pub name: ::prost::alloc::string::String,
4267    }
4268}
4269#[derive(serde::Serialize, serde::Deserialize)]
4270#[derive(Clone, PartialEq, ::prost::Message)]
4271pub struct Pull {
4272    #[prost(uint64, tag="1")]
4273    pub project_id: u64,
4274    #[prost(uint64, tag="3")]
4275    pub repository_id: u64,
4276    #[prost(string, tag="4")]
4277    pub remote_name: ::prost::alloc::string::String,
4278    #[prost(string, optional, tag="5")]
4279    pub branch_name: ::core::option::Option<::prost::alloc::string::String>,
4280    #[prost(uint64, tag="6")]
4281    pub askpass_id: u64,
4282    #[prost(bool, tag="7")]
4283    pub rebase: bool,
4284}
4285#[derive(serde::Serialize, serde::Deserialize)]
4286#[derive(Clone, PartialEq, ::prost::Message)]
4287pub struct RemoteMessageResponse {
4288    #[prost(string, tag="1")]
4289    pub stdout: ::prost::alloc::string::String,
4290    #[prost(string, tag="2")]
4291    pub stderr: ::prost::alloc::string::String,
4292}
4293#[derive(serde::Serialize, serde::Deserialize)]
4294#[derive(Clone, PartialEq, ::prost::Message)]
4295pub struct BlameBuffer {
4296    #[prost(uint64, tag="1")]
4297    pub project_id: u64,
4298    #[prost(uint64, tag="2")]
4299    pub buffer_id: u64,
4300    #[prost(message, repeated, tag="3")]
4301    pub version: ::prost::alloc::vec::Vec<VectorClockEntry>,
4302}
4303#[derive(serde::Serialize, serde::Deserialize)]
4304#[derive(Clone, PartialEq, ::prost::Message)]
4305pub struct BlameEntry {
4306    #[prost(bytes="vec", tag="1")]
4307    pub sha: ::prost::alloc::vec::Vec<u8>,
4308    #[prost(uint32, tag="2")]
4309    pub start_line: u32,
4310    #[prost(uint32, tag="3")]
4311    pub end_line: u32,
4312    #[prost(uint32, tag="4")]
4313    pub original_line_number: u32,
4314    #[prost(string, optional, tag="5")]
4315    pub author: ::core::option::Option<::prost::alloc::string::String>,
4316    #[prost(string, optional, tag="6")]
4317    pub author_mail: ::core::option::Option<::prost::alloc::string::String>,
4318    #[prost(int64, optional, tag="7")]
4319    pub author_time: ::core::option::Option<i64>,
4320    #[prost(string, optional, tag="8")]
4321    pub author_tz: ::core::option::Option<::prost::alloc::string::String>,
4322    #[prost(string, optional, tag="9")]
4323    pub committer: ::core::option::Option<::prost::alloc::string::String>,
4324    #[prost(string, optional, tag="10")]
4325    pub committer_mail: ::core::option::Option<::prost::alloc::string::String>,
4326    #[prost(int64, optional, tag="11")]
4327    pub committer_time: ::core::option::Option<i64>,
4328    #[prost(string, optional, tag="12")]
4329    pub committer_tz: ::core::option::Option<::prost::alloc::string::String>,
4330    #[prost(string, optional, tag="13")]
4331    pub summary: ::core::option::Option<::prost::alloc::string::String>,
4332    #[prost(string, optional, tag="14")]
4333    pub previous: ::core::option::Option<::prost::alloc::string::String>,
4334    #[prost(string, tag="15")]
4335    pub filename: ::prost::alloc::string::String,
4336}
4337#[derive(serde::Serialize, serde::Deserialize)]
4338#[derive(Clone, PartialEq, ::prost::Message)]
4339pub struct CommitMessage {
4340    #[prost(bytes="vec", tag="1")]
4341    pub oid: ::prost::alloc::vec::Vec<u8>,
4342    #[prost(string, tag="2")]
4343    pub message: ::prost::alloc::string::String,
4344}
4345#[derive(serde::Serialize, serde::Deserialize)]
4346#[derive(Clone, PartialEq, ::prost::Message)]
4347pub struct CommitPermalink {
4348    #[prost(bytes="vec", tag="1")]
4349    pub oid: ::prost::alloc::vec::Vec<u8>,
4350    #[prost(string, tag="2")]
4351    pub permalink: ::prost::alloc::string::String,
4352}
4353#[derive(serde::Serialize, serde::Deserialize)]
4354#[derive(Clone, PartialEq, ::prost::Message)]
4355pub struct BlameBufferResponse {
4356    #[prost(message, optional, tag="5")]
4357    pub blame_response: ::core::option::Option<blame_buffer_response::BlameResponse>,
4358}
4359/// Nested message and enum types in `BlameBufferResponse`.
4360pub mod blame_buffer_response {
4361    #[derive(serde::Serialize, serde::Deserialize)]
4362    #[derive(Clone, PartialEq, ::prost::Message)]
4363    pub struct BlameResponse {
4364        #[prost(message, repeated, tag="1")]
4365        pub entries: ::prost::alloc::vec::Vec<super::BlameEntry>,
4366        #[prost(message, repeated, tag="2")]
4367        pub messages: ::prost::alloc::vec::Vec<super::CommitMessage>,
4368    }
4369}
4370#[derive(serde::Serialize, serde::Deserialize)]
4371#[derive(Clone, PartialEq, ::prost::Message)]
4372pub struct GetDefaultBranch {
4373    #[prost(uint64, tag="1")]
4374    pub project_id: u64,
4375    #[prost(uint64, tag="2")]
4376    pub repository_id: u64,
4377}
4378#[derive(serde::Serialize, serde::Deserialize)]
4379#[derive(Clone, PartialEq, ::prost::Message)]
4380pub struct GetDefaultBranchResponse {
4381    #[prost(string, optional, tag="1")]
4382    pub branch: ::core::option::Option<::prost::alloc::string::String>,
4383}
4384#[derive(serde::Serialize, serde::Deserialize)]
4385#[derive(Clone, PartialEq, ::prost::Message)]
4386pub struct GetTreeDiff {
4387    #[prost(uint64, tag="1")]
4388    pub project_id: u64,
4389    #[prost(uint64, tag="2")]
4390    pub repository_id: u64,
4391    #[prost(bool, tag="3")]
4392    pub is_merge: bool,
4393    #[prost(string, tag="4")]
4394    pub base: ::prost::alloc::string::String,
4395    #[prost(string, tag="5")]
4396    pub head: ::prost::alloc::string::String,
4397}
4398#[derive(serde::Serialize, serde::Deserialize)]
4399#[derive(Clone, PartialEq, ::prost::Message)]
4400pub struct GetTreeDiffResponse {
4401    #[prost(message, repeated, tag="1")]
4402    pub entries: ::prost::alloc::vec::Vec<TreeDiffStatus>,
4403}
4404#[derive(serde::Serialize, serde::Deserialize)]
4405#[derive(Clone, PartialEq, ::prost::Message)]
4406pub struct TreeDiffStatus {
4407    #[prost(enumeration="tree_diff_status::Status", tag="1")]
4408    pub status: i32,
4409    #[prost(string, tag="2")]
4410    pub path: ::prost::alloc::string::String,
4411    #[prost(string, optional, tag="3")]
4412    pub oid: ::core::option::Option<::prost::alloc::string::String>,
4413}
4414/// Nested message and enum types in `TreeDiffStatus`.
4415pub mod tree_diff_status {
4416    #[derive(serde::Serialize, serde::Deserialize)]
4417    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4418    #[repr(i32)]
4419    pub enum Status {
4420        Added = 0,
4421        Modified = 1,
4422        Deleted = 2,
4423    }
4424}
4425#[derive(serde::Serialize, serde::Deserialize)]
4426#[derive(Clone, PartialEq, ::prost::Message)]
4427pub struct GetBlobContent {
4428    #[prost(uint64, tag="1")]
4429    pub project_id: u64,
4430    #[prost(uint64, tag="2")]
4431    pub repository_id: u64,
4432    #[prost(string, tag="3")]
4433    pub oid: ::prost::alloc::string::String,
4434}
4435#[derive(serde::Serialize, serde::Deserialize)]
4436#[derive(Clone, PartialEq, ::prost::Message)]
4437pub struct GetBlobContentResponse {
4438    #[prost(string, tag="1")]
4439    pub content: ::prost::alloc::string::String,
4440}
4441#[derive(serde::Serialize, serde::Deserialize)]
4442#[derive(Clone, PartialEq, ::prost::Message)]
4443pub struct GitGetWorktrees {
4444    #[prost(uint64, tag="1")]
4445    pub project_id: u64,
4446    #[prost(uint64, tag="2")]
4447    pub repository_id: u64,
4448}
4449#[derive(serde::Serialize, serde::Deserialize)]
4450#[derive(Clone, PartialEq, ::prost::Message)]
4451pub struct GitWorktreesResponse {
4452    #[prost(message, repeated, tag="1")]
4453    pub worktrees: ::prost::alloc::vec::Vec<Worktree>,
4454}
4455#[derive(serde::Serialize, serde::Deserialize)]
4456#[derive(Clone, PartialEq, ::prost::Message)]
4457pub struct Worktree {
4458    #[prost(string, tag="1")]
4459    pub path: ::prost::alloc::string::String,
4460    #[prost(string, tag="2")]
4461    pub ref_name: ::prost::alloc::string::String,
4462    #[prost(string, tag="3")]
4463    pub sha: ::prost::alloc::string::String,
4464}
4465#[derive(serde::Serialize, serde::Deserialize)]
4466#[derive(Clone, PartialEq, ::prost::Message)]
4467pub struct GitCreateWorktree {
4468    #[prost(uint64, tag="1")]
4469    pub project_id: u64,
4470    #[prost(uint64, tag="2")]
4471    pub repository_id: u64,
4472    #[prost(string, tag="3")]
4473    pub name: ::prost::alloc::string::String,
4474    #[prost(string, tag="4")]
4475    pub directory: ::prost::alloc::string::String,
4476    #[prost(string, optional, tag="5")]
4477    pub commit: ::core::option::Option<::prost::alloc::string::String>,
4478}
4479#[derive(serde::Serialize, serde::Deserialize)]
4480#[derive(Clone, PartialEq, ::prost::Message)]
4481pub struct RunGitHook {
4482    #[prost(uint64, tag="1")]
4483    pub project_id: u64,
4484    #[prost(uint64, tag="2")]
4485    pub repository_id: u64,
4486    #[prost(enumeration="run_git_hook::GitHook", tag="3")]
4487    pub hook: i32,
4488}
4489/// Nested message and enum types in `RunGitHook`.
4490pub mod run_git_hook {
4491    #[derive(serde::Serialize, serde::Deserialize)]
4492    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4493    #[repr(i32)]
4494    pub enum GitHook {
4495        PreCommit = 0,
4496    }
4497}
4498#[derive(serde::Serialize, serde::Deserialize)]
4499#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
4500#[repr(i32)]
4501pub enum GitStatus {
4502    Added = 0,
4503    Modified = 1,
4504    Conflict = 2,
4505    Deleted = 3,
4506    Updated = 4,
4507    TypeChanged = 5,
4508    Renamed = 6,
4509    Copied = 7,
4510    Unmodified = 8,
4511}
4512#[derive(serde::Serialize, serde::Deserialize)]
4513#[derive(Clone, PartialEq, ::prost::Message)]
4514pub struct CreateRoom {
4515}
4516#[derive(serde::Serialize, serde::Deserialize)]
4517#[derive(Clone, PartialEq, ::prost::Message)]
4518pub struct CreateRoomResponse {
4519    #[prost(message, optional, tag="1")]
4520    pub room: ::core::option::Option<Room>,
4521    #[prost(message, optional, tag="2")]
4522    pub live_kit_connection_info: ::core::option::Option<LiveKitConnectionInfo>,
4523}
4524#[derive(serde::Serialize, serde::Deserialize)]
4525#[derive(Clone, PartialEq, ::prost::Message)]
4526pub struct JoinRoom {
4527    #[prost(uint64, tag="1")]
4528    pub id: u64,
4529}
4530#[derive(serde::Serialize, serde::Deserialize)]
4531#[derive(Clone, PartialEq, ::prost::Message)]
4532pub struct JoinRoomResponse {
4533    #[prost(message, optional, tag="1")]
4534    pub room: ::core::option::Option<Room>,
4535    #[prost(uint64, optional, tag="2")]
4536    pub channel_id: ::core::option::Option<u64>,
4537    #[prost(message, optional, tag="3")]
4538    pub live_kit_connection_info: ::core::option::Option<LiveKitConnectionInfo>,
4539}
4540#[derive(serde::Serialize, serde::Deserialize)]
4541#[derive(Clone, PartialEq, ::prost::Message)]
4542pub struct RejoinRoom {
4543    #[prost(uint64, tag="1")]
4544    pub id: u64,
4545    #[prost(message, repeated, tag="2")]
4546    pub reshared_projects: ::prost::alloc::vec::Vec<UpdateProject>,
4547    #[prost(message, repeated, tag="3")]
4548    pub rejoined_projects: ::prost::alloc::vec::Vec<RejoinProject>,
4549}
4550#[derive(serde::Serialize, serde::Deserialize)]
4551#[derive(Clone, PartialEq, ::prost::Message)]
4552pub struct RejoinRemoteProjects {
4553    #[prost(message, repeated, tag="1")]
4554    pub rejoined_projects: ::prost::alloc::vec::Vec<RejoinProject>,
4555}
4556#[derive(serde::Serialize, serde::Deserialize)]
4557#[derive(Clone, PartialEq, ::prost::Message)]
4558pub struct RejoinRemoteProjectsResponse {
4559    #[prost(message, repeated, tag="1")]
4560    pub rejoined_projects: ::prost::alloc::vec::Vec<RejoinedProject>,
4561}
4562#[derive(serde::Serialize, serde::Deserialize)]
4563#[derive(Clone, PartialEq, ::prost::Message)]
4564pub struct RejoinProject {
4565    #[prost(uint64, tag="1")]
4566    pub id: u64,
4567    #[prost(message, repeated, tag="2")]
4568    pub worktrees: ::prost::alloc::vec::Vec<RejoinWorktree>,
4569    #[prost(message, repeated, tag="3")]
4570    pub repositories: ::prost::alloc::vec::Vec<RejoinRepository>,
4571}
4572#[derive(serde::Serialize, serde::Deserialize)]
4573#[derive(Clone, PartialEq, ::prost::Message)]
4574pub struct RejoinWorktree {
4575    #[prost(uint64, tag="1")]
4576    pub id: u64,
4577    #[prost(uint64, tag="2")]
4578    pub scan_id: u64,
4579}
4580#[derive(serde::Serialize, serde::Deserialize)]
4581#[derive(Clone, PartialEq, ::prost::Message)]
4582pub struct RejoinRepository {
4583    #[prost(uint64, tag="1")]
4584    pub id: u64,
4585    #[prost(uint64, tag="2")]
4586    pub scan_id: u64,
4587}
4588#[derive(serde::Serialize, serde::Deserialize)]
4589#[derive(Clone, PartialEq, ::prost::Message)]
4590pub struct RejoinRoomResponse {
4591    #[prost(message, optional, tag="1")]
4592    pub room: ::core::option::Option<Room>,
4593    #[prost(message, repeated, tag="2")]
4594    pub reshared_projects: ::prost::alloc::vec::Vec<ResharedProject>,
4595    #[prost(message, repeated, tag="3")]
4596    pub rejoined_projects: ::prost::alloc::vec::Vec<RejoinedProject>,
4597}
4598#[derive(serde::Serialize, serde::Deserialize)]
4599#[derive(Clone, PartialEq, ::prost::Message)]
4600pub struct ResharedProject {
4601    #[prost(uint64, tag="1")]
4602    pub id: u64,
4603    #[prost(message, repeated, tag="2")]
4604    pub collaborators: ::prost::alloc::vec::Vec<Collaborator>,
4605}
4606#[derive(serde::Serialize, serde::Deserialize)]
4607#[derive(Clone, PartialEq, ::prost::Message)]
4608pub struct RejoinedProject {
4609    #[prost(uint64, tag="1")]
4610    pub id: u64,
4611    #[prost(message, repeated, tag="2")]
4612    pub worktrees: ::prost::alloc::vec::Vec<WorktreeMetadata>,
4613    #[prost(message, repeated, tag="3")]
4614    pub collaborators: ::prost::alloc::vec::Vec<Collaborator>,
4615    #[prost(message, repeated, tag="4")]
4616    pub language_servers: ::prost::alloc::vec::Vec<LanguageServer>,
4617    #[prost(string, repeated, tag="5")]
4618    pub language_server_capabilities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4619}
4620#[derive(serde::Serialize, serde::Deserialize)]
4621#[derive(Clone, PartialEq, ::prost::Message)]
4622pub struct LeaveRoom {
4623}
4624#[derive(serde::Serialize, serde::Deserialize)]
4625#[derive(Clone, PartialEq, ::prost::Message)]
4626pub struct Room {
4627    #[prost(uint64, tag="1")]
4628    pub id: u64,
4629    #[prost(message, repeated, tag="2")]
4630    pub participants: ::prost::alloc::vec::Vec<Participant>,
4631    #[prost(message, repeated, tag="3")]
4632    pub pending_participants: ::prost::alloc::vec::Vec<PendingParticipant>,
4633    #[prost(message, repeated, tag="4")]
4634    pub followers: ::prost::alloc::vec::Vec<Follower>,
4635    #[prost(string, tag="5")]
4636    pub livekit_room: ::prost::alloc::string::String,
4637}
4638#[derive(serde::Serialize, serde::Deserialize)]
4639#[derive(Clone, PartialEq, ::prost::Message)]
4640pub struct Participant {
4641    #[prost(uint64, tag="1")]
4642    pub user_id: u64,
4643    #[prost(message, optional, tag="2")]
4644    pub peer_id: ::core::option::Option<PeerId>,
4645    #[prost(message, repeated, tag="3")]
4646    pub projects: ::prost::alloc::vec::Vec<ParticipantProject>,
4647    #[prost(message, optional, tag="4")]
4648    pub location: ::core::option::Option<ParticipantLocation>,
4649    #[prost(uint32, tag="5")]
4650    pub participant_index: u32,
4651    #[prost(enumeration="ChannelRole", tag="6")]
4652    pub role: i32,
4653}
4654#[derive(serde::Serialize, serde::Deserialize)]
4655#[derive(Clone, PartialEq, ::prost::Message)]
4656pub struct PendingParticipant {
4657    #[prost(uint64, tag="1")]
4658    pub user_id: u64,
4659    #[prost(uint64, tag="2")]
4660    pub calling_user_id: u64,
4661    #[prost(uint64, optional, tag="3")]
4662    pub initial_project_id: ::core::option::Option<u64>,
4663}
4664#[derive(serde::Serialize, serde::Deserialize)]
4665#[derive(Clone, PartialEq, ::prost::Message)]
4666pub struct ParticipantProject {
4667    #[prost(uint64, tag="1")]
4668    pub id: u64,
4669    #[prost(string, repeated, tag="2")]
4670    pub worktree_root_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4671}
4672#[derive(serde::Serialize, serde::Deserialize)]
4673#[derive(Clone, PartialEq, ::prost::Message)]
4674pub struct Follower {
4675    #[prost(message, optional, tag="1")]
4676    pub leader_id: ::core::option::Option<PeerId>,
4677    #[prost(message, optional, tag="2")]
4678    pub follower_id: ::core::option::Option<PeerId>,
4679    #[prost(uint64, tag="3")]
4680    pub project_id: u64,
4681}
4682#[derive(serde::Serialize, serde::Deserialize)]
4683#[derive(Clone, PartialEq, ::prost::Message)]
4684pub struct ParticipantLocation {
4685    #[prost(oneof="participant_location::Variant", tags="1, 2, 3")]
4686    pub variant: ::core::option::Option<participant_location::Variant>,
4687}
4688/// Nested message and enum types in `ParticipantLocation`.
4689pub mod participant_location {
4690    #[derive(serde::Serialize, serde::Deserialize)]
4691    #[derive(Clone, PartialEq, ::prost::Message)]
4692    pub struct SharedProject {
4693        #[prost(uint64, tag="1")]
4694        pub id: u64,
4695    }
4696    #[derive(serde::Serialize, serde::Deserialize)]
4697    #[derive(Clone, PartialEq, ::prost::Message)]
4698    pub struct UnsharedProject {
4699    }
4700    #[derive(serde::Serialize, serde::Deserialize)]
4701    #[derive(Clone, PartialEq, ::prost::Message)]
4702    pub struct External {
4703    }
4704    #[derive(serde::Serialize, serde::Deserialize)]
4705    #[derive(Clone, PartialEq, ::prost::Oneof)]
4706    pub enum Variant {
4707        #[prost(message, tag="1")]
4708        SharedProject(SharedProject),
4709        #[prost(message, tag="2")]
4710        UnsharedProject(UnsharedProject),
4711        #[prost(message, tag="3")]
4712        External(External),
4713    }
4714}
4715#[derive(serde::Serialize, serde::Deserialize)]
4716#[derive(Clone, PartialEq, ::prost::Message)]
4717pub struct Call {
4718    #[prost(uint64, tag="1")]
4719    pub room_id: u64,
4720    #[prost(uint64, tag="2")]
4721    pub called_user_id: u64,
4722    #[prost(uint64, optional, tag="3")]
4723    pub initial_project_id: ::core::option::Option<u64>,
4724}
4725#[derive(serde::Serialize, serde::Deserialize)]
4726#[derive(Clone, PartialEq, ::prost::Message)]
4727pub struct IncomingCall {
4728    #[prost(uint64, tag="1")]
4729    pub room_id: u64,
4730    #[prost(uint64, tag="2")]
4731    pub calling_user_id: u64,
4732    #[prost(uint64, repeated, tag="3")]
4733    pub participant_user_ids: ::prost::alloc::vec::Vec<u64>,
4734    #[prost(message, optional, tag="4")]
4735    pub initial_project: ::core::option::Option<ParticipantProject>,
4736}
4737#[derive(serde::Serialize, serde::Deserialize)]
4738#[derive(Clone, PartialEq, ::prost::Message)]
4739pub struct CallCanceled {
4740    #[prost(uint64, tag="1")]
4741    pub room_id: u64,
4742}
4743#[derive(serde::Serialize, serde::Deserialize)]
4744#[derive(Clone, PartialEq, ::prost::Message)]
4745pub struct CancelCall {
4746    #[prost(uint64, tag="1")]
4747    pub room_id: u64,
4748    #[prost(uint64, tag="2")]
4749    pub called_user_id: u64,
4750}
4751#[derive(serde::Serialize, serde::Deserialize)]
4752#[derive(Clone, PartialEq, ::prost::Message)]
4753pub struct DeclineCall {
4754    #[prost(uint64, tag="1")]
4755    pub room_id: u64,
4756}
4757#[derive(serde::Serialize, serde::Deserialize)]
4758#[derive(Clone, PartialEq, ::prost::Message)]
4759pub struct UpdateParticipantLocation {
4760    #[prost(uint64, tag="1")]
4761    pub room_id: u64,
4762    #[prost(message, optional, tag="2")]
4763    pub location: ::core::option::Option<ParticipantLocation>,
4764}
4765#[derive(serde::Serialize, serde::Deserialize)]
4766#[derive(Clone, PartialEq, ::prost::Message)]
4767pub struct RoomUpdated {
4768    #[prost(message, optional, tag="1")]
4769    pub room: ::core::option::Option<Room>,
4770}
4771#[derive(serde::Serialize, serde::Deserialize)]
4772#[derive(Clone, PartialEq, ::prost::Message)]
4773pub struct LiveKitConnectionInfo {
4774    #[prost(string, tag="1")]
4775    pub server_url: ::prost::alloc::string::String,
4776    #[prost(string, tag="2")]
4777    pub token: ::prost::alloc::string::String,
4778    #[prost(bool, tag="3")]
4779    pub can_publish: bool,
4780}
4781#[derive(serde::Serialize, serde::Deserialize)]
4782#[derive(Clone, PartialEq, ::prost::Message)]
4783pub struct ShareProject {
4784    #[prost(uint64, tag="1")]
4785    pub room_id: u64,
4786    #[prost(message, repeated, tag="2")]
4787    pub worktrees: ::prost::alloc::vec::Vec<WorktreeMetadata>,
4788    #[prost(bool, tag="4")]
4789    pub is_ssh_project: bool,
4790    #[prost(bool, optional, tag="5")]
4791    pub windows_paths: ::core::option::Option<bool>,
4792}
4793#[derive(serde::Serialize, serde::Deserialize)]
4794#[derive(Clone, PartialEq, ::prost::Message)]
4795pub struct ShareProjectResponse {
4796    #[prost(uint64, tag="1")]
4797    pub project_id: u64,
4798}
4799#[derive(serde::Serialize, serde::Deserialize)]
4800#[derive(Clone, PartialEq, ::prost::Message)]
4801pub struct UnshareProject {
4802    #[prost(uint64, tag="1")]
4803    pub project_id: u64,
4804}
4805#[derive(serde::Serialize, serde::Deserialize)]
4806#[derive(Clone, PartialEq, ::prost::Message)]
4807pub struct UpdateProject {
4808    #[prost(uint64, tag="1")]
4809    pub project_id: u64,
4810    #[prost(message, repeated, tag="2")]
4811    pub worktrees: ::prost::alloc::vec::Vec<WorktreeMetadata>,
4812}
4813#[derive(serde::Serialize, serde::Deserialize)]
4814#[derive(Clone, PartialEq, ::prost::Message)]
4815pub struct JoinProject {
4816    #[prost(uint64, tag="1")]
4817    pub project_id: u64,
4818    #[prost(string, optional, tag="2")]
4819    pub committer_email: ::core::option::Option<::prost::alloc::string::String>,
4820    #[prost(string, optional, tag="3")]
4821    pub committer_name: ::core::option::Option<::prost::alloc::string::String>,
4822}
4823#[derive(serde::Serialize, serde::Deserialize)]
4824#[derive(Clone, PartialEq, ::prost::Message)]
4825pub struct JoinProjectResponse {
4826    #[prost(uint64, tag="5")]
4827    pub project_id: u64,
4828    #[prost(uint32, tag="1")]
4829    pub replica_id: u32,
4830    #[prost(message, repeated, tag="2")]
4831    pub worktrees: ::prost::alloc::vec::Vec<WorktreeMetadata>,
4832    #[prost(message, repeated, tag="3")]
4833    pub collaborators: ::prost::alloc::vec::Vec<Collaborator>,
4834    #[prost(message, repeated, tag="4")]
4835    pub language_servers: ::prost::alloc::vec::Vec<LanguageServer>,
4836    #[prost(string, repeated, tag="8")]
4837    pub language_server_capabilities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4838    #[prost(enumeration="ChannelRole", tag="6")]
4839    pub role: i32,
4840    #[prost(bool, tag="9")]
4841    pub windows_paths: bool,
4842}
4843#[derive(serde::Serialize, serde::Deserialize)]
4844#[derive(Clone, PartialEq, ::prost::Message)]
4845pub struct LeaveProject {
4846    #[prost(uint64, tag="1")]
4847    pub project_id: u64,
4848}
4849#[derive(serde::Serialize, serde::Deserialize)]
4850#[derive(Clone, PartialEq, ::prost::Message)]
4851pub struct UpdateWorktree {
4852    #[prost(uint64, tag="1")]
4853    pub project_id: u64,
4854    #[prost(uint64, tag="2")]
4855    pub worktree_id: u64,
4856    #[prost(string, tag="3")]
4857    pub root_name: ::prost::alloc::string::String,
4858    #[prost(message, repeated, tag="4")]
4859    pub updated_entries: ::prost::alloc::vec::Vec<Entry>,
4860    #[prost(uint64, repeated, tag="5")]
4861    pub removed_entries: ::prost::alloc::vec::Vec<u64>,
4862    /// deprecated
4863    #[prost(message, repeated, tag="6")]
4864    pub updated_repositories: ::prost::alloc::vec::Vec<RepositoryEntry>,
4865    /// deprecated
4866    #[prost(uint64, repeated, tag="7")]
4867    pub removed_repositories: ::prost::alloc::vec::Vec<u64>,
4868    #[prost(uint64, tag="8")]
4869    pub scan_id: u64,
4870    #[prost(bool, tag="9")]
4871    pub is_last_update: bool,
4872    #[prost(string, tag="10")]
4873    pub abs_path: ::prost::alloc::string::String,
4874}
4875/// deprecated
4876#[derive(serde::Serialize, serde::Deserialize)]
4877#[derive(Clone, PartialEq, ::prost::Message)]
4878pub struct RepositoryEntry {
4879    #[prost(uint64, tag="1")]
4880    pub repository_id: u64,
4881    #[prost(message, repeated, tag="3")]
4882    pub updated_statuses: ::prost::alloc::vec::Vec<StatusEntry>,
4883    #[prost(string, repeated, tag="4")]
4884    pub removed_statuses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4885    #[prost(string, repeated, tag="5")]
4886    pub current_merge_conflicts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
4887    #[prost(message, optional, tag="6")]
4888    pub branch_summary: ::core::option::Option<Branch>,
4889}
4890#[derive(serde::Serialize, serde::Deserialize)]
4891#[derive(Clone, PartialEq, ::prost::Message)]
4892pub struct AddProjectCollaborator {
4893    #[prost(uint64, tag="1")]
4894    pub project_id: u64,
4895    #[prost(message, optional, tag="2")]
4896    pub collaborator: ::core::option::Option<Collaborator>,
4897}
4898#[derive(serde::Serialize, serde::Deserialize)]
4899#[derive(Clone, PartialEq, ::prost::Message)]
4900pub struct UpdateProjectCollaborator {
4901    #[prost(uint64, tag="1")]
4902    pub project_id: u64,
4903    #[prost(message, optional, tag="2")]
4904    pub old_peer_id: ::core::option::Option<PeerId>,
4905    #[prost(message, optional, tag="3")]
4906    pub new_peer_id: ::core::option::Option<PeerId>,
4907}
4908#[derive(serde::Serialize, serde::Deserialize)]
4909#[derive(Clone, PartialEq, ::prost::Message)]
4910pub struct RemoveProjectCollaborator {
4911    #[prost(uint64, tag="1")]
4912    pub project_id: u64,
4913    #[prost(message, optional, tag="2")]
4914    pub peer_id: ::core::option::Option<PeerId>,
4915}
4916#[derive(serde::Serialize, serde::Deserialize)]
4917#[derive(Clone, PartialEq, ::prost::Message)]
4918pub struct GetUsers {
4919    #[prost(uint64, repeated, tag="1")]
4920    pub user_ids: ::prost::alloc::vec::Vec<u64>,
4921}
4922#[derive(serde::Serialize, serde::Deserialize)]
4923#[derive(Clone, PartialEq, ::prost::Message)]
4924pub struct FuzzySearchUsers {
4925    #[prost(string, tag="1")]
4926    pub query: ::prost::alloc::string::String,
4927}
4928#[derive(serde::Serialize, serde::Deserialize)]
4929#[derive(Clone, PartialEq, ::prost::Message)]
4930pub struct UsersResponse {
4931    #[prost(message, repeated, tag="1")]
4932    pub users: ::prost::alloc::vec::Vec<User>,
4933}
4934#[derive(serde::Serialize, serde::Deserialize)]
4935#[derive(Clone, PartialEq, ::prost::Message)]
4936pub struct RequestContact {
4937    #[prost(uint64, tag="1")]
4938    pub responder_id: u64,
4939}
4940#[derive(serde::Serialize, serde::Deserialize)]
4941#[derive(Clone, PartialEq, ::prost::Message)]
4942pub struct RemoveContact {
4943    #[prost(uint64, tag="1")]
4944    pub user_id: u64,
4945}
4946#[derive(serde::Serialize, serde::Deserialize)]
4947#[derive(Clone, PartialEq, ::prost::Message)]
4948pub struct RespondToContactRequest {
4949    #[prost(uint64, tag="1")]
4950    pub requester_id: u64,
4951    #[prost(enumeration="ContactRequestResponse", tag="2")]
4952    pub response: i32,
4953}
4954#[derive(serde::Serialize, serde::Deserialize)]
4955#[derive(Clone, PartialEq, ::prost::Message)]
4956pub struct UpdateContacts {
4957    #[prost(message, repeated, tag="1")]
4958    pub contacts: ::prost::alloc::vec::Vec<Contact>,
4959    #[prost(uint64, repeated, tag="2")]
4960    pub remove_contacts: ::prost::alloc::vec::Vec<u64>,
4961    #[prost(message, repeated, tag="3")]
4962    pub incoming_requests: ::prost::alloc::vec::Vec<IncomingContactRequest>,
4963    #[prost(uint64, repeated, tag="4")]
4964    pub remove_incoming_requests: ::prost::alloc::vec::Vec<u64>,
4965    #[prost(uint64, repeated, tag="5")]
4966    pub outgoing_requests: ::prost::alloc::vec::Vec<u64>,
4967    #[prost(uint64, repeated, tag="6")]
4968    pub remove_outgoing_requests: ::prost::alloc::vec::Vec<u64>,
4969}
4970#[derive(serde::Serialize, serde::Deserialize)]
4971#[derive(Clone, PartialEq, ::prost::Message)]
4972pub struct ShowContacts {
4973}
4974#[derive(serde::Serialize, serde::Deserialize)]
4975#[derive(Clone, PartialEq, ::prost::Message)]
4976pub struct IncomingContactRequest {
4977    #[prost(uint64, tag="1")]
4978    pub requester_id: u64,
4979}
4980#[derive(serde::Serialize, serde::Deserialize)]
4981#[derive(Clone, PartialEq, ::prost::Message)]
4982pub struct Follow {
4983    #[prost(uint64, tag="1")]
4984    pub room_id: u64,
4985    #[prost(uint64, optional, tag="2")]
4986    pub project_id: ::core::option::Option<u64>,
4987    #[prost(message, optional, tag="3")]
4988    pub leader_id: ::core::option::Option<PeerId>,
4989}
4990#[derive(serde::Serialize, serde::Deserialize)]
4991#[derive(Clone, PartialEq, ::prost::Message)]
4992pub struct FollowResponse {
4993    #[prost(message, optional, tag="3")]
4994    pub active_view: ::core::option::Option<View>,
4995    /// TODO: Remove after version 0.145.x stabilizes.
4996    #[prost(message, optional, tag="1")]
4997    pub active_view_id: ::core::option::Option<ViewId>,
4998    #[prost(message, repeated, tag="2")]
4999    pub views: ::prost::alloc::vec::Vec<View>,
5000}
5001#[derive(serde::Serialize, serde::Deserialize)]
5002#[derive(Clone, PartialEq, ::prost::Message)]
5003pub struct UpdateFollowers {
5004    #[prost(uint64, tag="1")]
5005    pub room_id: u64,
5006    #[prost(uint64, optional, tag="2")]
5007    pub project_id: ::core::option::Option<u64>,
5008    #[prost(oneof="update_followers::Variant", tags="5, 4, 6")]
5009    pub variant: ::core::option::Option<update_followers::Variant>,
5010}
5011/// Nested message and enum types in `UpdateFollowers`.
5012pub mod update_followers {
5013    #[derive(serde::Serialize, serde::Deserialize)]
5014    #[derive(Clone, PartialEq, ::prost::Oneof)]
5015    pub enum Variant {
5016        #[prost(message, tag="5")]
5017        CreateView(super::View),
5018        /// TODO: Remove after version 0.145.x stabilizes.
5019        #[prost(message, tag="4")]
5020        UpdateActiveView(super::UpdateActiveView),
5021        #[prost(message, tag="6")]
5022        UpdateView(super::UpdateView),
5023    }
5024}
5025#[derive(serde::Serialize, serde::Deserialize)]
5026#[derive(Clone, PartialEq, ::prost::Message)]
5027pub struct Unfollow {
5028    #[prost(uint64, tag="1")]
5029    pub room_id: u64,
5030    #[prost(uint64, optional, tag="2")]
5031    pub project_id: ::core::option::Option<u64>,
5032    #[prost(message, optional, tag="3")]
5033    pub leader_id: ::core::option::Option<PeerId>,
5034}
5035#[derive(serde::Serialize, serde::Deserialize)]
5036#[derive(Clone, PartialEq, ::prost::Message)]
5037pub struct ViewId {
5038    #[prost(message, optional, tag="1")]
5039    pub creator: ::core::option::Option<PeerId>,
5040    #[prost(uint64, tag="2")]
5041    pub id: u64,
5042}
5043#[derive(serde::Serialize, serde::Deserialize)]
5044#[derive(Clone, PartialEq, ::prost::Message)]
5045pub struct UpdateActiveView {
5046    #[prost(message, optional, tag="1")]
5047    pub id: ::core::option::Option<ViewId>,
5048    #[prost(message, optional, tag="2")]
5049    pub leader_id: ::core::option::Option<PeerId>,
5050    #[prost(message, optional, tag="3")]
5051    pub view: ::core::option::Option<View>,
5052}
5053#[derive(serde::Serialize, serde::Deserialize)]
5054#[derive(Clone, PartialEq, ::prost::Message)]
5055pub struct UpdateView {
5056    #[prost(message, optional, tag="1")]
5057    pub id: ::core::option::Option<ViewId>,
5058    #[prost(message, optional, tag="2")]
5059    pub leader_id: ::core::option::Option<PeerId>,
5060    #[prost(oneof="update_view::Variant", tags="3")]
5061    pub variant: ::core::option::Option<update_view::Variant>,
5062}
5063/// Nested message and enum types in `UpdateView`.
5064pub mod update_view {
5065    #[derive(serde::Serialize, serde::Deserialize)]
5066    #[derive(Clone, PartialEq, ::prost::Message)]
5067    pub struct Editor {
5068        #[prost(message, repeated, tag="1")]
5069        pub inserted_excerpts: ::prost::alloc::vec::Vec<super::ExcerptInsertion>,
5070        #[prost(uint64, repeated, tag="2")]
5071        pub deleted_excerpts: ::prost::alloc::vec::Vec<u64>,
5072        #[prost(message, repeated, tag="3")]
5073        pub selections: ::prost::alloc::vec::Vec<super::Selection>,
5074        #[prost(message, optional, tag="4")]
5075        pub pending_selection: ::core::option::Option<super::Selection>,
5076        #[prost(message, optional, tag="5")]
5077        pub scroll_top_anchor: ::core::option::Option<super::EditorAnchor>,
5078        #[prost(double, tag="8")]
5079        pub scroll_x: f64,
5080        #[prost(double, tag="9")]
5081        pub scroll_y: f64,
5082    }
5083    #[derive(serde::Serialize, serde::Deserialize)]
5084    #[derive(Clone, PartialEq, ::prost::Oneof)]
5085    pub enum Variant {
5086        #[prost(message, tag="3")]
5087        Editor(Editor),
5088    }
5089}
5090#[derive(serde::Serialize, serde::Deserialize)]
5091#[derive(Clone, PartialEq, ::prost::Message)]
5092pub struct View {
5093    #[prost(message, optional, tag="1")]
5094    pub id: ::core::option::Option<ViewId>,
5095    #[prost(message, optional, tag="2")]
5096    pub leader_id: ::core::option::Option<PeerId>,
5097    #[prost(enumeration="PanelId", optional, tag="6")]
5098    pub panel_id: ::core::option::Option<i32>,
5099    #[prost(oneof="view::Variant", tags="3, 4, 5")]
5100    pub variant: ::core::option::Option<view::Variant>,
5101}
5102/// Nested message and enum types in `View`.
5103pub mod view {
5104    #[derive(serde::Serialize, serde::Deserialize)]
5105    #[derive(Clone, PartialEq, ::prost::Message)]
5106    pub struct Editor {
5107        #[prost(bool, tag="1")]
5108        pub singleton: bool,
5109        #[prost(string, optional, tag="2")]
5110        pub title: ::core::option::Option<::prost::alloc::string::String>,
5111        #[prost(message, repeated, tag="3")]
5112        pub excerpts: ::prost::alloc::vec::Vec<super::Excerpt>,
5113        #[prost(message, repeated, tag="4")]
5114        pub selections: ::prost::alloc::vec::Vec<super::Selection>,
5115        #[prost(message, optional, tag="5")]
5116        pub pending_selection: ::core::option::Option<super::Selection>,
5117        #[prost(message, optional, tag="6")]
5118        pub scroll_top_anchor: ::core::option::Option<super::EditorAnchor>,
5119        #[prost(double, tag="9")]
5120        pub scroll_x: f64,
5121        #[prost(double, tag="10")]
5122        pub scroll_y: f64,
5123    }
5124    #[derive(serde::Serialize, serde::Deserialize)]
5125    #[derive(Clone, PartialEq, ::prost::Message)]
5126    pub struct ChannelView {
5127        #[prost(uint64, tag="1")]
5128        pub channel_id: u64,
5129        #[prost(message, optional, tag="2")]
5130        pub editor: ::core::option::Option<Editor>,
5131    }
5132    #[derive(serde::Serialize, serde::Deserialize)]
5133    #[derive(Clone, PartialEq, ::prost::Message)]
5134    pub struct ContextEditor {
5135        #[prost(string, tag="1")]
5136        pub context_id: ::prost::alloc::string::String,
5137        #[prost(message, optional, tag="2")]
5138        pub editor: ::core::option::Option<Editor>,
5139    }
5140    #[derive(serde::Serialize, serde::Deserialize)]
5141    #[derive(Clone, PartialEq, ::prost::Oneof)]
5142    pub enum Variant {
5143        #[prost(message, tag="3")]
5144        Editor(Editor),
5145        #[prost(message, tag="4")]
5146        ChannelView(ChannelView),
5147        #[prost(message, tag="5")]
5148        ContextEditor(ContextEditor),
5149    }
5150}
5151#[derive(serde::Serialize, serde::Deserialize)]
5152#[derive(Clone, PartialEq, ::prost::Message)]
5153pub struct ExcerptInsertion {
5154    #[prost(message, optional, tag="1")]
5155    pub excerpt: ::core::option::Option<Excerpt>,
5156    #[prost(uint64, optional, tag="2")]
5157    pub previous_excerpt_id: ::core::option::Option<u64>,
5158}
5159#[derive(serde::Serialize, serde::Deserialize)]
5160#[derive(Clone, PartialEq, ::prost::Message)]
5161pub struct Excerpt {
5162    #[prost(uint64, tag="1")]
5163    pub id: u64,
5164    #[prost(uint64, tag="2")]
5165    pub buffer_id: u64,
5166    #[prost(message, optional, tag="3")]
5167    pub context_start: ::core::option::Option<Anchor>,
5168    #[prost(message, optional, tag="4")]
5169    pub context_end: ::core::option::Option<Anchor>,
5170    #[prost(message, optional, tag="5")]
5171    pub primary_start: ::core::option::Option<Anchor>,
5172    #[prost(message, optional, tag="6")]
5173    pub primary_end: ::core::option::Option<Anchor>,
5174}
5175#[derive(serde::Serialize, serde::Deserialize)]
5176#[derive(Clone, PartialEq, ::prost::Message)]
5177pub struct Contact {
5178    #[prost(uint64, tag="1")]
5179    pub user_id: u64,
5180    #[prost(bool, tag="2")]
5181    pub online: bool,
5182    #[prost(bool, tag="3")]
5183    pub busy: bool,
5184}
5185#[derive(serde::Serialize, serde::Deserialize)]
5186#[derive(Clone, PartialEq, ::prost::Message)]
5187pub struct SetRoomParticipantRole {
5188    #[prost(uint64, tag="1")]
5189    pub room_id: u64,
5190    #[prost(uint64, tag="2")]
5191    pub user_id: u64,
5192    #[prost(enumeration="ChannelRole", tag="3")]
5193    pub role: i32,
5194}
5195#[derive(serde::Serialize, serde::Deserialize)]
5196#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5197#[repr(i32)]
5198pub enum ContactRequestResponse {
5199    Accept = 0,
5200    Decline = 1,
5201    Block = 2,
5202    Dismiss = 3,
5203}
5204#[derive(serde::Serialize, serde::Deserialize)]
5205#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5206#[repr(i32)]
5207pub enum PanelId {
5208    AssistantPanel = 0,
5209    DebugPanel = 1,
5210}
5211#[derive(serde::Serialize, serde::Deserialize)]
5212#[derive(Clone, PartialEq, ::prost::Message)]
5213pub struct Breakpoint {
5214    #[prost(message, optional, tag="1")]
5215    pub position: ::core::option::Option<Anchor>,
5216    #[prost(enumeration="BreakpointState", tag="2")]
5217    pub state: i32,
5218    #[prost(string, optional, tag="4")]
5219    pub message: ::core::option::Option<::prost::alloc::string::String>,
5220    #[prost(string, optional, tag="5")]
5221    pub condition: ::core::option::Option<::prost::alloc::string::String>,
5222    #[prost(string, optional, tag="6")]
5223    pub hit_condition: ::core::option::Option<::prost::alloc::string::String>,
5224    #[prost(map="uint64, message", tag="7")]
5225    pub session_state: ::std::collections::HashMap<u64, BreakpointSessionState>,
5226}
5227#[derive(serde::Serialize, serde::Deserialize)]
5228#[derive(Clone, PartialEq, ::prost::Message)]
5229pub struct BreakpointSessionState {
5230    #[prost(uint64, tag="1")]
5231    pub id: u64,
5232    #[prost(bool, tag="2")]
5233    pub verified: bool,
5234}
5235#[derive(serde::Serialize, serde::Deserialize)]
5236#[derive(Clone, PartialEq, ::prost::Message)]
5237pub struct BreakpointsForFile {
5238    #[prost(uint64, tag="1")]
5239    pub project_id: u64,
5240    #[prost(string, tag="2")]
5241    pub path: ::prost::alloc::string::String,
5242    #[prost(message, repeated, tag="3")]
5243    pub breakpoints: ::prost::alloc::vec::Vec<Breakpoint>,
5244}
5245#[derive(serde::Serialize, serde::Deserialize)]
5246#[derive(Clone, PartialEq, ::prost::Message)]
5247pub struct ToggleBreakpoint {
5248    #[prost(uint64, tag="1")]
5249    pub project_id: u64,
5250    #[prost(string, tag="2")]
5251    pub path: ::prost::alloc::string::String,
5252    #[prost(message, optional, tag="3")]
5253    pub breakpoint: ::core::option::Option<Breakpoint>,
5254}
5255#[derive(serde::Serialize, serde::Deserialize)]
5256#[derive(Clone, PartialEq, ::prost::Message)]
5257pub struct ValueFormat {
5258    #[prost(bool, optional, tag="1")]
5259    pub hex: ::core::option::Option<bool>,
5260}
5261#[derive(serde::Serialize, serde::Deserialize)]
5262#[derive(Clone, PartialEq, ::prost::Message)]
5263pub struct VariablesRequest {
5264    #[prost(uint64, tag="1")]
5265    pub project_id: u64,
5266    #[prost(uint64, tag="2")]
5267    pub client_id: u64,
5268    #[prost(uint64, tag="3")]
5269    pub variables_reference: u64,
5270    #[prost(enumeration="VariablesArgumentsFilter", optional, tag="4")]
5271    pub filter: ::core::option::Option<i32>,
5272    #[prost(uint64, optional, tag="5")]
5273    pub start: ::core::option::Option<u64>,
5274    #[prost(uint64, optional, tag="6")]
5275    pub count: ::core::option::Option<u64>,
5276    #[prost(message, optional, tag="7")]
5277    pub format: ::core::option::Option<ValueFormat>,
5278}
5279#[derive(serde::Serialize, serde::Deserialize)]
5280#[derive(Clone, PartialEq, ::prost::Message)]
5281pub struct DapLocationsRequest {
5282    #[prost(uint64, tag="1")]
5283    pub project_id: u64,
5284    #[prost(uint64, tag="2")]
5285    pub session_id: u64,
5286    #[prost(uint64, tag="3")]
5287    pub location_reference: u64,
5288}
5289#[derive(serde::Serialize, serde::Deserialize)]
5290#[derive(Clone, PartialEq, ::prost::Message)]
5291pub struct DapLocationsResponse {
5292    #[prost(message, optional, tag="1")]
5293    pub source: ::core::option::Option<DapSource>,
5294    #[prost(uint64, tag="2")]
5295    pub line: u64,
5296    #[prost(uint64, optional, tag="3")]
5297    pub column: ::core::option::Option<u64>,
5298    #[prost(uint64, optional, tag="4")]
5299    pub end_line: ::core::option::Option<u64>,
5300    #[prost(uint64, optional, tag="5")]
5301    pub end_column: ::core::option::Option<u64>,
5302}
5303#[derive(serde::Serialize, serde::Deserialize)]
5304#[derive(Clone, PartialEq, ::prost::Message)]
5305pub struct DapEvaluateRequest {
5306    #[prost(uint64, tag="1")]
5307    pub project_id: u64,
5308    #[prost(uint64, tag="2")]
5309    pub client_id: u64,
5310    #[prost(string, tag="3")]
5311    pub expression: ::prost::alloc::string::String,
5312    #[prost(uint64, optional, tag="4")]
5313    pub frame_id: ::core::option::Option<u64>,
5314    #[prost(enumeration="DapEvaluateContext", optional, tag="5")]
5315    pub context: ::core::option::Option<i32>,
5316}
5317#[derive(serde::Serialize, serde::Deserialize)]
5318#[derive(Clone, PartialEq, ::prost::Message)]
5319pub struct DapEvaluateResponse {
5320    #[prost(string, tag="1")]
5321    pub result: ::prost::alloc::string::String,
5322    #[prost(string, optional, tag="2")]
5323    pub evaluate_type: ::core::option::Option<::prost::alloc::string::String>,
5324    #[prost(uint64, tag="3")]
5325    pub variable_reference: u64,
5326    #[prost(uint64, optional, tag="4")]
5327    pub named_variables: ::core::option::Option<u64>,
5328    #[prost(uint64, optional, tag="5")]
5329    pub indexed_variables: ::core::option::Option<u64>,
5330    #[prost(string, optional, tag="6")]
5331    pub memory_reference: ::core::option::Option<::prost::alloc::string::String>,
5332}
5333#[derive(serde::Serialize, serde::Deserialize)]
5334#[derive(Clone, PartialEq, ::prost::Message)]
5335pub struct DapCompletionRequest {
5336    #[prost(uint64, tag="1")]
5337    pub project_id: u64,
5338    #[prost(uint64, tag="2")]
5339    pub client_id: u64,
5340    #[prost(string, tag="3")]
5341    pub query: ::prost::alloc::string::String,
5342    #[prost(uint64, optional, tag="4")]
5343    pub frame_id: ::core::option::Option<u64>,
5344    #[prost(uint64, optional, tag="5")]
5345    pub line: ::core::option::Option<u64>,
5346    #[prost(uint64, tag="6")]
5347    pub column: u64,
5348}
5349#[derive(serde::Serialize, serde::Deserialize)]
5350#[derive(Clone, PartialEq, ::prost::Message)]
5351pub struct DapCompletionItem {
5352    #[prost(string, tag="1")]
5353    pub label: ::prost::alloc::string::String,
5354    #[prost(string, optional, tag="2")]
5355    pub text: ::core::option::Option<::prost::alloc::string::String>,
5356    #[prost(string, optional, tag="3")]
5357    pub sort_text: ::core::option::Option<::prost::alloc::string::String>,
5358    #[prost(string, optional, tag="4")]
5359    pub detail: ::core::option::Option<::prost::alloc::string::String>,
5360    #[prost(enumeration="DapCompletionItemType", optional, tag="5")]
5361    pub typ: ::core::option::Option<i32>,
5362    #[prost(uint64, optional, tag="6")]
5363    pub start: ::core::option::Option<u64>,
5364    #[prost(uint64, optional, tag="7")]
5365    pub length: ::core::option::Option<u64>,
5366    #[prost(uint64, optional, tag="8")]
5367    pub selection_start: ::core::option::Option<u64>,
5368    #[prost(uint64, optional, tag="9")]
5369    pub selection_length: ::core::option::Option<u64>,
5370}
5371#[derive(serde::Serialize, serde::Deserialize)]
5372#[derive(Clone, PartialEq, ::prost::Message)]
5373pub struct DapCompletionResponse {
5374    #[prost(uint64, tag="1")]
5375    pub client_id: u64,
5376    #[prost(message, repeated, tag="2")]
5377    pub completions: ::prost::alloc::vec::Vec<DapCompletionItem>,
5378}
5379#[derive(serde::Serialize, serde::Deserialize)]
5380#[derive(Clone, PartialEq, ::prost::Message)]
5381pub struct DapScopesRequest {
5382    #[prost(uint64, tag="1")]
5383    pub project_id: u64,
5384    #[prost(uint64, tag="2")]
5385    pub client_id: u64,
5386    #[prost(uint64, tag="3")]
5387    pub stack_frame_id: u64,
5388}
5389#[derive(serde::Serialize, serde::Deserialize)]
5390#[derive(Clone, PartialEq, ::prost::Message)]
5391pub struct DapScopesResponse {
5392    #[prost(message, repeated, tag="1")]
5393    pub scopes: ::prost::alloc::vec::Vec<DapScope>,
5394}
5395#[derive(serde::Serialize, serde::Deserialize)]
5396#[derive(Clone, PartialEq, ::prost::Message)]
5397pub struct DapSetVariableValueRequest {
5398    #[prost(uint64, tag="1")]
5399    pub project_id: u64,
5400    #[prost(uint64, tag="2")]
5401    pub client_id: u64,
5402    #[prost(string, tag="3")]
5403    pub name: ::prost::alloc::string::String,
5404    #[prost(string, tag="4")]
5405    pub value: ::prost::alloc::string::String,
5406    #[prost(uint64, tag="5")]
5407    pub variables_reference: u64,
5408}
5409#[derive(serde::Serialize, serde::Deserialize)]
5410#[derive(Clone, PartialEq, ::prost::Message)]
5411pub struct DapSetVariableValueResponse {
5412    #[prost(uint64, tag="1")]
5413    pub client_id: u64,
5414    #[prost(string, tag="2")]
5415    pub value: ::prost::alloc::string::String,
5416    #[prost(string, optional, tag="3")]
5417    pub variable_type: ::core::option::Option<::prost::alloc::string::String>,
5418    #[prost(uint64, optional, tag="4")]
5419    pub variables_reference: ::core::option::Option<u64>,
5420    #[prost(uint64, optional, tag="5")]
5421    pub named_variables: ::core::option::Option<u64>,
5422    #[prost(uint64, optional, tag="6")]
5423    pub indexed_variables: ::core::option::Option<u64>,
5424    #[prost(string, optional, tag="7")]
5425    pub memory_reference: ::core::option::Option<::prost::alloc::string::String>,
5426}
5427#[derive(serde::Serialize, serde::Deserialize)]
5428#[derive(Clone, PartialEq, ::prost::Message)]
5429pub struct DapPauseRequest {
5430    #[prost(uint64, tag="1")]
5431    pub project_id: u64,
5432    #[prost(uint64, tag="2")]
5433    pub client_id: u64,
5434    #[prost(int64, tag="3")]
5435    pub thread_id: i64,
5436}
5437#[derive(serde::Serialize, serde::Deserialize)]
5438#[derive(Clone, PartialEq, ::prost::Message)]
5439pub struct DapDisconnectRequest {
5440    #[prost(uint64, tag="1")]
5441    pub project_id: u64,
5442    #[prost(uint64, tag="2")]
5443    pub client_id: u64,
5444    #[prost(bool, optional, tag="3")]
5445    pub restart: ::core::option::Option<bool>,
5446    #[prost(bool, optional, tag="4")]
5447    pub terminate_debuggee: ::core::option::Option<bool>,
5448    #[prost(bool, optional, tag="5")]
5449    pub suspend_debuggee: ::core::option::Option<bool>,
5450}
5451#[derive(serde::Serialize, serde::Deserialize)]
5452#[derive(Clone, PartialEq, ::prost::Message)]
5453pub struct DapTerminateThreadsRequest {
5454    #[prost(uint64, tag="1")]
5455    pub project_id: u64,
5456    #[prost(uint64, tag="2")]
5457    pub client_id: u64,
5458    #[prost(int64, repeated, tag="3")]
5459    pub thread_ids: ::prost::alloc::vec::Vec<i64>,
5460}
5461#[derive(serde::Serialize, serde::Deserialize)]
5462#[derive(Clone, PartialEq, ::prost::Message)]
5463pub struct DapThreadsRequest {
5464    #[prost(uint64, tag="1")]
5465    pub project_id: u64,
5466    #[prost(uint64, tag="2")]
5467    pub client_id: u64,
5468}
5469#[derive(serde::Serialize, serde::Deserialize)]
5470#[derive(Clone, PartialEq, ::prost::Message)]
5471pub struct DapThreadsResponse {
5472    #[prost(message, repeated, tag="1")]
5473    pub threads: ::prost::alloc::vec::Vec<DapThread>,
5474}
5475#[derive(serde::Serialize, serde::Deserialize)]
5476#[derive(Clone, PartialEq, ::prost::Message)]
5477pub struct DapTerminateRequest {
5478    #[prost(uint64, tag="1")]
5479    pub project_id: u64,
5480    #[prost(uint64, tag="2")]
5481    pub client_id: u64,
5482    #[prost(bool, optional, tag="3")]
5483    pub restart: ::core::option::Option<bool>,
5484}
5485#[derive(serde::Serialize, serde::Deserialize)]
5486#[derive(Clone, PartialEq, ::prost::Message)]
5487pub struct DapRestartRequest {
5488    #[prost(uint64, tag="1")]
5489    pub project_id: u64,
5490    #[prost(uint64, tag="2")]
5491    pub client_id: u64,
5492    #[prost(bytes="vec", tag="3")]
5493    pub raw_args: ::prost::alloc::vec::Vec<u8>,
5494}
5495#[derive(serde::Serialize, serde::Deserialize)]
5496#[derive(Clone, PartialEq, ::prost::Message)]
5497pub struct DapRestartStackFrameRequest {
5498    #[prost(uint64, tag="1")]
5499    pub project_id: u64,
5500    #[prost(uint64, tag="2")]
5501    pub client_id: u64,
5502    #[prost(uint64, tag="3")]
5503    pub stack_frame_id: u64,
5504}
5505#[derive(serde::Serialize, serde::Deserialize)]
5506#[derive(Clone, PartialEq, ::prost::Message)]
5507pub struct ToggleIgnoreBreakpoints {
5508    #[prost(uint64, tag="1")]
5509    pub project_id: u64,
5510    #[prost(uint32, tag="2")]
5511    pub session_id: u32,
5512}
5513#[derive(serde::Serialize, serde::Deserialize)]
5514#[derive(Clone, PartialEq, ::prost::Message)]
5515pub struct IgnoreBreakpointState {
5516    #[prost(uint64, tag="1")]
5517    pub project_id: u64,
5518    #[prost(uint64, tag="2")]
5519    pub session_id: u64,
5520    #[prost(bool, tag="3")]
5521    pub ignore: bool,
5522}
5523#[derive(serde::Serialize, serde::Deserialize)]
5524#[derive(Clone, PartialEq, ::prost::Message)]
5525pub struct DapNextRequest {
5526    #[prost(uint64, tag="1")]
5527    pub project_id: u64,
5528    #[prost(uint64, tag="2")]
5529    pub client_id: u64,
5530    #[prost(int64, tag="3")]
5531    pub thread_id: i64,
5532    #[prost(bool, optional, tag="4")]
5533    pub single_thread: ::core::option::Option<bool>,
5534    #[prost(enumeration="SteppingGranularity", optional, tag="5")]
5535    pub granularity: ::core::option::Option<i32>,
5536}
5537#[derive(serde::Serialize, serde::Deserialize)]
5538#[derive(Clone, PartialEq, ::prost::Message)]
5539pub struct DapStepInRequest {
5540    #[prost(uint64, tag="1")]
5541    pub project_id: u64,
5542    #[prost(uint64, tag="2")]
5543    pub client_id: u64,
5544    #[prost(int64, tag="3")]
5545    pub thread_id: i64,
5546    #[prost(uint64, optional, tag="4")]
5547    pub target_id: ::core::option::Option<u64>,
5548    #[prost(bool, optional, tag="5")]
5549    pub single_thread: ::core::option::Option<bool>,
5550    #[prost(enumeration="SteppingGranularity", optional, tag="6")]
5551    pub granularity: ::core::option::Option<i32>,
5552}
5553#[derive(serde::Serialize, serde::Deserialize)]
5554#[derive(Clone, PartialEq, ::prost::Message)]
5555pub struct DapStepOutRequest {
5556    #[prost(uint64, tag="1")]
5557    pub project_id: u64,
5558    #[prost(uint64, tag="2")]
5559    pub client_id: u64,
5560    #[prost(int64, tag="3")]
5561    pub thread_id: i64,
5562    #[prost(bool, optional, tag="4")]
5563    pub single_thread: ::core::option::Option<bool>,
5564    #[prost(enumeration="SteppingGranularity", optional, tag="5")]
5565    pub granularity: ::core::option::Option<i32>,
5566}
5567#[derive(serde::Serialize, serde::Deserialize)]
5568#[derive(Clone, PartialEq, ::prost::Message)]
5569pub struct DapStepBackRequest {
5570    #[prost(uint64, tag="1")]
5571    pub project_id: u64,
5572    #[prost(uint64, tag="2")]
5573    pub client_id: u64,
5574    #[prost(int64, tag="3")]
5575    pub thread_id: i64,
5576    #[prost(bool, optional, tag="4")]
5577    pub single_thread: ::core::option::Option<bool>,
5578    #[prost(enumeration="SteppingGranularity", optional, tag="5")]
5579    pub granularity: ::core::option::Option<i32>,
5580}
5581#[derive(serde::Serialize, serde::Deserialize)]
5582#[derive(Clone, PartialEq, ::prost::Message)]
5583pub struct DapContinueRequest {
5584    #[prost(uint64, tag="1")]
5585    pub project_id: u64,
5586    #[prost(uint64, tag="2")]
5587    pub client_id: u64,
5588    #[prost(int64, tag="3")]
5589    pub thread_id: i64,
5590    #[prost(bool, optional, tag="4")]
5591    pub single_thread: ::core::option::Option<bool>,
5592}
5593#[derive(serde::Serialize, serde::Deserialize)]
5594#[derive(Clone, PartialEq, ::prost::Message)]
5595pub struct DapContinueResponse {
5596    #[prost(uint64, tag="1")]
5597    pub client_id: u64,
5598    #[prost(bool, optional, tag="2")]
5599    pub all_threads_continued: ::core::option::Option<bool>,
5600}
5601#[derive(serde::Serialize, serde::Deserialize)]
5602#[derive(Clone, PartialEq, ::prost::Message)]
5603pub struct DapModulesRequest {
5604    #[prost(uint64, tag="1")]
5605    pub project_id: u64,
5606    #[prost(uint64, tag="2")]
5607    pub client_id: u64,
5608}
5609#[derive(serde::Serialize, serde::Deserialize)]
5610#[derive(Clone, PartialEq, ::prost::Message)]
5611pub struct DapModulesResponse {
5612    #[prost(uint64, tag="1")]
5613    pub client_id: u64,
5614    #[prost(message, repeated, tag="2")]
5615    pub modules: ::prost::alloc::vec::Vec<DapModule>,
5616}
5617#[derive(serde::Serialize, serde::Deserialize)]
5618#[derive(Clone, PartialEq, ::prost::Message)]
5619pub struct DapLoadedSourcesRequest {
5620    #[prost(uint64, tag="1")]
5621    pub project_id: u64,
5622    #[prost(uint64, tag="2")]
5623    pub client_id: u64,
5624}
5625#[derive(serde::Serialize, serde::Deserialize)]
5626#[derive(Clone, PartialEq, ::prost::Message)]
5627pub struct DapLoadedSourcesResponse {
5628    #[prost(uint64, tag="1")]
5629    pub client_id: u64,
5630    #[prost(message, repeated, tag="2")]
5631    pub sources: ::prost::alloc::vec::Vec<DapSource>,
5632}
5633#[derive(serde::Serialize, serde::Deserialize)]
5634#[derive(Clone, PartialEq, ::prost::Message)]
5635pub struct DapStackTraceRequest {
5636    #[prost(uint64, tag="1")]
5637    pub project_id: u64,
5638    #[prost(uint64, tag="2")]
5639    pub client_id: u64,
5640    #[prost(int64, tag="3")]
5641    pub thread_id: i64,
5642    #[prost(uint64, optional, tag="4")]
5643    pub start_frame: ::core::option::Option<u64>,
5644    #[prost(uint64, optional, tag="5")]
5645    pub stack_trace_levels: ::core::option::Option<u64>,
5646}
5647#[derive(serde::Serialize, serde::Deserialize)]
5648#[derive(Clone, PartialEq, ::prost::Message)]
5649pub struct DapStackTraceResponse {
5650    #[prost(message, repeated, tag="1")]
5651    pub frames: ::prost::alloc::vec::Vec<DapStackFrame>,
5652}
5653#[derive(serde::Serialize, serde::Deserialize)]
5654#[derive(Clone, PartialEq, ::prost::Message)]
5655pub struct DapStackFrame {
5656    #[prost(uint64, tag="1")]
5657    pub id: u64,
5658    #[prost(string, tag="2")]
5659    pub name: ::prost::alloc::string::String,
5660    #[prost(message, optional, tag="3")]
5661    pub source: ::core::option::Option<DapSource>,
5662    #[prost(uint64, tag="4")]
5663    pub line: u64,
5664    #[prost(uint64, tag="5")]
5665    pub column: u64,
5666    #[prost(uint64, optional, tag="6")]
5667    pub end_line: ::core::option::Option<u64>,
5668    #[prost(uint64, optional, tag="7")]
5669    pub end_column: ::core::option::Option<u64>,
5670    #[prost(bool, optional, tag="8")]
5671    pub can_restart: ::core::option::Option<bool>,
5672    #[prost(string, optional, tag="9")]
5673    pub instruction_pointer_reference: ::core::option::Option<::prost::alloc::string::String>,
5674    #[prost(message, optional, tag="10")]
5675    pub module_id: ::core::option::Option<DapModuleId>,
5676    #[prost(enumeration="DapStackPresentationHint", optional, tag="11")]
5677    pub presentation_hint: ::core::option::Option<i32>,
5678}
5679#[derive(serde::Serialize, serde::Deserialize)]
5680#[derive(Clone, PartialEq, ::prost::Message)]
5681pub struct DebuggerLoadedSourceList {
5682    #[prost(uint64, tag="1")]
5683    pub client_id: u64,
5684    #[prost(message, repeated, tag="2")]
5685    pub sources: ::prost::alloc::vec::Vec<DapSource>,
5686}
5687#[derive(serde::Serialize, serde::Deserialize)]
5688#[derive(Clone, PartialEq, ::prost::Message)]
5689pub struct DapVariables {
5690    #[prost(uint64, tag="1")]
5691    pub client_id: u64,
5692    #[prost(message, repeated, tag="2")]
5693    pub variables: ::prost::alloc::vec::Vec<DapVariable>,
5694}
5695/// Remote Debugging: Dap Types
5696#[derive(serde::Serialize, serde::Deserialize)]
5697#[derive(Clone, PartialEq, ::prost::Message)]
5698pub struct DapVariable {
5699    #[prost(string, tag="1")]
5700    pub name: ::prost::alloc::string::String,
5701    #[prost(string, tag="2")]
5702    pub value: ::prost::alloc::string::String,
5703    #[prost(string, optional, tag="3")]
5704    pub r#type: ::core::option::Option<::prost::alloc::string::String>,
5705    /// optional DapVariablePresentationHint presentation_hint = 4;
5706    #[prost(string, optional, tag="5")]
5707    pub evaluate_name: ::core::option::Option<::prost::alloc::string::String>,
5708    #[prost(uint64, tag="6")]
5709    pub variables_reference: u64,
5710    #[prost(uint64, optional, tag="7")]
5711    pub named_variables: ::core::option::Option<u64>,
5712    #[prost(uint64, optional, tag="8")]
5713    pub indexed_variables: ::core::option::Option<u64>,
5714    #[prost(string, optional, tag="9")]
5715    pub memory_reference: ::core::option::Option<::prost::alloc::string::String>,
5716}
5717#[derive(serde::Serialize, serde::Deserialize)]
5718#[derive(Clone, PartialEq, ::prost::Message)]
5719pub struct DapThread {
5720    #[prost(int64, tag="1")]
5721    pub id: i64,
5722    #[prost(string, tag="2")]
5723    pub name: ::prost::alloc::string::String,
5724}
5725#[derive(serde::Serialize, serde::Deserialize)]
5726#[derive(Clone, PartialEq, ::prost::Message)]
5727pub struct DapScope {
5728    #[prost(string, tag="1")]
5729    pub name: ::prost::alloc::string::String,
5730    #[prost(enumeration="DapScopePresentationHint", optional, tag="2")]
5731    pub presentation_hint: ::core::option::Option<i32>,
5732    #[prost(uint64, tag="3")]
5733    pub variables_reference: u64,
5734    #[prost(uint64, optional, tag="4")]
5735    pub named_variables: ::core::option::Option<u64>,
5736    #[prost(uint64, optional, tag="5")]
5737    pub indexed_variables: ::core::option::Option<u64>,
5738    #[prost(bool, tag="6")]
5739    pub expensive: bool,
5740    #[prost(message, optional, tag="7")]
5741    pub source: ::core::option::Option<DapSource>,
5742    #[prost(uint64, optional, tag="8")]
5743    pub line: ::core::option::Option<u64>,
5744    #[prost(uint64, optional, tag="9")]
5745    pub column: ::core::option::Option<u64>,
5746    #[prost(uint64, optional, tag="10")]
5747    pub end_line: ::core::option::Option<u64>,
5748    #[prost(uint64, optional, tag="11")]
5749    pub end_column: ::core::option::Option<u64>,
5750}
5751#[derive(serde::Serialize, serde::Deserialize)]
5752#[derive(Clone, PartialEq, ::prost::Message)]
5753pub struct DapSource {
5754    #[prost(string, optional, tag="1")]
5755    pub name: ::core::option::Option<::prost::alloc::string::String>,
5756    #[prost(string, optional, tag="2")]
5757    pub path: ::core::option::Option<::prost::alloc::string::String>,
5758    #[prost(uint64, optional, tag="3")]
5759    pub source_reference: ::core::option::Option<u64>,
5760    #[prost(enumeration="DapSourcePresentationHint", optional, tag="4")]
5761    pub presentation_hint: ::core::option::Option<i32>,
5762    #[prost(string, optional, tag="5")]
5763    pub origin: ::core::option::Option<::prost::alloc::string::String>,
5764    #[prost(message, repeated, tag="6")]
5765    pub sources: ::prost::alloc::vec::Vec<DapSource>,
5766    #[prost(bytes="vec", optional, tag="7")]
5767    pub adapter_data: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
5768    #[prost(message, repeated, tag="8")]
5769    pub checksums: ::prost::alloc::vec::Vec<DapChecksum>,
5770}
5771#[derive(serde::Serialize, serde::Deserialize)]
5772#[derive(Clone, PartialEq, ::prost::Message)]
5773pub struct DapOutputEvent {
5774    #[prost(string, tag="1")]
5775    pub output: ::prost::alloc::string::String,
5776    #[prost(enumeration="DapOutputCategory", optional, tag="2")]
5777    pub category: ::core::option::Option<i32>,
5778    #[prost(uint64, optional, tag="3")]
5779    pub variables_reference: ::core::option::Option<u64>,
5780    #[prost(enumeration="DapOutputEventGroup", optional, tag="4")]
5781    pub group: ::core::option::Option<i32>,
5782    #[prost(message, optional, tag="5")]
5783    pub source: ::core::option::Option<DapSource>,
5784    #[prost(uint32, optional, tag="6")]
5785    pub line: ::core::option::Option<u32>,
5786    #[prost(uint32, optional, tag="7")]
5787    pub column: ::core::option::Option<u32>,
5788}
5789#[derive(serde::Serialize, serde::Deserialize)]
5790#[derive(Clone, PartialEq, ::prost::Message)]
5791pub struct DapChecksum {
5792    #[prost(enumeration="DapChecksumAlgorithm", tag="1")]
5793    pub algorithm: i32,
5794    #[prost(string, tag="2")]
5795    pub checksum: ::prost::alloc::string::String,
5796}
5797#[derive(serde::Serialize, serde::Deserialize)]
5798#[derive(Clone, PartialEq, ::prost::Message)]
5799pub struct DapModule {
5800    #[prost(message, optional, tag="1")]
5801    pub id: ::core::option::Option<DapModuleId>,
5802    #[prost(string, tag="2")]
5803    pub name: ::prost::alloc::string::String,
5804    #[prost(string, optional, tag="3")]
5805    pub path: ::core::option::Option<::prost::alloc::string::String>,
5806    #[prost(bool, optional, tag="4")]
5807    pub is_optimized: ::core::option::Option<bool>,
5808    #[prost(bool, optional, tag="5")]
5809    pub is_user_code: ::core::option::Option<bool>,
5810    #[prost(string, optional, tag="6")]
5811    pub version: ::core::option::Option<::prost::alloc::string::String>,
5812    #[prost(string, optional, tag="7")]
5813    pub symbol_status: ::core::option::Option<::prost::alloc::string::String>,
5814    #[prost(string, optional, tag="8")]
5815    pub symbol_file_path: ::core::option::Option<::prost::alloc::string::String>,
5816    #[prost(string, optional, tag="9")]
5817    pub date_time_stamp: ::core::option::Option<::prost::alloc::string::String>,
5818    #[prost(string, optional, tag="10")]
5819    pub address_range: ::core::option::Option<::prost::alloc::string::String>,
5820}
5821#[derive(serde::Serialize, serde::Deserialize)]
5822#[derive(Clone, PartialEq, ::prost::Message)]
5823pub struct DebugTaskDefinition {
5824    #[prost(string, tag="1")]
5825    pub adapter: ::prost::alloc::string::String,
5826    #[prost(string, tag="2")]
5827    pub label: ::prost::alloc::string::String,
5828    #[prost(string, tag="3")]
5829    pub config: ::prost::alloc::string::String,
5830    #[prost(message, optional, tag="4")]
5831    pub tcp_connection: ::core::option::Option<TcpHost>,
5832}
5833#[derive(serde::Serialize, serde::Deserialize)]
5834#[derive(Clone, PartialEq, ::prost::Message)]
5835pub struct TcpHost {
5836    #[prost(uint32, optional, tag="1")]
5837    pub port: ::core::option::Option<u32>,
5838    #[prost(string, optional, tag="2")]
5839    pub host: ::core::option::Option<::prost::alloc::string::String>,
5840    #[prost(uint64, optional, tag="3")]
5841    pub timeout: ::core::option::Option<u64>,
5842}
5843#[derive(serde::Serialize, serde::Deserialize)]
5844#[derive(Clone, PartialEq, ::prost::Message)]
5845pub struct DebugLaunchRequest {
5846    #[prost(string, tag="1")]
5847    pub program: ::prost::alloc::string::String,
5848    #[prost(string, optional, tag="2")]
5849    pub cwd: ::core::option::Option<::prost::alloc::string::String>,
5850    #[prost(string, repeated, tag="3")]
5851    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5852    #[prost(map="string, string", tag="4")]
5853    pub env: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5854}
5855#[derive(serde::Serialize, serde::Deserialize)]
5856#[derive(Clone, PartialEq, ::prost::Message)]
5857pub struct DebugAttachRequest {
5858    #[prost(uint32, tag="1")]
5859    pub process_id: u32,
5860}
5861#[derive(serde::Serialize, serde::Deserialize)]
5862#[derive(Clone, PartialEq, ::prost::Message)]
5863pub struct DapModuleId {
5864    #[prost(oneof="dap_module_id::Id", tags="1, 2")]
5865    pub id: ::core::option::Option<dap_module_id::Id>,
5866}
5867/// Nested message and enum types in `DapModuleId`.
5868pub mod dap_module_id {
5869    #[derive(serde::Serialize, serde::Deserialize)]
5870    #[derive(Clone, PartialEq, ::prost::Oneof)]
5871    pub enum Id {
5872        #[prost(uint32, tag="1")]
5873        Number(u32),
5874        #[prost(string, tag="2")]
5875        String(::prost::alloc::string::String),
5876    }
5877}
5878#[derive(serde::Serialize, serde::Deserialize)]
5879#[derive(Clone, PartialEq, ::prost::Message)]
5880pub struct GetDebugAdapterBinary {
5881    #[prost(uint64, tag="1")]
5882    pub project_id: u64,
5883    #[prost(uint64, tag="3")]
5884    pub session_id: u64,
5885    #[prost(message, optional, tag="2")]
5886    pub definition: ::core::option::Option<DebugTaskDefinition>,
5887    #[prost(uint64, tag="4")]
5888    pub worktree_id: u64,
5889}
5890#[derive(serde::Serialize, serde::Deserialize)]
5891#[derive(Clone, PartialEq, ::prost::Message)]
5892pub struct DebugAdapterBinary {
5893    #[prost(string, optional, tag="1")]
5894    pub command: ::core::option::Option<::prost::alloc::string::String>,
5895    #[prost(string, repeated, tag="2")]
5896    pub arguments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5897    #[prost(map="string, string", tag="3")]
5898    pub envs: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
5899    #[prost(string, optional, tag="4")]
5900    pub cwd: ::core::option::Option<::prost::alloc::string::String>,
5901    #[prost(message, optional, tag="5")]
5902    pub connection: ::core::option::Option<TcpHost>,
5903    #[prost(string, tag="7")]
5904    pub configuration: ::prost::alloc::string::String,
5905    #[prost(enumeration="debug_adapter_binary::LaunchType", tag="8")]
5906    pub launch_type: i32,
5907}
5908/// Nested message and enum types in `DebugAdapterBinary`.
5909pub mod debug_adapter_binary {
5910    #[derive(serde::Serialize, serde::Deserialize)]
5911    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5912    #[repr(i32)]
5913    pub enum LaunchType {
5914        Attach = 0,
5915        Launch = 1,
5916    }
5917}
5918#[derive(serde::Serialize, serde::Deserialize)]
5919#[derive(Clone, PartialEq, ::prost::Message)]
5920pub struct RunDebugLocators {
5921    #[prost(uint64, tag="1")]
5922    pub project_id: u64,
5923    #[prost(message, optional, tag="2")]
5924    pub build_command: ::core::option::Option<SpawnInTerminal>,
5925    #[prost(string, tag="3")]
5926    pub locator: ::prost::alloc::string::String,
5927}
5928#[derive(serde::Serialize, serde::Deserialize)]
5929#[derive(Clone, PartialEq, ::prost::Message)]
5930pub struct DebugRequest {
5931    #[prost(oneof="debug_request::Request", tags="1, 2")]
5932    pub request: ::core::option::Option<debug_request::Request>,
5933}
5934/// Nested message and enum types in `DebugRequest`.
5935pub mod debug_request {
5936    #[derive(serde::Serialize, serde::Deserialize)]
5937    #[derive(Clone, PartialEq, ::prost::Oneof)]
5938    pub enum Request {
5939        #[prost(message, tag="1")]
5940        DebugLaunchRequest(super::DebugLaunchRequest),
5941        #[prost(message, tag="2")]
5942        DebugAttachRequest(super::DebugAttachRequest),
5943    }
5944}
5945#[derive(serde::Serialize, serde::Deserialize)]
5946#[derive(Clone, PartialEq, ::prost::Message)]
5947pub struct DebugScenario {
5948    #[prost(string, tag="1")]
5949    pub label: ::prost::alloc::string::String,
5950    #[prost(string, tag="2")]
5951    pub adapter: ::prost::alloc::string::String,
5952    #[prost(message, optional, tag="4")]
5953    pub request: ::core::option::Option<DebugRequest>,
5954    #[prost(message, optional, tag="5")]
5955    pub connection: ::core::option::Option<TcpHost>,
5956    #[prost(bool, optional, tag="6")]
5957    pub stop_on_entry: ::core::option::Option<bool>,
5958    #[prost(string, optional, tag="7")]
5959    pub configuration: ::core::option::Option<::prost::alloc::string::String>,
5960}
5961#[derive(serde::Serialize, serde::Deserialize)]
5962#[derive(Clone, PartialEq, ::prost::Message)]
5963pub struct LogToDebugConsole {
5964    #[prost(uint64, tag="1")]
5965    pub project_id: u64,
5966    #[prost(uint64, tag="2")]
5967    pub session_id: u64,
5968    #[prost(string, tag="3")]
5969    pub message: ::prost::alloc::string::String,
5970}
5971#[derive(serde::Serialize, serde::Deserialize)]
5972#[derive(Clone, PartialEq, ::prost::Message)]
5973pub struct GetProcesses {
5974    #[prost(uint64, tag="1")]
5975    pub project_id: u64,
5976}
5977#[derive(serde::Serialize, serde::Deserialize)]
5978#[derive(Clone, PartialEq, ::prost::Message)]
5979pub struct GetProcessesResponse {
5980    #[prost(message, repeated, tag="1")]
5981    pub processes: ::prost::alloc::vec::Vec<ProcessInfo>,
5982}
5983#[derive(serde::Serialize, serde::Deserialize)]
5984#[derive(Clone, PartialEq, ::prost::Message)]
5985pub struct ProcessInfo {
5986    #[prost(uint32, tag="1")]
5987    pub pid: u32,
5988    #[prost(string, tag="2")]
5989    pub name: ::prost::alloc::string::String,
5990    #[prost(string, repeated, tag="3")]
5991    pub command: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
5992}
5993#[derive(serde::Serialize, serde::Deserialize)]
5994#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
5995#[repr(i32)]
5996pub enum BreakpointState {
5997    Enabled = 0,
5998    Disabled = 1,
5999}
6000#[derive(serde::Serialize, serde::Deserialize)]
6001#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6002#[repr(i32)]
6003pub enum DapThreadStatus {
6004    Running = 0,
6005    Stopped = 1,
6006    Exited = 2,
6007    Ended = 3,
6008}
6009#[derive(serde::Serialize, serde::Deserialize)]
6010#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6011#[repr(i32)]
6012pub enum VariablesArgumentsFilter {
6013    Indexed = 0,
6014    Named = 1,
6015}
6016#[derive(serde::Serialize, serde::Deserialize)]
6017#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6018#[repr(i32)]
6019pub enum SteppingGranularity {
6020    Statement = 0,
6021    Line = 1,
6022    Instruction = 2,
6023}
6024#[derive(serde::Serialize, serde::Deserialize)]
6025#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6026#[repr(i32)]
6027pub enum DapEvaluateContext {
6028    Repl = 0,
6029    Watch = 1,
6030    Hover = 2,
6031    Clipboard = 3,
6032    EvaluateVariables = 4,
6033    EvaluateUnknown = 5,
6034}
6035#[derive(serde::Serialize, serde::Deserialize)]
6036#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6037#[repr(i32)]
6038pub enum DapCompletionItemType {
6039    Method = 0,
6040    Function = 1,
6041    Constructor = 2,
6042    Field = 3,
6043    Variable = 4,
6044    Class = 5,
6045    Interface = 6,
6046    Module = 7,
6047    Property = 8,
6048    Unit = 9,
6049    Value = 10,
6050    Enum = 11,
6051    Keyword = 12,
6052    Snippet = 13,
6053    Text = 14,
6054    Color = 15,
6055    CompletionItemFile = 16,
6056    Reference = 17,
6057    Customcolor = 19,
6058}
6059#[derive(serde::Serialize, serde::Deserialize)]
6060#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6061#[repr(i32)]
6062pub enum DapOutputCategory {
6063    ConsoleOutput = 0,
6064    Important = 1,
6065    Stdout = 2,
6066    Stderr = 3,
6067    Unknown = 4,
6068}
6069#[derive(serde::Serialize, serde::Deserialize)]
6070#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6071#[repr(i32)]
6072pub enum DapOutputEventGroup {
6073    Start = 0,
6074    StartCollapsed = 1,
6075    End = 2,
6076}
6077#[derive(serde::Serialize, serde::Deserialize)]
6078#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6079#[repr(i32)]
6080pub enum DapChecksumAlgorithm {
6081    ChecksumAlgorithmUnspecified = 0,
6082    Md5 = 1,
6083    Sha1 = 2,
6084    Sha256 = 3,
6085    Timestamp = 4,
6086}
6087#[derive(serde::Serialize, serde::Deserialize)]
6088#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6089#[repr(i32)]
6090pub enum DapScopePresentationHint {
6091    Arguments = 0,
6092    Locals = 1,
6093    Registers = 2,
6094    ReturnValue = 3,
6095    ScopeUnknown = 4,
6096}
6097#[derive(serde::Serialize, serde::Deserialize)]
6098#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6099#[repr(i32)]
6100pub enum DapSourcePresentationHint {
6101    SourceNormal = 0,
6102    Emphasize = 1,
6103    Deemphasize = 2,
6104    SourceUnknown = 3,
6105}
6106#[derive(serde::Serialize, serde::Deserialize)]
6107#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
6108#[repr(i32)]
6109pub enum DapStackPresentationHint {
6110    StackNormal = 0,
6111    Label = 1,
6112    Subtle = 2,
6113    StackUnknown = 3,
6114}
6115#[derive(serde::Serialize, serde::Deserialize)]
6116#[derive(Clone, PartialEq, ::prost::Message)]
6117pub struct OpenImageByPath {
6118    #[prost(uint64, tag="1")]
6119    pub project_id: u64,
6120    #[prost(uint64, tag="2")]
6121    pub worktree_id: u64,
6122    #[prost(string, tag="3")]
6123    pub path: ::prost::alloc::string::String,
6124}
6125#[derive(serde::Serialize, serde::Deserialize)]
6126#[derive(Clone, PartialEq, ::prost::Message)]
6127pub struct OpenImageResponse {
6128    #[prost(uint64, tag="1")]
6129    pub image_id: u64,
6130}
6131#[derive(serde::Serialize, serde::Deserialize)]
6132#[derive(Clone, PartialEq, ::prost::Message)]
6133pub struct CreateImageForPeer {
6134    #[prost(uint64, tag="1")]
6135    pub project_id: u64,
6136    #[prost(message, optional, tag="2")]
6137    pub peer_id: ::core::option::Option<PeerId>,
6138    #[prost(oneof="create_image_for_peer::Variant", tags="3, 4")]
6139    pub variant: ::core::option::Option<create_image_for_peer::Variant>,
6140}
6141/// Nested message and enum types in `CreateImageForPeer`.
6142pub mod create_image_for_peer {
6143    #[derive(serde::Serialize, serde::Deserialize)]
6144    #[derive(Clone, PartialEq, ::prost::Oneof)]
6145    pub enum Variant {
6146        #[prost(message, tag="3")]
6147        State(super::ImageState),
6148        #[prost(message, tag="4")]
6149        Chunk(super::ImageChunk),
6150    }
6151}
6152#[derive(serde::Serialize, serde::Deserialize)]
6153#[derive(Clone, PartialEq, ::prost::Message)]
6154pub struct ImageState {
6155    #[prost(uint64, tag="1")]
6156    pub id: u64,
6157    #[prost(message, optional, tag="2")]
6158    pub file: ::core::option::Option<File>,
6159    #[prost(uint64, tag="3")]
6160    pub content_size: u64,
6161    /// e.g., "png", "jpeg", "webp", etc.
6162    #[prost(string, tag="4")]
6163    pub format: ::prost::alloc::string::String,
6164}
6165#[derive(serde::Serialize, serde::Deserialize)]
6166#[derive(Clone, PartialEq, ::prost::Message)]
6167pub struct ImageChunk {
6168    #[prost(uint64, tag="1")]
6169    pub image_id: u64,
6170    #[prost(bytes="vec", tag="2")]
6171    pub data: ::prost::alloc::vec::Vec<u8>,
6172}
6173#[derive(serde::Serialize, serde::Deserialize)]
6174#[derive(Clone, PartialEq, ::prost::Message)]
6175pub struct GetNotifications {
6176    #[prost(uint64, optional, tag="1")]
6177    pub before_id: ::core::option::Option<u64>,
6178}
6179#[derive(serde::Serialize, serde::Deserialize)]
6180#[derive(Clone, PartialEq, ::prost::Message)]
6181pub struct AddNotification {
6182    #[prost(message, optional, tag="1")]
6183    pub notification: ::core::option::Option<Notification>,
6184}
6185#[derive(serde::Serialize, serde::Deserialize)]
6186#[derive(Clone, PartialEq, ::prost::Message)]
6187pub struct GetNotificationsResponse {
6188    #[prost(message, repeated, tag="1")]
6189    pub notifications: ::prost::alloc::vec::Vec<Notification>,
6190    #[prost(bool, tag="2")]
6191    pub done: bool,
6192}
6193#[derive(serde::Serialize, serde::Deserialize)]
6194#[derive(Clone, PartialEq, ::prost::Message)]
6195pub struct DeleteNotification {
6196    #[prost(uint64, tag="1")]
6197    pub notification_id: u64,
6198}
6199#[derive(serde::Serialize, serde::Deserialize)]
6200#[derive(Clone, PartialEq, ::prost::Message)]
6201pub struct UpdateNotification {
6202    #[prost(message, optional, tag="1")]
6203    pub notification: ::core::option::Option<Notification>,
6204}
6205#[derive(serde::Serialize, serde::Deserialize)]
6206#[derive(Clone, PartialEq, ::prost::Message)]
6207pub struct MarkNotificationRead {
6208    #[prost(uint64, tag="1")]
6209    pub notification_id: u64,
6210}
6211#[derive(serde::Serialize, serde::Deserialize)]
6212#[derive(Clone, PartialEq, ::prost::Message)]
6213pub struct Notification {
6214    #[prost(uint64, tag="1")]
6215    pub id: u64,
6216    #[prost(uint64, tag="2")]
6217    pub timestamp: u64,
6218    #[prost(string, tag="3")]
6219    pub kind: ::prost::alloc::string::String,
6220    #[prost(uint64, optional, tag="4")]
6221    pub entity_id: ::core::option::Option<u64>,
6222    #[prost(string, tag="5")]
6223    pub content: ::prost::alloc::string::String,
6224    #[prost(bool, tag="6")]
6225    pub is_read: bool,
6226    #[prost(bool, optional, tag="7")]
6227    pub response: ::core::option::Option<bool>,
6228}
6229#[derive(serde::Serialize, serde::Deserialize)]
6230#[derive(Clone, PartialEq, ::prost::Message)]
6231pub struct ListToolchains {
6232    #[prost(uint64, tag="1")]
6233    pub project_id: u64,
6234    #[prost(uint64, tag="2")]
6235    pub worktree_id: u64,
6236    #[prost(string, tag="3")]
6237    pub language_name: ::prost::alloc::string::String,
6238    #[prost(string, optional, tag="4")]
6239    pub path: ::core::option::Option<::prost::alloc::string::String>,
6240}
6241#[derive(serde::Serialize, serde::Deserialize)]
6242#[derive(Clone, PartialEq, ::prost::Message)]
6243pub struct Toolchain {
6244    #[prost(string, tag="1")]
6245    pub name: ::prost::alloc::string::String,
6246    #[prost(string, tag="2")]
6247    pub path: ::prost::alloc::string::String,
6248    #[prost(string, tag="3")]
6249    pub raw_json: ::prost::alloc::string::String,
6250}
6251#[derive(serde::Serialize, serde::Deserialize)]
6252#[derive(Clone, PartialEq, ::prost::Message)]
6253pub struct ToolchainGroup {
6254    #[prost(uint64, tag="1")]
6255    pub start_index: u64,
6256    #[prost(string, tag="2")]
6257    pub name: ::prost::alloc::string::String,
6258}
6259#[derive(serde::Serialize, serde::Deserialize)]
6260#[derive(Clone, PartialEq, ::prost::Message)]
6261pub struct ListToolchainsResponse {
6262    #[prost(message, repeated, tag="1")]
6263    pub toolchains: ::prost::alloc::vec::Vec<Toolchain>,
6264    #[prost(bool, tag="2")]
6265    pub has_values: bool,
6266    #[prost(message, repeated, tag="3")]
6267    pub groups: ::prost::alloc::vec::Vec<ToolchainGroup>,
6268    #[prost(string, optional, tag="4")]
6269    pub relative_worktree_path: ::core::option::Option<::prost::alloc::string::String>,
6270}
6271#[derive(serde::Serialize, serde::Deserialize)]
6272#[derive(Clone, PartialEq, ::prost::Message)]
6273pub struct ActivateToolchain {
6274    #[prost(uint64, tag="1")]
6275    pub project_id: u64,
6276    #[prost(uint64, tag="2")]
6277    pub worktree_id: u64,
6278    #[prost(message, optional, tag="3")]
6279    pub toolchain: ::core::option::Option<Toolchain>,
6280    #[prost(string, tag="4")]
6281    pub language_name: ::prost::alloc::string::String,
6282    #[prost(string, optional, tag="5")]
6283    pub path: ::core::option::Option<::prost::alloc::string::String>,
6284}
6285#[derive(serde::Serialize, serde::Deserialize)]
6286#[derive(Clone, PartialEq, ::prost::Message)]
6287pub struct ActiveToolchain {
6288    #[prost(uint64, tag="1")]
6289    pub project_id: u64,
6290    #[prost(uint64, tag="2")]
6291    pub worktree_id: u64,
6292    #[prost(string, tag="3")]
6293    pub language_name: ::prost::alloc::string::String,
6294    #[prost(string, optional, tag="4")]
6295    pub path: ::core::option::Option<::prost::alloc::string::String>,
6296}
6297#[derive(serde::Serialize, serde::Deserialize)]
6298#[derive(Clone, PartialEq, ::prost::Message)]
6299pub struct ActiveToolchainResponse {
6300    #[prost(message, optional, tag="1")]
6301    pub toolchain: ::core::option::Option<Toolchain>,
6302}
6303#[derive(serde::Serialize, serde::Deserialize)]
6304#[derive(Clone, PartialEq, ::prost::Message)]
6305pub struct ResolveToolchain {
6306    #[prost(uint64, tag="1")]
6307    pub project_id: u64,
6308    #[prost(string, tag="2")]
6309    pub abs_path: ::prost::alloc::string::String,
6310    #[prost(string, tag="3")]
6311    pub language_name: ::prost::alloc::string::String,
6312}
6313#[derive(serde::Serialize, serde::Deserialize)]
6314#[derive(Clone, PartialEq, ::prost::Message)]
6315pub struct ResolveToolchainResponse {
6316    #[prost(oneof="resolve_toolchain_response::Response", tags="1, 2")]
6317    pub response: ::core::option::Option<resolve_toolchain_response::Response>,
6318}
6319/// Nested message and enum types in `ResolveToolchainResponse`.
6320pub mod resolve_toolchain_response {
6321    #[derive(serde::Serialize, serde::Deserialize)]
6322    #[derive(Clone, PartialEq, ::prost::Oneof)]
6323    pub enum Response {
6324        #[prost(message, tag="1")]
6325        Toolchain(super::Toolchain),
6326        #[prost(string, tag="2")]
6327        Error(::prost::alloc::string::String),
6328    }
6329}
6330// Looking for a number? Search "// current max"
6331
6332#[derive(serde::Serialize, serde::Deserialize)]
6333#[derive(Clone, PartialEq, ::prost::Message)]
6334pub struct Envelope {
6335    #[prost(uint32, tag="1")]
6336    pub id: u32,
6337    #[prost(uint32, optional, tag="2")]
6338    pub responding_to: ::core::option::Option<u32>,
6339    #[prost(message, optional, tag="3")]
6340    pub original_sender_id: ::core::option::Option<PeerId>,
6341    #[prost(uint32, optional, tag="266")]
6342    pub ack_id: ::core::option::Option<u32>,
6343    #[prost(oneof="envelope::Payload", tags="4, 5, 6, 7, 8, 165, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 237, 238, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 291, 292, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 207, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 147, 349, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 162, 163, 170, 171, 172, 173, 174, 208, 186, 187, 196, 198, 199, 203, 204, 209, 210, 211, 212, 213, 232, 233, 214, 215, 216, 217, 218, 219, 220, 222, 223, 241, 242, 243, 244, 245, 257, 258, 260, 261, 262, 263, 264, 265, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 282, 283, 284, 285, 286, 287, 288, 289, 290, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 397, 398, 399, 400, 401, 402, 403, 404, 405")]
6344    pub payload: ::core::option::Option<envelope::Payload>,
6345}
6346/// Nested message and enum types in `Envelope`.
6347pub mod envelope {
6348    #[derive(serde::Serialize, serde::Deserialize)]
6349    #[derive(Clone, PartialEq, ::prost::Oneof)]
6350    pub enum Payload {
6351        #[prost(message, tag="4")]
6352        Hello(super::Hello),
6353        #[prost(message, tag="5")]
6354        Ack(super::Ack),
6355        #[prost(message, tag="6")]
6356        Error(super::Error),
6357        #[prost(message, tag="7")]
6358        Ping(super::Ping),
6359        #[prost(message, tag="8")]
6360        Test(super::Test),
6361        #[prost(message, tag="165")]
6362        EndStream(super::EndStream),
6363        #[prost(message, tag="9")]
6364        CreateRoom(super::CreateRoom),
6365        #[prost(message, tag="10")]
6366        CreateRoomResponse(super::CreateRoomResponse),
6367        #[prost(message, tag="11")]
6368        JoinRoom(super::JoinRoom),
6369        #[prost(message, tag="12")]
6370        JoinRoomResponse(super::JoinRoomResponse),
6371        #[prost(message, tag="13")]
6372        RejoinRoom(super::RejoinRoom),
6373        #[prost(message, tag="14")]
6374        RejoinRoomResponse(super::RejoinRoomResponse),
6375        #[prost(message, tag="15")]
6376        LeaveRoom(super::LeaveRoom),
6377        #[prost(message, tag="16")]
6378        Call(super::Call),
6379        #[prost(message, tag="17")]
6380        IncomingCall(super::IncomingCall),
6381        #[prost(message, tag="18")]
6382        CallCanceled(super::CallCanceled),
6383        #[prost(message, tag="19")]
6384        CancelCall(super::CancelCall),
6385        #[prost(message, tag="20")]
6386        DeclineCall(super::DeclineCall),
6387        #[prost(message, tag="21")]
6388        UpdateParticipantLocation(super::UpdateParticipantLocation),
6389        #[prost(message, tag="22")]
6390        RoomUpdated(super::RoomUpdated),
6391        #[prost(message, tag="23")]
6392        ShareProject(super::ShareProject),
6393        #[prost(message, tag="24")]
6394        ShareProjectResponse(super::ShareProjectResponse),
6395        #[prost(message, tag="25")]
6396        UnshareProject(super::UnshareProject),
6397        #[prost(message, tag="26")]
6398        JoinProject(super::JoinProject),
6399        #[prost(message, tag="27")]
6400        JoinProjectResponse(super::JoinProjectResponse),
6401        #[prost(message, tag="28")]
6402        LeaveProject(super::LeaveProject),
6403        #[prost(message, tag="29")]
6404        AddProjectCollaborator(super::AddProjectCollaborator),
6405        #[prost(message, tag="30")]
6406        UpdateProjectCollaborator(super::UpdateProjectCollaborator),
6407        #[prost(message, tag="31")]
6408        RemoveProjectCollaborator(super::RemoveProjectCollaborator),
6409        #[prost(message, tag="32")]
6410        GetDefinition(super::GetDefinition),
6411        #[prost(message, tag="33")]
6412        GetDefinitionResponse(super::GetDefinitionResponse),
6413        #[prost(message, tag="237")]
6414        GetDeclaration(super::GetDeclaration),
6415        #[prost(message, tag="238")]
6416        GetDeclarationResponse(super::GetDeclarationResponse),
6417        #[prost(message, tag="34")]
6418        GetTypeDefinition(super::GetTypeDefinition),
6419        #[prost(message, tag="35")]
6420        GetTypeDefinitionResponse(super::GetTypeDefinitionResponse),
6421        #[prost(message, tag="36")]
6422        GetReferences(super::GetReferences),
6423        #[prost(message, tag="37")]
6424        GetReferencesResponse(super::GetReferencesResponse),
6425        #[prost(message, tag="38")]
6426        GetDocumentHighlights(super::GetDocumentHighlights),
6427        #[prost(message, tag="39")]
6428        GetDocumentHighlightsResponse(super::GetDocumentHighlightsResponse),
6429        #[prost(message, tag="40")]
6430        GetProjectSymbols(super::GetProjectSymbols),
6431        #[prost(message, tag="41")]
6432        GetProjectSymbolsResponse(super::GetProjectSymbolsResponse),
6433        #[prost(message, tag="42")]
6434        OpenBufferForSymbol(super::OpenBufferForSymbol),
6435        #[prost(message, tag="43")]
6436        OpenBufferForSymbolResponse(super::OpenBufferForSymbolResponse),
6437        #[prost(message, tag="44")]
6438        UpdateProject(super::UpdateProject),
6439        #[prost(message, tag="45")]
6440        UpdateWorktree(super::UpdateWorktree),
6441        #[prost(message, tag="46")]
6442        CreateProjectEntry(super::CreateProjectEntry),
6443        #[prost(message, tag="47")]
6444        RenameProjectEntry(super::RenameProjectEntry),
6445        #[prost(message, tag="48")]
6446        CopyProjectEntry(super::CopyProjectEntry),
6447        #[prost(message, tag="49")]
6448        DeleteProjectEntry(super::DeleteProjectEntry),
6449        #[prost(message, tag="50")]
6450        ProjectEntryResponse(super::ProjectEntryResponse),
6451        #[prost(message, tag="51")]
6452        ExpandProjectEntry(super::ExpandProjectEntry),
6453        #[prost(message, tag="52")]
6454        ExpandProjectEntryResponse(super::ExpandProjectEntryResponse),
6455        #[prost(message, tag="291")]
6456        ExpandAllForProjectEntry(super::ExpandAllForProjectEntry),
6457        #[prost(message, tag="292")]
6458        ExpandAllForProjectEntryResponse(super::ExpandAllForProjectEntryResponse),
6459        #[prost(message, tag="53")]
6460        UpdateDiagnosticSummary(super::UpdateDiagnosticSummary),
6461        #[prost(message, tag="54")]
6462        StartLanguageServer(super::StartLanguageServer),
6463        #[prost(message, tag="55")]
6464        UpdateLanguageServer(super::UpdateLanguageServer),
6465        #[prost(message, tag="56")]
6466        OpenBufferById(super::OpenBufferById),
6467        #[prost(message, tag="57")]
6468        OpenBufferByPath(super::OpenBufferByPath),
6469        #[prost(message, tag="58")]
6470        OpenBufferResponse(super::OpenBufferResponse),
6471        #[prost(message, tag="59")]
6472        CreateBufferForPeer(super::CreateBufferForPeer),
6473        #[prost(message, tag="60")]
6474        UpdateBuffer(super::UpdateBuffer),
6475        #[prost(message, tag="61")]
6476        UpdateBufferFile(super::UpdateBufferFile),
6477        #[prost(message, tag="62")]
6478        SaveBuffer(super::SaveBuffer),
6479        #[prost(message, tag="63")]
6480        BufferSaved(super::BufferSaved),
6481        #[prost(message, tag="64")]
6482        BufferReloaded(super::BufferReloaded),
6483        #[prost(message, tag="65")]
6484        ReloadBuffers(super::ReloadBuffers),
6485        #[prost(message, tag="66")]
6486        ReloadBuffersResponse(super::ReloadBuffersResponse),
6487        #[prost(message, tag="67")]
6488        SynchronizeBuffers(super::SynchronizeBuffers),
6489        #[prost(message, tag="68")]
6490        SynchronizeBuffersResponse(super::SynchronizeBuffersResponse),
6491        #[prost(message, tag="69")]
6492        FormatBuffers(super::FormatBuffers),
6493        #[prost(message, tag="70")]
6494        FormatBuffersResponse(super::FormatBuffersResponse),
6495        #[prost(message, tag="71")]
6496        GetCompletions(super::GetCompletions),
6497        #[prost(message, tag="72")]
6498        GetCompletionsResponse(super::GetCompletionsResponse),
6499        #[prost(message, tag="73")]
6500        ResolveCompletionDocumentation(super::ResolveCompletionDocumentation),
6501        #[prost(message, tag="74")]
6502        ResolveCompletionDocumentationResponse(super::ResolveCompletionDocumentationResponse),
6503        #[prost(message, tag="75")]
6504        ApplyCompletionAdditionalEdits(super::ApplyCompletionAdditionalEdits),
6505        #[prost(message, tag="76")]
6506        ApplyCompletionAdditionalEditsResponse(super::ApplyCompletionAdditionalEditsResponse),
6507        #[prost(message, tag="77")]
6508        GetCodeActions(super::GetCodeActions),
6509        #[prost(message, tag="78")]
6510        GetCodeActionsResponse(super::GetCodeActionsResponse),
6511        #[prost(message, tag="79")]
6512        GetHover(super::GetHover),
6513        #[prost(message, tag="80")]
6514        GetHoverResponse(super::GetHoverResponse),
6515        #[prost(message, tag="81")]
6516        ApplyCodeAction(super::ApplyCodeAction),
6517        #[prost(message, tag="82")]
6518        ApplyCodeActionResponse(super::ApplyCodeActionResponse),
6519        #[prost(message, tag="83")]
6520        PrepareRename(super::PrepareRename),
6521        #[prost(message, tag="84")]
6522        PrepareRenameResponse(super::PrepareRenameResponse),
6523        #[prost(message, tag="85")]
6524        PerformRename(super::PerformRename),
6525        #[prost(message, tag="86")]
6526        PerformRenameResponse(super::PerformRenameResponse),
6527        #[prost(message, tag="89")]
6528        UpdateContacts(super::UpdateContacts),
6529        #[prost(message, tag="90")]
6530        UpdateInviteInfo(super::UpdateInviteInfo),
6531        #[prost(message, tag="91")]
6532        ShowContacts(super::ShowContacts),
6533        #[prost(message, tag="92")]
6534        GetUsers(super::GetUsers),
6535        #[prost(message, tag="93")]
6536        FuzzySearchUsers(super::FuzzySearchUsers),
6537        #[prost(message, tag="94")]
6538        UsersResponse(super::UsersResponse),
6539        #[prost(message, tag="95")]
6540        RequestContact(super::RequestContact),
6541        #[prost(message, tag="96")]
6542        RespondToContactRequest(super::RespondToContactRequest),
6543        #[prost(message, tag="97")]
6544        RemoveContact(super::RemoveContact),
6545        #[prost(message, tag="98")]
6546        Follow(super::Follow),
6547        #[prost(message, tag="99")]
6548        FollowResponse(super::FollowResponse),
6549        #[prost(message, tag="100")]
6550        UpdateFollowers(super::UpdateFollowers),
6551        #[prost(message, tag="101")]
6552        Unfollow(super::Unfollow),
6553        #[prost(message, tag="104")]
6554        UpdateDiffBases(super::UpdateDiffBases),
6555        #[prost(message, tag="105")]
6556        OnTypeFormatting(super::OnTypeFormatting),
6557        #[prost(message, tag="106")]
6558        OnTypeFormattingResponse(super::OnTypeFormattingResponse),
6559        #[prost(message, tag="107")]
6560        UpdateWorktreeSettings(super::UpdateWorktreeSettings),
6561        #[prost(message, tag="108")]
6562        InlayHints(super::InlayHints),
6563        #[prost(message, tag="109")]
6564        InlayHintsResponse(super::InlayHintsResponse),
6565        #[prost(message, tag="110")]
6566        ResolveInlayHint(super::ResolveInlayHint),
6567        #[prost(message, tag="111")]
6568        ResolveInlayHintResponse(super::ResolveInlayHintResponse),
6569        #[prost(message, tag="112")]
6570        RefreshInlayHints(super::RefreshInlayHints),
6571        #[prost(message, tag="113")]
6572        CreateChannel(super::CreateChannel),
6573        #[prost(message, tag="114")]
6574        CreateChannelResponse(super::CreateChannelResponse),
6575        #[prost(message, tag="115")]
6576        InviteChannelMember(super::InviteChannelMember),
6577        #[prost(message, tag="116")]
6578        RemoveChannelMember(super::RemoveChannelMember),
6579        #[prost(message, tag="117")]
6580        RespondToChannelInvite(super::RespondToChannelInvite),
6581        #[prost(message, tag="118")]
6582        UpdateChannels(super::UpdateChannels),
6583        #[prost(message, tag="119")]
6584        JoinChannel(super::JoinChannel),
6585        #[prost(message, tag="120")]
6586        DeleteChannel(super::DeleteChannel),
6587        #[prost(message, tag="121")]
6588        GetChannelMembers(super::GetChannelMembers),
6589        #[prost(message, tag="122")]
6590        GetChannelMembersResponse(super::GetChannelMembersResponse),
6591        #[prost(message, tag="123")]
6592        SetChannelMemberRole(super::SetChannelMemberRole),
6593        #[prost(message, tag="124")]
6594        RenameChannel(super::RenameChannel),
6595        #[prost(message, tag="125")]
6596        RenameChannelResponse(super::RenameChannelResponse),
6597        #[prost(message, tag="207")]
6598        SubscribeToChannels(super::SubscribeToChannels),
6599        #[prost(message, tag="126")]
6600        JoinChannelBuffer(super::JoinChannelBuffer),
6601        #[prost(message, tag="127")]
6602        JoinChannelBufferResponse(super::JoinChannelBufferResponse),
6603        #[prost(message, tag="128")]
6604        UpdateChannelBuffer(super::UpdateChannelBuffer),
6605        #[prost(message, tag="129")]
6606        LeaveChannelBuffer(super::LeaveChannelBuffer),
6607        #[prost(message, tag="130")]
6608        UpdateChannelBufferCollaborators(super::UpdateChannelBufferCollaborators),
6609        #[prost(message, tag="131")]
6610        RejoinChannelBuffers(super::RejoinChannelBuffers),
6611        #[prost(message, tag="132")]
6612        RejoinChannelBuffersResponse(super::RejoinChannelBuffersResponse),
6613        #[prost(message, tag="133")]
6614        AckBufferOperation(super::AckBufferOperation),
6615        #[prost(message, tag="134")]
6616        JoinChannelChat(super::JoinChannelChat),
6617        #[prost(message, tag="135")]
6618        JoinChannelChatResponse(super::JoinChannelChatResponse),
6619        #[prost(message, tag="136")]
6620        LeaveChannelChat(super::LeaveChannelChat),
6621        #[prost(message, tag="137")]
6622        SendChannelMessage(super::SendChannelMessage),
6623        #[prost(message, tag="138")]
6624        SendChannelMessageResponse(super::SendChannelMessageResponse),
6625        #[prost(message, tag="139")]
6626        ChannelMessageSent(super::ChannelMessageSent),
6627        #[prost(message, tag="140")]
6628        GetChannelMessages(super::GetChannelMessages),
6629        #[prost(message, tag="141")]
6630        GetChannelMessagesResponse(super::GetChannelMessagesResponse),
6631        #[prost(message, tag="142")]
6632        RemoveChannelMessage(super::RemoveChannelMessage),
6633        #[prost(message, tag="143")]
6634        AckChannelMessage(super::AckChannelMessage),
6635        #[prost(message, tag="144")]
6636        GetChannelMessagesById(super::GetChannelMessagesById),
6637        #[prost(message, tag="147")]
6638        MoveChannel(super::MoveChannel),
6639        #[prost(message, tag="349")]
6640        ReorderChannel(super::ReorderChannel),
6641        #[prost(message, tag="148")]
6642        SetChannelVisibility(super::SetChannelVisibility),
6643        #[prost(message, tag="149")]
6644        AddNotification(super::AddNotification),
6645        #[prost(message, tag="150")]
6646        GetNotifications(super::GetNotifications),
6647        #[prost(message, tag="151")]
6648        GetNotificationsResponse(super::GetNotificationsResponse),
6649        #[prost(message, tag="152")]
6650        DeleteNotification(super::DeleteNotification),
6651        #[prost(message, tag="153")]
6652        MarkNotificationRead(super::MarkNotificationRead),
6653        #[prost(message, tag="154")]
6654        LspExtExpandMacro(super::LspExtExpandMacro),
6655        #[prost(message, tag="155")]
6656        LspExtExpandMacroResponse(super::LspExtExpandMacroResponse),
6657        #[prost(message, tag="156")]
6658        SetRoomParticipantRole(super::SetRoomParticipantRole),
6659        #[prost(message, tag="157")]
6660        UpdateUserChannels(super::UpdateUserChannels),
6661        #[prost(message, tag="162")]
6662        GetImplementation(super::GetImplementation),
6663        #[prost(message, tag="163")]
6664        GetImplementationResponse(super::GetImplementationResponse),
6665        #[prost(message, tag="170")]
6666        UpdateChannelMessage(super::UpdateChannelMessage),
6667        #[prost(message, tag="171")]
6668        ChannelMessageUpdate(super::ChannelMessageUpdate),
6669        #[prost(message, tag="172")]
6670        BlameBuffer(super::BlameBuffer),
6671        #[prost(message, tag="173")]
6672        BlameBufferResponse(super::BlameBufferResponse),
6673        #[prost(message, tag="174")]
6674        UpdateNotification(super::UpdateNotification),
6675        #[prost(message, tag="208")]
6676        RestartLanguageServers(super::RestartLanguageServers),
6677        #[prost(message, tag="186")]
6678        RejoinRemoteProjects(super::RejoinRemoteProjects),
6679        #[prost(message, tag="187")]
6680        RejoinRemoteProjectsResponse(super::RejoinRemoteProjectsResponse),
6681        #[prost(message, tag="196")]
6682        OpenNewBuffer(super::OpenNewBuffer),
6683        #[prost(message, tag="198")]
6684        GetSupermavenApiKey(super::GetSupermavenApiKey),
6685        #[prost(message, tag="199")]
6686        GetSupermavenApiKeyResponse(super::GetSupermavenApiKeyResponse),
6687        #[prost(message, tag="203")]
6688        TaskContextForLocation(super::TaskContextForLocation),
6689        #[prost(message, tag="204")]
6690        TaskContext(super::TaskContext),
6691        #[prost(message, tag="209")]
6692        LinkedEditingRange(super::LinkedEditingRange),
6693        #[prost(message, tag="210")]
6694        LinkedEditingRangeResponse(super::LinkedEditingRangeResponse),
6695        #[prost(message, tag="211")]
6696        AdvertiseContexts(super::AdvertiseContexts),
6697        #[prost(message, tag="212")]
6698        OpenContext(super::OpenContext),
6699        #[prost(message, tag="213")]
6700        OpenContextResponse(super::OpenContextResponse),
6701        #[prost(message, tag="232")]
6702        CreateContext(super::CreateContext),
6703        #[prost(message, tag="233")]
6704        CreateContextResponse(super::CreateContextResponse),
6705        #[prost(message, tag="214")]
6706        UpdateContext(super::UpdateContext),
6707        #[prost(message, tag="215")]
6708        SynchronizeContexts(super::SynchronizeContexts),
6709        #[prost(message, tag="216")]
6710        SynchronizeContextsResponse(super::SynchronizeContextsResponse),
6711        #[prost(message, tag="217")]
6712        GetSignatureHelp(super::GetSignatureHelp),
6713        #[prost(message, tag="218")]
6714        GetSignatureHelpResponse(super::GetSignatureHelpResponse),
6715        #[prost(message, tag="219")]
6716        ListRemoteDirectory(super::ListRemoteDirectory),
6717        #[prost(message, tag="220")]
6718        ListRemoteDirectoryResponse(super::ListRemoteDirectoryResponse),
6719        #[prost(message, tag="222")]
6720        AddWorktree(super::AddWorktree),
6721        #[prost(message, tag="223")]
6722        AddWorktreeResponse(super::AddWorktreeResponse),
6723        #[prost(message, tag="241")]
6724        LspExtSwitchSourceHeader(super::LspExtSwitchSourceHeader),
6725        #[prost(message, tag="242")]
6726        LspExtSwitchSourceHeaderResponse(super::LspExtSwitchSourceHeaderResponse),
6727        #[prost(message, tag="243")]
6728        FindSearchCandidates(super::FindSearchCandidates),
6729        #[prost(message, tag="244")]
6730        FindSearchCandidatesResponse(super::FindSearchCandidatesResponse),
6731        #[prost(message, tag="245")]
6732        CloseBuffer(super::CloseBuffer),
6733        #[prost(message, tag="257")]
6734        ShutdownRemoteServer(super::ShutdownRemoteServer),
6735        #[prost(message, tag="258")]
6736        RemoveWorktree(super::RemoveWorktree),
6737        #[prost(message, tag="260")]
6738        LanguageServerLog(super::LanguageServerLog),
6739        #[prost(message, tag="261")]
6740        Toast(super::Toast),
6741        #[prost(message, tag="262")]
6742        HideToast(super::HideToast),
6743        #[prost(message, tag="263")]
6744        OpenServerSettings(super::OpenServerSettings),
6745        #[prost(message, tag="264")]
6746        GetPermalinkToLine(super::GetPermalinkToLine),
6747        #[prost(message, tag="265")]
6748        GetPermalinkToLineResponse(super::GetPermalinkToLineResponse),
6749        #[prost(message, tag="267")]
6750        FlushBufferedMessages(super::FlushBufferedMessages),
6751        #[prost(message, tag="268")]
6752        LanguageServerPromptRequest(super::LanguageServerPromptRequest),
6753        #[prost(message, tag="269")]
6754        LanguageServerPromptResponse(super::LanguageServerPromptResponse),
6755        #[prost(message, tag="271")]
6756        GitBranchesResponse(super::GitBranchesResponse),
6757        #[prost(message, tag="272")]
6758        UpdateGitBranch(super::UpdateGitBranch),
6759        #[prost(message, tag="273")]
6760        ListToolchains(super::ListToolchains),
6761        #[prost(message, tag="274")]
6762        ListToolchainsResponse(super::ListToolchainsResponse),
6763        #[prost(message, tag="275")]
6764        ActivateToolchain(super::ActivateToolchain),
6765        #[prost(message, tag="276")]
6766        ActiveToolchain(super::ActiveToolchain),
6767        #[prost(message, tag="277")]
6768        ActiveToolchainResponse(super::ActiveToolchainResponse),
6769        #[prost(message, tag="278")]
6770        GetPathMetadata(super::GetPathMetadata),
6771        #[prost(message, tag="279")]
6772        GetPathMetadataResponse(super::GetPathMetadataResponse),
6773        #[prost(message, tag="282")]
6774        CancelLanguageServerWork(super::CancelLanguageServerWork),
6775        #[prost(message, tag="283")]
6776        LspExtOpenDocs(super::LspExtOpenDocs),
6777        #[prost(message, tag="284")]
6778        LspExtOpenDocsResponse(super::LspExtOpenDocsResponse),
6779        #[prost(message, tag="285")]
6780        SyncExtensions(super::SyncExtensions),
6781        #[prost(message, tag="286")]
6782        SyncExtensionsResponse(super::SyncExtensionsResponse),
6783        #[prost(message, tag="287")]
6784        InstallExtension(super::InstallExtension),
6785        #[prost(message, tag="288")]
6786        OpenUnstagedDiff(super::OpenUnstagedDiff),
6787        #[prost(message, tag="289")]
6788        OpenUnstagedDiffResponse(super::OpenUnstagedDiffResponse),
6789        #[prost(message, tag="290")]
6790        RegisterBufferWithLanguageServers(super::RegisterBufferWithLanguageServers),
6791        #[prost(message, tag="293")]
6792        Stage(super::Stage),
6793        #[prost(message, tag="294")]
6794        Unstage(super::Unstage),
6795        #[prost(message, tag="295")]
6796        Commit(super::Commit),
6797        #[prost(message, tag="296")]
6798        OpenCommitMessageBuffer(super::OpenCommitMessageBuffer),
6799        #[prost(message, tag="297")]
6800        OpenUncommittedDiff(super::OpenUncommittedDiff),
6801        #[prost(message, tag="298")]
6802        OpenUncommittedDiffResponse(super::OpenUncommittedDiffResponse),
6803        #[prost(message, tag="299")]
6804        SetIndexText(super::SetIndexText),
6805        #[prost(message, tag="300")]
6806        GitShow(super::GitShow),
6807        #[prost(message, tag="301")]
6808        GitReset(super::GitReset),
6809        #[prost(message, tag="302")]
6810        GitCommitDetails(super::GitCommitDetails),
6811        #[prost(message, tag="303")]
6812        GitCheckoutFiles(super::GitCheckoutFiles),
6813        #[prost(message, tag="304")]
6814        Push(super::Push),
6815        #[prost(message, tag="305")]
6816        Fetch(super::Fetch),
6817        #[prost(message, tag="306")]
6818        GetRemotes(super::GetRemotes),
6819        #[prost(message, tag="307")]
6820        GetRemotesResponse(super::GetRemotesResponse),
6821        #[prost(message, tag="308")]
6822        Pull(super::Pull),
6823        #[prost(message, tag="309")]
6824        ApplyCodeActionKind(super::ApplyCodeActionKind),
6825        #[prost(message, tag="310")]
6826        ApplyCodeActionKindResponse(super::ApplyCodeActionKindResponse),
6827        #[prost(message, tag="311")]
6828        RemoteMessageResponse(super::RemoteMessageResponse),
6829        #[prost(message, tag="312")]
6830        GitGetBranches(super::GitGetBranches),
6831        #[prost(message, tag="313")]
6832        GitCreateBranch(super::GitCreateBranch),
6833        #[prost(message, tag="314")]
6834        GitChangeBranch(super::GitChangeBranch),
6835        #[prost(message, tag="315")]
6836        CheckForPushedCommits(super::CheckForPushedCommits),
6837        #[prost(message, tag="316")]
6838        CheckForPushedCommitsResponse(super::CheckForPushedCommitsResponse),
6839        #[prost(message, tag="317")]
6840        AskPassRequest(super::AskPassRequest),
6841        #[prost(message, tag="318")]
6842        AskPassResponse(super::AskPassResponse),
6843        #[prost(message, tag="319")]
6844        GitDiff(super::GitDiff),
6845        #[prost(message, tag="320")]
6846        GitDiffResponse(super::GitDiffResponse),
6847        #[prost(message, tag="321")]
6848        GitInit(super::GitInit),
6849        #[prost(message, tag="322")]
6850        CodeLens(super::CodeLens),
6851        #[prost(message, tag="323")]
6852        GetCodeLens(super::GetCodeLens),
6853        #[prost(message, tag="324")]
6854        GetCodeLensResponse(super::GetCodeLensResponse),
6855        #[prost(message, tag="325")]
6856        RefreshCodeLens(super::RefreshCodeLens),
6857        #[prost(message, tag="326")]
6858        ToggleBreakpoint(super::ToggleBreakpoint),
6859        #[prost(message, tag="327")]
6860        BreakpointsForFile(super::BreakpointsForFile),
6861        #[prost(message, tag="328")]
6862        UpdateRepository(super::UpdateRepository),
6863        #[prost(message, tag="329")]
6864        RemoveRepository(super::RemoveRepository),
6865        #[prost(message, tag="330")]
6866        GetDocumentSymbols(super::GetDocumentSymbols),
6867        #[prost(message, tag="331")]
6868        GetDocumentSymbolsResponse(super::GetDocumentSymbolsResponse),
6869        #[prost(message, tag="334")]
6870        LoadCommitDiff(super::LoadCommitDiff),
6871        #[prost(message, tag="335")]
6872        LoadCommitDiffResponse(super::LoadCommitDiffResponse),
6873        #[prost(message, tag="336")]
6874        StopLanguageServers(super::StopLanguageServers),
6875        #[prost(message, tag="337")]
6876        LspExtRunnables(super::LspExtRunnables),
6877        #[prost(message, tag="338")]
6878        LspExtRunnablesResponse(super::LspExtRunnablesResponse),
6879        #[prost(message, tag="339")]
6880        GetDebugAdapterBinary(super::GetDebugAdapterBinary),
6881        #[prost(message, tag="340")]
6882        DebugAdapterBinary(super::DebugAdapterBinary),
6883        #[prost(message, tag="341")]
6884        RunDebugLocators(super::RunDebugLocators),
6885        #[prost(message, tag="342")]
6886        DebugRequest(super::DebugRequest),
6887        #[prost(message, tag="343")]
6888        LspExtGoToParentModule(super::LspExtGoToParentModule),
6889        #[prost(message, tag="344")]
6890        LspExtGoToParentModuleResponse(super::LspExtGoToParentModuleResponse),
6891        #[prost(message, tag="345")]
6892        LspExtCancelFlycheck(super::LspExtCancelFlycheck),
6893        #[prost(message, tag="346")]
6894        LspExtRunFlycheck(super::LspExtRunFlycheck),
6895        #[prost(message, tag="347")]
6896        LspExtClearFlycheck(super::LspExtClearFlycheck),
6897        #[prost(message, tag="348")]
6898        LogToDebugConsole(super::LogToDebugConsole),
6899        #[prost(message, tag="350")]
6900        GetDocumentDiagnostics(super::GetDocumentDiagnostics),
6901        #[prost(message, tag="351")]
6902        GetDocumentDiagnosticsResponse(super::GetDocumentDiagnosticsResponse),
6903        #[prost(message, tag="352")]
6904        PullWorkspaceDiagnostics(super::PullWorkspaceDiagnostics),
6905        #[prost(message, tag="353")]
6906        GetDocumentColor(super::GetDocumentColor),
6907        #[prost(message, tag="354")]
6908        GetDocumentColorResponse(super::GetDocumentColorResponse),
6909        #[prost(message, tag="355")]
6910        GetColorPresentation(super::GetColorPresentation),
6911        #[prost(message, tag="356")]
6912        GetColorPresentationResponse(super::GetColorPresentationResponse),
6913        #[prost(message, tag="357")]
6914        Stash(super::Stash),
6915        #[prost(message, tag="358")]
6916        StashPop(super::StashPop),
6917        #[prost(message, tag="359")]
6918        GetDefaultBranch(super::GetDefaultBranch),
6919        #[prost(message, tag="360")]
6920        GetDefaultBranchResponse(super::GetDefaultBranchResponse),
6921        #[prost(message, tag="361")]
6922        GetCrashFiles(super::GetCrashFiles),
6923        #[prost(message, tag="362")]
6924        GetCrashFilesResponse(super::GetCrashFilesResponse),
6925        #[prost(message, tag="363")]
6926        GitClone(super::GitClone),
6927        #[prost(message, tag="364")]
6928        GitCloneResponse(super::GitCloneResponse),
6929        #[prost(message, tag="365")]
6930        LspQuery(super::LspQuery),
6931        #[prost(message, tag="366")]
6932        LspQueryResponse(super::LspQueryResponse),
6933        #[prost(message, tag="367")]
6934        ToggleLspLogs(super::ToggleLspLogs),
6935        #[prost(message, tag="368")]
6936        UpdateUserSettings(super::UpdateUserSettings),
6937        #[prost(message, tag="369")]
6938        GetProcesses(super::GetProcesses),
6939        #[prost(message, tag="370")]
6940        GetProcessesResponse(super::GetProcessesResponse),
6941        #[prost(message, tag="371")]
6942        ResolveToolchain(super::ResolveToolchain),
6943        #[prost(message, tag="372")]
6944        ResolveToolchainResponse(super::ResolveToolchainResponse),
6945        #[prost(message, tag="373")]
6946        GetAgentServerCommand(super::GetAgentServerCommand),
6947        #[prost(message, tag="374")]
6948        AgentServerCommand(super::AgentServerCommand),
6949        #[prost(message, tag="375")]
6950        ExternalAgentsUpdated(super::ExternalAgentsUpdated),
6951        #[prost(message, tag="376")]
6952        ExternalAgentLoadingStatusUpdated(super::ExternalAgentLoadingStatusUpdated),
6953        #[prost(message, tag="377")]
6954        NewExternalAgentVersionAvailable(super::NewExternalAgentVersionAvailable),
6955        #[prost(message, tag="378")]
6956        StashDrop(super::StashDrop),
6957        #[prost(message, tag="379")]
6958        StashApply(super::StashApply),
6959        #[prost(message, tag="380")]
6960        GitRenameBranch(super::GitRenameBranch),
6961        #[prost(message, tag="381")]
6962        RemoteStarted(super::RemoteStarted),
6963        #[prost(message, tag="382")]
6964        GetDirectoryEnvironment(super::GetDirectoryEnvironment),
6965        #[prost(message, tag="383")]
6966        DirectoryEnvironment(super::DirectoryEnvironment),
6967        #[prost(message, tag="384")]
6968        GetTreeDiff(super::GetTreeDiff),
6969        #[prost(message, tag="385")]
6970        GetTreeDiffResponse(super::GetTreeDiffResponse),
6971        #[prost(message, tag="386")]
6972        GetBlobContent(super::GetBlobContent),
6973        #[prost(message, tag="387")]
6974        GetBlobContentResponse(super::GetBlobContentResponse),
6975        #[prost(message, tag="388")]
6976        GitWorktreesResponse(super::GitWorktreesResponse),
6977        #[prost(message, tag="389")]
6978        GitGetWorktrees(super::GitGetWorktrees),
6979        #[prost(message, tag="390")]
6980        GitCreateWorktree(super::GitCreateWorktree),
6981        #[prost(message, tag="391")]
6982        OpenImageByPath(super::OpenImageByPath),
6983        #[prost(message, tag="392")]
6984        OpenImageResponse(super::OpenImageResponse),
6985        #[prost(message, tag="393")]
6986        CreateImageForPeer(super::CreateImageForPeer),
6987        #[prost(message, tag="397")]
6988        GitFileHistory(super::GitFileHistory),
6989        #[prost(message, tag="398")]
6990        GitFileHistoryResponse(super::GitFileHistoryResponse),
6991        #[prost(message, tag="399")]
6992        RunGitHook(super::RunGitHook),
6993        #[prost(message, tag="400")]
6994        GitDeleteBranch(super::GitDeleteBranch),
6995        #[prost(message, tag="401")]
6996        ExternalExtensionAgentsUpdated(super::ExternalExtensionAgentsUpdated),
6997        #[prost(message, tag="402")]
6998        GitCreateRemote(super::GitCreateRemote),
6999        #[prost(message, tag="403")]
7000        GitRemoveRemote(super::GitRemoveRemote),
7001        #[prost(message, tag="404")]
7002        TrustWorktrees(super::TrustWorktrees),
7003        /// current max
7004        #[prost(message, tag="405")]
7005        RestrictWorktrees(super::RestrictWorktrees),
7006    }
7007}
7008#[derive(serde::Serialize, serde::Deserialize)]
7009#[derive(Clone, PartialEq, ::prost::Message)]
7010pub struct Hello {
7011    #[prost(message, optional, tag="1")]
7012    pub peer_id: ::core::option::Option<PeerId>,
7013}
7014#[derive(serde::Serialize, serde::Deserialize)]
7015#[derive(Clone, PartialEq, ::prost::Message)]
7016pub struct Ping {
7017}
7018#[derive(serde::Serialize, serde::Deserialize)]
7019#[derive(Clone, PartialEq, ::prost::Message)]
7020pub struct Ack {
7021}
7022#[derive(serde::Serialize, serde::Deserialize)]
7023#[derive(Clone, PartialEq, ::prost::Message)]
7024pub struct Error {
7025    #[prost(string, tag="1")]
7026    pub message: ::prost::alloc::string::String,
7027    #[prost(enumeration="ErrorCode", tag="2")]
7028    pub code: i32,
7029    #[prost(string, repeated, tag="3")]
7030    pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
7031}
7032#[derive(serde::Serialize, serde::Deserialize)]
7033#[derive(Clone, PartialEq, ::prost::Message)]
7034pub struct EndStream {
7035}
7036#[derive(serde::Serialize, serde::Deserialize)]
7037#[derive(Clone, PartialEq, ::prost::Message)]
7038pub struct Test {
7039    #[prost(uint64, tag="1")]
7040    pub id: u64,
7041}
7042#[derive(serde::Serialize, serde::Deserialize)]
7043#[derive(Clone, PartialEq, ::prost::Message)]
7044pub struct FlushBufferedMessages {
7045}
7046#[derive(serde::Serialize, serde::Deserialize)]
7047#[derive(Clone, PartialEq, ::prost::Message)]
7048pub struct FlushBufferedMessagesResponse {
7049}
7050#[derive(serde::Serialize, serde::Deserialize)]
7051#[derive(Clone, PartialEq, ::prost::Message)]
7052pub struct RemoteStarted {
7053}
7054#[derive(serde::Serialize, serde::Deserialize)]
7055#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
7056#[repr(i32)]
7057pub enum ErrorCode {
7058    Internal = 0,
7059    NoSuchChannel = 1,
7060    Disconnected = 2,
7061    SignedOut = 3,
7062    UpgradeRequired = 4,
7063    Forbidden = 5,
7064    NeedsCla = 7,
7065    NotARootChannel = 8,
7066    BadPublicNesting = 9,
7067    CircularNesting = 10,
7068    WrongMoveTarget = 11,
7069    UnsharedItem = 12,
7070    NoSuchProject = 13,
7071    DevServerProjectPathDoesNotExist = 16,
7072    RemoteUpgradeRequired = 17,
7073    RateLimitExceeded = 18,
7074    CommitFailed = 19,
7075}