// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.8 // protoc v7.35.1 // source: chat.proto package l_ai_chat_proto import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" unsafe "unsafe" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // AuthorType is the kind of identity a message author has. HUMAN covers // internal users (the same author_id across Web and Telegram), AGENT covers // l-ai agents, SYSTEM covers service-internal messages, INTEGRATION covers // bridge/external systems. type AuthorType int32 const ( AuthorType_AUTHOR_TYPE_UNSPECIFIED AuthorType = 0 AuthorType_AUTHOR_TYPE_HUMAN AuthorType = 1 AuthorType_AUTHOR_TYPE_AGENT AuthorType = 2 AuthorType_AUTHOR_TYPE_SYSTEM AuthorType = 3 AuthorType_AUTHOR_TYPE_INTEGRATION AuthorType = 4 ) // Enum value maps for AuthorType. var ( AuthorType_name = map[int32]string{ 0: "AUTHOR_TYPE_UNSPECIFIED", 1: "AUTHOR_TYPE_HUMAN", 2: "AUTHOR_TYPE_AGENT", 3: "AUTHOR_TYPE_SYSTEM", 4: "AUTHOR_TYPE_INTEGRATION", } AuthorType_value = map[string]int32{ "AUTHOR_TYPE_UNSPECIFIED": 0, "AUTHOR_TYPE_HUMAN": 1, "AUTHOR_TYPE_AGENT": 2, "AUTHOR_TYPE_SYSTEM": 3, "AUTHOR_TYPE_INTEGRATION": 4, } ) func (x AuthorType) Enum() *AuthorType { p := new(AuthorType) *p = x return p } func (x AuthorType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AuthorType) Descriptor() protoreflect.EnumDescriptor { return file_chat_proto_enumTypes[0].Descriptor() } func (AuthorType) Type() protoreflect.EnumType { return &file_chat_proto_enumTypes[0] } func (x AuthorType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AuthorType.Descriptor instead. func (AuthorType) EnumDescriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{0} } // MessageSource is the channel through which a message entered the system. type MessageSource int32 const ( MessageSource_MESSAGE_SOURCE_UNSPECIFIED MessageSource = 0 MessageSource_MESSAGE_SOURCE_WEB MessageSource = 1 MessageSource_MESSAGE_SOURCE_TELEGRAM MessageSource = 2 MessageSource_MESSAGE_SOURCE_AGENT MessageSource = 3 MessageSource_MESSAGE_SOURCE_SYSTEM MessageSource = 4 ) // Enum value maps for MessageSource. var ( MessageSource_name = map[int32]string{ 0: "MESSAGE_SOURCE_UNSPECIFIED", 1: "MESSAGE_SOURCE_WEB", 2: "MESSAGE_SOURCE_TELEGRAM", 3: "MESSAGE_SOURCE_AGENT", 4: "MESSAGE_SOURCE_SYSTEM", } MessageSource_value = map[string]int32{ "MESSAGE_SOURCE_UNSPECIFIED": 0, "MESSAGE_SOURCE_WEB": 1, "MESSAGE_SOURCE_TELEGRAM": 2, "MESSAGE_SOURCE_AGENT": 3, "MESSAGE_SOURCE_SYSTEM": 4, } ) func (x MessageSource) Enum() *MessageSource { p := new(MessageSource) *p = x return p } func (x MessageSource) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MessageSource) Descriptor() protoreflect.EnumDescriptor { return file_chat_proto_enumTypes[1].Descriptor() } func (MessageSource) Type() protoreflect.EnumType { return &file_chat_proto_enumTypes[1] } func (x MessageSource) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MessageSource.Descriptor instead. func (MessageSource) EnumDescriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{1} } type Topic struct { state protoimpl.MessageState `protogen:"open.v1"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID Slug string `protobuf:"bytes,2,opt,name=slug,proto3" json:"slug,omitempty"` // stable, unique, e.g. "security" DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // e.g. "Security" CreatedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Topic) Reset() { *x = Topic{} mi := &file_chat_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Topic) String() string { return protoimpl.X.MessageStringOf(x) } func (*Topic) ProtoMessage() {} func (x *Topic) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Topic.ProtoReflect.Descriptor instead. func (*Topic) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{0} } func (x *Topic) GetId() string { if x != nil { return x.Id } return "" } func (x *Topic) GetSlug() string { if x != nil { return x.Slug } return "" } func (x *Topic) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *Topic) GetCreatedAt() *timestamppb.Timestamp { if x != nil { return x.CreatedAt } return nil } // AgentDelegation is optional machine-readable routing metadata on AGENT // messages. Text content remains the human-readable task description; // delegation only carries deterministic target + kind. Delegation is NOT // human approval and does NOT authorize mutation. type AgentDelegation struct { state protoimpl.MessageState `protogen:"open.v1"` // Canonical Chat author_id (UUID) of the target AGENT participant. TargetAuthorId string `protobuf:"bytes,1,opt,name=target_author_id,json=targetAuthorId,proto3" json:"target_author_id,omitempty"` // Stage 8 kinds: INVESTIGATE. Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *AgentDelegation) Reset() { *x = AgentDelegation{} mi := &file_chat_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *AgentDelegation) String() string { return protoimpl.X.MessageStringOf(x) } func (*AgentDelegation) ProtoMessage() {} func (x *AgentDelegation) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AgentDelegation.ProtoReflect.Descriptor instead. func (*AgentDelegation) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{1} } func (x *AgentDelegation) GetTargetAuthorId() string { if x != nil { return x.TargetAuthorId } return "" } func (x *AgentDelegation) GetKind() string { if x != nil { return x.Kind } return "" } type Message struct { state protoimpl.MessageState `protogen:"open.v1"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID, canonical message id Sequence int64 `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"` // server-assigned monotonic sequence (ordering + durable cursor) TopicId string `protobuf:"bytes,3,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` // UUID AuthorId string `protobuf:"bytes,4,opt,name=author_id,json=authorId,proto3" json:"author_id,omitempty"` // stable identity of the author (UUID) AuthorType AuthorType `protobuf:"varint,5,opt,name=author_type,json=authorType,proto3,enum=chat.AuthorType" json:"author_type,omitempty"` Source MessageSource `protobuf:"varint,6,opt,name=source,proto3,enum=chat.MessageSource" json:"source,omitempty"` Content string `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"` ReplyToMessageId *string `protobuf:"bytes,8,opt,name=reply_to_message_id,json=replyToMessageId,proto3,oneof" json:"reply_to_message_id,omitempty"` // parent message when this is a reply RootMessageId string `protobuf:"bytes,9,opt,name=root_message_id,json=rootMessageId,proto3" json:"root_message_id,omitempty"` // root of the reply chain (== id for non-replies) ReplyDepth int32 `protobuf:"varint,10,opt,name=reply_depth,json=replyDepth,proto3" json:"reply_depth,omitempty"` // 0 for non-replies, parent depth + 1 for replies; hard max 20 CreatedAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // original creation time; age = now - created_at // Optional; only set on AGENT messages that intentionally delegate. Delegation *AgentDelegation `protobuf:"bytes,12,opt,name=delegation,proto3,oneof" json:"delegation,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Message) Reset() { *x = Message{} mi := &file_chat_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Message) String() string { return protoimpl.X.MessageStringOf(x) } func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{2} } func (x *Message) GetId() string { if x != nil { return x.Id } return "" } func (x *Message) GetSequence() int64 { if x != nil { return x.Sequence } return 0 } func (x *Message) GetTopicId() string { if x != nil { return x.TopicId } return "" } func (x *Message) GetAuthorId() string { if x != nil { return x.AuthorId } return "" } func (x *Message) GetAuthorType() AuthorType { if x != nil { return x.AuthorType } return AuthorType_AUTHOR_TYPE_UNSPECIFIED } func (x *Message) GetSource() MessageSource { if x != nil { return x.Source } return MessageSource_MESSAGE_SOURCE_UNSPECIFIED } func (x *Message) GetContent() string { if x != nil { return x.Content } return "" } func (x *Message) GetReplyToMessageId() string { if x != nil && x.ReplyToMessageId != nil { return *x.ReplyToMessageId } return "" } func (x *Message) GetRootMessageId() string { if x != nil { return x.RootMessageId } return "" } func (x *Message) GetReplyDepth() int32 { if x != nil { return x.ReplyDepth } return 0 } func (x *Message) GetCreatedAt() *timestamppb.Timestamp { if x != nil { return x.CreatedAt } return nil } func (x *Message) GetDelegation() *AgentDelegation { if x != nil { return x.Delegation } return nil } type ListTopicsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListTopicsRequest) Reset() { *x = ListTopicsRequest{} mi := &file_chat_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ListTopicsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListTopicsRequest) ProtoMessage() {} func (x *ListTopicsRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListTopicsRequest.ProtoReflect.Descriptor instead. func (*ListTopicsRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{3} } type ListTopicsResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Topics []*Topic `protobuf:"bytes,1,rep,name=topics,proto3" json:"topics,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListTopicsResponse) Reset() { *x = ListTopicsResponse{} mi := &file_chat_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ListTopicsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListTopicsResponse) ProtoMessage() {} func (x *ListTopicsResponse) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListTopicsResponse.ProtoReflect.Descriptor instead. func (*ListTopicsResponse) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{4} } func (x *ListTopicsResponse) GetTopics() []*Topic { if x != nil { return x.Topics } return nil } type GetTopicRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Selector: // // *GetTopicRequest_Id // *GetTopicRequest_Slug Selector isGetTopicRequest_Selector `protobuf_oneof:"selector"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetTopicRequest) Reset() { *x = GetTopicRequest{} mi := &file_chat_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetTopicRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetTopicRequest) ProtoMessage() {} func (x *GetTopicRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetTopicRequest.ProtoReflect.Descriptor instead. func (*GetTopicRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{5} } func (x *GetTopicRequest) GetSelector() isGetTopicRequest_Selector { if x != nil { return x.Selector } return nil } func (x *GetTopicRequest) GetId() string { if x != nil { if x, ok := x.Selector.(*GetTopicRequest_Id); ok { return x.Id } } return "" } func (x *GetTopicRequest) GetSlug() string { if x != nil { if x, ok := x.Selector.(*GetTopicRequest_Slug); ok { return x.Slug } } return "" } type isGetTopicRequest_Selector interface { isGetTopicRequest_Selector() } type GetTopicRequest_Id struct { Id string `protobuf:"bytes,1,opt,name=id,proto3,oneof"` } type GetTopicRequest_Slug struct { Slug string `protobuf:"bytes,2,opt,name=slug,proto3,oneof"` } func (*GetTopicRequest_Id) isGetTopicRequest_Selector() {} func (*GetTopicRequest_Slug) isGetTopicRequest_Selector() {} type CreateTopicRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Slug string `protobuf:"bytes,1,opt,name=slug,proto3" json:"slug,omitempty"` DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *CreateTopicRequest) Reset() { *x = CreateTopicRequest{} mi := &file_chat_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *CreateTopicRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateTopicRequest) ProtoMessage() {} func (x *CreateTopicRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateTopicRequest.ProtoReflect.Descriptor instead. func (*CreateTopicRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{6} } func (x *CreateTopicRequest) GetSlug() string { if x != nil { return x.Slug } return "" } func (x *CreateTopicRequest) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } type UpdateTopicRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // new display name (required, full replace) unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UpdateTopicRequest) Reset() { *x = UpdateTopicRequest{} mi := &file_chat_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UpdateTopicRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateTopicRequest) ProtoMessage() {} func (x *UpdateTopicRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateTopicRequest.ProtoReflect.Descriptor instead. func (*UpdateTopicRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{7} } func (x *UpdateTopicRequest) GetId() string { if x != nil { return x.Id } return "" } func (x *UpdateTopicRequest) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } type PostMessageRequest struct { state protoimpl.MessageState `protogen:"open.v1"` TopicId string `protobuf:"bytes,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` AuthorId string `protobuf:"bytes,2,opt,name=author_id,json=authorId,proto3" json:"author_id,omitempty"` AuthorType AuthorType `protobuf:"varint,3,opt,name=author_type,json=authorType,proto3,enum=chat.AuthorType" json:"author_type,omitempty"` Source MessageSource `protobuf:"varint,4,opt,name=source,proto3,enum=chat.MessageSource" json:"source,omitempty"` Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` ReplyToMessageId *string `protobuf:"bytes,6,opt,name=reply_to_message_id,json=replyToMessageId,proto3,oneof" json:"reply_to_message_id,omitempty"` // Idempotency key: retrying PostMessage with the same author_id and key // returns the original message instead of creating a duplicate. IdempotencyKey string `protobuf:"bytes,7,opt,name=idempotency_key,json=idempotencyKey,proto3" json:"idempotency_key,omitempty"` // Agents must not use this path; Human HTTP PostMessage rejects delegation. Delegation *AgentDelegation `protobuf:"bytes,8,opt,name=delegation,proto3,oneof" json:"delegation,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *PostMessageRequest) Reset() { *x = PostMessageRequest{} mi := &file_chat_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *PostMessageRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*PostMessageRequest) ProtoMessage() {} func (x *PostMessageRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PostMessageRequest.ProtoReflect.Descriptor instead. func (*PostMessageRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{8} } func (x *PostMessageRequest) GetTopicId() string { if x != nil { return x.TopicId } return "" } func (x *PostMessageRequest) GetAuthorId() string { if x != nil { return x.AuthorId } return "" } func (x *PostMessageRequest) GetAuthorType() AuthorType { if x != nil { return x.AuthorType } return AuthorType_AUTHOR_TYPE_UNSPECIFIED } func (x *PostMessageRequest) GetSource() MessageSource { if x != nil { return x.Source } return MessageSource_MESSAGE_SOURCE_UNSPECIFIED } func (x *PostMessageRequest) GetContent() string { if x != nil { return x.Content } return "" } func (x *PostMessageRequest) GetReplyToMessageId() string { if x != nil && x.ReplyToMessageId != nil { return *x.ReplyToMessageId } return "" } func (x *PostMessageRequest) GetIdempotencyKey() string { if x != nil { return x.IdempotencyKey } return "" } func (x *PostMessageRequest) GetDelegation() *AgentDelegation { if x != nil { return x.Delegation } return nil } type AgentPostMessageRequest struct { state protoimpl.MessageState `protogen:"open.v1"` TopicId string `protobuf:"bytes,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` ReplyToMessageId *string `protobuf:"bytes,3,opt,name=reply_to_message_id,json=replyToMessageId,proto3,oneof" json:"reply_to_message_id,omitempty"` // Mandatory: retrying with the same key returns the original message // (duplicated=true) instead of creating a duplicate. IdempotencyKey string `protobuf:"bytes,4,opt,name=idempotency_key,json=idempotencyKey,proto3" json:"idempotency_key,omitempty"` // Optional machine-readable delegation. Server validates target is an // existing AGENT participant; sender identity comes from auth, not client. Delegation *AgentDelegation `protobuf:"bytes,5,opt,name=delegation,proto3,oneof" json:"delegation,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *AgentPostMessageRequest) Reset() { *x = AgentPostMessageRequest{} mi := &file_chat_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *AgentPostMessageRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AgentPostMessageRequest) ProtoMessage() {} func (x *AgentPostMessageRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AgentPostMessageRequest.ProtoReflect.Descriptor instead. func (*AgentPostMessageRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{9} } func (x *AgentPostMessageRequest) GetTopicId() string { if x != nil { return x.TopicId } return "" } func (x *AgentPostMessageRequest) GetContent() string { if x != nil { return x.Content } return "" } func (x *AgentPostMessageRequest) GetReplyToMessageId() string { if x != nil && x.ReplyToMessageId != nil { return *x.ReplyToMessageId } return "" } func (x *AgentPostMessageRequest) GetIdempotencyKey() string { if x != nil { return x.IdempotencyKey } return "" } func (x *AgentPostMessageRequest) GetDelegation() *AgentDelegation { if x != nil { return x.Delegation } return nil } type PostMessageResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Message *Message `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` Duplicated bool `protobuf:"varint,2,opt,name=duplicated,proto3" json:"duplicated,omitempty"` // true when an idempotent replay returned an existing message unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *PostMessageResponse) Reset() { *x = PostMessageResponse{} mi := &file_chat_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *PostMessageResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*PostMessageResponse) ProtoMessage() {} func (x *PostMessageResponse) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PostMessageResponse.ProtoReflect.Descriptor instead. func (*PostMessageResponse) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{10} } func (x *PostMessageResponse) GetMessage() *Message { if x != nil { return x.Message } return nil } func (x *PostMessageResponse) GetDuplicated() bool { if x != nil { return x.Duplicated } return false } type GetMessageRequest struct { state protoimpl.MessageState `protogen:"open.v1"` MessageId string `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetMessageRequest) Reset() { *x = GetMessageRequest{} mi := &file_chat_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetMessageRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMessageRequest) ProtoMessage() {} func (x *GetMessageRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMessageRequest.ProtoReflect.Descriptor instead. func (*GetMessageRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{11} } func (x *GetMessageRequest) GetMessageId() string { if x != nil { return x.MessageId } return "" } type HistoryRequest struct { state protoimpl.MessageState `protogen:"open.v1"` TopicId string `protobuf:"bytes,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` // Backward paging: return messages with sequence < before_sequence, // newest first. Mutually exclusive with after_sequence. BeforeSequence int64 `protobuf:"varint,2,opt,name=before_sequence,json=beforeSequence,proto3" json:"before_sequence,omitempty"` // Forward paging: return messages with sequence > after_sequence, // oldest first. Mutually exclusive with before_sequence. AfterSequence int64 `protobuf:"varint,3,opt,name=after_sequence,json=afterSequence,proto3" json:"after_sequence,omitempty"` // Maximum number of messages to return (server may cap it). Limit int32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *HistoryRequest) Reset() { *x = HistoryRequest{} mi := &file_chat_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *HistoryRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*HistoryRequest) ProtoMessage() {} func (x *HistoryRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HistoryRequest.ProtoReflect.Descriptor instead. func (*HistoryRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{12} } func (x *HistoryRequest) GetTopicId() string { if x != nil { return x.TopicId } return "" } func (x *HistoryRequest) GetBeforeSequence() int64 { if x != nil { return x.BeforeSequence } return 0 } func (x *HistoryRequest) GetAfterSequence() int64 { if x != nil { return x.AfterSequence } return 0 } func (x *HistoryRequest) GetLimit() int32 { if x != nil { return x.Limit } return 0 } type HistoryResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Messages []*Message `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` // true when more messages exist in the requested direction. HasMore bool `protobuf:"varint,2,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *HistoryResponse) Reset() { *x = HistoryResponse{} mi := &file_chat_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *HistoryResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*HistoryResponse) ProtoMessage() {} func (x *HistoryResponse) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HistoryResponse.ProtoReflect.Descriptor instead. func (*HistoryResponse) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{13} } func (x *HistoryResponse) GetMessages() []*Message { if x != nil { return x.Messages } return nil } func (x *HistoryResponse) GetHasMore() bool { if x != nil { return x.HasMore } return false } type SubscribeRequest struct { state protoimpl.MessageState `protogen:"open.v1"` TopicId string `protobuf:"bytes,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SubscribeRequest) Reset() { *x = SubscribeRequest{} mi := &file_chat_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SubscribeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SubscribeRequest) ProtoMessage() {} func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. func (*SubscribeRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{14} } func (x *SubscribeRequest) GetTopicId() string { if x != nil { return x.TopicId } return "" } // DeliveryMessage wraps one delivered message with delivery metadata. // message.created_at is always the original creation time; replay + the // timestamp let the SDK decide how to treat a delivery. type DeliveryMessage struct { state protoimpl.MessageState `protogen:"open.v1"` Message *Message `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // true when the message was committed BEFORE this subscription started // (backlog catch-up after connect/reconnect); false for messages committed // while this subscription is live. Replay bool `protobuf:"varint,2,opt,name=replay,proto3" json:"replay,omitempty"` // Opaque id of the current subscription, generated by the server per // Subscribe stream. MUST be echoed in Acknowledge; a stale id (from a // replaced/closed stream) is rejected. SubscriptionId string `protobuf:"bytes,3,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"` // true on the FIRST message of a stream (message is empty). The server // guarantees that at this point the subscription is registered and its // durable cursor resolved, so every message committed AFTER the ready // marker is delivered to this subscription (never skipped by the // head-initialization race). Old messages are NOT replayed before the marker: // a brand-new consumer still starts at the topic head. Ready bool `protobuf:"varint,4,opt,name=ready,proto3" json:"ready,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeliveryMessage) Reset() { *x = DeliveryMessage{} mi := &file_chat_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DeliveryMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeliveryMessage) ProtoMessage() {} func (x *DeliveryMessage) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeliveryMessage.ProtoReflect.Descriptor instead. func (*DeliveryMessage) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{15} } func (x *DeliveryMessage) GetMessage() *Message { if x != nil { return x.Message } return nil } func (x *DeliveryMessage) GetReplay() bool { if x != nil { return x.Replay } return false } func (x *DeliveryMessage) GetSubscriptionId() string { if x != nil { return x.SubscriptionId } return "" } func (x *DeliveryMessage) GetReady() bool { if x != nil { return x.Ready } return false } type AcknowledgeRequest struct { state protoimpl.MessageState `protogen:"open.v1"` TopicId string `protobuf:"bytes,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` // Highest sequence fully processed by the consumer (cumulative ack). LastAckSequence int64 `protobuf:"varint,2,opt,name=last_ack_sequence,json=lastAckSequence,proto3" json:"last_ack_sequence,omitempty"` // The subscription_id of the stream that delivered the message. Must be // the CURRENT active subscription of this consumer in this topic. SubscriptionId string `protobuf:"bytes,3,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"` // true on the FIRST message of a stream (message is empty). The server // guarantees that at this point the subscription is registered and its // durable cursor resolved, so every message committed AFTER the ready // marker is delivered to this subscription (never skipped by the // head-initialization race). Old messages are NOT replayed before the marker: // a brand-new consumer still starts at the topic head. Ready bool `protobuf:"varint,4,opt,name=ready,proto3" json:"ready,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *AcknowledgeRequest) Reset() { *x = AcknowledgeRequest{} mi := &file_chat_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *AcknowledgeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AcknowledgeRequest) ProtoMessage() {} func (x *AcknowledgeRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AcknowledgeRequest.ProtoReflect.Descriptor instead. func (*AcknowledgeRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{16} } func (x *AcknowledgeRequest) GetTopicId() string { if x != nil { return x.TopicId } return "" } func (x *AcknowledgeRequest) GetLastAckSequence() int64 { if x != nil { return x.LastAckSequence } return 0 } func (x *AcknowledgeRequest) GetSubscriptionId() string { if x != nil { return x.SubscriptionId } return "" } func (x *AcknowledgeRequest) GetReady() bool { if x != nil { return x.Ready } return false } type AcknowledgeResponse struct { state protoimpl.MessageState `protogen:"open.v1"` LastAckSequence int64 `protobuf:"varint,1,opt,name=last_ack_sequence,json=lastAckSequence,proto3" json:"last_ack_sequence,omitempty"` // the cursor as stored (never lower than before) unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *AcknowledgeResponse) Reset() { *x = AcknowledgeResponse{} mi := &file_chat_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *AcknowledgeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*AcknowledgeResponse) ProtoMessage() {} func (x *AcknowledgeResponse) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AcknowledgeResponse.ProtoReflect.Descriptor instead. func (*AcknowledgeResponse) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{17} } func (x *AcknowledgeResponse) GetLastAckSequence() int64 { if x != nil { return x.LastAckSequence } return 0 } // Participant is the public presentation of a chat identity. // Internal platform IDs (telegram_id, discord_id, email, OAuth subject, // global_user_id) are NEVER exposed here. type Participant struct { state protoimpl.MessageState `protogen:"open.v1"` AuthorId string `protobuf:"bytes,1,opt,name=author_id,json=authorId,proto3" json:"author_id,omitempty"` // canonical UUID AuthorType AuthorType `protobuf:"varint,2,opt,name=author_type,json=authorType,proto3,enum=chat.AuthorType" json:"author_type,omitempty"` DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // may be empty for stubs // Locale key → localized alias (e.g. "ru" → "Мира"). Not unique. Aliases map[string]string `protobuf:"bytes,4,rep,name=aliases,proto3" json:"aliases,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` Role string `protobuf:"bytes,5,opt,name=role,proto3" json:"role,omitempty"` // e.g. "Coordinator"; may be empty Bio string `protobuf:"bytes,6,opt,name=bio,proto3" json:"bio,omitempty"` StatusText string `protobuf:"bytes,7,opt,name=status_text,json=statusText,proto3" json:"status_text,omitempty"` // participant-owned; distinct from presence AvatarHash string `protobuf:"bytes,8,opt,name=avatar_hash,json=avatarHash,proto3" json:"avatar_hash,omitempty"` // empty when no avatar; used for ETag / skip-upload Online bool `protobuf:"varint,9,opt,name=online,proto3" json:"online,omitempty"` // server-owned global ONLINE/OFFLINE LastSeenAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=last_seen_at,json=lastSeenAt,proto3" json:"last_seen_at,omitempty"` ProfileVersion int64 `protobuf:"varint,11,opt,name=profile_version,json=profileVersion,proto3" json:"profile_version,omitempty"` // monotonic; bumps on profile/avatar changes PresenceVersion int64 `protobuf:"varint,12,opt,name=presence_version,json=presenceVersion,proto3" json:"presence_version,omitempty"` // monotonic; bumps on ONLINE/OFFLINE transitions // Logical agent id (e.g. "coordinator") — set only for AUTHOR_TYPE_AGENT. AgentId string `protobuf:"bytes,13,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` CreatedAt *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Participant) Reset() { *x = Participant{} mi := &file_chat_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Participant) String() string { return protoimpl.X.MessageStringOf(x) } func (*Participant) ProtoMessage() {} func (x *Participant) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Participant.ProtoReflect.Descriptor instead. func (*Participant) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{18} } func (x *Participant) GetAuthorId() string { if x != nil { return x.AuthorId } return "" } func (x *Participant) GetAuthorType() AuthorType { if x != nil { return x.AuthorType } return AuthorType_AUTHOR_TYPE_UNSPECIFIED } func (x *Participant) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *Participant) GetAliases() map[string]string { if x != nil { return x.Aliases } return nil } func (x *Participant) GetRole() string { if x != nil { return x.Role } return "" } func (x *Participant) GetBio() string { if x != nil { return x.Bio } return "" } func (x *Participant) GetStatusText() string { if x != nil { return x.StatusText } return "" } func (x *Participant) GetAvatarHash() string { if x != nil { return x.AvatarHash } return "" } func (x *Participant) GetOnline() bool { if x != nil { return x.Online } return false } func (x *Participant) GetLastSeenAt() *timestamppb.Timestamp { if x != nil { return x.LastSeenAt } return nil } func (x *Participant) GetProfileVersion() int64 { if x != nil { return x.ProfileVersion } return 0 } func (x *Participant) GetPresenceVersion() int64 { if x != nil { return x.PresenceVersion } return 0 } func (x *Participant) GetAgentId() string { if x != nil { return x.AgentId } return "" } func (x *Participant) GetCreatedAt() *timestamppb.Timestamp { if x != nil { return x.CreatedAt } return nil } func (x *Participant) GetUpdatedAt() *timestamppb.Timestamp { if x != nil { return x.UpdatedAt } return nil } type GetParticipantRequest struct { state protoimpl.MessageState `protogen:"open.v1"` AuthorId string `protobuf:"bytes,1,opt,name=author_id,json=authorId,proto3" json:"author_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetParticipantRequest) Reset() { *x = GetParticipantRequest{} mi := &file_chat_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetParticipantRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetParticipantRequest) ProtoMessage() {} func (x *GetParticipantRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetParticipantRequest.ProtoReflect.Descriptor instead. func (*GetParticipantRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{19} } func (x *GetParticipantRequest) GetAuthorId() string { if x != nil { return x.AuthorId } return "" } type BatchGetParticipantsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` AuthorIds []string `protobuf:"bytes,1,rep,name=author_ids,json=authorIds,proto3" json:"author_ids,omitempty"` // server caps size (e.g. 100) unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *BatchGetParticipantsRequest) Reset() { *x = BatchGetParticipantsRequest{} mi := &file_chat_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *BatchGetParticipantsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*BatchGetParticipantsRequest) ProtoMessage() {} func (x *BatchGetParticipantsRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BatchGetParticipantsRequest.ProtoReflect.Descriptor instead. func (*BatchGetParticipantsRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{20} } func (x *BatchGetParticipantsRequest) GetAuthorIds() []string { if x != nil { return x.AuthorIds } return nil } type BatchGetParticipantsResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Participants []*Participant `protobuf:"bytes,1,rep,name=participants,proto3" json:"participants,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *BatchGetParticipantsResponse) Reset() { *x = BatchGetParticipantsResponse{} mi := &file_chat_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *BatchGetParticipantsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*BatchGetParticipantsResponse) ProtoMessage() {} func (x *BatchGetParticipantsResponse) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BatchGetParticipantsResponse.ProtoReflect.Descriptor instead. func (*BatchGetParticipantsResponse) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{21} } func (x *BatchGetParticipantsResponse) GetParticipants() []*Participant { if x != nil { return x.Participants } return nil } type ListTopicParticipantsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` TopicId string `protobuf:"bytes,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListTopicParticipantsRequest) Reset() { *x = ListTopicParticipantsRequest{} mi := &file_chat_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ListTopicParticipantsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListTopicParticipantsRequest) ProtoMessage() {} func (x *ListTopicParticipantsRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListTopicParticipantsRequest.ProtoReflect.Descriptor instead. func (*ListTopicParticipantsRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{22} } func (x *ListTopicParticipantsRequest) GetTopicId() string { if x != nil { return x.TopicId } return "" } type ListTopicParticipantsResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Participants []*Participant `protobuf:"bytes,1,rep,name=participants,proto3" json:"participants,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListTopicParticipantsResponse) Reset() { *x = ListTopicParticipantsResponse{} mi := &file_chat_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ListTopicParticipantsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListTopicParticipantsResponse) ProtoMessage() {} func (x *ListTopicParticipantsResponse) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListTopicParticipantsResponse.ProtoReflect.Descriptor instead. func (*ListTopicParticipantsResponse) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{23} } func (x *ListTopicParticipantsResponse) GetParticipants() []*Participant { if x != nil { return x.Participants } return nil } type GetMyParticipantRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetMyParticipantRequest) Reset() { *x = GetMyParticipantRequest{} mi := &file_chat_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *GetMyParticipantRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMyParticipantRequest) ProtoMessage() {} func (x *GetMyParticipantRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMyParticipantRequest.ProtoReflect.Descriptor instead. func (*GetMyParticipantRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{24} } // RegisterSelfProfileRequest carries only mutable public profile fields. // author_id / author_type / agent_id are derived server-side from the // authenticated principal and MUST NOT be trusted from the request. type RegisterSelfProfileRequest struct { state protoimpl.MessageState `protogen:"open.v1"` DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` Aliases map[string]string `protobuf:"bytes,2,rep,name=aliases,proto3" json:"aliases,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` Role string `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"` Bio string `protobuf:"bytes,4,opt,name=bio,proto3" json:"bio,omitempty"` StatusText string `protobuf:"bytes,5,opt,name=status_text,json=statusText,proto3" json:"status_text,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *RegisterSelfProfileRequest) Reset() { *x = RegisterSelfProfileRequest{} mi := &file_chat_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *RegisterSelfProfileRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RegisterSelfProfileRequest) ProtoMessage() {} func (x *RegisterSelfProfileRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RegisterSelfProfileRequest.ProtoReflect.Descriptor instead. func (*RegisterSelfProfileRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{25} } func (x *RegisterSelfProfileRequest) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } func (x *RegisterSelfProfileRequest) GetAliases() map[string]string { if x != nil { return x.Aliases } return nil } func (x *RegisterSelfProfileRequest) GetRole() string { if x != nil { return x.Role } return "" } func (x *RegisterSelfProfileRequest) GetBio() string { if x != nil { return x.Bio } return "" } func (x *RegisterSelfProfileRequest) GetStatusText() string { if x != nil { return x.StatusText } return "" } type SyncMyTopicMembershipsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Full desired set of topic UUIDs for the authenticated agent. TopicIds []string `protobuf:"bytes,1,rep,name=topic_ids,json=topicIds,proto3" json:"topic_ids,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SyncMyTopicMembershipsRequest) Reset() { *x = SyncMyTopicMembershipsRequest{} mi := &file_chat_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SyncMyTopicMembershipsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncMyTopicMembershipsRequest) ProtoMessage() {} func (x *SyncMyTopicMembershipsRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SyncMyTopicMembershipsRequest.ProtoReflect.Descriptor instead. func (*SyncMyTopicMembershipsRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{26} } func (x *SyncMyTopicMembershipsRequest) GetTopicIds() []string { if x != nil { return x.TopicIds } return nil } type SyncMyTopicMembershipsResponse struct { state protoimpl.MessageState `protogen:"open.v1"` TopicIds []string `protobuf:"bytes,1,rep,name=topic_ids,json=topicIds,proto3" json:"topic_ids,omitempty"` // authoritative memberships after sync Added int32 `protobuf:"varint,2,opt,name=added,proto3" json:"added,omitempty"` Removed int32 `protobuf:"varint,3,opt,name=removed,proto3" json:"removed,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *SyncMyTopicMembershipsResponse) Reset() { *x = SyncMyTopicMembershipsResponse{} mi := &file_chat_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SyncMyTopicMembershipsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SyncMyTopicMembershipsResponse) ProtoMessage() {} func (x *SyncMyTopicMembershipsResponse) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SyncMyTopicMembershipsResponse.ProtoReflect.Descriptor instead. func (*SyncMyTopicMembershipsResponse) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{27} } func (x *SyncMyTopicMembershipsResponse) GetTopicIds() []string { if x != nil { return x.TopicIds } return nil } func (x *SyncMyTopicMembershipsResponse) GetAdded() int32 { if x != nil { return x.Added } return 0 } func (x *SyncMyTopicMembershipsResponse) GetRemoved() int32 { if x != nil { return x.Removed } return 0 } type UploadSelfAvatarRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Raw image bytes (PNG/JPEG/WebP). Content-Type is validated from magic // bytes + decode, not trusted from metadata alone. Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` // Optional declared content type; must match detected type when set. ContentType string `protobuf:"bytes,2,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UploadSelfAvatarRequest) Reset() { *x = UploadSelfAvatarRequest{} mi := &file_chat_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UploadSelfAvatarRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadSelfAvatarRequest) ProtoMessage() {} func (x *UploadSelfAvatarRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UploadSelfAvatarRequest.ProtoReflect.Descriptor instead. func (*UploadSelfAvatarRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{28} } func (x *UploadSelfAvatarRequest) GetContent() []byte { if x != nil { return x.Content } return nil } func (x *UploadSelfAvatarRequest) GetContentType() string { if x != nil { return x.ContentType } return "" } type DeleteSelfAvatarRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeleteSelfAvatarRequest) Reset() { *x = DeleteSelfAvatarRequest{} mi := &file_chat_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DeleteSelfAvatarRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteSelfAvatarRequest) ProtoMessage() {} func (x *DeleteSelfAvatarRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteSelfAvatarRequest.ProtoReflect.Descriptor instead. func (*DeleteSelfAvatarRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{29} } var File_chat_proto protoreflect.FileDescriptor const file_chat_proto_rawDesc = "" + "\n" + "\n" + "chat.proto\x12\x04chat\x1a\x1fgoogle/protobuf/timestamp.proto\"\x89\x01\n" + "\x05Topic\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + "\x04slug\x18\x02 \x01(\tR\x04slug\x12!\n" + "\fdisplay_name\x18\x03 \x01(\tR\vdisplayName\x129\n" + "\n" + "created_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"O\n" + "\x0fAgentDelegation\x12(\n" + "\x10target_author_id\x18\x01 \x01(\tR\x0etargetAuthorId\x12\x12\n" + "\x04kind\x18\x02 \x01(\tR\x04kind\"\x82\x04\n" + "\aMessage\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1a\n" + "\bsequence\x18\x02 \x01(\x03R\bsequence\x12\x19\n" + "\btopic_id\x18\x03 \x01(\tR\atopicId\x12\x1b\n" + "\tauthor_id\x18\x04 \x01(\tR\bauthorId\x121\n" + "\vauthor_type\x18\x05 \x01(\x0e2\x10.chat.AuthorTypeR\n" + "authorType\x12+\n" + "\x06source\x18\x06 \x01(\x0e2\x13.chat.MessageSourceR\x06source\x12\x18\n" + "\acontent\x18\a \x01(\tR\acontent\x122\n" + "\x13reply_to_message_id\x18\b \x01(\tH\x00R\x10replyToMessageId\x88\x01\x01\x12&\n" + "\x0froot_message_id\x18\t \x01(\tR\rrootMessageId\x12\x1f\n" + "\vreply_depth\x18\n" + " \x01(\x05R\n" + "replyDepth\x129\n" + "\n" + "created_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x12:\n" + "\n" + "delegation\x18\f \x01(\v2\x15.chat.AgentDelegationH\x01R\n" + "delegation\x88\x01\x01B\x16\n" + "\x14_reply_to_message_idB\r\n" + "\v_delegation\"\x13\n" + "\x11ListTopicsRequest\"9\n" + "\x12ListTopicsResponse\x12#\n" + "\x06topics\x18\x01 \x03(\v2\v.chat.TopicR\x06topics\"E\n" + "\x0fGetTopicRequest\x12\x10\n" + "\x02id\x18\x01 \x01(\tH\x00R\x02id\x12\x14\n" + "\x04slug\x18\x02 \x01(\tH\x00R\x04slugB\n" + "\n" + "\bselector\"K\n" + "\x12CreateTopicRequest\x12\x12\n" + "\x04slug\x18\x01 \x01(\tR\x04slug\x12!\n" + "\fdisplay_name\x18\x02 \x01(\tR\vdisplayName\"G\n" + "\x12UpdateTopicRequest\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12!\n" + "\fdisplay_name\x18\x02 \x01(\tR\vdisplayName\"\x86\x03\n" + "\x12PostMessageRequest\x12\x19\n" + "\btopic_id\x18\x01 \x01(\tR\atopicId\x12\x1b\n" + "\tauthor_id\x18\x02 \x01(\tR\bauthorId\x121\n" + "\vauthor_type\x18\x03 \x01(\x0e2\x10.chat.AuthorTypeR\n" + "authorType\x12+\n" + "\x06source\x18\x04 \x01(\x0e2\x13.chat.MessageSourceR\x06source\x12\x18\n" + "\acontent\x18\x05 \x01(\tR\acontent\x122\n" + "\x13reply_to_message_id\x18\x06 \x01(\tH\x00R\x10replyToMessageId\x88\x01\x01\x12'\n" + "\x0fidempotency_key\x18\a \x01(\tR\x0eidempotencyKey\x12:\n" + "\n" + "delegation\x18\b \x01(\v2\x15.chat.AgentDelegationH\x01R\n" + "delegation\x88\x01\x01B\x16\n" + "\x14_reply_to_message_idB\r\n" + "\v_delegation\"\x8e\x02\n" + "\x17AgentPostMessageRequest\x12\x19\n" + "\btopic_id\x18\x01 \x01(\tR\atopicId\x12\x18\n" + "\acontent\x18\x02 \x01(\tR\acontent\x122\n" + "\x13reply_to_message_id\x18\x03 \x01(\tH\x00R\x10replyToMessageId\x88\x01\x01\x12'\n" + "\x0fidempotency_key\x18\x04 \x01(\tR\x0eidempotencyKey\x12:\n" + "\n" + "delegation\x18\x05 \x01(\v2\x15.chat.AgentDelegationH\x01R\n" + "delegation\x88\x01\x01B\x16\n" + "\x14_reply_to_message_idB\r\n" + "\v_delegation\"^\n" + "\x13PostMessageResponse\x12'\n" + "\amessage\x18\x01 \x01(\v2\r.chat.MessageR\amessage\x12\x1e\n" + "\n" + "duplicated\x18\x02 \x01(\bR\n" + "duplicated\"2\n" + "\x11GetMessageRequest\x12\x1d\n" + "\n" + "message_id\x18\x01 \x01(\tR\tmessageId\"\x91\x01\n" + "\x0eHistoryRequest\x12\x19\n" + "\btopic_id\x18\x01 \x01(\tR\atopicId\x12'\n" + "\x0fbefore_sequence\x18\x02 \x01(\x03R\x0ebeforeSequence\x12%\n" + "\x0eafter_sequence\x18\x03 \x01(\x03R\rafterSequence\x12\x14\n" + "\x05limit\x18\x04 \x01(\x05R\x05limit\"W\n" + "\x0fHistoryResponse\x12)\n" + "\bmessages\x18\x01 \x03(\v2\r.chat.MessageR\bmessages\x12\x19\n" + "\bhas_more\x18\x02 \x01(\bR\ahasMore\"-\n" + "\x10SubscribeRequest\x12\x19\n" + "\btopic_id\x18\x01 \x01(\tR\atopicId\"\x91\x01\n" + "\x0fDeliveryMessage\x12'\n" + "\amessage\x18\x01 \x01(\v2\r.chat.MessageR\amessage\x12\x16\n" + "\x06replay\x18\x02 \x01(\bR\x06replay\x12'\n" + "\x0fsubscription_id\x18\x03 \x01(\tR\x0esubscriptionId\x12\x14\n" + "\x05ready\x18\x04 \x01(\bR\x05ready\"\x9a\x01\n" + "\x12AcknowledgeRequest\x12\x19\n" + "\btopic_id\x18\x01 \x01(\tR\atopicId\x12*\n" + "\x11last_ack_sequence\x18\x02 \x01(\x03R\x0flastAckSequence\x12'\n" + "\x0fsubscription_id\x18\x03 \x01(\tR\x0esubscriptionId\x12\x14\n" + "\x05ready\x18\x04 \x01(\bR\x05ready\"A\n" + "\x13AcknowledgeResponse\x12*\n" + "\x11last_ack_sequence\x18\x01 \x01(\x03R\x0flastAckSequence\"\x99\x05\n" + "\vParticipant\x12\x1b\n" + "\tauthor_id\x18\x01 \x01(\tR\bauthorId\x121\n" + "\vauthor_type\x18\x02 \x01(\x0e2\x10.chat.AuthorTypeR\n" + "authorType\x12!\n" + "\fdisplay_name\x18\x03 \x01(\tR\vdisplayName\x128\n" + "\aaliases\x18\x04 \x03(\v2\x1e.chat.Participant.AliasesEntryR\aaliases\x12\x12\n" + "\x04role\x18\x05 \x01(\tR\x04role\x12\x10\n" + "\x03bio\x18\x06 \x01(\tR\x03bio\x12\x1f\n" + "\vstatus_text\x18\a \x01(\tR\n" + "statusText\x12\x1f\n" + "\vavatar_hash\x18\b \x01(\tR\n" + "avatarHash\x12\x16\n" + "\x06online\x18\t \x01(\bR\x06online\x12<\n" + "\flast_seen_at\x18\n" + " \x01(\v2\x1a.google.protobuf.TimestampR\n" + "lastSeenAt\x12'\n" + "\x0fprofile_version\x18\v \x01(\x03R\x0eprofileVersion\x12)\n" + "\x10presence_version\x18\f \x01(\x03R\x0fpresenceVersion\x12\x19\n" + "\bagent_id\x18\r \x01(\tR\aagentId\x129\n" + "\n" + "created_at\x18\x0e \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\x129\n" + "\n" + "updated_at\x18\x0f \x01(\v2\x1a.google.protobuf.TimestampR\tupdatedAt\x1a:\n" + "\fAliasesEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"4\n" + "\x15GetParticipantRequest\x12\x1b\n" + "\tauthor_id\x18\x01 \x01(\tR\bauthorId\"<\n" + "\x1bBatchGetParticipantsRequest\x12\x1d\n" + "\n" + "author_ids\x18\x01 \x03(\tR\tauthorIds\"U\n" + "\x1cBatchGetParticipantsResponse\x125\n" + "\fparticipants\x18\x01 \x03(\v2\x11.chat.ParticipantR\fparticipants\"9\n" + "\x1cListTopicParticipantsRequest\x12\x19\n" + "\btopic_id\x18\x01 \x01(\tR\atopicId\"V\n" + "\x1dListTopicParticipantsResponse\x125\n" + "\fparticipants\x18\x01 \x03(\v2\x11.chat.ParticipantR\fparticipants\"\x19\n" + "\x17GetMyParticipantRequest\"\x8b\x02\n" + "\x1aRegisterSelfProfileRequest\x12!\n" + "\fdisplay_name\x18\x01 \x01(\tR\vdisplayName\x12G\n" + "\aaliases\x18\x02 \x03(\v2-.chat.RegisterSelfProfileRequest.AliasesEntryR\aaliases\x12\x12\n" + "\x04role\x18\x03 \x01(\tR\x04role\x12\x10\n" + "\x03bio\x18\x04 \x01(\tR\x03bio\x12\x1f\n" + "\vstatus_text\x18\x05 \x01(\tR\n" + "statusText\x1a:\n" + "\fAliasesEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"<\n" + "\x1dSyncMyTopicMembershipsRequest\x12\x1b\n" + "\ttopic_ids\x18\x01 \x03(\tR\btopicIds\"m\n" + "\x1eSyncMyTopicMembershipsResponse\x12\x1b\n" + "\ttopic_ids\x18\x01 \x03(\tR\btopicIds\x12\x14\n" + "\x05added\x18\x02 \x01(\x05R\x05added\x12\x18\n" + "\aremoved\x18\x03 \x01(\x05R\aremoved\"V\n" + "\x17UploadSelfAvatarRequest\x12\x18\n" + "\acontent\x18\x01 \x01(\fR\acontent\x12!\n" + "\fcontent_type\x18\x02 \x01(\tR\vcontentType\"\x19\n" + "\x17DeleteSelfAvatarRequest*\x8c\x01\n" + "\n" + "AuthorType\x12\x1b\n" + "\x17AUTHOR_TYPE_UNSPECIFIED\x10\x00\x12\x15\n" + "\x11AUTHOR_TYPE_HUMAN\x10\x01\x12\x15\n" + "\x11AUTHOR_TYPE_AGENT\x10\x02\x12\x16\n" + "\x12AUTHOR_TYPE_SYSTEM\x10\x03\x12\x1b\n" + "\x17AUTHOR_TYPE_INTEGRATION\x10\x04*\x99\x01\n" + "\rMessageSource\x12\x1e\n" + "\x1aMESSAGE_SOURCE_UNSPECIFIED\x10\x00\x12\x16\n" + "\x12MESSAGE_SOURCE_WEB\x10\x01\x12\x1b\n" + "\x17MESSAGE_SOURCE_TELEGRAM\x10\x02\x12\x18\n" + "\x14MESSAGE_SOURCE_AGENT\x10\x03\x12\x19\n" + "\x15MESSAGE_SOURCE_SYSTEM\x10\x042\xf2\t\n" + "\vChatService\x12?\n" + "\n" + "ListTopics\x12\x17.chat.ListTopicsRequest\x1a\x18.chat.ListTopicsResponse\x12.\n" + "\bGetTopic\x12\x15.chat.GetTopicRequest\x1a\v.chat.Topic\x124\n" + "\vCreateTopic\x12\x18.chat.CreateTopicRequest\x1a\v.chat.Topic\x124\n" + "\vUpdateTopic\x12\x18.chat.UpdateTopicRequest\x1a\v.chat.Topic\x12B\n" + "\vPostMessage\x12\x18.chat.PostMessageRequest\x1a\x19.chat.PostMessageResponse\x12L\n" + "\x10AgentPostMessage\x12\x1d.chat.AgentPostMessageRequest\x1a\x19.chat.PostMessageResponse\x124\n" + "\n" + "GetMessage\x12\x17.chat.GetMessageRequest\x1a\r.chat.Message\x126\n" + "\aHistory\x12\x14.chat.HistoryRequest\x1a\x15.chat.HistoryResponse\x12<\n" + "\tSubscribe\x12\x16.chat.SubscribeRequest\x1a\x15.chat.DeliveryMessage0\x01\x12B\n" + "\vAcknowledge\x12\x18.chat.AcknowledgeRequest\x1a\x19.chat.AcknowledgeResponse\x12@\n" + "\x0eGetParticipant\x12\x1b.chat.GetParticipantRequest\x1a\x11.chat.Participant\x12]\n" + "\x14BatchGetParticipants\x12!.chat.BatchGetParticipantsRequest\x1a\".chat.BatchGetParticipantsResponse\x12`\n" + "\x15ListTopicParticipants\x12\".chat.ListTopicParticipantsRequest\x1a#.chat.ListTopicParticipantsResponse\x12D\n" + "\x10GetMyParticipant\x12\x1d.chat.GetMyParticipantRequest\x1a\x11.chat.Participant\x12J\n" + "\x13RegisterSelfProfile\x12 .chat.RegisterSelfProfileRequest\x1a\x11.chat.Participant\x12c\n" + "\x16SyncMyTopicMemberships\x12#.chat.SyncMyTopicMembershipsRequest\x1a$.chat.SyncMyTopicMembershipsResponse\x12D\n" + "\x10UploadSelfAvatar\x12\x1d.chat.UploadSelfAvatarRequest\x1a\x11.chat.Participant\x12D\n" + "\x10DeleteSelfAvatar\x12\x1d.chat.DeleteSelfAvatarRequest\x1a\x11.chat.ParticipantB)Z'gitea.fe.kaien.ru/kaien/l-ai-chat-protob\x06proto3" var ( file_chat_proto_rawDescOnce sync.Once file_chat_proto_rawDescData []byte ) func file_chat_proto_rawDescGZIP() []byte { file_chat_proto_rawDescOnce.Do(func() { file_chat_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_chat_proto_rawDesc), len(file_chat_proto_rawDesc))) }) return file_chat_proto_rawDescData } var file_chat_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 32) var file_chat_proto_goTypes = []any{ (AuthorType)(0), // 0: chat.AuthorType (MessageSource)(0), // 1: chat.MessageSource (*Topic)(nil), // 2: chat.Topic (*AgentDelegation)(nil), // 3: chat.AgentDelegation (*Message)(nil), // 4: chat.Message (*ListTopicsRequest)(nil), // 5: chat.ListTopicsRequest (*ListTopicsResponse)(nil), // 6: chat.ListTopicsResponse (*GetTopicRequest)(nil), // 7: chat.GetTopicRequest (*CreateTopicRequest)(nil), // 8: chat.CreateTopicRequest (*UpdateTopicRequest)(nil), // 9: chat.UpdateTopicRequest (*PostMessageRequest)(nil), // 10: chat.PostMessageRequest (*AgentPostMessageRequest)(nil), // 11: chat.AgentPostMessageRequest (*PostMessageResponse)(nil), // 12: chat.PostMessageResponse (*GetMessageRequest)(nil), // 13: chat.GetMessageRequest (*HistoryRequest)(nil), // 14: chat.HistoryRequest (*HistoryResponse)(nil), // 15: chat.HistoryResponse (*SubscribeRequest)(nil), // 16: chat.SubscribeRequest (*DeliveryMessage)(nil), // 17: chat.DeliveryMessage (*AcknowledgeRequest)(nil), // 18: chat.AcknowledgeRequest (*AcknowledgeResponse)(nil), // 19: chat.AcknowledgeResponse (*Participant)(nil), // 20: chat.Participant (*GetParticipantRequest)(nil), // 21: chat.GetParticipantRequest (*BatchGetParticipantsRequest)(nil), // 22: chat.BatchGetParticipantsRequest (*BatchGetParticipantsResponse)(nil), // 23: chat.BatchGetParticipantsResponse (*ListTopicParticipantsRequest)(nil), // 24: chat.ListTopicParticipantsRequest (*ListTopicParticipantsResponse)(nil), // 25: chat.ListTopicParticipantsResponse (*GetMyParticipantRequest)(nil), // 26: chat.GetMyParticipantRequest (*RegisterSelfProfileRequest)(nil), // 27: chat.RegisterSelfProfileRequest (*SyncMyTopicMembershipsRequest)(nil), // 28: chat.SyncMyTopicMembershipsRequest (*SyncMyTopicMembershipsResponse)(nil), // 29: chat.SyncMyTopicMembershipsResponse (*UploadSelfAvatarRequest)(nil), // 30: chat.UploadSelfAvatarRequest (*DeleteSelfAvatarRequest)(nil), // 31: chat.DeleteSelfAvatarRequest nil, // 32: chat.Participant.AliasesEntry nil, // 33: chat.RegisterSelfProfileRequest.AliasesEntry (*timestamppb.Timestamp)(nil), // 34: google.protobuf.Timestamp } var file_chat_proto_depIdxs = []int32{ 34, // 0: chat.Topic.created_at:type_name -> google.protobuf.Timestamp 0, // 1: chat.Message.author_type:type_name -> chat.AuthorType 1, // 2: chat.Message.source:type_name -> chat.MessageSource 34, // 3: chat.Message.created_at:type_name -> google.protobuf.Timestamp 3, // 4: chat.Message.delegation:type_name -> chat.AgentDelegation 2, // 5: chat.ListTopicsResponse.topics:type_name -> chat.Topic 0, // 6: chat.PostMessageRequest.author_type:type_name -> chat.AuthorType 1, // 7: chat.PostMessageRequest.source:type_name -> chat.MessageSource 3, // 8: chat.PostMessageRequest.delegation:type_name -> chat.AgentDelegation 3, // 9: chat.AgentPostMessageRequest.delegation:type_name -> chat.AgentDelegation 4, // 10: chat.PostMessageResponse.message:type_name -> chat.Message 4, // 11: chat.HistoryResponse.messages:type_name -> chat.Message 4, // 12: chat.DeliveryMessage.message:type_name -> chat.Message 0, // 13: chat.Participant.author_type:type_name -> chat.AuthorType 32, // 14: chat.Participant.aliases:type_name -> chat.Participant.AliasesEntry 34, // 15: chat.Participant.last_seen_at:type_name -> google.protobuf.Timestamp 34, // 16: chat.Participant.created_at:type_name -> google.protobuf.Timestamp 34, // 17: chat.Participant.updated_at:type_name -> google.protobuf.Timestamp 20, // 18: chat.BatchGetParticipantsResponse.participants:type_name -> chat.Participant 20, // 19: chat.ListTopicParticipantsResponse.participants:type_name -> chat.Participant 33, // 20: chat.RegisterSelfProfileRequest.aliases:type_name -> chat.RegisterSelfProfileRequest.AliasesEntry 5, // 21: chat.ChatService.ListTopics:input_type -> chat.ListTopicsRequest 7, // 22: chat.ChatService.GetTopic:input_type -> chat.GetTopicRequest 8, // 23: chat.ChatService.CreateTopic:input_type -> chat.CreateTopicRequest 9, // 24: chat.ChatService.UpdateTopic:input_type -> chat.UpdateTopicRequest 10, // 25: chat.ChatService.PostMessage:input_type -> chat.PostMessageRequest 11, // 26: chat.ChatService.AgentPostMessage:input_type -> chat.AgentPostMessageRequest 13, // 27: chat.ChatService.GetMessage:input_type -> chat.GetMessageRequest 14, // 28: chat.ChatService.History:input_type -> chat.HistoryRequest 16, // 29: chat.ChatService.Subscribe:input_type -> chat.SubscribeRequest 18, // 30: chat.ChatService.Acknowledge:input_type -> chat.AcknowledgeRequest 21, // 31: chat.ChatService.GetParticipant:input_type -> chat.GetParticipantRequest 22, // 32: chat.ChatService.BatchGetParticipants:input_type -> chat.BatchGetParticipantsRequest 24, // 33: chat.ChatService.ListTopicParticipants:input_type -> chat.ListTopicParticipantsRequest 26, // 34: chat.ChatService.GetMyParticipant:input_type -> chat.GetMyParticipantRequest 27, // 35: chat.ChatService.RegisterSelfProfile:input_type -> chat.RegisterSelfProfileRequest 28, // 36: chat.ChatService.SyncMyTopicMemberships:input_type -> chat.SyncMyTopicMembershipsRequest 30, // 37: chat.ChatService.UploadSelfAvatar:input_type -> chat.UploadSelfAvatarRequest 31, // 38: chat.ChatService.DeleteSelfAvatar:input_type -> chat.DeleteSelfAvatarRequest 6, // 39: chat.ChatService.ListTopics:output_type -> chat.ListTopicsResponse 2, // 40: chat.ChatService.GetTopic:output_type -> chat.Topic 2, // 41: chat.ChatService.CreateTopic:output_type -> chat.Topic 2, // 42: chat.ChatService.UpdateTopic:output_type -> chat.Topic 12, // 43: chat.ChatService.PostMessage:output_type -> chat.PostMessageResponse 12, // 44: chat.ChatService.AgentPostMessage:output_type -> chat.PostMessageResponse 4, // 45: chat.ChatService.GetMessage:output_type -> chat.Message 15, // 46: chat.ChatService.History:output_type -> chat.HistoryResponse 17, // 47: chat.ChatService.Subscribe:output_type -> chat.DeliveryMessage 19, // 48: chat.ChatService.Acknowledge:output_type -> chat.AcknowledgeResponse 20, // 49: chat.ChatService.GetParticipant:output_type -> chat.Participant 23, // 50: chat.ChatService.BatchGetParticipants:output_type -> chat.BatchGetParticipantsResponse 25, // 51: chat.ChatService.ListTopicParticipants:output_type -> chat.ListTopicParticipantsResponse 20, // 52: chat.ChatService.GetMyParticipant:output_type -> chat.Participant 20, // 53: chat.ChatService.RegisterSelfProfile:output_type -> chat.Participant 29, // 54: chat.ChatService.SyncMyTopicMemberships:output_type -> chat.SyncMyTopicMembershipsResponse 20, // 55: chat.ChatService.UploadSelfAvatar:output_type -> chat.Participant 20, // 56: chat.ChatService.DeleteSelfAvatar:output_type -> chat.Participant 39, // [39:57] is the sub-list for method output_type 21, // [21:39] is the sub-list for method input_type 21, // [21:21] is the sub-list for extension type_name 21, // [21:21] is the sub-list for extension extendee 0, // [0:21] is the sub-list for field type_name } func init() { file_chat_proto_init() } func file_chat_proto_init() { if File_chat_proto != nil { return } file_chat_proto_msgTypes[2].OneofWrappers = []any{} file_chat_proto_msgTypes[5].OneofWrappers = []any{ (*GetTopicRequest_Id)(nil), (*GetTopicRequest_Slug)(nil), } file_chat_proto_msgTypes[8].OneofWrappers = []any{} file_chat_proto_msgTypes[9].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_chat_proto_rawDesc), len(file_chat_proto_rawDesc)), NumEnums: 2, NumMessages: 32, NumExtensions: 0, NumServices: 1, }, GoTypes: file_chat_proto_goTypes, DependencyIndexes: file_chat_proto_depIdxs, EnumInfos: file_chat_proto_enumTypes, MessageInfos: file_chat_proto_msgTypes, }.Build() File_chat_proto = out.File file_chat_proto_goTypes = nil file_chat_proto_depIdxs = nil }