diff --git a/chat.pb.go b/chat.pb.go index 079d434..f90473b 100644 --- a/chat.pb.go +++ b/chat.pb.go @@ -205,6 +205,64 @@ func (x *Topic) GetCreatedAt() *timestamppb.Timestamp { 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 @@ -218,13 +276,15 @@ type Message struct { 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 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // 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[1] + mi := &file_chat_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -236,7 +296,7 @@ func (x *Message) String() string { func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[1] + mi := &file_chat_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -249,7 +309,7 @@ func (x *Message) ProtoReflect() protoreflect.Message { // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{1} + return file_chat_proto_rawDescGZIP(), []int{2} } func (x *Message) GetId() string { @@ -329,6 +389,13 @@ func (x *Message) GetCreatedAt() *timestamppb.Timestamp { 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 @@ -337,7 +404,7 @@ type ListTopicsRequest struct { func (x *ListTopicsRequest) Reset() { *x = ListTopicsRequest{} - mi := &file_chat_proto_msgTypes[2] + mi := &file_chat_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -349,7 +416,7 @@ func (x *ListTopicsRequest) String() string { func (*ListTopicsRequest) ProtoMessage() {} func (x *ListTopicsRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[2] + mi := &file_chat_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -362,7 +429,7 @@ func (x *ListTopicsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTopicsRequest.ProtoReflect.Descriptor instead. func (*ListTopicsRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{2} + return file_chat_proto_rawDescGZIP(), []int{3} } type ListTopicsResponse struct { @@ -374,7 +441,7 @@ type ListTopicsResponse struct { func (x *ListTopicsResponse) Reset() { *x = ListTopicsResponse{} - mi := &file_chat_proto_msgTypes[3] + mi := &file_chat_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -386,7 +453,7 @@ func (x *ListTopicsResponse) String() string { func (*ListTopicsResponse) ProtoMessage() {} func (x *ListTopicsResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[3] + mi := &file_chat_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -399,7 +466,7 @@ func (x *ListTopicsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTopicsResponse.ProtoReflect.Descriptor instead. func (*ListTopicsResponse) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{3} + return file_chat_proto_rawDescGZIP(), []int{4} } func (x *ListTopicsResponse) GetTopics() []*Topic { @@ -422,7 +489,7 @@ type GetTopicRequest struct { func (x *GetTopicRequest) Reset() { *x = GetTopicRequest{} - mi := &file_chat_proto_msgTypes[4] + mi := &file_chat_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -434,7 +501,7 @@ func (x *GetTopicRequest) String() string { func (*GetTopicRequest) ProtoMessage() {} func (x *GetTopicRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[4] + mi := &file_chat_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -447,7 +514,7 @@ func (x *GetTopicRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTopicRequest.ProtoReflect.Descriptor instead. func (*GetTopicRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{4} + return file_chat_proto_rawDescGZIP(), []int{5} } func (x *GetTopicRequest) GetSelector() isGetTopicRequest_Selector { @@ -501,7 +568,7 @@ type CreateTopicRequest struct { func (x *CreateTopicRequest) Reset() { *x = CreateTopicRequest{} - mi := &file_chat_proto_msgTypes[5] + mi := &file_chat_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -513,7 +580,7 @@ func (x *CreateTopicRequest) String() string { func (*CreateTopicRequest) ProtoMessage() {} func (x *CreateTopicRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[5] + mi := &file_chat_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -526,7 +593,7 @@ func (x *CreateTopicRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTopicRequest.ProtoReflect.Descriptor instead. func (*CreateTopicRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{5} + return file_chat_proto_rawDescGZIP(), []int{6} } func (x *CreateTopicRequest) GetSlug() string { @@ -553,7 +620,7 @@ type UpdateTopicRequest struct { func (x *UpdateTopicRequest) Reset() { *x = UpdateTopicRequest{} - mi := &file_chat_proto_msgTypes[6] + mi := &file_chat_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -565,7 +632,7 @@ func (x *UpdateTopicRequest) String() string { func (*UpdateTopicRequest) ProtoMessage() {} func (x *UpdateTopicRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[6] + mi := &file_chat_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -578,7 +645,7 @@ func (x *UpdateTopicRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTopicRequest.ProtoReflect.Descriptor instead. func (*UpdateTopicRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{6} + return file_chat_proto_rawDescGZIP(), []int{7} } func (x *UpdateTopicRequest) GetId() string { @@ -606,13 +673,15 @@ type PostMessageRequest struct { // 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"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // 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[7] + mi := &file_chat_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -624,7 +693,7 @@ func (x *PostMessageRequest) String() string { func (*PostMessageRequest) ProtoMessage() {} func (x *PostMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[7] + mi := &file_chat_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -637,7 +706,7 @@ func (x *PostMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PostMessageRequest.ProtoReflect.Descriptor instead. func (*PostMessageRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{7} + return file_chat_proto_rawDescGZIP(), []int{8} } func (x *PostMessageRequest) GetTopicId() string { @@ -689,6 +758,13 @@ func (x *PostMessageRequest) GetIdempotencyKey() string { 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"` @@ -697,13 +773,16 @@ type AgentPostMessageRequest struct { // 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"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // 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[8] + mi := &file_chat_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -715,7 +794,7 @@ func (x *AgentPostMessageRequest) String() string { func (*AgentPostMessageRequest) ProtoMessage() {} func (x *AgentPostMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[8] + mi := &file_chat_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -728,7 +807,7 @@ func (x *AgentPostMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentPostMessageRequest.ProtoReflect.Descriptor instead. func (*AgentPostMessageRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{8} + return file_chat_proto_rawDescGZIP(), []int{9} } func (x *AgentPostMessageRequest) GetTopicId() string { @@ -759,6 +838,13 @@ func (x *AgentPostMessageRequest) GetIdempotencyKey() string { 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"` @@ -769,7 +855,7 @@ type PostMessageResponse struct { func (x *PostMessageResponse) Reset() { *x = PostMessageResponse{} - mi := &file_chat_proto_msgTypes[9] + mi := &file_chat_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -781,7 +867,7 @@ func (x *PostMessageResponse) String() string { func (*PostMessageResponse) ProtoMessage() {} func (x *PostMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[9] + mi := &file_chat_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -794,7 +880,7 @@ func (x *PostMessageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PostMessageResponse.ProtoReflect.Descriptor instead. func (*PostMessageResponse) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{9} + return file_chat_proto_rawDescGZIP(), []int{10} } func (x *PostMessageResponse) GetMessage() *Message { @@ -820,7 +906,7 @@ type GetMessageRequest struct { func (x *GetMessageRequest) Reset() { *x = GetMessageRequest{} - mi := &file_chat_proto_msgTypes[10] + mi := &file_chat_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -832,7 +918,7 @@ func (x *GetMessageRequest) String() string { func (*GetMessageRequest) ProtoMessage() {} func (x *GetMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[10] + mi := &file_chat_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -845,7 +931,7 @@ func (x *GetMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessageRequest.ProtoReflect.Descriptor instead. func (*GetMessageRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{10} + return file_chat_proto_rawDescGZIP(), []int{11} } func (x *GetMessageRequest) GetMessageId() string { @@ -872,7 +958,7 @@ type HistoryRequest struct { func (x *HistoryRequest) Reset() { *x = HistoryRequest{} - mi := &file_chat_proto_msgTypes[11] + mi := &file_chat_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -884,7 +970,7 @@ func (x *HistoryRequest) String() string { func (*HistoryRequest) ProtoMessage() {} func (x *HistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[11] + mi := &file_chat_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -897,7 +983,7 @@ func (x *HistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoryRequest.ProtoReflect.Descriptor instead. func (*HistoryRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{11} + return file_chat_proto_rawDescGZIP(), []int{12} } func (x *HistoryRequest) GetTopicId() string { @@ -939,7 +1025,7 @@ type HistoryResponse struct { func (x *HistoryResponse) Reset() { *x = HistoryResponse{} - mi := &file_chat_proto_msgTypes[12] + mi := &file_chat_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -951,7 +1037,7 @@ func (x *HistoryResponse) String() string { func (*HistoryResponse) ProtoMessage() {} func (x *HistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[12] + mi := &file_chat_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -964,7 +1050,7 @@ func (x *HistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HistoryResponse.ProtoReflect.Descriptor instead. func (*HistoryResponse) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{12} + return file_chat_proto_rawDescGZIP(), []int{13} } func (x *HistoryResponse) GetMessages() []*Message { @@ -990,7 +1076,7 @@ type SubscribeRequest struct { func (x *SubscribeRequest) Reset() { *x = SubscribeRequest{} - mi := &file_chat_proto_msgTypes[13] + mi := &file_chat_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1002,7 +1088,7 @@ func (x *SubscribeRequest) String() string { func (*SubscribeRequest) ProtoMessage() {} func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[13] + mi := &file_chat_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1015,7 +1101,7 @@ func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. func (*SubscribeRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{13} + return file_chat_proto_rawDescGZIP(), []int{14} } func (x *SubscribeRequest) GetTopicId() string { @@ -1052,7 +1138,7 @@ type DeliveryMessage struct { func (x *DeliveryMessage) Reset() { *x = DeliveryMessage{} - mi := &file_chat_proto_msgTypes[14] + mi := &file_chat_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1064,7 +1150,7 @@ func (x *DeliveryMessage) String() string { func (*DeliveryMessage) ProtoMessage() {} func (x *DeliveryMessage) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[14] + mi := &file_chat_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1077,7 +1163,7 @@ func (x *DeliveryMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use DeliveryMessage.ProtoReflect.Descriptor instead. func (*DeliveryMessage) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{14} + return file_chat_proto_rawDescGZIP(), []int{15} } func (x *DeliveryMessage) GetMessage() *Message { @@ -1129,7 +1215,7 @@ type AcknowledgeRequest struct { func (x *AcknowledgeRequest) Reset() { *x = AcknowledgeRequest{} - mi := &file_chat_proto_msgTypes[15] + mi := &file_chat_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1141,7 +1227,7 @@ func (x *AcknowledgeRequest) String() string { func (*AcknowledgeRequest) ProtoMessage() {} func (x *AcknowledgeRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[15] + mi := &file_chat_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1154,7 +1240,7 @@ func (x *AcknowledgeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AcknowledgeRequest.ProtoReflect.Descriptor instead. func (*AcknowledgeRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{15} + return file_chat_proto_rawDescGZIP(), []int{16} } func (x *AcknowledgeRequest) GetTopicId() string { @@ -1194,7 +1280,7 @@ type AcknowledgeResponse struct { func (x *AcknowledgeResponse) Reset() { *x = AcknowledgeResponse{} - mi := &file_chat_proto_msgTypes[16] + mi := &file_chat_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1206,7 +1292,7 @@ func (x *AcknowledgeResponse) String() string { func (*AcknowledgeResponse) ProtoMessage() {} func (x *AcknowledgeResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[16] + mi := &file_chat_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1219,7 +1305,7 @@ func (x *AcknowledgeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AcknowledgeResponse.ProtoReflect.Descriptor instead. func (*AcknowledgeResponse) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{16} + return file_chat_proto_rawDescGZIP(), []int{17} } func (x *AcknowledgeResponse) GetLastAckSequence() int64 { @@ -1257,7 +1343,7 @@ type Participant struct { func (x *Participant) Reset() { *x = Participant{} - mi := &file_chat_proto_msgTypes[17] + mi := &file_chat_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1269,7 +1355,7 @@ func (x *Participant) String() string { func (*Participant) ProtoMessage() {} func (x *Participant) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[17] + mi := &file_chat_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1282,7 +1368,7 @@ func (x *Participant) ProtoReflect() protoreflect.Message { // Deprecated: Use Participant.ProtoReflect.Descriptor instead. func (*Participant) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{17} + return file_chat_proto_rawDescGZIP(), []int{18} } func (x *Participant) GetAuthorId() string { @@ -1399,7 +1485,7 @@ type GetParticipantRequest struct { func (x *GetParticipantRequest) Reset() { *x = GetParticipantRequest{} - mi := &file_chat_proto_msgTypes[18] + mi := &file_chat_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1411,7 +1497,7 @@ func (x *GetParticipantRequest) String() string { func (*GetParticipantRequest) ProtoMessage() {} func (x *GetParticipantRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[18] + mi := &file_chat_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1424,7 +1510,7 @@ func (x *GetParticipantRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetParticipantRequest.ProtoReflect.Descriptor instead. func (*GetParticipantRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{18} + return file_chat_proto_rawDescGZIP(), []int{19} } func (x *GetParticipantRequest) GetAuthorId() string { @@ -1443,7 +1529,7 @@ type BatchGetParticipantsRequest struct { func (x *BatchGetParticipantsRequest) Reset() { *x = BatchGetParticipantsRequest{} - mi := &file_chat_proto_msgTypes[19] + mi := &file_chat_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1455,7 +1541,7 @@ func (x *BatchGetParticipantsRequest) String() string { func (*BatchGetParticipantsRequest) ProtoMessage() {} func (x *BatchGetParticipantsRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[19] + mi := &file_chat_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1468,7 +1554,7 @@ func (x *BatchGetParticipantsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchGetParticipantsRequest.ProtoReflect.Descriptor instead. func (*BatchGetParticipantsRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{19} + return file_chat_proto_rawDescGZIP(), []int{20} } func (x *BatchGetParticipantsRequest) GetAuthorIds() []string { @@ -1487,7 +1573,7 @@ type BatchGetParticipantsResponse struct { func (x *BatchGetParticipantsResponse) Reset() { *x = BatchGetParticipantsResponse{} - mi := &file_chat_proto_msgTypes[20] + mi := &file_chat_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1499,7 +1585,7 @@ func (x *BatchGetParticipantsResponse) String() string { func (*BatchGetParticipantsResponse) ProtoMessage() {} func (x *BatchGetParticipantsResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[20] + mi := &file_chat_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1512,7 +1598,7 @@ func (x *BatchGetParticipantsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BatchGetParticipantsResponse.ProtoReflect.Descriptor instead. func (*BatchGetParticipantsResponse) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{20} + return file_chat_proto_rawDescGZIP(), []int{21} } func (x *BatchGetParticipantsResponse) GetParticipants() []*Participant { @@ -1531,7 +1617,7 @@ type ListTopicParticipantsRequest struct { func (x *ListTopicParticipantsRequest) Reset() { *x = ListTopicParticipantsRequest{} - mi := &file_chat_proto_msgTypes[21] + mi := &file_chat_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1543,7 +1629,7 @@ func (x *ListTopicParticipantsRequest) String() string { func (*ListTopicParticipantsRequest) ProtoMessage() {} func (x *ListTopicParticipantsRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[21] + mi := &file_chat_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1556,7 +1642,7 @@ func (x *ListTopicParticipantsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTopicParticipantsRequest.ProtoReflect.Descriptor instead. func (*ListTopicParticipantsRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{21} + return file_chat_proto_rawDescGZIP(), []int{22} } func (x *ListTopicParticipantsRequest) GetTopicId() string { @@ -1575,7 +1661,7 @@ type ListTopicParticipantsResponse struct { func (x *ListTopicParticipantsResponse) Reset() { *x = ListTopicParticipantsResponse{} - mi := &file_chat_proto_msgTypes[22] + mi := &file_chat_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1587,7 +1673,7 @@ func (x *ListTopicParticipantsResponse) String() string { func (*ListTopicParticipantsResponse) ProtoMessage() {} func (x *ListTopicParticipantsResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[22] + mi := &file_chat_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1600,7 +1686,7 @@ func (x *ListTopicParticipantsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListTopicParticipantsResponse.ProtoReflect.Descriptor instead. func (*ListTopicParticipantsResponse) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{22} + return file_chat_proto_rawDescGZIP(), []int{23} } func (x *ListTopicParticipantsResponse) GetParticipants() []*Participant { @@ -1618,7 +1704,7 @@ type GetMyParticipantRequest struct { func (x *GetMyParticipantRequest) Reset() { *x = GetMyParticipantRequest{} - mi := &file_chat_proto_msgTypes[23] + mi := &file_chat_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1630,7 +1716,7 @@ func (x *GetMyParticipantRequest) String() string { func (*GetMyParticipantRequest) ProtoMessage() {} func (x *GetMyParticipantRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[23] + mi := &file_chat_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1643,7 +1729,7 @@ func (x *GetMyParticipantRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMyParticipantRequest.ProtoReflect.Descriptor instead. func (*GetMyParticipantRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{23} + return file_chat_proto_rawDescGZIP(), []int{24} } // RegisterSelfProfileRequest carries only mutable public profile fields. @@ -1662,7 +1748,7 @@ type RegisterSelfProfileRequest struct { func (x *RegisterSelfProfileRequest) Reset() { *x = RegisterSelfProfileRequest{} - mi := &file_chat_proto_msgTypes[24] + mi := &file_chat_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1674,7 +1760,7 @@ func (x *RegisterSelfProfileRequest) String() string { func (*RegisterSelfProfileRequest) ProtoMessage() {} func (x *RegisterSelfProfileRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[24] + mi := &file_chat_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1687,7 +1773,7 @@ func (x *RegisterSelfProfileRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterSelfProfileRequest.ProtoReflect.Descriptor instead. func (*RegisterSelfProfileRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{24} + return file_chat_proto_rawDescGZIP(), []int{25} } func (x *RegisterSelfProfileRequest) GetDisplayName() string { @@ -1735,7 +1821,7 @@ type SyncMyTopicMembershipsRequest struct { func (x *SyncMyTopicMembershipsRequest) Reset() { *x = SyncMyTopicMembershipsRequest{} - mi := &file_chat_proto_msgTypes[25] + mi := &file_chat_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1747,7 +1833,7 @@ func (x *SyncMyTopicMembershipsRequest) String() string { func (*SyncMyTopicMembershipsRequest) ProtoMessage() {} func (x *SyncMyTopicMembershipsRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[25] + mi := &file_chat_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1760,7 +1846,7 @@ func (x *SyncMyTopicMembershipsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncMyTopicMembershipsRequest.ProtoReflect.Descriptor instead. func (*SyncMyTopicMembershipsRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{25} + return file_chat_proto_rawDescGZIP(), []int{26} } func (x *SyncMyTopicMembershipsRequest) GetTopicIds() []string { @@ -1781,7 +1867,7 @@ type SyncMyTopicMembershipsResponse struct { func (x *SyncMyTopicMembershipsResponse) Reset() { *x = SyncMyTopicMembershipsResponse{} - mi := &file_chat_proto_msgTypes[26] + mi := &file_chat_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1793,7 +1879,7 @@ func (x *SyncMyTopicMembershipsResponse) String() string { func (*SyncMyTopicMembershipsResponse) ProtoMessage() {} func (x *SyncMyTopicMembershipsResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[26] + mi := &file_chat_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1806,7 +1892,7 @@ func (x *SyncMyTopicMembershipsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncMyTopicMembershipsResponse.ProtoReflect.Descriptor instead. func (*SyncMyTopicMembershipsResponse) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{26} + return file_chat_proto_rawDescGZIP(), []int{27} } func (x *SyncMyTopicMembershipsResponse) GetTopicIds() []string { @@ -1843,7 +1929,7 @@ type UploadSelfAvatarRequest struct { func (x *UploadSelfAvatarRequest) Reset() { *x = UploadSelfAvatarRequest{} - mi := &file_chat_proto_msgTypes[27] + mi := &file_chat_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1855,7 +1941,7 @@ func (x *UploadSelfAvatarRequest) String() string { func (*UploadSelfAvatarRequest) ProtoMessage() {} func (x *UploadSelfAvatarRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[27] + mi := &file_chat_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1868,7 +1954,7 @@ func (x *UploadSelfAvatarRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UploadSelfAvatarRequest.ProtoReflect.Descriptor instead. func (*UploadSelfAvatarRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{27} + return file_chat_proto_rawDescGZIP(), []int{28} } func (x *UploadSelfAvatarRequest) GetContent() []byte { @@ -1893,7 +1979,7 @@ type DeleteSelfAvatarRequest struct { func (x *DeleteSelfAvatarRequest) Reset() { *x = DeleteSelfAvatarRequest{} - mi := &file_chat_proto_msgTypes[28] + mi := &file_chat_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1905,7 +1991,7 @@ func (x *DeleteSelfAvatarRequest) String() string { func (*DeleteSelfAvatarRequest) ProtoMessage() {} func (x *DeleteSelfAvatarRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_proto_msgTypes[28] + mi := &file_chat_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1918,7 +2004,7 @@ func (x *DeleteSelfAvatarRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteSelfAvatarRequest.ProtoReflect.Descriptor instead. func (*DeleteSelfAvatarRequest) Descriptor() ([]byte, []int) { - return file_chat_proto_rawDescGZIP(), []int{28} + return file_chat_proto_rawDescGZIP(), []int{29} } var File_chat_proto protoreflect.FileDescriptor @@ -1932,7 +2018,10 @@ const file_chat_proto_rawDesc = "" + "\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\"\xb7\x03\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" + @@ -1948,8 +2037,12 @@ const file_chat_proto_rawDesc = "" + " \x01(\x05R\n" + "replyDepth\x129\n" + "\n" + - "created_at\x18\v \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAtB\x16\n" + - "\x14_reply_to_message_id\"\x13\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" + @@ -1963,7 +2056,7 @@ const file_chat_proto_rawDesc = "" + "\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\"\xbb\x02\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" + @@ -1972,14 +2065,22 @@ const file_chat_proto_rawDesc = "" + "\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\x0eidempotencyKeyB\x16\n" + - "\x14_reply_to_message_id\"\xc3\x01\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\x0eidempotencyKeyB\x16\n" + - "\x14_reply_to_message_id\"^\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" + @@ -2116,103 +2217,107 @@ func file_chat_proto_rawDescGZIP() []byte { } var file_chat_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 31) +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 - (*Message)(nil), // 3: chat.Message - (*ListTopicsRequest)(nil), // 4: chat.ListTopicsRequest - (*ListTopicsResponse)(nil), // 5: chat.ListTopicsResponse - (*GetTopicRequest)(nil), // 6: chat.GetTopicRequest - (*CreateTopicRequest)(nil), // 7: chat.CreateTopicRequest - (*UpdateTopicRequest)(nil), // 8: chat.UpdateTopicRequest - (*PostMessageRequest)(nil), // 9: chat.PostMessageRequest - (*AgentPostMessageRequest)(nil), // 10: chat.AgentPostMessageRequest - (*PostMessageResponse)(nil), // 11: chat.PostMessageResponse - (*GetMessageRequest)(nil), // 12: chat.GetMessageRequest - (*HistoryRequest)(nil), // 13: chat.HistoryRequest - (*HistoryResponse)(nil), // 14: chat.HistoryResponse - (*SubscribeRequest)(nil), // 15: chat.SubscribeRequest - (*DeliveryMessage)(nil), // 16: chat.DeliveryMessage - (*AcknowledgeRequest)(nil), // 17: chat.AcknowledgeRequest - (*AcknowledgeResponse)(nil), // 18: chat.AcknowledgeResponse - (*Participant)(nil), // 19: chat.Participant - (*GetParticipantRequest)(nil), // 20: chat.GetParticipantRequest - (*BatchGetParticipantsRequest)(nil), // 21: chat.BatchGetParticipantsRequest - (*BatchGetParticipantsResponse)(nil), // 22: chat.BatchGetParticipantsResponse - (*ListTopicParticipantsRequest)(nil), // 23: chat.ListTopicParticipantsRequest - (*ListTopicParticipantsResponse)(nil), // 24: chat.ListTopicParticipantsResponse - (*GetMyParticipantRequest)(nil), // 25: chat.GetMyParticipantRequest - (*RegisterSelfProfileRequest)(nil), // 26: chat.RegisterSelfProfileRequest - (*SyncMyTopicMembershipsRequest)(nil), // 27: chat.SyncMyTopicMembershipsRequest - (*SyncMyTopicMembershipsResponse)(nil), // 28: chat.SyncMyTopicMembershipsResponse - (*UploadSelfAvatarRequest)(nil), // 29: chat.UploadSelfAvatarRequest - (*DeleteSelfAvatarRequest)(nil), // 30: chat.DeleteSelfAvatarRequest - nil, // 31: chat.Participant.AliasesEntry - nil, // 32: chat.RegisterSelfProfileRequest.AliasesEntry - (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp + (*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{ - 33, // 0: chat.Topic.created_at:type_name -> google.protobuf.Timestamp + 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 - 33, // 3: chat.Message.created_at:type_name -> google.protobuf.Timestamp - 2, // 4: chat.ListTopicsResponse.topics:type_name -> chat.Topic - 0, // 5: chat.PostMessageRequest.author_type:type_name -> chat.AuthorType - 1, // 6: chat.PostMessageRequest.source:type_name -> chat.MessageSource - 3, // 7: chat.PostMessageResponse.message:type_name -> chat.Message - 3, // 8: chat.HistoryResponse.messages:type_name -> chat.Message - 3, // 9: chat.DeliveryMessage.message:type_name -> chat.Message - 0, // 10: chat.Participant.author_type:type_name -> chat.AuthorType - 31, // 11: chat.Participant.aliases:type_name -> chat.Participant.AliasesEntry - 33, // 12: chat.Participant.last_seen_at:type_name -> google.protobuf.Timestamp - 33, // 13: chat.Participant.created_at:type_name -> google.protobuf.Timestamp - 33, // 14: chat.Participant.updated_at:type_name -> google.protobuf.Timestamp - 19, // 15: chat.BatchGetParticipantsResponse.participants:type_name -> chat.Participant - 19, // 16: chat.ListTopicParticipantsResponse.participants:type_name -> chat.Participant - 32, // 17: chat.RegisterSelfProfileRequest.aliases:type_name -> chat.RegisterSelfProfileRequest.AliasesEntry - 4, // 18: chat.ChatService.ListTopics:input_type -> chat.ListTopicsRequest - 6, // 19: chat.ChatService.GetTopic:input_type -> chat.GetTopicRequest - 7, // 20: chat.ChatService.CreateTopic:input_type -> chat.CreateTopicRequest - 8, // 21: chat.ChatService.UpdateTopic:input_type -> chat.UpdateTopicRequest - 9, // 22: chat.ChatService.PostMessage:input_type -> chat.PostMessageRequest - 10, // 23: chat.ChatService.AgentPostMessage:input_type -> chat.AgentPostMessageRequest - 12, // 24: chat.ChatService.GetMessage:input_type -> chat.GetMessageRequest - 13, // 25: chat.ChatService.History:input_type -> chat.HistoryRequest - 15, // 26: chat.ChatService.Subscribe:input_type -> chat.SubscribeRequest - 17, // 27: chat.ChatService.Acknowledge:input_type -> chat.AcknowledgeRequest - 20, // 28: chat.ChatService.GetParticipant:input_type -> chat.GetParticipantRequest - 21, // 29: chat.ChatService.BatchGetParticipants:input_type -> chat.BatchGetParticipantsRequest - 23, // 30: chat.ChatService.ListTopicParticipants:input_type -> chat.ListTopicParticipantsRequest - 25, // 31: chat.ChatService.GetMyParticipant:input_type -> chat.GetMyParticipantRequest - 26, // 32: chat.ChatService.RegisterSelfProfile:input_type -> chat.RegisterSelfProfileRequest - 27, // 33: chat.ChatService.SyncMyTopicMemberships:input_type -> chat.SyncMyTopicMembershipsRequest - 29, // 34: chat.ChatService.UploadSelfAvatar:input_type -> chat.UploadSelfAvatarRequest - 30, // 35: chat.ChatService.DeleteSelfAvatar:input_type -> chat.DeleteSelfAvatarRequest - 5, // 36: chat.ChatService.ListTopics:output_type -> chat.ListTopicsResponse - 2, // 37: chat.ChatService.GetTopic:output_type -> chat.Topic - 2, // 38: chat.ChatService.CreateTopic:output_type -> chat.Topic - 2, // 39: chat.ChatService.UpdateTopic:output_type -> chat.Topic - 11, // 40: chat.ChatService.PostMessage:output_type -> chat.PostMessageResponse - 11, // 41: chat.ChatService.AgentPostMessage:output_type -> chat.PostMessageResponse - 3, // 42: chat.ChatService.GetMessage:output_type -> chat.Message - 14, // 43: chat.ChatService.History:output_type -> chat.HistoryResponse - 16, // 44: chat.ChatService.Subscribe:output_type -> chat.DeliveryMessage - 18, // 45: chat.ChatService.Acknowledge:output_type -> chat.AcknowledgeResponse - 19, // 46: chat.ChatService.GetParticipant:output_type -> chat.Participant - 22, // 47: chat.ChatService.BatchGetParticipants:output_type -> chat.BatchGetParticipantsResponse - 24, // 48: chat.ChatService.ListTopicParticipants:output_type -> chat.ListTopicParticipantsResponse - 19, // 49: chat.ChatService.GetMyParticipant:output_type -> chat.Participant - 19, // 50: chat.ChatService.RegisterSelfProfile:output_type -> chat.Participant - 28, // 51: chat.ChatService.SyncMyTopicMemberships:output_type -> chat.SyncMyTopicMembershipsResponse - 19, // 52: chat.ChatService.UploadSelfAvatar:output_type -> chat.Participant - 19, // 53: chat.ChatService.DeleteSelfAvatar:output_type -> chat.Participant - 36, // [36:54] is the sub-list for method output_type - 18, // [18:36] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 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() } @@ -2220,20 +2325,20 @@ func file_chat_proto_init() { if File_chat_proto != nil { return } - file_chat_proto_msgTypes[1].OneofWrappers = []any{} - file_chat_proto_msgTypes[4].OneofWrappers = []any{ + file_chat_proto_msgTypes[2].OneofWrappers = []any{} + file_chat_proto_msgTypes[5].OneofWrappers = []any{ (*GetTopicRequest_Id)(nil), (*GetTopicRequest_Slug)(nil), } - file_chat_proto_msgTypes[7].OneofWrappers = []any{} 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: 31, + NumMessages: 32, NumExtensions: 0, NumServices: 1, }, diff --git a/chat.proto b/chat.proto index 5c0b51a..669136c 100644 --- a/chat.proto +++ b/chat.proto @@ -143,6 +143,17 @@ message Topic { google.protobuf.Timestamp created_at = 4; } +// 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. +message AgentDelegation { + // Canonical Chat author_id (UUID) of the target AGENT participant. + string target_author_id = 1; + // Stage 8 kinds: INVESTIGATE. + string kind = 2; +} + message Message { string id = 1; // UUID, canonical message id int64 sequence = 2; // server-assigned monotonic sequence (ordering + durable cursor) @@ -155,6 +166,8 @@ message Message { string root_message_id = 9; // root of the reply chain (== id for non-replies) int32 reply_depth = 10; // 0 for non-replies, parent depth + 1 for replies; hard max 20 google.protobuf.Timestamp created_at = 11; // original creation time; age = now - created_at + // Optional; only set on AGENT messages that intentionally delegate. + optional AgentDelegation delegation = 12; } message ListTopicsRequest {} @@ -190,6 +203,8 @@ message PostMessageRequest { // Idempotency key: retrying PostMessage with the same author_id and key // returns the original message instead of creating a duplicate. string idempotency_key = 7; + // Agents must not use this path; Human HTTP PostMessage rejects delegation. + optional AgentDelegation delegation = 8; } message AgentPostMessageRequest { @@ -199,6 +214,9 @@ message AgentPostMessageRequest { // Mandatory: retrying with the same key returns the original message // (duplicated=true) instead of creating a duplicate. string idempotency_key = 4; + // Optional machine-readable delegation. Server validates target is an + // existing AGENT participant; sender identity comes from auth, not client. + optional AgentDelegation delegation = 5; } message PostMessageResponse {