// Code modified by go.wit.com/apps/autogenpb DO NOT EDIT. // // user defined Mutex locks were auto added // // autogenpb version & build time: v0.0.79 2025-09-01_01:52:08_UTC // autogenpb auto generates Sort(), Unique() and Marshal() functions // go install go.wit.com/apps/autogenpb@latest // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.33.0 // protoc v3.21.12 // source: chat.proto package chatpb // autogenpb changed the package name import ( reflect "reflect" sync "sync" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) 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) ) type Who int32 const ( Who_NOONE Who = 0 Who_REGEX Who = 1 Who_USER Who = 2 ) // Enum value maps for Who. var ( Who_name = map[int32]string{ 0: "NOONE", 1: "REGEX", 2: "USER", } Who_value = map[string]int32{ "NOONE": 0, "REGEX": 1, "USER": 2, } ) func (x Who) Enum() *Who { p := new(Who) *p = x return p } func (x Who) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Who) Descriptor() protoreflect.EnumDescriptor { return file_chat_proto_enumTypes[0].Descriptor() } func (Who) Type() protoreflect.EnumType { return &file_chat_proto_enumTypes[0] } func (x Who) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Who.Descriptor instead. func (Who) EnumDescriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{0} } type GeminiRequest struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` Config *Config `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` Contents []*Content `protobuf:"bytes,3,rep,name=contents,proto3" json:"contents,omitempty"` } func (x *GeminiRequest) Reset() { *x = GeminiRequest{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GeminiRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GeminiRequest) ProtoMessage() {} func (x *GeminiRequest) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GeminiRequest.ProtoReflect.Descriptor instead. func (*GeminiRequest) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{0} } func (x *GeminiRequest) GetModel() string { if x != nil { return x.Model } return "" } func (x *GeminiRequest) GetConfig() *Config { if x != nil { return x.Config } return nil } func (x *GeminiRequest) GetContents() []*Content { if x != nil { return x.Contents } return nil } // Abort signal for the request type AbortSignal struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *AbortSignal) Reset() { *x = AbortSignal{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AbortSignal) String() string { return protoimpl.X.MessageStringOf(x) } func (*AbortSignal) ProtoMessage() {} func (x *AbortSignal) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AbortSignal.ProtoReflect.Descriptor instead. func (*AbortSignal) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{1} } type Schema struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Properties map[string]*Schema `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Required []string `protobuf:"bytes,3,rep,name=required,proto3" json:"required,omitempty"` Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` Items *Schema `protobuf:"bytes,5,opt,name=items,proto3" json:"items,omitempty"` Enum []string `protobuf:"bytes,6,rep,name=enum,proto3" json:"enum,omitempty"` Minimum int32 `protobuf:"varint,7,opt,name=minimum,proto3" json:"minimum,omitempty"` MinLength int32 `protobuf:"varint,8,opt,name=minLength,proto3" json:"minLength,omitempty"` MinItems int32 `protobuf:"varint,9,opt,name=minItems,proto3" json:"minItems,omitempty"` DefaultValue *structpb.Value `protobuf:"bytes,10,opt,name=default_value,json=default,proto3" json:"default_value,omitempty"` } func (x *Schema) Reset() { *x = Schema{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Schema) String() string { return protoimpl.X.MessageStringOf(x) } func (*Schema) ProtoMessage() {} func (x *Schema) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Schema.ProtoReflect.Descriptor instead. func (*Schema) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{2} } func (x *Schema) GetType() string { if x != nil { return x.Type } return "" } func (x *Schema) GetProperties() map[string]*Schema { if x != nil { return x.Properties } return nil } func (x *Schema) GetRequired() []string { if x != nil { return x.Required } return nil } func (x *Schema) GetDescription() string { if x != nil { return x.Description } return "" } func (x *Schema) GetItems() *Schema { if x != nil { return x.Items } return nil } func (x *Schema) GetEnum() []string { if x != nil { return x.Enum } return nil } func (x *Schema) GetMinimum() int32 { if x != nil { return x.Minimum } return 0 } func (x *Schema) GetMinLength() int32 { if x != nil { return x.MinLength } return 0 } func (x *Schema) GetMinItems() int32 { if x != nil { return x.MinItems } return 0 } func (x *Schema) GetDefaultValue() *structpb.Value { if x != nil { return x.DefaultValue } return nil } type FunctionDeclaration struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` ParametersJsonSchema *Schema `protobuf:"bytes,3,opt,name=parameters_json_schema,json=parametersJsonSchema,proto3" json:"parameters_json_schema,omitempty"` } func (x *FunctionDeclaration) Reset() { *x = FunctionDeclaration{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FunctionDeclaration) String() string { return protoimpl.X.MessageStringOf(x) } func (*FunctionDeclaration) ProtoMessage() {} func (x *FunctionDeclaration) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FunctionDeclaration.ProtoReflect.Descriptor instead. func (*FunctionDeclaration) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{3} } func (x *FunctionDeclaration) GetName() string { if x != nil { return x.Name } return "" } func (x *FunctionDeclaration) GetDescription() string { if x != nil { return x.Description } return "" } func (x *FunctionDeclaration) GetParametersJsonSchema() *Schema { if x != nil { return x.ParametersJsonSchema } return nil } type GoogleSearch struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GoogleSearch) Reset() { *x = GoogleSearch{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GoogleSearch) String() string { return protoimpl.X.MessageStringOf(x) } func (*GoogleSearch) ProtoMessage() {} func (x *GoogleSearch) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GoogleSearch.ProtoReflect.Descriptor instead. func (*GoogleSearch) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{4} } type Tool struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FunctionDeclarations []*FunctionDeclaration `protobuf:"bytes,1,rep,name=functionDeclarations,proto3" json:"functionDeclarations,omitempty"` GoogleSearch *GoogleSearch `protobuf:"bytes,2,opt,name=googleSearch,proto3" json:"googleSearch,omitempty"` } func (x *Tool) Reset() { *x = Tool{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Tool) String() string { return protoimpl.X.MessageStringOf(x) } func (*Tool) ProtoMessage() {} func (x *Tool) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Tool.ProtoReflect.Descriptor instead. func (*Tool) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{5} } func (x *Tool) GetFunctionDeclarations() []*FunctionDeclaration { if x != nil { return x.FunctionDeclarations } return nil } func (x *Tool) GetGoogleSearch() *GoogleSearch { if x != nil { return x.GoogleSearch } return nil } // Configuration for the request type Config struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Temperature float64 `protobuf:"fixed64,2,opt,name=temperature,proto3" json:"temperature,omitempty"` TopP float64 `protobuf:"fixed64,3,opt,name=topP,proto3" json:"topP,omitempty"` SystemInstruction string `protobuf:"bytes,4,opt,name=systemInstruction,proto3" json:"systemInstruction,omitempty"` ResponseJsonSchema *ResponseJsonSchema `protobuf:"bytes,5,opt,name=responseJsonSchema,proto3" json:"responseJsonSchema,omitempty"` ResponseMimeType string `protobuf:"bytes,6,opt,name=responseMimeType,proto3" json:"responseMimeType,omitempty"` AbortSignal *AbortSignal `protobuf:"bytes,7,opt,name=abort_signal,json=abortSignal,proto3" json:"abort_signal,omitempty"` ThinkingConfig *Config_ThinkingConfig `protobuf:"bytes,8,opt,name=thinkingConfig,proto3" json:"thinkingConfig,omitempty"` Tools []*Tool `protobuf:"bytes,9,rep,name=tools,proto3" json:"tools,omitempty"` } func (x *Config) Reset() { *x = Config{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Config) String() string { return protoimpl.X.MessageStringOf(x) } func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Config.ProtoReflect.Descriptor instead. func (*Config) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{6} } func (x *Config) GetTemperature() float64 { if x != nil { return x.Temperature } return 0 } func (x *Config) GetTopP() float64 { if x != nil { return x.TopP } return 0 } func (x *Config) GetSystemInstruction() string { if x != nil { return x.SystemInstruction } return "" } func (x *Config) GetResponseJsonSchema() *ResponseJsonSchema { if x != nil { return x.ResponseJsonSchema } return nil } func (x *Config) GetResponseMimeType() string { if x != nil { return x.ResponseMimeType } return "" } func (x *Config) GetAbortSignal() *AbortSignal { if x != nil { return x.AbortSignal } return nil } func (x *Config) GetThinkingConfig() *Config_ThinkingConfig { if x != nil { return x.ThinkingConfig } return nil } func (x *Config) GetTools() []*Tool { if x != nil { return x.Tools } return nil } // JSON schema for the response type ResponseJsonSchema struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Properties *Properties `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` Required []string `protobuf:"bytes,3,rep,name=required,proto3" json:"required,omitempty"` } func (x *ResponseJsonSchema) Reset() { *x = ResponseJsonSchema{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ResponseJsonSchema) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResponseJsonSchema) ProtoMessage() {} func (x *ResponseJsonSchema) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ResponseJsonSchema.ProtoReflect.Descriptor instead. func (*ResponseJsonSchema) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{7} } func (x *ResponseJsonSchema) GetType() string { if x != nil { return x.Type } return "" } func (x *ResponseJsonSchema) GetProperties() *Properties { if x != nil { return x.Properties } return nil } func (x *ResponseJsonSchema) GetRequired() []string { if x != nil { return x.Required } return nil } // Properties within the JSON schema type Properties struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Reasoning *Reasoning `protobuf:"bytes,1,opt,name=reasoning,proto3" json:"reasoning,omitempty"` NextSpeaker *NextSpeaker `protobuf:"bytes,2,opt,name=next_speaker,json=nextSpeaker,proto3" json:"next_speaker,omitempty"` CorrectedNewStringEscaping *CorrectedNewStringEscaping `protobuf:"bytes,3,opt,name=corrected_new_string_escaping,json=correctedNewStringEscaping,proto3" json:"corrected_new_string_escaping,omitempty"` CorrectedTargetSnippet *CorrectedTargetSnippet `protobuf:"bytes,4,opt,name=corrected_target_snippet,json=correctedTargetSnippet,proto3" json:"corrected_target_snippet,omitempty"` Confidence *Confidence `protobuf:"bytes,5,opt,name=confidence,proto3" json:"confidence,omitempty"` } func (x *Properties) Reset() { *x = Properties{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Properties) String() string { return protoimpl.X.MessageStringOf(x) } func (*Properties) ProtoMessage() {} func (x *Properties) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Properties.ProtoReflect.Descriptor instead. func (*Properties) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{8} } func (x *Properties) GetReasoning() *Reasoning { if x != nil { return x.Reasoning } return nil } func (x *Properties) GetNextSpeaker() *NextSpeaker { if x != nil { return x.NextSpeaker } return nil } func (x *Properties) GetCorrectedNewStringEscaping() *CorrectedNewStringEscaping { if x != nil { return x.CorrectedNewStringEscaping } return nil } func (x *Properties) GetCorrectedTargetSnippet() *CorrectedTargetSnippet { if x != nil { return x.CorrectedTargetSnippet } return nil } func (x *Properties) GetConfidence() *Confidence { if x != nil { return x.Confidence } return nil } type Confidence struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } func (x *Confidence) Reset() { *x = Confidence{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Confidence) String() string { return protoimpl.X.MessageStringOf(x) } func (*Confidence) ProtoMessage() {} func (x *Confidence) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Confidence.ProtoReflect.Descriptor instead. func (*Confidence) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{9} } func (x *Confidence) GetType() string { if x != nil { return x.Type } return "" } func (x *Confidence) GetDescription() string { if x != nil { return x.Description } return "" } type CorrectedTargetSnippet struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } func (x *CorrectedTargetSnippet) Reset() { *x = CorrectedTargetSnippet{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CorrectedTargetSnippet) String() string { return protoimpl.X.MessageStringOf(x) } func (*CorrectedTargetSnippet) ProtoMessage() {} func (x *CorrectedTargetSnippet) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CorrectedTargetSnippet.ProtoReflect.Descriptor instead. func (*CorrectedTargetSnippet) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{10} } func (x *CorrectedTargetSnippet) GetType() string { if x != nil { return x.Type } return "" } func (x *CorrectedTargetSnippet) GetDescription() string { if x != nil { return x.Description } return "" } // Reasoning property type CorrectedNewStringEscaping struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } func (x *CorrectedNewStringEscaping) Reset() { *x = CorrectedNewStringEscaping{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CorrectedNewStringEscaping) String() string { return protoimpl.X.MessageStringOf(x) } func (*CorrectedNewStringEscaping) ProtoMessage() {} func (x *CorrectedNewStringEscaping) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CorrectedNewStringEscaping.ProtoReflect.Descriptor instead. func (*CorrectedNewStringEscaping) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{11} } func (x *CorrectedNewStringEscaping) GetType() string { if x != nil { return x.Type } return "" } func (x *CorrectedNewStringEscaping) GetDescription() string { if x != nil { return x.Description } return "" } type Reasoning struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } func (x *Reasoning) Reset() { *x = Reasoning{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Reasoning) String() string { return protoimpl.X.MessageStringOf(x) } func (*Reasoning) ProtoMessage() {} func (x *Reasoning) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Reasoning.ProtoReflect.Descriptor instead. func (*Reasoning) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{12} } func (x *Reasoning) GetType() string { if x != nil { return x.Type } return "" } func (x *Reasoning) GetDescription() string { if x != nil { return x.Description } return "" } // Next speaker property type NextSpeaker struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Enum []string `protobuf:"bytes,2,rep,name=enum,proto3" json:"enum,omitempty"` Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` } func (x *NextSpeaker) Reset() { *x = NextSpeaker{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NextSpeaker) String() string { return protoimpl.X.MessageStringOf(x) } func (*NextSpeaker) ProtoMessage() {} func (x *NextSpeaker) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use NextSpeaker.ProtoReflect.Descriptor instead. func (*NextSpeaker) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{13} } func (x *NextSpeaker) GetType() string { if x != nil { return x.Type } return "" } func (x *NextSpeaker) GetEnum() []string { if x != nil { return x.Enum } return nil } func (x *NextSpeaker) GetDescription() string { if x != nil { return x.Description } return "" } // Content of the chat type Content struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` Parts []*Part `protobuf:"bytes,2,rep,name=parts,proto3" json:"parts,omitempty"` } func (x *Content) Reset() { *x = Content{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Content) String() string { return protoimpl.X.MessageStringOf(x) } func (*Content) ProtoMessage() {} func (x *Content) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Content.ProtoReflect.Descriptor instead. func (*Content) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{14} } func (x *Content) GetRole() string { if x != nil { return x.Role } return "" } func (x *Content) GetParts() []*Part { if x != nil { return x.Parts } return nil } // Part of the content type Part struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to PartType: // // *Part_Text // *Part_FunctionCall // *Part_FunctionResponse PartType isPart_PartType `protobuf_oneof:"part_type"` ThoughtSignature string `protobuf:"bytes,4,opt,name=thoughtSignature,proto3" json:"thoughtSignature,omitempty"` } func (x *Part) Reset() { *x = Part{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Part) String() string { return protoimpl.X.MessageStringOf(x) } func (*Part) ProtoMessage() {} func (x *Part) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Part.ProtoReflect.Descriptor instead. func (*Part) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{15} } func (m *Part) GetPartType() isPart_PartType { if m != nil { return m.PartType } return nil } func (x *Part) GetText() string { if x, ok := x.GetPartType().(*Part_Text); ok { return x.Text } return "" } func (x *Part) GetFunctionCall() *FunctionCall { if x, ok := x.GetPartType().(*Part_FunctionCall); ok { return x.FunctionCall } return nil } func (x *Part) GetFunctionResponse() *FunctionResponse { if x, ok := x.GetPartType().(*Part_FunctionResponse); ok { return x.FunctionResponse } return nil } func (x *Part) GetThoughtSignature() string { if x != nil { return x.ThoughtSignature } return "" } type isPart_PartType interface { isPart_PartType() } type Part_Text struct { Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` } type Part_FunctionCall struct { FunctionCall *FunctionCall `protobuf:"bytes,2,opt,name=functionCall,proto3,oneof"` } type Part_FunctionResponse struct { FunctionResponse *FunctionResponse `protobuf:"bytes,3,opt,name=functionResponse,proto3,oneof"` } func (*Part_Text) isPart_PartType() {} func (*Part_FunctionCall) isPart_PartType() {} func (*Part_FunctionResponse) isPart_PartType() {} // Function call type FunctionCall struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Args *ArgsInfo `protobuf:"bytes,3,opt,name=args,proto3" json:"args,omitempty"` } func (x *FunctionCall) Reset() { *x = FunctionCall{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FunctionCall) String() string { return protoimpl.X.MessageStringOf(x) } func (*FunctionCall) ProtoMessage() {} func (x *FunctionCall) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FunctionCall.ProtoReflect.Descriptor instead. func (*FunctionCall) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{16} } func (x *FunctionCall) GetName() string { if x != nil { return x.Name } return "" } func (x *FunctionCall) GetArgs() *ArgsInfo { if x != nil { return x.Args } return nil } type ArgsInfo struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AbsolutePath string `protobuf:"bytes,1,opt,name=absolute_path,json=absolutePath,proto3" json:"absolute_path,omitempty"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` Command string `protobuf:"bytes,3,opt,name=command,proto3" json:"command,omitempty"` NewString string `protobuf:"bytes,4,opt,name=new_string,json=newString,proto3" json:"new_string,omitempty"` OldString string `protobuf:"bytes,5,opt,name=old_string,json=oldString,proto3" json:"old_string,omitempty"` ExpectedReplacements int32 `protobuf:"varint,6,opt,name=expected_replacements,json=expectedReplacements,proto3" json:"expected_replacements,omitempty"` FilePath string `protobuf:"bytes,7,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"` Directory string `protobuf:"bytes,8,opt,name=directory,proto3" json:"directory,omitempty"` Path string `protobuf:"bytes,9,opt,name=path,proto3" json:"path,omitempty"` ThinkingConfig string `protobuf:"bytes,10,opt,name=thinkingConfig,proto3" json:"thinkingConfig,omitempty"` Pattern string `protobuf:"bytes,11,opt,name=pattern,proto3" json:"pattern,omitempty"` Content string `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` Fact string `protobuf:"bytes,13,opt,name=fact,proto3" json:"fact,omitempty"` Paths []string `protobuf:"bytes,14,rep,name=paths,proto3" json:"paths,omitempty"` Query string `protobuf:"bytes,15,opt,name=query,proto3" json:"query,omitempty"` } func (x *ArgsInfo) Reset() { *x = ArgsInfo{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ArgsInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ArgsInfo) ProtoMessage() {} func (x *ArgsInfo) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ArgsInfo.ProtoReflect.Descriptor instead. func (*ArgsInfo) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{17} } func (x *ArgsInfo) GetAbsolutePath() string { if x != nil { return x.AbsolutePath } return "" } func (x *ArgsInfo) GetDescription() string { if x != nil { return x.Description } return "" } func (x *ArgsInfo) GetCommand() string { if x != nil { return x.Command } return "" } func (x *ArgsInfo) GetNewString() string { if x != nil { return x.NewString } return "" } func (x *ArgsInfo) GetOldString() string { if x != nil { return x.OldString } return "" } func (x *ArgsInfo) GetExpectedReplacements() int32 { if x != nil { return x.ExpectedReplacements } return 0 } func (x *ArgsInfo) GetFilePath() string { if x != nil { return x.FilePath } return "" } func (x *ArgsInfo) GetDirectory() string { if x != nil { return x.Directory } return "" } func (x *ArgsInfo) GetPath() string { if x != nil { return x.Path } return "" } func (x *ArgsInfo) GetThinkingConfig() string { if x != nil { return x.ThinkingConfig } return "" } func (x *ArgsInfo) GetPattern() string { if x != nil { return x.Pattern } return "" } func (x *ArgsInfo) GetContent() string { if x != nil { return x.Content } return "" } func (x *ArgsInfo) GetFact() string { if x != nil { return x.Fact } return "" } func (x *ArgsInfo) GetPaths() []string { if x != nil { return x.Paths } return nil } func (x *ArgsInfo) GetQuery() string { if x != nil { return x.Query } return "" } // Function response type FunctionResponse struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Response *Response `protobuf:"bytes,3,opt,name=response,proto3" json:"response,omitempty"` } func (x *FunctionResponse) Reset() { *x = FunctionResponse{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FunctionResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FunctionResponse) ProtoMessage() {} func (x *FunctionResponse) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use FunctionResponse.ProtoReflect.Descriptor instead. func (*FunctionResponse) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{18} } func (x *FunctionResponse) GetId() string { if x != nil { return x.Id } return "" } func (x *FunctionResponse) GetName() string { if x != nil { return x.Name } return "" } func (x *FunctionResponse) GetResponse() *Response { if x != nil { return x.Response } return nil } // Response from a function call type Response struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Output string `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` } func (x *Response) Reset() { *x = Response{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Response) String() string { return protoimpl.X.MessageStringOf(x) } func (*Response) ProtoMessage() {} func (x *Response) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Response.ProtoReflect.Descriptor instead. func (*Response) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{19} } func (x *Response) GetOutput() string { if x != nil { return x.Output } return "" } func (x *Response) GetError() string { if x != nil { return x.Error } return "" } type Row struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Fields []string `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` } func (x *Row) Reset() { *x = Row{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Row) String() string { return protoimpl.X.MessageStringOf(x) } func (*Row) ProtoMessage() {} func (x *Row) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Row.ProtoReflect.Descriptor instead. func (*Row) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{20} } func (x *Row) GetFields() []string { if x != nil { return x.Fields } return nil } type Table struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Columns int32 `protobuf:"varint,1,opt,name=columns,proto3" json:"columns,omitempty"` Rows []*Row `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"` } func (x *Table) Reset() { *x = Table{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Table) String() string { return protoimpl.X.MessageStringOf(x) } func (*Table) ProtoMessage() {} func (x *Table) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Table.ProtoReflect.Descriptor instead. func (*Table) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{21} } func (x *Table) GetColumns() int32 { if x != nil { return x.Columns } return 0 } func (x *Table) GetRows() []*Row { if x != nil { return x.Rows } return nil } type ToolCall struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Input string `protobuf:"bytes,2,opt,name=input,proto3" json:"input,omitempty"` Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` OutputStdout string `protobuf:"bytes,4,opt,name=output_stdout,json=outputStdout,proto3" json:"output_stdout,omitempty"` OutputStderr string `protobuf:"bytes,5,opt,name=output_stderr,json=outputStderr,proto3" json:"output_stderr,omitempty"` ExitCode int32 `protobuf:"varint,6,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` } func (x *ToolCall) Reset() { *x = ToolCall{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ToolCall) String() string { return protoimpl.X.MessageStringOf(x) } func (*ToolCall) ProtoMessage() {} func (x *ToolCall) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ToolCall.ProtoReflect.Descriptor instead. func (*ToolCall) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{22} } func (x *ToolCall) GetName() string { if x != nil { return x.Name } return "" } func (x *ToolCall) GetInput() string { if x != nil { return x.Input } return "" } func (x *ToolCall) GetDescription() string { if x != nil { return x.Description } return "" } func (x *ToolCall) GetOutputStdout() string { if x != nil { return x.OutputStdout } return "" } func (x *ToolCall) GetOutputStderr() string { if x != nil { return x.OutputStderr } return "" } func (x *ToolCall) GetExitCode() int32 { if x != nil { return x.ExitCode } return 0 } type CodeSnippet struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"` Content string `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty"` } func (x *CodeSnippet) Reset() { *x = CodeSnippet{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CodeSnippet) String() string { return protoimpl.X.MessageStringOf(x) } func (*CodeSnippet) ProtoMessage() {} func (x *CodeSnippet) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CodeSnippet.ProtoReflect.Descriptor instead. func (*CodeSnippet) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{23} } func (x *CodeSnippet) GetFilename() string { if x != nil { return x.Filename } return "" } func (x *CodeSnippet) GetContent() string { if x != nil { return x.Content } return "" } type ChatEntry struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields From Who `protobuf:"varint,1,opt,name=from,proto3,enum=chatpb.Who" json:"from,omitempty"` Ctime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ctime,proto3" json:"ctime,omitempty"` Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` Table *Table `protobuf:"bytes,4,opt,name=table,proto3" json:"table,omitempty"` ToolCalls []*ToolCall `protobuf:"bytes,5,rep,name=ToolCalls,proto3" json:"ToolCalls,omitempty"` ContentFile string `protobuf:"bytes,6,opt,name=ContentFile,proto3" json:"ContentFile,omitempty"` Uuid string `protobuf:"bytes,7,opt,name=uuid,proto3" json:"uuid,omitempty"` Snippets []*CodeSnippet `protobuf:"bytes,8,rep,name=Snippets,proto3" json:"Snippets,omitempty"` Parts []*Part `protobuf:"bytes,9,rep,name=parts,proto3" json:"parts,omitempty"` GeminiRequest *GeminiRequest `protobuf:"bytes,10,opt,name=GeminiRequest,proto3" json:"GeminiRequest,omitempty"` RequestCounter int32 `protobuf:"varint,11,opt,name=RequestCounter,proto3" json:"RequestCounter,omitempty"` Paths []string `protobuf:"bytes,12,rep,name=paths,proto3" json:"paths,omitempty"` } func (x *ChatEntry) Reset() { *x = ChatEntry{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChatEntry) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChatEntry) ProtoMessage() {} func (x *ChatEntry) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ChatEntry.ProtoReflect.Descriptor instead. func (*ChatEntry) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{24} } func (x *ChatEntry) GetFrom() Who { if x != nil { return x.From } return Who_NOONE } func (x *ChatEntry) GetCtime() *timestamppb.Timestamp { if x != nil { return x.Ctime } return nil } func (x *ChatEntry) GetContent() string { if x != nil { return x.Content } return "" } func (x *ChatEntry) GetTable() *Table { if x != nil { return x.Table } return nil } func (x *ChatEntry) GetToolCalls() []*ToolCall { if x != nil { return x.ToolCalls } return nil } func (x *ChatEntry) GetContentFile() string { if x != nil { return x.ContentFile } return "" } func (x *ChatEntry) GetUuid() string { if x != nil { return x.Uuid } return "" } func (x *ChatEntry) GetSnippets() []*CodeSnippet { if x != nil { return x.Snippets } return nil } func (x *ChatEntry) GetParts() []*Part { if x != nil { return x.Parts } return nil } func (x *ChatEntry) GetGeminiRequest() *GeminiRequest { if x != nil { return x.GeminiRequest } return nil } func (x *ChatEntry) GetRequestCounter() int32 { if x != nil { return x.RequestCounter } return 0 } func (x *ChatEntry) GetPaths() []string { if x != nil { return x.Paths } return nil } type SessionStats struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *SessionStats) Reset() { *x = SessionStats{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SessionStats) String() string { return protoimpl.X.MessageStringOf(x) } func (*SessionStats) ProtoMessage() {} func (x *SessionStats) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SessionStats.ProtoReflect.Descriptor instead. func (*SessionStats) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{25} } func (x *SessionStats) GetUuid() string { if x != nil { return x.Uuid } return "" } type Chat struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // `autogenpb:unique` `autogenpb:sort` Ctime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ctime,proto3" json:"ctime,omitempty"` ChatName string `protobuf:"bytes,3,opt,name=ChatName,proto3" json:"ChatName,omitempty"` Entries []*ChatEntry `protobuf:"bytes,4,rep,name=Entries,proto3" json:"Entries,omitempty"` Session []*SessionStats `protobuf:"bytes,5,rep,name=Session,proto3" json:"Session,omitempty"` } func (x *Chat) Reset() { *x = Chat{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Chat) String() string { return protoimpl.X.MessageStringOf(x) } func (*Chat) ProtoMessage() {} func (x *Chat) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Chat.ProtoReflect.Descriptor instead. func (*Chat) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{26} } func (x *Chat) GetUuid() string { if x != nil { return x.Uuid } return "" } func (x *Chat) GetCtime() *timestamppb.Timestamp { if x != nil { return x.Ctime } return nil } func (x *Chat) GetChatName() string { if x != nil { return x.ChatName } return "" } func (x *Chat) GetEntries() []*ChatEntry { if x != nil { return x.Entries } return nil } func (x *Chat) GetSession() []*SessionStats { if x != nil { return x.Session } return nil } type Chats struct { sync.RWMutex // auto-added by go.wit.com/apps/autogenpb state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // `autogenpb:uuid:9fd31f10-c25d-4d66-bc8d-5f6eb7c79057` `autogenpb:primary` Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // `autogenpb:version:v0.0.1` Chats []*Chat `protobuf:"bytes,3,rep,name=Chats,proto3" json:"Chats,omitempty"` // THIS MUST BE Chat and then Chats } func (x *Chats) Reset() { *x = Chats{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Chats) String() string { return protoimpl.X.MessageStringOf(x) } func (*Chats) ProtoMessage() {} func (x *Chats) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Chats.ProtoReflect.Descriptor instead. func (*Chats) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{27} } func (x *Chats) GetUuid() string { if x != nil { return x.Uuid } return "" } func (x *Chats) GetVersion() string { if x != nil { return x.Version } return "" } func (x *Chats) GetChats() []*Chat { if x != nil { return x.Chats } return nil } type Config_ThinkingConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IncludeThoughts bool `protobuf:"varint,1,opt,name=includeThoughts,proto3" json:"includeThoughts,omitempty"` ThinkingBudget int32 `protobuf:"varint,2,opt,name=thinkingBudget,proto3" json:"thinkingBudget,omitempty"` } func (x *Config_ThinkingConfig) Reset() { *x = Config_ThinkingConfig{} if protoimpl.UnsafeEnabled { mi := &file_chat_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Config_ThinkingConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*Config_ThinkingConfig) ProtoMessage() {} func (x *Config_ThinkingConfig) ProtoReflect() protoreflect.Message { mi := &file_chat_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Config_ThinkingConfig.ProtoReflect.Descriptor instead. func (*Config_ThinkingConfig) Descriptor() ([]byte, []int) { return file_chat_proto_rawDescGZIP(), []int{6, 0} } func (x *Config_ThinkingConfig) GetIncludeThoughts() bool { if x != nil { return x.IncludeThoughts } return false } func (x *Config_ThinkingConfig) GetThinkingBudget() int32 { if x != nil { return x.ThinkingBudget } return 0 } var File_chat_proto protoreflect.FileDescriptor var file_chat_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7a, 0x0a, 0x0d, 0x47, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2b, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x22, 0xaf, 0x03, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x1a, 0x4d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x91, 0x01, 0x0a, 0x13, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x0e, 0x0a, 0x0c, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x04, 0x54, 0x6f, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x14, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x0c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x22, 0xeb, 0x03, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x6f, 0x70, 0x50, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x74, 0x6f, 0x70, 0x50, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x12, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x0b, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x45, 0x0a, 0x0e, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x1a, 0x62, 0x0a, 0x0e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x22, 0x78, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0xea, 0x02, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x1d, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x73, 0x63, 0x61, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x73, 0x63, 0x61, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x1a, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x73, 0x63, 0x61, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x58, 0x0a, 0x18, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x52, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x42, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4e, 0x0a, 0x16, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x52, 0x0a, 0x1a, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x73, 0x63, 0x61, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x57, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x22, 0xd9, 0x01, 0x0a, 0x04, 0x50, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x46, 0x0a, 0x10, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x10, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x48, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x61, 0x72, 0x67, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0xc9, 0x03, 0x0a, 0x08, 0x61, 0x72, 0x67, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x15, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x63, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x64, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x1d, 0x0a, 0x03, 0x52, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0x42, 0x0a, 0x05, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x08, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x64, 0x65, 0x72, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x43, 0x0a, 0x0b, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xd3, 0x03, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x68, 0x6f, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x30, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x09, 0x54, 0x6f, 0x6f, 0x6c, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x08, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x52, 0x08, 0x53, 0x6e, 0x69, 0x70, 0x70, 0x65, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x0d, 0x47, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x47, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0x22, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x68, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x59, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x05, 0x43, 0x68, 0x61, 0x74, 0x73, 0x2a, 0x25, 0x0a, 0x03, 0x57, 0x68, 0x6f, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x4f, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x47, 0x45, 0x58, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x02, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_chat_proto_rawDescOnce sync.Once file_chat_proto_rawDescData = file_chat_proto_rawDesc ) func file_chat_proto_rawDescGZIP() []byte { file_chat_proto_rawDescOnce.Do(func() { file_chat_proto_rawDescData = protoimpl.X.CompressGZIP(file_chat_proto_rawDescData) }) return file_chat_proto_rawDescData } var file_chat_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 30) var file_chat_proto_goTypes = []interface{}{ (Who)(0), // 0: chatpb.Who (*GeminiRequest)(nil), // 1: chatpb.GeminiRequest (*AbortSignal)(nil), // 2: chatpb.AbortSignal (*Schema)(nil), // 3: chatpb.Schema (*FunctionDeclaration)(nil), // 4: chatpb.FunctionDeclaration (*GoogleSearch)(nil), // 5: chatpb.GoogleSearch (*Tool)(nil), // 6: chatpb.Tool (*Config)(nil), // 7: chatpb.Config (*ResponseJsonSchema)(nil), // 8: chatpb.ResponseJsonSchema (*Properties)(nil), // 9: chatpb.Properties (*Confidence)(nil), // 10: chatpb.Confidence (*CorrectedTargetSnippet)(nil), // 11: chatpb.CorrectedTargetSnippet (*CorrectedNewStringEscaping)(nil), // 12: chatpb.CorrectedNewStringEscaping (*Reasoning)(nil), // 13: chatpb.Reasoning (*NextSpeaker)(nil), // 14: chatpb.NextSpeaker (*Content)(nil), // 15: chatpb.Content (*Part)(nil), // 16: chatpb.Part (*FunctionCall)(nil), // 17: chatpb.FunctionCall (*ArgsInfo)(nil), // 18: chatpb.argsInfo (*FunctionResponse)(nil), // 19: chatpb.FunctionResponse (*Response)(nil), // 20: chatpb.Response (*Row)(nil), // 21: chatpb.Row (*Table)(nil), // 22: chatpb.Table (*ToolCall)(nil), // 23: chatpb.ToolCall (*CodeSnippet)(nil), // 24: chatpb.CodeSnippet (*ChatEntry)(nil), // 25: chatpb.ChatEntry (*SessionStats)(nil), // 26: chatpb.SessionStats (*Chat)(nil), // 27: chatpb.Chat (*Chats)(nil), // 28: chatpb.Chats nil, // 29: chatpb.Schema.PropertiesEntry (*Config_ThinkingConfig)(nil), // 30: chatpb.Config.ThinkingConfig (*structpb.Value)(nil), // 31: google.protobuf.Value (*timestamppb.Timestamp)(nil), // 32: google.protobuf.Timestamp } var file_chat_proto_depIdxs = []int32{ 7, // 0: chatpb.GeminiRequest.config:type_name -> chatpb.Config 15, // 1: chatpb.GeminiRequest.contents:type_name -> chatpb.Content 29, // 2: chatpb.Schema.properties:type_name -> chatpb.Schema.PropertiesEntry 3, // 3: chatpb.Schema.items:type_name -> chatpb.Schema 31, // 4: chatpb.Schema.default_value:type_name -> google.protobuf.Value 3, // 5: chatpb.FunctionDeclaration.parameters_json_schema:type_name -> chatpb.Schema 4, // 6: chatpb.Tool.functionDeclarations:type_name -> chatpb.FunctionDeclaration 5, // 7: chatpb.Tool.googleSearch:type_name -> chatpb.GoogleSearch 8, // 8: chatpb.Config.responseJsonSchema:type_name -> chatpb.ResponseJsonSchema 2, // 9: chatpb.Config.abort_signal:type_name -> chatpb.AbortSignal 30, // 10: chatpb.Config.thinkingConfig:type_name -> chatpb.Config.ThinkingConfig 6, // 11: chatpb.Config.tools:type_name -> chatpb.Tool 9, // 12: chatpb.ResponseJsonSchema.properties:type_name -> chatpb.Properties 13, // 13: chatpb.Properties.reasoning:type_name -> chatpb.Reasoning 14, // 14: chatpb.Properties.next_speaker:type_name -> chatpb.NextSpeaker 12, // 15: chatpb.Properties.corrected_new_string_escaping:type_name -> chatpb.CorrectedNewStringEscaping 11, // 16: chatpb.Properties.corrected_target_snippet:type_name -> chatpb.CorrectedTargetSnippet 10, // 17: chatpb.Properties.confidence:type_name -> chatpb.Confidence 16, // 18: chatpb.Content.parts:type_name -> chatpb.Part 17, // 19: chatpb.Part.functionCall:type_name -> chatpb.FunctionCall 19, // 20: chatpb.Part.functionResponse:type_name -> chatpb.FunctionResponse 18, // 21: chatpb.FunctionCall.args:type_name -> chatpb.argsInfo 20, // 22: chatpb.FunctionResponse.response:type_name -> chatpb.Response 21, // 23: chatpb.Table.rows:type_name -> chatpb.Row 0, // 24: chatpb.ChatEntry.from:type_name -> chatpb.Who 32, // 25: chatpb.ChatEntry.ctime:type_name -> google.protobuf.Timestamp 22, // 26: chatpb.ChatEntry.table:type_name -> chatpb.Table 23, // 27: chatpb.ChatEntry.ToolCalls:type_name -> chatpb.ToolCall 24, // 28: chatpb.ChatEntry.Snippets:type_name -> chatpb.CodeSnippet 16, // 29: chatpb.ChatEntry.parts:type_name -> chatpb.Part 1, // 30: chatpb.ChatEntry.GeminiRequest:type_name -> chatpb.GeminiRequest 32, // 31: chatpb.Chat.ctime:type_name -> google.protobuf.Timestamp 25, // 32: chatpb.Chat.Entries:type_name -> chatpb.ChatEntry 26, // 33: chatpb.Chat.Session:type_name -> chatpb.SessionStats 27, // 34: chatpb.Chats.Chats:type_name -> chatpb.Chat 3, // 35: chatpb.Schema.PropertiesEntry.value:type_name -> chatpb.Schema 36, // [36:36] is the sub-list for method output_type 36, // [36:36] is the sub-list for method input_type 36, // [36:36] is the sub-list for extension type_name 36, // [36:36] is the sub-list for extension extendee 0, // [0:36] 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 } if !protoimpl.UnsafeEnabled { file_chat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GeminiRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AbortSignal); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Schema); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FunctionDeclaration); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoogleSearch); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Tool); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Config); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResponseJsonSchema); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Properties); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Confidence); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CorrectedTargetSnippet); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CorrectedNewStringEscaping); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Reasoning); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NextSpeaker); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Content); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Part); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FunctionCall); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArgsInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FunctionResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Response); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Row); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Table); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ToolCall); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CodeSnippet); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChatEntry); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SessionStats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Chat); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Chats); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_chat_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Config_ThinkingConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_chat_proto_msgTypes[15].OneofWrappers = []interface{}{ (*Part_Text)(nil), (*Part_FunctionCall)(nil), (*Part_FunctionResponse)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_chat_proto_rawDesc, NumEnums: 1, NumMessages: 30, NumExtensions: 0, NumServices: 0, }, 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_rawDesc = nil file_chat_proto_goTypes = nil file_chat_proto_depIdxs = nil }