{"version":3,"sources":["../src/clients/protos/common_pb.js","../src/clients/protos/talk-api_pb.js","../src/clients/protos/webrtc_pb.js","../src/clients/protos/assistant-deployment_pb.js","../src/clients/protos/assistant-tool_pb.js","../src/clients/protos/assistant-http-log_pb.js","../src/clients/protos/assistant-knowledge_pb.js","../src/clients/protos/assistant-provider_pb.js","../src/clients/protos/assistant-api_pb.js","../src/hooks/use-select-input-device-agent.ts","../src/hooks/use-observable-state.ts","../src/hooks/observables/voice-agent.ts","../src/constants/index.ts","../src/utils/rapida_client.ts","../src/utils/index.ts","../src/devices/device-manager.ts","../src/agents/voice-agent.ts","../src/types/agent-event.ts","../src/types/message.ts","../src/types/channel.ts","../src/agents/index.ts","../src/types/connection-state.ts","../src/clients/talk.ts","../src/utils/rapida_header.ts","../src/clients/index.ts","../src/utils/rapida_region.ts","../src/types/feedback.ts","../src/clients/assistant.ts","../src/clients/webrtc.ts","../src/audio/grpc-signaling-manager.ts","../src/audio/webrtc-peer-manager.ts","../src/audio/audio-media-manager.ts","../src/types/agent-callback.ts","../src/audio/message-protocol-handler.ts","../src/audio/webrtc-grpc-transport.ts","../src/audio/compatibility.ts","../src/components/device-selector.tsx"],"sourcesContent":["// source: common.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n *     field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() { return this || window || global || self || Function('return this')(); }).call(null);\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\nvar google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js');\ngoog.object.extend(proto, google_protobuf_struct_pb);\ngoog.exportSymbol('proto.Argument', null, global);\ngoog.exportSymbol('proto.AssistantConversation', null, global);\ngoog.exportSymbol('proto.AssistantConversationContext', null, global);\ngoog.exportSymbol('proto.AssistantConversationMessage', null, global);\ngoog.exportSymbol('proto.AssistantConversationRecording', null, global);\ngoog.exportSymbol('proto.AssistantConversationTelephonyEvent', null, global);\ngoog.exportSymbol('proto.AssistantDefinition', null, global);\ngoog.exportSymbol('proto.AssistantMessage', null, global);\ngoog.exportSymbol('proto.AuditActor', null, global);\ngoog.exportSymbol('proto.BaseResponse', null, global);\ngoog.exportSymbol('proto.Criteria', null, global);\ngoog.exportSymbol('proto.Error', null, global);\ngoog.exportSymbol('proto.FieldSelector', null, global);\ngoog.exportSymbol('proto.FunctionCall', null, global);\ngoog.exportSymbol('proto.GetAllAssistantConversationRequest', null, global);\ngoog.exportSymbol('proto.GetAllAssistantConversationResponse', null, global);\ngoog.exportSymbol('proto.GetAllConversationMessageRequest', null, global);\ngoog.exportSymbol('proto.GetAllConversationMessageResponse', null, global);\ngoog.exportSymbol('proto.Knowledge', null, global);\ngoog.exportSymbol('proto.Message', null, global);\ngoog.exportSymbol('proto.Message.MessageCase', null, global);\ngoog.exportSymbol('proto.Metadata', null, global);\ngoog.exportSymbol('proto.Metric', null, global);\ngoog.exportSymbol('proto.Ordering', null, global);\ngoog.exportSymbol('proto.Organization', null, global);\ngoog.exportSymbol('proto.Paginate', null, global);\ngoog.exportSymbol('proto.Paginated', null, global);\ngoog.exportSymbol('proto.Source', null, global);\ngoog.exportSymbol('proto.SystemMessage', null, global);\ngoog.exportSymbol('proto.Tag', null, global);\ngoog.exportSymbol('proto.TextChatCompletePrompt', null, global);\ngoog.exportSymbol('proto.TextPrompt', null, global);\ngoog.exportSymbol('proto.ToolCall', null, global);\ngoog.exportSymbol('proto.ToolMessage', null, global);\ngoog.exportSymbol('proto.ToolMessage.Tool', null, global);\ngoog.exportSymbol('proto.User', null, global);\ngoog.exportSymbol('proto.UserMessage', null, global);\ngoog.exportSymbol('proto.Variable', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.FieldSelector = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.FieldSelector, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.FieldSelector.displayName = 'proto.FieldSelector';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AssistantDefinition = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AssistantDefinition, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.AssistantDefinition.displayName = 'proto.AssistantDefinition';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Criteria = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Criteria, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Criteria.displayName = 'proto.Criteria';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Error = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Error, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Error.displayName = 'proto.Error';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Paginate = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Paginate, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Paginate.displayName = 'proto.Paginate';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Paginated = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Paginated, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Paginated.displayName = 'proto.Paginated';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Ordering = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Ordering, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Ordering.displayName = 'proto.Ordering';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.User = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.User, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.User.displayName = 'proto.User';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AuditActor = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AuditActor, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.AuditActor.displayName = 'proto.AuditActor';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.BaseResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.BaseResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.BaseResponse.displayName = 'proto.BaseResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Metadata = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Metadata, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Metadata.displayName = 'proto.Metadata';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Argument = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Argument, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Argument.displayName = 'proto.Argument';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Variable = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Variable, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Variable.displayName = 'proto.Variable';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Tag = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.Tag.repeatedFields_, null);\n};\ngoog.inherits(proto.Tag, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Tag.displayName = 'proto.Tag';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Organization = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Organization, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Organization.displayName = 'proto.Organization';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Metric = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.Metric, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Metric.displayName = 'proto.Metric';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AssistantMessage = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.AssistantMessage.repeatedFields_, null);\n};\ngoog.inherits(proto.AssistantMessage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.AssistantMessage.displayName = 'proto.AssistantMessage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.SystemMessage = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.SystemMessage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.SystemMessage.displayName = 'proto.SystemMessage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.UserMessage = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.UserMessage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.UserMessage.displayName = 'proto.UserMessage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ToolMessage = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.ToolMessage.repeatedFields_, null);\n};\ngoog.inherits(proto.ToolMessage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.ToolMessage.displayName = 'proto.ToolMessage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ToolMessage.Tool = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ToolMessage.Tool, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.ToolMessage.Tool.displayName = 'proto.ToolMessage.Tool';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Message = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.Message.oneofGroups_);\n};\ngoog.inherits(proto.Message, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Message.displayName = 'proto.Message';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.ToolCall = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.ToolCall, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.ToolCall.displayName = 'proto.ToolCall';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.FunctionCall = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.FunctionCall, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.FunctionCall.displayName = 'proto.FunctionCall';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.Knowledge = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, 500, proto.Knowledge.repeatedFields_, null);\n};\ngoog.inherits(proto.Knowledge, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.Knowledge.displayName = 'proto.Knowledge';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.TextPrompt = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.TextPrompt, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.TextPrompt.displayName = 'proto.TextPrompt';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.TextChatCompletePrompt = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.TextChatCompletePrompt.repeatedFields_, null);\n};\ngoog.inherits(proto.TextChatCompletePrompt, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.TextChatCompletePrompt.displayName = 'proto.TextChatCompletePrompt';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AssistantConversationMessage = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, 500, proto.AssistantConversationMessage.repeatedFields_, null);\n};\ngoog.inherits(proto.AssistantConversationMessage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.AssistantConversationMessage.displayName = 'proto.AssistantConversationMessage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AssistantConversationContext = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AssistantConversationContext, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.AssistantConversationContext.displayName = 'proto.AssistantConversationContext';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AssistantConversationRecording = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AssistantConversationRecording, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.AssistantConversationRecording.displayName = 'proto.AssistantConversationRecording';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AssistantConversationTelephonyEvent = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.AssistantConversationTelephonyEvent, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.AssistantConversationTelephonyEvent.displayName = 'proto.AssistantConversationTelephonyEvent';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.AssistantConversation = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, 500, proto.AssistantConversation.repeatedFields_, null);\n};\ngoog.inherits(proto.AssistantConversation, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.AssistantConversation.displayName = 'proto.AssistantConversation';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetAllAssistantConversationRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.GetAllAssistantConversationRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.GetAllAssistantConversationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.GetAllAssistantConversationRequest.displayName = 'proto.GetAllAssistantConversationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetAllAssistantConversationResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.GetAllAssistantConversationResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.GetAllAssistantConversationResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.GetAllAssistantConversationResponse.displayName = 'proto.GetAllAssistantConversationResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetAllConversationMessageRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.GetAllConversationMessageRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.GetAllConversationMessageRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.GetAllConversationMessageRequest.displayName = 'proto.GetAllConversationMessageRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.GetAllConversationMessageResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.GetAllConversationMessageResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.GetAllConversationMessageResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.GetAllConversationMessageResponse.displayName = 'proto.GetAllConversationMessageResponse';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.FieldSelector.prototype.toObject = function(opt_includeInstance) {\n  return proto.FieldSelector.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.FieldSelector} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.FieldSelector.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    field: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.FieldSelector}\n */\nproto.FieldSelector.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.FieldSelector;\n  return proto.FieldSelector.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.FieldSelector} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.FieldSelector}\n */\nproto.FieldSelector.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setField(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.FieldSelector.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.FieldSelector.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.FieldSelector} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.FieldSelector.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getField();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string field = 1;\n * @return {string}\n */\nproto.FieldSelector.prototype.getField = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.FieldSelector} returns this\n */\nproto.FieldSelector.prototype.setField = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AssistantDefinition.prototype.toObject = function(opt_includeInstance) {\n  return proto.AssistantDefinition.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.AssistantDefinition} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantDefinition.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    version: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AssistantDefinition}\n */\nproto.AssistantDefinition.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.AssistantDefinition;\n  return proto.AssistantDefinition.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AssistantDefinition} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AssistantDefinition}\n */\nproto.AssistantDefinition.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setVersion(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AssistantDefinition.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.AssistantDefinition.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AssistantDefinition} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantDefinition.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getVersion();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.AssistantDefinition.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantDefinition} returns this\n */\nproto.AssistantDefinition.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string version = 2;\n * @return {string}\n */\nproto.AssistantDefinition.prototype.getVersion = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantDefinition} returns this\n */\nproto.AssistantDefinition.prototype.setVersion = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Criteria.prototype.toObject = function(opt_includeInstance) {\n  return proto.Criteria.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Criteria} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Criteria.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    key: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    value: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    logic: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Criteria}\n */\nproto.Criteria.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Criteria;\n  return proto.Criteria.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Criteria} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Criteria}\n */\nproto.Criteria.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setKey(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setValue(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setLogic(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Criteria.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Criteria.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Criteria} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Criteria.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getKey();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getValue();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getLogic();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string key = 1;\n * @return {string}\n */\nproto.Criteria.prototype.getKey = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Criteria} returns this\n */\nproto.Criteria.prototype.setKey = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string value = 2;\n * @return {string}\n */\nproto.Criteria.prototype.getValue = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Criteria} returns this\n */\nproto.Criteria.prototype.setValue = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string logic = 3;\n * @return {string}\n */\nproto.Criteria.prototype.getLogic = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Criteria} returns this\n */\nproto.Criteria.prototype.setLogic = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Error.prototype.toObject = function(opt_includeInstance) {\n  return proto.Error.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Error} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Error.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    errorcode: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    errormessage: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    humanmessage: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Error}\n */\nproto.Error.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Error;\n  return proto.Error.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Error} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Error}\n */\nproto.Error.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setErrorcode(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setErrormessage(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setHumanmessage(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Error.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Error.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Error} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Error.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getErrorcode();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getErrormessage();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getHumanmessage();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 errorCode = 1;\n * @return {string}\n */\nproto.Error.prototype.getErrorcode = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Error} returns this\n */\nproto.Error.prototype.setErrorcode = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string errorMessage = 2;\n * @return {string}\n */\nproto.Error.prototype.getErrormessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Error} returns this\n */\nproto.Error.prototype.setErrormessage = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string humanMessage = 3;\n * @return {string}\n */\nproto.Error.prototype.getHumanmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Error} returns this\n */\nproto.Error.prototype.setHumanmessage = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Paginate.prototype.toObject = function(opt_includeInstance) {\n  return proto.Paginate.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Paginate} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Paginate.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    page: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    pagesize: jspb.Message.getFieldWithDefault(msg, 2, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Paginate}\n */\nproto.Paginate.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Paginate;\n  return proto.Paginate.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Paginate} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Paginate}\n */\nproto.Paginate.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setPage(value);\n      break;\n    case 2:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setPagesize(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Paginate.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Paginate.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Paginate} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Paginate.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getPage();\n  if (f !== 0) {\n    writer.writeUint32(\n      1,\n      f\n    );\n  }\n  f = message.getPagesize();\n  if (f !== 0) {\n    writer.writeUint32(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint32 page = 1;\n * @return {number}\n */\nproto.Paginate.prototype.getPage = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Paginate} returns this\n */\nproto.Paginate.prototype.setPage = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional uint32 pageSize = 2;\n * @return {number}\n */\nproto.Paginate.prototype.getPagesize = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Paginate} returns this\n */\nproto.Paginate.prototype.setPagesize = function(value) {\n  return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Paginated.prototype.toObject = function(opt_includeInstance) {\n  return proto.Paginated.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Paginated} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Paginated.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    currentpage: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    totalitem: jspb.Message.getFieldWithDefault(msg, 2, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Paginated}\n */\nproto.Paginated.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Paginated;\n  return proto.Paginated.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Paginated} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Paginated}\n */\nproto.Paginated.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setCurrentpage(value);\n      break;\n    case 2:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setTotalitem(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Paginated.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Paginated.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Paginated} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Paginated.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCurrentpage();\n  if (f !== 0) {\n    writer.writeUint32(\n      1,\n      f\n    );\n  }\n  f = message.getTotalitem();\n  if (f !== 0) {\n    writer.writeUint32(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint32 currentPage = 1;\n * @return {number}\n */\nproto.Paginated.prototype.getCurrentpage = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Paginated} returns this\n */\nproto.Paginated.prototype.setCurrentpage = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional uint32 totalItem = 2;\n * @return {number}\n */\nproto.Paginated.prototype.getTotalitem = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Paginated} returns this\n */\nproto.Paginated.prototype.setTotalitem = function(value) {\n  return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Ordering.prototype.toObject = function(opt_includeInstance) {\n  return proto.Ordering.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Ordering} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Ordering.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    column: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    order: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Ordering}\n */\nproto.Ordering.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Ordering;\n  return proto.Ordering.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Ordering} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Ordering}\n */\nproto.Ordering.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setColumn(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setOrder(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Ordering.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Ordering.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Ordering} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Ordering.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getColumn();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getOrder();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string column = 1;\n * @return {string}\n */\nproto.Ordering.prototype.getColumn = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Ordering} returns this\n */\nproto.Ordering.prototype.setColumn = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string order = 2;\n * @return {string}\n */\nproto.Ordering.prototype.getOrder = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Ordering} returns this\n */\nproto.Ordering.prototype.setOrder = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.User.prototype.toObject = function(opt_includeInstance) {\n  return proto.User.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.User} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.User.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    email: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    role: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 5, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.User}\n */\nproto.User.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.User;\n  return proto.User.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.User} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.User}\n */\nproto.User.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setEmail(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRole(value);\n      break;\n    case 6:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.User.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.User.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.User} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.User.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getEmail();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getRole();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      6,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.User.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.User.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string email = 3;\n * @return {string}\n */\nproto.User.prototype.getEmail = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setEmail = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string role = 4;\n * @return {string}\n */\nproto.User.prototype.getRole = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setRole = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 6;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.User.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.User} returns this\n*/\nproto.User.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 6, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.User} returns this\n */\nproto.User.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.User.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional string status = 5;\n * @return {string}\n */\nproto.User.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.User} returns this\n */\nproto.User.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AuditActor.prototype.toObject = function(opt_includeInstance) {\n  return proto.AuditActor.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.AuditActor} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AuditActor.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    type: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    id: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    displayname: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AuditActor}\n */\nproto.AuditActor.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.AuditActor;\n  return proto.AuditActor.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AuditActor} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AuditActor}\n */\nproto.AuditActor.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setType(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDisplayname(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AuditActor.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.AuditActor.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AuditActor} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AuditActor.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getType();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 3));\n  if (f != null) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string type = 1;\n * @return {string}\n */\nproto.AuditActor.prototype.getType = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AuditActor} returns this\n */\nproto.AuditActor.prototype.setType = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional uint64 id = 2;\n * @return {string}\n */\nproto.AuditActor.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AuditActor} returns this\n */\nproto.AuditActor.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional string displayName = 3;\n * @return {string}\n */\nproto.AuditActor.prototype.getDisplayname = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AuditActor} returns this\n */\nproto.AuditActor.prototype.setDisplayname = function(value) {\n  return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.AuditActor} returns this\n */\nproto.AuditActor.prototype.clearDisplayname = function() {\n  return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AuditActor.prototype.hasDisplayname = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.BaseResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.BaseResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.BaseResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.BaseResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataMap: (f = msg.getDataMap()) ? f.toObject(includeInstance, undefined) : [],\n    error: (f = msg.getError()) && proto.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.BaseResponse}\n */\nproto.BaseResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.BaseResponse;\n  return proto.BaseResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.BaseResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.BaseResponse}\n */\nproto.BaseResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = msg.getDataMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    case 4:\n      var value = new proto.Error;\n      reader.readMessage(value,proto.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.BaseResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.BaseResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.BaseResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.BaseResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      proto.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.BaseResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.BaseResponse} returns this\n */\nproto.BaseResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.BaseResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.BaseResponse} returns this\n */\nproto.BaseResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * map<string, string> data = 3;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.BaseResponse.prototype.getDataMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 3, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.BaseResponse} returns this\n */\nproto.BaseResponse.prototype.clearDataMap = function() {\n  this.getDataMap().clear();\n  return this;};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.BaseResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, proto.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.BaseResponse} returns this\n*/\nproto.BaseResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.BaseResponse} returns this\n */\nproto.BaseResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.BaseResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Metadata.prototype.toObject = function(opt_includeInstance) {\n  return proto.Metadata.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Metadata} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Metadata.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    key: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    value: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Metadata}\n */\nproto.Metadata.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Metadata;\n  return proto.Metadata.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Metadata} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Metadata}\n */\nproto.Metadata.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setKey(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setValue(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Metadata.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Metadata.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Metadata} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Metadata.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getKey();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getValue();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.Metadata.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Metadata} returns this\n */\nproto.Metadata.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string key = 2;\n * @return {string}\n */\nproto.Metadata.prototype.getKey = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Metadata} returns this\n */\nproto.Metadata.prototype.setKey = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string value = 3;\n * @return {string}\n */\nproto.Metadata.prototype.getValue = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Metadata} returns this\n */\nproto.Metadata.prototype.setValue = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Argument.prototype.toObject = function(opt_includeInstance) {\n  return proto.Argument.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Argument} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Argument.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    value: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Argument}\n */\nproto.Argument.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Argument;\n  return proto.Argument.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Argument} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Argument}\n */\nproto.Argument.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setValue(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Argument.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Argument.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Argument} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Argument.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getValue();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.Argument.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Argument} returns this\n */\nproto.Argument.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.Argument.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Argument} returns this\n */\nproto.Argument.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string value = 3;\n * @return {string}\n */\nproto.Argument.prototype.getValue = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Argument} returns this\n */\nproto.Argument.prototype.setValue = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Variable.prototype.toObject = function(opt_includeInstance) {\n  return proto.Variable.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Variable} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Variable.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    type: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    defaultvalue: jspb.Message.getFieldWithDefault(msg, 4, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Variable}\n */\nproto.Variable.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Variable;\n  return proto.Variable.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Variable} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Variable}\n */\nproto.Variable.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setType(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDefaultvalue(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Variable.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Variable.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Variable} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Variable.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getType();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 4));\n  if (f != null) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.Variable.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Variable} returns this\n */\nproto.Variable.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.Variable.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Variable} returns this\n */\nproto.Variable.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string type = 3;\n * @return {string}\n */\nproto.Variable.prototype.getType = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Variable} returns this\n */\nproto.Variable.prototype.setType = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string defaultValue = 4;\n * @return {string}\n */\nproto.Variable.prototype.getDefaultvalue = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Variable} returns this\n */\nproto.Variable.prototype.setDefaultvalue = function(value) {\n  return jspb.Message.setField(this, 4, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.Variable} returns this\n */\nproto.Variable.prototype.clearDefaultvalue = function() {\n  return jspb.Message.setField(this, 4, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Variable.prototype.hasDefaultvalue = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.Tag.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Tag.prototype.toObject = function(opt_includeInstance) {\n  return proto.Tag.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Tag} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Tag.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    tagList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Tag}\n */\nproto.Tag.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Tag;\n  return proto.Tag.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Tag} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Tag}\n */\nproto.Tag.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.addTag(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Tag.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Tag.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Tag} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Tag.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getTagList();\n  if (f.length > 0) {\n    writer.writeRepeatedString(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.Tag.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Tag} returns this\n */\nproto.Tag.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * repeated string tag = 2;\n * @return {!Array<string>}\n */\nproto.Tag.prototype.getTagList = function() {\n  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.Tag} returns this\n */\nproto.Tag.prototype.setTagList = function(value) {\n  return jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.Tag} returns this\n */\nproto.Tag.prototype.addTag = function(value, opt_index) {\n  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.Tag} returns this\n */\nproto.Tag.prototype.clearTagList = function() {\n  return this.setTagList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Organization.prototype.toObject = function(opt_includeInstance) {\n  return proto.Organization.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Organization} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Organization.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    description: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    industry: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    contact: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    size: jspb.Message.getFieldWithDefault(msg, 6, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Organization}\n */\nproto.Organization.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Organization;\n  return proto.Organization.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Organization} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Organization}\n */\nproto.Organization.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setIndustry(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setContact(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSize(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Organization.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Organization.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Organization} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Organization.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getIndustry();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getContact();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getSize();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.Organization.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Organization} returns this\n */\nproto.Organization.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.Organization.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Organization} returns this\n */\nproto.Organization.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string description = 3;\n * @return {string}\n */\nproto.Organization.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Organization} returns this\n */\nproto.Organization.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string industry = 4;\n * @return {string}\n */\nproto.Organization.prototype.getIndustry = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Organization} returns this\n */\nproto.Organization.prototype.setIndustry = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string contact = 5;\n * @return {string}\n */\nproto.Organization.prototype.getContact = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Organization} returns this\n */\nproto.Organization.prototype.setContact = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional string size = 6;\n * @return {string}\n */\nproto.Organization.prototype.getSize = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Organization} returns this\n */\nproto.Organization.prototype.setSize = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Metric.prototype.toObject = function(opt_includeInstance) {\n  return proto.Metric.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Metric} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Metric.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    value: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    description: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Metric}\n */\nproto.Metric.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Metric;\n  return proto.Metric.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Metric} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Metric}\n */\nproto.Metric.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setValue(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Metric.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Metric.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Metric} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Metric.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getValue();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.Metric.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Metric} returns this\n */\nproto.Metric.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string value = 2;\n * @return {string}\n */\nproto.Metric.prototype.getValue = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Metric} returns this\n */\nproto.Metric.prototype.setValue = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string description = 3;\n * @return {string}\n */\nproto.Metric.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Metric} returns this\n */\nproto.Metric.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.AssistantMessage.repeatedFields_ = [2,3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AssistantMessage.prototype.toObject = function(opt_includeInstance) {\n  return proto.AssistantMessage.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.AssistantMessage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantMessage.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    contentsList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,\n    toolcallsList: jspb.Message.toObjectList(msg.getToolcallsList(),\n    proto.ToolCall.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AssistantMessage}\n */\nproto.AssistantMessage.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.AssistantMessage;\n  return proto.AssistantMessage.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AssistantMessage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AssistantMessage}\n */\nproto.AssistantMessage.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.addContents(value);\n      break;\n    case 3:\n      var value = new proto.ToolCall;\n      reader.readMessage(value,proto.ToolCall.deserializeBinaryFromReader);\n      msg.addToolcalls(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AssistantMessage.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.AssistantMessage.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AssistantMessage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantMessage.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getContentsList();\n  if (f.length > 0) {\n    writer.writeRepeatedString(\n      2,\n      f\n    );\n  }\n  f = message.getToolcallsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.ToolCall.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * repeated string contents = 2;\n * @return {!Array<string>}\n */\nproto.AssistantMessage.prototype.getContentsList = function() {\n  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.AssistantMessage} returns this\n */\nproto.AssistantMessage.prototype.setContentsList = function(value) {\n  return jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.AssistantMessage} returns this\n */\nproto.AssistantMessage.prototype.addContents = function(value, opt_index) {\n  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantMessage} returns this\n */\nproto.AssistantMessage.prototype.clearContentsList = function() {\n  return this.setContentsList([]);\n};\n\n\n/**\n * repeated ToolCall toolCalls = 3;\n * @return {!Array<!proto.ToolCall>}\n */\nproto.AssistantMessage.prototype.getToolcallsList = function() {\n  return /** @type{!Array<!proto.ToolCall>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.ToolCall, 3));\n};\n\n\n/**\n * @param {!Array<!proto.ToolCall>} value\n * @return {!proto.AssistantMessage} returns this\n*/\nproto.AssistantMessage.prototype.setToolcallsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.ToolCall=} opt_value\n * @param {number=} opt_index\n * @return {!proto.ToolCall}\n */\nproto.AssistantMessage.prototype.addToolcalls = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.ToolCall, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantMessage} returns this\n */\nproto.AssistantMessage.prototype.clearToolcallsList = function() {\n  return this.setToolcallsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.SystemMessage.prototype.toObject = function(opt_includeInstance) {\n  return proto.SystemMessage.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.SystemMessage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SystemMessage.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    content: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.SystemMessage}\n */\nproto.SystemMessage.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.SystemMessage;\n  return proto.SystemMessage.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.SystemMessage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.SystemMessage}\n */\nproto.SystemMessage.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setContent(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.SystemMessage.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.SystemMessage.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.SystemMessage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.SystemMessage.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getContent();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string content = 2;\n * @return {string}\n */\nproto.SystemMessage.prototype.getContent = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.SystemMessage} returns this\n */\nproto.SystemMessage.prototype.setContent = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.UserMessage.prototype.toObject = function(opt_includeInstance) {\n  return proto.UserMessage.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.UserMessage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UserMessage.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    content: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.UserMessage}\n */\nproto.UserMessage.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.UserMessage;\n  return proto.UserMessage.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.UserMessage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.UserMessage}\n */\nproto.UserMessage.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setContent(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.UserMessage.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.UserMessage.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.UserMessage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.UserMessage.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getContent();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string content = 2;\n * @return {string}\n */\nproto.UserMessage.prototype.getContent = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.UserMessage} returns this\n */\nproto.UserMessage.prototype.setContent = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.ToolMessage.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ToolMessage.prototype.toObject = function(opt_includeInstance) {\n  return proto.ToolMessage.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.ToolMessage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ToolMessage.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    toolsList: jspb.Message.toObjectList(msg.getToolsList(),\n    proto.ToolMessage.Tool.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ToolMessage}\n */\nproto.ToolMessage.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.ToolMessage;\n  return proto.ToolMessage.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ToolMessage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ToolMessage}\n */\nproto.ToolMessage.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new proto.ToolMessage.Tool;\n      reader.readMessage(value,proto.ToolMessage.Tool.deserializeBinaryFromReader);\n      msg.addTools(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ToolMessage.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.ToolMessage.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ToolMessage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ToolMessage.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getToolsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      1,\n      f,\n      proto.ToolMessage.Tool.serializeBinaryToWriter\n    );\n  }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ToolMessage.Tool.prototype.toObject = function(opt_includeInstance) {\n  return proto.ToolMessage.Tool.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.ToolMessage.Tool} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ToolMessage.Tool.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    id: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    content: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ToolMessage.Tool}\n */\nproto.ToolMessage.Tool.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.ToolMessage.Tool;\n  return proto.ToolMessage.Tool.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ToolMessage.Tool} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ToolMessage.Tool}\n */\nproto.ToolMessage.Tool.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setId(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setContent(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ToolMessage.Tool.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.ToolMessage.Tool.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ToolMessage.Tool} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ToolMessage.Tool.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getId();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getContent();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.ToolMessage.Tool.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.ToolMessage.Tool} returns this\n */\nproto.ToolMessage.Tool.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string id = 2;\n * @return {string}\n */\nproto.ToolMessage.Tool.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.ToolMessage.Tool} returns this\n */\nproto.ToolMessage.Tool.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string content = 3;\n * @return {string}\n */\nproto.ToolMessage.Tool.prototype.getContent = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.ToolMessage.Tool} returns this\n */\nproto.ToolMessage.Tool.prototype.setContent = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * repeated Tool tools = 1;\n * @return {!Array<!proto.ToolMessage.Tool>}\n */\nproto.ToolMessage.prototype.getToolsList = function() {\n  return /** @type{!Array<!proto.ToolMessage.Tool>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.ToolMessage.Tool, 1));\n};\n\n\n/**\n * @param {!Array<!proto.ToolMessage.Tool>} value\n * @return {!proto.ToolMessage} returns this\n*/\nproto.ToolMessage.prototype.setToolsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.ToolMessage.Tool=} opt_value\n * @param {number=} opt_index\n * @return {!proto.ToolMessage.Tool}\n */\nproto.ToolMessage.prototype.addTools = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.ToolMessage.Tool, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.ToolMessage} returns this\n */\nproto.ToolMessage.prototype.clearToolsList = function() {\n  return this.setToolsList([]);\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.Message.oneofGroups_ = [[10,11,12,13]];\n\n/**\n * @enum {number}\n */\nproto.Message.MessageCase = {\n  MESSAGE_NOT_SET: 0,\n  ASSISTANT: 10,\n  USER: 11,\n  TOOL: 12,\n  SYSTEM: 13\n};\n\n/**\n * @return {proto.Message.MessageCase}\n */\nproto.Message.prototype.getMessageCase = function() {\n  return /** @type {proto.Message.MessageCase} */(jspb.Message.computeOneofCase(this, proto.Message.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Message.prototype.toObject = function(opt_includeInstance) {\n  return proto.Message.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Message} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Message.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    role: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    assistant: (f = msg.getAssistant()) && proto.AssistantMessage.toObject(includeInstance, f),\n    user: (f = msg.getUser()) && proto.UserMessage.toObject(includeInstance, f),\n    tool: (f = msg.getTool()) && proto.ToolMessage.toObject(includeInstance, f),\n    system: (f = msg.getSystem()) && proto.SystemMessage.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Message}\n */\nproto.Message.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Message;\n  return proto.Message.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Message} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Message}\n */\nproto.Message.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRole(value);\n      break;\n    case 10:\n      var value = new proto.AssistantMessage;\n      reader.readMessage(value,proto.AssistantMessage.deserializeBinaryFromReader);\n      msg.setAssistant(value);\n      break;\n    case 11:\n      var value = new proto.UserMessage;\n      reader.readMessage(value,proto.UserMessage.deserializeBinaryFromReader);\n      msg.setUser(value);\n      break;\n    case 12:\n      var value = new proto.ToolMessage;\n      reader.readMessage(value,proto.ToolMessage.deserializeBinaryFromReader);\n      msg.setTool(value);\n      break;\n    case 13:\n      var value = new proto.SystemMessage;\n      reader.readMessage(value,proto.SystemMessage.deserializeBinaryFromReader);\n      msg.setSystem(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Message.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Message.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Message} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Message.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getRole();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getAssistant();\n  if (f != null) {\n    writer.writeMessage(\n      10,\n      f,\n      proto.AssistantMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getUser();\n  if (f != null) {\n    writer.writeMessage(\n      11,\n      f,\n      proto.UserMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getTool();\n  if (f != null) {\n    writer.writeMessage(\n      12,\n      f,\n      proto.ToolMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getSystem();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      proto.SystemMessage.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional string role = 1;\n * @return {string}\n */\nproto.Message.prototype.getRole = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Message} returns this\n */\nproto.Message.prototype.setRole = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional AssistantMessage assistant = 10;\n * @return {?proto.AssistantMessage}\n */\nproto.Message.prototype.getAssistant = function() {\n  return /** @type{?proto.AssistantMessage} */ (\n    jspb.Message.getWrapperField(this, proto.AssistantMessage, 10));\n};\n\n\n/**\n * @param {?proto.AssistantMessage|undefined} value\n * @return {!proto.Message} returns this\n*/\nproto.Message.prototype.setAssistant = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 10, proto.Message.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Message} returns this\n */\nproto.Message.prototype.clearAssistant = function() {\n  return this.setAssistant(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Message.prototype.hasAssistant = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional UserMessage user = 11;\n * @return {?proto.UserMessage}\n */\nproto.Message.prototype.getUser = function() {\n  return /** @type{?proto.UserMessage} */ (\n    jspb.Message.getWrapperField(this, proto.UserMessage, 11));\n};\n\n\n/**\n * @param {?proto.UserMessage|undefined} value\n * @return {!proto.Message} returns this\n*/\nproto.Message.prototype.setUser = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 11, proto.Message.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Message} returns this\n */\nproto.Message.prototype.clearUser = function() {\n  return this.setUser(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Message.prototype.hasUser = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional ToolMessage tool = 12;\n * @return {?proto.ToolMessage}\n */\nproto.Message.prototype.getTool = function() {\n  return /** @type{?proto.ToolMessage} */ (\n    jspb.Message.getWrapperField(this, proto.ToolMessage, 12));\n};\n\n\n/**\n * @param {?proto.ToolMessage|undefined} value\n * @return {!proto.Message} returns this\n*/\nproto.Message.prototype.setTool = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 12, proto.Message.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Message} returns this\n */\nproto.Message.prototype.clearTool = function() {\n  return this.setTool(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Message.prototype.hasTool = function() {\n  return jspb.Message.getField(this, 12) != null;\n};\n\n\n/**\n * optional SystemMessage system = 13;\n * @return {?proto.SystemMessage}\n */\nproto.Message.prototype.getSystem = function() {\n  return /** @type{?proto.SystemMessage} */ (\n    jspb.Message.getWrapperField(this, proto.SystemMessage, 13));\n};\n\n\n/**\n * @param {?proto.SystemMessage|undefined} value\n * @return {!proto.Message} returns this\n*/\nproto.Message.prototype.setSystem = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 13, proto.Message.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Message} returns this\n */\nproto.Message.prototype.clearSystem = function() {\n  return this.setSystem(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Message.prototype.hasSystem = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.ToolCall.prototype.toObject = function(opt_includeInstance) {\n  return proto.ToolCall.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.ToolCall} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ToolCall.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    type: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    pb_function: (f = msg.getFunction()) && proto.FunctionCall.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.ToolCall}\n */\nproto.ToolCall.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.ToolCall;\n  return proto.ToolCall.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.ToolCall} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.ToolCall}\n */\nproto.ToolCall.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setType(value);\n      break;\n    case 3:\n      var value = new proto.FunctionCall;\n      reader.readMessage(value,proto.FunctionCall.deserializeBinaryFromReader);\n      msg.setFunction(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.ToolCall.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.ToolCall.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.ToolCall} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.ToolCall.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getType();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getFunction();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.FunctionCall.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.ToolCall.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.ToolCall} returns this\n */\nproto.ToolCall.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string type = 2;\n * @return {string}\n */\nproto.ToolCall.prototype.getType = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.ToolCall} returns this\n */\nproto.ToolCall.prototype.setType = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional FunctionCall function = 3;\n * @return {?proto.FunctionCall}\n */\nproto.ToolCall.prototype.getFunction = function() {\n  return /** @type{?proto.FunctionCall} */ (\n    jspb.Message.getWrapperField(this, proto.FunctionCall, 3));\n};\n\n\n/**\n * @param {?proto.FunctionCall|undefined} value\n * @return {!proto.ToolCall} returns this\n*/\nproto.ToolCall.prototype.setFunction = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.ToolCall} returns this\n */\nproto.ToolCall.prototype.clearFunction = function() {\n  return this.setFunction(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.ToolCall.prototype.hasFunction = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.FunctionCall.prototype.toObject = function(opt_includeInstance) {\n  return proto.FunctionCall.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.FunctionCall} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.FunctionCall.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    arguments: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.FunctionCall}\n */\nproto.FunctionCall.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.FunctionCall;\n  return proto.FunctionCall.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.FunctionCall} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.FunctionCall}\n */\nproto.FunctionCall.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setArguments(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.FunctionCall.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.FunctionCall.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.FunctionCall} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.FunctionCall.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getArguments();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.FunctionCall.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.FunctionCall} returns this\n */\nproto.FunctionCall.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string arguments = 2;\n * @return {string}\n */\nproto.FunctionCall.prototype.getArguments = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.FunctionCall} returns this\n */\nproto.FunctionCall.prototype.setArguments = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.Knowledge.repeatedFields_ = [8];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.Knowledge.prototype.toObject = function(opt_includeInstance) {\n  return proto.Knowledge.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.Knowledge} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Knowledge.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    description: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    visibility: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    language: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    embeddingmodelproviderid: jspb.Message.getFieldWithDefault(msg, 6, \"0\"),\n    embeddingmodelprovidername: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n    knowledgeembeddingmodeloptionsList: jspb.Message.toObjectList(msg.getKnowledgeembeddingmodeloptionsList(),\n    proto.Metadata.toObject, includeInstance),\n    status: jspb.Message.getFieldWithDefault(msg, 12, \"\"),\n    createdactor: (f = msg.getCreatedactor()) && proto.AuditActor.toObject(includeInstance, f),\n    updatedactor: (f = msg.getUpdatedactor()) && proto.AuditActor.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    organizationid: jspb.Message.getFieldWithDefault(msg, 19, \"0\"),\n    projectid: jspb.Message.getFieldWithDefault(msg, 20, \"0\"),\n    organization: (f = msg.getOrganization()) && proto.Organization.toObject(includeInstance, f),\n    knowledgetag: (f = msg.getKnowledgetag()) && proto.Tag.toObject(includeInstance, f),\n    documentcount: jspb.Message.getFieldWithDefault(msg, 23, 0),\n    tokencount: jspb.Message.getFieldWithDefault(msg, 24, 0),\n    wordcount: jspb.Message.getFieldWithDefault(msg, 25, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.Knowledge}\n */\nproto.Knowledge.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.Knowledge;\n  return proto.Knowledge.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.Knowledge} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.Knowledge}\n */\nproto.Knowledge.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setVisibility(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setLanguage(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setEmbeddingmodelproviderid(value);\n      break;\n    case 7:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setEmbeddingmodelprovidername(value);\n      break;\n    case 8:\n      var value = new proto.Metadata;\n      reader.readMessage(value,proto.Metadata.deserializeBinaryFromReader);\n      msg.addKnowledgeembeddingmodeloptions(value);\n      break;\n    case 12:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 1000:\n      var value = new proto.AuditActor;\n      reader.readMessage(value,proto.AuditActor.deserializeBinaryFromReader);\n      msg.setCreatedactor(value);\n      break;\n    case 1001:\n      var value = new proto.AuditActor;\n      reader.readMessage(value,proto.AuditActor.deserializeBinaryFromReader);\n      msg.setUpdatedactor(value);\n      break;\n    case 17:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 18:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 19:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setOrganizationid(value);\n      break;\n    case 20:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 21:\n      var value = new proto.Organization;\n      reader.readMessage(value,proto.Organization.deserializeBinaryFromReader);\n      msg.setOrganization(value);\n      break;\n    case 22:\n      var value = new proto.Tag;\n      reader.readMessage(value,proto.Tag.deserializeBinaryFromReader);\n      msg.setKnowledgetag(value);\n      break;\n    case 23:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setDocumentcount(value);\n      break;\n    case 24:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setTokencount(value);\n      break;\n    case 25:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setWordcount(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.Knowledge.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.Knowledge.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.Knowledge} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.Knowledge.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getVisibility();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getLanguage();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getEmbeddingmodelproviderid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      6,\n      f\n    );\n  }\n  f = message.getEmbeddingmodelprovidername();\n  if (f.length > 0) {\n    writer.writeString(\n      7,\n      f\n    );\n  }\n  f = message.getKnowledgeembeddingmodeloptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      8,\n      f,\n      proto.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      12,\n      f\n    );\n  }\n  f = message.getCreatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1000,\n      f,\n      proto.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1001,\n      f,\n      proto.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      17,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      18,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getOrganizationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      19,\n      f\n    );\n  }\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      20,\n      f\n    );\n  }\n  f = message.getOrganization();\n  if (f != null) {\n    writer.writeMessage(\n      21,\n      f,\n      proto.Organization.serializeBinaryToWriter\n    );\n  }\n  f = message.getKnowledgetag();\n  if (f != null) {\n    writer.writeMessage(\n      22,\n      f,\n      proto.Tag.serializeBinaryToWriter\n    );\n  }\n  f = message.getDocumentcount();\n  if (f !== 0) {\n    writer.writeUint32(\n      23,\n      f\n    );\n  }\n  f = message.getTokencount();\n  if (f !== 0) {\n    writer.writeUint32(\n      24,\n      f\n    );\n  }\n  f = message.getWordcount();\n  if (f !== 0) {\n    writer.writeUint32(\n      25,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.Knowledge.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.Knowledge.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string description = 3;\n * @return {string}\n */\nproto.Knowledge.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string visibility = 4;\n * @return {string}\n */\nproto.Knowledge.prototype.getVisibility = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setVisibility = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string language = 5;\n * @return {string}\n */\nproto.Knowledge.prototype.getLanguage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setLanguage = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional uint64 embeddingModelProviderId = 6;\n * @return {string}\n */\nproto.Knowledge.prototype.getEmbeddingmodelproviderid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setEmbeddingmodelproviderid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 6, value);\n};\n\n\n/**\n * optional string embeddingModelProviderName = 7;\n * @return {string}\n */\nproto.Knowledge.prototype.getEmbeddingmodelprovidername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setEmbeddingmodelprovidername = function(value) {\n  return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n/**\n * repeated Metadata knowledgeEmbeddingModelOptions = 8;\n * @return {!Array<!proto.Metadata>}\n */\nproto.Knowledge.prototype.getKnowledgeembeddingmodeloptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Metadata, 8));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.Knowledge} returns this\n*/\nproto.Knowledge.prototype.setKnowledgeembeddingmodeloptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 8, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.Knowledge.prototype.addKnowledgeembeddingmodeloptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.clearKnowledgeembeddingmodeloptionsList = function() {\n  return this.setKnowledgeembeddingmodeloptionsList([]);\n};\n\n\n/**\n * optional string status = 12;\n * @return {string}\n */\nproto.Knowledge.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 12, value);\n};\n\n\n/**\n * optional AuditActor createdActor = 1000;\n * @return {?proto.AuditActor}\n */\nproto.Knowledge.prototype.getCreatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, proto.AuditActor, 1000));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.Knowledge} returns this\n*/\nproto.Knowledge.prototype.setCreatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1000, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.clearCreatedactor = function() {\n  return this.setCreatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Knowledge.prototype.hasCreatedactor = function() {\n  return jspb.Message.getField(this, 1000) != null;\n};\n\n\n/**\n * optional AuditActor updatedActor = 1001;\n * @return {?proto.AuditActor}\n */\nproto.Knowledge.prototype.getUpdatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, proto.AuditActor, 1001));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.Knowledge} returns this\n*/\nproto.Knowledge.prototype.setUpdatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.clearUpdatedactor = function() {\n  return this.setUpdatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Knowledge.prototype.hasUpdatedactor = function() {\n  return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 17;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.Knowledge.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 17));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.Knowledge} returns this\n*/\nproto.Knowledge.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 17, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Knowledge.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 17) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 18;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.Knowledge.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 18));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.Knowledge} returns this\n*/\nproto.Knowledge.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 18, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Knowledge.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 18) != null;\n};\n\n\n/**\n * optional uint64 organizationId = 19;\n * @return {string}\n */\nproto.Knowledge.prototype.getOrganizationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 19, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setOrganizationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 19, value);\n};\n\n\n/**\n * optional uint64 projectId = 20;\n * @return {string}\n */\nproto.Knowledge.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 20, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 20, value);\n};\n\n\n/**\n * optional Organization organization = 21;\n * @return {?proto.Organization}\n */\nproto.Knowledge.prototype.getOrganization = function() {\n  return /** @type{?proto.Organization} */ (\n    jspb.Message.getWrapperField(this, proto.Organization, 21));\n};\n\n\n/**\n * @param {?proto.Organization|undefined} value\n * @return {!proto.Knowledge} returns this\n*/\nproto.Knowledge.prototype.setOrganization = function(value) {\n  return jspb.Message.setWrapperField(this, 21, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.clearOrganization = function() {\n  return this.setOrganization(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Knowledge.prototype.hasOrganization = function() {\n  return jspb.Message.getField(this, 21) != null;\n};\n\n\n/**\n * optional Tag knowledgeTag = 22;\n * @return {?proto.Tag}\n */\nproto.Knowledge.prototype.getKnowledgetag = function() {\n  return /** @type{?proto.Tag} */ (\n    jspb.Message.getWrapperField(this, proto.Tag, 22));\n};\n\n\n/**\n * @param {?proto.Tag|undefined} value\n * @return {!proto.Knowledge} returns this\n*/\nproto.Knowledge.prototype.setKnowledgetag = function(value) {\n  return jspb.Message.setWrapperField(this, 22, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.clearKnowledgetag = function() {\n  return this.setKnowledgetag(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.Knowledge.prototype.hasKnowledgetag = function() {\n  return jspb.Message.getField(this, 22) != null;\n};\n\n\n/**\n * optional uint32 documentCount = 23;\n * @return {number}\n */\nproto.Knowledge.prototype.getDocumentcount = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 23, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setDocumentcount = function(value) {\n  return jspb.Message.setProto3IntField(this, 23, value);\n};\n\n\n/**\n * optional uint32 tokenCount = 24;\n * @return {number}\n */\nproto.Knowledge.prototype.getTokencount = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setTokencount = function(value) {\n  return jspb.Message.setProto3IntField(this, 24, value);\n};\n\n\n/**\n * optional uint32 wordCount = 25;\n * @return {number}\n */\nproto.Knowledge.prototype.getWordcount = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.Knowledge} returns this\n */\nproto.Knowledge.prototype.setWordcount = function(value) {\n  return jspb.Message.setProto3IntField(this, 25, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.TextPrompt.prototype.toObject = function(opt_includeInstance) {\n  return proto.TextPrompt.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.TextPrompt} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.TextPrompt.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    role: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    content: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.TextPrompt}\n */\nproto.TextPrompt.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.TextPrompt;\n  return proto.TextPrompt.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.TextPrompt} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.TextPrompt}\n */\nproto.TextPrompt.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRole(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setContent(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.TextPrompt.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.TextPrompt.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.TextPrompt} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.TextPrompt.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getRole();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getContent();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string role = 1;\n * @return {string}\n */\nproto.TextPrompt.prototype.getRole = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.TextPrompt} returns this\n */\nproto.TextPrompt.prototype.setRole = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string content = 2;\n * @return {string}\n */\nproto.TextPrompt.prototype.getContent = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.TextPrompt} returns this\n */\nproto.TextPrompt.prototype.setContent = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.TextChatCompletePrompt.repeatedFields_ = [1,2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.TextChatCompletePrompt.prototype.toObject = function(opt_includeInstance) {\n  return proto.TextChatCompletePrompt.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.TextChatCompletePrompt} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.TextChatCompletePrompt.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    promptList: jspb.Message.toObjectList(msg.getPromptList(),\n    proto.TextPrompt.toObject, includeInstance),\n    promptvariablesList: jspb.Message.toObjectList(msg.getPromptvariablesList(),\n    proto.Variable.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.TextChatCompletePrompt}\n */\nproto.TextChatCompletePrompt.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.TextChatCompletePrompt;\n  return proto.TextChatCompletePrompt.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.TextChatCompletePrompt} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.TextChatCompletePrompt}\n */\nproto.TextChatCompletePrompt.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new proto.TextPrompt;\n      reader.readMessage(value,proto.TextPrompt.deserializeBinaryFromReader);\n      msg.addPrompt(value);\n      break;\n    case 2:\n      var value = new proto.Variable;\n      reader.readMessage(value,proto.Variable.deserializeBinaryFromReader);\n      msg.addPromptvariables(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.TextChatCompletePrompt.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.TextChatCompletePrompt.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.TextChatCompletePrompt} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.TextChatCompletePrompt.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getPromptList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      1,\n      f,\n      proto.TextPrompt.serializeBinaryToWriter\n    );\n  }\n  f = message.getPromptvariablesList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      2,\n      f,\n      proto.Variable.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * repeated TextPrompt prompt = 1;\n * @return {!Array<!proto.TextPrompt>}\n */\nproto.TextChatCompletePrompt.prototype.getPromptList = function() {\n  return /** @type{!Array<!proto.TextPrompt>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.TextPrompt, 1));\n};\n\n\n/**\n * @param {!Array<!proto.TextPrompt>} value\n * @return {!proto.TextChatCompletePrompt} returns this\n*/\nproto.TextChatCompletePrompt.prototype.setPromptList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.TextPrompt=} opt_value\n * @param {number=} opt_index\n * @return {!proto.TextPrompt}\n */\nproto.TextChatCompletePrompt.prototype.addPrompt = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.TextPrompt, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.TextChatCompletePrompt} returns this\n */\nproto.TextChatCompletePrompt.prototype.clearPromptList = function() {\n  return this.setPromptList([]);\n};\n\n\n/**\n * repeated Variable promptVariables = 2;\n * @return {!Array<!proto.Variable>}\n */\nproto.TextChatCompletePrompt.prototype.getPromptvariablesList = function() {\n  return /** @type{!Array<!proto.Variable>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Variable, 2));\n};\n\n\n/**\n * @param {!Array<!proto.Variable>} value\n * @return {!proto.TextChatCompletePrompt} returns this\n*/\nproto.TextChatCompletePrompt.prototype.setPromptvariablesList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.Variable=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Variable}\n */\nproto.TextChatCompletePrompt.prototype.addPromptvariables = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Variable, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.TextChatCompletePrompt} returns this\n */\nproto.TextChatCompletePrompt.prototype.clearPromptvariablesList = function() {\n  return this.setPromptvariablesList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.AssistantConversationMessage.repeatedFields_ = [10,31];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AssistantConversationMessage.prototype.toObject = function(opt_includeInstance) {\n  return proto.AssistantConversationMessage.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.AssistantConversationMessage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversationMessage.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    messageid: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    role: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    body: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    source: jspb.Message.getFieldWithDefault(msg, 9, \"\"),\n    metricsList: jspb.Message.toObjectList(msg.getMetricsList(),\n    proto.Metric.toObject, includeInstance),\n    status: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    createdactor: (f = msg.getCreatedactor()) && proto.AuditActor.toObject(includeInstance, f),\n    updatedactor: (f = msg.getUpdatedactor()) && proto.AuditActor.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 28, \"0\"),\n    assistantprovidermodelid: jspb.Message.getFieldWithDefault(msg, 29, \"0\"),\n    metadataList: jspb.Message.toObjectList(msg.getMetadataList(),\n    proto.Metadata.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AssistantConversationMessage}\n */\nproto.AssistantConversationMessage.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.AssistantConversationMessage;\n  return proto.AssistantConversationMessage.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AssistantConversationMessage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AssistantConversationMessage}\n */\nproto.AssistantConversationMessage.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setMessageid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRole(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setBody(value);\n      break;\n    case 9:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSource(value);\n      break;\n    case 10:\n      var value = new proto.Metric;\n      reader.readMessage(value,proto.Metric.deserializeBinaryFromReader);\n      msg.addMetrics(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 1000:\n      var value = new proto.AuditActor;\n      reader.readMessage(value,proto.AuditActor.deserializeBinaryFromReader);\n      msg.setCreatedactor(value);\n      break;\n    case 1001:\n      var value = new proto.AuditActor;\n      reader.readMessage(value,proto.AuditActor.deserializeBinaryFromReader);\n      msg.setUpdatedactor(value);\n      break;\n    case 26:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 27:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 28:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 29:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantprovidermodelid(value);\n      break;\n    case 31:\n      var value = new proto.Metadata;\n      reader.readMessage(value,proto.Metadata.deserializeBinaryFromReader);\n      msg.addMetadata(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AssistantConversationMessage.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.AssistantConversationMessage.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AssistantConversationMessage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversationMessage.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getMessageid();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getRole();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getBody();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getSource();\n  if (f.length > 0) {\n    writer.writeString(\n      9,\n      f\n    );\n  }\n  f = message.getMetricsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      10,\n      f,\n      proto.Metric.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getCreatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1000,\n      f,\n      proto.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1001,\n      f,\n      proto.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      26,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      27,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      28,\n      f\n    );\n  }\n  f = message.getAssistantprovidermodelid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      29,\n      f\n    );\n  }\n  f = message.getMetadataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      31,\n      f,\n      proto.Metadata.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.AssistantConversationMessage.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string messageId = 3;\n * @return {string}\n */\nproto.AssistantConversationMessage.prototype.getMessageid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.setMessageid = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional uint64 assistantConversationId = 2;\n * @return {string}\n */\nproto.AssistantConversationMessage.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional string role = 4;\n * @return {string}\n */\nproto.AssistantConversationMessage.prototype.getRole = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.setRole = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string body = 5;\n * @return {string}\n */\nproto.AssistantConversationMessage.prototype.getBody = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.setBody = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional string source = 9;\n * @return {string}\n */\nproto.AssistantConversationMessage.prototype.getSource = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.setSource = function(value) {\n  return jspb.Message.setProto3StringField(this, 9, value);\n};\n\n\n/**\n * repeated Metric metrics = 10;\n * @return {!Array<!proto.Metric>}\n */\nproto.AssistantConversationMessage.prototype.getMetricsList = function() {\n  return /** @type{!Array<!proto.Metric>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Metric, 10));\n};\n\n\n/**\n * @param {!Array<!proto.Metric>} value\n * @return {!proto.AssistantConversationMessage} returns this\n*/\nproto.AssistantConversationMessage.prototype.setMetricsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 10, value);\n};\n\n\n/**\n * @param {!proto.Metric=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metric}\n */\nproto.AssistantConversationMessage.prototype.addMetrics = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 10, opt_value, proto.Metric, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.clearMetricsList = function() {\n  return this.setMetricsList([]);\n};\n\n\n/**\n * optional string status = 11;\n * @return {string}\n */\nproto.AssistantConversationMessage.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 11, value);\n};\n\n\n/**\n * optional AuditActor createdActor = 1000;\n * @return {?proto.AuditActor}\n */\nproto.AssistantConversationMessage.prototype.getCreatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, proto.AuditActor, 1000));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.AssistantConversationMessage} returns this\n*/\nproto.AssistantConversationMessage.prototype.setCreatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1000, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.clearCreatedactor = function() {\n  return this.setCreatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationMessage.prototype.hasCreatedactor = function() {\n  return jspb.Message.getField(this, 1000) != null;\n};\n\n\n/**\n * optional AuditActor updatedActor = 1001;\n * @return {?proto.AuditActor}\n */\nproto.AssistantConversationMessage.prototype.getUpdatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, proto.AuditActor, 1001));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.AssistantConversationMessage} returns this\n*/\nproto.AssistantConversationMessage.prototype.setUpdatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.clearUpdatedactor = function() {\n  return this.setUpdatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationMessage.prototype.hasUpdatedactor = function() {\n  return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 26;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.AssistantConversationMessage.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 26));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.AssistantConversationMessage} returns this\n*/\nproto.AssistantConversationMessage.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationMessage.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 27;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.AssistantConversationMessage.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 27));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.AssistantConversationMessage} returns this\n*/\nproto.AssistantConversationMessage.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 27, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationMessage.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 27) != null;\n};\n\n\n/**\n * optional uint64 assistantId = 28;\n * @return {string}\n */\nproto.AssistantConversationMessage.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 28, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 28, value);\n};\n\n\n/**\n * optional uint64 assistantProviderModelId = 29;\n * @return {string}\n */\nproto.AssistantConversationMessage.prototype.getAssistantprovidermodelid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 29, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.setAssistantprovidermodelid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 29, value);\n};\n\n\n/**\n * repeated Metadata metadata = 31;\n * @return {!Array<!proto.Metadata>}\n */\nproto.AssistantConversationMessage.prototype.getMetadataList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Metadata, 31));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.AssistantConversationMessage} returns this\n*/\nproto.AssistantConversationMessage.prototype.setMetadataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 31, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.AssistantConversationMessage.prototype.addMetadata = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 31, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversationMessage} returns this\n */\nproto.AssistantConversationMessage.prototype.clearMetadataList = function() {\n  return this.setMetadataList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AssistantConversationContext.prototype.toObject = function(opt_includeInstance) {\n  return proto.AssistantConversationContext.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.AssistantConversationContext} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversationContext.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    metadata: (f = msg.getMetadata()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    result: (f = msg.getResult()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    query: (f = msg.getQuery()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AssistantConversationContext}\n */\nproto.AssistantConversationContext.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.AssistantConversationContext;\n  return proto.AssistantConversationContext.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AssistantConversationContext} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AssistantConversationContext}\n */\nproto.AssistantConversationContext.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 3:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setMetadata(value);\n      break;\n    case 4:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setResult(value);\n      break;\n    case 5:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setQuery(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AssistantConversationContext.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.AssistantConversationContext.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AssistantConversationContext} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversationContext.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getMetadata();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getResult();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getQuery();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.AssistantConversationContext.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationContext} returns this\n */\nproto.AssistantConversationContext.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Struct metadata = 3;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.AssistantConversationContext.prototype.getMetadata = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.AssistantConversationContext} returns this\n*/\nproto.AssistantConversationContext.prototype.setMetadata = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationContext} returns this\n */\nproto.AssistantConversationContext.prototype.clearMetadata = function() {\n  return this.setMetadata(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationContext.prototype.hasMetadata = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional google.protobuf.Struct result = 4;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.AssistantConversationContext.prototype.getResult = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 4));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.AssistantConversationContext} returns this\n*/\nproto.AssistantConversationContext.prototype.setResult = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationContext} returns this\n */\nproto.AssistantConversationContext.prototype.clearResult = function() {\n  return this.setResult(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationContext.prototype.hasResult = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional google.protobuf.Struct query = 5;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.AssistantConversationContext.prototype.getQuery = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 5));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.AssistantConversationContext} returns this\n*/\nproto.AssistantConversationContext.prototype.setQuery = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationContext} returns this\n */\nproto.AssistantConversationContext.prototype.clearQuery = function() {\n  return this.setQuery(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationContext.prototype.hasQuery = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AssistantConversationRecording.prototype.toObject = function(opt_includeInstance) {\n  return proto.AssistantConversationRecording.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.AssistantConversationRecording} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversationRecording.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantrecordingurl: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    userrecordingurl: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    conversationrecordingurl: jspb.Message.getFieldWithDefault(msg, 4, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AssistantConversationRecording}\n */\nproto.AssistantConversationRecording.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.AssistantConversationRecording;\n  return proto.AssistantConversationRecording.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AssistantConversationRecording} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AssistantConversationRecording}\n */\nproto.AssistantConversationRecording.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAssistantrecordingurl(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUserrecordingurl(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setConversationrecordingurl(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AssistantConversationRecording.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.AssistantConversationRecording.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AssistantConversationRecording} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversationRecording.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantrecordingurl();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getUserrecordingurl();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getConversationrecordingurl();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.AssistantConversationRecording.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationRecording} returns this\n */\nproto.AssistantConversationRecording.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string assistantRecordingUrl = 2;\n * @return {string}\n */\nproto.AssistantConversationRecording.prototype.getAssistantrecordingurl = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationRecording} returns this\n */\nproto.AssistantConversationRecording.prototype.setAssistantrecordingurl = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string userRecordingUrl = 3;\n * @return {string}\n */\nproto.AssistantConversationRecording.prototype.getUserrecordingurl = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationRecording} returns this\n */\nproto.AssistantConversationRecording.prototype.setUserrecordingurl = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string conversationRecordingUrl = 4;\n * @return {string}\n */\nproto.AssistantConversationRecording.prototype.getConversationrecordingurl = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationRecording} returns this\n */\nproto.AssistantConversationRecording.prototype.setConversationrecordingurl = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AssistantConversationTelephonyEvent.prototype.toObject = function(opt_includeInstance) {\n  return proto.AssistantConversationTelephonyEvent.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.AssistantConversationTelephonyEvent} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversationTelephonyEvent.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    provider: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    eventtype: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    payload: (f = msg.getPayload()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AssistantConversationTelephonyEvent}\n */\nproto.AssistantConversationTelephonyEvent.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.AssistantConversationTelephonyEvent;\n  return proto.AssistantConversationTelephonyEvent.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AssistantConversationTelephonyEvent} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AssistantConversationTelephonyEvent}\n */\nproto.AssistantConversationTelephonyEvent.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setProvider(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setEventtype(value);\n      break;\n    case 5:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setPayload(value);\n      break;\n    case 6:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 7:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AssistantConversationTelephonyEvent.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.AssistantConversationTelephonyEvent.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AssistantConversationTelephonyEvent} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversationTelephonyEvent.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getProvider();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getEventtype();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getPayload();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      6,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      7,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.AssistantConversationTelephonyEvent.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n */\nproto.AssistantConversationTelephonyEvent.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantConversationId = 2;\n * @return {string}\n */\nproto.AssistantConversationTelephonyEvent.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n */\nproto.AssistantConversationTelephonyEvent.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional string provider = 3;\n * @return {string}\n */\nproto.AssistantConversationTelephonyEvent.prototype.getProvider = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n */\nproto.AssistantConversationTelephonyEvent.prototype.setProvider = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string eventType = 4;\n * @return {string}\n */\nproto.AssistantConversationTelephonyEvent.prototype.getEventtype = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n */\nproto.AssistantConversationTelephonyEvent.prototype.setEventtype = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional google.protobuf.Struct payload = 5;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.AssistantConversationTelephonyEvent.prototype.getPayload = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 5));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n*/\nproto.AssistantConversationTelephonyEvent.prototype.setPayload = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n */\nproto.AssistantConversationTelephonyEvent.prototype.clearPayload = function() {\n  return this.setPayload(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationTelephonyEvent.prototype.hasPayload = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 6;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.AssistantConversationTelephonyEvent.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n*/\nproto.AssistantConversationTelephonyEvent.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 6, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n */\nproto.AssistantConversationTelephonyEvent.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationTelephonyEvent.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 7;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.AssistantConversationTelephonyEvent.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n*/\nproto.AssistantConversationTelephonyEvent.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 7, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversationTelephonyEvent} returns this\n */\nproto.AssistantConversationTelephonyEvent.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversationTelephonyEvent.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 7) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.AssistantConversation.repeatedFields_ = [13,28,30,32,31,33,35,36];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.AssistantConversation.prototype.toObject = function(opt_includeInstance) {\n  return proto.AssistantConversation.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.AssistantConversation} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversation.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    userid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 3, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    projectid: jspb.Message.getFieldWithDefault(msg, 5, \"0\"),\n    organizationid: jspb.Message.getFieldWithDefault(msg, 6, \"0\"),\n    source: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n    createdactor: (f = msg.getCreatedactor()) && proto.AuditActor.toObject(includeInstance, f),\n    updatedactor: (f = msg.getUpdatedactor()) && proto.AuditActor.toObject(includeInstance, f),\n    user: (f = msg.getUser()) && proto.User.toObject(includeInstance, f),\n    assistantprovidermodelid: jspb.Message.getFieldWithDefault(msg, 12, \"0\"),\n    assistantconversationmessageList: jspb.Message.toObjectList(msg.getAssistantconversationmessageList(),\n    proto.AssistantConversationMessage.toObject, includeInstance),\n    identifier: jspb.Message.getFieldWithDefault(msg, 14, \"\"),\n    status: jspb.Message.getFieldWithDefault(msg, 15, \"\"),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    contextsList: jspb.Message.toObjectList(msg.getContextsList(),\n    proto.AssistantConversationContext.toObject, includeInstance),\n    metricsList: jspb.Message.toObjectList(msg.getMetricsList(),\n    proto.Metric.toObject, includeInstance),\n    metadataList: jspb.Message.toObjectList(msg.getMetadataList(),\n    proto.Metadata.toObject, includeInstance),\n    argumentsList: jspb.Message.toObjectList(msg.getArgumentsList(),\n    proto.Argument.toObject, includeInstance),\n    optionsList: jspb.Message.toObjectList(msg.getOptionsList(),\n    proto.Metadata.toObject, includeInstance),\n    direction: jspb.Message.getFieldWithDefault(msg, 34, \"\"),\n    recordingsList: jspb.Message.toObjectList(msg.getRecordingsList(),\n    proto.AssistantConversationRecording.toObject, includeInstance),\n    telephonyeventsList: jspb.Message.toObjectList(msg.getTelephonyeventsList(),\n    proto.AssistantConversationTelephonyEvent.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.AssistantConversation}\n */\nproto.AssistantConversation.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.AssistantConversation;\n  return proto.AssistantConversation.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.AssistantConversation} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.AssistantConversation}\n */\nproto.AssistantConversation.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setUserid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setOrganizationid(value);\n      break;\n    case 7:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSource(value);\n      break;\n    case 1000:\n      var value = new proto.AuditActor;\n      reader.readMessage(value,proto.AuditActor.deserializeBinaryFromReader);\n      msg.setCreatedactor(value);\n      break;\n    case 1001:\n      var value = new proto.AuditActor;\n      reader.readMessage(value,proto.AuditActor.deserializeBinaryFromReader);\n      msg.setUpdatedactor(value);\n      break;\n    case 10:\n      var value = new proto.User;\n      reader.readMessage(value,proto.User.deserializeBinaryFromReader);\n      msg.setUser(value);\n      break;\n    case 12:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantprovidermodelid(value);\n      break;\n    case 13:\n      var value = new proto.AssistantConversationMessage;\n      reader.readMessage(value,proto.AssistantConversationMessage.deserializeBinaryFromReader);\n      msg.addAssistantconversationmessage(value);\n      break;\n    case 14:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setIdentifier(value);\n      break;\n    case 15:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 26:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 27:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 28:\n      var value = new proto.AssistantConversationContext;\n      reader.readMessage(value,proto.AssistantConversationContext.deserializeBinaryFromReader);\n      msg.addContexts(value);\n      break;\n    case 30:\n      var value = new proto.Metric;\n      reader.readMessage(value,proto.Metric.deserializeBinaryFromReader);\n      msg.addMetrics(value);\n      break;\n    case 32:\n      var value = new proto.Metadata;\n      reader.readMessage(value,proto.Metadata.deserializeBinaryFromReader);\n      msg.addMetadata(value);\n      break;\n    case 31:\n      var value = new proto.Argument;\n      reader.readMessage(value,proto.Argument.deserializeBinaryFromReader);\n      msg.addArguments(value);\n      break;\n    case 33:\n      var value = new proto.Metadata;\n      reader.readMessage(value,proto.Metadata.deserializeBinaryFromReader);\n      msg.addOptions(value);\n      break;\n    case 34:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDirection(value);\n      break;\n    case 35:\n      var value = new proto.AssistantConversationRecording;\n      reader.readMessage(value,proto.AssistantConversationRecording.deserializeBinaryFromReader);\n      msg.addRecordings(value);\n      break;\n    case 36:\n      var value = new proto.AssistantConversationTelephonyEvent;\n      reader.readMessage(value,proto.AssistantConversationTelephonyEvent.deserializeBinaryFromReader);\n      msg.addTelephonyevents(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.AssistantConversation.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.AssistantConversation.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.AssistantConversation} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.AssistantConversation.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getUserid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      3,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      5,\n      f\n    );\n  }\n  f = message.getOrganizationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      6,\n      f\n    );\n  }\n  f = message.getSource();\n  if (f.length > 0) {\n    writer.writeString(\n      7,\n      f\n    );\n  }\n  f = message.getCreatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1000,\n      f,\n      proto.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1001,\n      f,\n      proto.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUser();\n  if (f != null) {\n    writer.writeMessage(\n      10,\n      f,\n      proto.User.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantprovidermodelid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      12,\n      f\n    );\n  }\n  f = message.getAssistantconversationmessageList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      13,\n      f,\n      proto.AssistantConversationMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getIdentifier();\n  if (f.length > 0) {\n    writer.writeString(\n      14,\n      f\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      15,\n      f\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      26,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      27,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getContextsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      28,\n      f,\n      proto.AssistantConversationContext.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetricsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      30,\n      f,\n      proto.Metric.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetadataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      32,\n      f,\n      proto.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getArgumentsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      31,\n      f,\n      proto.Argument.serializeBinaryToWriter\n    );\n  }\n  f = message.getOptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      33,\n      f,\n      proto.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getDirection();\n  if (f.length > 0) {\n    writer.writeString(\n      34,\n      f\n    );\n  }\n  f = message.getRecordingsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      35,\n      f,\n      proto.AssistantConversationRecording.serializeBinaryToWriter\n    );\n  }\n  f = message.getTelephonyeventsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      36,\n      f,\n      proto.AssistantConversationTelephonyEvent.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 userId = 2;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getUserid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setUserid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional uint64 assistantId = 3;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 3, value);\n};\n\n\n/**\n * optional string name = 4;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional uint64 projectId = 5;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 5, value);\n};\n\n\n/**\n * optional uint64 organizationId = 6;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getOrganizationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setOrganizationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 6, value);\n};\n\n\n/**\n * optional string source = 7;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getSource = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setSource = function(value) {\n  return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n/**\n * optional AuditActor createdActor = 1000;\n * @return {?proto.AuditActor}\n */\nproto.AssistantConversation.prototype.getCreatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, proto.AuditActor, 1000));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setCreatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1000, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearCreatedactor = function() {\n  return this.setCreatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversation.prototype.hasCreatedactor = function() {\n  return jspb.Message.getField(this, 1000) != null;\n};\n\n\n/**\n * optional AuditActor updatedActor = 1001;\n * @return {?proto.AuditActor}\n */\nproto.AssistantConversation.prototype.getUpdatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, proto.AuditActor, 1001));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setUpdatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearUpdatedactor = function() {\n  return this.setUpdatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversation.prototype.hasUpdatedactor = function() {\n  return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * optional User user = 10;\n * @return {?proto.User}\n */\nproto.AssistantConversation.prototype.getUser = function() {\n  return /** @type{?proto.User} */ (\n    jspb.Message.getWrapperField(this, proto.User, 10));\n};\n\n\n/**\n * @param {?proto.User|undefined} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setUser = function(value) {\n  return jspb.Message.setWrapperField(this, 10, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearUser = function() {\n  return this.setUser(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversation.prototype.hasUser = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional uint64 assistantProviderModelId = 12;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getAssistantprovidermodelid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setAssistantprovidermodelid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 12, value);\n};\n\n\n/**\n * repeated AssistantConversationMessage assistantConversationMessage = 13;\n * @return {!Array<!proto.AssistantConversationMessage>}\n */\nproto.AssistantConversation.prototype.getAssistantconversationmessageList = function() {\n  return /** @type{!Array<!proto.AssistantConversationMessage>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.AssistantConversationMessage, 13));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversationMessage>} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setAssistantconversationmessageList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 13, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversationMessage=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversationMessage}\n */\nproto.AssistantConversation.prototype.addAssistantconversationmessage = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 13, opt_value, proto.AssistantConversationMessage, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearAssistantconversationmessageList = function() {\n  return this.setAssistantconversationmessageList([]);\n};\n\n\n/**\n * optional string identifier = 14;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getIdentifier = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setIdentifier = function(value) {\n  return jspb.Message.setProto3StringField(this, 14, value);\n};\n\n\n/**\n * optional string status = 15;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 15, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 26;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.AssistantConversation.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 26));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversation.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 27;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.AssistantConversation.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 27));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 27, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.AssistantConversation.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 27) != null;\n};\n\n\n/**\n * repeated AssistantConversationContext contexts = 28;\n * @return {!Array<!proto.AssistantConversationContext>}\n */\nproto.AssistantConversation.prototype.getContextsList = function() {\n  return /** @type{!Array<!proto.AssistantConversationContext>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.AssistantConversationContext, 28));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversationContext>} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setContextsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 28, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversationContext=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversationContext}\n */\nproto.AssistantConversation.prototype.addContexts = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 28, opt_value, proto.AssistantConversationContext, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearContextsList = function() {\n  return this.setContextsList([]);\n};\n\n\n/**\n * repeated Metric metrics = 30;\n * @return {!Array<!proto.Metric>}\n */\nproto.AssistantConversation.prototype.getMetricsList = function() {\n  return /** @type{!Array<!proto.Metric>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Metric, 30));\n};\n\n\n/**\n * @param {!Array<!proto.Metric>} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setMetricsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 30, value);\n};\n\n\n/**\n * @param {!proto.Metric=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metric}\n */\nproto.AssistantConversation.prototype.addMetrics = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 30, opt_value, proto.Metric, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearMetricsList = function() {\n  return this.setMetricsList([]);\n};\n\n\n/**\n * repeated Metadata metadata = 32;\n * @return {!Array<!proto.Metadata>}\n */\nproto.AssistantConversation.prototype.getMetadataList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Metadata, 32));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setMetadataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 32, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.AssistantConversation.prototype.addMetadata = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 32, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearMetadataList = function() {\n  return this.setMetadataList([]);\n};\n\n\n/**\n * repeated Argument arguments = 31;\n * @return {!Array<!proto.Argument>}\n */\nproto.AssistantConversation.prototype.getArgumentsList = function() {\n  return /** @type{!Array<!proto.Argument>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Argument, 31));\n};\n\n\n/**\n * @param {!Array<!proto.Argument>} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setArgumentsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 31, value);\n};\n\n\n/**\n * @param {!proto.Argument=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Argument}\n */\nproto.AssistantConversation.prototype.addArguments = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 31, opt_value, proto.Argument, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearArgumentsList = function() {\n  return this.setArgumentsList([]);\n};\n\n\n/**\n * repeated Metadata options = 33;\n * @return {!Array<!proto.Metadata>}\n */\nproto.AssistantConversation.prototype.getOptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Metadata, 33));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setOptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 33, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.AssistantConversation.prototype.addOptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 33, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearOptionsList = function() {\n  return this.setOptionsList([]);\n};\n\n\n/**\n * optional string direction = 34;\n * @return {string}\n */\nproto.AssistantConversation.prototype.getDirection = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 34, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.setDirection = function(value) {\n  return jspb.Message.setProto3StringField(this, 34, value);\n};\n\n\n/**\n * repeated AssistantConversationRecording recordings = 35;\n * @return {!Array<!proto.AssistantConversationRecording>}\n */\nproto.AssistantConversation.prototype.getRecordingsList = function() {\n  return /** @type{!Array<!proto.AssistantConversationRecording>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.AssistantConversationRecording, 35));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversationRecording>} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setRecordingsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 35, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversationRecording=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversationRecording}\n */\nproto.AssistantConversation.prototype.addRecordings = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 35, opt_value, proto.AssistantConversationRecording, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearRecordingsList = function() {\n  return this.setRecordingsList([]);\n};\n\n\n/**\n * repeated AssistantConversationTelephonyEvent telephonyEvents = 36;\n * @return {!Array<!proto.AssistantConversationTelephonyEvent>}\n */\nproto.AssistantConversation.prototype.getTelephonyeventsList = function() {\n  return /** @type{!Array<!proto.AssistantConversationTelephonyEvent>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.AssistantConversationTelephonyEvent, 36));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversationTelephonyEvent>} value\n * @return {!proto.AssistantConversation} returns this\n*/\nproto.AssistantConversation.prototype.setTelephonyeventsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 36, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversationTelephonyEvent=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversationTelephonyEvent}\n */\nproto.AssistantConversation.prototype.addTelephonyevents = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 36, opt_value, proto.AssistantConversationTelephonyEvent, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.AssistantConversation} returns this\n */\nproto.AssistantConversation.prototype.clearTelephonyeventsList = function() {\n  return this.setTelephonyeventsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.GetAllAssistantConversationRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetAllAssistantConversationRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.GetAllAssistantConversationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.GetAllAssistantConversationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetAllAssistantConversationRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    paginate: (f = msg.getPaginate()) && proto.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    proto.Criteria.toObject, includeInstance),\n    source: jspb.Message.getFieldWithDefault(msg, 7, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetAllAssistantConversationRequest}\n */\nproto.GetAllAssistantConversationRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.GetAllAssistantConversationRequest;\n  return proto.GetAllAssistantConversationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetAllAssistantConversationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetAllAssistantConversationRequest}\n */\nproto.GetAllAssistantConversationRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = new proto.Paginate;\n      reader.readMessage(value,proto.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 3:\n      var value = new proto.Criteria;\n      reader.readMessage(value,proto.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    case 7:\n      var value = /** @type {!proto.Source} */ (reader.readEnum());\n      msg.setSource(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetAllAssistantConversationRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.GetAllAssistantConversationRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetAllAssistantConversationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetAllAssistantConversationRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      proto.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.Criteria.serializeBinaryToWriter\n    );\n  }\n  f = message.getSource();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      7,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.GetAllAssistantConversationRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.GetAllAssistantConversationRequest} returns this\n */\nproto.GetAllAssistantConversationRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional Paginate paginate = 2;\n * @return {?proto.Paginate}\n */\nproto.GetAllAssistantConversationRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, proto.Paginate, 2));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.GetAllAssistantConversationRequest} returns this\n*/\nproto.GetAllAssistantConversationRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetAllAssistantConversationRequest} returns this\n */\nproto.GetAllAssistantConversationRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetAllAssistantConversationRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 3;\n * @return {!Array<!proto.Criteria>}\n */\nproto.GetAllAssistantConversationRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Criteria, 3));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.GetAllAssistantConversationRequest} returns this\n*/\nproto.GetAllAssistantConversationRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.GetAllAssistantConversationRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetAllAssistantConversationRequest} returns this\n */\nproto.GetAllAssistantConversationRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n/**\n * optional Source source = 7;\n * @return {!proto.Source}\n */\nproto.GetAllAssistantConversationRequest.prototype.getSource = function() {\n  return /** @type {!proto.Source} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {!proto.Source} value\n * @return {!proto.GetAllAssistantConversationRequest} returns this\n */\nproto.GetAllAssistantConversationRequest.prototype.setSource = function(value) {\n  return jspb.Message.setProto3EnumField(this, 7, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.GetAllAssistantConversationResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetAllAssistantConversationResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.GetAllAssistantConversationResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.GetAllAssistantConversationResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetAllAssistantConversationResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.AssistantConversation.toObject, includeInstance),\n    error: (f = msg.getError()) && proto.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && proto.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetAllAssistantConversationResponse}\n */\nproto.GetAllAssistantConversationResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.GetAllAssistantConversationResponse;\n  return proto.GetAllAssistantConversationResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetAllAssistantConversationResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetAllAssistantConversationResponse}\n */\nproto.GetAllAssistantConversationResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.AssistantConversation;\n      reader.readMessage(value,proto.AssistantConversation.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new proto.Error;\n      reader.readMessage(value,proto.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new proto.Paginated;\n      reader.readMessage(value,proto.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetAllAssistantConversationResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.GetAllAssistantConversationResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetAllAssistantConversationResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetAllAssistantConversationResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.AssistantConversation.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      proto.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      proto.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.GetAllAssistantConversationResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.GetAllAssistantConversationResponse} returns this\n */\nproto.GetAllAssistantConversationResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.GetAllAssistantConversationResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.GetAllAssistantConversationResponse} returns this\n */\nproto.GetAllAssistantConversationResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantConversation data = 3;\n * @return {!Array<!proto.AssistantConversation>}\n */\nproto.GetAllAssistantConversationResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.AssistantConversation>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.AssistantConversation, 3));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversation>} value\n * @return {!proto.GetAllAssistantConversationResponse} returns this\n*/\nproto.GetAllAssistantConversationResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversation=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversation}\n */\nproto.GetAllAssistantConversationResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.AssistantConversation, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetAllAssistantConversationResponse} returns this\n */\nproto.GetAllAssistantConversationResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.GetAllAssistantConversationResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, proto.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.GetAllAssistantConversationResponse} returns this\n*/\nproto.GetAllAssistantConversationResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetAllAssistantConversationResponse} returns this\n */\nproto.GetAllAssistantConversationResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetAllAssistantConversationResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.GetAllAssistantConversationResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, proto.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.GetAllAssistantConversationResponse} returns this\n*/\nproto.GetAllAssistantConversationResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetAllAssistantConversationResponse} returns this\n */\nproto.GetAllAssistantConversationResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetAllAssistantConversationResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.GetAllConversationMessageRequest.repeatedFields_ = [4];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetAllConversationMessageRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.GetAllConversationMessageRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.GetAllConversationMessageRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetAllConversationMessageRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    paginate: (f = msg.getPaginate()) && proto.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    proto.Criteria.toObject, includeInstance),\n    order: (f = msg.getOrder()) && proto.Ordering.toObject(includeInstance, f),\n    source: jspb.Message.getFieldWithDefault(msg, 7, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetAllConversationMessageRequest}\n */\nproto.GetAllConversationMessageRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.GetAllConversationMessageRequest;\n  return proto.GetAllConversationMessageRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetAllConversationMessageRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetAllConversationMessageRequest}\n */\nproto.GetAllConversationMessageRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 3:\n      var value = new proto.Paginate;\n      reader.readMessage(value,proto.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 4:\n      var value = new proto.Criteria;\n      reader.readMessage(value,proto.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    case 5:\n      var value = new proto.Ordering;\n      reader.readMessage(value,proto.Ordering.deserializeBinaryFromReader);\n      msg.setOrder(value);\n      break;\n    case 7:\n      var value = /** @type {!proto.Source} */ (reader.readEnum());\n      msg.setSource(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetAllConversationMessageRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.GetAllConversationMessageRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetAllConversationMessageRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetAllConversationMessageRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      4,\n      f,\n      proto.Criteria.serializeBinaryToWriter\n    );\n  }\n  f = message.getOrder();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      proto.Ordering.serializeBinaryToWriter\n    );\n  }\n  f = message.getSource();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      7,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.GetAllConversationMessageRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.GetAllConversationMessageRequest} returns this\n */\nproto.GetAllConversationMessageRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantConversationId = 2;\n * @return {string}\n */\nproto.GetAllConversationMessageRequest.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.GetAllConversationMessageRequest} returns this\n */\nproto.GetAllConversationMessageRequest.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional Paginate paginate = 3;\n * @return {?proto.Paginate}\n */\nproto.GetAllConversationMessageRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, proto.Paginate, 3));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.GetAllConversationMessageRequest} returns this\n*/\nproto.GetAllConversationMessageRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetAllConversationMessageRequest} returns this\n */\nproto.GetAllConversationMessageRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetAllConversationMessageRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 4;\n * @return {!Array<!proto.Criteria>}\n */\nproto.GetAllConversationMessageRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.Criteria, 4));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.GetAllConversationMessageRequest} returns this\n*/\nproto.GetAllConversationMessageRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.GetAllConversationMessageRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetAllConversationMessageRequest} returns this\n */\nproto.GetAllConversationMessageRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n/**\n * optional Ordering order = 5;\n * @return {?proto.Ordering}\n */\nproto.GetAllConversationMessageRequest.prototype.getOrder = function() {\n  return /** @type{?proto.Ordering} */ (\n    jspb.Message.getWrapperField(this, proto.Ordering, 5));\n};\n\n\n/**\n * @param {?proto.Ordering|undefined} value\n * @return {!proto.GetAllConversationMessageRequest} returns this\n*/\nproto.GetAllConversationMessageRequest.prototype.setOrder = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetAllConversationMessageRequest} returns this\n */\nproto.GetAllConversationMessageRequest.prototype.clearOrder = function() {\n  return this.setOrder(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetAllConversationMessageRequest.prototype.hasOrder = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional Source source = 7;\n * @return {!proto.Source}\n */\nproto.GetAllConversationMessageRequest.prototype.getSource = function() {\n  return /** @type {!proto.Source} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {!proto.Source} value\n * @return {!proto.GetAllConversationMessageRequest} returns this\n */\nproto.GetAllConversationMessageRequest.prototype.setSource = function(value) {\n  return jspb.Message.setProto3EnumField(this, 7, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.GetAllConversationMessageResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.GetAllConversationMessageResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.GetAllConversationMessageResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.GetAllConversationMessageResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetAllConversationMessageResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.AssistantConversationMessage.toObject, includeInstance),\n    error: (f = msg.getError()) && proto.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && proto.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.GetAllConversationMessageResponse}\n */\nproto.GetAllConversationMessageResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.GetAllConversationMessageResponse;\n  return proto.GetAllConversationMessageResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.GetAllConversationMessageResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.GetAllConversationMessageResponse}\n */\nproto.GetAllConversationMessageResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.AssistantConversationMessage;\n      reader.readMessage(value,proto.AssistantConversationMessage.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new proto.Error;\n      reader.readMessage(value,proto.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new proto.Paginated;\n      reader.readMessage(value,proto.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.GetAllConversationMessageResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.GetAllConversationMessageResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.GetAllConversationMessageResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.GetAllConversationMessageResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.AssistantConversationMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      proto.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      proto.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.GetAllConversationMessageResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.GetAllConversationMessageResponse} returns this\n */\nproto.GetAllConversationMessageResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.GetAllConversationMessageResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.GetAllConversationMessageResponse} returns this\n */\nproto.GetAllConversationMessageResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantConversationMessage data = 3;\n * @return {!Array<!proto.AssistantConversationMessage>}\n */\nproto.GetAllConversationMessageResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.AssistantConversationMessage>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.AssistantConversationMessage, 3));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversationMessage>} value\n * @return {!proto.GetAllConversationMessageResponse} returns this\n*/\nproto.GetAllConversationMessageResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversationMessage=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversationMessage}\n */\nproto.GetAllConversationMessageResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.AssistantConversationMessage, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.GetAllConversationMessageResponse} returns this\n */\nproto.GetAllConversationMessageResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.GetAllConversationMessageResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, proto.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.GetAllConversationMessageResponse} returns this\n*/\nproto.GetAllConversationMessageResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetAllConversationMessageResponse} returns this\n */\nproto.GetAllConversationMessageResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetAllConversationMessageResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.GetAllConversationMessageResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, proto.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.GetAllConversationMessageResponse} returns this\n*/\nproto.GetAllConversationMessageResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.GetAllConversationMessageResponse} returns this\n */\nproto.GetAllConversationMessageResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.GetAllConversationMessageResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * @enum {number}\n */\nproto.Source = {\n  WEB_PLUGIN: 0,\n  DEBUGGER: 1,\n  SDK: 2,\n  PHONE_CALL: 3,\n  WHATSAPP: 4\n};\n\ngoog.object.extend(exports, proto);\n","// source: talk-api.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n *     field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() { return this || window || global || self || Function('return this')(); }).call(null);\n\nvar google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js');\ngoog.object.extend(proto, google_protobuf_any_pb);\nvar common_pb = require('./common_pb.js');\ngoog.object.extend(proto, common_pb);\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\ngoog.exportSymbol('proto.talk_api.AssistantTalkRequest', null, global);\ngoog.exportSymbol('proto.talk_api.AssistantTalkRequest.RequestCase', null, global);\ngoog.exportSymbol('proto.talk_api.AssistantTalkResponse', null, global);\ngoog.exportSymbol('proto.talk_api.AssistantTalkResponse.DataCase', null, global);\ngoog.exportSymbol('proto.talk_api.AudioConfig', null, global);\ngoog.exportSymbol('proto.talk_api.AudioConfig.AudioFormat', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationAssistantMessage', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationAssistantMessage.MessageCase', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationBridgeOperatorAudio', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationBridgeUserAudio', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationConfiguration', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationDisconnection', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationDisconnection.DisconnectionType', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationError', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationEvent', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationInitialization', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationInitialization.UseridentityCase', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationInterruption', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationInterruption.InterruptionType', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationMetadata', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationMetric', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationModeChange', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationModeChange.ModeType', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationToolCall', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationToolCallResult', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationUserMessage', null, global);\ngoog.exportSymbol('proto.talk_api.ConversationUserMessage.MessageCase', null, global);\ngoog.exportSymbol('proto.talk_api.CreateBulkPhoneCallRequest', null, global);\ngoog.exportSymbol('proto.talk_api.CreateBulkPhoneCallResponse', null, global);\ngoog.exportSymbol('proto.talk_api.CreateConversationMetricRequest', null, global);\ngoog.exportSymbol('proto.talk_api.CreateConversationMetricResponse', null, global);\ngoog.exportSymbol('proto.talk_api.CreateMessageMetricRequest', null, global);\ngoog.exportSymbol('proto.talk_api.CreateMessageMetricResponse', null, global);\ngoog.exportSymbol('proto.talk_api.CreatePhoneCallRequest', null, global);\ngoog.exportSymbol('proto.talk_api.CreatePhoneCallResponse', null, global);\ngoog.exportSymbol('proto.talk_api.PhoneIdentity', null, global);\ngoog.exportSymbol('proto.talk_api.StreamConfig', null, global);\ngoog.exportSymbol('proto.talk_api.StreamMode', null, global);\ngoog.exportSymbol('proto.talk_api.TextConfig', null, global);\ngoog.exportSymbol('proto.talk_api.ToolCallAction', null, global);\ngoog.exportSymbol('proto.talk_api.WebIdentity', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationToolCall = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationToolCall, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationToolCall.displayName = 'proto.talk_api.ConversationToolCall';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationToolCallResult = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationToolCallResult, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationToolCallResult.displayName = 'proto.talk_api.ConversationToolCallResult';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationMetric = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.ConversationMetric.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.ConversationMetric, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationMetric.displayName = 'proto.talk_api.ConversationMetric';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationMetadata = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.ConversationMetadata.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.ConversationMetadata, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationMetadata.displayName = 'proto.talk_api.ConversationMetadata';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationBridgeUserAudio = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationBridgeUserAudio, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationBridgeUserAudio.displayName = 'proto.talk_api.ConversationBridgeUserAudio';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationBridgeOperatorAudio = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationBridgeOperatorAudio, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationBridgeOperatorAudio.displayName = 'proto.talk_api.ConversationBridgeOperatorAudio';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationError = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationError, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationError.displayName = 'proto.talk_api.ConversationError';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationEvent = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationEvent, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationEvent.displayName = 'proto.talk_api.ConversationEvent';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.AudioConfig = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.AudioConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.AudioConfig.displayName = 'proto.talk_api.AudioConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.TextConfig = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.TextConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.TextConfig.displayName = 'proto.talk_api.TextConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.StreamConfig = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.StreamConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.StreamConfig.displayName = 'proto.talk_api.StreamConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.WebIdentity = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.WebIdentity, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.WebIdentity.displayName = 'proto.talk_api.WebIdentity';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.PhoneIdentity = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.PhoneIdentity, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.PhoneIdentity.displayName = 'proto.talk_api.PhoneIdentity';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationInitialization = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.talk_api.ConversationInitialization.oneofGroups_);\n};\ngoog.inherits(proto.talk_api.ConversationInitialization, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationInitialization.displayName = 'proto.talk_api.ConversationInitialization';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationConfiguration = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationConfiguration, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationConfiguration.displayName = 'proto.talk_api.ConversationConfiguration';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationInterruption = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationInterruption, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationInterruption.displayName = 'proto.talk_api.ConversationInterruption';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationDisconnection = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationDisconnection, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationDisconnection.displayName = 'proto.talk_api.ConversationDisconnection';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationAssistantMessage = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.talk_api.ConversationAssistantMessage.oneofGroups_);\n};\ngoog.inherits(proto.talk_api.ConversationAssistantMessage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationAssistantMessage.displayName = 'proto.talk_api.ConversationAssistantMessage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationUserMessage = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.talk_api.ConversationUserMessage.oneofGroups_);\n};\ngoog.inherits(proto.talk_api.ConversationUserMessage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationUserMessage.displayName = 'proto.talk_api.ConversationUserMessage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ConversationModeChange = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ConversationModeChange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ConversationModeChange.displayName = 'proto.talk_api.ConversationModeChange';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.AssistantTalkRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.talk_api.AssistantTalkRequest.oneofGroups_);\n};\ngoog.inherits(proto.talk_api.AssistantTalkRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.AssistantTalkRequest.displayName = 'proto.talk_api.AssistantTalkRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.AssistantTalkResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.talk_api.AssistantTalkResponse.oneofGroups_);\n};\ngoog.inherits(proto.talk_api.AssistantTalkResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.AssistantTalkResponse.displayName = 'proto.talk_api.AssistantTalkResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.CreateMessageMetricRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.CreateMessageMetricRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.CreateMessageMetricRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.CreateMessageMetricRequest.displayName = 'proto.talk_api.CreateMessageMetricRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.CreateMessageMetricResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.CreateMessageMetricResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.CreateMessageMetricResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.CreateMessageMetricResponse.displayName = 'proto.talk_api.CreateMessageMetricResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.CreateConversationMetricRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.CreateConversationMetricRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.CreateConversationMetricRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.CreateConversationMetricRequest.displayName = 'proto.talk_api.CreateConversationMetricRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.CreateConversationMetricResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.CreateConversationMetricResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.CreateConversationMetricResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.CreateConversationMetricResponse.displayName = 'proto.talk_api.CreateConversationMetricResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.CreatePhoneCallRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.CreatePhoneCallRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.CreatePhoneCallRequest.displayName = 'proto.talk_api.CreatePhoneCallRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.CreatePhoneCallResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.CreatePhoneCallResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.CreatePhoneCallResponse.displayName = 'proto.talk_api.CreatePhoneCallResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.CreateBulkPhoneCallRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.CreateBulkPhoneCallRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.CreateBulkPhoneCallRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.CreateBulkPhoneCallRequest.displayName = 'proto.talk_api.CreateBulkPhoneCallRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.CreateBulkPhoneCallResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.CreateBulkPhoneCallResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.CreateBulkPhoneCallResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.CreateBulkPhoneCallResponse.displayName = 'proto.talk_api.CreateBulkPhoneCallResponse';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationToolCall.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationToolCall.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationToolCall} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationToolCall.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    toolid: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    name: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    action: jspb.Message.getFieldWithDefault(msg, 4, 0),\n    argsMap: (f = msg.getArgsMap()) ? f.toObject(includeInstance, undefined) : [],\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationToolCall}\n */\nproto.talk_api.ConversationToolCall.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationToolCall;\n  return proto.talk_api.ConversationToolCall.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationToolCall} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationToolCall}\n */\nproto.talk_api.ConversationToolCall.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setToolid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 4:\n      var value = /** @type {!proto.talk_api.ToolCallAction} */ (reader.readEnum());\n      msg.setAction(value);\n      break;\n    case 5:\n      var value = msg.getArgsMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    case 6:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationToolCall.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationToolCall.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationToolCall} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationToolCall.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getToolid();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getAction();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      4,\n      f\n    );\n  }\n  f = message.getArgsMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      6,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.talk_api.ConversationToolCall.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationToolCall} returns this\n */\nproto.talk_api.ConversationToolCall.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string toolId = 2;\n * @return {string}\n */\nproto.talk_api.ConversationToolCall.prototype.getToolid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationToolCall} returns this\n */\nproto.talk_api.ConversationToolCall.prototype.setToolid = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nproto.talk_api.ConversationToolCall.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationToolCall} returns this\n */\nproto.talk_api.ConversationToolCall.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional ToolCallAction action = 4;\n * @return {!proto.talk_api.ToolCallAction}\n */\nproto.talk_api.ConversationToolCall.prototype.getAction = function() {\n  return /** @type {!proto.talk_api.ToolCallAction} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {!proto.talk_api.ToolCallAction} value\n * @return {!proto.talk_api.ConversationToolCall} returns this\n */\nproto.talk_api.ConversationToolCall.prototype.setAction = function(value) {\n  return jspb.Message.setProto3EnumField(this, 4, value);\n};\n\n\n/**\n * map<string, string> args = 5;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.talk_api.ConversationToolCall.prototype.getArgsMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 5, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.ConversationToolCall} returns this\n */\nproto.talk_api.ConversationToolCall.prototype.clearArgsMap = function() {\n  this.getArgsMap().clear();\n  return this;};\n\n\n/**\n * optional google.protobuf.Timestamp time = 6;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationToolCall.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationToolCall} returns this\n*/\nproto.talk_api.ConversationToolCall.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 6, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationToolCall} returns this\n */\nproto.talk_api.ConversationToolCall.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationToolCall.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 6) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationToolCallResult.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationToolCallResult.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationToolCallResult} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationToolCallResult.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    toolid: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    name: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    action: jspb.Message.getFieldWithDefault(msg, 4, 0),\n    resultMap: (f = msg.getResultMap()) ? f.toObject(includeInstance, undefined) : [],\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationToolCallResult}\n */\nproto.talk_api.ConversationToolCallResult.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationToolCallResult;\n  return proto.talk_api.ConversationToolCallResult.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationToolCallResult} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationToolCallResult}\n */\nproto.talk_api.ConversationToolCallResult.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setToolid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 4:\n      var value = /** @type {!proto.talk_api.ToolCallAction} */ (reader.readEnum());\n      msg.setAction(value);\n      break;\n    case 5:\n      var value = msg.getResultMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    case 6:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationToolCallResult.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationToolCallResult.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationToolCallResult} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationToolCallResult.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getToolid();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getAction();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      4,\n      f\n    );\n  }\n  f = message.getResultMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      6,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.talk_api.ConversationToolCallResult.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationToolCallResult} returns this\n */\nproto.talk_api.ConversationToolCallResult.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string toolId = 2;\n * @return {string}\n */\nproto.talk_api.ConversationToolCallResult.prototype.getToolid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationToolCallResult} returns this\n */\nproto.talk_api.ConversationToolCallResult.prototype.setToolid = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nproto.talk_api.ConversationToolCallResult.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationToolCallResult} returns this\n */\nproto.talk_api.ConversationToolCallResult.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional ToolCallAction action = 4;\n * @return {!proto.talk_api.ToolCallAction}\n */\nproto.talk_api.ConversationToolCallResult.prototype.getAction = function() {\n  return /** @type {!proto.talk_api.ToolCallAction} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {!proto.talk_api.ToolCallAction} value\n * @return {!proto.talk_api.ConversationToolCallResult} returns this\n */\nproto.talk_api.ConversationToolCallResult.prototype.setAction = function(value) {\n  return jspb.Message.setProto3EnumField(this, 4, value);\n};\n\n\n/**\n * map<string, string> result = 5;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.talk_api.ConversationToolCallResult.prototype.getResultMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 5, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.ConversationToolCallResult} returns this\n */\nproto.talk_api.ConversationToolCallResult.prototype.clearResultMap = function() {\n  this.getResultMap().clear();\n  return this;};\n\n\n/**\n * optional google.protobuf.Timestamp time = 6;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationToolCallResult.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationToolCallResult} returns this\n*/\nproto.talk_api.ConversationToolCallResult.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 6, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationToolCallResult} returns this\n */\nproto.talk_api.ConversationToolCallResult.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationToolCallResult.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 6) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.ConversationMetric.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationMetric.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationMetric.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationMetric} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationMetric.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    metricsList: jspb.Message.toObjectList(msg.getMetricsList(),\n    common_pb.Metric.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationMetric}\n */\nproto.talk_api.ConversationMetric.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationMetric;\n  return proto.talk_api.ConversationMetric.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationMetric} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationMetric}\n */\nproto.talk_api.ConversationMetric.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 2:\n      var value = new common_pb.Metric;\n      reader.readMessage(value,common_pb.Metric.deserializeBinaryFromReader);\n      msg.addMetrics(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationMetric.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationMetric.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationMetric} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationMetric.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getMetricsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      2,\n      f,\n      common_pb.Metric.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantConversationId = 1;\n * @return {string}\n */\nproto.talk_api.ConversationMetric.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationMetric} returns this\n */\nproto.talk_api.ConversationMetric.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * repeated Metric metrics = 2;\n * @return {!Array<!proto.Metric>}\n */\nproto.talk_api.ConversationMetric.prototype.getMetricsList = function() {\n  return /** @type{!Array<!proto.Metric>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metric, 2));\n};\n\n\n/**\n * @param {!Array<!proto.Metric>} value\n * @return {!proto.talk_api.ConversationMetric} returns this\n*/\nproto.talk_api.ConversationMetric.prototype.setMetricsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.Metric=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metric}\n */\nproto.talk_api.ConversationMetric.prototype.addMetrics = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Metric, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.ConversationMetric} returns this\n */\nproto.talk_api.ConversationMetric.prototype.clearMetricsList = function() {\n  return this.setMetricsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.ConversationMetadata.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationMetadata.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationMetadata.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationMetadata} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationMetadata.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    metadataList: jspb.Message.toObjectList(msg.getMetadataList(),\n    common_pb.Metadata.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationMetadata}\n */\nproto.talk_api.ConversationMetadata.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationMetadata;\n  return proto.talk_api.ConversationMetadata.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationMetadata} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationMetadata}\n */\nproto.talk_api.ConversationMetadata.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 2:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addMetadata(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationMetadata.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationMetadata.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationMetadata} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationMetadata.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getMetadataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      2,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantConversationId = 1;\n * @return {string}\n */\nproto.talk_api.ConversationMetadata.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationMetadata} returns this\n */\nproto.talk_api.ConversationMetadata.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * repeated Metadata metadata = 2;\n * @return {!Array<!proto.Metadata>}\n */\nproto.talk_api.ConversationMetadata.prototype.getMetadataList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 2));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.talk_api.ConversationMetadata} returns this\n*/\nproto.talk_api.ConversationMetadata.prototype.setMetadataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.talk_api.ConversationMetadata.prototype.addMetadata = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.ConversationMetadata} returns this\n */\nproto.talk_api.ConversationMetadata.prototype.clearMetadataList = function() {\n  return this.setMetadataList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationBridgeUserAudio.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationBridgeUserAudio.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationBridgeUserAudio} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationBridgeUserAudio.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    audio: msg.getAudio_asB64(),\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationBridgeUserAudio}\n */\nproto.talk_api.ConversationBridgeUserAudio.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationBridgeUserAudio;\n  return proto.talk_api.ConversationBridgeUserAudio.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationBridgeUserAudio} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationBridgeUserAudio}\n */\nproto.talk_api.ConversationBridgeUserAudio.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {!Uint8Array} */ (reader.readBytes());\n      msg.setAudio(value);\n      break;\n    case 2:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationBridgeUserAudio.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationBridgeUserAudio.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationBridgeUserAudio} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationBridgeUserAudio.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAudio_asU8();\n  if (f.length > 0) {\n    writer.writeBytes(\n      1,\n      f\n    );\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional bytes audio = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.talk_api.ConversationBridgeUserAudio.prototype.getAudio = function() {\n  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes audio = 1;\n * This is a type-conversion wrapper around `getAudio()`\n * @return {string}\n */\nproto.talk_api.ConversationBridgeUserAudio.prototype.getAudio_asB64 = function() {\n  return /** @type {string} */ (jspb.Message.bytesAsB64(\n      this.getAudio()));\n};\n\n\n/**\n * optional bytes audio = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAudio()`\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationBridgeUserAudio.prototype.getAudio_asU8 = function() {\n  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n      this.getAudio()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.talk_api.ConversationBridgeUserAudio} returns this\n */\nproto.talk_api.ConversationBridgeUserAudio.prototype.setAudio = function(value) {\n  return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp time = 2;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationBridgeUserAudio.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationBridgeUserAudio} returns this\n*/\nproto.talk_api.ConversationBridgeUserAudio.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationBridgeUserAudio} returns this\n */\nproto.talk_api.ConversationBridgeUserAudio.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationBridgeUserAudio.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationBridgeOperatorAudio.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationBridgeOperatorAudio} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationBridgeOperatorAudio.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    audio: msg.getAudio_asB64(),\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationBridgeOperatorAudio}\n */\nproto.talk_api.ConversationBridgeOperatorAudio.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationBridgeOperatorAudio;\n  return proto.talk_api.ConversationBridgeOperatorAudio.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationBridgeOperatorAudio} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationBridgeOperatorAudio}\n */\nproto.talk_api.ConversationBridgeOperatorAudio.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {!Uint8Array} */ (reader.readBytes());\n      msg.setAudio(value);\n      break;\n    case 2:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationBridgeOperatorAudio.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationBridgeOperatorAudio} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationBridgeOperatorAudio.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAudio_asU8();\n  if (f.length > 0) {\n    writer.writeBytes(\n      1,\n      f\n    );\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional bytes audio = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.getAudio = function() {\n  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes audio = 1;\n * This is a type-conversion wrapper around `getAudio()`\n * @return {string}\n */\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.getAudio_asB64 = function() {\n  return /** @type {string} */ (jspb.Message.bytesAsB64(\n      this.getAudio()));\n};\n\n\n/**\n * optional bytes audio = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAudio()`\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.getAudio_asU8 = function() {\n  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n      this.getAudio()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.talk_api.ConversationBridgeOperatorAudio} returns this\n */\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.setAudio = function(value) {\n  return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp time = 2;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationBridgeOperatorAudio} returns this\n*/\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationBridgeOperatorAudio} returns this\n */\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationBridgeOperatorAudio.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationError.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationError.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationError} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationError.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    message: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    detailsMap: (f = msg.getDetailsMap()) ? f.toObject(includeInstance, undefined) : []\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationError}\n */\nproto.talk_api.ConversationError.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationError;\n  return proto.talk_api.ConversationError.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationError} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationError}\n */\nproto.talk_api.ConversationError.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setMessage(value);\n      break;\n    case 3:\n      var value = msg.getDetailsMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationError.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationError.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationError} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationError.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getMessage();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getDetailsMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n};\n\n\n/**\n * optional uint64 assistantConversationId = 1;\n * @return {string}\n */\nproto.talk_api.ConversationError.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationError} returns this\n */\nproto.talk_api.ConversationError.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string message = 2;\n * @return {string}\n */\nproto.talk_api.ConversationError.prototype.getMessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationError} returns this\n */\nproto.talk_api.ConversationError.prototype.setMessage = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * map<string, string> details = 3;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.talk_api.ConversationError.prototype.getDetailsMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 3, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.ConversationError} returns this\n */\nproto.talk_api.ConversationError.prototype.clearDetailsMap = function() {\n  this.getDetailsMap().clear();\n  return this;};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationEvent.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationEvent.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationEvent} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationEvent.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    dataMap: (f = msg.getDataMap()) ? f.toObject(includeInstance, undefined) : [],\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationEvent}\n */\nproto.talk_api.ConversationEvent.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationEvent;\n  return proto.talk_api.ConversationEvent.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationEvent} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationEvent}\n */\nproto.talk_api.ConversationEvent.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 3:\n      var value = msg.getDataMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    case 4:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationEvent.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationEvent.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationEvent} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationEvent.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getDataMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.talk_api.ConversationEvent.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationEvent} returns this\n */\nproto.talk_api.ConversationEvent.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.talk_api.ConversationEvent.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationEvent} returns this\n */\nproto.talk_api.ConversationEvent.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * map<string, string> data = 3;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.talk_api.ConversationEvent.prototype.getDataMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 3, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.ConversationEvent} returns this\n */\nproto.talk_api.ConversationEvent.prototype.clearDataMap = function() {\n  this.getDataMap().clear();\n  return this;};\n\n\n/**\n * optional google.protobuf.Timestamp time = 4;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationEvent.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationEvent} returns this\n*/\nproto.talk_api.ConversationEvent.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationEvent} returns this\n */\nproto.talk_api.ConversationEvent.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationEvent.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.AudioConfig.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.AudioConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.AudioConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.AudioConfig.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    samplerate: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    audioformat: jspb.Message.getFieldWithDefault(msg, 2, 0),\n    channels: jspb.Message.getFieldWithDefault(msg, 3, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.AudioConfig}\n */\nproto.talk_api.AudioConfig.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.AudioConfig;\n  return proto.talk_api.AudioConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.AudioConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.AudioConfig}\n */\nproto.talk_api.AudioConfig.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setSamplerate(value);\n      break;\n    case 2:\n      var value = /** @type {!proto.talk_api.AudioConfig.AudioFormat} */ (reader.readEnum());\n      msg.setAudioformat(value);\n      break;\n    case 3:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setChannels(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.AudioConfig.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.AudioConfig.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.AudioConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.AudioConfig.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getSamplerate();\n  if (f !== 0) {\n    writer.writeUint32(\n      1,\n      f\n    );\n  }\n  f = message.getAudioformat();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      2,\n      f\n    );\n  }\n  f = message.getChannels();\n  if (f !== 0) {\n    writer.writeUint32(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * @enum {number}\n */\nproto.talk_api.AudioConfig.AudioFormat = {\n  LINEAR16: 0,\n  MULAW8: 1\n};\n\n/**\n * optional uint32 sampleRate = 1;\n * @return {number}\n */\nproto.talk_api.AudioConfig.prototype.getSamplerate = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.AudioConfig} returns this\n */\nproto.talk_api.AudioConfig.prototype.setSamplerate = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional AudioFormat audioFormat = 2;\n * @return {!proto.talk_api.AudioConfig.AudioFormat}\n */\nproto.talk_api.AudioConfig.prototype.getAudioformat = function() {\n  return /** @type {!proto.talk_api.AudioConfig.AudioFormat} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!proto.talk_api.AudioConfig.AudioFormat} value\n * @return {!proto.talk_api.AudioConfig} returns this\n */\nproto.talk_api.AudioConfig.prototype.setAudioformat = function(value) {\n  return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n/**\n * optional uint32 channels = 3;\n * @return {number}\n */\nproto.talk_api.AudioConfig.prototype.getChannels = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.AudioConfig} returns this\n */\nproto.talk_api.AudioConfig.prototype.setChannels = function(value) {\n  return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.TextConfig.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.TextConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.TextConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.TextConfig.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    charset: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.TextConfig}\n */\nproto.talk_api.TextConfig.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.TextConfig;\n  return proto.talk_api.TextConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.TextConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.TextConfig}\n */\nproto.talk_api.TextConfig.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setCharset(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.TextConfig.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.TextConfig.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.TextConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.TextConfig.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCharset();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string charset = 1;\n * @return {string}\n */\nproto.talk_api.TextConfig.prototype.getCharset = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.TextConfig} returns this\n */\nproto.talk_api.TextConfig.prototype.setCharset = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.StreamConfig.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.StreamConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.StreamConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.StreamConfig.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    audio: (f = msg.getAudio()) && proto.talk_api.AudioConfig.toObject(includeInstance, f),\n    text: (f = msg.getText()) && proto.talk_api.TextConfig.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.StreamConfig}\n */\nproto.talk_api.StreamConfig.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.StreamConfig;\n  return proto.talk_api.StreamConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.StreamConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.StreamConfig}\n */\nproto.talk_api.StreamConfig.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new proto.talk_api.AudioConfig;\n      reader.readMessage(value,proto.talk_api.AudioConfig.deserializeBinaryFromReader);\n      msg.setAudio(value);\n      break;\n    case 2:\n      var value = new proto.talk_api.TextConfig;\n      reader.readMessage(value,proto.talk_api.TextConfig.deserializeBinaryFromReader);\n      msg.setText(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.StreamConfig.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.StreamConfig.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.StreamConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.StreamConfig.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAudio();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      proto.talk_api.AudioConfig.serializeBinaryToWriter\n    );\n  }\n  f = message.getText();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      proto.talk_api.TextConfig.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional AudioConfig audio = 1;\n * @return {?proto.talk_api.AudioConfig}\n */\nproto.talk_api.StreamConfig.prototype.getAudio = function() {\n  return /** @type{?proto.talk_api.AudioConfig} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.AudioConfig, 1));\n};\n\n\n/**\n * @param {?proto.talk_api.AudioConfig|undefined} value\n * @return {!proto.talk_api.StreamConfig} returns this\n*/\nproto.talk_api.StreamConfig.prototype.setAudio = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.StreamConfig} returns this\n */\nproto.talk_api.StreamConfig.prototype.clearAudio = function() {\n  return this.setAudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.StreamConfig.prototype.hasAudio = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional TextConfig text = 2;\n * @return {?proto.talk_api.TextConfig}\n */\nproto.talk_api.StreamConfig.prototype.getText = function() {\n  return /** @type{?proto.talk_api.TextConfig} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.TextConfig, 2));\n};\n\n\n/**\n * @param {?proto.talk_api.TextConfig|undefined} value\n * @return {!proto.talk_api.StreamConfig} returns this\n*/\nproto.talk_api.StreamConfig.prototype.setText = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.StreamConfig} returns this\n */\nproto.talk_api.StreamConfig.prototype.clearText = function() {\n  return this.setText(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.StreamConfig.prototype.hasText = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.WebIdentity.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.WebIdentity.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.WebIdentity} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebIdentity.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    userid: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.WebIdentity}\n */\nproto.talk_api.WebIdentity.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.WebIdentity;\n  return proto.talk_api.WebIdentity.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.WebIdentity} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.WebIdentity}\n */\nproto.talk_api.WebIdentity.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUserid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.WebIdentity.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.WebIdentity.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.WebIdentity} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebIdentity.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getUserid();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string userId = 1;\n * @return {string}\n */\nproto.talk_api.WebIdentity.prototype.getUserid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.WebIdentity} returns this\n */\nproto.talk_api.WebIdentity.prototype.setUserid = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.PhoneIdentity.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.PhoneIdentity.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.PhoneIdentity} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.PhoneIdentity.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    phonenumber: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.PhoneIdentity}\n */\nproto.talk_api.PhoneIdentity.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.PhoneIdentity;\n  return proto.talk_api.PhoneIdentity.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.PhoneIdentity} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.PhoneIdentity}\n */\nproto.talk_api.PhoneIdentity.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setPhonenumber(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.PhoneIdentity.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.PhoneIdentity.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.PhoneIdentity} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.PhoneIdentity.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getPhonenumber();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string phoneNumber = 1;\n * @return {string}\n */\nproto.talk_api.PhoneIdentity.prototype.getPhonenumber = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.PhoneIdentity} returns this\n */\nproto.talk_api.PhoneIdentity.prototype.setPhonenumber = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.talk_api.ConversationInitialization.oneofGroups_ = [[10,11]];\n\n/**\n * @enum {number}\n */\nproto.talk_api.ConversationInitialization.UseridentityCase = {\n  USERIDENTITY_NOT_SET: 0,\n  PHONE: 10,\n  WEB: 11\n};\n\n/**\n * @return {proto.talk_api.ConversationInitialization.UseridentityCase}\n */\nproto.talk_api.ConversationInitialization.prototype.getUseridentityCase = function() {\n  return /** @type {proto.talk_api.ConversationInitialization.UseridentityCase} */(jspb.Message.computeOneofCase(this, proto.talk_api.ConversationInitialization.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationInitialization.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationInitialization.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationInitialization} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationInitialization.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistant: (f = msg.getAssistant()) && common_pb.AssistantDefinition.toObject(includeInstance, f),\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    metadataMap: (f = msg.getMetadataMap()) ? f.toObject(includeInstance, proto.google.protobuf.Any.toObject) : [],\n    argsMap: (f = msg.getArgsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Any.toObject) : [],\n    optionsMap: (f = msg.getOptionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Any.toObject) : [],\n    streammode: jspb.Message.getFieldWithDefault(msg, 7, 0),\n    phone: (f = msg.getPhone()) && proto.talk_api.PhoneIdentity.toObject(includeInstance, f),\n    web: (f = msg.getWeb()) && proto.talk_api.WebIdentity.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationInitialization}\n */\nproto.talk_api.ConversationInitialization.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationInitialization;\n  return proto.talk_api.ConversationInitialization.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationInitialization} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationInitialization}\n */\nproto.talk_api.ConversationInitialization.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 2:\n      var value = new common_pb.AssistantDefinition;\n      reader.readMessage(value,common_pb.AssistantDefinition.deserializeBinaryFromReader);\n      msg.setAssistant(value);\n      break;\n    case 3:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    case 4:\n      var value = msg.getMetadataMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Any.deserializeBinaryFromReader, \"\", new proto.google.protobuf.Any());\n         });\n      break;\n    case 5:\n      var value = msg.getArgsMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Any.deserializeBinaryFromReader, \"\", new proto.google.protobuf.Any());\n         });\n      break;\n    case 6:\n      var value = msg.getOptionsMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Any.deserializeBinaryFromReader, \"\", new proto.google.protobuf.Any());\n         });\n      break;\n    case 7:\n      var value = /** @type {!proto.talk_api.StreamMode} */ (reader.readEnum());\n      msg.setStreammode(value);\n      break;\n    case 10:\n      var value = new proto.talk_api.PhoneIdentity;\n      reader.readMessage(value,proto.talk_api.PhoneIdentity.deserializeBinaryFromReader);\n      msg.setPhone(value);\n      break;\n    case 11:\n      var value = new proto.talk_api.WebIdentity;\n      reader.readMessage(value,proto.talk_api.WebIdentity.deserializeBinaryFromReader);\n      msg.setWeb(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationInitialization.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationInitialization.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationInitialization} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationInitialization.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistant();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      common_pb.AssistantDefinition.serializeBinaryToWriter\n    );\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetadataMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Any.serializeBinaryToWriter);\n  }\n  f = message.getArgsMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Any.serializeBinaryToWriter);\n  }\n  f = message.getOptionsMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(6, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Any.serializeBinaryToWriter);\n  }\n  f = message.getStreammode();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      7,\n      f\n    );\n  }\n  f = message.getPhone();\n  if (f != null) {\n    writer.writeMessage(\n      10,\n      f,\n      proto.talk_api.PhoneIdentity.serializeBinaryToWriter\n    );\n  }\n  f = message.getWeb();\n  if (f != null) {\n    writer.writeMessage(\n      11,\n      f,\n      proto.talk_api.WebIdentity.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantConversationId = 1;\n * @return {string}\n */\nproto.talk_api.ConversationInitialization.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationInitialization} returns this\n */\nproto.talk_api.ConversationInitialization.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional AssistantDefinition assistant = 2;\n * @return {?proto.AssistantDefinition}\n */\nproto.talk_api.ConversationInitialization.prototype.getAssistant = function() {\n  return /** @type{?proto.AssistantDefinition} */ (\n    jspb.Message.getWrapperField(this, common_pb.AssistantDefinition, 2));\n};\n\n\n/**\n * @param {?proto.AssistantDefinition|undefined} value\n * @return {!proto.talk_api.ConversationInitialization} returns this\n*/\nproto.talk_api.ConversationInitialization.prototype.setAssistant = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationInitialization} returns this\n */\nproto.talk_api.ConversationInitialization.prototype.clearAssistant = function() {\n  return this.setAssistant(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationInitialization.prototype.hasAssistant = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp time = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationInitialization.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationInitialization} returns this\n*/\nproto.talk_api.ConversationInitialization.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationInitialization} returns this\n */\nproto.talk_api.ConversationInitialization.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationInitialization.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * map<string, google.protobuf.Any> metadata = 4;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,!proto.google.protobuf.Any>}\n */\nproto.talk_api.ConversationInitialization.prototype.getMetadataMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,!proto.google.protobuf.Any>} */ (\n      jspb.Message.getMapField(this, 4, opt_noLazyCreate,\n      proto.google.protobuf.Any));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.ConversationInitialization} returns this\n */\nproto.talk_api.ConversationInitialization.prototype.clearMetadataMap = function() {\n  this.getMetadataMap().clear();\n  return this;};\n\n\n/**\n * map<string, google.protobuf.Any> args = 5;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,!proto.google.protobuf.Any>}\n */\nproto.talk_api.ConversationInitialization.prototype.getArgsMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,!proto.google.protobuf.Any>} */ (\n      jspb.Message.getMapField(this, 5, opt_noLazyCreate,\n      proto.google.protobuf.Any));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.ConversationInitialization} returns this\n */\nproto.talk_api.ConversationInitialization.prototype.clearArgsMap = function() {\n  this.getArgsMap().clear();\n  return this;};\n\n\n/**\n * map<string, google.protobuf.Any> options = 6;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,!proto.google.protobuf.Any>}\n */\nproto.talk_api.ConversationInitialization.prototype.getOptionsMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,!proto.google.protobuf.Any>} */ (\n      jspb.Message.getMapField(this, 6, opt_noLazyCreate,\n      proto.google.protobuf.Any));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.ConversationInitialization} returns this\n */\nproto.talk_api.ConversationInitialization.prototype.clearOptionsMap = function() {\n  this.getOptionsMap().clear();\n  return this;};\n\n\n/**\n * optional StreamMode streamMode = 7;\n * @return {!proto.talk_api.StreamMode}\n */\nproto.talk_api.ConversationInitialization.prototype.getStreammode = function() {\n  return /** @type {!proto.talk_api.StreamMode} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {!proto.talk_api.StreamMode} value\n * @return {!proto.talk_api.ConversationInitialization} returns this\n */\nproto.talk_api.ConversationInitialization.prototype.setStreammode = function(value) {\n  return jspb.Message.setProto3EnumField(this, 7, value);\n};\n\n\n/**\n * optional PhoneIdentity phone = 10;\n * @return {?proto.talk_api.PhoneIdentity}\n */\nproto.talk_api.ConversationInitialization.prototype.getPhone = function() {\n  return /** @type{?proto.talk_api.PhoneIdentity} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.PhoneIdentity, 10));\n};\n\n\n/**\n * @param {?proto.talk_api.PhoneIdentity|undefined} value\n * @return {!proto.talk_api.ConversationInitialization} returns this\n*/\nproto.talk_api.ConversationInitialization.prototype.setPhone = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 10, proto.talk_api.ConversationInitialization.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationInitialization} returns this\n */\nproto.talk_api.ConversationInitialization.prototype.clearPhone = function() {\n  return this.setPhone(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationInitialization.prototype.hasPhone = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional WebIdentity web = 11;\n * @return {?proto.talk_api.WebIdentity}\n */\nproto.talk_api.ConversationInitialization.prototype.getWeb = function() {\n  return /** @type{?proto.talk_api.WebIdentity} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.WebIdentity, 11));\n};\n\n\n/**\n * @param {?proto.talk_api.WebIdentity|undefined} value\n * @return {!proto.talk_api.ConversationInitialization} returns this\n*/\nproto.talk_api.ConversationInitialization.prototype.setWeb = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 11, proto.talk_api.ConversationInitialization.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationInitialization} returns this\n */\nproto.talk_api.ConversationInitialization.prototype.clearWeb = function() {\n  return this.setWeb(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationInitialization.prototype.hasWeb = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationConfiguration.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationConfiguration.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationConfiguration} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationConfiguration.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    streammode: jspb.Message.getFieldWithDefault(msg, 2, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationConfiguration}\n */\nproto.talk_api.ConversationConfiguration.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationConfiguration;\n  return proto.talk_api.ConversationConfiguration.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationConfiguration} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationConfiguration}\n */\nproto.talk_api.ConversationConfiguration.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {!proto.talk_api.StreamMode} */ (reader.readEnum());\n      msg.setStreammode(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationConfiguration.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationConfiguration.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationConfiguration} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationConfiguration.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getStreammode();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional StreamMode streamMode = 2;\n * @return {!proto.talk_api.StreamMode}\n */\nproto.talk_api.ConversationConfiguration.prototype.getStreammode = function() {\n  return /** @type {!proto.talk_api.StreamMode} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!proto.talk_api.StreamMode} value\n * @return {!proto.talk_api.ConversationConfiguration} returns this\n */\nproto.talk_api.ConversationConfiguration.prototype.setStreammode = function(value) {\n  return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationInterruption.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationInterruption.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationInterruption} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationInterruption.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    type: jspb.Message.getFieldWithDefault(msg, 2, 0),\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationInterruption}\n */\nproto.talk_api.ConversationInterruption.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationInterruption;\n  return proto.talk_api.ConversationInterruption.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationInterruption} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationInterruption}\n */\nproto.talk_api.ConversationInterruption.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {!proto.talk_api.ConversationInterruption.InterruptionType} */ (reader.readEnum());\n      msg.setType(value);\n      break;\n    case 3:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationInterruption.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationInterruption.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationInterruption} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationInterruption.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getType();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      2,\n      f\n    );\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * @enum {number}\n */\nproto.talk_api.ConversationInterruption.InterruptionType = {\n  INTERRUPTION_TYPE_UNSPECIFIED: 0,\n  INTERRUPTION_TYPE_VAD: 1,\n  INTERRUPTION_TYPE_WORD: 2\n};\n\n/**\n * optional string id = 1;\n * @return {string}\n */\nproto.talk_api.ConversationInterruption.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationInterruption} returns this\n */\nproto.talk_api.ConversationInterruption.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional InterruptionType type = 2;\n * @return {!proto.talk_api.ConversationInterruption.InterruptionType}\n */\nproto.talk_api.ConversationInterruption.prototype.getType = function() {\n  return /** @type {!proto.talk_api.ConversationInterruption.InterruptionType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!proto.talk_api.ConversationInterruption.InterruptionType} value\n * @return {!proto.talk_api.ConversationInterruption} returns this\n */\nproto.talk_api.ConversationInterruption.prototype.setType = function(value) {\n  return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp time = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationInterruption.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationInterruption} returns this\n*/\nproto.talk_api.ConversationInterruption.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationInterruption} returns this\n */\nproto.talk_api.ConversationInterruption.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationInterruption.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationDisconnection.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationDisconnection.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationDisconnection} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationDisconnection.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    type: jspb.Message.getFieldWithDefault(msg, 2, 0),\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationDisconnection}\n */\nproto.talk_api.ConversationDisconnection.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationDisconnection;\n  return proto.talk_api.ConversationDisconnection.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationDisconnection} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationDisconnection}\n */\nproto.talk_api.ConversationDisconnection.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {!proto.talk_api.ConversationDisconnection.DisconnectionType} */ (reader.readEnum());\n      msg.setType(value);\n      break;\n    case 3:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationDisconnection.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationDisconnection.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationDisconnection} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationDisconnection.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getType();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      2,\n      f\n    );\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * @enum {number}\n */\nproto.talk_api.ConversationDisconnection.DisconnectionType = {\n  DISCONNECTION_TYPE_UNSPECIFIED: 0,\n  DISCONNECTION_TYPE_TOOL: 1,\n  DISCONNECTION_TYPE_USER: 2,\n  DISCONNECTION_TYPE_IDLE_TIMEOUT: 3,\n  DISCONNECTION_TYPE_MAX_DURATION: 4,\n  DISCONNECTION_TYPE_ERROR: 5\n};\n\n/**\n * optional DisconnectionType type = 2;\n * @return {!proto.talk_api.ConversationDisconnection.DisconnectionType}\n */\nproto.talk_api.ConversationDisconnection.prototype.getType = function() {\n  return /** @type {!proto.talk_api.ConversationDisconnection.DisconnectionType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!proto.talk_api.ConversationDisconnection.DisconnectionType} value\n * @return {!proto.talk_api.ConversationDisconnection} returns this\n */\nproto.talk_api.ConversationDisconnection.prototype.setType = function(value) {\n  return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp time = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationDisconnection.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationDisconnection} returns this\n*/\nproto.talk_api.ConversationDisconnection.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationDisconnection} returns this\n */\nproto.talk_api.ConversationDisconnection.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationDisconnection.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.talk_api.ConversationAssistantMessage.oneofGroups_ = [[10,11]];\n\n/**\n * @enum {number}\n */\nproto.talk_api.ConversationAssistantMessage.MessageCase = {\n  MESSAGE_NOT_SET: 0,\n  AUDIO: 10,\n  TEXT: 11\n};\n\n/**\n * @return {proto.talk_api.ConversationAssistantMessage.MessageCase}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.getMessageCase = function() {\n  return /** @type {proto.talk_api.ConversationAssistantMessage.MessageCase} */(jspb.Message.computeOneofCase(this, proto.talk_api.ConversationAssistantMessage.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationAssistantMessage.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationAssistantMessage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationAssistantMessage.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    audio: msg.getAudio_asB64(),\n    text: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    id: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    completed: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationAssistantMessage}\n */\nproto.talk_api.ConversationAssistantMessage.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationAssistantMessage;\n  return proto.talk_api.ConversationAssistantMessage.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationAssistantMessage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationAssistantMessage}\n */\nproto.talk_api.ConversationAssistantMessage.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 10:\n      var value = /** @type {!Uint8Array} */ (reader.readBytes());\n      msg.setAudio(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setText(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setId(value);\n      break;\n    case 3:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setCompleted(value);\n      break;\n    case 4:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationAssistantMessage.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationAssistantMessage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationAssistantMessage.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 10));\n  if (f != null) {\n    writer.writeBytes(\n      10,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 11));\n  if (f != null) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getId();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getCompleted();\n  if (f) {\n    writer.writeBool(\n      3,\n      f\n    );\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional bytes audio = 10;\n * @return {!(string|Uint8Array)}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.getAudio = function() {\n  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * optional bytes audio = 10;\n * This is a type-conversion wrapper around `getAudio()`\n * @return {string}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.getAudio_asB64 = function() {\n  return /** @type {string} */ (jspb.Message.bytesAsB64(\n      this.getAudio()));\n};\n\n\n/**\n * optional bytes audio = 10;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAudio()`\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.getAudio_asU8 = function() {\n  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n      this.getAudio()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.talk_api.ConversationAssistantMessage} returns this\n */\nproto.talk_api.ConversationAssistantMessage.prototype.setAudio = function(value) {\n  return jspb.Message.setOneofField(this, 10, proto.talk_api.ConversationAssistantMessage.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.talk_api.ConversationAssistantMessage} returns this\n */\nproto.talk_api.ConversationAssistantMessage.prototype.clearAudio = function() {\n  return jspb.Message.setOneofField(this, 10, proto.talk_api.ConversationAssistantMessage.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.hasAudio = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional string text = 11;\n * @return {string}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.getText = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationAssistantMessage} returns this\n */\nproto.talk_api.ConversationAssistantMessage.prototype.setText = function(value) {\n  return jspb.Message.setOneofField(this, 11, proto.talk_api.ConversationAssistantMessage.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.talk_api.ConversationAssistantMessage} returns this\n */\nproto.talk_api.ConversationAssistantMessage.prototype.clearText = function() {\n  return jspb.Message.setOneofField(this, 11, proto.talk_api.ConversationAssistantMessage.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.hasText = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional string id = 2;\n * @return {string}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationAssistantMessage} returns this\n */\nproto.talk_api.ConversationAssistantMessage.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional bool completed = 3;\n * @return {boolean}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.getCompleted = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.ConversationAssistantMessage} returns this\n */\nproto.talk_api.ConversationAssistantMessage.prototype.setCompleted = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp time = 4;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationAssistantMessage} returns this\n*/\nproto.talk_api.ConversationAssistantMessage.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationAssistantMessage} returns this\n */\nproto.talk_api.ConversationAssistantMessage.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationAssistantMessage.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.talk_api.ConversationUserMessage.oneofGroups_ = [[10,11]];\n\n/**\n * @enum {number}\n */\nproto.talk_api.ConversationUserMessage.MessageCase = {\n  MESSAGE_NOT_SET: 0,\n  AUDIO: 10,\n  TEXT: 11\n};\n\n/**\n * @return {proto.talk_api.ConversationUserMessage.MessageCase}\n */\nproto.talk_api.ConversationUserMessage.prototype.getMessageCase = function() {\n  return /** @type {proto.talk_api.ConversationUserMessage.MessageCase} */(jspb.Message.computeOneofCase(this, proto.talk_api.ConversationUserMessage.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationUserMessage.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationUserMessage.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationUserMessage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationUserMessage.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    audio: msg.getAudio_asB64(),\n    text: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    id: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    completed: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationUserMessage}\n */\nproto.talk_api.ConversationUserMessage.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationUserMessage;\n  return proto.talk_api.ConversationUserMessage.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationUserMessage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationUserMessage}\n */\nproto.talk_api.ConversationUserMessage.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 10:\n      var value = /** @type {!Uint8Array} */ (reader.readBytes());\n      msg.setAudio(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setText(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setId(value);\n      break;\n    case 3:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setCompleted(value);\n      break;\n    case 4:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationUserMessage.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationUserMessage.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationUserMessage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationUserMessage.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 10));\n  if (f != null) {\n    writer.writeBytes(\n      10,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 11));\n  if (f != null) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getId();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getCompleted();\n  if (f) {\n    writer.writeBool(\n      3,\n      f\n    );\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional bytes audio = 10;\n * @return {!(string|Uint8Array)}\n */\nproto.talk_api.ConversationUserMessage.prototype.getAudio = function() {\n  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * optional bytes audio = 10;\n * This is a type-conversion wrapper around `getAudio()`\n * @return {string}\n */\nproto.talk_api.ConversationUserMessage.prototype.getAudio_asB64 = function() {\n  return /** @type {string} */ (jspb.Message.bytesAsB64(\n      this.getAudio()));\n};\n\n\n/**\n * optional bytes audio = 10;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAudio()`\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationUserMessage.prototype.getAudio_asU8 = function() {\n  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n      this.getAudio()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.talk_api.ConversationUserMessage} returns this\n */\nproto.talk_api.ConversationUserMessage.prototype.setAudio = function(value) {\n  return jspb.Message.setOneofField(this, 10, proto.talk_api.ConversationUserMessage.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.talk_api.ConversationUserMessage} returns this\n */\nproto.talk_api.ConversationUserMessage.prototype.clearAudio = function() {\n  return jspb.Message.setOneofField(this, 10, proto.talk_api.ConversationUserMessage.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationUserMessage.prototype.hasAudio = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional string text = 11;\n * @return {string}\n */\nproto.talk_api.ConversationUserMessage.prototype.getText = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationUserMessage} returns this\n */\nproto.talk_api.ConversationUserMessage.prototype.setText = function(value) {\n  return jspb.Message.setOneofField(this, 11, proto.talk_api.ConversationUserMessage.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.talk_api.ConversationUserMessage} returns this\n */\nproto.talk_api.ConversationUserMessage.prototype.clearText = function() {\n  return jspb.Message.setOneofField(this, 11, proto.talk_api.ConversationUserMessage.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationUserMessage.prototype.hasText = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional string id = 2;\n * @return {string}\n */\nproto.talk_api.ConversationUserMessage.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ConversationUserMessage} returns this\n */\nproto.talk_api.ConversationUserMessage.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional bool completed = 3;\n * @return {boolean}\n */\nproto.talk_api.ConversationUserMessage.prototype.getCompleted = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.ConversationUserMessage} returns this\n */\nproto.talk_api.ConversationUserMessage.prototype.setCompleted = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp time = 4;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationUserMessage.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationUserMessage} returns this\n*/\nproto.talk_api.ConversationUserMessage.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationUserMessage} returns this\n */\nproto.talk_api.ConversationUserMessage.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationUserMessage.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ConversationModeChange.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ConversationModeChange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ConversationModeChange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationModeChange.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    mode: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    time: (f = msg.getTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ConversationModeChange}\n */\nproto.talk_api.ConversationModeChange.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ConversationModeChange;\n  return proto.talk_api.ConversationModeChange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ConversationModeChange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ConversationModeChange}\n */\nproto.talk_api.ConversationModeChange.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {!proto.talk_api.ConversationModeChange.ModeType} */ (reader.readEnum());\n      msg.setMode(value);\n      break;\n    case 2:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTime(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ConversationModeChange.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ConversationModeChange.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ConversationModeChange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ConversationModeChange.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getMode();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      1,\n      f\n    );\n  }\n  f = message.getTime();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * @enum {number}\n */\nproto.talk_api.ConversationModeChange.ModeType = {\n  MODE_TYPE_UNSPECIFIED: 0,\n  MODE_TYPE_AUDIO: 1,\n  MODE_TYPE_TEXT: 2\n};\n\n/**\n * optional ModeType mode = 1;\n * @return {!proto.talk_api.ConversationModeChange.ModeType}\n */\nproto.talk_api.ConversationModeChange.prototype.getMode = function() {\n  return /** @type {!proto.talk_api.ConversationModeChange.ModeType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {!proto.talk_api.ConversationModeChange.ModeType} value\n * @return {!proto.talk_api.ConversationModeChange} returns this\n */\nproto.talk_api.ConversationModeChange.prototype.setMode = function(value) {\n  return jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp time = 2;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.talk_api.ConversationModeChange.prototype.getTime = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.talk_api.ConversationModeChange} returns this\n*/\nproto.talk_api.ConversationModeChange.prototype.setTime = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ConversationModeChange} returns this\n */\nproto.talk_api.ConversationModeChange.prototype.clearTime = function() {\n  return this.setTime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ConversationModeChange.prototype.hasTime = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.talk_api.AssistantTalkRequest.oneofGroups_ = [[1,2,3,4,5,6,7,8,9]];\n\n/**\n * @enum {number}\n */\nproto.talk_api.AssistantTalkRequest.RequestCase = {\n  REQUEST_NOT_SET: 0,\n  INITIALIZATION: 1,\n  CONFIGURATION: 2,\n  MESSAGE: 3,\n  METADATA: 4,\n  METRIC: 5,\n  DISCONNECTION: 6,\n  TOOLCALLRESULT: 7,\n  BRIDGEOPERATORAUDIO: 8,\n  BRIDGEUSERAUDIO: 9\n};\n\n/**\n * @return {proto.talk_api.AssistantTalkRequest.RequestCase}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getRequestCase = function() {\n  return /** @type {proto.talk_api.AssistantTalkRequest.RequestCase} */(jspb.Message.computeOneofCase(this, proto.talk_api.AssistantTalkRequest.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.AssistantTalkRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.AssistantTalkRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.AssistantTalkRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.AssistantTalkRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    initialization: (f = msg.getInitialization()) && proto.talk_api.ConversationInitialization.toObject(includeInstance, f),\n    configuration: (f = msg.getConfiguration()) && proto.talk_api.ConversationConfiguration.toObject(includeInstance, f),\n    message: (f = msg.getMessage()) && proto.talk_api.ConversationUserMessage.toObject(includeInstance, f),\n    metadata: (f = msg.getMetadata()) && proto.talk_api.ConversationMetadata.toObject(includeInstance, f),\n    metric: (f = msg.getMetric()) && proto.talk_api.ConversationMetric.toObject(includeInstance, f),\n    disconnection: (f = msg.getDisconnection()) && proto.talk_api.ConversationDisconnection.toObject(includeInstance, f),\n    toolcallresult: (f = msg.getToolcallresult()) && proto.talk_api.ConversationToolCallResult.toObject(includeInstance, f),\n    bridgeoperatoraudio: (f = msg.getBridgeoperatoraudio()) && proto.talk_api.ConversationBridgeOperatorAudio.toObject(includeInstance, f),\n    bridgeuseraudio: (f = msg.getBridgeuseraudio()) && proto.talk_api.ConversationBridgeUserAudio.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.AssistantTalkRequest}\n */\nproto.talk_api.AssistantTalkRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.AssistantTalkRequest;\n  return proto.talk_api.AssistantTalkRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.AssistantTalkRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.AssistantTalkRequest}\n */\nproto.talk_api.AssistantTalkRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new proto.talk_api.ConversationInitialization;\n      reader.readMessage(value,proto.talk_api.ConversationInitialization.deserializeBinaryFromReader);\n      msg.setInitialization(value);\n      break;\n    case 2:\n      var value = new proto.talk_api.ConversationConfiguration;\n      reader.readMessage(value,proto.talk_api.ConversationConfiguration.deserializeBinaryFromReader);\n      msg.setConfiguration(value);\n      break;\n    case 3:\n      var value = new proto.talk_api.ConversationUserMessage;\n      reader.readMessage(value,proto.talk_api.ConversationUserMessage.deserializeBinaryFromReader);\n      msg.setMessage(value);\n      break;\n    case 4:\n      var value = new proto.talk_api.ConversationMetadata;\n      reader.readMessage(value,proto.talk_api.ConversationMetadata.deserializeBinaryFromReader);\n      msg.setMetadata(value);\n      break;\n    case 5:\n      var value = new proto.talk_api.ConversationMetric;\n      reader.readMessage(value,proto.talk_api.ConversationMetric.deserializeBinaryFromReader);\n      msg.setMetric(value);\n      break;\n    case 6:\n      var value = new proto.talk_api.ConversationDisconnection;\n      reader.readMessage(value,proto.talk_api.ConversationDisconnection.deserializeBinaryFromReader);\n      msg.setDisconnection(value);\n      break;\n    case 7:\n      var value = new proto.talk_api.ConversationToolCallResult;\n      reader.readMessage(value,proto.talk_api.ConversationToolCallResult.deserializeBinaryFromReader);\n      msg.setToolcallresult(value);\n      break;\n    case 8:\n      var value = new proto.talk_api.ConversationBridgeOperatorAudio;\n      reader.readMessage(value,proto.talk_api.ConversationBridgeOperatorAudio.deserializeBinaryFromReader);\n      msg.setBridgeoperatoraudio(value);\n      break;\n    case 9:\n      var value = new proto.talk_api.ConversationBridgeUserAudio;\n      reader.readMessage(value,proto.talk_api.ConversationBridgeUserAudio.deserializeBinaryFromReader);\n      msg.setBridgeuseraudio(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.AssistantTalkRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.AssistantTalkRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.AssistantTalkRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.AssistantTalkRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getInitialization();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      proto.talk_api.ConversationInitialization.serializeBinaryToWriter\n    );\n  }\n  f = message.getConfiguration();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      proto.talk_api.ConversationConfiguration.serializeBinaryToWriter\n    );\n  }\n  f = message.getMessage();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.talk_api.ConversationUserMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetadata();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      proto.talk_api.ConversationMetadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetric();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      proto.talk_api.ConversationMetric.serializeBinaryToWriter\n    );\n  }\n  f = message.getDisconnection();\n  if (f != null) {\n    writer.writeMessage(\n      6,\n      f,\n      proto.talk_api.ConversationDisconnection.serializeBinaryToWriter\n    );\n  }\n  f = message.getToolcallresult();\n  if (f != null) {\n    writer.writeMessage(\n      7,\n      f,\n      proto.talk_api.ConversationToolCallResult.serializeBinaryToWriter\n    );\n  }\n  f = message.getBridgeoperatoraudio();\n  if (f != null) {\n    writer.writeMessage(\n      8,\n      f,\n      proto.talk_api.ConversationBridgeOperatorAudio.serializeBinaryToWriter\n    );\n  }\n  f = message.getBridgeuseraudio();\n  if (f != null) {\n    writer.writeMessage(\n      9,\n      f,\n      proto.talk_api.ConversationBridgeUserAudio.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional ConversationInitialization initialization = 1;\n * @return {?proto.talk_api.ConversationInitialization}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getInitialization = function() {\n  return /** @type{?proto.talk_api.ConversationInitialization} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationInitialization, 1));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationInitialization|undefined} value\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n*/\nproto.talk_api.AssistantTalkRequest.prototype.setInitialization = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 1, proto.talk_api.AssistantTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n */\nproto.talk_api.AssistantTalkRequest.prototype.clearInitialization = function() {\n  return this.setInitialization(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkRequest.prototype.hasInitialization = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional ConversationConfiguration configuration = 2;\n * @return {?proto.talk_api.ConversationConfiguration}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getConfiguration = function() {\n  return /** @type{?proto.talk_api.ConversationConfiguration} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationConfiguration, 2));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationConfiguration|undefined} value\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n*/\nproto.talk_api.AssistantTalkRequest.prototype.setConfiguration = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 2, proto.talk_api.AssistantTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n */\nproto.talk_api.AssistantTalkRequest.prototype.clearConfiguration = function() {\n  return this.setConfiguration(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkRequest.prototype.hasConfiguration = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional ConversationUserMessage message = 3;\n * @return {?proto.talk_api.ConversationUserMessage}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getMessage = function() {\n  return /** @type{?proto.talk_api.ConversationUserMessage} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationUserMessage, 3));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationUserMessage|undefined} value\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n*/\nproto.talk_api.AssistantTalkRequest.prototype.setMessage = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 3, proto.talk_api.AssistantTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n */\nproto.talk_api.AssistantTalkRequest.prototype.clearMessage = function() {\n  return this.setMessage(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkRequest.prototype.hasMessage = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional ConversationMetadata metadata = 4;\n * @return {?proto.talk_api.ConversationMetadata}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getMetadata = function() {\n  return /** @type{?proto.talk_api.ConversationMetadata} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationMetadata, 4));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationMetadata|undefined} value\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n*/\nproto.talk_api.AssistantTalkRequest.prototype.setMetadata = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 4, proto.talk_api.AssistantTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n */\nproto.talk_api.AssistantTalkRequest.prototype.clearMetadata = function() {\n  return this.setMetadata(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkRequest.prototype.hasMetadata = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional ConversationMetric metric = 5;\n * @return {?proto.talk_api.ConversationMetric}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getMetric = function() {\n  return /** @type{?proto.talk_api.ConversationMetric} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationMetric, 5));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationMetric|undefined} value\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n*/\nproto.talk_api.AssistantTalkRequest.prototype.setMetric = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 5, proto.talk_api.AssistantTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n */\nproto.talk_api.AssistantTalkRequest.prototype.clearMetric = function() {\n  return this.setMetric(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkRequest.prototype.hasMetric = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional ConversationDisconnection disconnection = 6;\n * @return {?proto.talk_api.ConversationDisconnection}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getDisconnection = function() {\n  return /** @type{?proto.talk_api.ConversationDisconnection} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationDisconnection, 6));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationDisconnection|undefined} value\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n*/\nproto.talk_api.AssistantTalkRequest.prototype.setDisconnection = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 6, proto.talk_api.AssistantTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n */\nproto.talk_api.AssistantTalkRequest.prototype.clearDisconnection = function() {\n  return this.setDisconnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkRequest.prototype.hasDisconnection = function() {\n  return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional ConversationToolCallResult toolCallResult = 7;\n * @return {?proto.talk_api.ConversationToolCallResult}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getToolcallresult = function() {\n  return /** @type{?proto.talk_api.ConversationToolCallResult} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationToolCallResult, 7));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationToolCallResult|undefined} value\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n*/\nproto.talk_api.AssistantTalkRequest.prototype.setToolcallresult = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 7, proto.talk_api.AssistantTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n */\nproto.talk_api.AssistantTalkRequest.prototype.clearToolcallresult = function() {\n  return this.setToolcallresult(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkRequest.prototype.hasToolcallresult = function() {\n  return jspb.Message.getField(this, 7) != null;\n};\n\n\n/**\n * optional ConversationBridgeOperatorAudio bridgeOperatorAudio = 8;\n * @return {?proto.talk_api.ConversationBridgeOperatorAudio}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getBridgeoperatoraudio = function() {\n  return /** @type{?proto.talk_api.ConversationBridgeOperatorAudio} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationBridgeOperatorAudio, 8));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationBridgeOperatorAudio|undefined} value\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n*/\nproto.talk_api.AssistantTalkRequest.prototype.setBridgeoperatoraudio = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 8, proto.talk_api.AssistantTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n */\nproto.talk_api.AssistantTalkRequest.prototype.clearBridgeoperatoraudio = function() {\n  return this.setBridgeoperatoraudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkRequest.prototype.hasBridgeoperatoraudio = function() {\n  return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional ConversationBridgeUserAudio bridgeUserAudio = 9;\n * @return {?proto.talk_api.ConversationBridgeUserAudio}\n */\nproto.talk_api.AssistantTalkRequest.prototype.getBridgeuseraudio = function() {\n  return /** @type{?proto.talk_api.ConversationBridgeUserAudio} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationBridgeUserAudio, 9));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationBridgeUserAudio|undefined} value\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n*/\nproto.talk_api.AssistantTalkRequest.prototype.setBridgeuseraudio = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 9, proto.talk_api.AssistantTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkRequest} returns this\n */\nproto.talk_api.AssistantTalkRequest.prototype.clearBridgeuseraudio = function() {\n  return this.setBridgeuseraudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkRequest.prototype.hasBridgeuseraudio = function() {\n  return jspb.Message.getField(this, 9) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.talk_api.AssistantTalkResponse.oneofGroups_ = [[8,9,10,11,12,13,14,17,18,19,20,15]];\n\n/**\n * @enum {number}\n */\nproto.talk_api.AssistantTalkResponse.DataCase = {\n  DATA_NOT_SET: 0,\n  INITIALIZATION: 8,\n  CONFIGURATION: 9,\n  INTERRUPTION: 10,\n  USER: 11,\n  ASSISTANT: 12,\n  TOOLCALL: 13,\n  TOOLCALLRESULT: 14,\n  METADATA: 17,\n  METRIC: 18,\n  DISCONNECTION: 19,\n  EVENT: 20,\n  ERROR: 15\n};\n\n/**\n * @return {proto.talk_api.AssistantTalkResponse.DataCase}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getDataCase = function() {\n  return /** @type {proto.talk_api.AssistantTalkResponse.DataCase} */(jspb.Message.computeOneofCase(this, proto.talk_api.AssistantTalkResponse.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.AssistantTalkResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.AssistantTalkResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.AssistantTalkResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.AssistantTalkResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    initialization: (f = msg.getInitialization()) && proto.talk_api.ConversationInitialization.toObject(includeInstance, f),\n    configuration: (f = msg.getConfiguration()) && proto.talk_api.ConversationConfiguration.toObject(includeInstance, f),\n    interruption: (f = msg.getInterruption()) && proto.talk_api.ConversationInterruption.toObject(includeInstance, f),\n    user: (f = msg.getUser()) && proto.talk_api.ConversationUserMessage.toObject(includeInstance, f),\n    assistant: (f = msg.getAssistant()) && proto.talk_api.ConversationAssistantMessage.toObject(includeInstance, f),\n    toolcall: (f = msg.getToolcall()) && proto.talk_api.ConversationToolCall.toObject(includeInstance, f),\n    toolcallresult: (f = msg.getToolcallresult()) && proto.talk_api.ConversationToolCallResult.toObject(includeInstance, f),\n    metadata: (f = msg.getMetadata()) && proto.talk_api.ConversationMetadata.toObject(includeInstance, f),\n    metric: (f = msg.getMetric()) && proto.talk_api.ConversationMetric.toObject(includeInstance, f),\n    disconnection: (f = msg.getDisconnection()) && proto.talk_api.ConversationDisconnection.toObject(includeInstance, f),\n    event: (f = msg.getEvent()) && proto.talk_api.ConversationEvent.toObject(includeInstance, f),\n    error: (f = msg.getError()) && proto.talk_api.ConversationError.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.AssistantTalkResponse}\n */\nproto.talk_api.AssistantTalkResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.AssistantTalkResponse;\n  return proto.talk_api.AssistantTalkResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.AssistantTalkResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.AssistantTalkResponse}\n */\nproto.talk_api.AssistantTalkResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 8:\n      var value = new proto.talk_api.ConversationInitialization;\n      reader.readMessage(value,proto.talk_api.ConversationInitialization.deserializeBinaryFromReader);\n      msg.setInitialization(value);\n      break;\n    case 9:\n      var value = new proto.talk_api.ConversationConfiguration;\n      reader.readMessage(value,proto.talk_api.ConversationConfiguration.deserializeBinaryFromReader);\n      msg.setConfiguration(value);\n      break;\n    case 10:\n      var value = new proto.talk_api.ConversationInterruption;\n      reader.readMessage(value,proto.talk_api.ConversationInterruption.deserializeBinaryFromReader);\n      msg.setInterruption(value);\n      break;\n    case 11:\n      var value = new proto.talk_api.ConversationUserMessage;\n      reader.readMessage(value,proto.talk_api.ConversationUserMessage.deserializeBinaryFromReader);\n      msg.setUser(value);\n      break;\n    case 12:\n      var value = new proto.talk_api.ConversationAssistantMessage;\n      reader.readMessage(value,proto.talk_api.ConversationAssistantMessage.deserializeBinaryFromReader);\n      msg.setAssistant(value);\n      break;\n    case 13:\n      var value = new proto.talk_api.ConversationToolCall;\n      reader.readMessage(value,proto.talk_api.ConversationToolCall.deserializeBinaryFromReader);\n      msg.setToolcall(value);\n      break;\n    case 14:\n      var value = new proto.talk_api.ConversationToolCallResult;\n      reader.readMessage(value,proto.talk_api.ConversationToolCallResult.deserializeBinaryFromReader);\n      msg.setToolcallresult(value);\n      break;\n    case 17:\n      var value = new proto.talk_api.ConversationMetadata;\n      reader.readMessage(value,proto.talk_api.ConversationMetadata.deserializeBinaryFromReader);\n      msg.setMetadata(value);\n      break;\n    case 18:\n      var value = new proto.talk_api.ConversationMetric;\n      reader.readMessage(value,proto.talk_api.ConversationMetric.deserializeBinaryFromReader);\n      msg.setMetric(value);\n      break;\n    case 19:\n      var value = new proto.talk_api.ConversationDisconnection;\n      reader.readMessage(value,proto.talk_api.ConversationDisconnection.deserializeBinaryFromReader);\n      msg.setDisconnection(value);\n      break;\n    case 20:\n      var value = new proto.talk_api.ConversationEvent;\n      reader.readMessage(value,proto.talk_api.ConversationEvent.deserializeBinaryFromReader);\n      msg.setEvent(value);\n      break;\n    case 15:\n      var value = new proto.talk_api.ConversationError;\n      reader.readMessage(value,proto.talk_api.ConversationError.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.AssistantTalkResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.AssistantTalkResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.AssistantTalkResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.AssistantTalkResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getInitialization();\n  if (f != null) {\n    writer.writeMessage(\n      8,\n      f,\n      proto.talk_api.ConversationInitialization.serializeBinaryToWriter\n    );\n  }\n  f = message.getConfiguration();\n  if (f != null) {\n    writer.writeMessage(\n      9,\n      f,\n      proto.talk_api.ConversationConfiguration.serializeBinaryToWriter\n    );\n  }\n  f = message.getInterruption();\n  if (f != null) {\n    writer.writeMessage(\n      10,\n      f,\n      proto.talk_api.ConversationInterruption.serializeBinaryToWriter\n    );\n  }\n  f = message.getUser();\n  if (f != null) {\n    writer.writeMessage(\n      11,\n      f,\n      proto.talk_api.ConversationUserMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistant();\n  if (f != null) {\n    writer.writeMessage(\n      12,\n      f,\n      proto.talk_api.ConversationAssistantMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getToolcall();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      proto.talk_api.ConversationToolCall.serializeBinaryToWriter\n    );\n  }\n  f = message.getToolcallresult();\n  if (f != null) {\n    writer.writeMessage(\n      14,\n      f,\n      proto.talk_api.ConversationToolCallResult.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetadata();\n  if (f != null) {\n    writer.writeMessage(\n      17,\n      f,\n      proto.talk_api.ConversationMetadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetric();\n  if (f != null) {\n    writer.writeMessage(\n      18,\n      f,\n      proto.talk_api.ConversationMetric.serializeBinaryToWriter\n    );\n  }\n  f = message.getDisconnection();\n  if (f != null) {\n    writer.writeMessage(\n      19,\n      f,\n      proto.talk_api.ConversationDisconnection.serializeBinaryToWriter\n    );\n  }\n  f = message.getEvent();\n  if (f != null) {\n    writer.writeMessage(\n      20,\n      f,\n      proto.talk_api.ConversationEvent.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      15,\n      f,\n      proto.talk_api.ConversationError.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional ConversationInitialization initialization = 8;\n * @return {?proto.talk_api.ConversationInitialization}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getInitialization = function() {\n  return /** @type{?proto.talk_api.ConversationInitialization} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationInitialization, 8));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationInitialization|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setInitialization = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 8, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearInitialization = function() {\n  return this.setInitialization(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasInitialization = function() {\n  return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional ConversationConfiguration configuration = 9;\n * @return {?proto.talk_api.ConversationConfiguration}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getConfiguration = function() {\n  return /** @type{?proto.talk_api.ConversationConfiguration} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationConfiguration, 9));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationConfiguration|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setConfiguration = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 9, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearConfiguration = function() {\n  return this.setConfiguration(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasConfiguration = function() {\n  return jspb.Message.getField(this, 9) != null;\n};\n\n\n/**\n * optional ConversationInterruption interruption = 10;\n * @return {?proto.talk_api.ConversationInterruption}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getInterruption = function() {\n  return /** @type{?proto.talk_api.ConversationInterruption} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationInterruption, 10));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationInterruption|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setInterruption = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 10, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearInterruption = function() {\n  return this.setInterruption(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasInterruption = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional ConversationUserMessage user = 11;\n * @return {?proto.talk_api.ConversationUserMessage}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getUser = function() {\n  return /** @type{?proto.talk_api.ConversationUserMessage} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationUserMessage, 11));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationUserMessage|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setUser = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 11, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearUser = function() {\n  return this.setUser(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasUser = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional ConversationAssistantMessage assistant = 12;\n * @return {?proto.talk_api.ConversationAssistantMessage}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getAssistant = function() {\n  return /** @type{?proto.talk_api.ConversationAssistantMessage} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationAssistantMessage, 12));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationAssistantMessage|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setAssistant = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 12, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearAssistant = function() {\n  return this.setAssistant(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasAssistant = function() {\n  return jspb.Message.getField(this, 12) != null;\n};\n\n\n/**\n * optional ConversationToolCall toolCall = 13;\n * @return {?proto.talk_api.ConversationToolCall}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getToolcall = function() {\n  return /** @type{?proto.talk_api.ConversationToolCall} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationToolCall, 13));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationToolCall|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setToolcall = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 13, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearToolcall = function() {\n  return this.setToolcall(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasToolcall = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n/**\n * optional ConversationToolCallResult toolCallResult = 14;\n * @return {?proto.talk_api.ConversationToolCallResult}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getToolcallresult = function() {\n  return /** @type{?proto.talk_api.ConversationToolCallResult} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationToolCallResult, 14));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationToolCallResult|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setToolcallresult = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 14, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearToolcallresult = function() {\n  return this.setToolcallresult(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasToolcallresult = function() {\n  return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * optional ConversationMetadata metadata = 17;\n * @return {?proto.talk_api.ConversationMetadata}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getMetadata = function() {\n  return /** @type{?proto.talk_api.ConversationMetadata} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationMetadata, 17));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationMetadata|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setMetadata = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 17, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearMetadata = function() {\n  return this.setMetadata(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasMetadata = function() {\n  return jspb.Message.getField(this, 17) != null;\n};\n\n\n/**\n * optional ConversationMetric metric = 18;\n * @return {?proto.talk_api.ConversationMetric}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getMetric = function() {\n  return /** @type{?proto.talk_api.ConversationMetric} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationMetric, 18));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationMetric|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setMetric = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 18, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearMetric = function() {\n  return this.setMetric(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasMetric = function() {\n  return jspb.Message.getField(this, 18) != null;\n};\n\n\n/**\n * optional ConversationDisconnection disconnection = 19;\n * @return {?proto.talk_api.ConversationDisconnection}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getDisconnection = function() {\n  return /** @type{?proto.talk_api.ConversationDisconnection} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationDisconnection, 19));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationDisconnection|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setDisconnection = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 19, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearDisconnection = function() {\n  return this.setDisconnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasDisconnection = function() {\n  return jspb.Message.getField(this, 19) != null;\n};\n\n\n/**\n * optional ConversationEvent event = 20;\n * @return {?proto.talk_api.ConversationEvent}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getEvent = function() {\n  return /** @type{?proto.talk_api.ConversationEvent} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationEvent, 20));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationEvent|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setEvent = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 20, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearEvent = function() {\n  return this.setEvent(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasEvent = function() {\n  return jspb.Message.getField(this, 20) != null;\n};\n\n\n/**\n * optional ConversationError error = 15;\n * @return {?proto.talk_api.ConversationError}\n */\nproto.talk_api.AssistantTalkResponse.prototype.getError = function() {\n  return /** @type{?proto.talk_api.ConversationError} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ConversationError, 15));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationError|undefined} value\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n*/\nproto.talk_api.AssistantTalkResponse.prototype.setError = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 15, proto.talk_api.AssistantTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.AssistantTalkResponse} returns this\n */\nproto.talk_api.AssistantTalkResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.AssistantTalkResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 15) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.CreateMessageMetricRequest.repeatedFields_ = [4];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.CreateMessageMetricRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.CreateMessageMetricRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateMessageMetricRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    messageid: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    metricsList: jspb.Message.toObjectList(msg.getMetricsList(),\n    common_pb.Metric.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.CreateMessageMetricRequest}\n */\nproto.talk_api.CreateMessageMetricRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.CreateMessageMetricRequest;\n  return proto.talk_api.CreateMessageMetricRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.CreateMessageMetricRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.CreateMessageMetricRequest}\n */\nproto.talk_api.CreateMessageMetricRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setMessageid(value);\n      break;\n    case 4:\n      var value = new common_pb.Metric;\n      reader.readMessage(value,common_pb.Metric.deserializeBinaryFromReader);\n      msg.addMetrics(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.CreateMessageMetricRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.CreateMessageMetricRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateMessageMetricRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getMessageid();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getMetricsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      4,\n      f,\n      common_pb.Metric.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.CreateMessageMetricRequest} returns this\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantConversationId = 2;\n * @return {string}\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.CreateMessageMetricRequest} returns this\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional string messageId = 3;\n * @return {string}\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.getMessageid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.CreateMessageMetricRequest} returns this\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.setMessageid = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * repeated Metric metrics = 4;\n * @return {!Array<!proto.Metric>}\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.getMetricsList = function() {\n  return /** @type{!Array<!proto.Metric>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metric, 4));\n};\n\n\n/**\n * @param {!Array<!proto.Metric>} value\n * @return {!proto.talk_api.CreateMessageMetricRequest} returns this\n*/\nproto.talk_api.CreateMessageMetricRequest.prototype.setMetricsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.Metric=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metric}\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.addMetrics = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.Metric, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.CreateMessageMetricRequest} returns this\n */\nproto.talk_api.CreateMessageMetricRequest.prototype.clearMetricsList = function() {\n  return this.setMetricsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.CreateMessageMetricResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.CreateMessageMetricResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.CreateMessageMetricResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateMessageMetricResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    common_pb.Metric.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.CreateMessageMetricResponse}\n */\nproto.talk_api.CreateMessageMetricResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.CreateMessageMetricResponse;\n  return proto.talk_api.CreateMessageMetricResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.CreateMessageMetricResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.CreateMessageMetricResponse}\n */\nproto.talk_api.CreateMessageMetricResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new common_pb.Metric;\n      reader.readMessage(value,common_pb.Metric.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.CreateMessageMetricResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.CreateMessageMetricResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateMessageMetricResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.Metric.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.CreateMessageMetricResponse} returns this\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.CreateMessageMetricResponse} returns this\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated Metric data = 3;\n * @return {!Array<!proto.Metric>}\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.Metric>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metric, 3));\n};\n\n\n/**\n * @param {!Array<!proto.Metric>} value\n * @return {!proto.talk_api.CreateMessageMetricResponse} returns this\n*/\nproto.talk_api.CreateMessageMetricResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.Metric=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metric}\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.Metric, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.CreateMessageMetricResponse} returns this\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.talk_api.CreateMessageMetricResponse} returns this\n*/\nproto.talk_api.CreateMessageMetricResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.CreateMessageMetricResponse} returns this\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.CreateMessageMetricResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.CreateConversationMetricRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.CreateConversationMetricRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.CreateConversationMetricRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.CreateConversationMetricRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateConversationMetricRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    metricsList: jspb.Message.toObjectList(msg.getMetricsList(),\n    common_pb.Metric.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.CreateConversationMetricRequest}\n */\nproto.talk_api.CreateConversationMetricRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.CreateConversationMetricRequest;\n  return proto.talk_api.CreateConversationMetricRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.CreateConversationMetricRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.CreateConversationMetricRequest}\n */\nproto.talk_api.CreateConversationMetricRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 3:\n      var value = new common_pb.Metric;\n      reader.readMessage(value,common_pb.Metric.deserializeBinaryFromReader);\n      msg.addMetrics(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.CreateConversationMetricRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.CreateConversationMetricRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.CreateConversationMetricRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateConversationMetricRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getMetricsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.Metric.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.talk_api.CreateConversationMetricRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.CreateConversationMetricRequest} returns this\n */\nproto.talk_api.CreateConversationMetricRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantConversationId = 2;\n * @return {string}\n */\nproto.talk_api.CreateConversationMetricRequest.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.CreateConversationMetricRequest} returns this\n */\nproto.talk_api.CreateConversationMetricRequest.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * repeated Metric metrics = 3;\n * @return {!Array<!proto.Metric>}\n */\nproto.talk_api.CreateConversationMetricRequest.prototype.getMetricsList = function() {\n  return /** @type{!Array<!proto.Metric>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metric, 3));\n};\n\n\n/**\n * @param {!Array<!proto.Metric>} value\n * @return {!proto.talk_api.CreateConversationMetricRequest} returns this\n*/\nproto.talk_api.CreateConversationMetricRequest.prototype.setMetricsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.Metric=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metric}\n */\nproto.talk_api.CreateConversationMetricRequest.prototype.addMetrics = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.Metric, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.CreateConversationMetricRequest} returns this\n */\nproto.talk_api.CreateConversationMetricRequest.prototype.clearMetricsList = function() {\n  return this.setMetricsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.CreateConversationMetricResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.CreateConversationMetricResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.CreateConversationMetricResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateConversationMetricResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    common_pb.Metric.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.CreateConversationMetricResponse}\n */\nproto.talk_api.CreateConversationMetricResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.CreateConversationMetricResponse;\n  return proto.talk_api.CreateConversationMetricResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.CreateConversationMetricResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.CreateConversationMetricResponse}\n */\nproto.talk_api.CreateConversationMetricResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new common_pb.Metric;\n      reader.readMessage(value,common_pb.Metric.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.CreateConversationMetricResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.CreateConversationMetricResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateConversationMetricResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.Metric.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.CreateConversationMetricResponse} returns this\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.CreateConversationMetricResponse} returns this\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated Metric data = 3;\n * @return {!Array<!proto.Metric>}\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.Metric>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metric, 3));\n};\n\n\n/**\n * @param {!Array<!proto.Metric>} value\n * @return {!proto.talk_api.CreateConversationMetricResponse} returns this\n*/\nproto.talk_api.CreateConversationMetricResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.Metric=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metric}\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.Metric, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.CreateConversationMetricResponse} returns this\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.talk_api.CreateConversationMetricResponse} returns this\n*/\nproto.talk_api.CreateConversationMetricResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.CreateConversationMetricResponse} returns this\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.CreateConversationMetricResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.CreatePhoneCallRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.CreatePhoneCallRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreatePhoneCallRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistant: (f = msg.getAssistant()) && common_pb.AssistantDefinition.toObject(includeInstance, f),\n    metadataMap: (f = msg.getMetadataMap()) ? f.toObject(includeInstance, proto.google.protobuf.Any.toObject) : [],\n    argsMap: (f = msg.getArgsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Any.toObject) : [],\n    optionsMap: (f = msg.getOptionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Any.toObject) : [],\n    fromnumber: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    tonumber: jspb.Message.getFieldWithDefault(msg, 7, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.CreatePhoneCallRequest}\n */\nproto.talk_api.CreatePhoneCallRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.CreatePhoneCallRequest;\n  return proto.talk_api.CreatePhoneCallRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.CreatePhoneCallRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.CreatePhoneCallRequest}\n */\nproto.talk_api.CreatePhoneCallRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new common_pb.AssistantDefinition;\n      reader.readMessage(value,common_pb.AssistantDefinition.deserializeBinaryFromReader);\n      msg.setAssistant(value);\n      break;\n    case 3:\n      var value = msg.getMetadataMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Any.deserializeBinaryFromReader, \"\", new proto.google.protobuf.Any());\n         });\n      break;\n    case 4:\n      var value = msg.getArgsMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Any.deserializeBinaryFromReader, \"\", new proto.google.protobuf.Any());\n         });\n      break;\n    case 5:\n      var value = msg.getOptionsMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Any.deserializeBinaryFromReader, \"\", new proto.google.protobuf.Any());\n         });\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setFromnumber(value);\n      break;\n    case 7:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setTonumber(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.CreatePhoneCallRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.CreatePhoneCallRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreatePhoneCallRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistant();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      common_pb.AssistantDefinition.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetadataMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Any.serializeBinaryToWriter);\n  }\n  f = message.getArgsMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Any.serializeBinaryToWriter);\n  }\n  f = message.getOptionsMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Any.serializeBinaryToWriter);\n  }\n  f = message.getFromnumber();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = message.getTonumber();\n  if (f.length > 0) {\n    writer.writeString(\n      7,\n      f\n    );\n  }\n};\n\n\n/**\n * optional AssistantDefinition assistant = 1;\n * @return {?proto.AssistantDefinition}\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.getAssistant = function() {\n  return /** @type{?proto.AssistantDefinition} */ (\n    jspb.Message.getWrapperField(this, common_pb.AssistantDefinition, 1));\n};\n\n\n/**\n * @param {?proto.AssistantDefinition|undefined} value\n * @return {!proto.talk_api.CreatePhoneCallRequest} returns this\n*/\nproto.talk_api.CreatePhoneCallRequest.prototype.setAssistant = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.CreatePhoneCallRequest} returns this\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.clearAssistant = function() {\n  return this.setAssistant(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.hasAssistant = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * map<string, google.protobuf.Any> metadata = 3;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,!proto.google.protobuf.Any>}\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.getMetadataMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,!proto.google.protobuf.Any>} */ (\n      jspb.Message.getMapField(this, 3, opt_noLazyCreate,\n      proto.google.protobuf.Any));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.CreatePhoneCallRequest} returns this\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.clearMetadataMap = function() {\n  this.getMetadataMap().clear();\n  return this;};\n\n\n/**\n * map<string, google.protobuf.Any> args = 4;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,!proto.google.protobuf.Any>}\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.getArgsMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,!proto.google.protobuf.Any>} */ (\n      jspb.Message.getMapField(this, 4, opt_noLazyCreate,\n      proto.google.protobuf.Any));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.CreatePhoneCallRequest} returns this\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.clearArgsMap = function() {\n  this.getArgsMap().clear();\n  return this;};\n\n\n/**\n * map<string, google.protobuf.Any> options = 5;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,!proto.google.protobuf.Any>}\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.getOptionsMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,!proto.google.protobuf.Any>} */ (\n      jspb.Message.getMapField(this, 5, opt_noLazyCreate,\n      proto.google.protobuf.Any));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.talk_api.CreatePhoneCallRequest} returns this\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.clearOptionsMap = function() {\n  this.getOptionsMap().clear();\n  return this;};\n\n\n/**\n * optional string fromNumber = 6;\n * @return {string}\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.getFromnumber = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.CreatePhoneCallRequest} returns this\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.setFromnumber = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional string toNumber = 7;\n * @return {string}\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.getTonumber = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.CreatePhoneCallRequest} returns this\n */\nproto.talk_api.CreatePhoneCallRequest.prototype.setTonumber = function(value) {\n  return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.CreatePhoneCallResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.CreatePhoneCallResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreatePhoneCallResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && common_pb.AssistantConversation.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.CreatePhoneCallResponse}\n */\nproto.talk_api.CreatePhoneCallResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.CreatePhoneCallResponse;\n  return proto.talk_api.CreatePhoneCallResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.CreatePhoneCallResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.CreatePhoneCallResponse}\n */\nproto.talk_api.CreatePhoneCallResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new common_pb.AssistantConversation;\n      reader.readMessage(value,common_pb.AssistantConversation.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.CreatePhoneCallResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.CreatePhoneCallResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreatePhoneCallResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      common_pb.AssistantConversation.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.CreatePhoneCallResponse} returns this\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.CreatePhoneCallResponse} returns this\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantConversation data = 3;\n * @return {?proto.AssistantConversation}\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.getData = function() {\n  return /** @type{?proto.AssistantConversation} */ (\n    jspb.Message.getWrapperField(this, common_pb.AssistantConversation, 3));\n};\n\n\n/**\n * @param {?proto.AssistantConversation|undefined} value\n * @return {!proto.talk_api.CreatePhoneCallResponse} returns this\n*/\nproto.talk_api.CreatePhoneCallResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.CreatePhoneCallResponse} returns this\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.talk_api.CreatePhoneCallResponse} returns this\n*/\nproto.talk_api.CreatePhoneCallResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.CreatePhoneCallResponse} returns this\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.CreatePhoneCallResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.CreateBulkPhoneCallRequest.repeatedFields_ = [6];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.CreateBulkPhoneCallRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.CreateBulkPhoneCallRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.CreateBulkPhoneCallRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateBulkPhoneCallRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    phonecallsList: jspb.Message.toObjectList(msg.getPhonecallsList(),\n    proto.talk_api.CreatePhoneCallRequest.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.CreateBulkPhoneCallRequest}\n */\nproto.talk_api.CreateBulkPhoneCallRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.CreateBulkPhoneCallRequest;\n  return proto.talk_api.CreateBulkPhoneCallRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.CreateBulkPhoneCallRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.CreateBulkPhoneCallRequest}\n */\nproto.talk_api.CreateBulkPhoneCallRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 6:\n      var value = new proto.talk_api.CreatePhoneCallRequest;\n      reader.readMessage(value,proto.talk_api.CreatePhoneCallRequest.deserializeBinaryFromReader);\n      msg.addPhonecalls(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.CreateBulkPhoneCallRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.CreateBulkPhoneCallRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.CreateBulkPhoneCallRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateBulkPhoneCallRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getPhonecallsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      6,\n      f,\n      proto.talk_api.CreatePhoneCallRequest.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * repeated CreatePhoneCallRequest phoneCalls = 6;\n * @return {!Array<!proto.talk_api.CreatePhoneCallRequest>}\n */\nproto.talk_api.CreateBulkPhoneCallRequest.prototype.getPhonecallsList = function() {\n  return /** @type{!Array<!proto.talk_api.CreatePhoneCallRequest>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.talk_api.CreatePhoneCallRequest, 6));\n};\n\n\n/**\n * @param {!Array<!proto.talk_api.CreatePhoneCallRequest>} value\n * @return {!proto.talk_api.CreateBulkPhoneCallRequest} returns this\n*/\nproto.talk_api.CreateBulkPhoneCallRequest.prototype.setPhonecallsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 6, value);\n};\n\n\n/**\n * @param {!proto.talk_api.CreatePhoneCallRequest=} opt_value\n * @param {number=} opt_index\n * @return {!proto.talk_api.CreatePhoneCallRequest}\n */\nproto.talk_api.CreateBulkPhoneCallRequest.prototype.addPhonecalls = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.talk_api.CreatePhoneCallRequest, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.CreateBulkPhoneCallRequest} returns this\n */\nproto.talk_api.CreateBulkPhoneCallRequest.prototype.clearPhonecallsList = function() {\n  return this.setPhonecallsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.CreateBulkPhoneCallResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.CreateBulkPhoneCallResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.CreateBulkPhoneCallResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateBulkPhoneCallResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    common_pb.AssistantConversation.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.CreateBulkPhoneCallResponse}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.CreateBulkPhoneCallResponse;\n  return proto.talk_api.CreateBulkPhoneCallResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.CreateBulkPhoneCallResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.CreateBulkPhoneCallResponse}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new common_pb.AssistantConversation;\n      reader.readMessage(value,common_pb.AssistantConversation.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.CreateBulkPhoneCallResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.CreateBulkPhoneCallResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.CreateBulkPhoneCallResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.AssistantConversation.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.CreateBulkPhoneCallResponse} returns this\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.CreateBulkPhoneCallResponse} returns this\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantConversation data = 3;\n * @return {!Array<!proto.AssistantConversation>}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.AssistantConversation>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.AssistantConversation, 3));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversation>} value\n * @return {!proto.talk_api.CreateBulkPhoneCallResponse} returns this\n*/\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversation=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversation}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.AssistantConversation, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.CreateBulkPhoneCallResponse} returns this\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.talk_api.CreateBulkPhoneCallResponse} returns this\n*/\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.CreateBulkPhoneCallResponse} returns this\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.CreateBulkPhoneCallResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * @enum {number}\n */\nproto.talk_api.ToolCallAction = {\n  TOOL_CALL_ACTION_UNSPECIFIED: 0,\n  TOOL_CALL_ACTION_END_CONVERSATION: 1,\n  TOOL_CALL_ACTION_TRANSFER_CONVERSATION: 2\n};\n\n/**\n * @enum {number}\n */\nproto.talk_api.StreamMode = {\n  STREAM_MODE_UNSPECIFIED: 0,\n  STREAM_MODE_TEXT: 1,\n  STREAM_MODE_AUDIO: 2,\n  STREAM_MODE_BOTH: 3\n};\n\ngoog.object.extend(exports, proto.talk_api);\n","// source: webrtc.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n *     field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() { return this || window || global || self || Function('return this')(); }).call(null);\n\nvar talk$api_pb = require('./talk-api_pb.js');\ngoog.object.extend(proto, talk$api_pb);\ngoog.exportSymbol('proto.talk_api.ClientSignaling', null, global);\ngoog.exportSymbol('proto.talk_api.ClientSignaling.MessageCase', null, global);\ngoog.exportSymbol('proto.talk_api.ICECandidate', null, global);\ngoog.exportSymbol('proto.talk_api.ICEServer', null, global);\ngoog.exportSymbol('proto.talk_api.ServerSignaling', null, global);\ngoog.exportSymbol('proto.talk_api.ServerSignaling.MessageCase', null, global);\ngoog.exportSymbol('proto.talk_api.WebRTCConfig', null, global);\ngoog.exportSymbol('proto.talk_api.WebRTCSDP', null, global);\ngoog.exportSymbol('proto.talk_api.WebRTCSDP.SDPType', null, global);\ngoog.exportSymbol('proto.talk_api.WebTalkRequest', null, global);\ngoog.exportSymbol('proto.talk_api.WebTalkRequest.RequestCase', null, global);\ngoog.exportSymbol('proto.talk_api.WebTalkResponse', null, global);\ngoog.exportSymbol('proto.talk_api.WebTalkResponse.DataCase', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ICEServer = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.ICEServer.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.ICEServer, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ICEServer.displayName = 'proto.talk_api.ICEServer';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ICECandidate = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.ICECandidate, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ICECandidate.displayName = 'proto.talk_api.ICECandidate';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.WebRTCSDP = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.talk_api.WebRTCSDP, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.WebRTCSDP.displayName = 'proto.talk_api.WebRTCSDP';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ClientSignaling = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.talk_api.ClientSignaling.oneofGroups_);\n};\ngoog.inherits(proto.talk_api.ClientSignaling, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ClientSignaling.displayName = 'proto.talk_api.ClientSignaling';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.ServerSignaling = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.talk_api.ServerSignaling.oneofGroups_);\n};\ngoog.inherits(proto.talk_api.ServerSignaling, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.ServerSignaling.displayName = 'proto.talk_api.ServerSignaling';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.WebRTCConfig = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.talk_api.WebRTCConfig.repeatedFields_, null);\n};\ngoog.inherits(proto.talk_api.WebRTCConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.WebRTCConfig.displayName = 'proto.talk_api.WebRTCConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.WebTalkRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.talk_api.WebTalkRequest.oneofGroups_);\n};\ngoog.inherits(proto.talk_api.WebTalkRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.WebTalkRequest.displayName = 'proto.talk_api.WebTalkRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.talk_api.WebTalkResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.talk_api.WebTalkResponse.oneofGroups_);\n};\ngoog.inherits(proto.talk_api.WebTalkResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.talk_api.WebTalkResponse.displayName = 'proto.talk_api.WebTalkResponse';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.ICEServer.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ICEServer.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ICEServer.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ICEServer} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ICEServer.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    urlsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f,\n    username: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    credential: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ICEServer}\n */\nproto.talk_api.ICEServer.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ICEServer;\n  return proto.talk_api.ICEServer.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ICEServer} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ICEServer}\n */\nproto.talk_api.ICEServer.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.addUrls(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUsername(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setCredential(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ICEServer.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ICEServer.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ICEServer} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ICEServer.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getUrlsList();\n  if (f.length > 0) {\n    writer.writeRepeatedString(\n      1,\n      f\n    );\n  }\n  f = message.getUsername();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getCredential();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * repeated string urls = 1;\n * @return {!Array<string>}\n */\nproto.talk_api.ICEServer.prototype.getUrlsList = function() {\n  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 1));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.talk_api.ICEServer} returns this\n */\nproto.talk_api.ICEServer.prototype.setUrlsList = function(value) {\n  return jspb.Message.setField(this, 1, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.talk_api.ICEServer} returns this\n */\nproto.talk_api.ICEServer.prototype.addUrls = function(value, opt_index) {\n  return jspb.Message.addToRepeatedField(this, 1, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.ICEServer} returns this\n */\nproto.talk_api.ICEServer.prototype.clearUrlsList = function() {\n  return this.setUrlsList([]);\n};\n\n\n/**\n * optional string username = 2;\n * @return {string}\n */\nproto.talk_api.ICEServer.prototype.getUsername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ICEServer} returns this\n */\nproto.talk_api.ICEServer.prototype.setUsername = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string credential = 3;\n * @return {string}\n */\nproto.talk_api.ICEServer.prototype.getCredential = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ICEServer} returns this\n */\nproto.talk_api.ICEServer.prototype.setCredential = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ICECandidate.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ICECandidate.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ICECandidate} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ICECandidate.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    candidate: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    sdpmid: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    sdpmlineindex: jspb.Message.getFieldWithDefault(msg, 3, 0),\n    usernamefragment: jspb.Message.getFieldWithDefault(msg, 4, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ICECandidate}\n */\nproto.talk_api.ICECandidate.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ICECandidate;\n  return proto.talk_api.ICECandidate.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ICECandidate} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ICECandidate}\n */\nproto.talk_api.ICECandidate.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setCandidate(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSdpmid(value);\n      break;\n    case 3:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setSdpmlineindex(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUsernamefragment(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ICECandidate.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ICECandidate.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ICECandidate} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ICECandidate.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCandidate();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getSdpmid();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getSdpmlineindex();\n  if (f !== 0) {\n    writer.writeInt32(\n      3,\n      f\n    );\n  }\n  f = message.getUsernamefragment();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string candidate = 1;\n * @return {string}\n */\nproto.talk_api.ICECandidate.prototype.getCandidate = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ICECandidate} returns this\n */\nproto.talk_api.ICECandidate.prototype.setCandidate = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string sdpMid = 2;\n * @return {string}\n */\nproto.talk_api.ICECandidate.prototype.getSdpmid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ICECandidate} returns this\n */\nproto.talk_api.ICECandidate.prototype.setSdpmid = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional int32 sdpMLineIndex = 3;\n * @return {number}\n */\nproto.talk_api.ICECandidate.prototype.getSdpmlineindex = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.ICECandidate} returns this\n */\nproto.talk_api.ICECandidate.prototype.setSdpmlineindex = function(value) {\n  return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional string usernameFragment = 4;\n * @return {string}\n */\nproto.talk_api.ICECandidate.prototype.getUsernamefragment = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ICECandidate} returns this\n */\nproto.talk_api.ICECandidate.prototype.setUsernamefragment = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.WebRTCSDP.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.WebRTCSDP.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.WebRTCSDP} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebRTCSDP.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    type: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    sdp: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.WebRTCSDP}\n */\nproto.talk_api.WebRTCSDP.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.WebRTCSDP;\n  return proto.talk_api.WebRTCSDP.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.WebRTCSDP} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.WebRTCSDP}\n */\nproto.talk_api.WebRTCSDP.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {!proto.talk_api.WebRTCSDP.SDPType} */ (reader.readEnum());\n      msg.setType(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSdp(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.WebRTCSDP.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.WebRTCSDP.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.WebRTCSDP} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebRTCSDP.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getType();\n  if (f !== 0.0) {\n    writer.writeEnum(\n      1,\n      f\n    );\n  }\n  f = message.getSdp();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * @enum {number}\n */\nproto.talk_api.WebRTCSDP.SDPType = {\n  SDP_TYPE_UNSPECIFIED: 0,\n  OFFER: 1,\n  ANSWER: 2\n};\n\n/**\n * optional SDPType type = 1;\n * @return {!proto.talk_api.WebRTCSDP.SDPType}\n */\nproto.talk_api.WebRTCSDP.prototype.getType = function() {\n  return /** @type {!proto.talk_api.WebRTCSDP.SDPType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {!proto.talk_api.WebRTCSDP.SDPType} value\n * @return {!proto.talk_api.WebRTCSDP} returns this\n */\nproto.talk_api.WebRTCSDP.prototype.setType = function(value) {\n  return jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional string sdp = 2;\n * @return {string}\n */\nproto.talk_api.WebRTCSDP.prototype.getSdp = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.WebRTCSDP} returns this\n */\nproto.talk_api.WebRTCSDP.prototype.setSdp = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.talk_api.ClientSignaling.oneofGroups_ = [[2,3,4]];\n\n/**\n * @enum {number}\n */\nproto.talk_api.ClientSignaling.MessageCase = {\n  MESSAGE_NOT_SET: 0,\n  SDP: 2,\n  ICECANDIDATE: 3,\n  DISCONNECT: 4\n};\n\n/**\n * @return {proto.talk_api.ClientSignaling.MessageCase}\n */\nproto.talk_api.ClientSignaling.prototype.getMessageCase = function() {\n  return /** @type {proto.talk_api.ClientSignaling.MessageCase} */(jspb.Message.computeOneofCase(this, proto.talk_api.ClientSignaling.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ClientSignaling.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ClientSignaling.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ClientSignaling} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ClientSignaling.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    sessionid: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    sdp: (f = msg.getSdp()) && proto.talk_api.WebRTCSDP.toObject(includeInstance, f),\n    icecandidate: (f = msg.getIcecandidate()) && proto.talk_api.ICECandidate.toObject(includeInstance, f),\n    disconnect: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ClientSignaling}\n */\nproto.talk_api.ClientSignaling.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ClientSignaling;\n  return proto.talk_api.ClientSignaling.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ClientSignaling} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ClientSignaling}\n */\nproto.talk_api.ClientSignaling.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSessionid(value);\n      break;\n    case 2:\n      var value = new proto.talk_api.WebRTCSDP;\n      reader.readMessage(value,proto.talk_api.WebRTCSDP.deserializeBinaryFromReader);\n      msg.setSdp(value);\n      break;\n    case 3:\n      var value = new proto.talk_api.ICECandidate;\n      reader.readMessage(value,proto.talk_api.ICECandidate.deserializeBinaryFromReader);\n      msg.setIcecandidate(value);\n      break;\n    case 4:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setDisconnect(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ClientSignaling.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ClientSignaling.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ClientSignaling} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ClientSignaling.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getSessionid();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getSdp();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      proto.talk_api.WebRTCSDP.serializeBinaryToWriter\n    );\n  }\n  f = message.getIcecandidate();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.talk_api.ICECandidate.serializeBinaryToWriter\n    );\n  }\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 4));\n  if (f != null) {\n    writer.writeBool(\n      4,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string sessionId = 1;\n * @return {string}\n */\nproto.talk_api.ClientSignaling.prototype.getSessionid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ClientSignaling} returns this\n */\nproto.talk_api.ClientSignaling.prototype.setSessionid = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional WebRTCSDP sdp = 2;\n * @return {?proto.talk_api.WebRTCSDP}\n */\nproto.talk_api.ClientSignaling.prototype.getSdp = function() {\n  return /** @type{?proto.talk_api.WebRTCSDP} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.WebRTCSDP, 2));\n};\n\n\n/**\n * @param {?proto.talk_api.WebRTCSDP|undefined} value\n * @return {!proto.talk_api.ClientSignaling} returns this\n*/\nproto.talk_api.ClientSignaling.prototype.setSdp = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 2, proto.talk_api.ClientSignaling.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ClientSignaling} returns this\n */\nproto.talk_api.ClientSignaling.prototype.clearSdp = function() {\n  return this.setSdp(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ClientSignaling.prototype.hasSdp = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional ICECandidate iceCandidate = 3;\n * @return {?proto.talk_api.ICECandidate}\n */\nproto.talk_api.ClientSignaling.prototype.getIcecandidate = function() {\n  return /** @type{?proto.talk_api.ICECandidate} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ICECandidate, 3));\n};\n\n\n/**\n * @param {?proto.talk_api.ICECandidate|undefined} value\n * @return {!proto.talk_api.ClientSignaling} returns this\n*/\nproto.talk_api.ClientSignaling.prototype.setIcecandidate = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 3, proto.talk_api.ClientSignaling.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ClientSignaling} returns this\n */\nproto.talk_api.ClientSignaling.prototype.clearIcecandidate = function() {\n  return this.setIcecandidate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ClientSignaling.prototype.hasIcecandidate = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional bool disconnect = 4;\n * @return {boolean}\n */\nproto.talk_api.ClientSignaling.prototype.getDisconnect = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.ClientSignaling} returns this\n */\nproto.talk_api.ClientSignaling.prototype.setDisconnect = function(value) {\n  return jspb.Message.setOneofField(this, 4, proto.talk_api.ClientSignaling.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.talk_api.ClientSignaling} returns this\n */\nproto.talk_api.ClientSignaling.prototype.clearDisconnect = function() {\n  return jspb.Message.setOneofField(this, 4, proto.talk_api.ClientSignaling.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ClientSignaling.prototype.hasDisconnect = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.talk_api.ServerSignaling.oneofGroups_ = [[2,3,4,5,6,7]];\n\n/**\n * @enum {number}\n */\nproto.talk_api.ServerSignaling.MessageCase = {\n  MESSAGE_NOT_SET: 0,\n  CONFIG: 2,\n  SDP: 3,\n  ICECANDIDATE: 4,\n  READY: 5,\n  CLEAR: 6,\n  ERROR: 7\n};\n\n/**\n * @return {proto.talk_api.ServerSignaling.MessageCase}\n */\nproto.talk_api.ServerSignaling.prototype.getMessageCase = function() {\n  return /** @type {proto.talk_api.ServerSignaling.MessageCase} */(jspb.Message.computeOneofCase(this, proto.talk_api.ServerSignaling.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.ServerSignaling.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.ServerSignaling.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.ServerSignaling} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ServerSignaling.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    sessionid: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    config: (f = msg.getConfig()) && proto.talk_api.WebRTCConfig.toObject(includeInstance, f),\n    sdp: (f = msg.getSdp()) && proto.talk_api.WebRTCSDP.toObject(includeInstance, f),\n    icecandidate: (f = msg.getIcecandidate()) && proto.talk_api.ICECandidate.toObject(includeInstance, f),\n    ready: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),\n    clear: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),\n    error: jspb.Message.getFieldWithDefault(msg, 7, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.ServerSignaling}\n */\nproto.talk_api.ServerSignaling.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.ServerSignaling;\n  return proto.talk_api.ServerSignaling.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.ServerSignaling} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.ServerSignaling}\n */\nproto.talk_api.ServerSignaling.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSessionid(value);\n      break;\n    case 2:\n      var value = new proto.talk_api.WebRTCConfig;\n      reader.readMessage(value,proto.talk_api.WebRTCConfig.deserializeBinaryFromReader);\n      msg.setConfig(value);\n      break;\n    case 3:\n      var value = new proto.talk_api.WebRTCSDP;\n      reader.readMessage(value,proto.talk_api.WebRTCSDP.deserializeBinaryFromReader);\n      msg.setSdp(value);\n      break;\n    case 4:\n      var value = new proto.talk_api.ICECandidate;\n      reader.readMessage(value,proto.talk_api.ICECandidate.deserializeBinaryFromReader);\n      msg.setIcecandidate(value);\n      break;\n    case 5:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setReady(value);\n      break;\n    case 6:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setClear(value);\n      break;\n    case 7:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.ServerSignaling.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.ServerSignaling.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.ServerSignaling} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.ServerSignaling.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getSessionid();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getConfig();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      proto.talk_api.WebRTCConfig.serializeBinaryToWriter\n    );\n  }\n  f = message.getSdp();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.talk_api.WebRTCSDP.serializeBinaryToWriter\n    );\n  }\n  f = message.getIcecandidate();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      proto.talk_api.ICECandidate.serializeBinaryToWriter\n    );\n  }\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 5));\n  if (f != null) {\n    writer.writeBool(\n      5,\n      f\n    );\n  }\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 6));\n  if (f != null) {\n    writer.writeBool(\n      6,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 7));\n  if (f != null) {\n    writer.writeString(\n      7,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string sessionId = 1;\n * @return {string}\n */\nproto.talk_api.ServerSignaling.prototype.getSessionid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.setSessionid = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional WebRTCConfig config = 2;\n * @return {?proto.talk_api.WebRTCConfig}\n */\nproto.talk_api.ServerSignaling.prototype.getConfig = function() {\n  return /** @type{?proto.talk_api.WebRTCConfig} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.WebRTCConfig, 2));\n};\n\n\n/**\n * @param {?proto.talk_api.WebRTCConfig|undefined} value\n * @return {!proto.talk_api.ServerSignaling} returns this\n*/\nproto.talk_api.ServerSignaling.prototype.setConfig = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 2, proto.talk_api.ServerSignaling.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.clearConfig = function() {\n  return this.setConfig(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ServerSignaling.prototype.hasConfig = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional WebRTCSDP sdp = 3;\n * @return {?proto.talk_api.WebRTCSDP}\n */\nproto.talk_api.ServerSignaling.prototype.getSdp = function() {\n  return /** @type{?proto.talk_api.WebRTCSDP} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.WebRTCSDP, 3));\n};\n\n\n/**\n * @param {?proto.talk_api.WebRTCSDP|undefined} value\n * @return {!proto.talk_api.ServerSignaling} returns this\n*/\nproto.talk_api.ServerSignaling.prototype.setSdp = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 3, proto.talk_api.ServerSignaling.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.clearSdp = function() {\n  return this.setSdp(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ServerSignaling.prototype.hasSdp = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional ICECandidate iceCandidate = 4;\n * @return {?proto.talk_api.ICECandidate}\n */\nproto.talk_api.ServerSignaling.prototype.getIcecandidate = function() {\n  return /** @type{?proto.talk_api.ICECandidate} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ICECandidate, 4));\n};\n\n\n/**\n * @param {?proto.talk_api.ICECandidate|undefined} value\n * @return {!proto.talk_api.ServerSignaling} returns this\n*/\nproto.talk_api.ServerSignaling.prototype.setIcecandidate = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 4, proto.talk_api.ServerSignaling.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.clearIcecandidate = function() {\n  return this.setIcecandidate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ServerSignaling.prototype.hasIcecandidate = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional bool ready = 5;\n * @return {boolean}\n */\nproto.talk_api.ServerSignaling.prototype.getReady = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.setReady = function(value) {\n  return jspb.Message.setOneofField(this, 5, proto.talk_api.ServerSignaling.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.clearReady = function() {\n  return jspb.Message.setOneofField(this, 5, proto.talk_api.ServerSignaling.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ServerSignaling.prototype.hasReady = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional bool clear = 6;\n * @return {boolean}\n */\nproto.talk_api.ServerSignaling.prototype.getClear = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.setClear = function(value) {\n  return jspb.Message.setOneofField(this, 6, proto.talk_api.ServerSignaling.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.clearClear = function() {\n  return jspb.Message.setOneofField(this, 6, proto.talk_api.ServerSignaling.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ServerSignaling.prototype.hasClear = function() {\n  return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional string error = 7;\n * @return {string}\n */\nproto.talk_api.ServerSignaling.prototype.getError = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.setError = function(value) {\n  return jspb.Message.setOneofField(this, 7, proto.talk_api.ServerSignaling.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.talk_api.ServerSignaling} returns this\n */\nproto.talk_api.ServerSignaling.prototype.clearError = function() {\n  return jspb.Message.setOneofField(this, 7, proto.talk_api.ServerSignaling.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.ServerSignaling.prototype.hasError = function() {\n  return jspb.Message.getField(this, 7) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.talk_api.WebRTCConfig.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.WebRTCConfig.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.WebRTCConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.WebRTCConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebRTCConfig.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    iceserversList: jspb.Message.toObjectList(msg.getIceserversList(),\n    proto.talk_api.ICEServer.toObject, includeInstance),\n    audiocodec: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    samplerate: jspb.Message.getFieldWithDefault(msg, 3, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.WebRTCConfig}\n */\nproto.talk_api.WebRTCConfig.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.WebRTCConfig;\n  return proto.talk_api.WebRTCConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.WebRTCConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.WebRTCConfig}\n */\nproto.talk_api.WebRTCConfig.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new proto.talk_api.ICEServer;\n      reader.readMessage(value,proto.talk_api.ICEServer.deserializeBinaryFromReader);\n      msg.addIceservers(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAudiocodec(value);\n      break;\n    case 3:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setSamplerate(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.WebRTCConfig.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.WebRTCConfig.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.WebRTCConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebRTCConfig.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getIceserversList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      1,\n      f,\n      proto.talk_api.ICEServer.serializeBinaryToWriter\n    );\n  }\n  f = message.getAudiocodec();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getSamplerate();\n  if (f !== 0) {\n    writer.writeInt32(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * repeated ICEServer iceServers = 1;\n * @return {!Array<!proto.talk_api.ICEServer>}\n */\nproto.talk_api.WebRTCConfig.prototype.getIceserversList = function() {\n  return /** @type{!Array<!proto.talk_api.ICEServer>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.talk_api.ICEServer, 1));\n};\n\n\n/**\n * @param {!Array<!proto.talk_api.ICEServer>} value\n * @return {!proto.talk_api.WebRTCConfig} returns this\n*/\nproto.talk_api.WebRTCConfig.prototype.setIceserversList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.talk_api.ICEServer=} opt_value\n * @param {number=} opt_index\n * @return {!proto.talk_api.ICEServer}\n */\nproto.talk_api.WebRTCConfig.prototype.addIceservers = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.talk_api.ICEServer, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.talk_api.WebRTCConfig} returns this\n */\nproto.talk_api.WebRTCConfig.prototype.clearIceserversList = function() {\n  return this.setIceserversList([]);\n};\n\n\n/**\n * optional string audioCodec = 2;\n * @return {string}\n */\nproto.talk_api.WebRTCConfig.prototype.getAudiocodec = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.talk_api.WebRTCConfig} returns this\n */\nproto.talk_api.WebRTCConfig.prototype.setAudiocodec = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional int32 sampleRate = 3;\n * @return {number}\n */\nproto.talk_api.WebRTCConfig.prototype.getSamplerate = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.WebRTCConfig} returns this\n */\nproto.talk_api.WebRTCConfig.prototype.setSamplerate = function(value) {\n  return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.talk_api.WebTalkRequest.oneofGroups_ = [[1,2,3,4,5,6,7,8]];\n\n/**\n * @enum {number}\n */\nproto.talk_api.WebTalkRequest.RequestCase = {\n  REQUEST_NOT_SET: 0,\n  INITIALIZATION: 1,\n  CONFIGURATION: 2,\n  MESSAGE: 3,\n  SIGNALING: 4,\n  METADATA: 5,\n  METRIC: 6,\n  DISCONNECTION: 7,\n  TOOLCALLRESULT: 8\n};\n\n/**\n * @return {proto.talk_api.WebTalkRequest.RequestCase}\n */\nproto.talk_api.WebTalkRequest.prototype.getRequestCase = function() {\n  return /** @type {proto.talk_api.WebTalkRequest.RequestCase} */(jspb.Message.computeOneofCase(this, proto.talk_api.WebTalkRequest.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.WebTalkRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.WebTalkRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.WebTalkRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebTalkRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    initialization: (f = msg.getInitialization()) && talk$api_pb.ConversationInitialization.toObject(includeInstance, f),\n    configuration: (f = msg.getConfiguration()) && talk$api_pb.ConversationConfiguration.toObject(includeInstance, f),\n    message: (f = msg.getMessage()) && talk$api_pb.ConversationUserMessage.toObject(includeInstance, f),\n    signaling: (f = msg.getSignaling()) && proto.talk_api.ClientSignaling.toObject(includeInstance, f),\n    metadata: (f = msg.getMetadata()) && talk$api_pb.ConversationMetadata.toObject(includeInstance, f),\n    metric: (f = msg.getMetric()) && talk$api_pb.ConversationMetric.toObject(includeInstance, f),\n    disconnection: (f = msg.getDisconnection()) && talk$api_pb.ConversationDisconnection.toObject(includeInstance, f),\n    toolcallresult: (f = msg.getToolcallresult()) && talk$api_pb.ConversationToolCallResult.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.WebTalkRequest}\n */\nproto.talk_api.WebTalkRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.WebTalkRequest;\n  return proto.talk_api.WebTalkRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.WebTalkRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.WebTalkRequest}\n */\nproto.talk_api.WebTalkRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new talk$api_pb.ConversationInitialization;\n      reader.readMessage(value,talk$api_pb.ConversationInitialization.deserializeBinaryFromReader);\n      msg.setInitialization(value);\n      break;\n    case 2:\n      var value = new talk$api_pb.ConversationConfiguration;\n      reader.readMessage(value,talk$api_pb.ConversationConfiguration.deserializeBinaryFromReader);\n      msg.setConfiguration(value);\n      break;\n    case 3:\n      var value = new talk$api_pb.ConversationUserMessage;\n      reader.readMessage(value,talk$api_pb.ConversationUserMessage.deserializeBinaryFromReader);\n      msg.setMessage(value);\n      break;\n    case 4:\n      var value = new proto.talk_api.ClientSignaling;\n      reader.readMessage(value,proto.talk_api.ClientSignaling.deserializeBinaryFromReader);\n      msg.setSignaling(value);\n      break;\n    case 5:\n      var value = new talk$api_pb.ConversationMetadata;\n      reader.readMessage(value,talk$api_pb.ConversationMetadata.deserializeBinaryFromReader);\n      msg.setMetadata(value);\n      break;\n    case 6:\n      var value = new talk$api_pb.ConversationMetric;\n      reader.readMessage(value,talk$api_pb.ConversationMetric.deserializeBinaryFromReader);\n      msg.setMetric(value);\n      break;\n    case 7:\n      var value = new talk$api_pb.ConversationDisconnection;\n      reader.readMessage(value,talk$api_pb.ConversationDisconnection.deserializeBinaryFromReader);\n      msg.setDisconnection(value);\n      break;\n    case 8:\n      var value = new talk$api_pb.ConversationToolCallResult;\n      reader.readMessage(value,talk$api_pb.ConversationToolCallResult.deserializeBinaryFromReader);\n      msg.setToolcallresult(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.WebTalkRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.WebTalkRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.WebTalkRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebTalkRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getInitialization();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      talk$api_pb.ConversationInitialization.serializeBinaryToWriter\n    );\n  }\n  f = message.getConfiguration();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      talk$api_pb.ConversationConfiguration.serializeBinaryToWriter\n    );\n  }\n  f = message.getMessage();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      talk$api_pb.ConversationUserMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getSignaling();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      proto.talk_api.ClientSignaling.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetadata();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      talk$api_pb.ConversationMetadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetric();\n  if (f != null) {\n    writer.writeMessage(\n      6,\n      f,\n      talk$api_pb.ConversationMetric.serializeBinaryToWriter\n    );\n  }\n  f = message.getDisconnection();\n  if (f != null) {\n    writer.writeMessage(\n      7,\n      f,\n      talk$api_pb.ConversationDisconnection.serializeBinaryToWriter\n    );\n  }\n  f = message.getToolcallresult();\n  if (f != null) {\n    writer.writeMessage(\n      8,\n      f,\n      talk$api_pb.ConversationToolCallResult.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional ConversationInitialization initialization = 1;\n * @return {?proto.talk_api.ConversationInitialization}\n */\nproto.talk_api.WebTalkRequest.prototype.getInitialization = function() {\n  return /** @type{?proto.talk_api.ConversationInitialization} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationInitialization, 1));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationInitialization|undefined} value\n * @return {!proto.talk_api.WebTalkRequest} returns this\n*/\nproto.talk_api.WebTalkRequest.prototype.setInitialization = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 1, proto.talk_api.WebTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkRequest} returns this\n */\nproto.talk_api.WebTalkRequest.prototype.clearInitialization = function() {\n  return this.setInitialization(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkRequest.prototype.hasInitialization = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional ConversationConfiguration configuration = 2;\n * @return {?proto.talk_api.ConversationConfiguration}\n */\nproto.talk_api.WebTalkRequest.prototype.getConfiguration = function() {\n  return /** @type{?proto.talk_api.ConversationConfiguration} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationConfiguration, 2));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationConfiguration|undefined} value\n * @return {!proto.talk_api.WebTalkRequest} returns this\n*/\nproto.talk_api.WebTalkRequest.prototype.setConfiguration = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 2, proto.talk_api.WebTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkRequest} returns this\n */\nproto.talk_api.WebTalkRequest.prototype.clearConfiguration = function() {\n  return this.setConfiguration(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkRequest.prototype.hasConfiguration = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional ConversationUserMessage message = 3;\n * @return {?proto.talk_api.ConversationUserMessage}\n */\nproto.talk_api.WebTalkRequest.prototype.getMessage = function() {\n  return /** @type{?proto.talk_api.ConversationUserMessage} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationUserMessage, 3));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationUserMessage|undefined} value\n * @return {!proto.talk_api.WebTalkRequest} returns this\n*/\nproto.talk_api.WebTalkRequest.prototype.setMessage = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 3, proto.talk_api.WebTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkRequest} returns this\n */\nproto.talk_api.WebTalkRequest.prototype.clearMessage = function() {\n  return this.setMessage(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkRequest.prototype.hasMessage = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional ClientSignaling signaling = 4;\n * @return {?proto.talk_api.ClientSignaling}\n */\nproto.talk_api.WebTalkRequest.prototype.getSignaling = function() {\n  return /** @type{?proto.talk_api.ClientSignaling} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ClientSignaling, 4));\n};\n\n\n/**\n * @param {?proto.talk_api.ClientSignaling|undefined} value\n * @return {!proto.talk_api.WebTalkRequest} returns this\n*/\nproto.talk_api.WebTalkRequest.prototype.setSignaling = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 4, proto.talk_api.WebTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkRequest} returns this\n */\nproto.talk_api.WebTalkRequest.prototype.clearSignaling = function() {\n  return this.setSignaling(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkRequest.prototype.hasSignaling = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional ConversationMetadata metadata = 5;\n * @return {?proto.talk_api.ConversationMetadata}\n */\nproto.talk_api.WebTalkRequest.prototype.getMetadata = function() {\n  return /** @type{?proto.talk_api.ConversationMetadata} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationMetadata, 5));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationMetadata|undefined} value\n * @return {!proto.talk_api.WebTalkRequest} returns this\n*/\nproto.talk_api.WebTalkRequest.prototype.setMetadata = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 5, proto.talk_api.WebTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkRequest} returns this\n */\nproto.talk_api.WebTalkRequest.prototype.clearMetadata = function() {\n  return this.setMetadata(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkRequest.prototype.hasMetadata = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional ConversationMetric metric = 6;\n * @return {?proto.talk_api.ConversationMetric}\n */\nproto.talk_api.WebTalkRequest.prototype.getMetric = function() {\n  return /** @type{?proto.talk_api.ConversationMetric} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationMetric, 6));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationMetric|undefined} value\n * @return {!proto.talk_api.WebTalkRequest} returns this\n*/\nproto.talk_api.WebTalkRequest.prototype.setMetric = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 6, proto.talk_api.WebTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkRequest} returns this\n */\nproto.talk_api.WebTalkRequest.prototype.clearMetric = function() {\n  return this.setMetric(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkRequest.prototype.hasMetric = function() {\n  return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional ConversationDisconnection disconnection = 7;\n * @return {?proto.talk_api.ConversationDisconnection}\n */\nproto.talk_api.WebTalkRequest.prototype.getDisconnection = function() {\n  return /** @type{?proto.talk_api.ConversationDisconnection} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationDisconnection, 7));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationDisconnection|undefined} value\n * @return {!proto.talk_api.WebTalkRequest} returns this\n*/\nproto.talk_api.WebTalkRequest.prototype.setDisconnection = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 7, proto.talk_api.WebTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkRequest} returns this\n */\nproto.talk_api.WebTalkRequest.prototype.clearDisconnection = function() {\n  return this.setDisconnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkRequest.prototype.hasDisconnection = function() {\n  return jspb.Message.getField(this, 7) != null;\n};\n\n\n/**\n * optional ConversationToolCallResult toolCallResult = 8;\n * @return {?proto.talk_api.ConversationToolCallResult}\n */\nproto.talk_api.WebTalkRequest.prototype.getToolcallresult = function() {\n  return /** @type{?proto.talk_api.ConversationToolCallResult} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationToolCallResult, 8));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationToolCallResult|undefined} value\n * @return {!proto.talk_api.WebTalkRequest} returns this\n*/\nproto.talk_api.WebTalkRequest.prototype.setToolcallresult = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 8, proto.talk_api.WebTalkRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkRequest} returns this\n */\nproto.talk_api.WebTalkRequest.prototype.clearToolcallresult = function() {\n  return this.setToolcallresult(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkRequest.prototype.hasToolcallresult = function() {\n  return jspb.Message.getField(this, 8) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.talk_api.WebTalkResponse.oneofGroups_ = [[8,9,10,11,12,13,14,15,17,19,20,21,22]];\n\n/**\n * @enum {number}\n */\nproto.talk_api.WebTalkResponse.DataCase = {\n  DATA_NOT_SET: 0,\n  INITIALIZATION: 8,\n  CONFIGURATION: 9,\n  INTERRUPTION: 10,\n  USER: 11,\n  ASSISTANT: 12,\n  TOOLCALL: 13,\n  TOOLCALLRESULT: 14,\n  ERROR: 15,\n  SIGNALING: 17,\n  METADATA: 19,\n  METRIC: 20,\n  DISCONNECTION: 21,\n  EVENT: 22\n};\n\n/**\n * @return {proto.talk_api.WebTalkResponse.DataCase}\n */\nproto.talk_api.WebTalkResponse.prototype.getDataCase = function() {\n  return /** @type {proto.talk_api.WebTalkResponse.DataCase} */(jspb.Message.computeOneofCase(this, proto.talk_api.WebTalkResponse.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.talk_api.WebTalkResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.talk_api.WebTalkResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.talk_api.WebTalkResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebTalkResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    initialization: (f = msg.getInitialization()) && talk$api_pb.ConversationInitialization.toObject(includeInstance, f),\n    configuration: (f = msg.getConfiguration()) && talk$api_pb.ConversationConfiguration.toObject(includeInstance, f),\n    interruption: (f = msg.getInterruption()) && talk$api_pb.ConversationInterruption.toObject(includeInstance, f),\n    user: (f = msg.getUser()) && talk$api_pb.ConversationUserMessage.toObject(includeInstance, f),\n    assistant: (f = msg.getAssistant()) && talk$api_pb.ConversationAssistantMessage.toObject(includeInstance, f),\n    toolcall: (f = msg.getToolcall()) && talk$api_pb.ConversationToolCall.toObject(includeInstance, f),\n    toolcallresult: (f = msg.getToolcallresult()) && talk$api_pb.ConversationToolCallResult.toObject(includeInstance, f),\n    error: (f = msg.getError()) && talk$api_pb.ConversationError.toObject(includeInstance, f),\n    signaling: (f = msg.getSignaling()) && proto.talk_api.ServerSignaling.toObject(includeInstance, f),\n    metadata: (f = msg.getMetadata()) && talk$api_pb.ConversationMetadata.toObject(includeInstance, f),\n    metric: (f = msg.getMetric()) && talk$api_pb.ConversationMetric.toObject(includeInstance, f),\n    disconnection: (f = msg.getDisconnection()) && talk$api_pb.ConversationDisconnection.toObject(includeInstance, f),\n    event: (f = msg.getEvent()) && talk$api_pb.ConversationEvent.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.talk_api.WebTalkResponse}\n */\nproto.talk_api.WebTalkResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.talk_api.WebTalkResponse;\n  return proto.talk_api.WebTalkResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.talk_api.WebTalkResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.talk_api.WebTalkResponse}\n */\nproto.talk_api.WebTalkResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 8:\n      var value = new talk$api_pb.ConversationInitialization;\n      reader.readMessage(value,talk$api_pb.ConversationInitialization.deserializeBinaryFromReader);\n      msg.setInitialization(value);\n      break;\n    case 9:\n      var value = new talk$api_pb.ConversationConfiguration;\n      reader.readMessage(value,talk$api_pb.ConversationConfiguration.deserializeBinaryFromReader);\n      msg.setConfiguration(value);\n      break;\n    case 10:\n      var value = new talk$api_pb.ConversationInterruption;\n      reader.readMessage(value,talk$api_pb.ConversationInterruption.deserializeBinaryFromReader);\n      msg.setInterruption(value);\n      break;\n    case 11:\n      var value = new talk$api_pb.ConversationUserMessage;\n      reader.readMessage(value,talk$api_pb.ConversationUserMessage.deserializeBinaryFromReader);\n      msg.setUser(value);\n      break;\n    case 12:\n      var value = new talk$api_pb.ConversationAssistantMessage;\n      reader.readMessage(value,talk$api_pb.ConversationAssistantMessage.deserializeBinaryFromReader);\n      msg.setAssistant(value);\n      break;\n    case 13:\n      var value = new talk$api_pb.ConversationToolCall;\n      reader.readMessage(value,talk$api_pb.ConversationToolCall.deserializeBinaryFromReader);\n      msg.setToolcall(value);\n      break;\n    case 14:\n      var value = new talk$api_pb.ConversationToolCallResult;\n      reader.readMessage(value,talk$api_pb.ConversationToolCallResult.deserializeBinaryFromReader);\n      msg.setToolcallresult(value);\n      break;\n    case 15:\n      var value = new talk$api_pb.ConversationError;\n      reader.readMessage(value,talk$api_pb.ConversationError.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 17:\n      var value = new proto.talk_api.ServerSignaling;\n      reader.readMessage(value,proto.talk_api.ServerSignaling.deserializeBinaryFromReader);\n      msg.setSignaling(value);\n      break;\n    case 19:\n      var value = new talk$api_pb.ConversationMetadata;\n      reader.readMessage(value,talk$api_pb.ConversationMetadata.deserializeBinaryFromReader);\n      msg.setMetadata(value);\n      break;\n    case 20:\n      var value = new talk$api_pb.ConversationMetric;\n      reader.readMessage(value,talk$api_pb.ConversationMetric.deserializeBinaryFromReader);\n      msg.setMetric(value);\n      break;\n    case 21:\n      var value = new talk$api_pb.ConversationDisconnection;\n      reader.readMessage(value,talk$api_pb.ConversationDisconnection.deserializeBinaryFromReader);\n      msg.setDisconnection(value);\n      break;\n    case 22:\n      var value = new talk$api_pb.ConversationEvent;\n      reader.readMessage(value,talk$api_pb.ConversationEvent.deserializeBinaryFromReader);\n      msg.setEvent(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.talk_api.WebTalkResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.talk_api.WebTalkResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.talk_api.WebTalkResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.talk_api.WebTalkResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getInitialization();\n  if (f != null) {\n    writer.writeMessage(\n      8,\n      f,\n      talk$api_pb.ConversationInitialization.serializeBinaryToWriter\n    );\n  }\n  f = message.getConfiguration();\n  if (f != null) {\n    writer.writeMessage(\n      9,\n      f,\n      talk$api_pb.ConversationConfiguration.serializeBinaryToWriter\n    );\n  }\n  f = message.getInterruption();\n  if (f != null) {\n    writer.writeMessage(\n      10,\n      f,\n      talk$api_pb.ConversationInterruption.serializeBinaryToWriter\n    );\n  }\n  f = message.getUser();\n  if (f != null) {\n    writer.writeMessage(\n      11,\n      f,\n      talk$api_pb.ConversationUserMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistant();\n  if (f != null) {\n    writer.writeMessage(\n      12,\n      f,\n      talk$api_pb.ConversationAssistantMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getToolcall();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      talk$api_pb.ConversationToolCall.serializeBinaryToWriter\n    );\n  }\n  f = message.getToolcallresult();\n  if (f != null) {\n    writer.writeMessage(\n      14,\n      f,\n      talk$api_pb.ConversationToolCallResult.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      15,\n      f,\n      talk$api_pb.ConversationError.serializeBinaryToWriter\n    );\n  }\n  f = message.getSignaling();\n  if (f != null) {\n    writer.writeMessage(\n      17,\n      f,\n      proto.talk_api.ServerSignaling.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetadata();\n  if (f != null) {\n    writer.writeMessage(\n      19,\n      f,\n      talk$api_pb.ConversationMetadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getMetric();\n  if (f != null) {\n    writer.writeMessage(\n      20,\n      f,\n      talk$api_pb.ConversationMetric.serializeBinaryToWriter\n    );\n  }\n  f = message.getDisconnection();\n  if (f != null) {\n    writer.writeMessage(\n      21,\n      f,\n      talk$api_pb.ConversationDisconnection.serializeBinaryToWriter\n    );\n  }\n  f = message.getEvent();\n  if (f != null) {\n    writer.writeMessage(\n      22,\n      f,\n      talk$api_pb.ConversationEvent.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.talk_api.WebTalkResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional ConversationInitialization initialization = 8;\n * @return {?proto.talk_api.ConversationInitialization}\n */\nproto.talk_api.WebTalkResponse.prototype.getInitialization = function() {\n  return /** @type{?proto.talk_api.ConversationInitialization} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationInitialization, 8));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationInitialization|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setInitialization = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 8, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearInitialization = function() {\n  return this.setInitialization(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasInitialization = function() {\n  return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional ConversationConfiguration configuration = 9;\n * @return {?proto.talk_api.ConversationConfiguration}\n */\nproto.talk_api.WebTalkResponse.prototype.getConfiguration = function() {\n  return /** @type{?proto.talk_api.ConversationConfiguration} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationConfiguration, 9));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationConfiguration|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setConfiguration = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 9, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearConfiguration = function() {\n  return this.setConfiguration(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasConfiguration = function() {\n  return jspb.Message.getField(this, 9) != null;\n};\n\n\n/**\n * optional ConversationInterruption interruption = 10;\n * @return {?proto.talk_api.ConversationInterruption}\n */\nproto.talk_api.WebTalkResponse.prototype.getInterruption = function() {\n  return /** @type{?proto.talk_api.ConversationInterruption} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationInterruption, 10));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationInterruption|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setInterruption = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 10, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearInterruption = function() {\n  return this.setInterruption(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasInterruption = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional ConversationUserMessage user = 11;\n * @return {?proto.talk_api.ConversationUserMessage}\n */\nproto.talk_api.WebTalkResponse.prototype.getUser = function() {\n  return /** @type{?proto.talk_api.ConversationUserMessage} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationUserMessage, 11));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationUserMessage|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setUser = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 11, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearUser = function() {\n  return this.setUser(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasUser = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional ConversationAssistantMessage assistant = 12;\n * @return {?proto.talk_api.ConversationAssistantMessage}\n */\nproto.talk_api.WebTalkResponse.prototype.getAssistant = function() {\n  return /** @type{?proto.talk_api.ConversationAssistantMessage} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationAssistantMessage, 12));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationAssistantMessage|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setAssistant = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 12, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearAssistant = function() {\n  return this.setAssistant(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasAssistant = function() {\n  return jspb.Message.getField(this, 12) != null;\n};\n\n\n/**\n * optional ConversationToolCall toolCall = 13;\n * @return {?proto.talk_api.ConversationToolCall}\n */\nproto.talk_api.WebTalkResponse.prototype.getToolcall = function() {\n  return /** @type{?proto.talk_api.ConversationToolCall} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationToolCall, 13));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationToolCall|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setToolcall = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 13, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearToolcall = function() {\n  return this.setToolcall(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasToolcall = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n/**\n * optional ConversationToolCallResult toolCallResult = 14;\n * @return {?proto.talk_api.ConversationToolCallResult}\n */\nproto.talk_api.WebTalkResponse.prototype.getToolcallresult = function() {\n  return /** @type{?proto.talk_api.ConversationToolCallResult} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationToolCallResult, 14));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationToolCallResult|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setToolcallresult = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 14, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearToolcallresult = function() {\n  return this.setToolcallresult(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasToolcallresult = function() {\n  return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * optional ConversationError error = 15;\n * @return {?proto.talk_api.ConversationError}\n */\nproto.talk_api.WebTalkResponse.prototype.getError = function() {\n  return /** @type{?proto.talk_api.ConversationError} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationError, 15));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationError|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setError = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 15, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 15) != null;\n};\n\n\n/**\n * optional ServerSignaling signaling = 17;\n * @return {?proto.talk_api.ServerSignaling}\n */\nproto.talk_api.WebTalkResponse.prototype.getSignaling = function() {\n  return /** @type{?proto.talk_api.ServerSignaling} */ (\n    jspb.Message.getWrapperField(this, proto.talk_api.ServerSignaling, 17));\n};\n\n\n/**\n * @param {?proto.talk_api.ServerSignaling|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setSignaling = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 17, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearSignaling = function() {\n  return this.setSignaling(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasSignaling = function() {\n  return jspb.Message.getField(this, 17) != null;\n};\n\n\n/**\n * optional ConversationMetadata metadata = 19;\n * @return {?proto.talk_api.ConversationMetadata}\n */\nproto.talk_api.WebTalkResponse.prototype.getMetadata = function() {\n  return /** @type{?proto.talk_api.ConversationMetadata} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationMetadata, 19));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationMetadata|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setMetadata = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 19, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearMetadata = function() {\n  return this.setMetadata(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasMetadata = function() {\n  return jspb.Message.getField(this, 19) != null;\n};\n\n\n/**\n * optional ConversationMetric metric = 20;\n * @return {?proto.talk_api.ConversationMetric}\n */\nproto.talk_api.WebTalkResponse.prototype.getMetric = function() {\n  return /** @type{?proto.talk_api.ConversationMetric} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationMetric, 20));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationMetric|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setMetric = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 20, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearMetric = function() {\n  return this.setMetric(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasMetric = function() {\n  return jspb.Message.getField(this, 20) != null;\n};\n\n\n/**\n * optional ConversationDisconnection disconnection = 21;\n * @return {?proto.talk_api.ConversationDisconnection}\n */\nproto.talk_api.WebTalkResponse.prototype.getDisconnection = function() {\n  return /** @type{?proto.talk_api.ConversationDisconnection} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationDisconnection, 21));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationDisconnection|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setDisconnection = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 21, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearDisconnection = function() {\n  return this.setDisconnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasDisconnection = function() {\n  return jspb.Message.getField(this, 21) != null;\n};\n\n\n/**\n * optional ConversationEvent event = 22;\n * @return {?proto.talk_api.ConversationEvent}\n */\nproto.talk_api.WebTalkResponse.prototype.getEvent = function() {\n  return /** @type{?proto.talk_api.ConversationEvent} */ (\n    jspb.Message.getWrapperField(this, talk$api_pb.ConversationEvent, 22));\n};\n\n\n/**\n * @param {?proto.talk_api.ConversationEvent|undefined} value\n * @return {!proto.talk_api.WebTalkResponse} returns this\n*/\nproto.talk_api.WebTalkResponse.prototype.setEvent = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 22, proto.talk_api.WebTalkResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.talk_api.WebTalkResponse} returns this\n */\nproto.talk_api.WebTalkResponse.prototype.clearEvent = function() {\n  return this.setEvent(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.talk_api.WebTalkResponse.prototype.hasEvent = function() {\n  return jspb.Message.getField(this, 22) != null;\n};\n\n\ngoog.object.extend(exports, proto.talk_api);\n","// source: assistant-deployment.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n *     field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() { return this || window || global || self || Function('return this')(); }).call(null);\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\nvar common_pb = require('./common_pb.js');\ngoog.object.extend(proto, common_pb);\ngoog.exportSymbol('proto.assistant_api.AssistantApiDeployment', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantDebuggerDeployment', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantPhoneDeployment', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantWebpluginDeployment', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantWhatsappDeployment', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantDeploymentRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantDeploymentRequest.DeploymentCase', null, global);\ngoog.exportSymbol('proto.assistant_api.DeploymentAudioProvider', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantApiDeploymentResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantDeploymentRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantPhoneDeploymentResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantApiDeploymentResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantDebuggerDeploymentResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantDeploymentRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantPhoneDeploymentResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantWebpluginDeploymentResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantWhatsappDeploymentResponse', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.DeploymentAudioProvider = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.DeploymentAudioProvider.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.DeploymentAudioProvider, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.DeploymentAudioProvider.displayName = 'proto.assistant_api.DeploymentAudioProvider';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantWebpluginDeployment = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.AssistantWebpluginDeployment.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.AssistantWebpluginDeployment, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantWebpluginDeployment.displayName = 'proto.assistant_api.AssistantWebpluginDeployment';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantPhoneDeployment = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.AssistantPhoneDeployment.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.AssistantPhoneDeployment, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantPhoneDeployment.displayName = 'proto.assistant_api.AssistantPhoneDeployment';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantWhatsappDeployment = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.AssistantWhatsappDeployment.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.AssistantWhatsappDeployment, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantWhatsappDeployment.displayName = 'proto.assistant_api.AssistantWhatsappDeployment';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantDebuggerDeployment = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantDebuggerDeployment, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantDebuggerDeployment.displayName = 'proto.assistant_api.AssistantDebuggerDeployment';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantApiDeployment = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantApiDeployment, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantApiDeployment.displayName = 'proto.assistant_api.AssistantApiDeployment';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantDeploymentRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.assistant_api.CreateAssistantDeploymentRequest.oneofGroups_);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantDeploymentRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantDeploymentRequest.displayName = 'proto.assistant_api.CreateAssistantDeploymentRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantApiDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantApiDeploymentResponse.displayName = 'proto.assistant_api.GetAssistantApiDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantPhoneDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantPhoneDeploymentResponse.displayName = 'proto.assistant_api.GetAssistantPhoneDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantWhatsappDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantWhatsappDeploymentResponse.displayName = 'proto.assistant_api.GetAssistantWhatsappDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantDebuggerDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantDebuggerDeploymentResponse.displayName = 'proto.assistant_api.GetAssistantDebuggerDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantWebpluginDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantWebpluginDeploymentResponse.displayName = 'proto.assistant_api.GetAssistantWebpluginDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantApiDeploymentResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantApiDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantApiDeploymentResponse.displayName = 'proto.assistant_api.GetAllAssistantApiDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantPhoneDeploymentResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantPhoneDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantPhoneDeploymentResponse.displayName = 'proto.assistant_api.GetAllAssistantPhoneDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.displayName = 'proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.displayName = 'proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.displayName = 'proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantDeploymentRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantDeploymentRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantDeploymentRequest.displayName = 'proto.assistant_api.GetAssistantDeploymentRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantDeploymentRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantDeploymentRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantDeploymentRequest.displayName = 'proto.assistant_api.GetAllAssistantDeploymentRequest';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.DeploymentAudioProvider.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.DeploymentAudioProvider.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.DeploymentAudioProvider} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeploymentAudioProvider.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    audioprovider: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    audiooptionsList: jspb.Message.toObjectList(msg.getAudiooptionsList(),\n    common_pb.Metadata.toObject, includeInstance),\n    status: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    audiotype: jspb.Message.getFieldWithDefault(msg, 6, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.DeploymentAudioProvider.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.DeploymentAudioProvider;\n  return proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.DeploymentAudioProvider} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAudioprovider(value);\n      break;\n    case 3:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addAudiooptions(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAudiotype(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.DeploymentAudioProvider} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAudioprovider();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getAudiooptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getAudiotype();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeploymentAudioProvider} returns this\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string audioProvider = 2;\n * @return {string}\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.getAudioprovider = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeploymentAudioProvider} returns this\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.setAudioprovider = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * repeated Metadata audioOptions = 3;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.getAudiooptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 3));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.DeploymentAudioProvider} returns this\n*/\nproto.assistant_api.DeploymentAudioProvider.prototype.setAudiooptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.addAudiooptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.DeploymentAudioProvider} returns this\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.clearAudiooptionsList = function() {\n  return this.setAudiooptionsList([]);\n};\n\n\n/**\n * optional string status = 5;\n * @return {string}\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeploymentAudioProvider} returns this\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional string audioType = 6;\n * @return {string}\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.getAudiotype = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeploymentAudioProvider} returns this\n */\nproto.assistant_api.DeploymentAudioProvider.prototype.setAudiotype = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.AssistantWebpluginDeployment.repeatedFields_ = [20];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantWebpluginDeployment.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantWebpluginDeployment} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantWebpluginDeployment.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 5, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    greeting: jspb.Message.getFieldWithDefault(msg, 10, \"\"),\n    mistake: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    inputaudio: (f = msg.getInputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    outputaudio: (f = msg.getOutputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    suggestionList: (f = jspb.Message.getRepeatedField(msg, 20)) == null ? undefined : f,\n    helpcenterenabled: jspb.Message.getBooleanFieldWithDefault(msg, 21, false),\n    productcatalogenabled: jspb.Message.getBooleanFieldWithDefault(msg, 22, false),\n    articlecatalogenabled: jspb.Message.getBooleanFieldWithDefault(msg, 23, false),\n    uploadfileenabled: jspb.Message.getBooleanFieldWithDefault(msg, 24, false),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 28, \"\"),\n    maxsessionduration: jspb.Message.getFieldWithDefault(msg, 29, \"0\"),\n    idealtimeout: jspb.Message.getFieldWithDefault(msg, 30, \"0\"),\n    idealtimeoutmessage: jspb.Message.getFieldWithDefault(msg, 31, \"\"),\n    idealtimeoutbackoff: jspb.Message.getFieldWithDefault(msg, 32, \"0\"),\n    greetinginterruptible: jspb.Message.getBooleanFieldWithDefault(msg, 33, false),\n    unclearinputtimeout: jspb.Message.getFloatingPointFieldWithDefault(msg, 34, 0.0),\n    unclearinputmessage: jspb.Message.getFieldWithDefault(msg, 35, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment}\n */\nproto.assistant_api.AssistantWebpluginDeployment.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantWebpluginDeployment;\n  return proto.assistant_api.AssistantWebpluginDeployment.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantWebpluginDeployment} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment}\n */\nproto.assistant_api.AssistantWebpluginDeployment.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setGreeting(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setMistake(value);\n      break;\n    case 13:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setInputaudio(value);\n      break;\n    case 14:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setOutputaudio(value);\n      break;\n    case 20:\n      var value = /** @type {string} */ (reader.readString());\n      msg.addSuggestion(value);\n      break;\n    case 21:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setHelpcenterenabled(value);\n      break;\n    case 22:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setProductcatalogenabled(value);\n      break;\n    case 23:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setArticlecatalogenabled(value);\n      break;\n    case 24:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setUploadfileenabled(value);\n      break;\n    case 26:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 27:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 28:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 29:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setMaxsessionduration(value);\n      break;\n    case 30:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeout(value);\n      break;\n    case 31:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setIdealtimeoutmessage(value);\n      break;\n    case 32:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeoutbackoff(value);\n      break;\n    case 33:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setGreetinginterruptible(value);\n      break;\n    case 34:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setUnclearinputtimeout(value);\n      break;\n    case 35:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUnclearinputmessage(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantWebpluginDeployment.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantWebpluginDeployment} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantWebpluginDeployment.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      5,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 10));\n  if (f != null) {\n    writer.writeString(\n      10,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 11));\n  if (f != null) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getInputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getOutputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      14,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getSuggestionList();\n  if (f.length > 0) {\n    writer.writeRepeatedString(\n      20,\n      f\n    );\n  }\n  f = message.getHelpcenterenabled();\n  if (f) {\n    writer.writeBool(\n      21,\n      f\n    );\n  }\n  f = message.getProductcatalogenabled();\n  if (f) {\n    writer.writeBool(\n      22,\n      f\n    );\n  }\n  f = message.getArticlecatalogenabled();\n  if (f) {\n    writer.writeBool(\n      23,\n      f\n    );\n  }\n  f = message.getUploadfileenabled();\n  if (f) {\n    writer.writeBool(\n      24,\n      f\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      26,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      27,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      28,\n      f\n    );\n  }\n  f = message.getMaxsessionduration();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      29,\n      f\n    );\n  }\n  f = message.getIdealtimeout();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      30,\n      f\n    );\n  }\n  f = message.getIdealtimeoutmessage();\n  if (f.length > 0) {\n    writer.writeString(\n      31,\n      f\n    );\n  }\n  f = message.getIdealtimeoutbackoff();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      32,\n      f\n    );\n  }\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 33));\n  if (f != null) {\n    writer.writeBool(\n      33,\n      f\n    );\n  }\n  f = /** @type {number} */ (jspb.Message.getField(message, 34));\n  if (f != null) {\n    writer.writeDouble(\n      34,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 35));\n  if (f != null) {\n    writer.writeString(\n      35,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 5, value);\n};\n\n\n/**\n * optional string name = 6;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional string greeting = 10;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getGreeting = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setGreeting = function(value) {\n  return jspb.Message.setField(this, 10, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearGreeting = function() {\n  return jspb.Message.setField(this, 10, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.hasGreeting = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional string mistake = 11;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getMistake = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setMistake = function(value) {\n  return jspb.Message.setField(this, 11, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearMistake = function() {\n  return jspb.Message.setField(this, 11, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.hasMistake = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider inputAudio = 13;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getInputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 13));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n*/\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setInputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 13, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearInputaudio = function() {\n  return this.setInputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.hasInputaudio = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider outputAudio = 14;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getOutputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 14));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n*/\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setOutputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 14, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearOutputaudio = function() {\n  return this.setOutputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.hasOutputaudio = function() {\n  return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * repeated string suggestion = 20;\n * @return {!Array<string>}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getSuggestionList = function() {\n  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 20));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setSuggestionList = function(value) {\n  return jspb.Message.setField(this, 20, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.addSuggestion = function(value, opt_index) {\n  return jspb.Message.addToRepeatedField(this, 20, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearSuggestionList = function() {\n  return this.setSuggestionList([]);\n};\n\n\n/**\n * optional bool helpCenterEnabled = 21;\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getHelpcenterenabled = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 21, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setHelpcenterenabled = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 21, value);\n};\n\n\n/**\n * optional bool productCatalogEnabled = 22;\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getProductcatalogenabled = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setProductcatalogenabled = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 22, value);\n};\n\n\n/**\n * optional bool articleCatalogEnabled = 23;\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getArticlecatalogenabled = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 23, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setArticlecatalogenabled = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 23, value);\n};\n\n\n/**\n * optional bool uploadFileEnabled = 24;\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getUploadfileenabled = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 24, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setUploadfileenabled = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 24, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 26;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 26));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n*/\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 27;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 27));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n*/\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 27, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 27) != null;\n};\n\n\n/**\n * optional string status = 28;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 28, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 28, value);\n};\n\n\n/**\n * optional uint64 maxSessionDuration = 29;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getMaxsessionduration = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 29, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setMaxsessionduration = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 29, value);\n};\n\n\n/**\n * optional uint64 idealTimeout = 30;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getIdealtimeout = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 30, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setIdealtimeout = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 30, value);\n};\n\n\n/**\n * optional string idealTimeoutMessage = 31;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getIdealtimeoutmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 31, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setIdealtimeoutmessage = function(value) {\n  return jspb.Message.setProto3StringField(this, 31, value);\n};\n\n\n/**\n * optional uint64 idealTimeoutBackoff = 32;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getIdealtimeoutbackoff = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 32, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setIdealtimeoutbackoff = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 32, value);\n};\n\n\n/**\n * optional bool greetingInterruptible = 33;\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getGreetinginterruptible = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 33, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setGreetinginterruptible = function(value) {\n  return jspb.Message.setField(this, 33, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearGreetinginterruptible = function() {\n  return jspb.Message.setField(this, 33, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.hasGreetinginterruptible = function() {\n  return jspb.Message.getField(this, 33) != null;\n};\n\n\n/**\n * optional double unclearInputTimeout = 34;\n * @return {number}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getUnclearinputtimeout = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 34, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setUnclearinputtimeout = function(value) {\n  return jspb.Message.setField(this, 34, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearUnclearinputtimeout = function() {\n  return jspb.Message.setField(this, 34, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.hasUnclearinputtimeout = function() {\n  return jspb.Message.getField(this, 34) != null;\n};\n\n\n/**\n * optional string unclearInputMessage = 35;\n * @return {string}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.getUnclearinputmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 35, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.setUnclearinputmessage = function(value) {\n  return jspb.Message.setField(this, 35, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWebpluginDeployment} returns this\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.clearUnclearinputmessage = function() {\n  return jspb.Message.setField(this, 35, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWebpluginDeployment.prototype.hasUnclearinputmessage = function() {\n  return jspb.Message.getField(this, 35) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.AssistantPhoneDeployment.repeatedFields_ = [17];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantPhoneDeployment.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantPhoneDeployment} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantPhoneDeployment.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 5, \"0\"),\n    greeting: jspb.Message.getFieldWithDefault(msg, 10, \"\"),\n    mistake: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    inputaudio: (f = msg.getInputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    outputaudio: (f = msg.getOutputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    phoneprovidername: jspb.Message.getFieldWithDefault(msg, 15, \"\"),\n    phoneoptionsList: jspb.Message.toObjectList(msg.getPhoneoptionsList(),\n    common_pb.Metadata.toObject, includeInstance),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 28, \"\"),\n    maxsessionduration: jspb.Message.getFieldWithDefault(msg, 29, \"0\"),\n    idealtimeout: jspb.Message.getFieldWithDefault(msg, 30, \"0\"),\n    idealtimeoutmessage: jspb.Message.getFieldWithDefault(msg, 31, \"\"),\n    idealtimeoutbackoff: jspb.Message.getFieldWithDefault(msg, 32, \"0\"),\n    greetinginterruptible: jspb.Message.getBooleanFieldWithDefault(msg, 33, false),\n    unclearinputtimeout: jspb.Message.getFloatingPointFieldWithDefault(msg, 34, 0.0),\n    unclearinputmessage: jspb.Message.getFieldWithDefault(msg, 35, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantPhoneDeployment}\n */\nproto.assistant_api.AssistantPhoneDeployment.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantPhoneDeployment;\n  return proto.assistant_api.AssistantPhoneDeployment.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantPhoneDeployment} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantPhoneDeployment}\n */\nproto.assistant_api.AssistantPhoneDeployment.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setGreeting(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setMistake(value);\n      break;\n    case 13:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setInputaudio(value);\n      break;\n    case 14:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setOutputaudio(value);\n      break;\n    case 15:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setPhoneprovidername(value);\n      break;\n    case 17:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addPhoneoptions(value);\n      break;\n    case 26:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 27:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 28:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 29:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setMaxsessionduration(value);\n      break;\n    case 30:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeout(value);\n      break;\n    case 31:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setIdealtimeoutmessage(value);\n      break;\n    case 32:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeoutbackoff(value);\n      break;\n    case 33:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setGreetinginterruptible(value);\n      break;\n    case 34:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setUnclearinputtimeout(value);\n      break;\n    case 35:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUnclearinputmessage(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantPhoneDeployment.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantPhoneDeployment} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantPhoneDeployment.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      5,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 10));\n  if (f != null) {\n    writer.writeString(\n      10,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 11));\n  if (f != null) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getInputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getOutputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      14,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getPhoneprovidername();\n  if (f.length > 0) {\n    writer.writeString(\n      15,\n      f\n    );\n  }\n  f = message.getPhoneoptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      17,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      26,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      27,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      28,\n      f\n    );\n  }\n  f = message.getMaxsessionduration();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      29,\n      f\n    );\n  }\n  f = message.getIdealtimeout();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      30,\n      f\n    );\n  }\n  f = message.getIdealtimeoutmessage();\n  if (f.length > 0) {\n    writer.writeString(\n      31,\n      f\n    );\n  }\n  f = message.getIdealtimeoutbackoff();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      32,\n      f\n    );\n  }\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 33));\n  if (f != null) {\n    writer.writeBool(\n      33,\n      f\n    );\n  }\n  f = /** @type {number} */ (jspb.Message.getField(message, 34));\n  if (f != null) {\n    writer.writeDouble(\n      34,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 35));\n  if (f != null) {\n    writer.writeString(\n      35,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 5, value);\n};\n\n\n/**\n * optional string greeting = 10;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getGreeting = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setGreeting = function(value) {\n  return jspb.Message.setField(this, 10, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearGreeting = function() {\n  return jspb.Message.setField(this, 10, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.hasGreeting = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional string mistake = 11;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getMistake = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setMistake = function(value) {\n  return jspb.Message.setField(this, 11, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearMistake = function() {\n  return jspb.Message.setField(this, 11, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.hasMistake = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider inputAudio = 13;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getInputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 13));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n*/\nproto.assistant_api.AssistantPhoneDeployment.prototype.setInputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 13, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearInputaudio = function() {\n  return this.setInputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.hasInputaudio = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider outputAudio = 14;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getOutputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 14));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n*/\nproto.assistant_api.AssistantPhoneDeployment.prototype.setOutputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 14, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearOutputaudio = function() {\n  return this.setOutputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.hasOutputaudio = function() {\n  return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * optional string phoneProviderName = 15;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getPhoneprovidername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setPhoneprovidername = function(value) {\n  return jspb.Message.setProto3StringField(this, 15, value);\n};\n\n\n/**\n * repeated Metadata phoneOptions = 17;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getPhoneoptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 17));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n*/\nproto.assistant_api.AssistantPhoneDeployment.prototype.setPhoneoptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 17, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.addPhoneoptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 17, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearPhoneoptionsList = function() {\n  return this.setPhoneoptionsList([]);\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 26;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 26));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n*/\nproto.assistant_api.AssistantPhoneDeployment.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 27;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 27));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n*/\nproto.assistant_api.AssistantPhoneDeployment.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 27, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 27) != null;\n};\n\n\n/**\n * optional string status = 28;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 28, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 28, value);\n};\n\n\n/**\n * optional uint64 maxSessionDuration = 29;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getMaxsessionduration = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 29, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setMaxsessionduration = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 29, value);\n};\n\n\n/**\n * optional uint64 idealTimeout = 30;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getIdealtimeout = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 30, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setIdealtimeout = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 30, value);\n};\n\n\n/**\n * optional string idealTimeoutMessage = 31;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getIdealtimeoutmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 31, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setIdealtimeoutmessage = function(value) {\n  return jspb.Message.setProto3StringField(this, 31, value);\n};\n\n\n/**\n * optional uint64 idealTimeoutBackoff = 32;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getIdealtimeoutbackoff = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 32, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setIdealtimeoutbackoff = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 32, value);\n};\n\n\n/**\n * optional bool greetingInterruptible = 33;\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getGreetinginterruptible = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 33, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setGreetinginterruptible = function(value) {\n  return jspb.Message.setField(this, 33, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearGreetinginterruptible = function() {\n  return jspb.Message.setField(this, 33, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.hasGreetinginterruptible = function() {\n  return jspb.Message.getField(this, 33) != null;\n};\n\n\n/**\n * optional double unclearInputTimeout = 34;\n * @return {number}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getUnclearinputtimeout = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 34, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setUnclearinputtimeout = function(value) {\n  return jspb.Message.setField(this, 34, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearUnclearinputtimeout = function() {\n  return jspb.Message.setField(this, 34, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.hasUnclearinputtimeout = function() {\n  return jspb.Message.getField(this, 34) != null;\n};\n\n\n/**\n * optional string unclearInputMessage = 35;\n * @return {string}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.getUnclearinputmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 35, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.setUnclearinputmessage = function(value) {\n  return jspb.Message.setField(this, 35, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantPhoneDeployment} returns this\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.clearUnclearinputmessage = function() {\n  return jspb.Message.setField(this, 35, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantPhoneDeployment.prototype.hasUnclearinputmessage = function() {\n  return jspb.Message.getField(this, 35) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.AssistantWhatsappDeployment.repeatedFields_ = [17];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantWhatsappDeployment.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantWhatsappDeployment} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantWhatsappDeployment.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 5, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    greeting: jspb.Message.getFieldWithDefault(msg, 10, \"\"),\n    mistake: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    inputaudio: (f = msg.getInputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    outputaudio: (f = msg.getOutputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    whatsappprovidername: jspb.Message.getFieldWithDefault(msg, 15, \"\"),\n    whatsappoptionsList: jspb.Message.toObjectList(msg.getWhatsappoptionsList(),\n    common_pb.Metadata.toObject, includeInstance),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 28, \"\"),\n    maxsessionduration: jspb.Message.getFieldWithDefault(msg, 29, \"0\"),\n    idealtimeout: jspb.Message.getFieldWithDefault(msg, 30, \"0\"),\n    idealtimeoutmessage: jspb.Message.getFieldWithDefault(msg, 31, \"\"),\n    idealtimeoutbackoff: jspb.Message.getFieldWithDefault(msg, 32, \"0\"),\n    greetinginterruptible: jspb.Message.getBooleanFieldWithDefault(msg, 33, false),\n    unclearinputtimeout: jspb.Message.getFloatingPointFieldWithDefault(msg, 34, 0.0),\n    unclearinputmessage: jspb.Message.getFieldWithDefault(msg, 35, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment}\n */\nproto.assistant_api.AssistantWhatsappDeployment.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantWhatsappDeployment;\n  return proto.assistant_api.AssistantWhatsappDeployment.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantWhatsappDeployment} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment}\n */\nproto.assistant_api.AssistantWhatsappDeployment.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setGreeting(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setMistake(value);\n      break;\n    case 13:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setInputaudio(value);\n      break;\n    case 14:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setOutputaudio(value);\n      break;\n    case 15:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setWhatsappprovidername(value);\n      break;\n    case 17:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addWhatsappoptions(value);\n      break;\n    case 26:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 27:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 28:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 29:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setMaxsessionduration(value);\n      break;\n    case 30:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeout(value);\n      break;\n    case 31:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setIdealtimeoutmessage(value);\n      break;\n    case 32:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeoutbackoff(value);\n      break;\n    case 33:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setGreetinginterruptible(value);\n      break;\n    case 34:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setUnclearinputtimeout(value);\n      break;\n    case 35:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUnclearinputmessage(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantWhatsappDeployment.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantWhatsappDeployment} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantWhatsappDeployment.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      5,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 10));\n  if (f != null) {\n    writer.writeString(\n      10,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 11));\n  if (f != null) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getInputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getOutputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      14,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getWhatsappprovidername();\n  if (f.length > 0) {\n    writer.writeString(\n      15,\n      f\n    );\n  }\n  f = message.getWhatsappoptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      17,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      26,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      27,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      28,\n      f\n    );\n  }\n  f = message.getMaxsessionduration();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      29,\n      f\n    );\n  }\n  f = message.getIdealtimeout();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      30,\n      f\n    );\n  }\n  f = message.getIdealtimeoutmessage();\n  if (f.length > 0) {\n    writer.writeString(\n      31,\n      f\n    );\n  }\n  f = message.getIdealtimeoutbackoff();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      32,\n      f\n    );\n  }\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 33));\n  if (f != null) {\n    writer.writeBool(\n      33,\n      f\n    );\n  }\n  f = /** @type {number} */ (jspb.Message.getField(message, 34));\n  if (f != null) {\n    writer.writeDouble(\n      34,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 35));\n  if (f != null) {\n    writer.writeString(\n      35,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 5, value);\n};\n\n\n/**\n * optional string name = 6;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional string greeting = 10;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getGreeting = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setGreeting = function(value) {\n  return jspb.Message.setField(this, 10, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearGreeting = function() {\n  return jspb.Message.setField(this, 10, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.hasGreeting = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional string mistake = 11;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getMistake = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setMistake = function(value) {\n  return jspb.Message.setField(this, 11, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearMistake = function() {\n  return jspb.Message.setField(this, 11, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.hasMistake = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider inputAudio = 13;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getInputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 13));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n*/\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setInputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 13, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearInputaudio = function() {\n  return this.setInputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.hasInputaudio = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider outputAudio = 14;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getOutputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 14));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n*/\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setOutputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 14, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearOutputaudio = function() {\n  return this.setOutputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.hasOutputaudio = function() {\n  return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * optional string whatsappProviderName = 15;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getWhatsappprovidername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setWhatsappprovidername = function(value) {\n  return jspb.Message.setProto3StringField(this, 15, value);\n};\n\n\n/**\n * repeated Metadata whatsappOptions = 17;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getWhatsappoptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 17));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n*/\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setWhatsappoptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 17, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.addWhatsappoptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 17, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearWhatsappoptionsList = function() {\n  return this.setWhatsappoptionsList([]);\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 26;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 26));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n*/\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 27;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 27));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n*/\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 27, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 27) != null;\n};\n\n\n/**\n * optional string status = 28;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 28, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 28, value);\n};\n\n\n/**\n * optional uint64 maxSessionDuration = 29;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getMaxsessionduration = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 29, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setMaxsessionduration = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 29, value);\n};\n\n\n/**\n * optional uint64 idealTimeout = 30;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getIdealtimeout = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 30, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setIdealtimeout = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 30, value);\n};\n\n\n/**\n * optional string idealTimeoutMessage = 31;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getIdealtimeoutmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 31, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setIdealtimeoutmessage = function(value) {\n  return jspb.Message.setProto3StringField(this, 31, value);\n};\n\n\n/**\n * optional uint64 idealTimeoutBackoff = 32;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getIdealtimeoutbackoff = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 32, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setIdealtimeoutbackoff = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 32, value);\n};\n\n\n/**\n * optional bool greetingInterruptible = 33;\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getGreetinginterruptible = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 33, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setGreetinginterruptible = function(value) {\n  return jspb.Message.setField(this, 33, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearGreetinginterruptible = function() {\n  return jspb.Message.setField(this, 33, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.hasGreetinginterruptible = function() {\n  return jspb.Message.getField(this, 33) != null;\n};\n\n\n/**\n * optional double unclearInputTimeout = 34;\n * @return {number}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getUnclearinputtimeout = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 34, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setUnclearinputtimeout = function(value) {\n  return jspb.Message.setField(this, 34, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearUnclearinputtimeout = function() {\n  return jspb.Message.setField(this, 34, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.hasUnclearinputtimeout = function() {\n  return jspb.Message.getField(this, 34) != null;\n};\n\n\n/**\n * optional string unclearInputMessage = 35;\n * @return {string}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.getUnclearinputmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 35, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.setUnclearinputmessage = function(value) {\n  return jspb.Message.setField(this, 35, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantWhatsappDeployment} returns this\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.clearUnclearinputmessage = function() {\n  return jspb.Message.setField(this, 35, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantWhatsappDeployment.prototype.hasUnclearinputmessage = function() {\n  return jspb.Message.getField(this, 35) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantDebuggerDeployment.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantDebuggerDeployment} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDebuggerDeployment.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 5, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    greeting: jspb.Message.getFieldWithDefault(msg, 10, \"\"),\n    mistake: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    inputaudio: (f = msg.getInputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    outputaudio: (f = msg.getOutputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 28, \"\"),\n    maxsessionduration: jspb.Message.getFieldWithDefault(msg, 29, \"0\"),\n    idealtimeout: jspb.Message.getFieldWithDefault(msg, 30, \"0\"),\n    idealtimeoutmessage: jspb.Message.getFieldWithDefault(msg, 31, \"\"),\n    idealtimeoutbackoff: jspb.Message.getFieldWithDefault(msg, 32, \"0\"),\n    greetinginterruptible: jspb.Message.getBooleanFieldWithDefault(msg, 33, false),\n    unclearinputtimeout: jspb.Message.getFloatingPointFieldWithDefault(msg, 34, 0.0),\n    unclearinputmessage: jspb.Message.getFieldWithDefault(msg, 35, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment}\n */\nproto.assistant_api.AssistantDebuggerDeployment.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantDebuggerDeployment;\n  return proto.assistant_api.AssistantDebuggerDeployment.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantDebuggerDeployment} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment}\n */\nproto.assistant_api.AssistantDebuggerDeployment.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setGreeting(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setMistake(value);\n      break;\n    case 13:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setInputaudio(value);\n      break;\n    case 14:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setOutputaudio(value);\n      break;\n    case 26:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 27:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 28:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 29:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setMaxsessionduration(value);\n      break;\n    case 30:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeout(value);\n      break;\n    case 31:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setIdealtimeoutmessage(value);\n      break;\n    case 32:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeoutbackoff(value);\n      break;\n    case 33:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setGreetinginterruptible(value);\n      break;\n    case 34:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setUnclearinputtimeout(value);\n      break;\n    case 35:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUnclearinputmessage(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantDebuggerDeployment.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantDebuggerDeployment} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDebuggerDeployment.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      5,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 10));\n  if (f != null) {\n    writer.writeString(\n      10,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 11));\n  if (f != null) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getInputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getOutputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      14,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      26,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      27,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      28,\n      f\n    );\n  }\n  f = message.getMaxsessionduration();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      29,\n      f\n    );\n  }\n  f = message.getIdealtimeout();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      30,\n      f\n    );\n  }\n  f = message.getIdealtimeoutmessage();\n  if (f.length > 0) {\n    writer.writeString(\n      31,\n      f\n    );\n  }\n  f = message.getIdealtimeoutbackoff();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      32,\n      f\n    );\n  }\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 33));\n  if (f != null) {\n    writer.writeBool(\n      33,\n      f\n    );\n  }\n  f = /** @type {number} */ (jspb.Message.getField(message, 34));\n  if (f != null) {\n    writer.writeDouble(\n      34,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 35));\n  if (f != null) {\n    writer.writeString(\n      35,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 5, value);\n};\n\n\n/**\n * optional string name = 6;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional string greeting = 10;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getGreeting = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setGreeting = function(value) {\n  return jspb.Message.setField(this, 10, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.clearGreeting = function() {\n  return jspb.Message.setField(this, 10, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.hasGreeting = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional string mistake = 11;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getMistake = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setMistake = function(value) {\n  return jspb.Message.setField(this, 11, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.clearMistake = function() {\n  return jspb.Message.setField(this, 11, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.hasMistake = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider inputAudio = 13;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getInputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 13));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n*/\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setInputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 13, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.clearInputaudio = function() {\n  return this.setInputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.hasInputaudio = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider outputAudio = 14;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getOutputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 14));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n*/\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setOutputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 14, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.clearOutputaudio = function() {\n  return this.setOutputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.hasOutputaudio = function() {\n  return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 26;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 26));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n*/\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 27;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 27));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n*/\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 27, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 27) != null;\n};\n\n\n/**\n * optional string status = 28;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 28, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 28, value);\n};\n\n\n/**\n * optional uint64 maxSessionDuration = 29;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getMaxsessionduration = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 29, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setMaxsessionduration = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 29, value);\n};\n\n\n/**\n * optional uint64 idealTimeout = 30;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getIdealtimeout = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 30, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setIdealtimeout = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 30, value);\n};\n\n\n/**\n * optional string idealTimeoutMessage = 31;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getIdealtimeoutmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 31, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setIdealtimeoutmessage = function(value) {\n  return jspb.Message.setProto3StringField(this, 31, value);\n};\n\n\n/**\n * optional uint64 idealTimeoutBackoff = 32;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getIdealtimeoutbackoff = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 32, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setIdealtimeoutbackoff = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 32, value);\n};\n\n\n/**\n * optional bool greetingInterruptible = 33;\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getGreetinginterruptible = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 33, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setGreetinginterruptible = function(value) {\n  return jspb.Message.setField(this, 33, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.clearGreetinginterruptible = function() {\n  return jspb.Message.setField(this, 33, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.hasGreetinginterruptible = function() {\n  return jspb.Message.getField(this, 33) != null;\n};\n\n\n/**\n * optional double unclearInputTimeout = 34;\n * @return {number}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getUnclearinputtimeout = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 34, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setUnclearinputtimeout = function(value) {\n  return jspb.Message.setField(this, 34, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.clearUnclearinputtimeout = function() {\n  return jspb.Message.setField(this, 34, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.hasUnclearinputtimeout = function() {\n  return jspb.Message.getField(this, 34) != null;\n};\n\n\n/**\n * optional string unclearInputMessage = 35;\n * @return {string}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.getUnclearinputmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 35, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.setUnclearinputmessage = function(value) {\n  return jspb.Message.setField(this, 35, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantDebuggerDeployment} returns this\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.clearUnclearinputmessage = function() {\n  return jspb.Message.setField(this, 35, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDebuggerDeployment.prototype.hasUnclearinputmessage = function() {\n  return jspb.Message.getField(this, 35) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantApiDeployment.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantApiDeployment} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantApiDeployment.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 5, \"0\"),\n    greeting: jspb.Message.getFieldWithDefault(msg, 10, \"\"),\n    mistake: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    inputaudio: (f = msg.getInputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    outputaudio: (f = msg.getOutputaudio()) && proto.assistant_api.DeploymentAudioProvider.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 28, \"\"),\n    maxsessionduration: jspb.Message.getFieldWithDefault(msg, 29, \"0\"),\n    idealtimeout: jspb.Message.getFieldWithDefault(msg, 30, \"0\"),\n    idealtimeoutmessage: jspb.Message.getFieldWithDefault(msg, 31, \"\"),\n    idealtimeoutbackoff: jspb.Message.getFieldWithDefault(msg, 32, \"0\"),\n    greetinginterruptible: jspb.Message.getBooleanFieldWithDefault(msg, 33, false),\n    unclearinputtimeout: jspb.Message.getFloatingPointFieldWithDefault(msg, 34, 0.0),\n    unclearinputmessage: jspb.Message.getFieldWithDefault(msg, 35, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantApiDeployment}\n */\nproto.assistant_api.AssistantApiDeployment.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantApiDeployment;\n  return proto.assistant_api.AssistantApiDeployment.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantApiDeployment} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantApiDeployment}\n */\nproto.assistant_api.AssistantApiDeployment.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setGreeting(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setMistake(value);\n      break;\n    case 13:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setInputaudio(value);\n      break;\n    case 14:\n      var value = new proto.assistant_api.DeploymentAudioProvider;\n      reader.readMessage(value,proto.assistant_api.DeploymentAudioProvider.deserializeBinaryFromReader);\n      msg.setOutputaudio(value);\n      break;\n    case 26:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 27:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 28:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 29:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setMaxsessionduration(value);\n      break;\n    case 30:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeout(value);\n      break;\n    case 31:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setIdealtimeoutmessage(value);\n      break;\n    case 32:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setIdealtimeoutbackoff(value);\n      break;\n    case 33:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setGreetinginterruptible(value);\n      break;\n    case 34:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setUnclearinputtimeout(value);\n      break;\n    case 35:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUnclearinputmessage(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantApiDeployment.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantApiDeployment} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantApiDeployment.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      5,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 10));\n  if (f != null) {\n    writer.writeString(\n      10,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 11));\n  if (f != null) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getInputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getOutputaudio();\n  if (f != null) {\n    writer.writeMessage(\n      14,\n      f,\n      proto.assistant_api.DeploymentAudioProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      26,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      27,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      28,\n      f\n    );\n  }\n  f = message.getMaxsessionduration();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      29,\n      f\n    );\n  }\n  f = message.getIdealtimeout();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      30,\n      f\n    );\n  }\n  f = message.getIdealtimeoutmessage();\n  if (f.length > 0) {\n    writer.writeString(\n      31,\n      f\n    );\n  }\n  f = message.getIdealtimeoutbackoff();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      32,\n      f\n    );\n  }\n  f = /** @type {boolean} */ (jspb.Message.getField(message, 33));\n  if (f != null) {\n    writer.writeBool(\n      33,\n      f\n    );\n  }\n  f = /** @type {number} */ (jspb.Message.getField(message, 34));\n  if (f != null) {\n    writer.writeDouble(\n      34,\n      f\n    );\n  }\n  f = /** @type {string} */ (jspb.Message.getField(message, 35));\n  if (f != null) {\n    writer.writeString(\n      35,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 5, value);\n};\n\n\n/**\n * optional string greeting = 10;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getGreeting = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setGreeting = function(value) {\n  return jspb.Message.setField(this, 10, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.clearGreeting = function() {\n  return jspb.Message.setField(this, 10, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.hasGreeting = function() {\n  return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional string mistake = 11;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getMistake = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setMistake = function(value) {\n  return jspb.Message.setField(this, 11, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.clearMistake = function() {\n  return jspb.Message.setField(this, 11, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.hasMistake = function() {\n  return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider inputAudio = 13;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getInputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 13));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n*/\nproto.assistant_api.AssistantApiDeployment.prototype.setInputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 13, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.clearInputaudio = function() {\n  return this.setInputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.hasInputaudio = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n/**\n * optional DeploymentAudioProvider outputAudio = 14;\n * @return {?proto.assistant_api.DeploymentAudioProvider}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getOutputaudio = function() {\n  return /** @type{?proto.assistant_api.DeploymentAudioProvider} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.DeploymentAudioProvider, 14));\n};\n\n\n/**\n * @param {?proto.assistant_api.DeploymentAudioProvider|undefined} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n*/\nproto.assistant_api.AssistantApiDeployment.prototype.setOutputaudio = function(value) {\n  return jspb.Message.setWrapperField(this, 14, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.clearOutputaudio = function() {\n  return this.setOutputaudio(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.hasOutputaudio = function() {\n  return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 26;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 26));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n*/\nproto.assistant_api.AssistantApiDeployment.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 27;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 27));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n*/\nproto.assistant_api.AssistantApiDeployment.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 27, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 27) != null;\n};\n\n\n/**\n * optional string status = 28;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 28, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 28, value);\n};\n\n\n/**\n * optional uint64 maxSessionDuration = 29;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getMaxsessionduration = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 29, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setMaxsessionduration = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 29, value);\n};\n\n\n/**\n * optional uint64 idealTimeout = 30;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getIdealtimeout = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 30, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setIdealtimeout = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 30, value);\n};\n\n\n/**\n * optional string idealTimeoutMessage = 31;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getIdealtimeoutmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 31, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setIdealtimeoutmessage = function(value) {\n  return jspb.Message.setProto3StringField(this, 31, value);\n};\n\n\n/**\n * optional uint64 idealTimeoutBackoff = 32;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getIdealtimeoutbackoff = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 32, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setIdealtimeoutbackoff = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 32, value);\n};\n\n\n/**\n * optional bool greetingInterruptible = 33;\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getGreetinginterruptible = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 33, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setGreetinginterruptible = function(value) {\n  return jspb.Message.setField(this, 33, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.clearGreetinginterruptible = function() {\n  return jspb.Message.setField(this, 33, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.hasGreetinginterruptible = function() {\n  return jspb.Message.getField(this, 33) != null;\n};\n\n\n/**\n * optional double unclearInputTimeout = 34;\n * @return {number}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getUnclearinputtimeout = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 34, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setUnclearinputtimeout = function(value) {\n  return jspb.Message.setField(this, 34, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.clearUnclearinputtimeout = function() {\n  return jspb.Message.setField(this, 34, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.hasUnclearinputtimeout = function() {\n  return jspb.Message.getField(this, 34) != null;\n};\n\n\n/**\n * optional string unclearInputMessage = 35;\n * @return {string}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.getUnclearinputmessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 35, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.setUnclearinputmessage = function(value) {\n  return jspb.Message.setField(this, 35, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.assistant_api.AssistantApiDeployment} returns this\n */\nproto.assistant_api.AssistantApiDeployment.prototype.clearUnclearinputmessage = function() {\n  return jspb.Message.setField(this, 35, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantApiDeployment.prototype.hasUnclearinputmessage = function() {\n  return jspb.Message.getField(this, 35) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.oneofGroups_ = [[1,2,3,4,5]];\n\n/**\n * @enum {number}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.DeploymentCase = {\n  DEPLOYMENT_NOT_SET: 0,\n  API: 1,\n  DEBUGGER: 2,\n  WHATSAPP: 3,\n  PHONE: 4,\n  PLUGIN: 5\n};\n\n/**\n * @return {proto.assistant_api.CreateAssistantDeploymentRequest.DeploymentCase}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.getDeploymentCase = function() {\n  return /** @type {proto.assistant_api.CreateAssistantDeploymentRequest.DeploymentCase} */(jspb.Message.computeOneofCase(this, proto.assistant_api.CreateAssistantDeploymentRequest.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantDeploymentRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantDeploymentRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    api: (f = msg.getApi()) && proto.assistant_api.AssistantApiDeployment.toObject(includeInstance, f),\n    pb_debugger: (f = msg.getDebugger()) && proto.assistant_api.AssistantDebuggerDeployment.toObject(includeInstance, f),\n    whatsapp: (f = msg.getWhatsapp()) && proto.assistant_api.AssistantWhatsappDeployment.toObject(includeInstance, f),\n    phone: (f = msg.getPhone()) && proto.assistant_api.AssistantPhoneDeployment.toObject(includeInstance, f),\n    plugin: (f = msg.getPlugin()) && proto.assistant_api.AssistantWebpluginDeployment.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantDeploymentRequest;\n  return proto.assistant_api.CreateAssistantDeploymentRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantDeploymentRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new proto.assistant_api.AssistantApiDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantApiDeployment.deserializeBinaryFromReader);\n      msg.setApi(value);\n      break;\n    case 2:\n      var value = new proto.assistant_api.AssistantDebuggerDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantDebuggerDeployment.deserializeBinaryFromReader);\n      msg.setDebugger(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantWhatsappDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantWhatsappDeployment.deserializeBinaryFromReader);\n      msg.setWhatsapp(value);\n      break;\n    case 4:\n      var value = new proto.assistant_api.AssistantPhoneDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantPhoneDeployment.deserializeBinaryFromReader);\n      msg.setPhone(value);\n      break;\n    case 5:\n      var value = new proto.assistant_api.AssistantWebpluginDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantWebpluginDeployment.deserializeBinaryFromReader);\n      msg.setPlugin(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantDeploymentRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantDeploymentRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getApi();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      proto.assistant_api.AssistantApiDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getDebugger();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      proto.assistant_api.AssistantDebuggerDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getWhatsapp();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantWhatsappDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getPhone();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      proto.assistant_api.AssistantPhoneDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getPlugin();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      proto.assistant_api.AssistantWebpluginDeployment.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional AssistantApiDeployment api = 1;\n * @return {?proto.assistant_api.AssistantApiDeployment}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.getApi = function() {\n  return /** @type{?proto.assistant_api.AssistantApiDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantApiDeployment, 1));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantApiDeployment|undefined} value\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n*/\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.setApi = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 1, proto.assistant_api.CreateAssistantDeploymentRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.clearApi = function() {\n  return this.setApi(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.hasApi = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional AssistantDebuggerDeployment debugger = 2;\n * @return {?proto.assistant_api.AssistantDebuggerDeployment}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.getDebugger = function() {\n  return /** @type{?proto.assistant_api.AssistantDebuggerDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantDebuggerDeployment, 2));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantDebuggerDeployment|undefined} value\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n*/\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.setDebugger = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 2, proto.assistant_api.CreateAssistantDeploymentRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.clearDebugger = function() {\n  return this.setDebugger(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.hasDebugger = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional AssistantWhatsappDeployment whatsapp = 3;\n * @return {?proto.assistant_api.AssistantWhatsappDeployment}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.getWhatsapp = function() {\n  return /** @type{?proto.assistant_api.AssistantWhatsappDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantWhatsappDeployment, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantWhatsappDeployment|undefined} value\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n*/\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.setWhatsapp = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 3, proto.assistant_api.CreateAssistantDeploymentRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.clearWhatsapp = function() {\n  return this.setWhatsapp(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.hasWhatsapp = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional AssistantPhoneDeployment phone = 4;\n * @return {?proto.assistant_api.AssistantPhoneDeployment}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.getPhone = function() {\n  return /** @type{?proto.assistant_api.AssistantPhoneDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantPhoneDeployment, 4));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantPhoneDeployment|undefined} value\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n*/\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.setPhone = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 4, proto.assistant_api.CreateAssistantDeploymentRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.clearPhone = function() {\n  return this.setPhone(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.hasPhone = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional AssistantWebpluginDeployment plugin = 5;\n * @return {?proto.assistant_api.AssistantWebpluginDeployment}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.getPlugin = function() {\n  return /** @type{?proto.assistant_api.AssistantWebpluginDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantWebpluginDeployment, 5));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantWebpluginDeployment|undefined} value\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n*/\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.setPlugin = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 5, proto.assistant_api.CreateAssistantDeploymentRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantDeploymentRequest} returns this\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.clearPlugin = function() {\n  return this.setPlugin(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantDeploymentRequest.prototype.hasPlugin = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantApiDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantApiDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantApiDeployment.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantApiDeploymentResponse}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantApiDeploymentResponse;\n  return proto.assistant_api.GetAssistantApiDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantApiDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantApiDeploymentResponse}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantApiDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantApiDeployment.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantApiDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantApiDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantApiDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantApiDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantApiDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantApiDeployment data = 3;\n * @return {?proto.assistant_api.AssistantApiDeployment}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantApiDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantApiDeployment, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantApiDeployment|undefined} value\n * @return {!proto.assistant_api.GetAssistantApiDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantApiDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantApiDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantApiDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantApiDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantPhoneDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantPhoneDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantPhoneDeployment.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantPhoneDeploymentResponse}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantPhoneDeploymentResponse;\n  return proto.assistant_api.GetAssistantPhoneDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantPhoneDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantPhoneDeploymentResponse}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantPhoneDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantPhoneDeployment.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantPhoneDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantPhoneDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantPhoneDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantPhoneDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantPhoneDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantPhoneDeployment data = 3;\n * @return {?proto.assistant_api.AssistantPhoneDeployment}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantPhoneDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantPhoneDeployment, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantPhoneDeployment|undefined} value\n * @return {!proto.assistant_api.GetAssistantPhoneDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantPhoneDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantPhoneDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantPhoneDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantPhoneDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantWhatsappDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantWhatsappDeployment.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantWhatsappDeploymentResponse;\n  return proto.assistant_api.GetAssistantWhatsappDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantWhatsappDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantWhatsappDeployment.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantWhatsappDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantWhatsappDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantWhatsappDeployment data = 3;\n * @return {?proto.assistant_api.AssistantWhatsappDeployment}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantWhatsappDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantWhatsappDeployment, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantWhatsappDeployment|undefined} value\n * @return {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantWhatsappDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantWhatsappDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantDebuggerDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantDebuggerDeployment.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantDebuggerDeploymentResponse;\n  return proto.assistant_api.GetAssistantDebuggerDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantDebuggerDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantDebuggerDeployment.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantDebuggerDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantDebuggerDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantDebuggerDeployment data = 3;\n * @return {?proto.assistant_api.AssistantDebuggerDeployment}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantDebuggerDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantDebuggerDeployment, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantDebuggerDeployment|undefined} value\n * @return {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantDebuggerDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantDebuggerDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantWebpluginDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantWebpluginDeployment.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantWebpluginDeploymentResponse;\n  return proto.assistant_api.GetAssistantWebpluginDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantWebpluginDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantWebpluginDeployment.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantWebpluginDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantWebpluginDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantWebpluginDeployment data = 3;\n * @return {?proto.assistant_api.AssistantWebpluginDeployment}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantWebpluginDeployment} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantWebpluginDeployment, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantWebpluginDeployment|undefined} value\n * @return {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantWebpluginDeploymentResponse} returns this\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantWebpluginDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantApiDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantApiDeployment.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantApiDeploymentResponse;\n  return proto.assistant_api.GetAllAssistantApiDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantApiDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantApiDeployment.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantApiDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantApiDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantApiDeployment data = 3;\n * @return {!Array<!proto.assistant_api.AssistantApiDeployment>}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantApiDeployment>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantApiDeployment, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantApiDeployment>} value\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantApiDeployment=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantApiDeployment}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantApiDeployment, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantApiDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantApiDeploymentResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantPhoneDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantPhoneDeployment.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantPhoneDeploymentResponse;\n  return proto.assistant_api.GetAllAssistantPhoneDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantPhoneDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantPhoneDeployment.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantPhoneDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantPhoneDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantPhoneDeployment data = 3;\n * @return {!Array<!proto.assistant_api.AssistantPhoneDeployment>}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantPhoneDeployment>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantPhoneDeployment, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantPhoneDeployment>} value\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantPhoneDeployment=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantPhoneDeployment}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantPhoneDeployment, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantPhoneDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantPhoneDeploymentResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantWhatsappDeployment.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse;\n  return proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantWhatsappDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantWhatsappDeployment.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantWhatsappDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantWhatsappDeployment data = 3;\n * @return {!Array<!proto.assistant_api.AssistantWhatsappDeployment>}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantWhatsappDeployment>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantWhatsappDeployment, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantWhatsappDeployment>} value\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantWhatsappDeployment=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantWhatsappDeployment}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantWhatsappDeployment, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantWhatsappDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantWhatsappDeploymentResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantDebuggerDeployment.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse;\n  return proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantDebuggerDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantDebuggerDeployment.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantDebuggerDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantDebuggerDeployment data = 3;\n * @return {!Array<!proto.assistant_api.AssistantDebuggerDeployment>}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantDebuggerDeployment>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantDebuggerDeployment, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantDebuggerDeployment>} value\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantDebuggerDeployment=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantDebuggerDeployment}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantDebuggerDeployment, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantDebuggerDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantDebuggerDeploymentResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantWebpluginDeployment.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse;\n  return proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantWebpluginDeployment;\n      reader.readMessage(value,proto.assistant_api.AssistantWebpluginDeployment.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantWebpluginDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantWebpluginDeployment data = 3;\n * @return {!Array<!proto.assistant_api.AssistantWebpluginDeployment>}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantWebpluginDeployment>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantWebpluginDeployment, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantWebpluginDeployment>} value\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantWebpluginDeployment=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantWebpluginDeployment}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantWebpluginDeployment, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantWebpluginDeploymentResponse} returns this\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantWebpluginDeploymentResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantDeploymentRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantDeploymentRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantDeploymentRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantDeploymentRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantDeploymentRequest}\n */\nproto.assistant_api.GetAssistantDeploymentRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantDeploymentRequest;\n  return proto.assistant_api.GetAssistantDeploymentRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantDeploymentRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantDeploymentRequest}\n */\nproto.assistant_api.GetAssistantDeploymentRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantDeploymentRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantDeploymentRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantDeploymentRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantDeploymentRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.GetAssistantDeploymentRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantDeploymentRequest} returns this\n */\nproto.assistant_api.GetAssistantDeploymentRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantDeploymentRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantDeploymentRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantDeploymentRequest}\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantDeploymentRequest;\n  return proto.assistant_api.GetAllAssistantDeploymentRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantDeploymentRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantDeploymentRequest}\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 3:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantDeploymentRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantDeploymentRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantDeploymentRequest} returns this\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional Paginate paginate = 2;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 2));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantDeploymentRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantDeploymentRequest} returns this\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 3;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 3));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllAssistantDeploymentRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantDeploymentRequest} returns this\n */\nproto.assistant_api.GetAllAssistantDeploymentRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\ngoog.object.extend(exports, proto.assistant_api);\n","// source: assistant-tool.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n *     field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() { return this || window || global || self || Function('return this')(); }).call(null);\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\nvar common_pb = require('./common_pb.js');\ngoog.object.extend(proto, common_pb);\nvar google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js');\ngoog.object.extend(proto, google_protobuf_struct_pb);\ngoog.exportSymbol('proto.assistant_api.AssistantTool', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantToolLog', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantToolRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.DeleteAssistantToolRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantToolLogRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantToolLogResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantToolRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantToolResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantToolLogRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantToolLogResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantToolRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantToolResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.UpdateAssistantToolRequest', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantTool = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.AssistantTool.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.AssistantTool, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantTool.displayName = 'proto.assistant_api.AssistantTool';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantToolRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.CreateAssistantToolRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantToolRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantToolRequest.displayName = 'proto.assistant_api.CreateAssistantToolRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.UpdateAssistantToolRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.UpdateAssistantToolRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.UpdateAssistantToolRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.UpdateAssistantToolRequest.displayName = 'proto.assistant_api.UpdateAssistantToolRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantToolRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantToolRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantToolRequest.displayName = 'proto.assistant_api.GetAssistantToolRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.DeleteAssistantToolRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.DeleteAssistantToolRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.DeleteAssistantToolRequest.displayName = 'proto.assistant_api.DeleteAssistantToolRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantToolResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantToolResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantToolResponse.displayName = 'proto.assistant_api.GetAssistantToolResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantToolRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantToolRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantToolRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantToolRequest.displayName = 'proto.assistant_api.GetAllAssistantToolRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantToolResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantToolResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantToolResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantToolResponse.displayName = 'proto.assistant_api.GetAllAssistantToolResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantToolLogRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantToolLogRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantToolLogRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantToolLogRequest.displayName = 'proto.assistant_api.GetAllAssistantToolLogRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantToolLogRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantToolLogRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantToolLogRequest.displayName = 'proto.assistant_api.GetAssistantToolLogRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantToolLogResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantToolLogResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantToolLogResponse.displayName = 'proto.assistant_api.GetAssistantToolLogResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantToolLogResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantToolLogResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantToolLogResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantToolLogResponse.displayName = 'proto.assistant_api.GetAllAssistantToolLogResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantToolLog = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantToolLog, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantToolLog.displayName = 'proto.assistant_api.AssistantToolLog';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.AssistantTool.repeatedFields_ = [7];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantTool.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantTool.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantTool} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantTool.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    description: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    fields: (f = msg.getFields()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    executionmethod: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    executionoptionsList: jspb.Message.toObjectList(msg.getExecutionoptionsList(),\n    common_pb.Metadata.toObject, includeInstance),\n    status: jspb.Message.getFieldWithDefault(msg, 25, \"\"),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantTool}\n */\nproto.assistant_api.AssistantTool.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantTool;\n  return proto.assistant_api.AssistantTool.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantTool} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantTool}\n */\nproto.assistant_api.AssistantTool.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 5:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setFields(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setExecutionmethod(value);\n      break;\n    case 7:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addExecutionoptions(value);\n      break;\n    case 25:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 26:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 27:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantTool.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantTool.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantTool} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantTool.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getFields();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getExecutionmethod();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = message.getExecutionoptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      7,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      25,\n      f\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      26,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      27,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantTool.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.AssistantTool.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nproto.assistant_api.AssistantTool.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string description = 4;\n * @return {string}\n */\nproto.assistant_api.AssistantTool.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional google.protobuf.Struct fields = 5;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.AssistantTool.prototype.getFields = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 5));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n*/\nproto.assistant_api.AssistantTool.prototype.setFields = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.clearFields = function() {\n  return this.setFields(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantTool.prototype.hasFields = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional string executionMethod = 6;\n * @return {string}\n */\nproto.assistant_api.AssistantTool.prototype.getExecutionmethod = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.setExecutionmethod = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * repeated Metadata executionOptions = 7;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.AssistantTool.prototype.getExecutionoptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 7));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n*/\nproto.assistant_api.AssistantTool.prototype.setExecutionoptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 7, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.AssistantTool.prototype.addExecutionoptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.clearExecutionoptionsList = function() {\n  return this.setExecutionoptionsList([]);\n};\n\n\n/**\n * optional string status = 25;\n * @return {string}\n */\nproto.assistant_api.AssistantTool.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 25, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 25, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 26;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantTool.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 26));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n*/\nproto.assistant_api.AssistantTool.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantTool.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 27;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantTool.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 27));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantTool} returns this\n*/\nproto.assistant_api.AssistantTool.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 27, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantTool} returns this\n */\nproto.assistant_api.AssistantTool.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantTool.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 27) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.CreateAssistantToolRequest.repeatedFields_ = [7];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantToolRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantToolRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantToolRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    description: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    fields: (f = msg.getFields()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    executionmethod: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    executionoptionsList: jspb.Message.toObjectList(msg.getExecutionoptionsList(),\n    common_pb.Metadata.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantToolRequest}\n */\nproto.assistant_api.CreateAssistantToolRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantToolRequest;\n  return proto.assistant_api.CreateAssistantToolRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantToolRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantToolRequest}\n */\nproto.assistant_api.CreateAssistantToolRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 5:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setFields(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setExecutionmethod(value);\n      break;\n    case 7:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addExecutionoptions(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantToolRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantToolRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantToolRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getFields();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getExecutionmethod();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = message.getExecutionoptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      7,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantToolRequest} returns this\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantToolRequest} returns this\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string description = 4;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantToolRequest} returns this\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional google.protobuf.Struct fields = 5;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.getFields = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 5));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.CreateAssistantToolRequest} returns this\n*/\nproto.assistant_api.CreateAssistantToolRequest.prototype.setFields = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantToolRequest} returns this\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.clearFields = function() {\n  return this.setFields(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.hasFields = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional string executionMethod = 6;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.getExecutionmethod = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantToolRequest} returns this\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.setExecutionmethod = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * repeated Metadata executionOptions = 7;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.getExecutionoptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 7));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.CreateAssistantToolRequest} returns this\n*/\nproto.assistant_api.CreateAssistantToolRequest.prototype.setExecutionoptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 7, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.addExecutionoptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.CreateAssistantToolRequest} returns this\n */\nproto.assistant_api.CreateAssistantToolRequest.prototype.clearExecutionoptionsList = function() {\n  return this.setExecutionoptionsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.UpdateAssistantToolRequest.repeatedFields_ = [7];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.UpdateAssistantToolRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.UpdateAssistantToolRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantToolRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    description: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    fields: (f = msg.getFields()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    executionmethod: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    executionoptionsList: jspb.Message.toObjectList(msg.getExecutionoptionsList(),\n    common_pb.Metadata.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.UpdateAssistantToolRequest}\n */\nproto.assistant_api.UpdateAssistantToolRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.UpdateAssistantToolRequest;\n  return proto.assistant_api.UpdateAssistantToolRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.UpdateAssistantToolRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.UpdateAssistantToolRequest}\n */\nproto.assistant_api.UpdateAssistantToolRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 5:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setFields(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setExecutionmethod(value);\n      break;\n    case 7:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addExecutionoptions(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.UpdateAssistantToolRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.UpdateAssistantToolRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantToolRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getFields();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getExecutionmethod();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = message.getExecutionoptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      7,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantToolRequest} returns this\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantToolRequest} returns this\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantToolRequest} returns this\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string description = 4;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantToolRequest} returns this\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional google.protobuf.Struct fields = 5;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.getFields = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 5));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.UpdateAssistantToolRequest} returns this\n*/\nproto.assistant_api.UpdateAssistantToolRequest.prototype.setFields = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.UpdateAssistantToolRequest} returns this\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.clearFields = function() {\n  return this.setFields(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.hasFields = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional string executionMethod = 6;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.getExecutionmethod = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantToolRequest} returns this\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.setExecutionmethod = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * repeated Metadata executionOptions = 7;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.getExecutionoptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 7));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.UpdateAssistantToolRequest} returns this\n*/\nproto.assistant_api.UpdateAssistantToolRequest.prototype.setExecutionoptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 7, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.addExecutionoptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.UpdateAssistantToolRequest} returns this\n */\nproto.assistant_api.UpdateAssistantToolRequest.prototype.clearExecutionoptionsList = function() {\n  return this.setExecutionoptionsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantToolRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantToolRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantToolRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantToolRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantToolRequest}\n */\nproto.assistant_api.GetAssistantToolRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantToolRequest;\n  return proto.assistant_api.GetAssistantToolRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantToolRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantToolRequest}\n */\nproto.assistant_api.GetAssistantToolRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantToolRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantToolRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantToolRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantToolRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.GetAssistantToolRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantToolRequest} returns this\n */\nproto.assistant_api.GetAssistantToolRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.GetAssistantToolRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantToolRequest} returns this\n */\nproto.assistant_api.GetAssistantToolRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.DeleteAssistantToolRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.DeleteAssistantToolRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.DeleteAssistantToolRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeleteAssistantToolRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.DeleteAssistantToolRequest}\n */\nproto.assistant_api.DeleteAssistantToolRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.DeleteAssistantToolRequest;\n  return proto.assistant_api.DeleteAssistantToolRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.DeleteAssistantToolRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.DeleteAssistantToolRequest}\n */\nproto.assistant_api.DeleteAssistantToolRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.DeleteAssistantToolRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.DeleteAssistantToolRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.DeleteAssistantToolRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeleteAssistantToolRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.DeleteAssistantToolRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeleteAssistantToolRequest} returns this\n */\nproto.assistant_api.DeleteAssistantToolRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.DeleteAssistantToolRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeleteAssistantToolRequest} returns this\n */\nproto.assistant_api.DeleteAssistantToolRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantToolResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantToolResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantToolResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantTool.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantToolResponse}\n */\nproto.assistant_api.GetAssistantToolResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantToolResponse;\n  return proto.assistant_api.GetAssistantToolResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantToolResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantToolResponse}\n */\nproto.assistant_api.GetAssistantToolResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantTool;\n      reader.readMessage(value,proto.assistant_api.AssistantTool.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantToolResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantToolResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantToolResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantTool.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantToolResponse} returns this\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantToolResponse} returns this\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantTool data = 3;\n * @return {?proto.assistant_api.AssistantTool}\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantTool} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantTool, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantTool|undefined} value\n * @return {!proto.assistant_api.GetAssistantToolResponse} returns this\n*/\nproto.assistant_api.GetAssistantToolResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantToolResponse} returns this\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantToolResponse} returns this\n*/\nproto.assistant_api.GetAssistantToolResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantToolResponse} returns this\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantToolResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantToolRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantToolRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantToolRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantToolRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantToolRequest}\n */\nproto.assistant_api.GetAllAssistantToolRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantToolRequest;\n  return proto.assistant_api.GetAllAssistantToolRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantToolRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantToolRequest}\n */\nproto.assistant_api.GetAllAssistantToolRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 3:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantToolRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantToolRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantToolRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantToolRequest} returns this\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional Paginate paginate = 2;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 2));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantToolRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantToolRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantToolRequest} returns this\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 3;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 3));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllAssistantToolRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantToolRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantToolRequest} returns this\n */\nproto.assistant_api.GetAllAssistantToolRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantToolResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantToolResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantToolResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantToolResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantTool.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantToolResponse}\n */\nproto.assistant_api.GetAllAssistantToolResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantToolResponse;\n  return proto.assistant_api.GetAllAssistantToolResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantToolResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantToolResponse}\n */\nproto.assistant_api.GetAllAssistantToolResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantTool;\n      reader.readMessage(value,proto.assistant_api.AssistantTool.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantToolResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantToolResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantToolResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantTool.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantToolResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantToolResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantTool data = 3;\n * @return {!Array<!proto.assistant_api.AssistantTool>}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantTool>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantTool, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantTool>} value\n * @return {!proto.assistant_api.GetAllAssistantToolResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantToolResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantTool=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantTool}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantTool, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantToolResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantToolResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantToolResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantToolResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantToolResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantToolResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantToolResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantToolResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.repeatedFields_ = [4];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantToolLogRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantToolLogRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    projectid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance),\n    order: (f = msg.getOrder()) && common_pb.Ordering.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantToolLogRequest}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantToolLogRequest;\n  return proto.assistant_api.GetAllAssistantToolLogRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantToolLogRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantToolLogRequest}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 3:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 4:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    case 5:\n      var value = new common_pb.Ordering;\n      reader.readMessage(value,common_pb.Ordering.deserializeBinaryFromReader);\n      msg.setOrder(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantToolLogRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantToolLogRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      4,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n  f = message.getOrder();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Ordering.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 projectId = 2;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantToolLogRequest} returns this\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional Paginate paginate = 3;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 3));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantToolLogRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantToolLogRequest} returns this\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 4;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 4));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllAssistantToolLogRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantToolLogRequest} returns this\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n/**\n * optional Ordering order = 5;\n * @return {?proto.Ordering}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.getOrder = function() {\n  return /** @type{?proto.Ordering} */ (\n    jspb.Message.getWrapperField(this, common_pb.Ordering, 5));\n};\n\n\n/**\n * @param {?proto.Ordering|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantToolLogRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.setOrder = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantToolLogRequest} returns this\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.clearOrder = function() {\n  return this.setOrder(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantToolLogRequest.prototype.hasOrder = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantToolLogRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantToolLogRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantToolLogRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantToolLogRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    projectid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    id: jspb.Message.getFieldWithDefault(msg, 3, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantToolLogRequest}\n */\nproto.assistant_api.GetAssistantToolLogRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantToolLogRequest;\n  return proto.assistant_api.GetAssistantToolLogRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantToolLogRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantToolLogRequest}\n */\nproto.assistant_api.GetAssistantToolLogRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantToolLogRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantToolLogRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantToolLogRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantToolLogRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 projectId = 2;\n * @return {string}\n */\nproto.assistant_api.GetAssistantToolLogRequest.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantToolLogRequest} returns this\n */\nproto.assistant_api.GetAssistantToolLogRequest.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional uint64 id = 3;\n * @return {string}\n */\nproto.assistant_api.GetAssistantToolLogRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantToolLogRequest} returns this\n */\nproto.assistant_api.GetAssistantToolLogRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantToolLogResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantToolLogResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantToolLogResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantToolLog.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantToolLogResponse}\n */\nproto.assistant_api.GetAssistantToolLogResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantToolLogResponse;\n  return proto.assistant_api.GetAssistantToolLogResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantToolLogResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantToolLogResponse}\n */\nproto.assistant_api.GetAssistantToolLogResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantToolLog;\n      reader.readMessage(value,proto.assistant_api.AssistantToolLog.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantToolLogResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantToolLogResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantToolLogResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantToolLog.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantToolLogResponse} returns this\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantToolLogResponse} returns this\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantToolLog data = 3;\n * @return {?proto.assistant_api.AssistantToolLog}\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantToolLog} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantToolLog, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantToolLog|undefined} value\n * @return {!proto.assistant_api.GetAssistantToolLogResponse} returns this\n*/\nproto.assistant_api.GetAssistantToolLogResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantToolLogResponse} returns this\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantToolLogResponse} returns this\n*/\nproto.assistant_api.GetAssistantToolLogResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantToolLogResponse} returns this\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantToolLogResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantToolLogResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantToolLogResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantToolLog.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantToolLogResponse;\n  return proto.assistant_api.GetAllAssistantToolLogResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantToolLogResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantToolLog;\n      reader.readMessage(value,proto.assistant_api.AssistantToolLog.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantToolLogResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantToolLogResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantToolLog.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantToolLog data = 3;\n * @return {!Array<!proto.assistant_api.AssistantToolLog>}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantToolLog>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantToolLog, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantToolLog>} value\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantToolLog=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantToolLog}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantToolLog, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantToolLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantToolLogResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantToolLog.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantToolLog.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantToolLog} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantToolLog.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    action: (f = msg.getAction()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    request: (f = msg.getRequest()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    response: (f = msg.getResponse()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 8, \"0\"),\n    projectid: jspb.Message.getFieldWithDefault(msg, 9, \"0\"),\n    organizationid: jspb.Message.getFieldWithDefault(msg, 10, \"0\"),\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 11, \"0\"),\n    assistantconversationmessageid: jspb.Message.getFieldWithDefault(msg, 12, \"\"),\n    assetprefix: jspb.Message.getFieldWithDefault(msg, 14, \"\"),\n    timetaken: jspb.Message.getFieldWithDefault(msg, 16, \"0\"),\n    assistanttoolname: jspb.Message.getFieldWithDefault(msg, 17, \"\"),\n    toolcallid: jspb.Message.getFieldWithDefault(msg, 19, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantToolLog}\n */\nproto.assistant_api.AssistantToolLog.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantToolLog;\n  return proto.assistant_api.AssistantToolLog.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantToolLog} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantToolLog}\n */\nproto.assistant_api.AssistantToolLog.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setAction(value);\n      break;\n    case 3:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setRequest(value);\n      break;\n    case 4:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setResponse(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 6:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 7:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 8:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 9:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setOrganizationid(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 12:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAssistantconversationmessageid(value);\n      break;\n    case 14:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAssetprefix(value);\n      break;\n    case 16:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setTimetaken(value);\n      break;\n    case 17:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAssistanttoolname(value);\n      break;\n    case 19:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setToolcallid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantToolLog.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantToolLog.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantToolLog} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantToolLog.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAction();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getRequest();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getResponse();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      6,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      7,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      8,\n      f\n    );\n  }\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      9,\n      f\n    );\n  }\n  f = message.getOrganizationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      10,\n      f\n    );\n  }\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      11,\n      f\n    );\n  }\n  f = message.getAssistantconversationmessageid();\n  if (f.length > 0) {\n    writer.writeString(\n      12,\n      f\n    );\n  }\n  f = message.getAssetprefix();\n  if (f.length > 0) {\n    writer.writeString(\n      14,\n      f\n    );\n  }\n  f = message.getTimetaken();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      16,\n      f\n    );\n  }\n  f = message.getAssistanttoolname();\n  if (f.length > 0) {\n    writer.writeString(\n      17,\n      f\n    );\n  }\n  f = message.getToolcallid();\n  if (f.length > 0) {\n    writer.writeString(\n      19,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Struct action = 2;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.AssistantToolLog.prototype.getAction = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 2));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n*/\nproto.assistant_api.AssistantToolLog.prototype.setAction = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.clearAction = function() {\n  return this.setAction(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantToolLog.prototype.hasAction = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional google.protobuf.Struct request = 3;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.AssistantToolLog.prototype.getRequest = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n*/\nproto.assistant_api.AssistantToolLog.prototype.setRequest = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.clearRequest = function() {\n  return this.setRequest(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantToolLog.prototype.hasRequest = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional google.protobuf.Struct response = 4;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.AssistantToolLog.prototype.getResponse = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 4));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n*/\nproto.assistant_api.AssistantToolLog.prototype.setResponse = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.clearResponse = function() {\n  return this.setResponse(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantToolLog.prototype.hasResponse = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional string status = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 6;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantToolLog.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n*/\nproto.assistant_api.AssistantToolLog.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 6, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantToolLog.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 7;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantToolLog.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n*/\nproto.assistant_api.AssistantToolLog.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 7, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantToolLog.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 7) != null;\n};\n\n\n/**\n * optional uint64 assistantId = 8;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 8, value);\n};\n\n\n/**\n * optional uint64 projectId = 9;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 9, value);\n};\n\n\n/**\n * optional uint64 organizationId = 10;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getOrganizationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setOrganizationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 10, value);\n};\n\n\n/**\n * optional uint64 assistantConversationId = 11;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 11, value);\n};\n\n\n/**\n * optional string assistantConversationMessageId = 12;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getAssistantconversationmessageid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setAssistantconversationmessageid = function(value) {\n  return jspb.Message.setProto3StringField(this, 12, value);\n};\n\n\n/**\n * optional string assetPrefix = 14;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getAssetprefix = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setAssetprefix = function(value) {\n  return jspb.Message.setProto3StringField(this, 14, value);\n};\n\n\n/**\n * optional uint64 timeTaken = 16;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getTimetaken = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 16, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setTimetaken = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 16, value);\n};\n\n\n/**\n * optional string assistantToolName = 17;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getAssistanttoolname = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setAssistanttoolname = function(value) {\n  return jspb.Message.setProto3StringField(this, 17, value);\n};\n\n\n/**\n * optional string toolCallId = 19;\n * @return {string}\n */\nproto.assistant_api.AssistantToolLog.prototype.getToolcallid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 19, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantToolLog} returns this\n */\nproto.assistant_api.AssistantToolLog.prototype.setToolcallid = function(value) {\n  return jspb.Message.setProto3StringField(this, 19, value);\n};\n\n\ngoog.object.extend(exports, proto.assistant_api);\n","// source: assistant-http-log.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n *     field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() { return this || window || global || self || Function('return this')(); }).call(null);\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\nvar common_pb = require('./common_pb.js');\ngoog.object.extend(proto, common_pb);\nvar google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js');\ngoog.object.extend(proto, google_protobuf_struct_pb);\ngoog.exportSymbol('proto.assistant_api.AssistantHTTPLog', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantHTTPLogRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantHTTPLogResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantHTTPLogRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantHTTPLogResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.RetryAssistantHTTPLogRequest', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantHTTPLog = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantHTTPLog, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantHTTPLog.displayName = 'proto.assistant_api.AssistantHTTPLog';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantHTTPLogRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantHTTPLogRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantHTTPLogRequest.displayName = 'proto.assistant_api.GetAllAssistantHTTPLogRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantHTTPLogRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantHTTPLogRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantHTTPLogRequest.displayName = 'proto.assistant_api.GetAssistantHTTPLogRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantHTTPLogResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantHTTPLogResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantHTTPLogResponse.displayName = 'proto.assistant_api.GetAssistantHTTPLogResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantHTTPLogResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantHTTPLogResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantHTTPLogResponse.displayName = 'proto.assistant_api.GetAllAssistantHTTPLogResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.RetryAssistantHTTPLogRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.RetryAssistantHTTPLogRequest.displayName = 'proto.assistant_api.RetryAssistantHTTPLogRequest';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantHTTPLog.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantHTTPLog} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantHTTPLog.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    sourcerefid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    request: (f = msg.getRequest()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    response: (f = msg.getResponse()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 8, \"0\"),\n    projectid: jspb.Message.getFieldWithDefault(msg, 9, \"0\"),\n    organizationid: jspb.Message.getFieldWithDefault(msg, 10, \"0\"),\n    assistantconversationid: jspb.Message.getFieldWithDefault(msg, 11, \"0\"),\n    assetprefix: jspb.Message.getFieldWithDefault(msg, 12, \"\"),\n    sourceevent: jspb.Message.getFieldWithDefault(msg, 13, \"\"),\n    responsestatus: jspb.Message.getFieldWithDefault(msg, 14, \"0\"),\n    timetaken: jspb.Message.getFieldWithDefault(msg, 15, \"0\"),\n    retrycount: jspb.Message.getFieldWithDefault(msg, 16, 0),\n    httpmethod: jspb.Message.getFieldWithDefault(msg, 17, \"\"),\n    httpurl: jspb.Message.getFieldWithDefault(msg, 18, \"\"),\n    source: jspb.Message.getFieldWithDefault(msg, 19, \"\"),\n    contextid: jspb.Message.getFieldWithDefault(msg, 20, \"\"),\n    errormessage: jspb.Message.getFieldWithDefault(msg, 21, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantHTTPLog}\n */\nproto.assistant_api.AssistantHTTPLog.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantHTTPLog;\n  return proto.assistant_api.AssistantHTTPLog.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantHTTPLog} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantHTTPLog}\n */\nproto.assistant_api.AssistantHTTPLog.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setSourcerefid(value);\n      break;\n    case 3:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setRequest(value);\n      break;\n    case 4:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setResponse(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 6:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 7:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 8:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 9:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setOrganizationid(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantconversationid(value);\n      break;\n    case 12:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAssetprefix(value);\n      break;\n    case 13:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSourceevent(value);\n      break;\n    case 14:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setResponsestatus(value);\n      break;\n    case 15:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setTimetaken(value);\n      break;\n    case 16:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setRetrycount(value);\n      break;\n    case 17:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setHttpmethod(value);\n      break;\n    case 18:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setHttpurl(value);\n      break;\n    case 19:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSource(value);\n      break;\n    case 20:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setContextid(value);\n      break;\n    case 21:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setErrormessage(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantHTTPLog.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantHTTPLog} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantHTTPLog.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getSourcerefid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getRequest();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getResponse();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      6,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      7,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      8,\n      f\n    );\n  }\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      9,\n      f\n    );\n  }\n  f = message.getOrganizationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      10,\n      f\n    );\n  }\n  f = message.getAssistantconversationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      11,\n      f\n    );\n  }\n  f = message.getAssetprefix();\n  if (f.length > 0) {\n    writer.writeString(\n      12,\n      f\n    );\n  }\n  f = message.getSourceevent();\n  if (f.length > 0) {\n    writer.writeString(\n      13,\n      f\n    );\n  }\n  f = message.getResponsestatus();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      14,\n      f\n    );\n  }\n  f = message.getTimetaken();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      15,\n      f\n    );\n  }\n  f = message.getRetrycount();\n  if (f !== 0) {\n    writer.writeUint32(\n      16,\n      f\n    );\n  }\n  f = message.getHttpmethod();\n  if (f.length > 0) {\n    writer.writeString(\n      17,\n      f\n    );\n  }\n  f = message.getHttpurl();\n  if (f.length > 0) {\n    writer.writeString(\n      18,\n      f\n    );\n  }\n  f = message.getSource();\n  if (f.length > 0) {\n    writer.writeString(\n      19,\n      f\n    );\n  }\n  f = message.getContextid();\n  if (f.length > 0) {\n    writer.writeString(\n      20,\n      f\n    );\n  }\n  f = message.getErrormessage();\n  if (f.length > 0) {\n    writer.writeString(\n      21,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 sourceRefId = 2;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getSourcerefid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setSourcerefid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Struct request = 3;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getRequest = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n*/\nproto.assistant_api.AssistantHTTPLog.prototype.setRequest = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.clearRequest = function() {\n  return this.setRequest(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.hasRequest = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional google.protobuf.Struct response = 4;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getResponse = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 4));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n*/\nproto.assistant_api.AssistantHTTPLog.prototype.setResponse = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.clearResponse = function() {\n  return this.setResponse(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.hasResponse = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional string status = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 6;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n*/\nproto.assistant_api.AssistantHTTPLog.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 6, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 7;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n*/\nproto.assistant_api.AssistantHTTPLog.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 7, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 7) != null;\n};\n\n\n/**\n * optional uint64 assistantId = 8;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 8, value);\n};\n\n\n/**\n * optional uint64 projectId = 9;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 9, value);\n};\n\n\n/**\n * optional uint64 organizationId = 10;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getOrganizationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setOrganizationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 10, value);\n};\n\n\n/**\n * optional uint64 assistantConversationId = 11;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getAssistantconversationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setAssistantconversationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 11, value);\n};\n\n\n/**\n * optional string assetPrefix = 12;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getAssetprefix = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setAssetprefix = function(value) {\n  return jspb.Message.setProto3StringField(this, 12, value);\n};\n\n\n/**\n * optional string sourceEvent = 13;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getSourceevent = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setSourceevent = function(value) {\n  return jspb.Message.setProto3StringField(this, 13, value);\n};\n\n\n/**\n * optional uint64 responseStatus = 14;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getResponsestatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setResponsestatus = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 14, value);\n};\n\n\n/**\n * optional uint64 timeTaken = 15;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getTimetaken = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setTimetaken = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 15, value);\n};\n\n\n/**\n * optional uint32 retryCount = 16;\n * @return {number}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getRetrycount = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setRetrycount = function(value) {\n  return jspb.Message.setProto3IntField(this, 16, value);\n};\n\n\n/**\n * optional string httpMethod = 17;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getHttpmethod = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setHttpmethod = function(value) {\n  return jspb.Message.setProto3StringField(this, 17, value);\n};\n\n\n/**\n * optional string httpUrl = 18;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getHttpurl = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 18, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setHttpurl = function(value) {\n  return jspb.Message.setProto3StringField(this, 18, value);\n};\n\n\n/**\n * optional string source = 19;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getSource = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 19, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setSource = function(value) {\n  return jspb.Message.setProto3StringField(this, 19, value);\n};\n\n\n/**\n * optional string contextId = 20;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getContextid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 20, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setContextid = function(value) {\n  return jspb.Message.setProto3StringField(this, 20, value);\n};\n\n\n/**\n * optional string errorMessage = 21;\n * @return {string}\n */\nproto.assistant_api.AssistantHTTPLog.prototype.getErrormessage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 21, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantHTTPLog} returns this\n */\nproto.assistant_api.AssistantHTTPLog.prototype.setErrormessage = function(value) {\n  return jspb.Message.setProto3StringField(this, 21, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.repeatedFields_ = [4];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantHTTPLogRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantHTTPLogRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    projectid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance),\n    order: (f = msg.getOrder()) && common_pb.Ordering.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogRequest}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantHTTPLogRequest;\n  return proto.assistant_api.GetAllAssistantHTTPLogRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantHTTPLogRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogRequest}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 3:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 4:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    case 5:\n      var value = new common_pb.Ordering;\n      reader.readMessage(value,common_pb.Ordering.deserializeBinaryFromReader);\n      msg.setOrder(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantHTTPLogRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantHTTPLogRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      4,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n  f = message.getOrder();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Ordering.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 projectId = 2;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogRequest} returns this\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional Paginate paginate = 3;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 3));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogRequest} returns this\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 4;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 4));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogRequest} returns this\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n/**\n * optional Ordering order = 5;\n * @return {?proto.Ordering}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.getOrder = function() {\n  return /** @type{?proto.Ordering} */ (\n    jspb.Message.getWrapperField(this, common_pb.Ordering, 5));\n};\n\n\n/**\n * @param {?proto.Ordering|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.setOrder = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogRequest} returns this\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.clearOrder = function() {\n  return this.setOrder(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantHTTPLogRequest.prototype.hasOrder = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantHTTPLogRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantHTTPLogRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    projectid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    id: jspb.Message.getFieldWithDefault(msg, 3, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantHTTPLogRequest}\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantHTTPLogRequest;\n  return proto.assistant_api.GetAssistantHTTPLogRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantHTTPLogRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantHTTPLogRequest}\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantHTTPLogRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantHTTPLogRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 projectId = 2;\n * @return {string}\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantHTTPLogRequest} returns this\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional uint64 id = 3;\n * @return {string}\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantHTTPLogRequest} returns this\n */\nproto.assistant_api.GetAssistantHTTPLogRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantHTTPLogResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantHTTPLogResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantHTTPLog.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantHTTPLogResponse}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantHTTPLogResponse;\n  return proto.assistant_api.GetAssistantHTTPLogResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantHTTPLogResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantHTTPLogResponse}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantHTTPLog;\n      reader.readMessage(value,proto.assistant_api.AssistantHTTPLog.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantHTTPLogResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantHTTPLogResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantHTTPLog.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantHTTPLogResponse} returns this\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantHTTPLogResponse} returns this\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantHTTPLog data = 3;\n * @return {?proto.assistant_api.AssistantHTTPLog}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantHTTPLog} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantHTTPLog, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantHTTPLog|undefined} value\n * @return {!proto.assistant_api.GetAssistantHTTPLogResponse} returns this\n*/\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantHTTPLogResponse} returns this\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantHTTPLogResponse} returns this\n*/\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantHTTPLogResponse} returns this\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantHTTPLogResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantHTTPLogResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantHTTPLogResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantHTTPLog.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantHTTPLogResponse;\n  return proto.assistant_api.GetAllAssistantHTTPLogResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantHTTPLogResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantHTTPLog;\n      reader.readMessage(value,proto.assistant_api.AssistantHTTPLog.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantHTTPLogResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantHTTPLogResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantHTTPLog.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantHTTPLog data = 3;\n * @return {!Array<!proto.assistant_api.AssistantHTTPLog>}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantHTTPLog>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantHTTPLog, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantHTTPLog>} value\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantHTTPLog=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantHTTPLog}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantHTTPLog, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantHTTPLogResponse} returns this\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantHTTPLogResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.RetryAssistantHTTPLogRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.RetryAssistantHTTPLogRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    projectid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    id: jspb.Message.getFieldWithDefault(msg, 3, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.RetryAssistantHTTPLogRequest}\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.RetryAssistantHTTPLogRequest;\n  return proto.assistant_api.RetryAssistantHTTPLogRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.RetryAssistantHTTPLogRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.RetryAssistantHTTPLogRequest}\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.RetryAssistantHTTPLogRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.RetryAssistantHTTPLogRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 projectId = 2;\n * @return {string}\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.RetryAssistantHTTPLogRequest} returns this\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional uint64 id = 3;\n * @return {string}\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.RetryAssistantHTTPLogRequest} returns this\n */\nproto.assistant_api.RetryAssistantHTTPLogRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 3, value);\n};\n\n\ngoog.object.extend(exports, proto.assistant_api);\n","// source: assistant-knowledge.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n *     field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() { return this || window || global || self || Function('return this')(); }).call(null);\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\nvar common_pb = require('./common_pb.js');\ngoog.object.extend(proto, common_pb);\ngoog.exportSymbol('proto.assistant_api.AssistantKnowledge', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantKnowledgeRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.DeleteAssistantKnowledgeRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantKnowledgeRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantKnowledgeResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantKnowledgeRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantKnowledgeResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.UpdateAssistantKnowledgeRequest', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantKnowledge = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.AssistantKnowledge.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.AssistantKnowledge, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantKnowledge.displayName = 'proto.assistant_api.AssistantKnowledge';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.CreateAssistantKnowledgeRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantKnowledgeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantKnowledgeRequest.displayName = 'proto.assistant_api.CreateAssistantKnowledgeRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.UpdateAssistantKnowledgeRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.UpdateAssistantKnowledgeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.UpdateAssistantKnowledgeRequest.displayName = 'proto.assistant_api.UpdateAssistantKnowledgeRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantKnowledgeRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantKnowledgeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantKnowledgeRequest.displayName = 'proto.assistant_api.GetAssistantKnowledgeRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.DeleteAssistantKnowledgeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.DeleteAssistantKnowledgeRequest.displayName = 'proto.assistant_api.DeleteAssistantKnowledgeRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantKnowledgeResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantKnowledgeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantKnowledgeResponse.displayName = 'proto.assistant_api.GetAssistantKnowledgeResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantKnowledgeRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantKnowledgeRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantKnowledgeRequest.displayName = 'proto.assistant_api.GetAllAssistantKnowledgeRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantKnowledgeResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantKnowledgeResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantKnowledgeResponse.displayName = 'proto.assistant_api.GetAllAssistantKnowledgeResponse';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.AssistantKnowledge.repeatedFields_ = [12];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantKnowledge.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantKnowledge.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantKnowledge} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantKnowledge.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    knowledgeid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    rerankerenable: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),\n    topk: jspb.Message.getFieldWithDefault(msg, 6, 0),\n    scorethreshold: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),\n    knowledge: (f = msg.getKnowledge()) && common_pb.Knowledge.toObject(includeInstance, f),\n    retrievalmethod: jspb.Message.getFieldWithDefault(msg, 9, \"\"),\n    rerankermodelproviderid: jspb.Message.getFieldWithDefault(msg, 10, \"0\"),\n    rerankermodelprovidername: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    assistantknowledgererankeroptionsList: jspb.Message.toObjectList(msg.getAssistantknowledgererankeroptionsList(),\n    common_pb.Metadata.toObject, includeInstance),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 15, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantKnowledge}\n */\nproto.assistant_api.AssistantKnowledge.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantKnowledge;\n  return proto.assistant_api.AssistantKnowledge.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantKnowledge} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantKnowledge}\n */\nproto.assistant_api.AssistantKnowledge.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setKnowledgeid(value);\n      break;\n    case 3:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setRerankerenable(value);\n      break;\n    case 6:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setTopk(value);\n      break;\n    case 7:\n      var value = /** @type {number} */ (reader.readFloat());\n      msg.setScorethreshold(value);\n      break;\n    case 8:\n      var value = new common_pb.Knowledge;\n      reader.readMessage(value,common_pb.Knowledge.deserializeBinaryFromReader);\n      msg.setKnowledge(value);\n      break;\n    case 9:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRetrievalmethod(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setRerankermodelproviderid(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRerankermodelprovidername(value);\n      break;\n    case 12:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addAssistantknowledgererankeroptions(value);\n      break;\n    case 13:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 14:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 15:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantKnowledge.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantKnowledge.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantKnowledge} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantKnowledge.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getKnowledgeid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getRerankerenable();\n  if (f) {\n    writer.writeBool(\n      3,\n      f\n    );\n  }\n  f = message.getTopk();\n  if (f !== 0) {\n    writer.writeUint32(\n      6,\n      f\n    );\n  }\n  f = message.getScorethreshold();\n  if (f !== 0.0) {\n    writer.writeFloat(\n      7,\n      f\n    );\n  }\n  f = message.getKnowledge();\n  if (f != null) {\n    writer.writeMessage(\n      8,\n      f,\n      common_pb.Knowledge.serializeBinaryToWriter\n    );\n  }\n  f = message.getRetrievalmethod();\n  if (f.length > 0) {\n    writer.writeString(\n      9,\n      f\n    );\n  }\n  f = message.getRerankermodelproviderid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      10,\n      f\n    );\n  }\n  f = message.getRerankermodelprovidername();\n  if (f.length > 0) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getAssistantknowledgererankeroptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      12,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      14,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      15,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 knowledgeId = 2;\n * @return {string}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getKnowledgeid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.setKnowledgeid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional bool rerankerEnable = 3;\n * @return {boolean}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getRerankerenable = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.setRerankerenable = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\n/**\n * optional uint32 topK = 6;\n * @return {number}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getTopk = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.setTopk = function(value) {\n  return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional float scoreThreshold = 7;\n * @return {number}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getScorethreshold = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.setScorethreshold = function(value) {\n  return jspb.Message.setProto3FloatField(this, 7, value);\n};\n\n\n/**\n * optional Knowledge knowledge = 8;\n * @return {?proto.Knowledge}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getKnowledge = function() {\n  return /** @type{?proto.Knowledge} */ (\n    jspb.Message.getWrapperField(this, common_pb.Knowledge, 8));\n};\n\n\n/**\n * @param {?proto.Knowledge|undefined} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n*/\nproto.assistant_api.AssistantKnowledge.prototype.setKnowledge = function(value) {\n  return jspb.Message.setWrapperField(this, 8, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.clearKnowledge = function() {\n  return this.setKnowledge(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantKnowledge.prototype.hasKnowledge = function() {\n  return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional string retrievalMethod = 9;\n * @return {string}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getRetrievalmethod = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.setRetrievalmethod = function(value) {\n  return jspb.Message.setProto3StringField(this, 9, value);\n};\n\n\n/**\n * optional uint64 rerankerModelProviderId = 10;\n * @return {string}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getRerankermodelproviderid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.setRerankermodelproviderid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 10, value);\n};\n\n\n/**\n * optional string rerankerModelProviderName = 11;\n * @return {string}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getRerankermodelprovidername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.setRerankermodelprovidername = function(value) {\n  return jspb.Message.setProto3StringField(this, 11, value);\n};\n\n\n/**\n * repeated Metadata assistantKnowledgeRerankerOptions = 12;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getAssistantknowledgererankeroptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 12));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n*/\nproto.assistant_api.AssistantKnowledge.prototype.setAssistantknowledgererankeroptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 12, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.AssistantKnowledge.prototype.addAssistantknowledgererankeroptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.clearAssistantknowledgererankeroptionsList = function() {\n  return this.setAssistantknowledgererankeroptionsList([]);\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 13;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 13));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n*/\nproto.assistant_api.AssistantKnowledge.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 13, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantKnowledge.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 14;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 14));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n*/\nproto.assistant_api.AssistantKnowledge.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 14, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantKnowledge.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * optional string status = 15;\n * @return {string}\n */\nproto.assistant_api.AssistantKnowledge.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantKnowledge} returns this\n */\nproto.assistant_api.AssistantKnowledge.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 15, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.repeatedFields_ = [5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantKnowledgeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantKnowledgeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    knowledgeid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    rerankermodelproviderid: jspb.Message.getFieldWithDefault(msg, 3, \"0\"),\n    rerankermodelprovidername: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    assistantknowledgererankeroptionsList: jspb.Message.toObjectList(msg.getAssistantknowledgererankeroptionsList(),\n    common_pb.Metadata.toObject, includeInstance),\n    topk: jspb.Message.getFieldWithDefault(msg, 6, 0),\n    scorethreshold: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),\n    retrievalmethod: jspb.Message.getFieldWithDefault(msg, 8, \"\"),\n    rerankerenable: jspb.Message.getBooleanFieldWithDefault(msg, 9, false)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantKnowledgeRequest;\n  return proto.assistant_api.CreateAssistantKnowledgeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantKnowledgeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setKnowledgeid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setRerankermodelproviderid(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRerankermodelprovidername(value);\n      break;\n    case 5:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addAssistantknowledgererankeroptions(value);\n      break;\n    case 6:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setTopk(value);\n      break;\n    case 7:\n      var value = /** @type {number} */ (reader.readFloat());\n      msg.setScorethreshold(value);\n      break;\n    case 8:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRetrievalmethod(value);\n      break;\n    case 9:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setRerankerenable(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantKnowledgeRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantKnowledgeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getKnowledgeid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getRerankermodelproviderid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      3,\n      f\n    );\n  }\n  f = message.getRerankermodelprovidername();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getAssistantknowledgererankeroptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      5,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getTopk();\n  if (f !== 0) {\n    writer.writeUint32(\n      6,\n      f\n    );\n  }\n  f = message.getScorethreshold();\n  if (f !== 0.0) {\n    writer.writeFloat(\n      7,\n      f\n    );\n  }\n  f = message.getRetrievalmethod();\n  if (f.length > 0) {\n    writer.writeString(\n      8,\n      f\n    );\n  }\n  f = message.getRerankerenable();\n  if (f) {\n    writer.writeBool(\n      9,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 knowledgeId = 1;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.getKnowledgeid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.setKnowledgeid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional uint64 rerankerModelProviderId = 3;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.getRerankermodelproviderid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.setRerankermodelproviderid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 3, value);\n};\n\n\n/**\n * optional string rerankerModelProviderName = 4;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.getRerankermodelprovidername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.setRerankermodelprovidername = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * repeated Metadata assistantKnowledgeRerankerOptions = 5;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.getAssistantknowledgererankeroptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 5));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n*/\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.setAssistantknowledgererankeroptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.addAssistantknowledgererankeroptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.clearAssistantknowledgererankeroptionsList = function() {\n  return this.setAssistantknowledgererankeroptionsList([]);\n};\n\n\n/**\n * optional uint32 topK = 6;\n * @return {number}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.getTopk = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.setTopk = function(value) {\n  return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional float scoreThreshold = 7;\n * @return {number}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.getScorethreshold = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.setScorethreshold = function(value) {\n  return jspb.Message.setProto3FloatField(this, 7, value);\n};\n\n\n/**\n * optional string retrievalMethod = 8;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.getRetrievalmethod = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.setRetrievalmethod = function(value) {\n  return jspb.Message.setProto3StringField(this, 8, value);\n};\n\n\n/**\n * optional bool rerankerEnable = 9;\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.getRerankerenable = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.CreateAssistantKnowledgeRequest.prototype.setRerankerenable = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 9, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.repeatedFields_ = [6];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.UpdateAssistantKnowledgeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.UpdateAssistantKnowledgeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    knowledgeid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 3, \"0\"),\n    rerankermodelproviderid: jspb.Message.getFieldWithDefault(msg, 4, \"0\"),\n    rerankermodelprovidername: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    assistantknowledgererankeroptionsList: jspb.Message.toObjectList(msg.getAssistantknowledgererankeroptionsList(),\n    common_pb.Metadata.toObject, includeInstance),\n    scorethreshold: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),\n    topk: jspb.Message.getFieldWithDefault(msg, 8, 0),\n    retrievalmethod: jspb.Message.getFieldWithDefault(msg, 9, \"\"),\n    rerankerenable: jspb.Message.getBooleanFieldWithDefault(msg, 10, false)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.UpdateAssistantKnowledgeRequest;\n  return proto.assistant_api.UpdateAssistantKnowledgeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.UpdateAssistantKnowledgeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setKnowledgeid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setRerankermodelproviderid(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRerankermodelprovidername(value);\n      break;\n    case 6:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addAssistantknowledgererankeroptions(value);\n      break;\n    case 7:\n      var value = /** @type {number} */ (reader.readFloat());\n      msg.setScorethreshold(value);\n      break;\n    case 8:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setTopk(value);\n      break;\n    case 9:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setRetrievalmethod(value);\n      break;\n    case 10:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setRerankerenable(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.UpdateAssistantKnowledgeRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.UpdateAssistantKnowledgeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getKnowledgeid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      3,\n      f\n    );\n  }\n  f = message.getRerankermodelproviderid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      4,\n      f\n    );\n  }\n  f = message.getRerankermodelprovidername();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getAssistantknowledgererankeroptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      6,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getScorethreshold();\n  if (f !== 0.0) {\n    writer.writeFloat(\n      7,\n      f\n    );\n  }\n  f = message.getTopk();\n  if (f !== 0) {\n    writer.writeUint32(\n      8,\n      f\n    );\n  }\n  f = message.getRetrievalmethod();\n  if (f.length > 0) {\n    writer.writeString(\n      9,\n      f\n    );\n  }\n  f = message.getRerankerenable();\n  if (f) {\n    writer.writeBool(\n      10,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 knowledgeId = 2;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getKnowledgeid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setKnowledgeid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional uint64 assistantId = 3;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 3, value);\n};\n\n\n/**\n * optional uint64 rerankerModelProviderId = 4;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getRerankermodelproviderid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setRerankermodelproviderid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 4, value);\n};\n\n\n/**\n * optional string rerankerModelProviderName = 5;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getRerankermodelprovidername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setRerankermodelprovidername = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * repeated Metadata assistantKnowledgeRerankerOptions = 6;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getAssistantknowledgererankeroptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 6));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n*/\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setAssistantknowledgererankeroptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 6, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.addAssistantknowledgererankeroptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.clearAssistantknowledgererankeroptionsList = function() {\n  return this.setAssistantknowledgererankeroptionsList([]);\n};\n\n\n/**\n * optional float scoreThreshold = 7;\n * @return {number}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getScorethreshold = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setScorethreshold = function(value) {\n  return jspb.Message.setProto3FloatField(this, 7, value);\n};\n\n\n/**\n * optional uint32 topK = 8;\n * @return {number}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getTopk = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setTopk = function(value) {\n  return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional string retrievalMethod = 9;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getRetrievalmethod = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setRetrievalmethod = function(value) {\n  return jspb.Message.setProto3StringField(this, 9, value);\n};\n\n\n/**\n * optional bool rerankerEnable = 10;\n * @return {boolean}\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.getRerankerenable = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.UpdateAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.UpdateAssistantKnowledgeRequest.prototype.setRerankerenable = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 10, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantKnowledgeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantKnowledgeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantKnowledgeRequest}\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantKnowledgeRequest;\n  return proto.assistant_api.GetAssistantKnowledgeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantKnowledgeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantKnowledgeRequest}\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantKnowledgeRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantKnowledgeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.GetAssistantKnowledgeRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.DeleteAssistantKnowledgeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.DeleteAssistantKnowledgeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.DeleteAssistantKnowledgeRequest}\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.DeleteAssistantKnowledgeRequest;\n  return proto.assistant_api.DeleteAssistantKnowledgeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.DeleteAssistantKnowledgeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.DeleteAssistantKnowledgeRequest}\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.DeleteAssistantKnowledgeRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.DeleteAssistantKnowledgeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeleteAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeleteAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.DeleteAssistantKnowledgeRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantKnowledgeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantKnowledgeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantKnowledge.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantKnowledgeResponse}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantKnowledgeResponse;\n  return proto.assistant_api.GetAssistantKnowledgeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantKnowledgeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantKnowledgeResponse}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantKnowledge;\n      reader.readMessage(value,proto.assistant_api.AssistantKnowledge.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantKnowledgeResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantKnowledgeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantKnowledge.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantKnowledgeResponse} returns this\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantKnowledgeResponse} returns this\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantKnowledge data = 3;\n * @return {?proto.assistant_api.AssistantKnowledge}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantKnowledge} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantKnowledge, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantKnowledge|undefined} value\n * @return {!proto.assistant_api.GetAssistantKnowledgeResponse} returns this\n*/\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantKnowledgeResponse} returns this\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantKnowledgeResponse} returns this\n*/\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantKnowledgeResponse} returns this\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantKnowledgeResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantKnowledgeRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantKnowledgeRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeRequest}\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantKnowledgeRequest;\n  return proto.assistant_api.GetAllAssistantKnowledgeRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantKnowledgeRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeRequest}\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 3:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantKnowledgeRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantKnowledgeRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional Paginate paginate = 2;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 2));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 3;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 3));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeRequest} returns this\n */\nproto.assistant_api.GetAllAssistantKnowledgeRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantKnowledgeResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantKnowledgeResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantKnowledge.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantKnowledgeResponse;\n  return proto.assistant_api.GetAllAssistantKnowledgeResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantKnowledgeResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantKnowledge;\n      reader.readMessage(value,proto.assistant_api.AssistantKnowledge.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantKnowledgeResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantKnowledgeResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantKnowledge.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse} returns this\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse} returns this\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantKnowledge data = 3;\n * @return {!Array<!proto.assistant_api.AssistantKnowledge>}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantKnowledge>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantKnowledge, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantKnowledge>} value\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantKnowledge=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantKnowledge}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantKnowledge, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse} returns this\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse} returns this\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantKnowledgeResponse} returns this\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantKnowledgeResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\ngoog.object.extend(exports, proto.assistant_api);\n","// source: assistant-provider.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n *     field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() { return this || window || global || self || Function('return this')(); }).call(null);\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\nvar google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js');\ngoog.object.extend(proto, google_protobuf_struct_pb);\nvar common_pb = require('./common_pb.js');\ngoog.object.extend(proto, common_pb);\ngoog.exportSymbol('proto.assistant_api.AssistantProviderAgentflow', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantProviderAgentkit', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantProviderModel', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantProviderWebsocket', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantProviderRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantProviderRequest.AssistantproviderCase', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantProviderRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantProviderResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.AssistantproviderCase', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantProviderResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantProviderResponse.DataCase', null, global);\ngoog.exportSymbol('proto.assistant_api.UpdateAssistantVersionRequest', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.UpdateAssistantVersionRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.UpdateAssistantVersionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.UpdateAssistantVersionRequest.displayName = 'proto.assistant_api.UpdateAssistantVersionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantProviderRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.assistant_api.CreateAssistantProviderRequest.oneofGroups_);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantProviderRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantProviderRequest.displayName = 'proto.assistant_api.CreateAssistantProviderRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.displayName = 'proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.displayName = 'proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.displayName = 'proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.displayName = 'proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantProviderAgentkit = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, 500, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantProviderAgentkit, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantProviderAgentkit.displayName = 'proto.assistant_api.AssistantProviderAgentkit';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantProviderWebsocket = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, 500, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantProviderWebsocket, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantProviderWebsocket.displayName = 'proto.assistant_api.AssistantProviderWebsocket';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantProviderModel = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, 500, proto.assistant_api.AssistantProviderModel.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.AssistantProviderModel, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantProviderModel.displayName = 'proto.assistant_api.AssistantProviderModel';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantProviderAgentflow = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, 500, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantProviderAgentflow, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantProviderAgentflow.displayName = 'proto.assistant_api.AssistantProviderAgentflow';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantProviderRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantProviderRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantProviderRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantProviderRequest.displayName = 'proto.assistant_api.GetAllAssistantProviderRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantProviderResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.assistant_api.GetAssistantProviderResponse.oneofGroups_);\n};\ngoog.inherits(proto.assistant_api.GetAssistantProviderResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantProviderResponse.displayName = 'proto.assistant_api.GetAssistantProviderResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantProviderResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantProviderResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantProviderResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantProviderResponse.displayName = 'proto.assistant_api.GetAllAssistantProviderResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.oneofGroups_);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.displayName = 'proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.UpdateAssistantVersionRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.UpdateAssistantVersionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.UpdateAssistantVersionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantVersionRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantproviderid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    assistantprovider: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.UpdateAssistantVersionRequest}\n */\nproto.assistant_api.UpdateAssistantVersionRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.UpdateAssistantVersionRequest;\n  return proto.assistant_api.UpdateAssistantVersionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.UpdateAssistantVersionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.UpdateAssistantVersionRequest}\n */\nproto.assistant_api.UpdateAssistantVersionRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantproviderid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAssistantprovider(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.UpdateAssistantVersionRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.UpdateAssistantVersionRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.UpdateAssistantVersionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantVersionRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantproviderid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getAssistantprovider();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantVersionRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantVersionRequest} returns this\n */\nproto.assistant_api.UpdateAssistantVersionRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantProviderId = 2;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantVersionRequest.prototype.getAssistantproviderid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantVersionRequest} returns this\n */\nproto.assistant_api.UpdateAssistantVersionRequest.prototype.setAssistantproviderid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional string assistantProvider = 3;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantVersionRequest.prototype.getAssistantprovider = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantVersionRequest} returns this\n */\nproto.assistant_api.UpdateAssistantVersionRequest.prototype.setAssistantprovider = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.assistant_api.CreateAssistantProviderRequest.oneofGroups_ = [[50,51,52,53]];\n\n/**\n * @enum {number}\n */\nproto.assistant_api.CreateAssistantProviderRequest.AssistantproviderCase = {\n  ASSISTANTPROVIDER_NOT_SET: 0,\n  MODEL: 50,\n  AGENTKIT: 51,\n  WEBSOCKET: 52,\n  AGENTFLOW: 53\n};\n\n/**\n * @return {proto.assistant_api.CreateAssistantProviderRequest.AssistantproviderCase}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.getAssistantproviderCase = function() {\n  return /** @type {proto.assistant_api.CreateAssistantProviderRequest.AssistantproviderCase} */(jspb.Message.computeOneofCase(this, proto.assistant_api.CreateAssistantProviderRequest.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantProviderRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantProviderRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    description: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    model: (f = msg.getModel()) && proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.toObject(includeInstance, f),\n    agentkit: (f = msg.getAgentkit()) && proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.toObject(includeInstance, f),\n    websocket: (f = msg.getWebsocket()) && proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.toObject(includeInstance, f),\n    agentflow: (f = msg.getAgentflow()) && proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest}\n */\nproto.assistant_api.CreateAssistantProviderRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantProviderRequest;\n  return proto.assistant_api.CreateAssistantProviderRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest}\n */\nproto.assistant_api.CreateAssistantProviderRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 50:\n      var value = new proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel;\n      reader.readMessage(value,proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.deserializeBinaryFromReader);\n      msg.setModel(value);\n      break;\n    case 51:\n      var value = new proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit;\n      reader.readMessage(value,proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.deserializeBinaryFromReader);\n      msg.setAgentkit(value);\n      break;\n    case 52:\n      var value = new proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket;\n      reader.readMessage(value,proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.deserializeBinaryFromReader);\n      msg.setWebsocket(value);\n      break;\n    case 53:\n      var value = new proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow;\n      reader.readMessage(value,proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.deserializeBinaryFromReader);\n      msg.setAgentflow(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantProviderRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getModel();\n  if (f != null) {\n    writer.writeMessage(\n      50,\n      f,\n      proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.serializeBinaryToWriter\n    );\n  }\n  f = message.getAgentkit();\n  if (f != null) {\n    writer.writeMessage(\n      51,\n      f,\n      proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.serializeBinaryToWriter\n    );\n  }\n  f = message.getWebsocket();\n  if (f != null) {\n    writer.writeMessage(\n      52,\n      f,\n      proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.serializeBinaryToWriter\n    );\n  }\n  f = message.getAgentflow();\n  if (f != null) {\n    writer.writeMessage(\n      53,\n      f,\n      proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.serializeBinaryToWriter\n    );\n  }\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.repeatedFields_ = [23];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    template: (f = msg.getTemplate()) && common_pb.TextChatCompletePrompt.toObject(includeInstance, f),\n    modelprovidername: jspb.Message.getFieldWithDefault(msg, 22, \"\"),\n    assistantmodeloptionsList: jspb.Message.toObjectList(msg.getAssistantmodeloptionsList(),\n    common_pb.Metadata.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel;\n  return proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 20:\n      var value = new common_pb.TextChatCompletePrompt;\n      reader.readMessage(value,common_pb.TextChatCompletePrompt.deserializeBinaryFromReader);\n      msg.setTemplate(value);\n      break;\n    case 22:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setModelprovidername(value);\n      break;\n    case 23:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addAssistantmodeloptions(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getTemplate();\n  if (f != null) {\n    writer.writeMessage(\n      20,\n      f,\n      common_pb.TextChatCompletePrompt.serializeBinaryToWriter\n    );\n  }\n  f = message.getModelprovidername();\n  if (f.length > 0) {\n    writer.writeString(\n      22,\n      f\n    );\n  }\n  f = message.getAssistantmodeloptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      23,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional TextChatCompletePrompt template = 20;\n * @return {?proto.TextChatCompletePrompt}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.getTemplate = function() {\n  return /** @type{?proto.TextChatCompletePrompt} */ (\n    jspb.Message.getWrapperField(this, common_pb.TextChatCompletePrompt, 20));\n};\n\n\n/**\n * @param {?proto.TextChatCompletePrompt|undefined} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel} returns this\n*/\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.setTemplate = function(value) {\n  return jspb.Message.setWrapperField(this, 20, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.clearTemplate = function() {\n  return this.setTemplate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.hasTemplate = function() {\n  return jspb.Message.getField(this, 20) != null;\n};\n\n\n/**\n * optional string modelProviderName = 22;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.getModelprovidername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 22, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.setModelprovidername = function(value) {\n  return jspb.Message.setProto3StringField(this, 22, value);\n};\n\n\n/**\n * repeated Metadata assistantModelOptions = 23;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.getAssistantmodeloptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 23));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel} returns this\n*/\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.setAssistantmodeloptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 23, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.addAssistantmodeloptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 23, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel.prototype.clearAssistantmodeloptionsList = function() {\n  return this.setAssistantmodeloptionsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    agentkiturl: jspb.Message.getFieldWithDefault(msg, 10, \"\"),\n    certificate: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    metadataMap: (f = msg.getMetadataMap()) ? f.toObject(includeInstance, undefined) : [],\n    transportsecurity: jspb.Message.getFieldWithDefault(msg, 13, \"\"),\n    tlsverification: jspb.Message.getFieldWithDefault(msg, 14, \"\"),\n    tlsservername: jspb.Message.getFieldWithDefault(msg, 15, \"\"),\n    connecttimeoutms: jspb.Message.getFieldWithDefault(msg, 16, 0),\n    keepalivetimems: jspb.Message.getFieldWithDefault(msg, 17, 0),\n    keepalivetimeoutms: jspb.Message.getFieldWithDefault(msg, 18, 0),\n    maxrecvmessagebytes: jspb.Message.getFieldWithDefault(msg, 19, 0),\n    maxsendmessagebytes: jspb.Message.getFieldWithDefault(msg, 20, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit;\n  return proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 10:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAgentkiturl(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setCertificate(value);\n      break;\n    case 12:\n      var value = msg.getMetadataMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    case 13:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setTransportsecurity(value);\n      break;\n    case 14:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setTlsverification(value);\n      break;\n    case 15:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setTlsservername(value);\n      break;\n    case 16:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setConnecttimeoutms(value);\n      break;\n    case 17:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setKeepalivetimems(value);\n      break;\n    case 18:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setKeepalivetimeoutms(value);\n      break;\n    case 19:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setMaxrecvmessagebytes(value);\n      break;\n    case 20:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setMaxsendmessagebytes(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAgentkiturl();\n  if (f.length > 0) {\n    writer.writeString(\n      10,\n      f\n    );\n  }\n  f = message.getCertificate();\n  if (f.length > 0) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getMetadataMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(12, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n  f = message.getTransportsecurity();\n  if (f.length > 0) {\n    writer.writeString(\n      13,\n      f\n    );\n  }\n  f = message.getTlsverification();\n  if (f.length > 0) {\n    writer.writeString(\n      14,\n      f\n    );\n  }\n  f = message.getTlsservername();\n  if (f.length > 0) {\n    writer.writeString(\n      15,\n      f\n    );\n  }\n  f = message.getConnecttimeoutms();\n  if (f !== 0) {\n    writer.writeUint32(\n      16,\n      f\n    );\n  }\n  f = message.getKeepalivetimems();\n  if (f !== 0) {\n    writer.writeUint32(\n      17,\n      f\n    );\n  }\n  f = message.getKeepalivetimeoutms();\n  if (f !== 0) {\n    writer.writeUint32(\n      18,\n      f\n    );\n  }\n  f = message.getMaxrecvmessagebytes();\n  if (f !== 0) {\n    writer.writeUint32(\n      19,\n      f\n    );\n  }\n  f = message.getMaxsendmessagebytes();\n  if (f !== 0) {\n    writer.writeUint32(\n      20,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string agentKitUrl = 10;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getAgentkiturl = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setAgentkiturl = function(value) {\n  return jspb.Message.setProto3StringField(this, 10, value);\n};\n\n\n/**\n * optional string certificate = 11;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getCertificate = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setCertificate = function(value) {\n  return jspb.Message.setProto3StringField(this, 11, value);\n};\n\n\n/**\n * map<string, string> metadata = 12;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getMetadataMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 12, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.clearMetadataMap = function() {\n  this.getMetadataMap().clear();\n  return this;};\n\n\n/**\n * optional string transportSecurity = 13;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getTransportsecurity = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setTransportsecurity = function(value) {\n  return jspb.Message.setProto3StringField(this, 13, value);\n};\n\n\n/**\n * optional string tlsVerification = 14;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getTlsverification = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setTlsverification = function(value) {\n  return jspb.Message.setProto3StringField(this, 14, value);\n};\n\n\n/**\n * optional string tlsServerName = 15;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getTlsservername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 15, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setTlsservername = function(value) {\n  return jspb.Message.setProto3StringField(this, 15, value);\n};\n\n\n/**\n * optional uint32 connectTimeoutMs = 16;\n * @return {number}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getConnecttimeoutms = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setConnecttimeoutms = function(value) {\n  return jspb.Message.setProto3IntField(this, 16, value);\n};\n\n\n/**\n * optional uint32 keepaliveTimeMs = 17;\n * @return {number}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getKeepalivetimems = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 17, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setKeepalivetimems = function(value) {\n  return jspb.Message.setProto3IntField(this, 17, value);\n};\n\n\n/**\n * optional uint32 keepaliveTimeoutMs = 18;\n * @return {number}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getKeepalivetimeoutms = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 18, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setKeepalivetimeoutms = function(value) {\n  return jspb.Message.setProto3IntField(this, 18, value);\n};\n\n\n/**\n * optional uint32 maxRecvMessageBytes = 19;\n * @return {number}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getMaxrecvmessagebytes = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 19, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setMaxrecvmessagebytes = function(value) {\n  return jspb.Message.setProto3IntField(this, 19, value);\n};\n\n\n/**\n * optional uint32 maxSendMessageBytes = 20;\n * @return {number}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.getMaxsendmessagebytes = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit.prototype.setMaxsendmessagebytes = function(value) {\n  return jspb.Message.setProto3IntField(this, 20, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    websocketurl: jspb.Message.getFieldWithDefault(msg, 30, \"\"),\n    headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, undefined) : [],\n    connectionparametersMap: (f = msg.getConnectionparametersMap()) ? f.toObject(includeInstance, undefined) : []\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket;\n  return proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 30:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setWebsocketurl(value);\n      break;\n    case 31:\n      var value = msg.getHeadersMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    case 32:\n      var value = msg.getConnectionparametersMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getWebsocketurl();\n  if (f.length > 0) {\n    writer.writeString(\n      30,\n      f\n    );\n  }\n  f = message.getHeadersMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(31, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n  f = message.getConnectionparametersMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(32, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n};\n\n\n/**\n * optional string websocketUrl = 30;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.prototype.getWebsocketurl = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 30, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.prototype.setWebsocketurl = function(value) {\n  return jspb.Message.setProto3StringField(this, 30, value);\n};\n\n\n/**\n * map<string, string> headers = 31;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.prototype.getHeadersMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 31, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.prototype.clearHeadersMap = function() {\n  this.getHeadersMap().clear();\n  return this;};\n\n\n/**\n * map<string, string> connectionParameters = 32;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.prototype.getConnectionparametersMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 32, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket.prototype.clearConnectionparametersMap = function() {\n  this.getConnectionparametersMap().clear();\n  return this;};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    schemaversion: jspb.Message.getFieldWithDefault(msg, 40, \"\"),\n    definition: (f = msg.getDefinition()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow;\n  return proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 40:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSchemaversion(value);\n      break;\n    case 41:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setDefinition(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getSchemaversion();\n  if (f.length > 0) {\n    writer.writeString(\n      40,\n      f\n    );\n  }\n  f = message.getDefinition();\n  if (f != null) {\n    writer.writeMessage(\n      41,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional string schemaVersion = 40;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.prototype.getSchemaversion = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 40, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.prototype.setSchemaversion = function(value) {\n  return jspb.Message.setProto3StringField(this, 40, value);\n};\n\n\n/**\n * optional google.protobuf.Struct definition = 41;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.prototype.getDefinition = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 41));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow} returns this\n*/\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.prototype.setDefinition = function(value) {\n  return jspb.Message.setWrapperField(this, 41, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.prototype.clearDefinition = function() {\n  return this.setDefinition(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow.prototype.hasDefinition = function() {\n  return jspb.Message.getField(this, 41) != null;\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string description = 2;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional CreateAssistantProviderModel model = 50;\n * @return {?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.getModel = function() {\n  return /** @type{?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel, 50));\n};\n\n\n/**\n * @param {?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderModel|undefined} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n*/\nproto.assistant_api.CreateAssistantProviderRequest.prototype.setModel = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 50, proto.assistant_api.CreateAssistantProviderRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.clearModel = function() {\n  return this.setModel(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.hasModel = function() {\n  return jspb.Message.getField(this, 50) != null;\n};\n\n\n/**\n * optional CreateAssistantProviderAgentkit agentkit = 51;\n * @return {?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.getAgentkit = function() {\n  return /** @type{?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit, 51));\n};\n\n\n/**\n * @param {?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentkit|undefined} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n*/\nproto.assistant_api.CreateAssistantProviderRequest.prototype.setAgentkit = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 51, proto.assistant_api.CreateAssistantProviderRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.clearAgentkit = function() {\n  return this.setAgentkit(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.hasAgentkit = function() {\n  return jspb.Message.getField(this, 51) != null;\n};\n\n\n/**\n * optional CreateAssistantProviderWebsocket websocket = 52;\n * @return {?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.getWebsocket = function() {\n  return /** @type{?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket, 52));\n};\n\n\n/**\n * @param {?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderWebsocket|undefined} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n*/\nproto.assistant_api.CreateAssistantProviderRequest.prototype.setWebsocket = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 52, proto.assistant_api.CreateAssistantProviderRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.clearWebsocket = function() {\n  return this.setWebsocket(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.hasWebsocket = function() {\n  return jspb.Message.getField(this, 52) != null;\n};\n\n\n/**\n * optional CreateAssistantProviderAgentflow agentflow = 53;\n * @return {?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.getAgentflow = function() {\n  return /** @type{?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow, 53));\n};\n\n\n/**\n * @param {?proto.assistant_api.CreateAssistantProviderRequest.CreateAssistantProviderAgentflow|undefined} value\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n*/\nproto.assistant_api.CreateAssistantProviderRequest.prototype.setAgentflow = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 53, proto.assistant_api.CreateAssistantProviderRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantProviderRequest} returns this\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.clearAgentflow = function() {\n  return this.setAgentflow(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantProviderRequest.prototype.hasAgentflow = function() {\n  return jspb.Message.getField(this, 53) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantProviderAgentkit.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantProviderAgentkit} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantProviderAgentkit.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    description: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 3, 0),\n    status: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    url: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    certificate: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    metadataMap: (f = msg.getMetadataMap()) ? f.toObject(includeInstance, undefined) : [],\n    createdactor: (f = msg.getCreatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    updatedactor: (f = msg.getUpdatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    transportsecurity: jspb.Message.getFieldWithDefault(msg, 19, \"\"),\n    tlsverification: jspb.Message.getFieldWithDefault(msg, 20, \"\"),\n    tlsservername: jspb.Message.getFieldWithDefault(msg, 21, \"\"),\n    connecttimeoutms: jspb.Message.getFieldWithDefault(msg, 22, 0),\n    keepalivetimems: jspb.Message.getFieldWithDefault(msg, 23, 0),\n    keepalivetimeoutms: jspb.Message.getFieldWithDefault(msg, 24, 0),\n    maxrecvmessagebytes: jspb.Message.getFieldWithDefault(msg, 25, 0),\n    maxsendmessagebytes: jspb.Message.getFieldWithDefault(msg, 26, 0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantProviderAgentkit}\n */\nproto.assistant_api.AssistantProviderAgentkit.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantProviderAgentkit;\n  return proto.assistant_api.AssistantProviderAgentkit.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantProviderAgentkit} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantProviderAgentkit}\n */\nproto.assistant_api.AssistantProviderAgentkit.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 3:\n      var value = /** @type {number} */ (reader.readUint64());\n      msg.setAssistantid(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUrl(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setCertificate(value);\n      break;\n    case 7:\n      var value = msg.getMetadataMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    case 1000:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setCreatedactor(value);\n      break;\n    case 1001:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setUpdatedactor(value);\n      break;\n    case 17:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 18:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 19:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setTransportsecurity(value);\n      break;\n    case 20:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setTlsverification(value);\n      break;\n    case 21:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setTlsservername(value);\n      break;\n    case 22:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setConnecttimeoutms(value);\n      break;\n    case 23:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setKeepalivetimems(value);\n      break;\n    case 24:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setKeepalivetimeoutms(value);\n      break;\n    case 25:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setMaxrecvmessagebytes(value);\n      break;\n    case 26:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setMaxsendmessagebytes(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantProviderAgentkit.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantProviderAgentkit} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantProviderAgentkit.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (f !== 0) {\n    writer.writeUint64(\n      3,\n      f\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getUrl();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getCertificate();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = message.getMetadataMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n  f = message.getCreatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1000,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1001,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      17,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      18,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getTransportsecurity();\n  if (f.length > 0) {\n    writer.writeString(\n      19,\n      f\n    );\n  }\n  f = message.getTlsverification();\n  if (f.length > 0) {\n    writer.writeString(\n      20,\n      f\n    );\n  }\n  f = message.getTlsservername();\n  if (f.length > 0) {\n    writer.writeString(\n      21,\n      f\n    );\n  }\n  f = message.getConnecttimeoutms();\n  if (f !== 0) {\n    writer.writeUint32(\n      22,\n      f\n    );\n  }\n  f = message.getKeepalivetimems();\n  if (f !== 0) {\n    writer.writeUint32(\n      23,\n      f\n    );\n  }\n  f = message.getKeepalivetimeoutms();\n  if (f !== 0) {\n    writer.writeUint32(\n      24,\n      f\n    );\n  }\n  f = message.getMaxrecvmessagebytes();\n  if (f !== 0) {\n    writer.writeUint32(\n      25,\n      f\n    );\n  }\n  f = message.getMaxsendmessagebytes();\n  if (f !== 0) {\n    writer.writeUint32(\n      26,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string description = 2;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional uint64 assistantId = 3;\n * @return {number}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getAssistantid = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional string status = 4;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string url = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getUrl = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setUrl = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional string certificate = 6;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getCertificate = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setCertificate = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * map<string, string> metadata = 7;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getMetadataMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 7, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.clearMetadataMap = function() {\n  this.getMetadataMap().clear();\n  return this;};\n\n\n/**\n * optional AuditActor createdActor = 1000;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getCreatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1000));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n*/\nproto.assistant_api.AssistantProviderAgentkit.prototype.setCreatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1000, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.clearCreatedactor = function() {\n  return this.setCreatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.hasCreatedactor = function() {\n  return jspb.Message.getField(this, 1000) != null;\n};\n\n\n/**\n * optional AuditActor updatedActor = 1001;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getUpdatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1001));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n*/\nproto.assistant_api.AssistantProviderAgentkit.prototype.setUpdatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.clearUpdatedactor = function() {\n  return this.setUpdatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.hasUpdatedactor = function() {\n  return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 17;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 17));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n*/\nproto.assistant_api.AssistantProviderAgentkit.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 17, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 17) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 18;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 18));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n*/\nproto.assistant_api.AssistantProviderAgentkit.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 18, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 18) != null;\n};\n\n\n/**\n * optional string transportSecurity = 19;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getTransportsecurity = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 19, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setTransportsecurity = function(value) {\n  return jspb.Message.setProto3StringField(this, 19, value);\n};\n\n\n/**\n * optional string tlsVerification = 20;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getTlsverification = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 20, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setTlsverification = function(value) {\n  return jspb.Message.setProto3StringField(this, 20, value);\n};\n\n\n/**\n * optional string tlsServerName = 21;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getTlsservername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 21, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setTlsservername = function(value) {\n  return jspb.Message.setProto3StringField(this, 21, value);\n};\n\n\n/**\n * optional uint32 connectTimeoutMs = 22;\n * @return {number}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getConnecttimeoutms = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 22, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setConnecttimeoutms = function(value) {\n  return jspb.Message.setProto3IntField(this, 22, value);\n};\n\n\n/**\n * optional uint32 keepaliveTimeMs = 23;\n * @return {number}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getKeepalivetimems = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 23, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setKeepalivetimems = function(value) {\n  return jspb.Message.setProto3IntField(this, 23, value);\n};\n\n\n/**\n * optional uint32 keepaliveTimeoutMs = 24;\n * @return {number}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getKeepalivetimeoutms = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setKeepalivetimeoutms = function(value) {\n  return jspb.Message.setProto3IntField(this, 24, value);\n};\n\n\n/**\n * optional uint32 maxRecvMessageBytes = 25;\n * @return {number}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getMaxrecvmessagebytes = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setMaxrecvmessagebytes = function(value) {\n  return jspb.Message.setProto3IntField(this, 25, value);\n};\n\n\n/**\n * optional uint32 maxSendMessageBytes = 26;\n * @return {number}\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.getMaxsendmessagebytes = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 26, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantProviderAgentkit} returns this\n */\nproto.assistant_api.AssistantProviderAgentkit.prototype.setMaxsendmessagebytes = function(value) {\n  return jspb.Message.setProto3IntField(this, 26, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantProviderWebsocket.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantProviderWebsocket} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantProviderWebsocket.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    description: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 3, 0),\n    url: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, undefined) : [],\n    parametersMap: (f = msg.getParametersMap()) ? f.toObject(includeInstance, undefined) : [],\n    status: jspb.Message.getFieldWithDefault(msg, 12, \"\"),\n    createdactor: (f = msg.getCreatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    updatedactor: (f = msg.getUpdatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantProviderWebsocket}\n */\nproto.assistant_api.AssistantProviderWebsocket.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantProviderWebsocket;\n  return proto.assistant_api.AssistantProviderWebsocket.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantProviderWebsocket} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantProviderWebsocket}\n */\nproto.assistant_api.AssistantProviderWebsocket.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 3:\n      var value = /** @type {number} */ (reader.readUint64());\n      msg.setAssistantid(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setUrl(value);\n      break;\n    case 6:\n      var value = msg.getHeadersMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    case 7:\n      var value = msg.getParametersMap();\n      reader.readMessage(value, function(message, reader) {\n        jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, \"\", \"\");\n         });\n      break;\n    case 12:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 1000:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setCreatedactor(value);\n      break;\n    case 1001:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setUpdatedactor(value);\n      break;\n    case 17:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 18:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantProviderWebsocket.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantProviderWebsocket} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantProviderWebsocket.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (f !== 0) {\n    writer.writeUint64(\n      3,\n      f\n    );\n  }\n  f = message.getUrl();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getHeadersMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(6, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n  f = message.getParametersMap(true);\n  if (f && f.getLength() > 0) {\n    f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString);\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      12,\n      f\n    );\n  }\n  f = message.getCreatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1000,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1001,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      17,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      18,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string description = 2;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional uint64 assistantId = 3;\n * @return {number}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getAssistantid = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional string url = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getUrl = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.setUrl = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * map<string, string> headers = 6;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getHeadersMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 6, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.clearHeadersMap = function() {\n  this.getHeadersMap().clear();\n  return this;};\n\n\n/**\n * map<string, string> parameters = 7;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,string>}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getParametersMap = function(opt_noLazyCreate) {\n  return /** @type {!jspb.Map<string,string>} */ (\n      jspb.Message.getMapField(this, 7, opt_noLazyCreate,\n      null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.clearParametersMap = function() {\n  this.getParametersMap().clear();\n  return this;};\n\n\n/**\n * optional string status = 12;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 12, value);\n};\n\n\n/**\n * optional AuditActor createdActor = 1000;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getCreatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1000));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n*/\nproto.assistant_api.AssistantProviderWebsocket.prototype.setCreatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1000, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.clearCreatedactor = function() {\n  return this.setCreatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.hasCreatedactor = function() {\n  return jspb.Message.getField(this, 1000) != null;\n};\n\n\n/**\n * optional AuditActor updatedActor = 1001;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getUpdatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1001));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n*/\nproto.assistant_api.AssistantProviderWebsocket.prototype.setUpdatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.clearUpdatedactor = function() {\n  return this.setUpdatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.hasUpdatedactor = function() {\n  return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 17;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 17));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n*/\nproto.assistant_api.AssistantProviderWebsocket.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 17, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 17) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 18;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 18));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n*/\nproto.assistant_api.AssistantProviderWebsocket.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 18, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderWebsocket} returns this\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderWebsocket.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 18) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.AssistantProviderModel.repeatedFields_ = [9];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantProviderModel.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantProviderModel.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantProviderModel} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantProviderModel.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    template: (f = msg.getTemplate()) && common_pb.TextChatCompletePrompt.toObject(includeInstance, f),\n    description: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 4, 0),\n    modelprovidername: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n    assistantmodeloptionsList: jspb.Message.toObjectList(msg.getAssistantmodeloptionsList(),\n    common_pb.Metadata.toObject, includeInstance),\n    status: jspb.Message.getFieldWithDefault(msg, 12, \"\"),\n    createdactor: (f = msg.getCreatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    updatedactor: (f = msg.getUpdatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantProviderModel}\n */\nproto.assistant_api.AssistantProviderModel.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantProviderModel;\n  return proto.assistant_api.AssistantProviderModel.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantProviderModel} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantProviderModel}\n */\nproto.assistant_api.AssistantProviderModel.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = new common_pb.TextChatCompletePrompt;\n      reader.readMessage(value,common_pb.TextChatCompletePrompt.deserializeBinaryFromReader);\n      msg.setTemplate(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 4:\n      var value = /** @type {number} */ (reader.readUint64());\n      msg.setAssistantid(value);\n      break;\n    case 7:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setModelprovidername(value);\n      break;\n    case 9:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addAssistantmodeloptions(value);\n      break;\n    case 12:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 1000:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setCreatedactor(value);\n      break;\n    case 1001:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setUpdatedactor(value);\n      break;\n    case 17:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 18:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantProviderModel.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantProviderModel.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantProviderModel} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantProviderModel.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getTemplate();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      common_pb.TextChatCompletePrompt.serializeBinaryToWriter\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (f !== 0) {\n    writer.writeUint64(\n      4,\n      f\n    );\n  }\n  f = message.getModelprovidername();\n  if (f.length > 0) {\n    writer.writeString(\n      7,\n      f\n    );\n  }\n  f = message.getAssistantmodeloptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      9,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      12,\n      f\n    );\n  }\n  f = message.getCreatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1000,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1001,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      17,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      18,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional TextChatCompletePrompt template = 2;\n * @return {?proto.TextChatCompletePrompt}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getTemplate = function() {\n  return /** @type{?proto.TextChatCompletePrompt} */ (\n    jspb.Message.getWrapperField(this, common_pb.TextChatCompletePrompt, 2));\n};\n\n\n/**\n * @param {?proto.TextChatCompletePrompt|undefined} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n*/\nproto.assistant_api.AssistantProviderModel.prototype.setTemplate = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.clearTemplate = function() {\n  return this.setTemplate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderModel.prototype.hasTemplate = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional string description = 3;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional uint64 assistantId = 4;\n * @return {number}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getAssistantid = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional string modelProviderName = 7;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getModelprovidername = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.setModelprovidername = function(value) {\n  return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n/**\n * repeated Metadata assistantModelOptions = 9;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getAssistantmodeloptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 9));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n*/\nproto.assistant_api.AssistantProviderModel.prototype.setAssistantmodeloptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 9, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.AssistantProviderModel.prototype.addAssistantmodeloptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 9, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.clearAssistantmodeloptionsList = function() {\n  return this.setAssistantmodeloptionsList([]);\n};\n\n\n/**\n * optional string status = 12;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 12, value);\n};\n\n\n/**\n * optional AuditActor createdActor = 1000;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getCreatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1000));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n*/\nproto.assistant_api.AssistantProviderModel.prototype.setCreatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1000, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.clearCreatedactor = function() {\n  return this.setCreatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderModel.prototype.hasCreatedactor = function() {\n  return jspb.Message.getField(this, 1000) != null;\n};\n\n\n/**\n * optional AuditActor updatedActor = 1001;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getUpdatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1001));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n*/\nproto.assistant_api.AssistantProviderModel.prototype.setUpdatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.clearUpdatedactor = function() {\n  return this.setUpdatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderModel.prototype.hasUpdatedactor = function() {\n  return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 17;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 17));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n*/\nproto.assistant_api.AssistantProviderModel.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 17, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderModel.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 17) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 18;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantProviderModel.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 18));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n*/\nproto.assistant_api.AssistantProviderModel.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 18, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderModel} returns this\n */\nproto.assistant_api.AssistantProviderModel.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderModel.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 18) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantProviderAgentflow.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantProviderAgentflow} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantProviderAgentflow.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    description: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 3, \"0\"),\n    schemaversion: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    definition: (f = msg.getDefinition()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),\n    status: jspb.Message.getFieldWithDefault(msg, 12, \"\"),\n    createdactor: (f = msg.getCreatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    updatedactor: (f = msg.getUpdatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantProviderAgentflow}\n */\nproto.assistant_api.AssistantProviderAgentflow.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantProviderAgentflow;\n  return proto.assistant_api.AssistantProviderAgentflow.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantProviderAgentflow} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantProviderAgentflow}\n */\nproto.assistant_api.AssistantProviderAgentflow.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSchemaversion(value);\n      break;\n    case 5:\n      var value = new google_protobuf_struct_pb.Struct;\n      reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);\n      msg.setDefinition(value);\n      break;\n    case 12:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 1000:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setCreatedactor(value);\n      break;\n    case 1001:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setUpdatedactor(value);\n      break;\n    case 17:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 18:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantProviderAgentflow.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantProviderAgentflow} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantProviderAgentflow.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      3,\n      f\n    );\n  }\n  f = message.getSchemaversion();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getDefinition();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      google_protobuf_struct_pb.Struct.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      12,\n      f\n    );\n  }\n  f = message.getCreatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1000,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1001,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      17,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      18,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string description = 2;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional uint64 assistantId = 3;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 3, value);\n};\n\n\n/**\n * optional string schemaVersion = 4;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getSchemaversion = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.setSchemaversion = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional google.protobuf.Struct definition = 5;\n * @return {?proto.google.protobuf.Struct}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getDefinition = function() {\n  return /** @type{?proto.google.protobuf.Struct} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 5));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Struct|undefined} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n*/\nproto.assistant_api.AssistantProviderAgentflow.prototype.setDefinition = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.clearDefinition = function() {\n  return this.setDefinition(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.hasDefinition = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional string status = 12;\n * @return {string}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 12, value);\n};\n\n\n/**\n * optional AuditActor createdActor = 1000;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getCreatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1000));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n*/\nproto.assistant_api.AssistantProviderAgentflow.prototype.setCreatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1000, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.clearCreatedactor = function() {\n  return this.setCreatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.hasCreatedactor = function() {\n  return jspb.Message.getField(this, 1000) != null;\n};\n\n\n/**\n * optional AuditActor updatedActor = 1001;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getUpdatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1001));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n*/\nproto.assistant_api.AssistantProviderAgentflow.prototype.setUpdatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.clearUpdatedactor = function() {\n  return this.setUpdatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.hasUpdatedactor = function() {\n  return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 17;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 17));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n*/\nproto.assistant_api.AssistantProviderAgentflow.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 17, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 17) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 18;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 18));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n*/\nproto.assistant_api.AssistantProviderAgentflow.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 18, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantProviderAgentflow} returns this\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantProviderAgentflow.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 18) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantProviderRequest.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantProviderRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantProviderRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantProviderRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 5, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantProviderRequest}\n */\nproto.assistant_api.GetAllAssistantProviderRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantProviderRequest;\n  return proto.assistant_api.GetAllAssistantProviderRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantProviderRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantProviderRequest}\n */\nproto.assistant_api.GetAllAssistantProviderRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 2:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantProviderRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantProviderRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantProviderRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      2,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      5,\n      f\n    );\n  }\n};\n\n\n/**\n * optional Paginate paginate = 1;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 1));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantProviderRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantProviderRequest} returns this\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 2;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 2));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllAssistantProviderRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantProviderRequest} returns this\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n/**\n * optional uint64 assistantId = 5;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantProviderRequest} returns this\n */\nproto.assistant_api.GetAllAssistantProviderRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 5, value);\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.assistant_api.GetAssistantProviderResponse.oneofGroups_ = [[50,51,52,53]];\n\n/**\n * @enum {number}\n */\nproto.assistant_api.GetAssistantProviderResponse.DataCase = {\n  DATA_NOT_SET: 0,\n  ASSISTANTPROVIDERMODEL: 50,\n  ASSISTANTPROVIDERAGENTKIT: 51,\n  ASSISTANTPROVIDERWEBSOCKET: 52,\n  ASSISTANTPROVIDERAGENTFLOW: 53\n};\n\n/**\n * @return {proto.assistant_api.GetAssistantProviderResponse.DataCase}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.getDataCase = function() {\n  return /** @type {proto.assistant_api.GetAssistantProviderResponse.DataCase} */(jspb.Message.computeOneofCase(this, proto.assistant_api.GetAssistantProviderResponse.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantProviderResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantProviderResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantProviderResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    assistantprovidermodel: (f = msg.getAssistantprovidermodel()) && proto.assistant_api.AssistantProviderModel.toObject(includeInstance, f),\n    assistantprovideragentkit: (f = msg.getAssistantprovideragentkit()) && proto.assistant_api.AssistantProviderAgentkit.toObject(includeInstance, f),\n    assistantproviderwebsocket: (f = msg.getAssistantproviderwebsocket()) && proto.assistant_api.AssistantProviderWebsocket.toObject(includeInstance, f),\n    assistantprovideragentflow: (f = msg.getAssistantprovideragentflow()) && proto.assistant_api.AssistantProviderAgentflow.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantProviderResponse}\n */\nproto.assistant_api.GetAssistantProviderResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantProviderResponse;\n  return proto.assistant_api.GetAssistantProviderResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantProviderResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantProviderResponse}\n */\nproto.assistant_api.GetAssistantProviderResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 50:\n      var value = new proto.assistant_api.AssistantProviderModel;\n      reader.readMessage(value,proto.assistant_api.AssistantProviderModel.deserializeBinaryFromReader);\n      msg.setAssistantprovidermodel(value);\n      break;\n    case 51:\n      var value = new proto.assistant_api.AssistantProviderAgentkit;\n      reader.readMessage(value,proto.assistant_api.AssistantProviderAgentkit.deserializeBinaryFromReader);\n      msg.setAssistantprovideragentkit(value);\n      break;\n    case 52:\n      var value = new proto.assistant_api.AssistantProviderWebsocket;\n      reader.readMessage(value,proto.assistant_api.AssistantProviderWebsocket.deserializeBinaryFromReader);\n      msg.setAssistantproviderwebsocket(value);\n      break;\n    case 53:\n      var value = new proto.assistant_api.AssistantProviderAgentflow;\n      reader.readMessage(value,proto.assistant_api.AssistantProviderAgentflow.deserializeBinaryFromReader);\n      msg.setAssistantprovideragentflow(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantProviderResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantProviderResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantProviderResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getAssistantprovidermodel();\n  if (f != null) {\n    writer.writeMessage(\n      50,\n      f,\n      proto.assistant_api.AssistantProviderModel.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantprovideragentkit();\n  if (f != null) {\n    writer.writeMessage(\n      51,\n      f,\n      proto.assistant_api.AssistantProviderAgentkit.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantproviderwebsocket();\n  if (f != null) {\n    writer.writeMessage(\n      52,\n      f,\n      proto.assistant_api.AssistantProviderWebsocket.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantprovideragentflow();\n  if (f != null) {\n    writer.writeMessage(\n      53,\n      f,\n      proto.assistant_api.AssistantProviderAgentflow.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantProviderModel assistantProviderModel = 50;\n * @return {?proto.assistant_api.AssistantProviderModel}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.getAssistantprovidermodel = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderModel} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantProviderModel, 50));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderModel|undefined} value\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n*/\nproto.assistant_api.GetAssistantProviderResponse.prototype.setAssistantprovidermodel = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 50, proto.assistant_api.GetAssistantProviderResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.clearAssistantprovidermodel = function() {\n  return this.setAssistantprovidermodel(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.hasAssistantprovidermodel = function() {\n  return jspb.Message.getField(this, 50) != null;\n};\n\n\n/**\n * optional AssistantProviderAgentkit assistantProviderAgentkit = 51;\n * @return {?proto.assistant_api.AssistantProviderAgentkit}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.getAssistantprovideragentkit = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderAgentkit} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantProviderAgentkit, 51));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderAgentkit|undefined} value\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n*/\nproto.assistant_api.GetAssistantProviderResponse.prototype.setAssistantprovideragentkit = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 51, proto.assistant_api.GetAssistantProviderResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.clearAssistantprovideragentkit = function() {\n  return this.setAssistantprovideragentkit(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.hasAssistantprovideragentkit = function() {\n  return jspb.Message.getField(this, 51) != null;\n};\n\n\n/**\n * optional AssistantProviderWebsocket assistantProviderWebsocket = 52;\n * @return {?proto.assistant_api.AssistantProviderWebsocket}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.getAssistantproviderwebsocket = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderWebsocket} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantProviderWebsocket, 52));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderWebsocket|undefined} value\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n*/\nproto.assistant_api.GetAssistantProviderResponse.prototype.setAssistantproviderwebsocket = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 52, proto.assistant_api.GetAssistantProviderResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.clearAssistantproviderwebsocket = function() {\n  return this.setAssistantproviderwebsocket(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.hasAssistantproviderwebsocket = function() {\n  return jspb.Message.getField(this, 52) != null;\n};\n\n\n/**\n * optional AssistantProviderAgentflow assistantProviderAgentflow = 53;\n * @return {?proto.assistant_api.AssistantProviderAgentflow}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.getAssistantprovideragentflow = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderAgentflow} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantProviderAgentflow, 53));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderAgentflow|undefined} value\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n*/\nproto.assistant_api.GetAssistantProviderResponse.prototype.setAssistantprovideragentflow = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 53, proto.assistant_api.GetAssistantProviderResponse.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.clearAssistantprovideragentflow = function() {\n  return this.setAssistantprovideragentflow(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.hasAssistantprovideragentflow = function() {\n  return jspb.Message.getField(this, 53) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n*/\nproto.assistant_api.GetAssistantProviderResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantProviderResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantProviderResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantProviderResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantProviderResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantProviderResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantProviderResponse;\n  return proto.assistant_api.GetAllAssistantProviderResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantProviderResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider;\n      reader.readMessage(value,proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantProviderResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantProviderResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantProviderResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.oneofGroups_ = [[50,51,52,53]];\n\n/**\n * @enum {number}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.AssistantproviderCase = {\n  ASSISTANTPROVIDER_NOT_SET: 0,\n  ASSISTANTPROVIDERMODEL: 50,\n  ASSISTANTPROVIDERAGENTKIT: 51,\n  ASSISTANTPROVIDERWEBSOCKET: 52,\n  ASSISTANTPROVIDERAGENTFLOW: 53\n};\n\n/**\n * @return {proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.AssistantproviderCase}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.getAssistantproviderCase = function() {\n  return /** @type {proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.AssistantproviderCase} */(jspb.Message.computeOneofCase(this, proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantprovidermodel: (f = msg.getAssistantprovidermodel()) && proto.assistant_api.AssistantProviderModel.toObject(includeInstance, f),\n    assistantprovideragentkit: (f = msg.getAssistantprovideragentkit()) && proto.assistant_api.AssistantProviderAgentkit.toObject(includeInstance, f),\n    assistantproviderwebsocket: (f = msg.getAssistantproviderwebsocket()) && proto.assistant_api.AssistantProviderWebsocket.toObject(includeInstance, f),\n    assistantprovideragentflow: (f = msg.getAssistantprovideragentflow()) && proto.assistant_api.AssistantProviderAgentflow.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider;\n  return proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 50:\n      var value = new proto.assistant_api.AssistantProviderModel;\n      reader.readMessage(value,proto.assistant_api.AssistantProviderModel.deserializeBinaryFromReader);\n      msg.setAssistantprovidermodel(value);\n      break;\n    case 51:\n      var value = new proto.assistant_api.AssistantProviderAgentkit;\n      reader.readMessage(value,proto.assistant_api.AssistantProviderAgentkit.deserializeBinaryFromReader);\n      msg.setAssistantprovideragentkit(value);\n      break;\n    case 52:\n      var value = new proto.assistant_api.AssistantProviderWebsocket;\n      reader.readMessage(value,proto.assistant_api.AssistantProviderWebsocket.deserializeBinaryFromReader);\n      msg.setAssistantproviderwebsocket(value);\n      break;\n    case 53:\n      var value = new proto.assistant_api.AssistantProviderAgentflow;\n      reader.readMessage(value,proto.assistant_api.AssistantProviderAgentflow.deserializeBinaryFromReader);\n      msg.setAssistantprovideragentflow(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantprovidermodel();\n  if (f != null) {\n    writer.writeMessage(\n      50,\n      f,\n      proto.assistant_api.AssistantProviderModel.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantprovideragentkit();\n  if (f != null) {\n    writer.writeMessage(\n      51,\n      f,\n      proto.assistant_api.AssistantProviderAgentkit.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantproviderwebsocket();\n  if (f != null) {\n    writer.writeMessage(\n      52,\n      f,\n      proto.assistant_api.AssistantProviderWebsocket.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantprovideragentflow();\n  if (f != null) {\n    writer.writeMessage(\n      53,\n      f,\n      proto.assistant_api.AssistantProviderAgentflow.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional AssistantProviderModel assistantProviderModel = 50;\n * @return {?proto.assistant_api.AssistantProviderModel}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.getAssistantprovidermodel = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderModel} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantProviderModel, 50));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderModel|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} returns this\n*/\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.setAssistantprovidermodel = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 50, proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} returns this\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.clearAssistantprovidermodel = function() {\n  return this.setAssistantprovidermodel(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.hasAssistantprovidermodel = function() {\n  return jspb.Message.getField(this, 50) != null;\n};\n\n\n/**\n * optional AssistantProviderAgentkit assistantProviderAgentkit = 51;\n * @return {?proto.assistant_api.AssistantProviderAgentkit}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.getAssistantprovideragentkit = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderAgentkit} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantProviderAgentkit, 51));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderAgentkit|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} returns this\n*/\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.setAssistantprovideragentkit = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 51, proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} returns this\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.clearAssistantprovideragentkit = function() {\n  return this.setAssistantprovideragentkit(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.hasAssistantprovideragentkit = function() {\n  return jspb.Message.getField(this, 51) != null;\n};\n\n\n/**\n * optional AssistantProviderWebsocket assistantProviderWebsocket = 52;\n * @return {?proto.assistant_api.AssistantProviderWebsocket}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.getAssistantproviderwebsocket = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderWebsocket} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantProviderWebsocket, 52));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderWebsocket|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} returns this\n*/\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.setAssistantproviderwebsocket = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 52, proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} returns this\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.clearAssistantproviderwebsocket = function() {\n  return this.setAssistantproviderwebsocket(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.hasAssistantproviderwebsocket = function() {\n  return jspb.Message.getField(this, 52) != null;\n};\n\n\n/**\n * optional AssistantProviderAgentflow assistantProviderAgentflow = 53;\n * @return {?proto.assistant_api.AssistantProviderAgentflow}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.getAssistantprovideragentflow = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderAgentflow} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantProviderAgentflow, 53));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderAgentflow|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} returns this\n*/\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.setAssistantprovideragentflow = function(value) {\n  return jspb.Message.setOneofWrapperField(this, 53, proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider} returns this\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.clearAssistantprovideragentflow = function() {\n  return this.setAssistantprovideragentflow(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider.prototype.hasAssistantprovideragentflow = function() {\n  return jspb.Message.getField(this, 53) != null;\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantProvider data = 3;\n * @return {!Array<!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider>}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider>} value\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.GetAllAssistantProviderResponse.AssistantProvider, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantProviderResponse} returns this\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantProviderResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\ngoog.object.extend(exports, proto.assistant_api);\n","// source: assistant-api.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n *     field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() { return this || window || global || self || Function('return this')(); }).call(null);\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\nvar common_pb = require('./common_pb.js');\ngoog.object.extend(proto, common_pb);\nvar assistant$deployment_pb = require('./assistant-deployment_pb.js');\ngoog.object.extend(proto, assistant$deployment_pb);\nvar assistant$tool_pb = require('./assistant-tool_pb.js');\ngoog.object.extend(proto, assistant$tool_pb);\nvar assistant$http$log_pb = require('./assistant-http-log_pb.js');\ngoog.object.extend(proto, assistant$http$log_pb);\nvar assistant$knowledge_pb = require('./assistant-knowledge_pb.js');\ngoog.object.extend(proto, assistant$knowledge_pb);\nvar assistant$provider_pb = require('./assistant-provider_pb.js');\ngoog.object.extend(proto, assistant$provider_pb);\ngoog.exportSymbol('proto.assistant_api.Assistant', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantConfiguration', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantDashboard', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantDashboardBucket', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantDashboardDistribution', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantDashboardLatency', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantDashboardSummary', null, global);\ngoog.exportSymbol('proto.assistant_api.AssistantDashboardUsage', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantConfigurationRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.CreateAssistantTagRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.DeleteAssistantConfigurationRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.DeleteAssistantRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantConfigurationRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantConfigurationResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantMessageRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantMessageResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllAssistantResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllMessageRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAllMessageResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantConfigurationRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantConfigurationResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantConversationRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantConversationResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantDashboardRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantDashboardResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.GetAssistantResponse', null, global);\ngoog.exportSymbol('proto.assistant_api.UpdateAssistantConfigurationRequest', null, global);\ngoog.exportSymbol('proto.assistant_api.UpdateAssistantDetailRequest', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.Assistant = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, 500, proto.assistant_api.Assistant.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.Assistant, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.Assistant.displayName = 'proto.assistant_api.Assistant';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.CreateAssistantRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantRequest.displayName = 'proto.assistant_api.CreateAssistantRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantTagRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.CreateAssistantTagRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantTagRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantTagRequest.displayName = 'proto.assistant_api.CreateAssistantTagRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantRequest.displayName = 'proto.assistant_api.GetAssistantRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.DeleteAssistantRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.DeleteAssistantRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.DeleteAssistantRequest.displayName = 'proto.assistant_api.DeleteAssistantRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantResponse.displayName = 'proto.assistant_api.GetAssistantResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantRequest.displayName = 'proto.assistant_api.GetAllAssistantRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantConfiguration = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, 500, proto.assistant_api.AssistantConfiguration.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.AssistantConfiguration, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantConfiguration.displayName = 'proto.assistant_api.AssistantConfiguration';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantConfigurationRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantConfigurationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantConfigurationRequest.displayName = 'proto.assistant_api.GetAssistantConfigurationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantConfigurationResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantConfigurationResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantConfigurationResponse.displayName = 'proto.assistant_api.GetAssistantConfigurationResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantConfigurationRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantConfigurationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantConfigurationRequest.displayName = 'proto.assistant_api.GetAllAssistantConfigurationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantConfigurationResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantConfigurationResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantConfigurationResponse.displayName = 'proto.assistant_api.GetAllAssistantConfigurationResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.CreateAssistantConfigurationRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.CreateAssistantConfigurationRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.CreateAssistantConfigurationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.CreateAssistantConfigurationRequest.displayName = 'proto.assistant_api.CreateAssistantConfigurationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.UpdateAssistantConfigurationRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.UpdateAssistantConfigurationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.UpdateAssistantConfigurationRequest.displayName = 'proto.assistant_api.UpdateAssistantConfigurationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.DeleteAssistantConfigurationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.DeleteAssistantConfigurationRequest.displayName = 'proto.assistant_api.DeleteAssistantConfigurationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantResponse.displayName = 'proto.assistant_api.GetAllAssistantResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantMessageRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantMessageRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantMessageRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantMessageRequest.displayName = 'proto.assistant_api.GetAllAssistantMessageRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllAssistantMessageResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllAssistantMessageResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllAssistantMessageResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllAssistantMessageResponse.displayName = 'proto.assistant_api.GetAllAssistantMessageResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllMessageRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllMessageRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllMessageRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllMessageRequest.displayName = 'proto.assistant_api.GetAllMessageRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAllMessageResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAllMessageResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAllMessageResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAllMessageResponse.displayName = 'proto.assistant_api.GetAllMessageResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantDashboardRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantDashboardRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantDashboardRequest.displayName = 'proto.assistant_api.GetAssistantDashboardRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantDashboardResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantDashboardResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantDashboardResponse.displayName = 'proto.assistant_api.GetAssistantDashboardResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantDashboard = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.AssistantDashboard.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.AssistantDashboard, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantDashboard.displayName = 'proto.assistant_api.AssistantDashboard';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantDashboardSummary = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantDashboardSummary, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantDashboardSummary.displayName = 'proto.assistant_api.AssistantDashboardSummary';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantDashboardLatency = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantDashboardLatency, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantDashboardLatency.displayName = 'proto.assistant_api.AssistantDashboardLatency';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantDashboardUsage = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantDashboardUsage, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantDashboardUsage.displayName = 'proto.assistant_api.AssistantDashboardUsage';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantDashboardDistribution = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantDashboardDistribution, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantDashboardDistribution.displayName = 'proto.assistant_api.AssistantDashboardDistribution';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.AssistantDashboardBucket = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.AssistantDashboardBucket, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.AssistantDashboardBucket.displayName = 'proto.assistant_api.AssistantDashboardBucket';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.UpdateAssistantDetailRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.UpdateAssistantDetailRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.UpdateAssistantDetailRequest.displayName = 'proto.assistant_api.UpdateAssistantDetailRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantConversationRequest = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, proto.assistant_api.GetAssistantConversationRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantConversationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantConversationRequest.displayName = 'proto.assistant_api.GetAssistantConversationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.assistant_api.GetAssistantConversationResponse = function(opt_data) {\n  jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.assistant_api.GetAssistantConversationResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n  /**\n   * @public\n   * @override\n   */\n  proto.assistant_api.GetAssistantConversationResponse.displayName = 'proto.assistant_api.GetAssistantConversationResponse';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.Assistant.repeatedFields_ = [35,37,40];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.Assistant.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.Assistant.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.Assistant} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.Assistant.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    status: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    visibility: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    source: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    sourceidentifier: jspb.Message.getFieldWithDefault(msg, 5, \"0\"),\n    projectid: jspb.Message.getFieldWithDefault(msg, 7, \"0\"),\n    organizationid: jspb.Message.getFieldWithDefault(msg, 8, \"0\"),\n    assistantprovider: jspb.Message.getFieldWithDefault(msg, 9, \"\"),\n    assistantproviderid: jspb.Message.getFieldWithDefault(msg, 10, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n    description: jspb.Message.getFieldWithDefault(msg, 12, \"\"),\n    assistantprovidermodel: (f = msg.getAssistantprovidermodel()) && assistant$provider_pb.AssistantProviderModel.toObject(includeInstance, f),\n    assistantprovideragentkit: (f = msg.getAssistantprovideragentkit()) && assistant$provider_pb.AssistantProviderAgentkit.toObject(includeInstance, f),\n    assistantproviderwebsocket: (f = msg.getAssistantproviderwebsocket()) && assistant$provider_pb.AssistantProviderWebsocket.toObject(includeInstance, f),\n    assistantprovideragentflow: (f = msg.getAssistantprovideragentflow()) && assistant$provider_pb.AssistantProviderAgentflow.toObject(includeInstance, f),\n    assistanttag: (f = msg.getAssistanttag()) && common_pb.Tag.toObject(includeInstance, f),\n    createdactor: (f = msg.getCreatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    updatedactor: (f = msg.getUpdatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    debuggerdeployment: (f = msg.getDebuggerdeployment()) && assistant$deployment_pb.AssistantDebuggerDeployment.toObject(includeInstance, f),\n    phonedeployment: (f = msg.getPhonedeployment()) && assistant$deployment_pb.AssistantPhoneDeployment.toObject(includeInstance, f),\n    whatsappdeployment: (f = msg.getWhatsappdeployment()) && assistant$deployment_pb.AssistantWhatsappDeployment.toObject(includeInstance, f),\n    webplugindeployment: (f = msg.getWebplugindeployment()) && assistant$deployment_pb.AssistantWebpluginDeployment.toObject(includeInstance, f),\n    apideployment: (f = msg.getApideployment()) && assistant$deployment_pb.AssistantApiDeployment.toObject(includeInstance, f),\n    assistantconversationsList: jspb.Message.toObjectList(msg.getAssistantconversationsList(),\n    common_pb.AssistantConversation.toObject, includeInstance),\n    assistanttoolsList: jspb.Message.toObjectList(msg.getAssistanttoolsList(),\n    assistant$tool_pb.AssistantTool.toObject, includeInstance),\n    assistantconfigurationsList: jspb.Message.toObjectList(msg.getAssistantconfigurationsList(),\n    proto.assistant_api.AssistantConfiguration.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.Assistant}\n */\nproto.assistant_api.Assistant.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.Assistant;\n  return proto.assistant_api.Assistant.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.Assistant} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.Assistant}\n */\nproto.assistant_api.Assistant.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setVisibility(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSource(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setSourceidentifier(value);\n      break;\n    case 7:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 8:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setOrganizationid(value);\n      break;\n    case 9:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setAssistantprovider(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantproviderid(value);\n      break;\n    case 11:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 12:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 50:\n      var value = new assistant$provider_pb.AssistantProviderModel;\n      reader.readMessage(value,assistant$provider_pb.AssistantProviderModel.deserializeBinaryFromReader);\n      msg.setAssistantprovidermodel(value);\n      break;\n    case 51:\n      var value = new assistant$provider_pb.AssistantProviderAgentkit;\n      reader.readMessage(value,assistant$provider_pb.AssistantProviderAgentkit.deserializeBinaryFromReader);\n      msg.setAssistantprovideragentkit(value);\n      break;\n    case 52:\n      var value = new assistant$provider_pb.AssistantProviderWebsocket;\n      reader.readMessage(value,assistant$provider_pb.AssistantProviderWebsocket.deserializeBinaryFromReader);\n      msg.setAssistantproviderwebsocket(value);\n      break;\n    case 53:\n      var value = new assistant$provider_pb.AssistantProviderAgentflow;\n      reader.readMessage(value,assistant$provider_pb.AssistantProviderAgentflow.deserializeBinaryFromReader);\n      msg.setAssistantprovideragentflow(value);\n      break;\n    case 14:\n      var value = new common_pb.Tag;\n      reader.readMessage(value,common_pb.Tag.deserializeBinaryFromReader);\n      msg.setAssistanttag(value);\n      break;\n    case 1000:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setCreatedactor(value);\n      break;\n    case 1001:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setUpdatedactor(value);\n      break;\n    case 26:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 27:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    case 30:\n      var value = new assistant$deployment_pb.AssistantDebuggerDeployment;\n      reader.readMessage(value,assistant$deployment_pb.AssistantDebuggerDeployment.deserializeBinaryFromReader);\n      msg.setDebuggerdeployment(value);\n      break;\n    case 31:\n      var value = new assistant$deployment_pb.AssistantPhoneDeployment;\n      reader.readMessage(value,assistant$deployment_pb.AssistantPhoneDeployment.deserializeBinaryFromReader);\n      msg.setPhonedeployment(value);\n      break;\n    case 32:\n      var value = new assistant$deployment_pb.AssistantWhatsappDeployment;\n      reader.readMessage(value,assistant$deployment_pb.AssistantWhatsappDeployment.deserializeBinaryFromReader);\n      msg.setWhatsappdeployment(value);\n      break;\n    case 33:\n      var value = new assistant$deployment_pb.AssistantWebpluginDeployment;\n      reader.readMessage(value,assistant$deployment_pb.AssistantWebpluginDeployment.deserializeBinaryFromReader);\n      msg.setWebplugindeployment(value);\n      break;\n    case 34:\n      var value = new assistant$deployment_pb.AssistantApiDeployment;\n      reader.readMessage(value,assistant$deployment_pb.AssistantApiDeployment.deserializeBinaryFromReader);\n      msg.setApideployment(value);\n      break;\n    case 35:\n      var value = new common_pb.AssistantConversation;\n      reader.readMessage(value,common_pb.AssistantConversation.deserializeBinaryFromReader);\n      msg.addAssistantconversations(value);\n      break;\n    case 37:\n      var value = new assistant$tool_pb.AssistantTool;\n      reader.readMessage(value,assistant$tool_pb.AssistantTool.deserializeBinaryFromReader);\n      msg.addAssistanttools(value);\n      break;\n    case 40:\n      var value = new proto.assistant_api.AssistantConfiguration;\n      reader.readMessage(value,proto.assistant_api.AssistantConfiguration.deserializeBinaryFromReader);\n      msg.addAssistantconfigurations(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.Assistant.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.Assistant.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.Assistant} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.Assistant.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getVisibility();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getSource();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getSourceidentifier();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      5,\n      f\n    );\n  }\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      7,\n      f\n    );\n  }\n  f = message.getOrganizationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      8,\n      f\n    );\n  }\n  f = message.getAssistantprovider();\n  if (f.length > 0) {\n    writer.writeString(\n      9,\n      f\n    );\n  }\n  f = message.getAssistantproviderid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      10,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      11,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      12,\n      f\n    );\n  }\n  f = message.getAssistantprovidermodel();\n  if (f != null) {\n    writer.writeMessage(\n      50,\n      f,\n      assistant$provider_pb.AssistantProviderModel.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantprovideragentkit();\n  if (f != null) {\n    writer.writeMessage(\n      51,\n      f,\n      assistant$provider_pb.AssistantProviderAgentkit.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantproviderwebsocket();\n  if (f != null) {\n    writer.writeMessage(\n      52,\n      f,\n      assistant$provider_pb.AssistantProviderWebsocket.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantprovideragentflow();\n  if (f != null) {\n    writer.writeMessage(\n      53,\n      f,\n      assistant$provider_pb.AssistantProviderAgentflow.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistanttag();\n  if (f != null) {\n    writer.writeMessage(\n      14,\n      f,\n      common_pb.Tag.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1000,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1001,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      26,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      27,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getDebuggerdeployment();\n  if (f != null) {\n    writer.writeMessage(\n      30,\n      f,\n      assistant$deployment_pb.AssistantDebuggerDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getPhonedeployment();\n  if (f != null) {\n    writer.writeMessage(\n      31,\n      f,\n      assistant$deployment_pb.AssistantPhoneDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getWhatsappdeployment();\n  if (f != null) {\n    writer.writeMessage(\n      32,\n      f,\n      assistant$deployment_pb.AssistantWhatsappDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getWebplugindeployment();\n  if (f != null) {\n    writer.writeMessage(\n      33,\n      f,\n      assistant$deployment_pb.AssistantWebpluginDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getApideployment();\n  if (f != null) {\n    writer.writeMessage(\n      34,\n      f,\n      assistant$deployment_pb.AssistantApiDeployment.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantconversationsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      35,\n      f,\n      common_pb.AssistantConversation.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistanttoolsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      37,\n      f,\n      assistant$tool_pb.AssistantTool.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantconfigurationsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      40,\n      f,\n      proto.assistant_api.AssistantConfiguration.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string status = 2;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string visibility = 3;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getVisibility = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setVisibility = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string source = 4;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getSource = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setSource = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional uint64 sourceIdentifier = 5;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getSourceidentifier = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setSourceidentifier = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 5, value);\n};\n\n\n/**\n * optional uint64 projectId = 7;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 7, value);\n};\n\n\n/**\n * optional uint64 organizationId = 8;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getOrganizationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setOrganizationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 8, value);\n};\n\n\n/**\n * optional string assistantProvider = 9;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getAssistantprovider = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setAssistantprovider = function(value) {\n  return jspb.Message.setProto3StringField(this, 9, value);\n};\n\n\n/**\n * optional uint64 assistantProviderId = 10;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getAssistantproviderid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setAssistantproviderid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 10, value);\n};\n\n\n/**\n * optional string name = 11;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 11, value);\n};\n\n\n/**\n * optional string description = 12;\n * @return {string}\n */\nproto.assistant_api.Assistant.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 12, value);\n};\n\n\n/**\n * optional AssistantProviderModel assistantProviderModel = 50;\n * @return {?proto.assistant_api.AssistantProviderModel}\n */\nproto.assistant_api.Assistant.prototype.getAssistantprovidermodel = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderModel} */ (\n    jspb.Message.getWrapperField(this, assistant$provider_pb.AssistantProviderModel, 50));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderModel|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setAssistantprovidermodel = function(value) {\n  return jspb.Message.setWrapperField(this, 50, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearAssistantprovidermodel = function() {\n  return this.setAssistantprovidermodel(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasAssistantprovidermodel = function() {\n  return jspb.Message.getField(this, 50) != null;\n};\n\n\n/**\n * optional AssistantProviderAgentkit assistantProviderAgentkit = 51;\n * @return {?proto.assistant_api.AssistantProviderAgentkit}\n */\nproto.assistant_api.Assistant.prototype.getAssistantprovideragentkit = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderAgentkit} */ (\n    jspb.Message.getWrapperField(this, assistant$provider_pb.AssistantProviderAgentkit, 51));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderAgentkit|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setAssistantprovideragentkit = function(value) {\n  return jspb.Message.setWrapperField(this, 51, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearAssistantprovideragentkit = function() {\n  return this.setAssistantprovideragentkit(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasAssistantprovideragentkit = function() {\n  return jspb.Message.getField(this, 51) != null;\n};\n\n\n/**\n * optional AssistantProviderWebsocket assistantProviderWebsocket = 52;\n * @return {?proto.assistant_api.AssistantProviderWebsocket}\n */\nproto.assistant_api.Assistant.prototype.getAssistantproviderwebsocket = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderWebsocket} */ (\n    jspb.Message.getWrapperField(this, assistant$provider_pb.AssistantProviderWebsocket, 52));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderWebsocket|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setAssistantproviderwebsocket = function(value) {\n  return jspb.Message.setWrapperField(this, 52, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearAssistantproviderwebsocket = function() {\n  return this.setAssistantproviderwebsocket(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasAssistantproviderwebsocket = function() {\n  return jspb.Message.getField(this, 52) != null;\n};\n\n\n/**\n * optional AssistantProviderAgentflow assistantProviderAgentflow = 53;\n * @return {?proto.assistant_api.AssistantProviderAgentflow}\n */\nproto.assistant_api.Assistant.prototype.getAssistantprovideragentflow = function() {\n  return /** @type{?proto.assistant_api.AssistantProviderAgentflow} */ (\n    jspb.Message.getWrapperField(this, assistant$provider_pb.AssistantProviderAgentflow, 53));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantProviderAgentflow|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setAssistantprovideragentflow = function(value) {\n  return jspb.Message.setWrapperField(this, 53, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearAssistantprovideragentflow = function() {\n  return this.setAssistantprovideragentflow(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasAssistantprovideragentflow = function() {\n  return jspb.Message.getField(this, 53) != null;\n};\n\n\n/**\n * optional Tag assistantTag = 14;\n * @return {?proto.Tag}\n */\nproto.assistant_api.Assistant.prototype.getAssistanttag = function() {\n  return /** @type{?proto.Tag} */ (\n    jspb.Message.getWrapperField(this, common_pb.Tag, 14));\n};\n\n\n/**\n * @param {?proto.Tag|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setAssistanttag = function(value) {\n  return jspb.Message.setWrapperField(this, 14, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearAssistanttag = function() {\n  return this.setAssistanttag(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasAssistanttag = function() {\n  return jspb.Message.getField(this, 14) != null;\n};\n\n\n/**\n * optional AuditActor createdActor = 1000;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.Assistant.prototype.getCreatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1000));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setCreatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1000, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearCreatedactor = function() {\n  return this.setCreatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasCreatedactor = function() {\n  return jspb.Message.getField(this, 1000) != null;\n};\n\n\n/**\n * optional AuditActor updatedActor = 1001;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.Assistant.prototype.getUpdatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1001));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setUpdatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearUpdatedactor = function() {\n  return this.setUpdatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasUpdatedactor = function() {\n  return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 26;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.Assistant.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 26));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 27;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.Assistant.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 27));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 27, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 27) != null;\n};\n\n\n/**\n * optional AssistantDebuggerDeployment debuggerDeployment = 30;\n * @return {?proto.assistant_api.AssistantDebuggerDeployment}\n */\nproto.assistant_api.Assistant.prototype.getDebuggerdeployment = function() {\n  return /** @type{?proto.assistant_api.AssistantDebuggerDeployment} */ (\n    jspb.Message.getWrapperField(this, assistant$deployment_pb.AssistantDebuggerDeployment, 30));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantDebuggerDeployment|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setDebuggerdeployment = function(value) {\n  return jspb.Message.setWrapperField(this, 30, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearDebuggerdeployment = function() {\n  return this.setDebuggerdeployment(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasDebuggerdeployment = function() {\n  return jspb.Message.getField(this, 30) != null;\n};\n\n\n/**\n * optional AssistantPhoneDeployment phoneDeployment = 31;\n * @return {?proto.assistant_api.AssistantPhoneDeployment}\n */\nproto.assistant_api.Assistant.prototype.getPhonedeployment = function() {\n  return /** @type{?proto.assistant_api.AssistantPhoneDeployment} */ (\n    jspb.Message.getWrapperField(this, assistant$deployment_pb.AssistantPhoneDeployment, 31));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantPhoneDeployment|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setPhonedeployment = function(value) {\n  return jspb.Message.setWrapperField(this, 31, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearPhonedeployment = function() {\n  return this.setPhonedeployment(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasPhonedeployment = function() {\n  return jspb.Message.getField(this, 31) != null;\n};\n\n\n/**\n * optional AssistantWhatsappDeployment whatsappDeployment = 32;\n * @return {?proto.assistant_api.AssistantWhatsappDeployment}\n */\nproto.assistant_api.Assistant.prototype.getWhatsappdeployment = function() {\n  return /** @type{?proto.assistant_api.AssistantWhatsappDeployment} */ (\n    jspb.Message.getWrapperField(this, assistant$deployment_pb.AssistantWhatsappDeployment, 32));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantWhatsappDeployment|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setWhatsappdeployment = function(value) {\n  return jspb.Message.setWrapperField(this, 32, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearWhatsappdeployment = function() {\n  return this.setWhatsappdeployment(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasWhatsappdeployment = function() {\n  return jspb.Message.getField(this, 32) != null;\n};\n\n\n/**\n * optional AssistantWebpluginDeployment webPluginDeployment = 33;\n * @return {?proto.assistant_api.AssistantWebpluginDeployment}\n */\nproto.assistant_api.Assistant.prototype.getWebplugindeployment = function() {\n  return /** @type{?proto.assistant_api.AssistantWebpluginDeployment} */ (\n    jspb.Message.getWrapperField(this, assistant$deployment_pb.AssistantWebpluginDeployment, 33));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantWebpluginDeployment|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setWebplugindeployment = function(value) {\n  return jspb.Message.setWrapperField(this, 33, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearWebplugindeployment = function() {\n  return this.setWebplugindeployment(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasWebplugindeployment = function() {\n  return jspb.Message.getField(this, 33) != null;\n};\n\n\n/**\n * optional AssistantApiDeployment apiDeployment = 34;\n * @return {?proto.assistant_api.AssistantApiDeployment}\n */\nproto.assistant_api.Assistant.prototype.getApideployment = function() {\n  return /** @type{?proto.assistant_api.AssistantApiDeployment} */ (\n    jspb.Message.getWrapperField(this, assistant$deployment_pb.AssistantApiDeployment, 34));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantApiDeployment|undefined} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setApideployment = function(value) {\n  return jspb.Message.setWrapperField(this, 34, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearApideployment = function() {\n  return this.setApideployment(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.Assistant.prototype.hasApideployment = function() {\n  return jspb.Message.getField(this, 34) != null;\n};\n\n\n/**\n * repeated AssistantConversation assistantConversations = 35;\n * @return {!Array<!proto.AssistantConversation>}\n */\nproto.assistant_api.Assistant.prototype.getAssistantconversationsList = function() {\n  return /** @type{!Array<!proto.AssistantConversation>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.AssistantConversation, 35));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversation>} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setAssistantconversationsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 35, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversation=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversation}\n */\nproto.assistant_api.Assistant.prototype.addAssistantconversations = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 35, opt_value, proto.AssistantConversation, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearAssistantconversationsList = function() {\n  return this.setAssistantconversationsList([]);\n};\n\n\n/**\n * repeated AssistantTool assistantTools = 37;\n * @return {!Array<!proto.assistant_api.AssistantTool>}\n */\nproto.assistant_api.Assistant.prototype.getAssistanttoolsList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantTool>} */ (\n    jspb.Message.getRepeatedWrapperField(this, assistant$tool_pb.AssistantTool, 37));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantTool>} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setAssistanttoolsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 37, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantTool=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantTool}\n */\nproto.assistant_api.Assistant.prototype.addAssistanttools = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 37, opt_value, proto.assistant_api.AssistantTool, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearAssistanttoolsList = function() {\n  return this.setAssistanttoolsList([]);\n};\n\n\n/**\n * repeated AssistantConfiguration assistantConfigurations = 40;\n * @return {!Array<!proto.assistant_api.AssistantConfiguration>}\n */\nproto.assistant_api.Assistant.prototype.getAssistantconfigurationsList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantConfiguration>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantConfiguration, 40));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantConfiguration>} value\n * @return {!proto.assistant_api.Assistant} returns this\n*/\nproto.assistant_api.Assistant.prototype.setAssistantconfigurationsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 40, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantConfiguration=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantConfiguration}\n */\nproto.assistant_api.Assistant.prototype.addAssistantconfigurations = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 40, opt_value, proto.assistant_api.AssistantConfiguration, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.Assistant} returns this\n */\nproto.assistant_api.Assistant.prototype.clearAssistantconfigurationsList = function() {\n  return this.setAssistantconfigurationsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.CreateAssistantRequest.repeatedFields_ = [2,3,9];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantprovider: (f = msg.getAssistantprovider()) && assistant$provider_pb.CreateAssistantProviderRequest.toObject(includeInstance, f),\n    assistantknowledgesList: jspb.Message.toObjectList(msg.getAssistantknowledgesList(),\n    assistant$knowledge_pb.CreateAssistantKnowledgeRequest.toObject, includeInstance),\n    assistanttoolsList: jspb.Message.toObjectList(msg.getAssistanttoolsList(),\n    assistant$tool_pb.CreateAssistantToolRequest.toObject, includeInstance),\n    description: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    visibility: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    language: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    source: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n    sourceidentifier: jspb.Message.getFieldWithDefault(msg, 8, \"0\"),\n    tagsList: (f = jspb.Message.getRepeatedField(msg, 9)) == null ? undefined : f,\n    name: jspb.Message.getFieldWithDefault(msg, 10, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantRequest}\n */\nproto.assistant_api.CreateAssistantRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantRequest;\n  return proto.assistant_api.CreateAssistantRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantRequest}\n */\nproto.assistant_api.CreateAssistantRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new assistant$provider_pb.CreateAssistantProviderRequest;\n      reader.readMessage(value,assistant$provider_pb.CreateAssistantProviderRequest.deserializeBinaryFromReader);\n      msg.setAssistantprovider(value);\n      break;\n    case 2:\n      var value = new assistant$knowledge_pb.CreateAssistantKnowledgeRequest;\n      reader.readMessage(value,assistant$knowledge_pb.CreateAssistantKnowledgeRequest.deserializeBinaryFromReader);\n      msg.addAssistantknowledges(value);\n      break;\n    case 3:\n      var value = new assistant$tool_pb.CreateAssistantToolRequest;\n      reader.readMessage(value,assistant$tool_pb.CreateAssistantToolRequest.deserializeBinaryFromReader);\n      msg.addAssistanttools(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setVisibility(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setLanguage(value);\n      break;\n    case 7:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setSource(value);\n      break;\n    case 8:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setSourceidentifier(value);\n      break;\n    case 9:\n      var value = /** @type {string} */ (reader.readString());\n      msg.addTags(value);\n      break;\n    case 10:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantprovider();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      assistant$provider_pb.CreateAssistantProviderRequest.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantknowledgesList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      2,\n      f,\n      assistant$knowledge_pb.CreateAssistantKnowledgeRequest.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistanttoolsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      assistant$tool_pb.CreateAssistantToolRequest.serializeBinaryToWriter\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getVisibility();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getLanguage();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = message.getSource();\n  if (f.length > 0) {\n    writer.writeString(\n      7,\n      f\n    );\n  }\n  f = message.getSourceidentifier();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      8,\n      f\n    );\n  }\n  f = message.getTagsList();\n  if (f.length > 0) {\n    writer.writeRepeatedString(\n      9,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      10,\n      f\n    );\n  }\n};\n\n\n/**\n * optional CreateAssistantProviderRequest assistantProvider = 1;\n * @return {?proto.assistant_api.CreateAssistantProviderRequest}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getAssistantprovider = function() {\n  return /** @type{?proto.assistant_api.CreateAssistantProviderRequest} */ (\n    jspb.Message.getWrapperField(this, assistant$provider_pb.CreateAssistantProviderRequest, 1));\n};\n\n\n/**\n * @param {?proto.assistant_api.CreateAssistantProviderRequest|undefined} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n*/\nproto.assistant_api.CreateAssistantRequest.prototype.setAssistantprovider = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.clearAssistantprovider = function() {\n  return this.setAssistantprovider(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.hasAssistantprovider = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated CreateAssistantKnowledgeRequest assistantKnowledges = 2;\n * @return {!Array<!proto.assistant_api.CreateAssistantKnowledgeRequest>}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getAssistantknowledgesList = function() {\n  return /** @type{!Array<!proto.assistant_api.CreateAssistantKnowledgeRequest>} */ (\n    jspb.Message.getRepeatedWrapperField(this, assistant$knowledge_pb.CreateAssistantKnowledgeRequest, 2));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.CreateAssistantKnowledgeRequest>} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n*/\nproto.assistant_api.CreateAssistantRequest.prototype.setAssistantknowledgesList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.CreateAssistantKnowledgeRequest=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.CreateAssistantKnowledgeRequest}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.addAssistantknowledges = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.assistant_api.CreateAssistantKnowledgeRequest, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.clearAssistantknowledgesList = function() {\n  return this.setAssistantknowledgesList([]);\n};\n\n\n/**\n * repeated CreateAssistantToolRequest assistantTools = 3;\n * @return {!Array<!proto.assistant_api.CreateAssistantToolRequest>}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getAssistanttoolsList = function() {\n  return /** @type{!Array<!proto.assistant_api.CreateAssistantToolRequest>} */ (\n    jspb.Message.getRepeatedWrapperField(this, assistant$tool_pb.CreateAssistantToolRequest, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.CreateAssistantToolRequest>} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n*/\nproto.assistant_api.CreateAssistantRequest.prototype.setAssistanttoolsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.CreateAssistantToolRequest=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.CreateAssistantToolRequest}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.addAssistanttools = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.CreateAssistantToolRequest, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.clearAssistanttoolsList = function() {\n  return this.setAssistanttoolsList([]);\n};\n\n\n/**\n * optional string description = 4;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string visibility = 5;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getVisibility = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.setVisibility = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional string language = 6;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getLanguage = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.setLanguage = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional string source = 7;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getSource = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.setSource = function(value) {\n  return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n/**\n * optional uint64 sourceIdentifier = 8;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getSourceidentifier = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.setSourceidentifier = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 8, value);\n};\n\n\n/**\n * repeated string tags = 9;\n * @return {!Array<string>}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getTagsList = function() {\n  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 9));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.setTagsList = function(value) {\n  return jspb.Message.setField(this, 9, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.addTags = function(value, opt_index) {\n  return jspb.Message.addToRepeatedField(this, 9, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.clearTagsList = function() {\n  return this.setTagsList([]);\n};\n\n\n/**\n * optional string name = 10;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantRequest.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantRequest} returns this\n */\nproto.assistant_api.CreateAssistantRequest.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 10, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.CreateAssistantTagRequest.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantTagRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantTagRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantTagRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantTagRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    tagsList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantTagRequest}\n */\nproto.assistant_api.CreateAssistantTagRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantTagRequest;\n  return proto.assistant_api.CreateAssistantTagRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantTagRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantTagRequest}\n */\nproto.assistant_api.CreateAssistantTagRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.addTags(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantTagRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantTagRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantTagRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantTagRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getTagsList();\n  if (f.length > 0) {\n    writer.writeRepeatedString(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantTagRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantTagRequest} returns this\n */\nproto.assistant_api.CreateAssistantTagRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * repeated string tags = 2;\n * @return {!Array<string>}\n */\nproto.assistant_api.CreateAssistantTagRequest.prototype.getTagsList = function() {\n  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.assistant_api.CreateAssistantTagRequest} returns this\n */\nproto.assistant_api.CreateAssistantTagRequest.prototype.setTagsList = function(value) {\n  return jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.CreateAssistantTagRequest} returns this\n */\nproto.assistant_api.CreateAssistantTagRequest.prototype.addTags = function(value, opt_index) {\n  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.CreateAssistantTagRequest} returns this\n */\nproto.assistant_api.CreateAssistantTagRequest.prototype.clearTagsList = function() {\n  return this.setTagsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantdefinition: (f = msg.getAssistantdefinition()) && common_pb.AssistantDefinition.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantRequest}\n */\nproto.assistant_api.GetAssistantRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantRequest;\n  return proto.assistant_api.GetAssistantRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantRequest}\n */\nproto.assistant_api.GetAssistantRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new common_pb.AssistantDefinition;\n      reader.readMessage(value,common_pb.AssistantDefinition.deserializeBinaryFromReader);\n      msg.setAssistantdefinition(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantdefinition();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      common_pb.AssistantDefinition.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional AssistantDefinition assistantDefinition = 1;\n * @return {?proto.AssistantDefinition}\n */\nproto.assistant_api.GetAssistantRequest.prototype.getAssistantdefinition = function() {\n  return /** @type{?proto.AssistantDefinition} */ (\n    jspb.Message.getWrapperField(this, common_pb.AssistantDefinition, 1));\n};\n\n\n/**\n * @param {?proto.AssistantDefinition|undefined} value\n * @return {!proto.assistant_api.GetAssistantRequest} returns this\n*/\nproto.assistant_api.GetAssistantRequest.prototype.setAssistantdefinition = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantRequest} returns this\n */\nproto.assistant_api.GetAssistantRequest.prototype.clearAssistantdefinition = function() {\n  return this.setAssistantdefinition(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantRequest.prototype.hasAssistantdefinition = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.DeleteAssistantRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.DeleteAssistantRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.DeleteAssistantRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeleteAssistantRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.DeleteAssistantRequest}\n */\nproto.assistant_api.DeleteAssistantRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.DeleteAssistantRequest;\n  return proto.assistant_api.DeleteAssistantRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.DeleteAssistantRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.DeleteAssistantRequest}\n */\nproto.assistant_api.DeleteAssistantRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.DeleteAssistantRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.DeleteAssistantRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.DeleteAssistantRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeleteAssistantRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.DeleteAssistantRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeleteAssistantRequest} returns this\n */\nproto.assistant_api.DeleteAssistantRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.Assistant.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantResponse}\n */\nproto.assistant_api.GetAssistantResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantResponse;\n  return proto.assistant_api.GetAssistantResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantResponse}\n */\nproto.assistant_api.GetAssistantResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.Assistant;\n      reader.readMessage(value,proto.assistant_api.Assistant.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.Assistant.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantResponse} returns this\n */\nproto.assistant_api.GetAssistantResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantResponse} returns this\n */\nproto.assistant_api.GetAssistantResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional Assistant data = 3;\n * @return {?proto.assistant_api.Assistant}\n */\nproto.assistant_api.GetAssistantResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.Assistant} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.Assistant, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.Assistant|undefined} value\n * @return {!proto.assistant_api.GetAssistantResponse} returns this\n*/\nproto.assistant_api.GetAssistantResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantResponse} returns this\n */\nproto.assistant_api.GetAssistantResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantResponse} returns this\n*/\nproto.assistant_api.GetAssistantResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantResponse} returns this\n */\nproto.assistant_api.GetAssistantResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantRequest.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantRequest}\n */\nproto.assistant_api.GetAllAssistantRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantRequest;\n  return proto.assistant_api.GetAllAssistantRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantRequest}\n */\nproto.assistant_api.GetAllAssistantRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 2:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      2,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional Paginate paginate = 1;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllAssistantRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 1));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantRequest} returns this\n */\nproto.assistant_api.GetAllAssistantRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 2;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllAssistantRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 2));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllAssistantRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllAssistantRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantRequest} returns this\n */\nproto.assistant_api.GetAllAssistantRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.AssistantConfiguration.repeatedFields_ = [8];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantConfiguration.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantConfiguration.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantConfiguration} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantConfiguration.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    projectid: jspb.Message.getFieldWithDefault(msg, 3, \"0\"),\n    organizationid: jspb.Message.getFieldWithDefault(msg, 4, \"0\"),\n    configurationtype: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n    provider: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n    enabled: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),\n    optionsList: jspb.Message.toObjectList(msg.getOptionsList(),\n    common_pb.Metadata.toObject, includeInstance),\n    status: jspb.Message.getFieldWithDefault(msg, 9, \"\"),\n    createdactor: (f = msg.getCreatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    updatedactor: (f = msg.getUpdatedactor()) && common_pb.AuditActor.toObject(includeInstance, f),\n    createddate: (f = msg.getCreateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    updateddate: (f = msg.getUpdateddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantConfiguration}\n */\nproto.assistant_api.AssistantConfiguration.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantConfiguration;\n  return proto.assistant_api.AssistantConfiguration.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantConfiguration} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantConfiguration}\n */\nproto.assistant_api.AssistantConfiguration.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setProjectid(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setOrganizationid(value);\n      break;\n    case 5:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setConfigurationtype(value);\n      break;\n    case 6:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setProvider(value);\n      break;\n    case 7:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setEnabled(value);\n      break;\n    case 8:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addOptions(value);\n      break;\n    case 9:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setStatus(value);\n      break;\n    case 1000:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setCreatedactor(value);\n      break;\n    case 1001:\n      var value = new common_pb.AuditActor;\n      reader.readMessage(value,common_pb.AuditActor.deserializeBinaryFromReader);\n      msg.setUpdatedactor(value);\n      break;\n    case 12:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setCreateddate(value);\n      break;\n    case 13:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setUpdateddate(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantConfiguration.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantConfiguration.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantConfiguration} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantConfiguration.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getProjectid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      3,\n      f\n    );\n  }\n  f = message.getOrganizationid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      4,\n      f\n    );\n  }\n  f = message.getConfigurationtype();\n  if (f.length > 0) {\n    writer.writeString(\n      5,\n      f\n    );\n  }\n  f = message.getProvider();\n  if (f.length > 0) {\n    writer.writeString(\n      6,\n      f\n    );\n  }\n  f = message.getEnabled();\n  if (f) {\n    writer.writeBool(\n      7,\n      f\n    );\n  }\n  f = message.getOptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      8,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n  f = message.getStatus();\n  if (f.length > 0) {\n    writer.writeString(\n      9,\n      f\n    );\n  }\n  f = message.getCreatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1000,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdatedactor();\n  if (f != null) {\n    writer.writeMessage(\n      1001,\n      f,\n      common_pb.AuditActor.serializeBinaryToWriter\n    );\n  }\n  f = message.getCreateddate();\n  if (f != null) {\n    writer.writeMessage(\n      12,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getUpdateddate();\n  if (f != null) {\n    writer.writeMessage(\n      13,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional uint64 projectId = 3;\n * @return {string}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getProjectid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.setProjectid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 3, value);\n};\n\n\n/**\n * optional uint64 organizationId = 4;\n * @return {string}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getOrganizationid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.setOrganizationid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 4, value);\n};\n\n\n/**\n * optional string configurationType = 5;\n * @return {string}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getConfigurationtype = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.setConfigurationtype = function(value) {\n  return jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional string provider = 6;\n * @return {string}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getProvider = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.setProvider = function(value) {\n  return jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional bool enabled = 7;\n * @return {boolean}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getEnabled = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.setEnabled = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 7, value);\n};\n\n\n/**\n * repeated Metadata options = 8;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getOptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 8));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n*/\nproto.assistant_api.AssistantConfiguration.prototype.setOptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 8, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.AssistantConfiguration.prototype.addOptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.clearOptionsList = function() {\n  return this.setOptionsList([]);\n};\n\n\n/**\n * optional string status = 9;\n * @return {string}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getStatus = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.setStatus = function(value) {\n  return jspb.Message.setProto3StringField(this, 9, value);\n};\n\n\n/**\n * optional AuditActor createdActor = 1000;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getCreatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1000));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n*/\nproto.assistant_api.AssistantConfiguration.prototype.setCreatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1000, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.clearCreatedactor = function() {\n  return this.setCreatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantConfiguration.prototype.hasCreatedactor = function() {\n  return jspb.Message.getField(this, 1000) != null;\n};\n\n\n/**\n * optional AuditActor updatedActor = 1001;\n * @return {?proto.AuditActor}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getUpdatedactor = function() {\n  return /** @type{?proto.AuditActor} */ (\n    jspb.Message.getWrapperField(this, common_pb.AuditActor, 1001));\n};\n\n\n/**\n * @param {?proto.AuditActor|undefined} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n*/\nproto.assistant_api.AssistantConfiguration.prototype.setUpdatedactor = function(value) {\n  return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.clearUpdatedactor = function() {\n  return this.setUpdatedactor(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantConfiguration.prototype.hasUpdatedactor = function() {\n  return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp createdDate = 12;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getCreateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 12));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n*/\nproto.assistant_api.AssistantConfiguration.prototype.setCreateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 12, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.clearCreateddate = function() {\n  return this.setCreateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantConfiguration.prototype.hasCreateddate = function() {\n  return jspb.Message.getField(this, 12) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp updatedDate = 13;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantConfiguration.prototype.getUpdateddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 13));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n*/\nproto.assistant_api.AssistantConfiguration.prototype.setUpdateddate = function(value) {\n  return jspb.Message.setWrapperField(this, 13, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantConfiguration} returns this\n */\nproto.assistant_api.AssistantConfiguration.prototype.clearUpdateddate = function() {\n  return this.setUpdateddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantConfiguration.prototype.hasUpdateddate = function() {\n  return jspb.Message.getField(this, 13) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantConfigurationRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantConfigurationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantConfigurationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantConfigurationRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantConfigurationRequest}\n */\nproto.assistant_api.GetAssistantConfigurationRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantConfigurationRequest;\n  return proto.assistant_api.GetAssistantConfigurationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantConfigurationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantConfigurationRequest}\n */\nproto.assistant_api.GetAssistantConfigurationRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantConfigurationRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantConfigurationRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantConfigurationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantConfigurationRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.GetAssistantConfigurationRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.GetAssistantConfigurationRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.GetAssistantConfigurationRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.GetAssistantConfigurationRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantConfigurationResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantConfigurationResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantConfigurationResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantConfiguration.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantConfigurationResponse}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantConfigurationResponse;\n  return proto.assistant_api.GetAssistantConfigurationResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantConfigurationResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantConfigurationResponse}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantConfiguration;\n      reader.readMessage(value,proto.assistant_api.AssistantConfiguration.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantConfigurationResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantConfigurationResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantConfigurationResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantConfiguration.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantConfigurationResponse} returns this\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantConfigurationResponse} returns this\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantConfiguration data = 3;\n * @return {?proto.assistant_api.AssistantConfiguration}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantConfiguration} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantConfiguration, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantConfiguration|undefined} value\n * @return {!proto.assistant_api.GetAssistantConfigurationResponse} returns this\n*/\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantConfigurationResponse} returns this\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantConfigurationResponse} returns this\n*/\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantConfigurationResponse} returns this\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantConfigurationResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.repeatedFields_ = [5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantConfigurationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantConfigurationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    configurationtype: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    provider: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantConfigurationRequest}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantConfigurationRequest;\n  return proto.assistant_api.GetAllAssistantConfigurationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantConfigurationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantConfigurationRequest}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setConfigurationtype(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setProvider(value);\n      break;\n    case 4:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 5:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantConfigurationRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantConfigurationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getConfigurationtype();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getProvider();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      5,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string configurationType = 2;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.getConfigurationtype = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.setConfigurationtype = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string provider = 3;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.getProvider = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.setProvider = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional Paginate paginate = 4;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 4));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 5;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 5));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantConfigurationResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantConfigurationResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.AssistantConfiguration.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantConfigurationResponse;\n  return proto.assistant_api.GetAllAssistantConfigurationResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantConfigurationResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantConfiguration;\n      reader.readMessage(value,proto.assistant_api.AssistantConfiguration.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantConfigurationResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantConfigurationResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantConfiguration.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantConfiguration data = 3;\n * @return {!Array<!proto.assistant_api.AssistantConfiguration>}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantConfiguration>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantConfiguration, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantConfiguration>} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantConfiguration=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantConfiguration}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.AssistantConfiguration, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantConfigurationResponse} returns this\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantConfigurationResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.repeatedFields_ = [5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.CreateAssistantConfigurationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.CreateAssistantConfigurationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    configurationtype: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    provider: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    enabled: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),\n    optionsList: jspb.Message.toObjectList(msg.getOptionsList(),\n    common_pb.Metadata.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.CreateAssistantConfigurationRequest}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.CreateAssistantConfigurationRequest;\n  return proto.assistant_api.CreateAssistantConfigurationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.CreateAssistantConfigurationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.CreateAssistantConfigurationRequest}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setConfigurationtype(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setProvider(value);\n      break;\n    case 4:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setEnabled(value);\n      break;\n    case 5:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addOptions(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.CreateAssistantConfigurationRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.CreateAssistantConfigurationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getConfigurationtype();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getProvider();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getEnabled();\n  if (f) {\n    writer.writeBool(\n      4,\n      f\n    );\n  }\n  f = message.getOptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      5,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string configurationType = 2;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.getConfigurationtype = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.setConfigurationtype = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string provider = 3;\n * @return {string}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.getProvider = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.CreateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.setProvider = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional bool enabled = 4;\n * @return {boolean}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.getEnabled = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.CreateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.setEnabled = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 4, value);\n};\n\n\n/**\n * repeated Metadata options = 5;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.getOptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 5));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.CreateAssistantConfigurationRequest} returns this\n*/\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.setOptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.addOptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.CreateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.CreateAssistantConfigurationRequest.prototype.clearOptionsList = function() {\n  return this.setOptionsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.repeatedFields_ = [6];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.UpdateAssistantConfigurationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.UpdateAssistantConfigurationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    configurationtype: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n    provider: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n    enabled: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),\n    optionsList: jspb.Message.toObjectList(msg.getOptionsList(),\n    common_pb.Metadata.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.UpdateAssistantConfigurationRequest}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.UpdateAssistantConfigurationRequest;\n  return proto.assistant_api.UpdateAssistantConfigurationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.UpdateAssistantConfigurationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.UpdateAssistantConfigurationRequest}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setConfigurationtype(value);\n      break;\n    case 4:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setProvider(value);\n      break;\n    case 5:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setEnabled(value);\n      break;\n    case 6:\n      var value = new common_pb.Metadata;\n      reader.readMessage(value,common_pb.Metadata.deserializeBinaryFromReader);\n      msg.addOptions(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.UpdateAssistantConfigurationRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.UpdateAssistantConfigurationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getConfigurationtype();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n  f = message.getProvider();\n  if (f.length > 0) {\n    writer.writeString(\n      4,\n      f\n    );\n  }\n  f = message.getEnabled();\n  if (f) {\n    writer.writeBool(\n      5,\n      f\n    );\n  }\n  f = message.getOptionsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      6,\n      f,\n      common_pb.Metadata.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * optional string configurationType = 3;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.getConfigurationtype = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.setConfigurationtype = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string provider = 4;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.getProvider = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.setProvider = function(value) {\n  return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional bool enabled = 5;\n * @return {boolean}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.getEnabled = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.UpdateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.setEnabled = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n/**\n * repeated Metadata options = 6;\n * @return {!Array<!proto.Metadata>}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.getOptionsList = function() {\n  return /** @type{!Array<!proto.Metadata>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Metadata, 6));\n};\n\n\n/**\n * @param {!Array<!proto.Metadata>} value\n * @return {!proto.assistant_api.UpdateAssistantConfigurationRequest} returns this\n*/\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.setOptionsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 6, value);\n};\n\n\n/**\n * @param {!proto.Metadata=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Metadata}\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.addOptions = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.Metadata, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.UpdateAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.UpdateAssistantConfigurationRequest.prototype.clearOptionsList = function() {\n  return this.setOptionsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.DeleteAssistantConfigurationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.DeleteAssistantConfigurationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    id: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 2, \"0\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.DeleteAssistantConfigurationRequest}\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.DeleteAssistantConfigurationRequest;\n  return proto.assistant_api.DeleteAssistantConfigurationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.DeleteAssistantConfigurationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.DeleteAssistantConfigurationRequest}\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.DeleteAssistantConfigurationRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.DeleteAssistantConfigurationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 id = 1;\n * @return {string}\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeleteAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 assistantId = 2;\n * @return {string}\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.DeleteAssistantConfigurationRequest} returns this\n */\nproto.assistant_api.DeleteAssistantConfigurationRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    proto.assistant_api.Assistant.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantResponse}\n */\nproto.assistant_api.GetAllAssistantResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantResponse;\n  return proto.assistant_api.GetAllAssistantResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantResponse}\n */\nproto.assistant_api.GetAllAssistantResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.Assistant;\n      reader.readMessage(value,proto.assistant_api.Assistant.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      proto.assistant_api.Assistant.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantResponse} returns this\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantResponse} returns this\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated Assistant data = 3;\n * @return {!Array<!proto.assistant_api.Assistant>}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.assistant_api.Assistant>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.Assistant, 3));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.Assistant>} value\n * @return {!proto.assistant_api.GetAllAssistantResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.Assistant=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.Assistant}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.assistant_api.Assistant, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantResponse} returns this\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantResponse} returns this\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantResponse} returns this\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantMessageRequest.repeatedFields_ = [2,6];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantMessageRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantMessageRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantMessageRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance),\n    assistantid: jspb.Message.getFieldWithDefault(msg, 3, \"0\"),\n    order: (f = msg.getOrder()) && common_pb.Ordering.toObject(includeInstance, f),\n    selectorsList: jspb.Message.toObjectList(msg.getSelectorsList(),\n    common_pb.FieldSelector.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantMessageRequest;\n  return proto.assistant_api.GetAllAssistantMessageRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantMessageRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 2:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 5:\n      var value = new common_pb.Ordering;\n      reader.readMessage(value,common_pb.Ordering.deserializeBinaryFromReader);\n      msg.setOrder(value);\n      break;\n    case 6:\n      var value = new common_pb.FieldSelector;\n      reader.readMessage(value,common_pb.FieldSelector.deserializeBinaryFromReader);\n      msg.addSelectors(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantMessageRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantMessageRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantMessageRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      2,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      3,\n      f\n    );\n  }\n  f = message.getOrder();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Ordering.serializeBinaryToWriter\n    );\n  }\n  f = message.getSelectorsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      6,\n      f,\n      common_pb.FieldSelector.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional Paginate paginate = 1;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 1));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest} returns this\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 2;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 2));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest} returns this\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n/**\n * optional uint64 assistantId = 3;\n * @return {string}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest} returns this\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 3, value);\n};\n\n\n/**\n * optional Ordering order = 5;\n * @return {?proto.Ordering}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.getOrder = function() {\n  return /** @type{?proto.Ordering} */ (\n    jspb.Message.getWrapperField(this, common_pb.Ordering, 5));\n};\n\n\n/**\n * @param {?proto.Ordering|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.setOrder = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest} returns this\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.clearOrder = function() {\n  return this.setOrder(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.hasOrder = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * repeated FieldSelector selectors = 6;\n * @return {!Array<!proto.FieldSelector>}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.getSelectorsList = function() {\n  return /** @type{!Array<!proto.FieldSelector>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.FieldSelector, 6));\n};\n\n\n/**\n * @param {!Array<!proto.FieldSelector>} value\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest} returns this\n*/\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.setSelectorsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 6, value);\n};\n\n\n/**\n * @param {!proto.FieldSelector=} opt_value\n * @param {number=} opt_index\n * @return {!proto.FieldSelector}\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.addSelectors = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.FieldSelector, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantMessageRequest} returns this\n */\nproto.assistant_api.GetAllAssistantMessageRequest.prototype.clearSelectorsList = function() {\n  return this.setSelectorsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllAssistantMessageResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllAssistantMessageResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllAssistantMessageResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantMessageResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    common_pb.AssistantConversationMessage.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllAssistantMessageResponse;\n  return proto.assistant_api.GetAllAssistantMessageResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllAssistantMessageResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new common_pb.AssistantConversationMessage;\n      reader.readMessage(value,common_pb.AssistantConversationMessage.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllAssistantMessageResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllAssistantMessageResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllAssistantMessageResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.AssistantConversationMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse} returns this\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse} returns this\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantConversationMessage data = 3;\n * @return {!Array<!proto.AssistantConversationMessage>}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.AssistantConversationMessage>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.AssistantConversationMessage, 3));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversationMessage>} value\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversationMessage=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversationMessage}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.AssistantConversationMessage, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse} returns this\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse} returns this\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse} returns this\n*/\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllAssistantMessageResponse} returns this\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllAssistantMessageResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllMessageRequest.repeatedFields_ = [2,6];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllMessageRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllMessageRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllMessageRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    paginate: (f = msg.getPaginate()) && common_pb.Paginate.toObject(includeInstance, f),\n    criteriasList: jspb.Message.toObjectList(msg.getCriteriasList(),\n    common_pb.Criteria.toObject, includeInstance),\n    order: (f = msg.getOrder()) && common_pb.Ordering.toObject(includeInstance, f),\n    selectorsList: jspb.Message.toObjectList(msg.getSelectorsList(),\n    common_pb.FieldSelector.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllMessageRequest}\n */\nproto.assistant_api.GetAllMessageRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllMessageRequest;\n  return proto.assistant_api.GetAllMessageRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllMessageRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllMessageRequest}\n */\nproto.assistant_api.GetAllMessageRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new common_pb.Paginate;\n      reader.readMessage(value,common_pb.Paginate.deserializeBinaryFromReader);\n      msg.setPaginate(value);\n      break;\n    case 2:\n      var value = new common_pb.Criteria;\n      reader.readMessage(value,common_pb.Criteria.deserializeBinaryFromReader);\n      msg.addCriterias(value);\n      break;\n    case 5:\n      var value = new common_pb.Ordering;\n      reader.readMessage(value,common_pb.Ordering.deserializeBinaryFromReader);\n      msg.setOrder(value);\n      break;\n    case 6:\n      var value = new common_pb.FieldSelector;\n      reader.readMessage(value,common_pb.FieldSelector.deserializeBinaryFromReader);\n      msg.addSelectors(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllMessageRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllMessageRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllMessageRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getPaginate();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      common_pb.Paginate.serializeBinaryToWriter\n    );\n  }\n  f = message.getCriteriasList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      2,\n      f,\n      common_pb.Criteria.serializeBinaryToWriter\n    );\n  }\n  f = message.getOrder();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Ordering.serializeBinaryToWriter\n    );\n  }\n  f = message.getSelectorsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      6,\n      f,\n      common_pb.FieldSelector.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional Paginate paginate = 1;\n * @return {?proto.Paginate}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.getPaginate = function() {\n  return /** @type{?proto.Paginate} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginate, 1));\n};\n\n\n/**\n * @param {?proto.Paginate|undefined} value\n * @return {!proto.assistant_api.GetAllMessageRequest} returns this\n*/\nproto.assistant_api.GetAllMessageRequest.prototype.setPaginate = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllMessageRequest} returns this\n */\nproto.assistant_api.GetAllMessageRequest.prototype.clearPaginate = function() {\n  return this.setPaginate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.hasPaginate = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated Criteria criterias = 2;\n * @return {!Array<!proto.Criteria>}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.getCriteriasList = function() {\n  return /** @type{!Array<!proto.Criteria>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.Criteria, 2));\n};\n\n\n/**\n * @param {!Array<!proto.Criteria>} value\n * @return {!proto.assistant_api.GetAllMessageRequest} returns this\n*/\nproto.assistant_api.GetAllMessageRequest.prototype.setCriteriasList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.Criteria=} opt_value\n * @param {number=} opt_index\n * @return {!proto.Criteria}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.addCriterias = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Criteria, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllMessageRequest} returns this\n */\nproto.assistant_api.GetAllMessageRequest.prototype.clearCriteriasList = function() {\n  return this.setCriteriasList([]);\n};\n\n\n/**\n * optional Ordering order = 5;\n * @return {?proto.Ordering}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.getOrder = function() {\n  return /** @type{?proto.Ordering} */ (\n    jspb.Message.getWrapperField(this, common_pb.Ordering, 5));\n};\n\n\n/**\n * @param {?proto.Ordering|undefined} value\n * @return {!proto.assistant_api.GetAllMessageRequest} returns this\n*/\nproto.assistant_api.GetAllMessageRequest.prototype.setOrder = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllMessageRequest} returns this\n */\nproto.assistant_api.GetAllMessageRequest.prototype.clearOrder = function() {\n  return this.setOrder(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.hasOrder = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * repeated FieldSelector selectors = 6;\n * @return {!Array<!proto.FieldSelector>}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.getSelectorsList = function() {\n  return /** @type{!Array<!proto.FieldSelector>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.FieldSelector, 6));\n};\n\n\n/**\n * @param {!Array<!proto.FieldSelector>} value\n * @return {!proto.assistant_api.GetAllMessageRequest} returns this\n*/\nproto.assistant_api.GetAllMessageRequest.prototype.setSelectorsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 6, value);\n};\n\n\n/**\n * @param {!proto.FieldSelector=} opt_value\n * @param {number=} opt_index\n * @return {!proto.FieldSelector}\n */\nproto.assistant_api.GetAllMessageRequest.prototype.addSelectors = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.FieldSelector, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllMessageRequest} returns this\n */\nproto.assistant_api.GetAllMessageRequest.prototype.clearSelectorsList = function() {\n  return this.setSelectorsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAllMessageResponse.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAllMessageResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAllMessageResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllMessageResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    dataList: jspb.Message.toObjectList(msg.getDataList(),\n    common_pb.AssistantConversationMessage.toObject, includeInstance),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f),\n    paginated: (f = msg.getPaginated()) && common_pb.Paginated.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAllMessageResponse}\n */\nproto.assistant_api.GetAllMessageResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAllMessageResponse;\n  return proto.assistant_api.GetAllMessageResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAllMessageResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAllMessageResponse}\n */\nproto.assistant_api.GetAllMessageResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new common_pb.AssistantConversationMessage;\n      reader.readMessage(value,common_pb.AssistantConversationMessage.deserializeBinaryFromReader);\n      msg.addData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    case 5:\n      var value = new common_pb.Paginated;\n      reader.readMessage(value,common_pb.Paginated.deserializeBinaryFromReader);\n      msg.setPaginated(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAllMessageResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAllMessageResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAllMessageResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getDataList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      3,\n      f,\n      common_pb.AssistantConversationMessage.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n  f = message.getPaginated();\n  if (f != null) {\n    writer.writeMessage(\n      5,\n      f,\n      common_pb.Paginated.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAllMessageResponse} returns this\n */\nproto.assistant_api.GetAllMessageResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAllMessageResponse} returns this\n */\nproto.assistant_api.GetAllMessageResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated AssistantConversationMessage data = 3;\n * @return {!Array<!proto.AssistantConversationMessage>}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.getDataList = function() {\n  return /** @type{!Array<!proto.AssistantConversationMessage>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.AssistantConversationMessage, 3));\n};\n\n\n/**\n * @param {!Array<!proto.AssistantConversationMessage>} value\n * @return {!proto.assistant_api.GetAllMessageResponse} returns this\n*/\nproto.assistant_api.GetAllMessageResponse.prototype.setDataList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.AssistantConversationMessage=} opt_value\n * @param {number=} opt_index\n * @return {!proto.AssistantConversationMessage}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.addData = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.AssistantConversationMessage, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAllMessageResponse} returns this\n */\nproto.assistant_api.GetAllMessageResponse.prototype.clearDataList = function() {\n  return this.setDataList([]);\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAllMessageResponse} returns this\n*/\nproto.assistant_api.GetAllMessageResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllMessageResponse} returns this\n */\nproto.assistant_api.GetAllMessageResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Paginated paginated = 5;\n * @return {?proto.Paginated}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.getPaginated = function() {\n  return /** @type{?proto.Paginated} */ (\n    jspb.Message.getWrapperField(this, common_pb.Paginated, 5));\n};\n\n\n/**\n * @param {?proto.Paginated|undefined} value\n * @return {!proto.assistant_api.GetAllMessageResponse} returns this\n*/\nproto.assistant_api.GetAllMessageResponse.prototype.setPaginated = function(value) {\n  return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAllMessageResponse} returns this\n */\nproto.assistant_api.GetAllMessageResponse.prototype.clearPaginated = function() {\n  return this.setPaginated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAllMessageResponse.prototype.hasPaginated = function() {\n  return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantDashboardRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantDashboardRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantDashboardRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    fromdate: (f = msg.getFromdate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    todate: (f = msg.getTodate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantDashboardRequest}\n */\nproto.assistant_api.GetAssistantDashboardRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantDashboardRequest;\n  return proto.assistant_api.GetAssistantDashboardRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantDashboardRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantDashboardRequest}\n */\nproto.assistant_api.GetAssistantDashboardRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setFromdate(value);\n      break;\n    case 3:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setTodate(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantDashboardRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantDashboardRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantDashboardRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getFromdate();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getTodate();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantDashboardRequest} returns this\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp fromDate = 2;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.getFromdate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.GetAssistantDashboardRequest} returns this\n*/\nproto.assistant_api.GetAssistantDashboardRequest.prototype.setFromdate = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantDashboardRequest} returns this\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.clearFromdate = function() {\n  return this.setFromdate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.hasFromdate = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp toDate = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.getTodate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.GetAssistantDashboardRequest} returns this\n*/\nproto.assistant_api.GetAssistantDashboardRequest.prototype.setTodate = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantDashboardRequest} returns this\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.clearTodate = function() {\n  return this.setTodate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantDashboardRequest.prototype.hasTodate = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantDashboardResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantDashboardResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantDashboardResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && proto.assistant_api.AssistantDashboard.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantDashboardResponse}\n */\nproto.assistant_api.GetAssistantDashboardResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantDashboardResponse;\n  return proto.assistant_api.GetAssistantDashboardResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantDashboardResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantDashboardResponse}\n */\nproto.assistant_api.GetAssistantDashboardResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantDashboard;\n      reader.readMessage(value,proto.assistant_api.AssistantDashboard.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantDashboardResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantDashboardResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantDashboardResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantDashboard.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantDashboardResponse} returns this\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantDashboardResponse} returns this\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantDashboard data = 3;\n * @return {?proto.assistant_api.AssistantDashboard}\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.getData = function() {\n  return /** @type{?proto.assistant_api.AssistantDashboard} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantDashboard, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantDashboard|undefined} value\n * @return {!proto.assistant_api.GetAssistantDashboardResponse} returns this\n*/\nproto.assistant_api.GetAssistantDashboardResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantDashboardResponse} returns this\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantDashboardResponse} returns this\n*/\nproto.assistant_api.GetAssistantDashboardResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantDashboardResponse} returns this\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantDashboardResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.AssistantDashboard.repeatedFields_ = [10,11,12];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantDashboard.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantDashboard.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantDashboard} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboard.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    summary: (f = msg.getSummary()) && proto.assistant_api.AssistantDashboardSummary.toObject(includeInstance, f),\n    latency: (f = msg.getLatency()) && proto.assistant_api.AssistantDashboardLatency.toObject(includeInstance, f),\n    usage: (f = msg.getUsage()) && proto.assistant_api.AssistantDashboardUsage.toObject(includeInstance, f),\n    sourcesList: jspb.Message.toObjectList(msg.getSourcesList(),\n    proto.assistant_api.AssistantDashboardDistribution.toObject, includeInstance),\n    languagesList: jspb.Message.toObjectList(msg.getLanguagesList(),\n    proto.assistant_api.AssistantDashboardDistribution.toObject, includeInstance),\n    bucketsList: jspb.Message.toObjectList(msg.getBucketsList(),\n    proto.assistant_api.AssistantDashboardBucket.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantDashboard}\n */\nproto.assistant_api.AssistantDashboard.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantDashboard;\n  return proto.assistant_api.AssistantDashboard.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantDashboard} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantDashboard}\n */\nproto.assistant_api.AssistantDashboard.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new proto.assistant_api.AssistantDashboardSummary;\n      reader.readMessage(value,proto.assistant_api.AssistantDashboardSummary.deserializeBinaryFromReader);\n      msg.setSummary(value);\n      break;\n    case 2:\n      var value = new proto.assistant_api.AssistantDashboardLatency;\n      reader.readMessage(value,proto.assistant_api.AssistantDashboardLatency.deserializeBinaryFromReader);\n      msg.setLatency(value);\n      break;\n    case 3:\n      var value = new proto.assistant_api.AssistantDashboardUsage;\n      reader.readMessage(value,proto.assistant_api.AssistantDashboardUsage.deserializeBinaryFromReader);\n      msg.setUsage(value);\n      break;\n    case 10:\n      var value = new proto.assistant_api.AssistantDashboardDistribution;\n      reader.readMessage(value,proto.assistant_api.AssistantDashboardDistribution.deserializeBinaryFromReader);\n      msg.addSources(value);\n      break;\n    case 11:\n      var value = new proto.assistant_api.AssistantDashboardDistribution;\n      reader.readMessage(value,proto.assistant_api.AssistantDashboardDistribution.deserializeBinaryFromReader);\n      msg.addLanguages(value);\n      break;\n    case 12:\n      var value = new proto.assistant_api.AssistantDashboardBucket;\n      reader.readMessage(value,proto.assistant_api.AssistantDashboardBucket.deserializeBinaryFromReader);\n      msg.addBuckets(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantDashboard.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantDashboard.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantDashboard} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboard.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getSummary();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      proto.assistant_api.AssistantDashboardSummary.serializeBinaryToWriter\n    );\n  }\n  f = message.getLatency();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      proto.assistant_api.AssistantDashboardLatency.serializeBinaryToWriter\n    );\n  }\n  f = message.getUsage();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      proto.assistant_api.AssistantDashboardUsage.serializeBinaryToWriter\n    );\n  }\n  f = message.getSourcesList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      10,\n      f,\n      proto.assistant_api.AssistantDashboardDistribution.serializeBinaryToWriter\n    );\n  }\n  f = message.getLanguagesList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      11,\n      f,\n      proto.assistant_api.AssistantDashboardDistribution.serializeBinaryToWriter\n    );\n  }\n  f = message.getBucketsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      12,\n      f,\n      proto.assistant_api.AssistantDashboardBucket.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional AssistantDashboardSummary summary = 1;\n * @return {?proto.assistant_api.AssistantDashboardSummary}\n */\nproto.assistant_api.AssistantDashboard.prototype.getSummary = function() {\n  return /** @type{?proto.assistant_api.AssistantDashboardSummary} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantDashboardSummary, 1));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantDashboardSummary|undefined} value\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n*/\nproto.assistant_api.AssistantDashboard.prototype.setSummary = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n */\nproto.assistant_api.AssistantDashboard.prototype.clearSummary = function() {\n  return this.setSummary(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDashboard.prototype.hasSummary = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional AssistantDashboardLatency latency = 2;\n * @return {?proto.assistant_api.AssistantDashboardLatency}\n */\nproto.assistant_api.AssistantDashboard.prototype.getLatency = function() {\n  return /** @type{?proto.assistant_api.AssistantDashboardLatency} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantDashboardLatency, 2));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantDashboardLatency|undefined} value\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n*/\nproto.assistant_api.AssistantDashboard.prototype.setLatency = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n */\nproto.assistant_api.AssistantDashboard.prototype.clearLatency = function() {\n  return this.setLatency(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDashboard.prototype.hasLatency = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional AssistantDashboardUsage usage = 3;\n * @return {?proto.assistant_api.AssistantDashboardUsage}\n */\nproto.assistant_api.AssistantDashboard.prototype.getUsage = function() {\n  return /** @type{?proto.assistant_api.AssistantDashboardUsage} */ (\n    jspb.Message.getWrapperField(this, proto.assistant_api.AssistantDashboardUsage, 3));\n};\n\n\n/**\n * @param {?proto.assistant_api.AssistantDashboardUsage|undefined} value\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n*/\nproto.assistant_api.AssistantDashboard.prototype.setUsage = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n */\nproto.assistant_api.AssistantDashboard.prototype.clearUsage = function() {\n  return this.setUsage(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDashboard.prototype.hasUsage = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * repeated AssistantDashboardDistribution sources = 10;\n * @return {!Array<!proto.assistant_api.AssistantDashboardDistribution>}\n */\nproto.assistant_api.AssistantDashboard.prototype.getSourcesList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantDashboardDistribution>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantDashboardDistribution, 10));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantDashboardDistribution>} value\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n*/\nproto.assistant_api.AssistantDashboard.prototype.setSourcesList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 10, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantDashboardDistribution=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantDashboardDistribution}\n */\nproto.assistant_api.AssistantDashboard.prototype.addSources = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 10, opt_value, proto.assistant_api.AssistantDashboardDistribution, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n */\nproto.assistant_api.AssistantDashboard.prototype.clearSourcesList = function() {\n  return this.setSourcesList([]);\n};\n\n\n/**\n * repeated AssistantDashboardDistribution languages = 11;\n * @return {!Array<!proto.assistant_api.AssistantDashboardDistribution>}\n */\nproto.assistant_api.AssistantDashboard.prototype.getLanguagesList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantDashboardDistribution>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantDashboardDistribution, 11));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantDashboardDistribution>} value\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n*/\nproto.assistant_api.AssistantDashboard.prototype.setLanguagesList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 11, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantDashboardDistribution=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantDashboardDistribution}\n */\nproto.assistant_api.AssistantDashboard.prototype.addLanguages = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.assistant_api.AssistantDashboardDistribution, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n */\nproto.assistant_api.AssistantDashboard.prototype.clearLanguagesList = function() {\n  return this.setLanguagesList([]);\n};\n\n\n/**\n * repeated AssistantDashboardBucket buckets = 12;\n * @return {!Array<!proto.assistant_api.AssistantDashboardBucket>}\n */\nproto.assistant_api.AssistantDashboard.prototype.getBucketsList = function() {\n  return /** @type{!Array<!proto.assistant_api.AssistantDashboardBucket>} */ (\n    jspb.Message.getRepeatedWrapperField(this, proto.assistant_api.AssistantDashboardBucket, 12));\n};\n\n\n/**\n * @param {!Array<!proto.assistant_api.AssistantDashboardBucket>} value\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n*/\nproto.assistant_api.AssistantDashboard.prototype.setBucketsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 12, value);\n};\n\n\n/**\n * @param {!proto.assistant_api.AssistantDashboardBucket=} opt_value\n * @param {number=} opt_index\n * @return {!proto.assistant_api.AssistantDashboardBucket}\n */\nproto.assistant_api.AssistantDashboard.prototype.addBuckets = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.assistant_api.AssistantDashboardBucket, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.AssistantDashboard} returns this\n */\nproto.assistant_api.AssistantDashboard.prototype.clearBucketsList = function() {\n  return this.setBucketsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantDashboardSummary.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantDashboardSummary} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardSummary.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    totalsessions: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    activesessions: jspb.Message.getFieldWithDefault(msg, 2, 0),\n    completedsessions: jspb.Message.getFieldWithDefault(msg, 3, 0),\n    failedsessions: jspb.Message.getFieldWithDefault(msg, 4, 0),\n    totalmessages: jspb.Message.getFieldWithDefault(msg, 5, 0),\n    usermessages: jspb.Message.getFieldWithDefault(msg, 6, 0),\n    failurerate: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),\n    averagesessiondurationseconds: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0.0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantDashboardSummary}\n */\nproto.assistant_api.AssistantDashboardSummary.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantDashboardSummary;\n  return proto.assistant_api.AssistantDashboardSummary.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantDashboardSummary} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantDashboardSummary}\n */\nproto.assistant_api.AssistantDashboardSummary.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setTotalsessions(value);\n      break;\n    case 2:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setActivesessions(value);\n      break;\n    case 3:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setCompletedsessions(value);\n      break;\n    case 4:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setFailedsessions(value);\n      break;\n    case 5:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setTotalmessages(value);\n      break;\n    case 6:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setUsermessages(value);\n      break;\n    case 7:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setFailurerate(value);\n      break;\n    case 8:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setAveragesessiondurationseconds(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantDashboardSummary.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantDashboardSummary} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardSummary.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getTotalsessions();\n  if (f !== 0) {\n    writer.writeUint32(\n      1,\n      f\n    );\n  }\n  f = message.getActivesessions();\n  if (f !== 0) {\n    writer.writeUint32(\n      2,\n      f\n    );\n  }\n  f = message.getCompletedsessions();\n  if (f !== 0) {\n    writer.writeUint32(\n      3,\n      f\n    );\n  }\n  f = message.getFailedsessions();\n  if (f !== 0) {\n    writer.writeUint32(\n      4,\n      f\n    );\n  }\n  f = message.getTotalmessages();\n  if (f !== 0) {\n    writer.writeUint32(\n      5,\n      f\n    );\n  }\n  f = message.getUsermessages();\n  if (f !== 0) {\n    writer.writeUint32(\n      6,\n      f\n    );\n  }\n  f = message.getFailurerate();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      7,\n      f\n    );\n  }\n  f = message.getAveragesessiondurationseconds();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      8,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint32 totalSessions = 1;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.getTotalsessions = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardSummary} returns this\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.setTotalsessions = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional uint32 activeSessions = 2;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.getActivesessions = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardSummary} returns this\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.setActivesessions = function(value) {\n  return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional uint32 completedSessions = 3;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.getCompletedsessions = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardSummary} returns this\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.setCompletedsessions = function(value) {\n  return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional uint32 failedSessions = 4;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.getFailedsessions = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardSummary} returns this\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.setFailedsessions = function(value) {\n  return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional uint32 totalMessages = 5;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.getTotalmessages = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardSummary} returns this\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.setTotalmessages = function(value) {\n  return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional uint32 userMessages = 6;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.getUsermessages = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardSummary} returns this\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.setUsermessages = function(value) {\n  return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional double failureRate = 7;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.getFailurerate = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardSummary} returns this\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.setFailurerate = function(value) {\n  return jspb.Message.setProto3FloatField(this, 7, value);\n};\n\n\n/**\n * optional double averageSessionDurationSeconds = 8;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.getAveragesessiondurationseconds = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardSummary} returns this\n */\nproto.assistant_api.AssistantDashboardSummary.prototype.setAveragesessiondurationseconds = function(value) {\n  return jspb.Message.setProto3FloatField(this, 8, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantDashboardLatency.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantDashboardLatency} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardLatency.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    averagems: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),\n    sttms: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0),\n    eosms: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),\n    ttsms: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0),\n    llmms: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantDashboardLatency}\n */\nproto.assistant_api.AssistantDashboardLatency.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantDashboardLatency;\n  return proto.assistant_api.AssistantDashboardLatency.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantDashboardLatency} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantDashboardLatency}\n */\nproto.assistant_api.AssistantDashboardLatency.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setAveragems(value);\n      break;\n    case 2:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setSttms(value);\n      break;\n    case 3:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setEosms(value);\n      break;\n    case 4:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setTtsms(value);\n      break;\n    case 5:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setLlmms(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantDashboardLatency.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantDashboardLatency} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardLatency.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAveragems();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      1,\n      f\n    );\n  }\n  f = message.getSttms();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      2,\n      f\n    );\n  }\n  f = message.getEosms();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      3,\n      f\n    );\n  }\n  f = message.getTtsms();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      4,\n      f\n    );\n  }\n  f = message.getLlmms();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      5,\n      f\n    );\n  }\n};\n\n\n/**\n * optional double averageMs = 1;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.getAveragems = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardLatency} returns this\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.setAveragems = function(value) {\n  return jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional double sttMs = 2;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.getSttms = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardLatency} returns this\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.setSttms = function(value) {\n  return jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\n/**\n * optional double eosMs = 3;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.getEosms = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardLatency} returns this\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.setEosms = function(value) {\n  return jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n\n/**\n * optional double ttsMs = 4;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.getTtsms = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardLatency} returns this\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.setTtsms = function(value) {\n  return jspb.Message.setProto3FloatField(this, 4, value);\n};\n\n\n/**\n * optional double llmMs = 5;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.getLlmms = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardLatency} returns this\n */\nproto.assistant_api.AssistantDashboardLatency.prototype.setLlmms = function(value) {\n  return jspb.Message.setProto3FloatField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantDashboardUsage.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantDashboardUsage} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardUsage.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    totaltokens: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),\n    sttdurationseconds: jspb.Message.getFloatingPointFieldWithDefault(msg, 2, 0.0),\n    ttsdurationseconds: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),\n    totaldurationseconds: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantDashboardUsage}\n */\nproto.assistant_api.AssistantDashboardUsage.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantDashboardUsage;\n  return proto.assistant_api.AssistantDashboardUsage.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantDashboardUsage} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantDashboardUsage}\n */\nproto.assistant_api.AssistantDashboardUsage.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setTotaltokens(value);\n      break;\n    case 2:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setSttdurationseconds(value);\n      break;\n    case 3:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setTtsdurationseconds(value);\n      break;\n    case 4:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setTotaldurationseconds(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantDashboardUsage.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantDashboardUsage} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardUsage.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getTotaltokens();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      1,\n      f\n    );\n  }\n  f = message.getSttdurationseconds();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      2,\n      f\n    );\n  }\n  f = message.getTtsdurationseconds();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      3,\n      f\n    );\n  }\n  f = message.getTotaldurationseconds();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      4,\n      f\n    );\n  }\n};\n\n\n/**\n * optional double totalTokens = 1;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.getTotaltokens = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardUsage} returns this\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.setTotaltokens = function(value) {\n  return jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional double sttDurationSeconds = 2;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.getSttdurationseconds = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardUsage} returns this\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.setSttdurationseconds = function(value) {\n  return jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\n/**\n * optional double ttsDurationSeconds = 3;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.getTtsdurationseconds = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardUsage} returns this\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.setTtsdurationseconds = function(value) {\n  return jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n\n/**\n * optional double totalDurationSeconds = 4;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.getTotaldurationseconds = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardUsage} returns this\n */\nproto.assistant_api.AssistantDashboardUsage.prototype.setTotaldurationseconds = function(value) {\n  return jspb.Message.setProto3FloatField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantDashboardDistribution.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantDashboardDistribution.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantDashboardDistribution} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardDistribution.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n    count: jspb.Message.getFieldWithDefault(msg, 2, 0),\n    percentage: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantDashboardDistribution}\n */\nproto.assistant_api.AssistantDashboardDistribution.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantDashboardDistribution;\n  return proto.assistant_api.AssistantDashboardDistribution.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantDashboardDistribution} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantDashboardDistribution}\n */\nproto.assistant_api.AssistantDashboardDistribution.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 2:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setCount(value);\n      break;\n    case 3:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setPercentage(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantDashboardDistribution.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantDashboardDistribution.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantDashboardDistribution} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardDistribution.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      1,\n      f\n    );\n  }\n  f = message.getCount();\n  if (f !== 0) {\n    writer.writeUint32(\n      2,\n      f\n    );\n  }\n  f = message.getPercentage();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.assistant_api.AssistantDashboardDistribution.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.AssistantDashboardDistribution} returns this\n */\nproto.assistant_api.AssistantDashboardDistribution.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional uint32 count = 2;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardDistribution.prototype.getCount = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardDistribution} returns this\n */\nproto.assistant_api.AssistantDashboardDistribution.prototype.setCount = function(value) {\n  return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional double percentage = 3;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardDistribution.prototype.getPercentage = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardDistribution} returns this\n */\nproto.assistant_api.AssistantDashboardDistribution.prototype.setPercentage = function(value) {\n  return jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.AssistantDashboardBucket.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.AssistantDashboardBucket} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardBucket.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    startdate: (f = msg.getStartdate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    enddate: (f = msg.getEnddate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n    messagecount: jspb.Message.getFieldWithDefault(msg, 10, 0),\n    sttlatencyms: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0),\n    eoslatencyms: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0.0),\n    ttslatencyms: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0),\n    llmlatencyms: jspb.Message.getFloatingPointFieldWithDefault(msg, 14, 0.0)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.AssistantDashboardBucket}\n */\nproto.assistant_api.AssistantDashboardBucket.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.AssistantDashboardBucket;\n  return proto.assistant_api.AssistantDashboardBucket.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.AssistantDashboardBucket} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.AssistantDashboardBucket}\n */\nproto.assistant_api.AssistantDashboardBucket.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setStartdate(value);\n      break;\n    case 2:\n      var value = new google_protobuf_timestamp_pb.Timestamp;\n      reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n      msg.setEnddate(value);\n      break;\n    case 10:\n      var value = /** @type {number} */ (reader.readUint32());\n      msg.setMessagecount(value);\n      break;\n    case 11:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setSttlatencyms(value);\n      break;\n    case 12:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setEoslatencyms(value);\n      break;\n    case 13:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setTtslatencyms(value);\n      break;\n    case 14:\n      var value = /** @type {number} */ (reader.readDouble());\n      msg.setLlmlatencyms(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.AssistantDashboardBucket.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.AssistantDashboardBucket} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.AssistantDashboardBucket.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getStartdate();\n  if (f != null) {\n    writer.writeMessage(\n      1,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getEnddate();\n  if (f != null) {\n    writer.writeMessage(\n      2,\n      f,\n      google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n    );\n  }\n  f = message.getMessagecount();\n  if (f !== 0) {\n    writer.writeUint32(\n      10,\n      f\n    );\n  }\n  f = message.getSttlatencyms();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      11,\n      f\n    );\n  }\n  f = message.getEoslatencyms();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      12,\n      f\n    );\n  }\n  f = message.getTtslatencyms();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      13,\n      f\n    );\n  }\n  f = message.getLlmlatencyms();\n  if (f !== 0.0) {\n    writer.writeDouble(\n      14,\n      f\n    );\n  }\n};\n\n\n/**\n * optional google.protobuf.Timestamp startDate = 1;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.getStartdate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantDashboardBucket} returns this\n*/\nproto.assistant_api.AssistantDashboardBucket.prototype.setStartdate = function(value) {\n  return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantDashboardBucket} returns this\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.clearStartdate = function() {\n  return this.setStartdate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.hasStartdate = function() {\n  return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp endDate = 2;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.getEnddate = function() {\n  return /** @type{?proto.google.protobuf.Timestamp} */ (\n    jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));\n};\n\n\n/**\n * @param {?proto.google.protobuf.Timestamp|undefined} value\n * @return {!proto.assistant_api.AssistantDashboardBucket} returns this\n*/\nproto.assistant_api.AssistantDashboardBucket.prototype.setEnddate = function(value) {\n  return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.AssistantDashboardBucket} returns this\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.clearEnddate = function() {\n  return this.setEnddate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.hasEnddate = function() {\n  return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional uint32 messageCount = 10;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.getMessagecount = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardBucket} returns this\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.setMessagecount = function(value) {\n  return jspb.Message.setProto3IntField(this, 10, value);\n};\n\n\n/**\n * optional double sttLatencyMs = 11;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.getSttlatencyms = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardBucket} returns this\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.setSttlatencyms = function(value) {\n  return jspb.Message.setProto3FloatField(this, 11, value);\n};\n\n\n/**\n * optional double eosLatencyMs = 12;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.getEoslatencyms = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardBucket} returns this\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.setEoslatencyms = function(value) {\n  return jspb.Message.setProto3FloatField(this, 12, value);\n};\n\n\n/**\n * optional double ttsLatencyMs = 13;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.getTtslatencyms = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardBucket} returns this\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.setTtslatencyms = function(value) {\n  return jspb.Message.setProto3FloatField(this, 13, value);\n};\n\n\n/**\n * optional double llmLatencyMs = 14;\n * @return {number}\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.getLlmlatencyms = function() {\n  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 14, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.AssistantDashboardBucket} returns this\n */\nproto.assistant_api.AssistantDashboardBucket.prototype.setLlmlatencyms = function(value) {\n  return jspb.Message.setProto3FloatField(this, 14, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.UpdateAssistantDetailRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.UpdateAssistantDetailRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.UpdateAssistantDetailRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantDetailRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n    description: jspb.Message.getFieldWithDefault(msg, 3, \"\")\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.UpdateAssistantDetailRequest}\n */\nproto.assistant_api.UpdateAssistantDetailRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.UpdateAssistantDetailRequest;\n  return proto.assistant_api.UpdateAssistantDetailRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.UpdateAssistantDetailRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.UpdateAssistantDetailRequest}\n */\nproto.assistant_api.UpdateAssistantDetailRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setName(value);\n      break;\n    case 3:\n      var value = /** @type {string} */ (reader.readString());\n      msg.setDescription(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.UpdateAssistantDetailRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.UpdateAssistantDetailRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.UpdateAssistantDetailRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.UpdateAssistantDetailRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getName();\n  if (f.length > 0) {\n    writer.writeString(\n      2,\n      f\n    );\n  }\n  f = message.getDescription();\n  if (f.length > 0) {\n    writer.writeString(\n      3,\n      f\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantDetailRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantDetailRequest} returns this\n */\nproto.assistant_api.UpdateAssistantDetailRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantDetailRequest.prototype.getName = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantDetailRequest} returns this\n */\nproto.assistant_api.UpdateAssistantDetailRequest.prototype.setName = function(value) {\n  return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string description = 3;\n * @return {string}\n */\nproto.assistant_api.UpdateAssistantDetailRequest.prototype.getDescription = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.UpdateAssistantDetailRequest} returns this\n */\nproto.assistant_api.UpdateAssistantDetailRequest.prototype.setDescription = function(value) {\n  return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.assistant_api.GetAssistantConversationRequest.repeatedFields_ = [5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantConversationRequest.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantConversationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantConversationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantConversationRequest.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    assistantid: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n    id: jspb.Message.getFieldWithDefault(msg, 2, \"0\"),\n    selectorsList: jspb.Message.toObjectList(msg.getSelectorsList(),\n    common_pb.FieldSelector.toObject, includeInstance)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantConversationRequest}\n */\nproto.assistant_api.GetAssistantConversationRequest.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantConversationRequest;\n  return proto.assistant_api.GetAssistantConversationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantConversationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantConversationRequest}\n */\nproto.assistant_api.GetAssistantConversationRequest.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setAssistantid(value);\n      break;\n    case 2:\n      var value = /** @type {string} */ (reader.readUint64String());\n      msg.setId(value);\n      break;\n    case 5:\n      var value = new common_pb.FieldSelector;\n      reader.readMessage(value,common_pb.FieldSelector.deserializeBinaryFromReader);\n      msg.addSelectors(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantConversationRequest.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantConversationRequest.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantConversationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantConversationRequest.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getAssistantid();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      1,\n      f\n    );\n  }\n  f = message.getId();\n  if (parseInt(f, 10) !== 0) {\n    writer.writeUint64String(\n      2,\n      f\n    );\n  }\n  f = message.getSelectorsList();\n  if (f.length > 0) {\n    writer.writeRepeatedMessage(\n      5,\n      f,\n      common_pb.FieldSelector.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional uint64 assistantId = 1;\n * @return {string}\n */\nproto.assistant_api.GetAssistantConversationRequest.prototype.getAssistantid = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantConversationRequest} returns this\n */\nproto.assistant_api.GetAssistantConversationRequest.prototype.setAssistantid = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional uint64 id = 2;\n * @return {string}\n */\nproto.assistant_api.GetAssistantConversationRequest.prototype.getId = function() {\n  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.assistant_api.GetAssistantConversationRequest} returns this\n */\nproto.assistant_api.GetAssistantConversationRequest.prototype.setId = function(value) {\n  return jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\n/**\n * repeated FieldSelector selectors = 5;\n * @return {!Array<!proto.FieldSelector>}\n */\nproto.assistant_api.GetAssistantConversationRequest.prototype.getSelectorsList = function() {\n  return /** @type{!Array<!proto.FieldSelector>} */ (\n    jspb.Message.getRepeatedWrapperField(this, common_pb.FieldSelector, 5));\n};\n\n\n/**\n * @param {!Array<!proto.FieldSelector>} value\n * @return {!proto.assistant_api.GetAssistantConversationRequest} returns this\n*/\nproto.assistant_api.GetAssistantConversationRequest.prototype.setSelectorsList = function(value) {\n  return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!proto.FieldSelector=} opt_value\n * @param {number=} opt_index\n * @return {!proto.FieldSelector}\n */\nproto.assistant_api.GetAssistantConversationRequest.prototype.addSelectors = function(opt_value, opt_index) {\n  return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.FieldSelector, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.assistant_api.GetAssistantConversationRequest} returns this\n */\nproto.assistant_api.GetAssistantConversationRequest.prototype.clearSelectorsList = function() {\n  return this.setSelectorsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n *     net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n *     JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.toObject = function(opt_includeInstance) {\n  return proto.assistant_api.GetAssistantConversationResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n *     the JSPB instance for transitional soy proto support:\n *     http://goto/soy-param-migration\n * @param {!proto.assistant_api.GetAssistantConversationResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantConversationResponse.toObject = function(includeInstance, msg) {\n  var f, obj = {\n    code: jspb.Message.getFieldWithDefault(msg, 1, 0),\n    success: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n    data: (f = msg.getData()) && common_pb.AssistantConversation.toObject(includeInstance, f),\n    error: (f = msg.getError()) && common_pb.Error.toObject(includeInstance, f)\n  };\n\n  if (includeInstance) {\n    obj.$jspbMessageInstance = msg;\n  }\n  return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.assistant_api.GetAssistantConversationResponse}\n */\nproto.assistant_api.GetAssistantConversationResponse.deserializeBinary = function(bytes) {\n  var reader = new jspb.BinaryReader(bytes);\n  var msg = new proto.assistant_api.GetAssistantConversationResponse;\n  return proto.assistant_api.GetAssistantConversationResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.assistant_api.GetAssistantConversationResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.assistant_api.GetAssistantConversationResponse}\n */\nproto.assistant_api.GetAssistantConversationResponse.deserializeBinaryFromReader = function(msg, reader) {\n  while (reader.nextField()) {\n    if (reader.isEndGroup()) {\n      break;\n    }\n    var field = reader.getFieldNumber();\n    switch (field) {\n    case 1:\n      var value = /** @type {number} */ (reader.readInt32());\n      msg.setCode(value);\n      break;\n    case 2:\n      var value = /** @type {boolean} */ (reader.readBool());\n      msg.setSuccess(value);\n      break;\n    case 3:\n      var value = new common_pb.AssistantConversation;\n      reader.readMessage(value,common_pb.AssistantConversation.deserializeBinaryFromReader);\n      msg.setData(value);\n      break;\n    case 4:\n      var value = new common_pb.Error;\n      reader.readMessage(value,common_pb.Error.deserializeBinaryFromReader);\n      msg.setError(value);\n      break;\n    default:\n      reader.skipField();\n      break;\n    }\n  }\n  return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.serializeBinary = function() {\n  var writer = new jspb.BinaryWriter();\n  proto.assistant_api.GetAssistantConversationResponse.serializeBinaryToWriter(this, writer);\n  return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.assistant_api.GetAssistantConversationResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.assistant_api.GetAssistantConversationResponse.serializeBinaryToWriter = function(message, writer) {\n  var f = undefined;\n  f = message.getCode();\n  if (f !== 0) {\n    writer.writeInt32(\n      1,\n      f\n    );\n  }\n  f = message.getSuccess();\n  if (f) {\n    writer.writeBool(\n      2,\n      f\n    );\n  }\n  f = message.getData();\n  if (f != null) {\n    writer.writeMessage(\n      3,\n      f,\n      common_pb.AssistantConversation.serializeBinaryToWriter\n    );\n  }\n  f = message.getError();\n  if (f != null) {\n    writer.writeMessage(\n      4,\n      f,\n      common_pb.Error.serializeBinaryToWriter\n    );\n  }\n};\n\n\n/**\n * optional int32 code = 1;\n * @return {number}\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.getCode = function() {\n  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.assistant_api.GetAssistantConversationResponse} returns this\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.setCode = function(value) {\n  return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bool success = 2;\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.getSuccess = function() {\n  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.assistant_api.GetAssistantConversationResponse} returns this\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.setSuccess = function(value) {\n  return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional AssistantConversation data = 3;\n * @return {?proto.AssistantConversation}\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.getData = function() {\n  return /** @type{?proto.AssistantConversation} */ (\n    jspb.Message.getWrapperField(this, common_pb.AssistantConversation, 3));\n};\n\n\n/**\n * @param {?proto.AssistantConversation|undefined} value\n * @return {!proto.assistant_api.GetAssistantConversationResponse} returns this\n*/\nproto.assistant_api.GetAssistantConversationResponse.prototype.setData = function(value) {\n  return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantConversationResponse} returns this\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.clearData = function() {\n  return this.setData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.hasData = function() {\n  return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Error error = 4;\n * @return {?proto.Error}\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.getError = function() {\n  return /** @type{?proto.Error} */ (\n    jspb.Message.getWrapperField(this, common_pb.Error, 4));\n};\n\n\n/**\n * @param {?proto.Error|undefined} value\n * @return {!proto.assistant_api.GetAssistantConversationResponse} returns this\n*/\nproto.assistant_api.GetAssistantConversationResponse.prototype.setError = function(value) {\n  return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.assistant_api.GetAssistantConversationResponse} returns this\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.clearError = function() {\n  return this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.assistant_api.GetAssistantConversationResponse.prototype.hasError = function() {\n  return jspb.Message.getField(this, 4) != null;\n};\n\n\ngoog.object.extend(exports, proto.assistant_api);\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nimport * as React from \"react\";\nimport { useObservableState } from \"@/rapida/hooks/use-observable-state\";\nimport { BehaviorSubject } from \"rxjs\";\nimport {\n  observeBrowserMediaDevices,\n  observeAgentInputMediaDeviceChange,\n} from \"@/rapida/hooks/observables/voice-agent\";\nimport { VoiceAgent } from \"@/rapida/agents/voice-agent\";\n\n/** @public */\ninterface UseMediaDeviceSelectProps {\n  /**\n   * this will call getUserMedia if the permissions are not yet given to enumerate the devices with device labels.\n   * in some browsers multiple calls to getUserMedia result in multiple permission prompts.\n   * It's generally advised only flip this to true, once a (preview) track has been acquired successfully with the\n   * appropriate permissions.\n   *\n   * @see {@link MediaDeviceMenu}\n   * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices | MDN enumerateDevices}\n   */\n  requestPermissions?: boolean;\n  /**\n   * this callback gets called if an error is thrown when failing to select a device and also if a user\n   * denied permissions, eventhough the `requestPermissions` option is set to `true`.\n   * Most commonly this will emit a MediaDeviceError\n   */\n  onError?: (e: Error) => void;\n\n  /**\n   * voice agent\n   */\n  voiceAgent: VoiceAgent;\n}\n\n/**\n * The `useMediaDeviceSelect` hook is used to implement the `MediaDeviceSelect` component and\n * returns o.a. the list of devices of a given kind (audioinput or videoinput), the currently active device\n * and a function to set the the active device.\n *\n * @example\n * ```tsx\n * const { devices, activeDeviceId, setActiveMediaDevice } = useMediaDeviceSelect({kind: 'audioinput'});\n * ```\n * @public\n */\nexport function useSelectInputDeviceAgent({\n  voiceAgent,\n  requestPermissions,\n  onError,\n}: UseMediaDeviceSelectProps) {\n  // List of all devices.\n  const deviceObserver = React.useMemo(\n    () => observeBrowserMediaDevices(\"audioinput\", onError, requestPermissions),\n    [requestPermissions, onError]\n  );\n  // @ts-ignore\n  const devices: MediaDeviceInfo[] = useObservableState(\n    deviceObserver,\n    [] as MediaDeviceInfo[]\n  );\n  //\n  const [currentDeviceId, setCurrentDeviceId] = React.useState<string>(\n    voiceAgent?.inputMediaDevice ?? \"\"\n  );\n  const { className, activeDeviceObservable, setActiveMediaDevice } =\n    React.useMemo(\n      () => setupDeviceSelector(\"audioinput\", voiceAgent),\n      [voiceAgent.inputMediaDevice]\n    );\n\n  // Set the first device as active when devices are loaded and no device is selected\n  React.useEffect(() => {\n    if (devices.length > 0 && !currentDeviceId) {\n      // Check if voiceAgent has a device set, use that; otherwise use the first device\n      const agentDevice = voiceAgent?.inputMediaDevice;\n      if (agentDevice) {\n        setCurrentDeviceId(agentDevice);\n      } else {\n        // Use the first available device\n        const firstDevice = devices[0];\n        if (firstDevice?.deviceId) {\n          setCurrentDeviceId(firstDevice.deviceId);\n        }\n      }\n    }\n  }, [devices, currentDeviceId, voiceAgent]);\n\n  React.useEffect(() => {\n    const listener = activeDeviceObservable.subscribe((deviceId) => {\n      if (deviceId && deviceId !== currentDeviceId) {\n        setCurrentDeviceId(deviceId);\n      }\n    });\n    return () => {\n      listener?.unsubscribe();\n    };\n  }, [activeDeviceObservable, currentDeviceId]);\n\n  return {\n    devices,\n    className,\n    activeDeviceId: currentDeviceId,\n    setActiveMediaDevice,\n  };\n}\n\nfunction setupDeviceSelector(_: MediaDeviceKind, agent?: VoiceAgent) {\n  const activeDeviceSubject = new BehaviorSubject<string | undefined>(\n    undefined\n  );\n\n  const activeDeviceObservable = agent\n    ? observeAgentInputMediaDeviceChange(agent)\n    : activeDeviceSubject.asObservable();\n\n  const setActiveMediaDevice = async (id: string) => {\n    if (agent) {\n      await agent.setInputMediaDevice(id);\n    } else if (activeDeviceSubject.value !== id) {\n      activeDeviceSubject.next(id);\n    }\n  };\n  const className: string = \"media-device-select\";\n  return {\n    className,\n    activeDeviceObservable,\n    setActiveMediaDevice,\n  };\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nimport * as React from \"react\";\n// @ts-ignore\nimport type { Observable } from \"rxjs\";\n\n/**\n * @internal\n */\nexport function useObservableState<T>(\n  observable: Observable<T> | undefined,\n  startWith: T,\n  resetWhenObservableChanges = true\n): T {\n  const [state, setState] = React.useState<T>(startWith);\n  React.useEffect(() => {\n    if (resetWhenObservableChanges) {\n      setState(startWith);\n    }\n    if (typeof window === \"undefined\" || !observable) return;\n    const subscription = observable.subscribe(setState);\n    return () => subscription.unsubscribe();\n  }, [observable, resetWhenObservableChanges]);\n  return state;\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nimport { Subject, map, Observable, startWith, finalize, concat } from \"rxjs\";\nimport { VoiceAgent } from \"@/rapida/agents/voice-agent\";\nimport { AgentEvent } from \"@/rapida/types/agent-event\";\nimport { ConnectionState } from \"@/rapida/types/connection-state\";\nimport {\n  ConversationConfiguration,\n  ConversationInterruption,\n  ConversationUserMessage,\n  ConversationAssistantMessage,\n} from \"@/rapida/clients/protos/talk-api_pb\";\nimport { WebTalkResponse } from \"@/rapida/clients/protos/webrtc_pb\";\n/**\n * Utility function to observe a specific agent event.\n * @param agent The voice agent instance.\n * @param event The agent event to observe.\n * @returns Observable emitting the event arguments.\n */\nexport function agentEventSelector(\n  agent: VoiceAgent,\n  events: AgentEvent | AgentEvent[]\n): Observable<any> {\n  const eventArray = Array.isArray(events) ? events : [events];\n  return new Observable((subscriber) => {\n    const callback = (...args: any[]) => {\n      subscriber.next(args);\n    };\n\n    eventArray.forEach((event) => agent.on(event, callback));\n    return () => {\n      eventArray.forEach((event) => agent.off(event, callback));\n    };\n  });\n}\n\n/**\n * Observes voice agent input media device changes.\n */\nexport function observeAgentInputMediaDeviceChange(\n  agent: VoiceAgent\n): Observable<string> {\n  return agentEventSelector(agent, AgentEvent.InputMediaDeviceChangeEvent).pipe(\n    map(([deviceId]: [string]) => deviceId) // Ensure the device ID is retrieved appropriately.\n  );\n}\n\n/**\n * Observes connection state changes for the agent.\n */\nexport function observeAgentConnectionState(\n  agent: VoiceAgent\n): Observable<{ isConnected: boolean; isConnecting: boolean }> {\n  return agentEventSelector(agent, AgentEvent.ConnectionStateEvent).pipe(\n    map(([state]: [ConnectionState]) => ({\n      isConnected: state === ConnectionState.Connected,\n      isConnecting: state === ConnectionState.Connecting,\n    }))\n  );\n}\n\n/**\n * Observes mute state changes for the agent.\n */\nexport function observeAgentMuteState(\n  agent: VoiceAgent\n): Observable<{ isMuted: boolean }> {\n  return agentEventSelector(agent, AgentEvent.MuteStateEvent).pipe(\n    map(([isMuted]: [boolean]) => ({\n      isMuted,\n    })),\n    startWith({ isMuted: agent.isMuted })\n  );\n}\n\n/**\n * Observes server events from the agent.\n */\nexport function observeAgentServerEvents(agent: VoiceAgent): Observable<{\n  eventType?: WebTalkResponse.DataCase;\n  argument?:\n  | ConversationConfiguration\n  | ConversationInterruption\n  | ConversationUserMessage\n  | ConversationAssistantMessage;\n}> {\n  return agentEventSelector(agent, AgentEvent.ConversationEvent).pipe(\n    map(([eventType, event]) => ({\n      eventType,\n      argument: event,\n    })),\n    startWith({ eventType: undefined, argument: undefined })\n  );\n}\n\n/**\n *\n * @param agent\n * @returns\n */\nexport function observeAgentMessageEvents(agent: VoiceAgent) {\n  const observable = agentEventSelector(agent, [\n    AgentEvent.ConversationEvent,\n    AgentEvent.FeedbackEvent,\n  ]).pipe(\n    map((v) => {\n      return {\n        eventType: v,\n        chats: agent.messages,\n      };\n    }),\n    startWith({\n      eventType: undefined,\n      chats: agent.messages,\n    })\n  );\n  return observable;\n}\n\n/**\n * Observes browser media devices changes.\n */\nexport function observeBrowserMediaDevices(\n  kind?: MediaDeviceKind,\n  onError?: (error: Error) => void,\n  requestPermissions = true\n): Observable<MediaDeviceInfo[]> {\n  const deviceSubject = new Subject<MediaDeviceInfo[]>();\n\n  const handleDeviceChange = async () => {\n    try {\n      const devices = await VoiceAgent.getLocalDevices(\n        kind,\n        requestPermissions\n      );\n      deviceSubject.next(devices);\n    } catch (err) {\n      const error = err instanceof Error ? err : new Error(String(err));\n      onError?.(error);\n    }\n  };\n\n  const observable = deviceSubject.pipe(\n    finalize(() =>\n      navigator?.mediaDevices?.removeEventListener(\n        \"devicechange\",\n        handleDeviceChange\n      )\n    )\n  );\n\n  if (typeof window !== \"undefined\") {\n    if (!window.isSecureContext) {\n      throw new Error(\n        \"Accessing media devices is available only in secure contexts.\"\n      );\n    }\n    navigator?.mediaDevices?.addEventListener(\n      \"devicechange\",\n      handleDeviceChange\n    );\n  }\n\n  return concat(\n    VoiceAgent.getLocalDevices(kind, requestPermissions).catch((err) => {\n      const error = err instanceof Error ? err : new Error(String(err));\n      onError?.(error);\n      return [] as MediaDeviceInfo[];\n    }),\n    observable\n  );\n}\n\n/**\n *\n * @param agent\n * @returns\n */\nexport function observeAgentInputChannel(agent: VoiceAgent) {\n  const observable = agentEventSelector(\n    agent,\n    AgentEvent.InputChannelChangeEvent\n  ).pipe(\n    map(([channel]) => {\n      return { channel: channel };\n    })\n  );\n  return observable;\n}\n\n/**\n *\n * @param agent\n * @returns\n */\nexport function observeAgentError(agent: VoiceAgent): Observable<string> {\n  const observable = agentEventSelector(agent, AgentEvent.ErrorEvent).pipe(\n    map(([error]) => {\n      return error;\n    })\n  );\n  return observable;\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nexport const DEFAULT_DEVICE_ID = \"default\";\n\nexport const ASSISTANT_API = \"https://assistant-01.in.rapida.ai\";\nexport const WEB_API = \"https://api-01.in.rapida.ai\";\nexport const ENDPOINT_API = \"https://api-01.in.rapida.ai\";\n\nexport const LOCAL_ASSISTANT_API = \"http://assistant.rapida.local\";\nexport const LOCAL_WEB_API = \"http://dev.rapida.local\";\nexport const LOCAL_ENDPOINT_API = \"http://dev.rapida.local\";\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nconst commonVersionIdentifier = /version\\/(\\d+(\\.?_?\\d+)+)/i;\n\nexport type DetectableBrowser =\n  | \"Chrome\"\n  | \"Firefox\"\n  | \"Safari\"\n  | \"Internet Explorer\"\n  | \"Edge\";\nexport type DetectableOS = \"iOS\" | \"macOS\" | \"Windows\" | \"Android\" | \"Linux\";\n\nexport type BrowserDetails = {\n  name: DetectableBrowser;\n  version: string;\n  os?: DetectableOS;\n  osVersion?: string;\n};\n\nlet browserDetails: BrowserDetails | undefined;\n\n/**\n * @internal\n */\nexport function getBrowser(\n  userAgent?: string,\n  force = true\n): BrowserDetails | undefined {\n  if (typeof userAgent === \"undefined\" && typeof navigator === \"undefined\") {\n    return;\n  }\n  const ua = (userAgent ?? navigator.userAgent).toLowerCase();\n  if (browserDetails === undefined || force) {\n    const browser = browsersList.find(({ test }) => test.test(ua));\n    browserDetails = browser?.describe(ua);\n  }\n  return browserDetails;\n}\n\nconst browsersList = [\n  /* Edge (Chromium-based) - must be checked before Chrome */\n  {\n    test: /edg\\//i,\n    describe(ua: string) {\n      const browser: BrowserDetails = {\n        name: \"Edge\",\n        version: getMatch(/edg\\/(\\d+(\\.?_?\\d+)+)/i, ua),\n        os: getOS(ua),\n        osVersion: getOSVersion(ua),\n      };\n      return browser;\n    },\n  },\n  /* Edge Legacy */\n  {\n    test: /edge\\//i,\n    describe(ua: string) {\n      const browser: BrowserDetails = {\n        name: \"Edge\",\n        version: getMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i, ua),\n        os: getOS(ua),\n        osVersion: getOSVersion(ua),\n      };\n      return browser;\n    },\n  },\n  /* Internet Explorer */\n  {\n    test: /trident|msie/i,\n    describe(ua: string) {\n      const browser: BrowserDetails = {\n        name: \"Internet Explorer\",\n        version: getMatch(/(?:msie |rv:)(\\d+(\\.?\\d+)+)/i, ua),\n        os: \"Windows\",\n        osVersion: getOSVersion(ua),\n      };\n      return browser;\n    },\n  },\n  {\n    test: /firefox|iceweasel|fxios/i,\n    describe(ua: string) {\n      const browser: BrowserDetails = {\n        name: \"Firefox\",\n        version: getMatch(\n          /(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,\n          ua\n        ),\n        os: ua.toLowerCase().includes(\"fxios\") ? \"iOS\" : getOS(ua),\n        osVersion: getOSVersion(ua),\n      };\n      return browser;\n    },\n  },\n  {\n    test: /chrom|crios|crmo/i,\n    describe(ua: string) {\n      const browser: BrowserDetails = {\n        name: \"Chrome\",\n        version: getMatch(\n          /(?:chrome|chromium|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,\n          ua\n        ),\n        os: ua.toLowerCase().includes(\"crios\") ? \"iOS\" : getOS(ua),\n        osVersion: getOSVersion(ua),\n      };\n\n      return browser;\n    },\n  },\n  /* Safari */\n  {\n    test: /safari|applewebkit/i,\n    describe(ua: string) {\n      const browser: BrowserDetails = {\n        name: \"Safari\",\n        version: getMatch(commonVersionIdentifier, ua),\n        os: ua.includes(\"mobile/\") ? \"iOS\" : getOS(ua) || \"macOS\",\n        osVersion: getOSVersion(ua),\n      };\n\n      return browser;\n    },\n  },\n];\n\nfunction getMatch(exp: RegExp, ua: string, id = 1) {\n  const match = ua.match(exp);\n  return (match && match.length >= id && match[id]) || \"\";\n}\n\nfunction getOSVersion(ua: string) {\n  if (ua.includes(\"mac os\")) {\n    return getMatch(/\\(.+?(\\d+_\\d+(:?_\\d+)?)/, ua, 1).replace(/_/g, \".\");\n  }\n  if (ua.includes(\"windows nt\")) {\n    return getMatch(/windows nt ([\\d.]+)/i, ua, 1);\n  }\n  if (ua.includes(\"android\")) {\n    return getMatch(/android ([\\d.]+)/i, ua, 1);\n  }\n  return undefined;\n}\n\nfunction getOS(ua: string): DetectableOS | undefined {\n  const uaLower = ua.toLowerCase();\n  if (uaLower.includes(\"iphone\") || uaLower.includes(\"ipad\") || uaLower.includes(\"ipod\")) {\n    return \"iOS\";\n  }\n  if (uaLower.includes(\"mac os\") && !uaLower.includes(\"iphone\") && !uaLower.includes(\"ipad\")) {\n    return \"macOS\";\n  }\n  if (uaLower.includes(\"windows\")) {\n    return \"Windows\";\n  }\n  if (uaLower.includes(\"android\")) {\n    return \"Android\";\n  }\n  if (uaLower.includes(\"linux\") && !uaLower.includes(\"android\")) {\n    return \"Linux\";\n  }\n  return undefined;\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nimport { getBrowser } from \"@/rapida/utils/rapida_client\";\nimport { Timestamp } from \"google-protobuf/google/protobuf/timestamp_pb\";\nimport { Metadata } from \"@/rapida/clients/protos/common_pb\";\n\nimport moment from \"moment\";\n\nexport function isSafari(): boolean {\n  return getBrowser()?.name === \"Safari\";\n}\n\nexport function isChrome(): boolean {\n  return getBrowser()?.name === \"Chrome\";\n}\n\nexport function isFirefox(): boolean {\n  return getBrowser()?.name === \"Firefox\";\n}\n\nexport function isInternetExplorer(): boolean {\n  return getBrowser()?.name === \"Internet Explorer\";\n}\n\nexport function isEdge(): boolean {\n  return getBrowser()?.name === \"Edge\";\n}\n\nexport function isMacOs(): boolean {\n  return getBrowser()?.os === \"macOS\";\n}\n\nexport function isIOS(): boolean {\n  return getBrowser()?.os === \"iOS\";\n}\n\nexport function isWindows(): boolean {\n  return getBrowser()?.os === \"Windows\";\n}\n\nexport function isLinux(): boolean {\n  return getBrowser()?.os === \"Linux\";\n}\n\n/**\n * Check if setSinkId is supported by the browser.\n * This is required for audio output device selection.\n * Firefox on Windows and some older browsers don't support it.\n */\nexport function isSinkIdSupported(): boolean {\n  if (typeof HTMLAudioElement === \"undefined\") {\n    return false;\n  }\n  const audio = document.createElement(\"audio\");\n  return \"setSinkId\" in audio;\n}\n\n/**\n * Check if the browser has full WebRTC audio support.\n * Some browsers have partial support that can cause issues.\n */\nexport function hasFullWebRTCAudioSupport(): boolean {\n  return (\n    typeof RTCPeerConnection !== \"undefined\" &&\n    typeof navigator.mediaDevices?.getUserMedia === \"function\" &&\n    // Safari uses webkitAudioContext (standard AudioContext was added in Safari 14.1)\n    (typeof AudioContext !== \"undefined\" || typeof (window as any).webkitAudioContext !== \"undefined\")\n  );\n}\n\nexport function toDate(timestamp: Timestamp): Date {\n  // Extract seconds and nanos from gRPC Timestamp\n  const seconds = timestamp.getSeconds();\n  const nanos = timestamp.getNanos();\n\n  // Calculate milliseconds since Unix epoch\n  // const milliseconds = seconds * 1000 + Math.round(nanos / 1e6);\n\n  // // Create Moment.js object from milliseconds\n  // return moment.utc(milliseconds).toDate();\n\n  // // Extract seconds and nanos from the gRPC timestamp\n  // const { seconds, nanos } = timestamp;\n\n  // Convert seconds to milliseconds\n  const millisecondsFromSeconds = seconds * 1000;\n\n  // Convert nanos to milliseconds\n  const millisecondsFromNanos = nanos / 1000000;\n\n  // Combine the two to get the total milliseconds\n  const totalMilliseconds = millisecondsFromSeconds + millisecondsFromNanos;\n\n  // Create a new Date object using the total milliseconds (interpreted as UTC)\n  const utcDate = new Date(totalMilliseconds);\n\n  // The Date object automatically handles conversion to local time\n  return utcDate;\n}\n\nexport function toHumanReadableDate(timestamp: Timestamp): string {\n  const options = {\n    year: \"numeric\",\n    month: \"short\",\n    day: \"numeric\",\n  };\n\n  return toDate(timestamp).toLocaleDateString(\n    \"en-US\",\n    options as Intl.DateTimeFormatOptions\n  );\n}\n\nexport function toHumanReadableDateTime(timestamp: Timestamp): string {\n  return toDate(timestamp).toUTCString();\n}\n\nexport function toHumanReadableRelativeTime(timestamp: Timestamp): string {\n  return moment(toDate(timestamp).toUTCString()).fromNow();\n}\nexport function daysAgoFromTimestamp(timestamp: Timestamp): number {\n  const givenDate = moment(toDate(timestamp).toUTCString());\n  const today = moment().utc();\n  return today.diff(givenDate, \"days\");\n}\nexport function toHumanReadableRelativeDay(timestamp: Timestamp): string {\n  const daysAgo = daysAgoFromTimestamp(timestamp);\n  if (daysAgo === 0) {\n    return \"today\";\n  } else if (daysAgo === 1) {\n    return \"yesterday\";\n  } else {\n    return `${daysAgo} days ago`;\n  }\n}\n\nexport function getTimeFromDate(timestamp: Timestamp): string {\n  const hours = toDate(timestamp).getHours().toString().padStart(2, \"0\");\n  const minutes = toDate(timestamp).getMinutes().toString().padStart(2, \"0\");\n  return `${hours}:${minutes}`;\n}\n\n/**\n * Detects if the current device is a mobile device.\n * This checks both the user agent and screen size to determine if the device is a mobile device.\n * @returns {boolean} True if the current device is a mobile device, false otherwise.\n */\nexport function isMobile(): boolean {\n  // Check if window exists (for SSR compatibility)\n  if (typeof window === \"undefined\") {\n    return false;\n  }\n\n  // User agent detection for mobile devices\n  const userAgent = window.navigator.userAgent.toLowerCase();\n  const mobileKeywords = [\n    \"android\",\n    \"iphone\",\n    \"ipod\",\n    \"ipad\",\n    \"windows phone\",\n    \"blackberry\",\n    \"nokia\",\n    \"opera mini\",\n    \"mobile\",\n    \"tablet\",\n  ];\n\n  // Check if any mobile keywords are in the user agent\n  const hasMobileUA = mobileKeywords.some((keyword) =>\n    userAgent.includes(keyword)\n  );\n\n  // Additional check for iOS devices using vendor\n  const isIOS =\n    /iPad|iPhone|iPod/.test(navigator.platform) ||\n    (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1);\n\n  // Additional screen size check (most mobile devices are less than 1024px wide)\n  const hasSmallScreen = window.innerWidth < 1024;\n\n  // Additional touch check - most mobile devices support touch\n  const hasTouch = \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n\n  // Consider it mobile if user agent suggests mobile OR it's iOS\n  // AND has either small screen or touch capabilities\n  return (hasMobileUA || isIOS) && (hasSmallScreen || hasTouch);\n}\n\n/**\n * Detects if the current browser is Safari on iOS.\n * iOS Safari has specific restrictions around media permissions.\n * @returns {boolean} True if the current browser is Safari on iOS, false otherwise.\n */\nexport function isIOSSafari(): boolean {\n  return (\n    isMobile() &&\n    isSafari() &&\n    (/iPad|iPhone|iPod/.test(navigator.platform) ||\n      (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1))\n  );\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nimport { DEFAULT_DEVICE_ID } from \"@/rapida/constants\";\nimport { isSafari, isMobile, isWindows, isFirefox, isSinkIdSupported } from \"@/rapida/utils\";\n\nexport class DeviceManager {\n  private static instance?: DeviceManager;\n  static mediaDeviceKinds: MediaDeviceKind[] = [\"audioinput\", \"audiooutput\"];\n  static getInstance(): DeviceManager {\n    if (this.instance === undefined) {\n      this.instance = new DeviceManager();\n    }\n    return this.instance;\n  }\n\n  static userMediaPromiseMap: Map<MediaDeviceKind, Promise<MediaStream>> =\n    new Map();\n\n  async getDevices(\n    kind?: MediaDeviceKind,\n    requestPermissions: boolean = true\n  ): Promise<MediaDeviceInfo[]> {\n    // Check if navigator.mediaDevices is available (not available in some browsers in insecure contexts)\n    if (!navigator.mediaDevices) {\n      console.warn(\"MediaDevices API not available in this browser or context\");\n      return [];\n    }\n\n    // Special handling for audiooutput on Windows with Firefox (not supported)\n    if (kind === \"audiooutput\" && isWindows() && isFirefox()) {\n      console.warn(\"[DeviceManager] audiooutput enumeration not fully supported in Firefox on Windows\");\n      // Firefox on Windows doesn't support setSinkId, so output device selection is limited\n      if (!isSinkIdSupported()) {\n        return [];\n      }\n    }\n\n    // Wait for any pending media permission requests\n    if (DeviceManager.userMediaPromiseMap?.size > 0) {\n      console.debug(\"awaiting getUserMedia promise\");\n      try {\n        if (kind) {\n          const pendingPromise = DeviceManager.userMediaPromiseMap.get(kind);\n          if (pendingPromise) {\n            await pendingPromise;\n          }\n        } else {\n          await Promise.all(DeviceManager.userMediaPromiseMap.values());\n        }\n      } catch (e: any) {\n        console.warn(\"error waiting for media permissions:\", e);\n      }\n    }\n\n    // Initial device enumeration\n    let devices: MediaDeviceInfo[] = [];\n    try {\n      devices = await navigator.mediaDevices.enumerateDevices();\n    } catch (error) {\n      console.error(\"Failed to enumerate devices:\", error);\n      return [];\n    }\n\n    // Windows-specific: Filter out phantom/virtual devices that may cause issues\n    if (isWindows()) {\n      devices = this.filterWindowsDevices(devices);\n    }\n\n    // Determine if we need to request permissions\n    const needsPermission = this.needsMediaPermissions(\n      devices,\n      kind,\n      requestPermissions\n    );\n\n    // Request permissions if needed\n    if (needsPermission) {\n      try {\n        // Different approach based on the kind of device we're looking for\n        const constraints: MediaStreamConstraints = {\n          audio:\n            kind === \"audioinput\" ||\n            (!kind && DeviceManager.mediaDeviceKinds.includes(\"audioinput\")),\n          video:\n            kind === \"videoinput\" ||\n            (!kind && DeviceManager.mediaDeviceKinds.includes(\"videoinput\")),\n        };\n\n        // For audiooutput, we need audio input permissions first in many browsers\n        if (kind === \"audiooutput\") {\n          constraints.audio = true;\n        }\n\n        // Mobile-specific optimizations\n        if (isMobile()) {\n          // On mobile, we want to minimize the camera usage to save battery\n          // and avoid potential permission issues\n          if (constraints.video && kind !== \"videoinput\") {\n            // If we're not specifically looking for video devices, prefer audio only on mobile\n            constraints.video = false;\n          }\n\n          // Use simpler constraints for mobile\n          if (constraints.video) {\n            constraints.video = { facingMode: { ideal: \"user\" } };\n          }\n        }\n\n        // Store the permission request promise\n        const permissionPromise =\n          navigator.mediaDevices.getUserMedia(constraints);\n\n        if (kind) {\n          DeviceManager.userMediaPromiseMap.set(kind, permissionPromise);\n        } else {\n          // If no specific kind, set for all relevant kinds\n          if (constraints.audio) {\n            DeviceManager.userMediaPromiseMap.set(\n              \"audioinput\",\n              permissionPromise\n            );\n          }\n          if (constraints.video) {\n            DeviceManager.userMediaPromiseMap.set(\n              \"videoinput\",\n              permissionPromise\n            );\n          }\n        }\n\n        // Request the permissions\n        const stream = await permissionPromise;\n\n        // Re-enumerate devices after permissions granted\n        devices = await navigator.mediaDevices.enumerateDevices();\n\n        // Clean up the stream\n        stream.getTracks().forEach((track) => track.stop());\n\n        // Clear the promise from the map\n        if (kind) {\n          DeviceManager.userMediaPromiseMap.delete(kind);\n        } else {\n          DeviceManager.userMediaPromiseMap.clear();\n        }\n      } catch (error) {\n        console.error(\"Failed to get user media:\", error);\n        // Clear failed promise\n        if (kind) {\n          DeviceManager.userMediaPromiseMap.delete(kind);\n        }\n\n        // On mobile, especially iOS, sometimes we need to just work with what we have\n        if (isMobile()) {\n          console.warn(\n            \"Using available devices on mobile despite permission failure\"\n          );\n          try {\n            devices = await navigator.mediaDevices.enumerateDevices();\n          } catch (e) {\n            console.error(\n              \"Failed to enumerate devices after permission failure:\",\n              e\n            );\n          }\n        }\n      }\n    }\n\n    // Filter by kind if specified\n    if (kind) {\n      devices = devices.filter((device) => device.kind === kind);\n    }\n\n    return devices;\n  }\n\n  private needsMediaPermissions(\n    devices: MediaDeviceInfo[],\n    kind?: MediaDeviceKind,\n    requestPermissions: boolean = true\n  ): boolean {\n    // Don't request permissions if not asked to\n    if (!requestPermissions) {\n      return false;\n    }\n\n    // Special handling for Safari - particularly important on iOS\n    if (isSafari() && this.hasDeviceInUse(kind)) {\n      return false; // Skip request for Safari if devices are already in use to avoid iOS bug\n    }\n\n    // On iOS, we need to be careful about requesting permissions too frequently\n    // as it can cause the browser to block further requests\n    if (isMobile() && isSafari() && devices.length > 0) {\n      // If we have any device with labels on iOS, assume we have permissions\n      // This helps avoid the iOS Safari issue where repeated permission requests can be problematic\n      const hasAnyLabels = devices.some(\n        (device) => device.label && device.label !== \"\"\n      );\n      if (hasAnyLabels) {\n        return false;\n      }\n    }\n\n    // Filter relevant devices based on kind\n    const relevantDevices = kind\n      ? devices.filter((d) => d.kind === kind)\n      : devices;\n\n    // Check if we have any unlabeled devices (indicating no permissions)\n    const hasUnlabeledDevices = relevantDevices.some(\n      (device) => !device.label || device.label === \"\"\n    );\n\n    // Check if we have any devices at all\n    const hasNoDevices = kind\n      ? devices.filter((d) => d.kind === kind).length === 0\n      : devices.length === 0;\n\n    return hasUnlabeledDevices || hasNoDevices;\n  }\n\n  async normalizeDeviceId(\n    kind: MediaDeviceKind,\n    deviceId?: string,\n    groupId?: string\n  ): Promise<string | undefined> {\n    // If not default device, return as is\n    if (!deviceId || deviceId !== DEFAULT_DEVICE_ID) {\n      return deviceId;\n    }\n\n    try {\n      // Get all devices of specified kind\n      const devices = await this.getDevices(kind);\n\n      // If no devices found, return undefined\n      if (!devices.length) {\n        console.warn(`No ${kind} devices found`);\n        return undefined;\n      }\n\n      // Find the default device\n      const defaultDevice = devices.find(\n        (d) => d.deviceId === DEFAULT_DEVICE_ID\n      );\n\n      // Mobile devices often don't have a \"default\" concept in the same way as desktop\n      if (isMobile() && !defaultDevice) {\n        // On mobile, particularly iOS, just return the first device if no default found\n        console.info(`Using first available ${kind} device on mobile`);\n        return devices[0]?.deviceId;\n      }\n\n      // If no default device found on desktop, return first available device\n      if (!defaultDevice) {\n        console.warn(\n          `No default ${kind} device found, returning first available device`\n        );\n        return devices[0]?.deviceId;\n      }\n\n      // Try to find a device in the same group as the default device\n      const targetGroupId = groupId ?? defaultDevice.groupId;\n      const device = devices.find(\n        (d) => d.deviceId !== DEFAULT_DEVICE_ID && d.groupId === targetGroupId\n      );\n\n      // Return found device or first non-default device\n      if (device) {\n        return device.deviceId;\n      }\n\n      // If no match found, return first non-default device\n      const nonDefaultDevice = devices.find(\n        (d) => d.deviceId !== DEFAULT_DEVICE_ID\n      );\n      if (nonDefaultDevice) {\n        return nonDefaultDevice.deviceId;\n      }\n\n      // Last resort: just return the default device ID\n      return defaultDevice.deviceId;\n    } catch (error) {\n      console.error(\"Error normalizing device ID:\", error);\n\n      // On mobile, attempt to recover by returning first device of the correct kind\n      if (isMobile()) {\n        try {\n          const devices = await this.getDevices(kind, false); // Don't request permissions here\n          if (devices.length > 0) {\n            return devices[0].deviceId;\n          }\n        } catch (e) {\n          console.error(\"Failed to get fallback device on mobile:\", e);\n        }\n      }\n\n      return undefined;\n    }\n  }\n\n  private hasDeviceInUse(kind?: MediaDeviceKind): boolean {\n    return kind\n      ? DeviceManager.userMediaPromiseMap.has(kind)\n      : DeviceManager.userMediaPromiseMap.size > 0;\n  }\n\n  /**\n   * Filter out problematic devices on Windows.\n   * Windows can sometimes report virtual/phantom devices that don't work properly.\n   */\n  private filterWindowsDevices(devices: MediaDeviceInfo[]): MediaDeviceInfo[] {\n    // Known problematic device patterns on Windows\n    const problematicPatterns = [\n      /^communications$/i,  // Windows \"Communications\" virtual device\n      /stereo mix/i,        // Stereo Mix (loopback) often causes issues\n      /what u hear/i,       // Similar loopback device\n    ];\n\n    return devices.filter((device) => {\n      // Keep devices without labels (permissions not granted yet)\n      if (!device.label) return true;\n      \n      // Filter out known problematic devices\n      return !problematicPatterns.some((pattern) =>\n        pattern.test(device.label)\n      );\n    });\n  }\n\n  /**\n   * Check if output device selection is supported in the current browser.\n   * This is useful for UI to conditionally show output device selector.\n   */\n  static isOutputDeviceSelectionSupported(): boolean {\n    return isSinkIdSupported();\n  }\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nimport { DeviceManager } from \"@/rapida/devices/device-manager\";\nimport { WebTalkResponse } from \"@/rapida/clients/protos/webrtc_pb\";\nimport { AgentEvent } from \"@/rapida/types/agent-event\";\n\n\nimport { MessageRole, MessageStatus } from \"@/rapida/types/message\";\nimport { Channel } from \"@/rapida/types/channel\";\nimport { AgentConfig } from \"@/rapida/types/agent-config\";\nimport { ConnectionConfig } from \"@/rapida/types/connection-config\";\nimport { Agent } from \"@/rapida/agents/\";\nimport { WebRTCGrpcTransport } from \"@/rapida/audio/webrtc-grpc-transport\";\nimport { isAndroidDevice, isIosDevice } from \"@/rapida/audio/compatibility\";\nimport {\n  AgentCallback,\n  ConversationAssistantMessage,\n  ConversationUserMessage,\n} from \"@/rapida/types/agent-callback\";\nimport { ConnectionState } from \"@/rapida/types/connection-state\";\n\nconst LOG_PREFIX = \"[Rapida:VoiceAgent]\";\n\nexport class VoiceAgent extends Agent {\n  private webrtcTransport: WebRTCGrpcTransport | null = null;\n  private volume: number = 1;\n  private connectionConfig: ConnectionConfig;\n  private _isMuted: boolean = false;\n  private _connectPromise: Promise<void> | null = null;\n  private _disconnectRequested: boolean = false;\n\n  private inputFrequencyData?: Uint8Array;\n  private outputFrequencyData?: Uint8Array;\n\n\n  /**\n   * @param options\n   */\n  constructor(\n    connection: ConnectionConfig,\n    agentConfig: AgentConfig,\n    agentCallback?: AgentCallback\n  ) {\n    super(connection, agentConfig, agentCallback);\n    this.connectionConfig = connection;\n  }\n\n  // ---------------------------------------------------------------------------\n  // Shared transport callbacks (used for both audio and text-only modes)\n  // ---------------------------------------------------------------------------\n\n  /**\n   * Build the AgentCallback wiring used by WebRTCGrpcTransport.\n   * Both audio-mode and text-only-mode go through the same transport,\n   * so we share a single callback object.\n   */\n  private buildTransportCallbacks(): AgentCallback {\n    return {\n      onConnectionStateChange: (state) => {\n        // console.log(`${LOG_PREFIX} callback -> onConnectionStateChange`, state);\n        if (state === \"connected\") {\n          // Do not mark as Connected here — wait for onInitialization\n          // (the server's ConversationInitialization response) to confirm\n          // the conversation is truly established.\n          // console.log(`${LOG_PREFIX} transport connected, waiting for conversation initialization`);\n        } else if (state === \"disconnected\") {\n          // Browser WebRTC can briefly report disconnected during ICE changes.\n          // Keep the selected channel stable while recovery/renegotiation runs.\n        } else if (state === \"closed\" || state === \"failed\") {\n          // Only mark as disconnected if the gRPC session is also gone.\n          // When switching from audio → text the WebRTC peer fires\n          // \"disconnected\"/\"closed\", but the gRPC stream is still alive.\n          if (this.webrtcTransport?.isGrpcConnected) {\n            // console.log(`${LOG_PREFIX} WebRTC peer ${state} but gRPC still alive — staying connected`);\n            this.switchToTextModeOnDisconnect();\n          } else {\n            // gRPC stream is gone — null the transport so the next connect()\n            // call creates a fresh one instead of returning early on the\n            // `if (this.webrtcTransport) return` guard.\n            this.webrtcTransport = null;\n            this.connectionState = ConnectionState.Disconnected;\n            this.emit(AgentEvent.ConnectionStateEvent, ConnectionState.Disconnected);\n            this.switchToTextModeOnDisconnect();\n          }\n        }\n      },\n      onConnected: async () => {\n        try {\n          await this.webrtcTransport?.resumeAudio();\n        } catch {\n          // Audio resume may fail if autoplay policy blocks it\n        }\n      },\n      onDisconnected: () => {\n        // console.log(`${LOG_PREFIX} callback -> onDisconnected`);\n        this.switchToTextModeOnDisconnect();\n      },\n      onConversationDisconnected: async () => {\n        const activeTransport = this.webrtcTransport;\n        this.webrtcTransport = null;\n        if (activeTransport) {\n          await activeTransport.close();\n        }\n        await this.disconnectAgent();\n        if (this.connectionState !== ConnectionState.Disconnected) {\n          this.connectionState = ConnectionState.Disconnected;\n          this.emit(AgentEvent.ConnectionStateEvent, ConnectionState.Disconnected);\n        }\n        this.switchToTextModeOnDisconnect();\n      },\n      onError: (error) => {\n        // console.log(`${LOG_PREFIX} callback -> onError`, error);\n        this.emit(AgentEvent.ErrorEvent, \"client\", error.message || String(error));\n      },\n      onAssistantMessage: (message) => {\n        // console.log(`${LOG_PREFIX} callback -> onAssistantMessage`, message);\n        if (message)\n          this._handleAssistantText(message.messageText, message.id, message.completed ?? true);\n      },\n      onUserMessage: (message) => {\n        // console.log(`${LOG_PREFIX} callback -> onUserMessage`, message);\n        if (message?.messageText) {\n          this._handleUserTranscription(message.messageText, message.id, message.completed ?? true);\n        }\n      },\n      onInterrupt: (_interruption) => {\n        // console.log(`${LOG_PREFIX} callback -> onInterrupt`, _interruption);\n        this.interruptAudio();\n\n        // Mark any pending assistant message as complete (it was cut short).\n        if (this.agentMessages.length > 0) {\n          const last = this.agentMessages[this.agentMessages.length - 1];\n          if (last.role === MessageRole.System && last.status === MessageStatus.Pending) {\n            last.status = MessageStatus.Complete;\n          }\n        }\n\n      },\n\n      onToolCall: (toolCall) => {\n        const sendResult = (result: Record<string, string>) => {\n          this.webrtcTransport?.sendToolCallResult(\n            toolCall.id, toolCall.toolid, toolCall.name, toolCall.action, result,\n          );\n        };\n\n        for (const cb of this.agentCallbacks) {\n          const r = cb.onToolCall?.(toolCall);\n          if (r && typeof (r as Promise<unknown>).then === \"function\") {\n            (r as Promise<Record<string, string>>).then((res) => { if (res) sendResult(res); });\n            return;\n          }\n          if (r) {\n            sendResult(r as Record<string, string>);\n            return;\n          }\n        }\n      },\n\n      onToolCallResult: (result) => {\n        this.agentCallbacks.forEach((cb) => {\n          cb.onToolCallResult?.(result);\n        });\n      },\n      onConversationEvent: (event) => {\n        this.agentCallbacks.forEach((cb) => {\n          cb.onConversationEvent?.(event);\n        });\n      },\n      onMetric: (metric) => {\n        this.agentCallbacks.forEach((cb) => {\n          cb.onMetric?.(metric);\n        });\n      },\n      onConversationError: (error) => {\n        this.agentCallbacks.forEach((cb) => {\n          cb.onConversationError?.(error);\n        });\n      },\n      onInitialization: (config) => {\n        // console.log(`${LOG_PREFIX} callback -> onInitialization`, config);\n        if (config?.assistantconversationid) {\n          this.changeConversation(String(config.assistantconversationid));\n        }\n        // Mark as connected once the server acknowledges the conversation\n        // via ConversationInitialization response.\n        if (this.connectionState !== ConnectionState.Connected) {\n          this.connectionState = ConnectionState.Connected;\n          this.emit(AgentEvent.ConnectionStateEvent, ConnectionState.Connected);\n        }\n      },\n    };\n  }\n\n  /**\n   * disconnecting the agent and voice if it is connected.\n   * Safe to call while a connection attempt is still in progress —\n   * signals the in-flight connect to abort and tears everything down.\n   */\n  public disconnect = async () => {\n    // Signal any in-flight connect() to abort after connectDevice settles.\n    this._disconnectRequested = true;\n\n    await this.disconnectAgent();\n    await this.disconnectAudio();\n\n    // Reset the flag so a future connect() is not affected.\n    this._disconnectRequested = false;\n  };\n\n  /**\n   * disconnect the audio for the agent\n   */\n  public disconnectAudio = async () => {\n    try {\n      if (this.webrtcTransport) {\n        await this.webrtcTransport.close();\n        this.webrtcTransport = null;\n      }\n    } catch {\n      // Cleanup errors are non-critical\n    }\n  };\n\n  /**\n   * Fallback to text mode when the audio transport disconnects.\n   * The session (gRPC) may still be alive — only the transport changes.\n   */\n  private switchToTextModeOnDisconnect = () => {\n    if (this.agentConfig.inputOptions.channel === Channel.Audio) {\n      this.agentConfig.inputOptions.channel = Channel.Text;\n      this.agentConfig.outputOptions.channel = Channel.Text;\n      this.emit(AgentEvent.InputChannelChangeEvent, Channel.Text);\n    }\n  };\n\n  /**\n   * Create the session (gRPC stream + optional audio).\n   *\n   * The current channel config determines whether audio is included.\n   * This is called once per session — after that, use setInputChannel()\n   * to add/remove the audio transport without recreating the session.\n   */\n  private connectDevice = async () => {\n    if (this.webrtcTransport) {\n      await this.webrtcTransport.close();\n      this.webrtcTransport = null;\n    }\n\n    const isAudio = this.agentConfig.inputOptions.channel === Channel.Audio;\n    if (isAudio) {\n      await this.prepareAudioForPlatform();\n    }\n\n    try {\n      this.webrtcTransport = await WebRTCGrpcTransport.create(\n        {\n          connectionConfig: this.connectionConfig,\n          agentConfig: this.agentConfig,\n          conversationId: this.conversationId,\n        },\n        this.buildTransportCallbacks(),\n        /* textOnly */ !isAudio,\n      );\n\n      if (isAudio && this.agentConfig.inputOptions.device) {\n        this.emit(AgentEvent.InputMediaDeviceChangeEvent, this.agentConfig.inputOptions.device);\n      }\n    } catch (error) {\n      await this.disconnectAudio();\n      this.emit(AgentEvent.ErrorEvent, \"client\",\n        isAudio ? \"Microphone permission denied or unavailable\" : \"Text connection failed\",\n      );\n    }\n  };\n\n  /**\n   * Handle assistant text from WebRTC - supports streaming with completed flag\n   * Similar to original onHandleAssistant for gRPC\n   */\n  private _handleAssistantText(text?: string, messageId?: string, completed: boolean = true) {\n    const id = messageId || `msg_${Date.now()}`;\n    const now = new Date();\n    // console.log(`${LOG_PREFIX} Handling Assistant Text`, text, completed);\n    if (completed) {\n      // Complete message\n      if (this.agentMessages.length > 0) {\n        const lastMessage = this.agentMessages[this.agentMessages.length - 1];\n        if (\n          lastMessage.role === MessageRole.System &&\n          lastMessage.status === MessageStatus.Pending\n        ) {\n          // lastMessage.messages = [text]; // Replace with complete message\n          lastMessage.status = MessageStatus.Complete;\n          lastMessage.time = now;\n        } else {\n          // Unexpected case: complete message without pending, create new\n          if (text)\n            this.agentMessages.push({\n              id: id,\n              role: MessageRole.System,\n              messages: [text],\n              time: now,\n              status: MessageStatus.Complete,\n            });\n        }\n      } else {\n        if (text)\n          this.agentMessages.push({\n            id: id,\n            role: MessageRole.System,\n            messages: [text],\n            time: now,\n            status: MessageStatus.Complete,\n          });\n      }\n    } else {\n      // Chunk - streaming text\n      if (this.agentMessages.length > 0) {\n        const lastMessage = this.agentMessages[this.agentMessages.length - 1];\n        if (\n          lastMessage.role === MessageRole.System &&\n          lastMessage.status === MessageStatus.Pending\n        ) {\n          // Update existing message with new chunk\n          lastMessage.messages[0] += text; // Merge strings\n          lastMessage.time = now;\n        } else {\n          // Create new pending message for chunk\n          if (text)\n            this.agentMessages.push({\n              id: id,\n              role: MessageRole.System,\n              messages: [text],\n              time: now,\n              status: MessageStatus.Pending,\n            });\n        }\n      } else {\n        // Create new pending message for chunk if no messages exist\n        if (text)\n          this.agentMessages.push({\n            id: id,\n            role: MessageRole.System,\n            messages: [text],\n            time: now,\n            status: MessageStatus.Pending,\n          });\n      }\n    }\n\n    // Create callback message and notify callbacks\n    const callbackMessage = new ConversationAssistantMessage();\n    (callbackMessage as any).id = id;\n    (callbackMessage as any).text = text;\n    (callbackMessage as any).messageText = text;\n    (callbackMessage as any).completed = completed;\n\n    // Notify all registered callbacks\n    this.agentCallbacks.forEach((cb) => {\n      cb.onAssistantMessage?.(callbackMessage);\n    });\n\n    // Emit conversation event (cast to any for WebRTC mode compatibility)\n    this.emit(\n      AgentEvent.ConversationEvent,\n      WebTalkResponse.DataCase.ASSISTANT,\n      callbackMessage as any\n    );\n  }\n\n  /**\n   * Handle user transcription from WebRTC - supports streaming with completed flag\n   * Similar to original onHandleUser for gRPC\n   */\n  private _handleUserTranscription(text: string, messageId?: string, completed: boolean = true) {\n    const id = messageId || `msg_${Date.now()}`;\n    const now = new Date();\n    let userMessageIndex = -1;\n    for (let i = this.agentMessages.length - 1; i >= 0; i--) {\n      const message = this.agentMessages[i];\n      if (message.role === MessageRole.User && message.id === id) {\n        userMessageIndex = i;\n        break;\n      }\n    }\n\n    const nextUserMessage = {\n      id: id,\n      role: MessageRole.User,\n      messages: [text],\n      time: now,\n      status: completed ? MessageStatus.Complete : MessageStatus.Pending,\n    };\n\n    if (userMessageIndex >= 0) {\n      // Replace existing user message in-place instead of appending duplicate.\n      this.agentMessages[userMessageIndex] = nextUserMessage;\n    } else {\n      this.agentMessages.push(nextUserMessage);\n    }\n\n    // Create callback message and notify callbacks\n    const callbackMessage = new ConversationUserMessage();\n    (callbackMessage as any).id = id;\n    (callbackMessage as any).text = text;\n    (callbackMessage as any).messageText = text;\n    (callbackMessage as any).completed = completed;\n\n    // Notify all registered callbacks\n    this.agentCallbacks.forEach((cb) => {\n      cb.onUserMessage?.(callbackMessage);\n    });\n\n    // Emit conversation event (cast to any for WebRTC mode compatibility)\n    this.emit(\n      AgentEvent.ConversationEvent,\n      WebTalkResponse.DataCase.USER,\n      callbackMessage as any\n    );\n  }\n\n  /**\n   * Platform-specific audio preparation (mobile delays / iOS device selection).\n   * Called automatically by connectDevice() when the channel is Audio.\n   */\n  private prepareAudioForPlatform = async () => {\n    if (isAndroidDevice()) {\n      await new Promise((resolve) => setTimeout(resolve, 3_000));\n    }\n    if (isIosDevice()) {\n      const devices = await navigator.mediaDevices.enumerateDevices();\n      const ideal = devices.find(\n        (d) =>\n          d.kind === \"audioinput\" &&\n          [\"airpod\", \"headphone\", \"earphone\"].some((kw) =>\n            d.label.toLowerCase().includes(kw)\n          ),\n      );\n      if (ideal) this.agentConfig.inputOptions.device = ideal.deviceId;\n    }\n  };\n\n  /**\n   * Interrupt audio playback\n   */\n  private interruptAudio = () => {\n    this.webrtcTransport?.interruptAudio();\n  };\n\n  /**\n   * Fade out audio (WebRTC handles audio directly via peer connection)\n   * @param duration\n   */\n  private fadeOutAudio = (duration: number = 2) => {\n    // WebRTC transport handles audio via peer connection\n    // Volume control can be done via the audio element\n    if (this.webrtcTransport) {\n      this.webrtcTransport.setVolume(0);\n      setTimeout(() => {\n        this.webrtcTransport?.setVolume(this.volume);\n      }, duration * 1000);\n    }\n  };\n\n  /**\n   * Ensure the transport is connected. If not, connect and wait.\n   * Safe to call from anywhere — deduplicates concurrent calls.\n   */\n  private ensureConnected = async () => {\n    if (!this.webrtcTransport?.isGrpcConnected) {\n      await this.connect();\n    }\n  };\n\n  /**\n   * Create a session (gRPC stream) with the assistant.\n   *\n   * The current channel config determines whether audio is included.\n   * Once connected, use setInputChannel() to switch transports\n   * without creating a new session.\n   */\n  public connect = async () => {\n    if (this.webrtcTransport) return;\n\n    if (this._connectPromise) {\n      await this._connectPromise;\n      return;\n    }\n\n    this._disconnectRequested = false;\n\n    this._connectPromise = (async () => {\n      try {\n        // Notify client that connection is being established\n        this.connectionState = ConnectionState.Connecting;\n        this.emit(AgentEvent.ConnectionStateEvent, ConnectionState.Connecting);\n        await this.connectDevice();\n\n        // If disconnect() was called while we were connecting,\n        // tear down the transport we just created instead of keeping it.\n        if (this._disconnectRequested) {\n          await this.disconnectAudio();\n        }\n      } catch (err) {\n        this.emit(AgentEvent.ErrorEvent, \"client\", `Connection failed: ${err}`);\n      } finally {\n        this._connectPromise = null;\n      }\n    })();\n\n    await this._connectPromise;\n  };\n\n  /**\n   * Resume audio playback - call this from a user interaction (click/tap)\n   * Required by some browsers due to autoplay policies\n   */\n  public resumeAudio = async () => {\n    if (this.webrtcTransport) {\n      await this.webrtcTransport.resumeAudio();\n    }\n  };\n\n\n  /**\n   * Send text message to the assistant.\n   * Works in both Audio and Text modes — always goes through the transport.\n   *\n   * @param text\n   */\n  public onSendText = async (text: string) => {\n    await this.ensureConnected();\n    if (this.webrtcTransport?.isGrpcConnected) {\n      this.webrtcTransport.sendText(text);\n    } else {\n      this.emit(AgentEvent.ErrorEvent, \"client\", \"No connection available to send text\");\n    }\n  };\n\n  /**\n   * Switch to a different agent configuration during an active conversation.\n   * Sends a ConversationConfiguration through the transport.\n   */\n  public override async switchAgent(config: AgentConfig): Promise<void> {\n    if (!this.isConnected) {\n      throw new Error(\"Cannot switch agent: not connected\");\n    }\n    this.agentConfig = config;\n    if (this.webrtcTransport?.isGrpcConnected) {\n      this.webrtcTransport.sendConversationConfiguration();\n    } else {\n      throw new Error(\"No active connection available for agent switch\");\n    }\n  }\n\n  /**\n   * Getting  all the list of deviceid\n   * @param kind\n   * @param requestPermissions\n   * @returns\n   */\n  static getLocalDevices(\n    kind?: MediaDeviceKind,\n    requestPermissions: boolean = true\n  ): Promise<MediaDeviceInfo[]> {\n    return DeviceManager.getInstance().getDevices(kind, requestPermissions);\n  }\n\n  /**\n   *  changing the deviceid\n   * @param deviceId the device id\n   */\n  public setOutputMediaDevice = async (deviceId: string) => {\n    if (this.agentConfig.outputOptions.device === deviceId) {\n      return;\n    }\n    this.agentConfig.outputOptions.device = deviceId;\n\n    if (this.webrtcTransport) {\n      try {\n        await this.webrtcTransport.setOutputDevice(deviceId);\n      } catch {\n        // Reconnect if device switch fails\n        await this.connectDevice();\n      }\n    }\n    this.emit(AgentEvent.OutputMediaDeviceChangeEvent, deviceId);\n  };\n\n  /**\n   *  Changing media device id\n   * @param deviceId\n   * @returns\n   */\n  public setInputMediaDevice = async (deviceId: string) => {\n    if (this.agentConfig.inputOptions.device === deviceId) {\n      return;\n    }\n    this.agentConfig.inputOptions.device = deviceId;\n\n    if (this.webrtcTransport) {\n      try {\n        await this.webrtcTransport.setInputDevice(deviceId);\n      } catch {\n        // Reconnect if device switch fails\n        await this.connectDevice();\n      }\n    }\n    this.emit(AgentEvent.InputMediaDeviceChangeEvent, deviceId);\n  };\n\n  get inputMediaDevice(): string | undefined {\n    return this.agentConfig.inputOptions.device;\n  }\n\n  /**\n   * Get current mute state\n   */\n  get isMuted(): boolean {\n    return this._isMuted;\n  }\n\n  /**\n   * Mute the microphone\n   */\n  public mute = (): void => {\n    if (this._isMuted) return;\n    this._isMuted = true;\n    if (this.webrtcTransport) {\n      this.webrtcTransport.setMuted(true);\n    }\n    this.emit(AgentEvent.MuteStateEvent, true);\n  };\n\n  /**\n   * Unmute the microphone\n   */\n  public unmute = (): void => {\n    if (!this._isMuted) return;\n    this._isMuted = false;\n    if (this.webrtcTransport) {\n      this.webrtcTransport.setMuted(false);\n    }\n    this.emit(AgentEvent.MuteStateEvent, false);\n  };\n\n  /**\n   * Toggle mute state\n   * @returns The new mute state after toggling\n   */\n  public toggleMute = (): boolean => {\n    if (this._isMuted) {\n      this.unmute();\n    } else {\n      this.mute();\n    }\n    return this._isMuted;\n  };\n\n  /**\n   * Switch input/output channel (Text ↔ Audio).\n   *\n   * This is a transport-layer change, NOT a state-layer change:\n   * - Does NOT create a new session\n   * - Does NOT reset conversation state\n   * - Only changes input transport (keyboard ↔ microphone)\n   *   and output transport (screen ↔ speaker)\n   */\n  public setInputChannel = async (input: Channel) => {\n    if (this.agentConfig.inputOptions.channel === input) return;\n\n    this.agentConfig.inputOptions.channel = input;\n    this.agentConfig.outputOptions.channel = input;\n\n    // Fresh Audio connect captures mic during initialization. Runtime switches\n    // recapture before sending configuration so the offer sees a stable track.\n    const wasGrpcConnectedBeforeChannelChange = this.webrtcTransport?.isGrpcConnected ?? false;\n\n    // Ensure the session exists\n    await this.ensureConnected();\n\n    // Add or remove the audio transport\n    if (input === Channel.Audio) {\n      if (wasGrpcConnectedBeforeChannelChange) {\n        try {\n          await this.webrtcTransport?.reconnectAudio();\n        } catch (error) {\n          // gRPC stream was lost between ensureConnected and reconnectAudio.\n          // Trigger a full reconnect on the next user action.\n          this.emit(AgentEvent.ErrorEvent, \"client\", `Audio reconnect failed: ${error}`);\n          this.webrtcTransport = null;\n        }\n      }\n    } else {\n      if (wasGrpcConnectedBeforeChannelChange) {\n        await this.webrtcTransport?.disconnectAudioOnly();\n      }\n    }\n\n    // Only send ConversationConfiguration for runtime mode switches.\n    // On a fresh connection the ConversationInitialization message\n    // already includes the stream mode, so sending it again is redundant.\n    if (wasGrpcConnectedBeforeChannelChange) {\n      this.webrtcTransport?.sendConversationConfiguration();\n    }\n\n    this.emit(AgentEvent.InputChannelChangeEvent, input);\n  };\n\n  /**\n   * to get byte frequency data from input\n   * @returns\n   */\n  public getInputByteFrequencyData = (): Uint8Array | undefined => {\n    const analyser = this.webrtcTransport?.inputAnalyserNode;\n    if (!analyser) return undefined;\n\n    if (analyser) {\n      const size = analyser.frequencyBinCount;\n      if (!this.inputFrequencyData || this.inputFrequencyData.length !== size) {\n        this.inputFrequencyData = new Uint8Array(size);\n      }\n      (analyser.getByteFrequencyData as (array: Uint8Array) => void)(\n        this.inputFrequencyData\n      );\n    }\n    return this.inputFrequencyData;\n  };\n\n  /**\n   * output byte frequency data\n   * @returns\n   */\n  public getOutputByteFrequencyData = (): Uint8Array | undefined => {\n    const analyser = this.webrtcTransport?.outputAnalyserNode;\n    if (!analyser) return undefined;\n\n    if (analyser) {\n      const size = analyser.frequencyBinCount;\n      if (!this.outputFrequencyData || this.outputFrequencyData.length !== size) {\n        this.outputFrequencyData = new Uint8Array(size);\n      }\n      (analyser.getByteFrequencyData as (array: Uint8Array) => void)(\n        this.outputFrequencyData\n      );\n    }\n    return this.outputFrequencyData;\n  };\n\n  /**\n   * Check if WebRTC transport is connected\n   */\n  public get isWebRTCConnected(): boolean {\n    return this.webrtcTransport?.connected ?? false;\n  }\n\n  /** Get the WebRTC transport instance */\n  public get transport(): WebRTCGrpcTransport | null {\n    return this.webrtcTransport;\n  }\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nexport enum AgentEvent {\n  // all connection event\n  ConnectionStateEvent = \"onConnectionStateEvent\",\n\n  // input/ouput media device state\n  InputMediaDeviceChangeEvent = \"onInputMediaDeviceChangeEvent\",\n  OutputMediaDeviceChangeEvent = \"onOutputMediaDeviceChangeEvent\",\n\n  // channel specific event\n  InputChannelChangeEvent = \"onInputChannelChangeEvent\",\n  OutputChannelChangeEvent = \"onOutputChannelChangeEvent\",\n\n  // mute state event\n  MuteStateEvent = \"onMuteStateEvent\",\n\n  // rapida assistant event triggered by rapida\n  ConversationEvent = \"onConversationEvent\",\n\n  // feedback event\n  FeedbackEvent = \"onFeedbackEvent\",\n\n  // client error event\n  ErrorEvent = \"onErrorEvent\",\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\n\nimport { Feedback } from \"./feedback\";\n\n/**\n *\n */\nexport enum MessageRole {\n  // text channel for input and output\n  System = \"system\",\n\n  // audio channel for input and output\n  User = \"user\",\n}\n\n/**\n *\n */\nexport enum MessageStatus {\n  /**\n   * Pending status for the message\n   */\n  Pending = \"pending\",\n\n  /**\n   * complete the message\n   */\n  Complete = \"complete\",\n}\n\n/**\n *\n */\nexport interface Message {\n  /**\n   * id of the message\n   */\n  id: string;\n\n  /**\n   * role of the message who had sent it\n   */\n  role: MessageRole;\n\n  /**\n   * list of sentences in the message\n   */\n  messages: string[];\n\n  /**\n   * feedback given to the message\n   */\n  feedback?: Feedback;\n\n  /**\n   *time\n   */\n  time: Date;\n\n  /**\n   *\n   */\n  status: MessageStatus;\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nexport enum Channel {\n  // text channel for input and output\n  Text = \"text\",\n\n  // audio channel for input and output\n  Audio = \"audio\",\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\n\nimport { WebTalkRequest, WebTalkResponse } from \"@/rapida/clients/protos/webrtc_pb\";\nimport { AgentConfig } from \"@/rapida/types/agent-config\";\nimport { AgentCallback } from \"@/rapida/types/agent-callback\";\nimport {\n  CreateConversationMetricRequest,\n  CreateMessageMetricRequest,\n  ConversationInitialization,\n  WebIdentity,\n} from \"@/rapida/clients/protos/talk-api_pb\";\nimport { ConnectionConfig } from \"@/rapida/types/connection-config\";\nimport { ConnectionState } from \"@/rapida/types/connection-state\";\nimport { AgentEventCallback } from \"@/rapida/types/agent-event-callback\";\nimport { EventEmitter } from \"events\";\nimport type TypedEmitter from \"typed-emitter\";\nimport {\n  AssistantDefinition, Metric,\n} from \"@/rapida/clients/protos/common_pb\";\nimport { Message as LocalMessage, MessageRole } from \"@/rapida/types/message\";\nimport { AgentEvent } from \"@/rapida/types/agent-event\";\nimport {\n  CreateConversationMetric,\n  CreateMessageMetric,\n} from \"@/rapida/clients/talk\";\nimport { getFeedback } from \"@/rapida/types/feedback\";\nimport {\n  GetAssistantRequest,\n  GetAssistantResponse,\n} from \"@/rapida/clients/protos/assistant-api_pb\";\nimport { GetAssistant } from \"@/rapida/clients/assistant\";\n\nimport { StreamMode, StreamModeMap } from '../clients/protos/talk-api_pb';\nimport {\n  ConversationConfiguration,\n} from '../clients/protos/talk-api_pb';\nimport { Channel } from \"../types/channel\";\n\n// ---------------------------------------------------------------------------\n// Logging helpers\n// ---------------------------------------------------------------------------\n\n/** Human-readable summary of a WebTalkRequest for logging */\nexport function describeRequest(req: WebTalkRequest): string {\n  if (req.hasInitialization()) return \"Initialization\";\n  if (req.hasConfiguration()) return \"Configuration\";\n  if (req.hasMessage()) return `Text(\"${req.getMessage()?.getText()?.substring(0, 80) ?? \"\"}\")`;\n  if (req.hasSignaling()) return \"Signaling\";\n  return \"Unknown\";\n}\n\n/** Human-readable summary of a WebTalkResponse for logging */\nexport function describeResponse(res: WebTalkResponse): string {\n  const parts: string[] = [];\n  if (res.hasInitialization()) parts.push(\"Initialization\");\n  if (res.hasConfiguration()) parts.push(\"Configuration\");\n  if (res.hasAssistant()) parts.push(`Assistant(\"${res.getAssistant()?.getText()?.substring(0, 80) ?? \"\"}\"`);\n  if (res.hasUser()) parts.push(`User(\"${res.getUser()?.getText()?.substring(0, 80) ?? \"\"}\"`);\n  if (res.hasInterruption()) parts.push(\"Interruption\");\n  if (res.hasToolcall?.()) parts.push(\"ToolCall\");\n  if (res.hasToolcallresult?.()) parts.push(\"ToolCallResult\");\n  if (res.hasSignaling()) parts.push(\"Signaling\");\n  return parts.length > 0 ? parts.join(\" + \") : \"Empty\";\n}\n\n// ---------------------------------------------------------------------------\n// Shared message builders\n// ---------------------------------------------------------------------------\n\n/** Resolve Channel enum → StreamMode proto value */\nexport function resolveStreamMode(channel: Channel): StreamModeMap[keyof StreamModeMap] {\n  return channel === Channel.Audio\n    ? StreamMode.STREAM_MODE_AUDIO\n    : channel === Channel.Text\n      ? StreamMode.STREAM_MODE_TEXT\n      : StreamMode.STREAM_MODE_BOTH;\n}\n\n/**\n * Build the ConversationInitialization WebTalkRequest.\n * This is the single source of truth for the initialization proto — used by\n * GrpcSignalingManager for all connection modes (audio and text-only).\n */\nexport function buildInitializationRequest(agentConfig: AgentConfig, conversationId?: string): WebTalkRequest {\n  const request = new WebTalkRequest();\n  const init = new ConversationInitialization();\n\n  if (conversationId) {\n    init.setAssistantconversationid(conversationId);\n  }\n  init.setAssistant(agentConfig.definition);\n  agentConfig.options?.forEach((v, k) => init.getOptionsMap().set(k, v));\n  agentConfig.metadata?.forEach((v, k) => init.getMetadataMap().set(k, v));\n  agentConfig.arguments?.forEach((v, k) => init.getArgsMap().set(k, v));\n  init.setStreammode(resolveStreamMode(agentConfig.inputOptions.channel));\n\n  if (agentConfig.userIdentifier) {\n    // later we want to profile the user properly, but for now we just need a unique ID to correlate conversations\n    const identity = new WebIdentity();\n    identity.setUserid(agentConfig.userIdentifier.id);\n    init.setWeb(identity)\n  }\n  request.setInitialization(init);\n  return request;\n}\n\n/**\n * Build a ConversationConfiguration WebTalkRequest for mode switching.\n */\nexport function buildConfigurationRequest(channel: Channel): WebTalkRequest {\n  const request = new WebTalkRequest();\n  const config = new ConversationConfiguration();\n  config.setStreammode(resolveStreamMode(channel));\n  request.setConfiguration(config);\n  return request;\n}\n\n/**\n * Base Agent class for interacting with Rapida AI assistants.\n * Manages bidirectional communication, connection states, metrics, and events.\n */\nexport class Agent extends (EventEmitter as new () => TypedEmitter<AgentEventCallback>) {\n  // Connection and State Management\n  protected connectionState: ConnectionState = ConnectionState.Disconnected;\n\n  // conversation id\n  private _conversationId?: string;\n\n  // Agent Configuration\n  protected agentConfig: AgentConfig;\n\n  // callbacks can have multiple callback\n  protected agentCallbacks: AgentCallback[];\n\n  //\n  private readonly _connectionConfig: ConnectionConfig;\n\n  // all the messages\n  public agentMessages: LocalMessage[] = [];\n\n  /**\n   * Creates a new Agent instance\n   * @param connection - Connection configuration\n   * @param agentConfig - Agent configuration\n   * @param agentCallback - Optional callback handler\n   */\n  protected constructor(\n    connection: ConnectionConfig,\n    agentConfig: AgentConfig,\n    agentCallback?: AgentCallback\n  ) {\n    super();\n    this.agentConfig = agentConfig;\n    this._connectionConfig = connection;\n    this.agentCallbacks = [];\n    if (agentCallback) this.agentCallbacks.push(agentCallback);\n  }\n\n  // Public Getters\n\n  /**\n   * Current connection state of the agent\n   */\n  get state(): ConnectionState {\n    return this.connectionState;\n  }\n\n  /**\n   * Current conversation ID, if any\n   */\n  get conversationId(): string | undefined {\n    return this._conversationId;\n  }\n\n  /**\n   * Array of messages in the current conversation\n   */\n  get messages(): LocalMessage[] {\n    return [...this.agentMessages]; // Return copy to prevent external modification\n  }\n\n  /**\n   * Whether the agent is currently connected\n   */\n  get isConnected(): boolean {\n    return this.connectionState === ConnectionState.Connected;\n  }\n\n  /**\n   * this will help user to modify what he wants\n   */\n  get agentConfiguration(): AgentConfig {\n    return this.agentConfig;\n  }\n  /**\n   * Switches to a different agent during an active conversation.\n   * Subclasses override this to send the configuration through their transport.\n   *\n   * @param config - Configuration for the new agent\n   * @throws {Error} If agent is not connected\n   */\n  public async switchAgent(_config: AgentConfig): Promise<void> {\n    throw new Error(\"switchAgent must be implemented by subclass\");\n  }\n\n  /**\n   * Creates metrics for a specific message\n   * @param messageId - ID of the message\n   * @param metrics - Array of metric objects\n   */\n  public createMessageMetric(\n    messageId: string,\n    metrics: Array<{\n      name: string;\n      description: string;\n      value: string;\n    }>\n  ): void {\n    if (!this._conversationId) {\n      throw new Error(\"Cannot create message metric: no active conversation\");\n    }\n\n    const req = new CreateMessageMetricRequest();\n    req.setAssistantid(this.agentConfig.definition.getAssistantid());\n    req.setAssistantconversationid(this._conversationId);\n    req.setMessageid(messageId);\n\n    for (const mtr of metrics) {\n      const _m = new Metric();\n      _m.setName(mtr.name);\n      _m.setValue(mtr.value);\n      _m.setDescription(mtr.description);\n      req.addMetrics(_m);\n    }\n\n    CreateMessageMetric(this._connectionConfig, req)\n      .then(() => {\n        const lastMetric = metrics[metrics.length - 1];\n        if (!lastMetric) return;\n        const feedback = getFeedback(lastMetric.value);\n        this._updateMessageFeedback(messageId, feedback);\n        this.emit(AgentEvent.FeedbackEvent, \"message\", feedback);\n      })\n      .catch(() => {\n        // Metric creation failure is non-critical\n      });\n  }\n\n  /**\n   * Creates metrics for the entire conversation\n   * @param metrics - Array of metric objects\n   */\n  public createConversationMetric(\n    metrics: Array<{\n      name: string;\n      description: string;\n      value: string;\n    }>\n  ): void {\n    if (!this._conversationId) {\n      throw new Error(\n        \"Cannot create conversation metric: no active conversation\"\n      );\n    }\n\n    const req = new CreateConversationMetricRequest();\n    req.setAssistantid(this.agentConfig.definition.getAssistantid());\n    req.setAssistantconversationid(this._conversationId);\n\n    for (const mtr of metrics) {\n      const _m = new Metric();\n      _m.setName(mtr.name);\n      _m.setValue(mtr.value);\n      _m.setDescription(mtr.description);\n      req.addMetrics(_m);\n    }\n\n    CreateConversationMetric(this._connectionConfig, req).catch(() => {\n      // Metric creation failure is non-critical\n    });\n  }\n\n  /**\n   * Emits a typed event\n   *\n   * @param event - Event name\n   * @param args - Event arguments\n   * @returns Whether the event had listeners\n   */\n  public emit<E extends keyof AgentEventCallback>(\n    event: E,\n    ...args: Parameters<AgentEventCallback[E]>\n  ): boolean {\n    return super.emit(event, ...args);\n  }\n\n  // Protected Methods\n\n\n\n  // Private Methods\n\n  /**\n   * Initializes the agent by fetching assistant data\n   */\n  public async getAssistant(): Promise<GetAssistantResponse> {\n    return this._fetchAssistant(this.agentConfig.id, this.agentConfig.version);\n  }\n\n  /**\n   * Updates connection state and emits events\n   */\n  private _setAndEmitConnectionState(state: ConnectionState): boolean {\n    if (state === this.connectionState) {\n      return false;\n    }\n\n    this.connectionState = state;\n    this.emit(AgentEvent.ConnectionStateEvent, this.connectionState);\n    this._connectionConfig.onConnectionChange(state);\n    return true;\n  }\n\n  /**\n   * Handles conversation ID changes\n   */\n  protected changeConversation = (assistantConversationId: string): void => {\n    if (this._conversationId) return;\n    this._conversationId = assistantConversationId;\n  };\n\n  /**\n   * Disconnects from the assistant.\n   * Subclasses should override `disconnect()` to tear down their transport\n   * and then call this to update state.\n   */\n  protected async disconnectAgent(): Promise<void> {\n    if (this.connectionState === ConnectionState.Disconnected) {\n      return;\n    }\n    this._setAndEmitConnectionState(ConnectionState.Disconnected);\n  }\n\n  /**\n   * Fetches assistant data for a specific agent ID and version\n   */\n  private async _fetchAssistant(\n    agentId: string,\n    version?: string\n  ): Promise<GetAssistantResponse> {\n    const req = new GetAssistantRequest();\n    const assistantDef = new AssistantDefinition();\n    assistantDef.setAssistantid(agentId);\n    if (version) {\n      assistantDef.setVersion(version);\n    }\n    req.setAssistantdefinition(assistantDef);\n    return GetAssistant(this._connectionConfig, req);\n  }\n\n  /**\n   * Updates message feedback in the local message store\n   */\n  private _updateMessageFeedback(messageId: string, feedback: any): void {\n    this.agentMessages = this.agentMessages.map((message) => {\n      if (message.id === messageId && message.role === MessageRole.System) {\n        return { ...message, feedback };\n      }\n      return message;\n    });\n  }\n\n  public registerCallback = (agentCallback: AgentCallback) => {\n    // adding another callack\n    this.agentCallbacks.push(agentCallback);\n  };\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nexport enum ConnectionState {\n  // when connection is disconnect or at initial state\n  Disconnected = \"disconnected\",\n\n  // connection is being established\n  Connecting = \"connecting\",\n\n  // connected voice agent state\n  Connected = \"connected\",\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n *  This module provides functions for managing projects through the ProjectService.\n */\nimport {\n  GetAllConversationMessageRequest,\n  GetAllConversationMessageResponse,\n  GetAllAssistantConversationResponse,\n  GetAllAssistantConversationRequest,\n  Metric,\n} from \"@/rapida/clients/protos/common_pb\";\nimport {\n  ClientAuthInfo,\n  UserAuthInfo,\n  WithAuthContext,\n} from \"@/rapida/clients\";\nimport { BidirectionalStream, ServiceError } from \"@/rapida/clients/types\";\nimport { Criteria, Paginate } from \"@/rapida/clients/protos/common_pb\";\nimport {\n  CreateConversationMetricResponse,\n  CreateConversationMetricRequest,\n  AssistantTalkRequest,\n  AssistantTalkResponse,\n} from \"./protos/talk-api_pb\";\nimport {\n  CreateMessageMetricResponse,\n  CreateMessageMetricRequest,\n} from \"./protos/talk-api_pb\";\nimport { ConnectionConfig } from \"@/rapida/types/connection-config\";\n\n/**\n *\n * @param authHeader\n * @returns\n */\n\nexport function AssistantTalk(\n  connectionConfig: ConnectionConfig,\n  authHeader?: UserAuthInfo | ClientAuthInfo\n): BidirectionalStream<AssistantTalkRequest, AssistantTalkResponse> {\n  return connectionConfig.streamClient.assistantTalk(\n    WithAuthContext(connectionConfig.auth || authHeader)\n  );\n}\n\n/**\n *\n * @param conversationClient\n * @param assistantId\n * @param assistantConversationId\n * @param assistantConversationMessageId\n * @param cb\n * @param authHeader\n */\nexport function CreateMessageMetric(\n  connectionConfig: ConnectionConfig,\n  req: CreateMessageMetricRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<CreateMessageMetricResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.conversationClient.createMessageMetric(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: CreateMessageMetricResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param conversationClient\n * @param assistantId\n * @param assistantConversationId\n * @param metrics\n * @param cb\n * @param authHeader\n */\n\nexport function CreateConversationMetric(\n  connectionConfig: ConnectionConfig,\n  req: CreateConversationMetricRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<CreateConversationMetricResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.conversationClient.createConversationMetric(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: CreateConversationMetricResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param assistantId\n * @param page\n * @param pageSize\n * @param criteria\n * @param cb\n * @param authHeader\n */\nexport function GetAllAssistantConversation(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  page: number,\n  pageSize: number,\n  criteria: { key: string; value: string }[],\n  cb: (\n    err: ServiceError | null,\n    uvcr: GetAllAssistantConversationResponse | null\n  ) => void,\n  authHeader: ClientAuthInfo | UserAuthInfo\n) {\n  const req = new GetAllAssistantConversationRequest();\n  req.setAssistantid(assistantId);\n  const paginate = new Paginate();\n  criteria.forEach((x) => {\n    let ctr = new Criteria();\n    ctr.setKey(x.key);\n    ctr.setValue(x.value);\n    req.addCriterias(ctr);\n  });\n  paginate.setPage(page);\n  paginate.setPagesize(pageSize);\n  req.setPaginate(paginate);\n  connectionConfig.conversationClient.getAllAssistantConversation(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param assistantConversationId\n * @param page\n * @param pageSize\n * @param criteria\n * @param cb\n * @param authHeader\n */\nexport function GetAllAssistantConversationMessage(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  assistantConversationId: string,\n  page: number,\n  pageSize: number,\n  criteria: { key: string; value: string }[],\n  authHeader: ClientAuthInfo | UserAuthInfo,\n  cb: (\n    err: ServiceError | null,\n    uvcr: GetAllConversationMessageResponse | null\n  ) => void\n) {\n  const req = new GetAllConversationMessageRequest();\n  req.setAssistantid(assistantId);\n  req.setAssistantconversationid(assistantConversationId);\n  const paginate = new Paginate();\n  criteria.forEach((x) => {\n    let ctr = new Criteria();\n    ctr.setKey(x.key);\n    ctr.setValue(x.value);\n    req.addCriterias(ctr);\n  });\n  paginate.setPage(page);\n  paginate.setPagesize(pageSize);\n  req.setPaginate(paginate);\n  connectionConfig.conversationClient.getAllConversationMessage(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\n\nexport const HEADER_AUTH_ID = 'x-auth-id';\nexport const HEADER_PROJECT_ID = 'x-project-id';\n\nexport const HEADER_API_KEY = 'x-api-key';\nexport const HEADER_SOURCE_KEY = 'x-client-source';\nexport const HEADER_ENVIRONMENT_KEY = 'x-rapida-environment';\nexport const HEADER_REGION_KEY = 'x-rapida-region';\n\nexport const HEADER_USER_AGENT = 'x-user-agent';\nexport const HEADER_LANGUAGE = 'x-language';\nexport const HEADER_PLATFORM = 'x-platform';\nexport const HEADER_SCREEN_WIDTH = 'x-screen-width';\nexport const HEADER_SCREEN_HEIGHT = 'x-screen-height';\nexport const HEADER_WINDOW_WIDTH = 'x-window-width';\nexport const HEADER_WINDOW_HEIGHT = 'x-window-height';\nexport const HEADER_TIMEZONE = 'x-timezone';\nexport const HEADER_COLOR_DEPTH = 'x-color-depth';\nexport const HEADER_DEVICE_MEMORY = 'x-device-memory';\nexport const HEADER_HARDWARE_CONCURRENCY = 'x-hardware-concurrency';\nexport const HEADER_CONNECTION_TYPE = 'x-connection-type';\nexport const HEADER_CONNECTION_EFFECTIVE_TYPE = 'x-connection-effective-type';\nexport const HEADER_COOKIES_ENABLED = 'x-cookies-enabled';\nexport const HEADER_DO_NOT_TRACK = 'x-do-not-track';\nexport const HEADER_REFERRER = 'x-referrer';\nexport const HEADER_REMOTE_URL = 'x-remote-url';\nexport const HEADER_LATITUDE = 'x-latitude';\nexport const HEADER_LONGITUDE = 'x-longitude';\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n *  Utility functions for working with gRPC metadata in Rapida applications.\n */\n\nimport {\n  HEADER_SOURCE_KEY,\n  HEADER_REGION_KEY,\n  HEADER_API_KEY,\n  HEADER_AUTH_ID,\n  HEADER_PROJECT_ID,\n  HEADER_USER_AGENT,\n  HEADER_LANGUAGE,\n  HEADER_PLATFORM,\n  HEADER_SCREEN_WIDTH,\n  HEADER_SCREEN_HEIGHT,\n  HEADER_WINDOW_WIDTH,\n  HEADER_WINDOW_HEIGHT,\n  HEADER_TIMEZONE,\n  HEADER_COLOR_DEPTH,\n  HEADER_DEVICE_MEMORY,\n  HEADER_HARDWARE_CONCURRENCY,\n  HEADER_CONNECTION_TYPE,\n  HEADER_CONNECTION_EFFECTIVE_TYPE,\n  HEADER_COOKIES_ENABLED,\n  HEADER_DO_NOT_TRACK,\n  HEADER_REFERRER,\n  HEADER_REMOTE_URL,\n  HEADER_LATITUDE,\n  HEADER_LONGITUDE,\n} from \"@/rapida/utils/rapida_header\";\nimport { grpc } from \"@improbable-eng/grpc-web\";\nimport { ALL_REGION } from \"@/rapida/utils/rapida_region\";\nimport { RapidaSource } from \"@/rapida/utils/rapida_source\";\n\n/**\n * Configures gRPC metadata with platform-specific and environment-specific headers.\n *\n * @param il - The gRPC metadata to configure.\n * @returns The configured gRPC metadata.\n */\nexport const WithPlatform = (il: grpc.Metadata): grpc.Metadata => {\n  // Set the source header based on the platform\n  // Set the region header to 'all' by default\n  il.set(HEADER_REGION_KEY, ALL_REGION);\n\n  return il;\n};\n\n/**\n * Configures gRPC metadata with authentication context headers.\n *\n * @param authHeader - A record of authentication headers to add.\n * @returns The configured gRPC metadata with authentication headers.\n */\nexport const WithAuthContext = (\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): grpc.Metadata => {\n  const metadata = WithClientContext(WithPlatform(new grpc.Metadata()));\n  if (authHeader) {\n    for (const [key, value] of Object.entries(authHeader)) {\n      if (key === \"Client\") {\n        // Handle nested Client object\n        for (const [clientKey, clientValue] of Object.entries(value)) {\n          metadata.set(clientKey, clientValue as string);\n        }\n      } else {\n        metadata.set(key, value);\n      }\n    }\n  }\n  return metadata;\n};\n/**\n * an client information that will help to create an authentication token and header informatioan\n */\nexport interface UserAuthInfo {\n  authorization: string;\n  [HEADER_AUTH_ID]: string;\n  [HEADER_PROJECT_ID]?: string;\n  Client?: Partial<ClientInfo>;\n}\n\nexport interface ClientAuthInfo {\n  [HEADER_API_KEY]: string;\n  [HEADER_AUTH_ID]?: string;\n  Client?: Partial<ClientInfo>;\n}\n\ninterface ClientInfo {\n  [HEADER_SOURCE_KEY]?: RapidaSource;\n  [HEADER_USER_AGENT]: string;\n  [HEADER_LANGUAGE]: string;\n  [HEADER_PLATFORM]: string;\n  [HEADER_SCREEN_WIDTH]: number;\n  [HEADER_SCREEN_HEIGHT]: number;\n  [HEADER_WINDOW_WIDTH]: number;\n  [HEADER_WINDOW_HEIGHT]: number;\n  [HEADER_TIMEZONE]: string;\n  [HEADER_COLOR_DEPTH]: number;\n  [HEADER_DEVICE_MEMORY]?: number;\n  [HEADER_HARDWARE_CONCURRENCY]?: number;\n  [HEADER_CONNECTION_TYPE]?: string;\n  [HEADER_CONNECTION_EFFECTIVE_TYPE]?: string;\n  [HEADER_COOKIES_ENABLED]: boolean;\n  [HEADER_DO_NOT_TRACK]?: string | null;\n  [HEADER_REFERRER]: string;\n  [HEADER_REMOTE_URL]: string;\n  [HEADER_LATITUDE]?: number;\n  [HEADER_LONGITUDE]?: number;\n}\n/**\n * Retrieves client information from the browser.\n *\n * This function gathers various details about the client's device and browser,\n * including screen dimensions, user agent, language, platform, and more.\n * It also attempts to get the geolocation if available and permitted.\n *\n * @returns {ClientInfo} A promise that resolves to an object containing client information.\n */\nexport const getClientInfo = (\n  additionalInfo: Partial<ClientInfo> = {}\n): ClientInfo => {\n  const screen_width = window.screen.width;\n  const screen_height = window.screen.height;\n\n  const baseInfo: ClientInfo = {\n    [HEADER_USER_AGENT]: navigator.userAgent,\n    [HEADER_LANGUAGE]: navigator.language,\n    [HEADER_PLATFORM]:\n      (navigator as any)?.userAgentData?.platform || navigator?.platform,\n    [HEADER_SCREEN_WIDTH]: screen_width,\n    [HEADER_SCREEN_HEIGHT]: screen_height,\n    [HEADER_WINDOW_WIDTH]: window.innerWidth,\n    [HEADER_WINDOW_HEIGHT]: window.innerHeight,\n    [HEADER_TIMEZONE]: Intl.DateTimeFormat().resolvedOptions().timeZone,\n    [HEADER_COLOR_DEPTH]: window.screen.colorDepth,\n    [HEADER_DEVICE_MEMORY]: (navigator as any).deviceMemory,\n    [HEADER_HARDWARE_CONCURRENCY]: navigator.hardwareConcurrency,\n    [HEADER_CONNECTION_TYPE]: (navigator as any).connection?.type,\n    [HEADER_CONNECTION_EFFECTIVE_TYPE]: (navigator as any).connection\n      ?.effectiveType,\n    [HEADER_COOKIES_ENABLED]: navigator.cookieEnabled,\n    [HEADER_DO_NOT_TRACK]: navigator.doNotTrack,\n    [HEADER_REFERRER]: document.referrer,\n    [HEADER_REMOTE_URL]: window.location.href,\n    ...additionalInfo,\n  };\n\n  return baseInfo;\n};\n\n/**\n * Enhances gRPC metadata with client context information.\n *\n * This function takes an optional gRPC metadata object and enriches it\n * with client information obtained from getClientInfo(). It iterates\n * through the client info and sets each non-undefined value in the\n * metadata object.\n *\n * @param {grpc.Metadata} metadata - Optional gRPC metadata object to enhance.\n * @returns {grpc.Metadata} The enhanced metadata object with client context.\n */\nexport const WithClientContext = (\n  metadata: grpc.Metadata = new grpc.Metadata()\n): grpc.Metadata => {\n  const clientInfo = getClientInfo();\n\n  for (const [key, value] of Object.entries(clientInfo)) {\n    if (value !== undefined) {\n      metadata.set(key, String(value));\n    }\n  }\n  return metadata;\n};\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\n\nexport type RapidaRegion = 'ap' | 'us' | 'eu' | 'all';\n\nexport const AP_REGION: RapidaRegion = 'ap';\nexport const US_REGION: RapidaRegion = 'us';\nexport const EU_REGION: RapidaRegion = 'eu';\nexport const ALL_REGION: RapidaRegion = 'all';\n\n// Get returns the string value of the RapidaRegion\nexport function getRapidaRegionValue(region: RapidaRegion): string {\n  return region;\n}\n\n// FromStr returns the corresponding RapidaRegion for a given string,\n// or 'all' if the string does not match any region.\nexport function fromStr(label: string): RapidaRegion {\n  switch (label.toLowerCase()) {\n    case 'ap':\n      return AP_REGION;\n    case 'us':\n      return US_REGION;\n    case 'eu':\n      return EU_REGION;\n    case 'all':\n      return ALL_REGION;\n    default:\n      console.warn(\n        \"The region is not supported. Supported regions are 'ap', 'us', 'eu', and 'all'.\",\n      );\n      return ALL_REGION;\n  }\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nexport enum Feedback {\n  // text channel for input and output\n  Helpful = \"helpful\",\n\n  // audio channel for input and output\n  NotHelpful = \"not_helpful\",\n\n  // other\n  Other = \"other\",\n}\n\nexport function getFeedback(input?: string): Feedback {\n  switch (input?.toLowerCase()) {\n    case \"helpful\":\n      return Feedback.Helpful;\n    case \"not helpful\":\n    case \"not_helpful\":\n      return Feedback.NotHelpful;\n    default:\n      return Feedback.Other;\n  }\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n *  This module provides functions for managing assistants using gRPC. It includes\n *  operations for creating, updating, retrieving, and personalizing assistants,\n *  as well as handling assistant provider models and tags.\n */\n\nimport {\n  Criteria,\n  FieldSelector,\n  GetAllAssistantConversationResponse,\n  GetAllConversationMessageRequest,\n  GetAllConversationMessageResponse,\n  Metadata,\n  Ordering,\n  Paginate,\n} from \"@/rapida/clients/protos/common_pb\";\nimport {\n  GetAllAssistantRequest,\n  GetAllAssistantResponse,\n  CreateAssistantRequest,\n  GetAssistantRequest,\n  GetAssistantResponse,\n  CreateAssistantTagRequest,\n  UpdateAssistantDetailRequest,\n  GetAllAssistantMessageRequest,\n  GetAllAssistantMessageResponse,\n  GetAssistantConversationResponse,\n  GetAssistantConversationRequest,\n  DeleteAssistantRequest,\n  GetAllMessageRequest,\n  GetAllMessageResponse,\n  GetAssistantConfigurationRequest,\n  GetAssistantConfigurationResponse,\n  GetAllAssistantConfigurationRequest,\n  GetAllAssistantConfigurationResponse,\n  CreateAssistantConfigurationRequest,\n  UpdateAssistantConfigurationRequest,\n  DeleteAssistantConfigurationRequest,\n  GetAssistantDashboardRequest,\n  GetAssistantDashboardResponse,\n} from \"@/rapida/clients/protos/assistant-api_pb\";\n\nimport {\n  CreateAssistantProviderRequest,\n  GetAllAssistantProviderResponse,\n  GetAssistantProviderResponse,\n  GetAllAssistantProviderRequest,\n  UpdateAssistantVersionRequest,\n} from \"@/rapida/clients/protos/assistant-provider_pb\";\n\nimport {\n  GetAssistantToolResponse,\n  GetAssistantToolRequest,\n  UpdateAssistantToolRequest,\n  CreateAssistantToolRequest,\n  GetAllAssistantToolResponse,\n  GetAllAssistantToolRequest,\n  DeleteAssistantToolRequest,\n  GetAssistantToolLogResponse,\n  GetAllAssistantToolLogRequest,\n  GetAllAssistantToolLogResponse,\n  GetAssistantToolLogRequest,\n} from \"@/rapida/clients/protos/assistant-tool_pb\";\n\nimport {\n  GetAssistantKnowledgeResponse,\n  GetAssistantKnowledgeRequest,\n  UpdateAssistantKnowledgeRequest,\n  CreateAssistantKnowledgeRequest,\n  GetAllAssistantKnowledgeResponse,\n  GetAllAssistantKnowledgeRequest,\n  DeleteAssistantKnowledgeRequest,\n} from \"@/rapida/clients/protos/assistant-knowledge_pb\";\n\nimport {\n  GetAssistantHTTPLogRequest,\n  GetAllAssistantHTTPLogRequest,\n  GetAssistantHTTPLogResponse,\n  GetAllAssistantHTTPLogResponse,\n  RetryAssistantHTTPLogRequest,\n} from \"@/rapida/clients/protos/assistant-http-log_pb\";\nimport { AssistantServiceClient } from \"@/rapida/clients/protos/assistant-api_pb_service\";\nimport { ServiceError } from \"@/rapida/clients/types\";\nimport {\n  UserAuthInfo,\n  ClientAuthInfo,\n  WithAuthContext,\n} from \"@/rapida/clients\";\nimport { GetAllAssistantConversationRequest } from \"@/rapida/clients/protos/common_pb\";\nimport {\n  CreateAssistantDeploymentRequest,\n  GetAllAssistantDeploymentRequest,\n  GetAssistantApiDeploymentResponse,\n  GetAllAssistantApiDeploymentResponse,\n  GetAssistantPhoneDeploymentResponse,\n  GetAllAssistantPhoneDeploymentResponse,\n  GetAssistantWebpluginDeploymentResponse,\n  GetAllAssistantWebpluginDeploymentResponse,\n  GetAssistantDeploymentRequest,\n  GetAllAssistantWhatsappDeploymentResponse,\n  GetAllAssistantDebuggerDeploymentResponse,\n} from \"@/rapida/clients/protos/assistant-deployment_pb\";\nimport { GetAssistantWhatsappDeploymentResponse } from \"./protos/assistant-deployment_pb\";\nimport { GetAssistantDebuggerDeploymentResponse } from \"@/rapida/clients/protos/assistant-deployment_pb\";\nimport { Struct } from \"google-protobuf/google/protobuf/struct_pb\";\nimport { ConnectionConfig } from \"@/rapida/types/connection-config\";\n\n/**\n * Retrieve all assistants with pagination and filtering criteria.\n *\n * @param req - The get-all assistant request.\n * @param authHeader - Authentication headers for the request.\n * @returns Promise<GetAllAssistantResponse> - The gRPC response object.\n */\nexport function GetAllAssistant(\n  connectionConfig: ConnectionConfig,\n  req: GetAllAssistantRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAllAssistantResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.getAllAssistant(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAllAssistantResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n * Update the version of an assistant.\n *\n * @param assistantId - The ID of the assistant to update.\n * @param assistantProviderModelId - The ID of the assistant provider model.\n * @param cb - Callback function to handle the response.\n * @param authHeader - Authentication headers for the request.\n * @returns UnaryResponse - The gRPC response object.\n */\nexport function UpdateAssistantVersion(\n  connectionConfig: ConnectionConfig,\n  req: UpdateAssistantVersionRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.updateAssistantVersion(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (err: ServiceError | null, response: GetAssistantResponse | null) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n * Retrieve all assistant provider models with pagination and filtering criteria.\n *\n * @param assistantId - The ID of the assistant.\n * @param page - The page number for pagination.\n * @param pageSize - The number of provider models per page.\n * @param criteria - List of criteria to filter provider models.\n * @param cb - Callback function to handle the response.\n * @param authHeader - Authentication headers for the request.\n * @returns UnaryResponse - The gRPC response object.\n */\nexport function GetAllAssistantProvider(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  page: number,\n  pageSize: number,\n  criteria: { key: string; value: string }[],\n  cb: (\n    err: ServiceError | null,\n    response: GetAllAssistantProviderResponse | null\n  ) => void,\n  authHeader: ClientAuthInfo | UserAuthInfo\n) {\n  const req = new GetAllAssistantProviderRequest();\n  req.setAssistantid(assistantId);\n\n  const paginate = new Paginate();\n  criteria.forEach(({ key, value }) => {\n    const ctr = new Criteria();\n    ctr.setKey(key);\n    ctr.setValue(value);\n    req.addCriterias(ctr);\n  });\n\n  paginate.setPage(page);\n  paginate.setPagesize(pageSize);\n  req.setPaginate(paginate);\n\n  return connectionConfig.assistantClient.getAllAssistantProvider(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n * Retrieve details of a specific assistant.\n *\n * @param assistantId - The ID of the assistant to retrieve.\n * @param assistantProviderModelId - Optional ID of the assistant provider model.\n * @param cb - Callback function to handle the response.\n * @param authHeader - Authentication headers for the request.\n * @returns UnaryResponse - The gRPC response object.\n */\nexport function GetAssistant(\n  connectionConfig: ConnectionConfig,\n  req: GetAssistantRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.getAssistant(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (err: ServiceError | null, response: GetAssistantResponse | null) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n * Retrieve dashboard metrics for an assistant.\n *\n * @param connectionConfig - SDK connection configuration.\n * @param req - The dashboard request containing assistantId and optional fromDate/toDate.\n * @param authHeader - Authentication headers for the request.\n * @returns Promise<GetAssistantDashboardResponse> - The gRPC response object.\n */\nexport function GetAssistantDashboard(\n  connectionConfig: ConnectionConfig,\n  req: GetAssistantDashboardRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantDashboardResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.getAssistantDashboard(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAssistantDashboardResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param connectionConfig\n * @param req\n * @param authHeader\n * @returns\n */\nexport function CreateAssistantProvider(\n  connectionConfig: ConnectionConfig,\n  req: CreateAssistantProviderRequest,\n  authHeader?: UserAuthInfo | ClientAuthInfo\n): Promise<GetAssistantProviderResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.createAssistantProvider(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAssistantProviderResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param connectionConfig\n * @param req\n * @param authHeader\n * @returns\n */\nexport function CreateAssistant(\n  connectionConfig: ConnectionConfig,\n  req: CreateAssistantRequest,\n  authHeader: UserAuthInfo\n): Promise<GetAssistantResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.createAssistant(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (err: ServiceError | null, response: GetAssistantResponse | null) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n * Create tags for an assistant.\n *\n * @param assistantId - The ID of the assistant.\n * @param tags - List of tags to add.\n * @param cb - Callback function to handle the response.\n * @param authHeader - Authentication headers for the request.\n * @returns UnaryResponse - The gRPC response object.\n */\nexport function CreateAssistantTag(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  tags: string[],\n  cb: (err: ServiceError | null, response: GetAssistantResponse | null) => void,\n  authHeader: UserAuthInfo\n) {\n  const req = new CreateAssistantTagRequest();\n  req.setTagsList(tags);\n  req.setAssistantid(assistantId);\n\n  return connectionConfig.assistantClient.createAssistantTag(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n * Update details of an existing assistant.\n *\n * @param assistantId - The ID of the assistant to update.\n * @param name - The new name for the assistant.\n * @param description - The new description for the assistant.\n * @param cb - Callback function to handle the response.\n * @param authHeader - Authentication headers for the request.\n * @returns UnaryResponse - The gRPC response object.\n */\nexport function UpdateAssistantDetail(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  name: string,\n  description: string,\n  cb: (err: ServiceError | null, response: GetAssistantResponse | null) => void,\n  authHeader: UserAuthInfo\n) {\n  const req = new UpdateAssistantDetailRequest();\n  req.setName(name);\n  req.setDescription(description);\n  req.setAssistantid(assistantId);\n\n  return connectionConfig.assistantClient.updateAssistantDetail(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param page\n * @param pageSize\n * @param criteria\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function GetAssistantMessages(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  page: number,\n  pageSize: number,\n  criteria: { key: string; value: string; logic: string }[],\n  selectors: (\"metadata\" | \"metric\" | \"stage\" | \"request\" | \"response\")[],\n  cb: (\n    err: ServiceError | null,\n    response: GetAllAssistantMessageResponse | null\n  ) => void,\n  authHeader: ClientAuthInfo | UserAuthInfo\n) {\n  const req = new GetAllAssistantMessageRequest();\n  const paginate = new Paginate();\n\n  criteria.forEach(({ key, value, logic }) => {\n    const ctr = new Criteria();\n    ctr.setKey(key);\n    ctr.setValue(value);\n    ctr.setLogic(logic);\n    req.addCriterias(ctr);\n  });\n\n  req.setAssistantid(assistantId);\n\n  selectors.forEach((v) => {\n    const selectors = new FieldSelector();\n    selectors.setField(v);\n    req.addSelectors(selectors);\n  });\n  paginate.setPage(page);\n  paginate.setPagesize(pageSize);\n  const order = new Ordering();\n  order.setColumn(\"created_date\");\n  order.setOrder(\"desc\");\n  req.setOrder(order);\n  req.setPaginate(paginate);\n  return connectionConfig.assistantClient.getAllAssistantMessage(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param page\n * @param pageSize\n * @param criteria\n * @param selectors\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function GetMessages(\n  connectionConfig: ConnectionConfig,\n  page: number,\n  pageSize: number,\n  criteria: { key: string; value: string; logic: string }[],\n  selectors: (\"metadata\" | \"metric\" | \"stage\" | \"request\" | \"response\")[],\n  cb: (\n    err: ServiceError | null,\n    response: GetAllMessageResponse | null\n  ) => void,\n  authHeader: ClientAuthInfo | UserAuthInfo\n) {\n  const req = new GetAllMessageRequest();\n  const paginate = new Paginate();\n\n  criteria.forEach(({ key, value, logic }) => {\n    const ctr = new Criteria();\n    ctr.setKey(key);\n    ctr.setValue(value);\n    ctr.setLogic(logic);\n    req.addCriterias(ctr);\n  });\n\n  selectors.forEach((v) => {\n    const selectors = new FieldSelector();\n    selectors.setField(v);\n    req.addSelectors(selectors);\n  });\n  paginate.setPage(page);\n  paginate.setPagesize(pageSize);\n  const order = new Ordering();\n  order.setColumn(\"created_date\");\n  order.setOrder(\"desc\");\n  req.setOrder(order);\n  req.setPaginate(paginate);\n  return connectionConfig.assistantClient.getAllMessage(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n * Retrieves all assistant sessions based on the provided criteria.\n *\n * @param assistantId - The unique identifier of the assistant.\n * @param page - The page number for pagination.\n * @param pageSize - The number of records per page.\n * @param criteria - An array of key-value pairs to filter the assistant sessions.\n * @param cb - A callback function that will be invoked with the result or error.\n * @param authHeader - The authentication header for the request.\n *\n * @returns {void}\n *\n * @callback cb\n * @param {ServiceError | null} err - The error object if an error occurred, otherwise null.\n * @param {GetAllAssistantConversationResponse | null} uvcr - The response object containing the assistant sessions.\n */\nexport function GetAllAssistantConversation(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  page: number,\n  pageSize: number,\n  criteria: { key: string; value: string; logic: string }[],\n  cb: (\n    err: ServiceError | null,\n    uvcr: GetAllAssistantConversationResponse | null\n  ) => void,\n  authHeader: ClientAuthInfo | UserAuthInfo\n) {\n  const req = new GetAllAssistantConversationRequest();\n  req.setAssistantid(assistantId);\n  const paginate = new Paginate();\n  criteria.forEach((x) => {\n    let ctr = new Criteria();\n    ctr.setKey(x.key);\n    ctr.setValue(x.value);\n    ctr.setLogic(x.logic);\n    req.addCriterias(ctr);\n  });\n  paginate.setPage(page);\n  paginate.setPagesize(pageSize);\n  req.setPaginate(paginate);\n  connectionConfig.assistantClient.getAllAssistantConversation(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param assistantConversationId\n * @param page\n * @param pageSize\n * @param criteria\n * @param cb\n * @param authHeader\n */\nexport function GetAllAssistantConversationMessage(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  assistantConversationId: string,\n  page: number,\n  pageSize: number,\n  criteria: { key: string; value: string }[],\n  authHeader: ClientAuthInfo | UserAuthInfo,\n  cb: (\n    err: ServiceError | null,\n    uvcr: GetAllConversationMessageResponse | null\n  ) => void\n) {\n  const req = new GetAllConversationMessageRequest();\n  req.setAssistantid(assistantId);\n  req.setAssistantconversationid(assistantConversationId);\n  const paginate = new Paginate();\n  criteria.forEach((x) => {\n    let ctr = new Criteria();\n    ctr.setKey(x.key);\n    ctr.setValue(x.value);\n    req.addCriterias(ctr);\n  });\n  paginate.setPage(page);\n  paginate.setPagesize(pageSize);\n  req.setPaginate(paginate);\n  connectionConfig.assistantClient.getAllConversationMessage(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function CreateAssistantDebuggerDeployment(\n  clientCfg: ConnectionConfig,\n  request: CreateAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantDebuggerDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.createAssistantDebuggerDeployment(\n      request,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantDebuggerDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param assistantId\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function GetAssistantDebuggerDeployment(\n  connectionConfig: ConnectionConfig,\n  request: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantDebuggerDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantDeploymentClient.getAssistantDebuggerDeployment(\n      request,\n      WithAuthContext(connectionConfig.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantDebuggerDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n// ... existing code ...\n\nexport function CreateAssistantApiDeployment(\n  clientCfg: ConnectionConfig,\n  request: CreateAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantApiDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.createAssistantApiDeployment(\n      request,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantApiDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAssistantApiDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantApiDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.getAssistantApiDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantApiDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function CreateAssistantWebpluginDeployment(\n  clientCfg: ConnectionConfig,\n  request: CreateAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantWebpluginDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.createAssistantWebpluginDeployment(\n      request,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantWebpluginDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAssistantWebpluginDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantWebpluginDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.getAssistantWebpluginDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantWebpluginDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function CreateAssistantPhoneDeployment(\n  clientCfg: ConnectionConfig,\n  request: CreateAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantPhoneDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.createAssistantPhoneDeployment(\n      request,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantPhoneDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAssistantPhoneDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantPhoneDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.getAssistantPhoneDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantPhoneDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function CreateAssistantWhatsappDeployment(\n  clientCfg: ConnectionConfig,\n  request: CreateAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantWhatsappDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.createAssistantWhatsappDeployment(\n      request,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantWhatsappDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAssistantWhatsappDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantWhatsappDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.getAssistantWhatsappDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantWhatsappDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAllAssistantApiDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAllAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAllAssistantApiDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.getAllAssistantApiDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAllAssistantApiDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function DisableAssistantApiDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantApiDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.disableAssistantApiDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantApiDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAllAssistantWebpluginDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAllAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAllAssistantWebpluginDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.getAllAssistantWebpluginDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAllAssistantWebpluginDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function DisableAssistantWebpluginDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantWebpluginDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.disableAssistantWebpluginDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantWebpluginDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAllAssistantDebuggerDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAllAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAllAssistantDebuggerDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.getAllAssistantDebuggerDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAllAssistantDebuggerDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function DisableAssistantDebuggerDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantDebuggerDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.disableAssistantDebuggerDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantDebuggerDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAllAssistantWhatsappDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAllAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAllAssistantWhatsappDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.getAllAssistantWhatsappDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAllAssistantWhatsappDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function DisableAssistantWhatsappDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantWhatsappDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.disableAssistantWhatsappDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantWhatsappDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAllAssistantPhoneDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAllAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAllAssistantPhoneDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.getAllAssistantPhoneDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAllAssistantPhoneDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function DisableAssistantPhoneDeployment(\n  clientCfg: ConnectionConfig,\n  req: GetAssistantDeploymentRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantPhoneDeploymentResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantDeploymentClient.disableAssistantPhoneDeployment(\n      req,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantPhoneDeploymentResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAssistantConfiguration(\n  connectionConfig: ConnectionConfig,\n  req: GetAssistantConfigurationRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantConfigurationResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.getAssistantConfiguration(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAssistantConfigurationResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function GetAllAssistantConfiguration(\n  connectionConfig: ConnectionConfig,\n  req: GetAllAssistantConfigurationRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAllAssistantConfigurationResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.getAllAssistantConfiguration(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAllAssistantConfigurationResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function CreateAssistantConfiguration(\n  connectionConfig: ConnectionConfig,\n  req: CreateAssistantConfigurationRequest,\n  authHeader?: UserAuthInfo | ClientAuthInfo\n): Promise<GetAssistantConfigurationResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.createAssistantConfiguration(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAssistantConfigurationResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function UpdateAssistantConfiguration(\n  connectionConfig: ConnectionConfig,\n  req: UpdateAssistantConfigurationRequest,\n  authHeader?: UserAuthInfo | ClientAuthInfo\n): Promise<GetAssistantConfigurationResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.updateAssistantConfiguration(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAssistantConfigurationResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\nexport function DeleteAssistantConfiguration(\n  connectionConfig: ConnectionConfig,\n  req: DeleteAssistantConfigurationRequest,\n  authHeader?: UserAuthInfo | ClientAuthInfo\n): Promise<GetAssistantConfigurationResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.deleteAssistantConfiguration(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAssistantConfigurationResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param assistantId\n * @param webhookId\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function GetAssistantConversation(\n  connectionConfig: ConnectionConfig,\n  req: GetAssistantConversationRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantConversationResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.getAssistantConversation(\n      req,\n      WithAuthContext(connectionConfig.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantConversationResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param assistantId\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function DeleteAssistant(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  cb: (err: ServiceError | null, response: GetAssistantResponse | null) => void,\n  authHeader: UserAuthInfo\n) {\n  const req = new DeleteAssistantRequest();\n  req.setId(assistantId);\n  return connectionConfig.assistantClient.deleteAssistant(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param req\n * @param authHeader\n * @returns\n */\nexport function GetAllHTTPLog(\n  connectionConfig: ConnectionConfig,\n  req: GetAllAssistantHTTPLogRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAllAssistantHTTPLogResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.getAllAssistantHTTPLog(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAllAssistantHTTPLogResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param req\n * @param authHeader\n * @returns\n */\nexport function GetHTTPLog(\n  connectionConfig: ConnectionConfig,\n  req: GetAssistantHTTPLogRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantHTTPLogResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.getAssistantHTTPLog(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAssistantHTTPLogResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param req\n * @param authHeader\n * @returns\n */\nexport function RetryHTTPLog(\n  connectionConfig: ConnectionConfig,\n  req: RetryAssistantHTTPLogRequest,\n  authHeader?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantHTTPLogResponse> {\n  return new Promise((resolve, reject) => {\n    connectionConfig.assistantClient.retryAssistantHTTPLog(\n      req,\n      WithAuthContext(connectionConfig.auth || authHeader),\n      (\n        err: ServiceError | null,\n        response: GetAssistantHTTPLogResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param assistantId\n * @param page\n * @param pageSize\n * @param criteria\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function GetAllAssistantTool(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  page: number,\n  pageSize: number,\n  criteria: { key: string; value: string }[],\n  cb: (\n    err: ServiceError | null,\n    response: GetAllAssistantToolResponse | null\n  ) => void,\n  authHeader: ClientAuthInfo | UserAuthInfo\n) {\n  const req = new GetAllAssistantToolRequest();\n  req.setAssistantid(assistantId);\n  const paginate = new Paginate();\n\n  criteria.forEach(({ key, value }) => {\n    const ctr = new Criteria();\n    ctr.setKey(key);\n    ctr.setValue(value);\n    req.addCriterias(ctr);\n  });\n\n  paginate.setPage(page);\n  paginate.setPagesize(pageSize);\n  req.setPaginate(paginate);\n\n  return connectionConfig.assistantClient.getAllAssistantTool(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param name\n * @param endpointid\n * @param endpointversion\n * @param executionpriority\n * @param parameters\n * @param cb\n * @param authHeader\n * @param description\n * @returns\n */\nexport function CreateAssistantTool(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  name: string,\n  description: string,\n  fields: {},\n  executionMethod: string,\n  executionOptions: Metadata[],\n  cb: (\n    err: ServiceError | null,\n    response: GetAssistantToolResponse | null\n  ) => void,\n  authHeader: UserAuthInfo\n) {\n  const req = new CreateAssistantToolRequest();\n  req.setAssistantid(assistantId);\n  req.setName(name);\n  req.setDescription(description);\n  req.setFields(Struct.fromJavaScript(fields));\n  req.setExecutionmethod(executionMethod);\n  executionOptions.forEach((x) => {\n    req.addExecutionoptions(x);\n  });\n  return connectionConfig.assistantClient.createAssistantTool(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param webhookId\n * @param method\n * @param endpoint\n * @param headers\n * @param events\n * @param retryOnStatus\n * @param maxRetries\n * @param timeout\n * @param cb\n * @param authHeader\n * @param description\n * @returns\n */\nexport function UpdateAssistantTool(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  assistantToolId: string,\n  name: string,\n  description: string,\n  fields: {},\n  executionMethod: string,\n  executionOptions: Metadata[],\n  cb: (\n    err: ServiceError | null,\n    response: GetAssistantToolResponse | null\n  ) => void,\n  authHeader: UserAuthInfo\n) {\n  const req = new UpdateAssistantToolRequest();\n  req.setId(assistantToolId);\n  req.setAssistantid(assistantId);\n  req.setAssistantid(assistantId);\n  req.setName(name);\n  req.setDescription(description);\n  req.setFields(Struct.fromJavaScript(fields));\n  req.setExecutionmethod(executionMethod);\n  executionOptions.forEach((x) => {\n    req.addExecutionoptions(x);\n  });\n  return connectionConfig.assistantClient.updateAssistantTool(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param webhookId\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function GetAssistantTool(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  ToolId: string,\n  cb: (\n    err: ServiceError | null,\n    response: GetAssistantToolResponse | null\n  ) => void,\n  authHeader: ClientAuthInfo | UserAuthInfo\n) {\n  const req = new GetAssistantToolRequest();\n  req.setAssistantid(assistantId);\n  req.setId(ToolId);\n  return connectionConfig.assistantClient.getAssistantTool(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param ToolId\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function DeleteAssistantTool(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  ToolId: string,\n  cb: (\n    err: ServiceError | null,\n    response: GetAssistantToolResponse | null\n  ) => void,\n  authHeader: UserAuthInfo\n) {\n  const req = new DeleteAssistantToolRequest();\n  req.setAssistantid(assistantId);\n  req.setId(ToolId);\n  return connectionConfig.assistantClient.deleteAssistantTool(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param page\n * @param pageSize\n * @param criteria\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function GetAllAssistantKnowledge(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  page: number,\n  pageSize: number,\n  criteria: { key: string; value: string }[],\n  cb: (\n    err: ServiceError | null,\n    response: GetAllAssistantKnowledgeResponse | null\n  ) => void,\n  authHeader: ClientAuthInfo | UserAuthInfo\n) {\n  const req = new GetAllAssistantKnowledgeRequest();\n  req.setAssistantid(assistantId);\n  const paginate = new Paginate();\n\n  criteria.forEach(({ key, value }) => {\n    const ctr = new Criteria();\n    ctr.setKey(key);\n    ctr.setValue(value);\n    req.addCriterias(ctr);\n  });\n\n  paginate.setPage(page);\n  paginate.setPagesize(pageSize);\n  req.setPaginate(paginate);\n\n  return connectionConfig.assistantClient.getAllAssistantKnowledge(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param name\n * @param endpointid\n * @param endpointversion\n * @param executionpriority\n * @param parameters\n * @param cb\n * @param authHeader\n * @param description\n * @returns\n */\nexport function CreateAssistantKnowledge(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  knowledgeId: string,\n  config: {\n    searchMethod: \"semantic\" | \"fullText\" | \"hybrid\" | \"invertedIndex\";\n    rerankingEnable: boolean;\n    rerankerModelProvider?: string;\n    rerankerModelProviderId?: string;\n    rerankerModelOptions?: Metadata[];\n    topK: number;\n    scoreThreshold: number;\n  },\n  cb: (\n    err: ServiceError | null,\n    response: GetAssistantKnowledgeResponse | null\n  ) => void,\n  authHeader: UserAuthInfo\n) {\n  const req = new CreateAssistantKnowledgeRequest();\n  req.setKnowledgeid(knowledgeId);\n  req.setAssistantid(assistantId);\n  if (config.rerankingEnable) {\n    req.setRerankerenable(config.rerankingEnable);\n    req.setRerankermodelproviderid(config.rerankerModelProviderId!);\n    req.setRerankermodelprovidername(config.rerankerModelProvider!);\n    req.setAssistantknowledgererankeroptionsList(config.rerankerModelOptions!);\n  }\n  req.setTopk(config.topK);\n  req.setScorethreshold(config.scoreThreshold);\n  req.setRetrievalmethod(config.searchMethod);\n\n  return connectionConfig.assistantClient.createAssistantKnowledge(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param webhookId\n * @param method\n * @param endpoint\n * @param headers\n * @param events\n * @param retryOnStatus\n * @param maxRetries\n * @param timeout\n * @param cb\n * @param authHeader\n * @param description\n * @returns\n */\nexport function UpdateAssistantKnowledge(\n  connectionConfig: ConnectionConfig,\n  id: string,\n  assistantId: string,\n  knowledgeId: string,\n  config: {\n    searchMethod: \"semantic\" | \"fullText\" | \"hybrid\" | \"invertedIndex\";\n    rerankingEnable: boolean;\n    rerankerModelProvider?: string;\n    rerankerModelProviderId?: string;\n    rerankerModelOptions?: Metadata[];\n    topK: number;\n    scoreThreshold: number;\n  },\n  cb: (\n    err: ServiceError | null,\n    response: GetAssistantKnowledgeResponse | null\n  ) => void,\n  authHeader: UserAuthInfo\n) {\n  const req = new UpdateAssistantKnowledgeRequest();\n  req.setKnowledgeid(knowledgeId);\n  req.setAssistantid(assistantId);\n  req.setId(id);\n  if (config.rerankingEnable) {\n    req.setRerankerenable(config.rerankingEnable);\n    req.setRerankermodelproviderid(config.rerankerModelProviderId!);\n    req.setRerankermodelprovidername(config.rerankerModelProvider!);\n    req.setAssistantknowledgererankeroptionsList(config.rerankerModelOptions!);\n  }\n  req.setTopk(config.topK);\n  req.setScorethreshold(config.scoreThreshold);\n  req.setRetrievalmethod(config.searchMethod);\n\n  return connectionConfig.assistantClient.updateAssistantKnowledge(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param webhookId\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function GetAssistantKnowledge(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  ToolId: string,\n  cb: (\n    err: ServiceError | null,\n    response: GetAssistantKnowledgeResponse | null\n  ) => void,\n  authHeader: ClientAuthInfo | UserAuthInfo\n) {\n  const req = new GetAssistantKnowledgeRequest();\n  req.setAssistantid(assistantId);\n  req.setId(ToolId);\n  return connectionConfig.assistantClient.getAssistantKnowledge(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n\n/**\n *\n * @param assistantId\n * @param ToolId\n * @param cb\n * @param authHeader\n * @returns\n */\nexport function DeleteAssistantKnowledge(\n  connectionConfig: ConnectionConfig,\n  assistantId: string,\n  knowledgeId: string,\n  cb: (\n    err: ServiceError | null,\n    response: GetAssistantKnowledgeResponse | null\n  ) => void,\n  authHeader: UserAuthInfo\n) {\n  const req = new DeleteAssistantKnowledgeRequest();\n  req.setAssistantid(assistantId);\n  req.setId(knowledgeId);\n  return connectionConfig.assistantClient.deleteAssistantKnowledge(\n    req,\n    WithAuthContext(authHeader),\n    cb\n  );\n}\n/**\n *\n * @param clientCfg\n * @param request\n * @returns\n */\nexport function GetAssistantToolLog(\n  clientCfg: ConnectionConfig,\n  request: GetAssistantToolLogRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAssistantToolLogResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantClient.getAssistantToolLog(\n      request,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAssistantToolLogResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n\n/**\n *\n * @param clientCfg\n * @param request\n * @returns\n */\nexport function GetAllAssistantToolLog(\n  clientCfg: ConnectionConfig,\n  request: GetAllAssistantToolLogRequest,\n  auth?: ClientAuthInfo | UserAuthInfo\n): Promise<GetAllAssistantToolLogResponse> {\n  return new Promise((resolve, reject) => {\n    clientCfg.assistantClient.getAllAssistantToolLog(\n      request,\n      WithAuthContext(clientCfg.auth || auth),\n      (\n        err: ServiceError | null,\n        response: GetAllAssistantToolLogResponse | null\n      ) => {\n        if (err) reject(err);\n        else resolve(response!);\n      }\n    );\n  });\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n *  This module provides functions for managing projects through the ProjectService.\n */\nimport {\n  ClientAuthInfo,\n  UserAuthInfo,\n  WithAuthContext,\n} from \"@/rapida/clients\";\nimport { ConnectionConfig } from \"@/rapida/types/connection-config\";\nimport { BidirectionalStream, ServiceError } from \"@/rapida/clients/types\";\nimport { WebTalkRequest, WebTalkResponse } from \"@/rapida/clients/protos/webrtc_pb\";\n\nexport function WebTalk(\n  connectionConfig: ConnectionConfig,\n  authHeader?: UserAuthInfo | ClientAuthInfo\n): BidirectionalStream<WebTalkRequest, WebTalkResponse> {\n  return connectionConfig.webrtcClient.webTalk(\n    WithAuthContext(connectionConfig.auth || authHeader)\n  );\n}","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n */\n\nimport { ConnectionConfig } from \"@/rapida/types/connection-config\";\nimport { AgentConfig } from \"@/rapida/types/agent-config\";\nimport { AgentCallback } from \"@/rapida/types/agent-callback\";\nimport { WebTalk } from \"@/rapida/clients/webrtc\";\nimport {\n  ConversationUserMessage,\n  ConversationToolCallResult,\n  ToolCallActionMap,\n} from \"@/rapida/clients/protos/talk-api_pb\";\nimport {\n  WebTalkRequest,\n  WebTalkResponse,\n  ClientSignaling,\n  WebRTCSDP,\n  ICECandidate as ProtoICECandidate,\n} from \"@/rapida/clients/protos/webrtc_pb\";\nimport { BidirectionalStream } from \"@/rapida/clients/types\";\nimport {\n  buildInitializationRequest,\n  buildConfigurationRequest,\n  describeRequest,\n  describeResponse,\n} from \"@/rapida/agents\";\n\nconst LOG_PREFIX = \"[Rapida:GrpcSignaling]\";\n\n/**\n * GrpcSignalingManager — Owns the gRPC bidirectional stream lifecycle\n *\n * Responsibilities:\n * - Connect/disconnect gRPC stream\n * - Build and send proto messages (Initialization, Configuration, Text, Signaling)\n * - Guarantee initialization is always the first message on any stream\n * - Forward incoming responses to a message handler callback\n */\nexport class GrpcSignalingManager {\n  private grpcStream: BidirectionalStream<WebTalkRequest, WebTalkResponse> | null = null;\n  private initializationSent = false;\n  private conversationId: string | null = null;\n  private sessionId: string | null = null;\n\n  constructor(\n    private connectionConfig: ConnectionConfig,\n    private agentConfig: AgentConfig,\n    private callbacks: AgentCallback,\n    private onMessage: (response: WebTalkResponse) => void,\n    initialConversationId?: string,\n  ) {\n    this.conversationId = initialConversationId ?? null;\n  }\n\n  // ---------------------------------------------------------------------------\n  // Stream lifecycle\n  // ---------------------------------------------------------------------------\n\n  /** Connect the gRPC bidirectional stream */\n  connect(): Promise<void> {\n    return new Promise((resolve, reject) => {\n      try {\n        this.grpcStream = WebTalk(this.connectionConfig);\n\n        this.grpcStream.on(\"data\", (response: WebTalkResponse) => {\n          // console.log(`${LOG_PREFIX} ← IN  | ${describeResponse(response)}`);\n          this.onMessage(response);\n        });\n\n        this.grpcStream.on(\"end\", () => {\n          // Null the stream immediately so isConnected returns false.\n          // Without this, callers checking isConnected after the stream\n          // ends still see true and attempt writes on a dead stream.\n          this.grpcStream = null;\n          this.initializationSent = false;\n          this.callbacks.onConnectionStateChange?.(\"disconnected\");\n          this.callbacks.onDisconnected?.();\n        });\n\n        this.grpcStream.on(\"status\", (status: any) => {\n          if (status.code !== 0) {\n            const errorMessage = status.details || `gRPC status code: ${status.code}`;\n            this.callbacks.onError?.(new Error(`gRPC error: ${errorMessage}`));\n            this.callbacks.onConnectionStateChange?.(\"failed\");\n            this.callbacks.onDisconnected?.();\n            // Mark stream as disconnected\n            this.grpcStream = null;\n            this.initializationSent = false;\n          }\n        });\n\n        resolve();\n      } catch (error) {\n        reject(new Error(`gRPC signaling connection failed: ${error}`));\n      }\n    });\n  }\n\n  /** Close the gRPC stream */\n  close(): void {\n    if (this.grpcStream) {\n      const stream = this.grpcStream;\n      this.grpcStream = null; // Clear reference first to prevent double-close\n      // Use cancel() which is safe even when the underlying WebSocket is\n      // already in CLOSING or CLOSED state. Falling back to end() if cancel\n      // is somehow unavailable.\n      try { stream.cancel(); } catch { try { stream.end(); } catch { } }\n    }\n    this.initializationSent = false;\n    this.sessionId = null;\n    this.conversationId = null;\n  }\n\n  get isConnected(): boolean {\n    return this.grpcStream !== null;\n  }\n\n  // ---------------------------------------------------------------------------\n  // Outgoing messages\n  // ---------------------------------------------------------------------------\n\n  /**\n   * Send ConversationInitialization — MUST be the first message on the stream.\n   */\n  sendConversationInitialization(): void {\n    if (!this.grpcStream) return;\n\n    try {\n      const request = buildInitializationRequest(this.agentConfig, this.conversationId ?? undefined);\n      // console.log(`${LOG_PREFIX} → OUT | ${describeRequest(request)}`);\n      this.grpcStream.write(request);\n      this.initializationSent = true;\n    } catch (error) {\n      console.error(`${LOG_PREFIX} Failed to send initialization`, error);\n      this.callbacks.onError?.(new Error(`Failed to send initialization: ${error}`));\n    }\n  }\n\n  /**\n   * Send ConversationConfiguration to switch stream mode (audio ↔ text).\n   * Only sends the new StreamMode — server already knows the conversation context.\n   */\n  sendConversationConfiguration(): void {\n    if (!this.grpcStream) return;\n    this.ensureInitializationSent();\n\n    try {\n      const request = buildConfigurationRequest(this.agentConfig.inputOptions.channel);\n      // console.log(`${LOG_PREFIX} → OUT | ${describeRequest(request)}`);\n      this.grpcStream.write(request);\n    } catch (error) {\n      console.error(`${LOG_PREFIX} Failed to send configuration`, error);\n      this.callbacks.onError?.(new Error(`Failed to send configuration: ${error}`));\n    }\n  }\n\n  /**\n   * Send a text message.\n   * Ensures ConversationInitialization is always sent first.\n   */\n  sendText(text: string): void {\n    if (!this.grpcStream) return;\n    this.ensureInitializationSent();\n\n    try {\n      // console.log(`${LOG_PREFIX} → OUT | Text(\"${text.substring(0, 80)}\")`);\n      const request = new WebTalkRequest();\n      const userMessage = new ConversationUserMessage();\n      userMessage.setText(text);\n      userMessage.setId(`msg_${Date.now()}`);\n      request.setMessage(userMessage);\n      this.grpcStream.write(request);\n    } catch (error) {\n      console.error(`${LOG_PREFIX} Failed to send text message`, error);\n      this.callbacks.onError?.(new Error(`Failed to send text: ${error}`));\n    }\n  }\n\n  /** Send a tool call result back to the server */\n  sendToolCallResult(\n    id: string,\n    toolId: string,\n    name: string,\n    action: ToolCallActionMap[keyof ToolCallActionMap],\n    result: Record<string, string>,\n  ): void {\n    if (!this.grpcStream) return;\n    this.ensureInitializationSent();\n\n    try {\n      const request = new WebTalkRequest();\n      const toolCallResult = new ConversationToolCallResult();\n      toolCallResult.setId(id);\n      toolCallResult.setToolid(toolId);\n      toolCallResult.setName(name);\n      toolCallResult.setAction(action);\n      const resultMap = toolCallResult.getResultMap();\n      for (const [k, v] of Object.entries(result)) {\n        resultMap.set(k, v);\n      }\n      request.setToolcallresult(toolCallResult);\n      this.grpcStream.write(request);\n    } catch (error) {\n      console.error(`${LOG_PREFIX} Failed to send tool call result`, error);\n      this.callbacks.onError?.(new Error(`Failed to send tool call result: ${error}`));\n    }\n  }\n\n  /** Send an SDP answer via ClientSignaling */\n  sendWebRTCAnswer(sdp: string): void {\n    if (!this.grpcStream) return;\n\n    try {\n      // console.log(`${LOG_PREFIX} → OUT | Signaling(SDP Answer)`);\n      const request = new WebTalkRequest();\n      const signaling = new ClientSignaling();\n      if (this.sessionId) signaling.setSessionid(this.sessionId);\n\n      const sdpMsg = new WebRTCSDP();\n      sdpMsg.setType(WebRTCSDP.SDPType.ANSWER);\n      sdpMsg.setSdp(sdp);\n      signaling.setSdp(sdpMsg);\n\n      request.setSignaling(signaling);\n      this.grpcStream.write(request);\n    } catch (error) {\n      console.error(`${LOG_PREFIX} Failed to send WebRTC answer`, error);\n      this.callbacks.onError?.(new Error(`Failed to send WebRTC answer: ${error}`));\n    }\n  }\n\n  /** Send an ICE candidate via ClientSignaling */\n  sendICECandidate(candidate: RTCIceCandidateInit): void {\n    if (!this.grpcStream) return;\n\n    try {\n      // console.log(`${LOG_PREFIX} → OUT | Signaling(ICE ${candidate.candidate?.substring(0, 50) ?? \"\"})`);\n      const request = new WebTalkRequest();\n      const signaling = new ClientSignaling();\n      if (this.sessionId) signaling.setSessionid(this.sessionId);\n\n      const ice = new ProtoICECandidate();\n      ice.setCandidate(candidate.candidate || \"\");\n      ice.setSdpmid(candidate.sdpMid || \"\");\n      ice.setSdpmlineindex(candidate.sdpMLineIndex || 0);\n      signaling.setIcecandidate(ice);\n\n      request.setSignaling(signaling);\n      this.grpcStream.write(request);\n    } catch (error) {\n      console.error(`${LOG_PREFIX} Failed to send ICE candidate`, error);\n      // Don't fail the entire connection on ICE candidate send failure\n    }\n  }\n\n  // ---------------------------------------------------------------------------\n  // State mutators (called by message handler when server sends data)\n  // ---------------------------------------------------------------------------\n\n  setSessionId(id: string): void { this.sessionId = id; }\n  getSessionId(): string | null { return this.sessionId; }\n  setConversationId(id: string): void { this.conversationId = id; }\n  getConversationId(): string | null { return this.conversationId; }\n\n  // ---------------------------------------------------------------------------\n  // Helpers\n  // ---------------------------------------------------------------------------\n\n  private ensureInitializationSent(): void {\n    if (!this.initializationSent) {\n      this.sendConversationInitialization();\n    }\n  }\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n */\n\nimport { AgentCallback } from \"@/rapida/types/agent-callback\";\n\n// ============================================================================\n// WebRTC Constants\n// ============================================================================\n\nconst DEFAULT_ICE_SERVERS: RTCIceServer[] = [\n  { urls: \"stun:stun.l.google.com:19302\" },\n  { urls: \"stun:stun1.l.google.com:19302\" },\n];\nconst ICE_TRANSPORT_POLICY: RTCIceTransportPolicy = \"all\";\nconst BUNDLE_POLICY: RTCBundlePolicy = \"max-bundle\";\n\n/**\n * WebRTCPeerManager — Owns the RTCPeerConnection lifecycle\n *\n * Responsibilities:\n * - Create / close the RTCPeerConnection\n * - Handle SDP offer/answer exchange\n * - Handle ICE candidate exchange\n * - Set codec preferences (prefer Opus)\n * - Track connection state and fire callbacks\n */\nexport class WebRTCPeerManager {\n  private peerConnection: RTCPeerConnection | null = null;\n  private _isConnected = false;\n  private peerConnectionGeneration = 0;\n  private pendingRemoteICECandidates: RTCIceCandidateInit[] = [];\n\n  constructor(\n    private callbacks: AgentCallback,\n    private onICECandidate: (candidate: RTCIceCandidateInit) => void,\n    private onRemoteTrack: (stream: MediaStream) => void,\n  ) { }\n\n  // ---------------------------------------------------------------------------\n  // Lifecycle\n  // ---------------------------------------------------------------------------\n\n  /** Create a new RTCPeerConnection, optionally using server-provided ICE servers */\n  setup(iceServers?: RTCIceServer[]): void {\n    // Close existing connection before creating a new one to prevent leaks.\n    // Detach handlers BEFORE closing so the \"closed\" state change does not\n    // spuriously fire onDisconnected when the peer is simply being replaced.\n    if (this.peerConnection) {\n      this.peerConnection.onconnectionstatechange = null;\n      this.peerConnection.ontrack = null;\n      this.peerConnection.onicecandidate = null;\n      try { this.peerConnection.close(); } catch { }\n      this.peerConnection = null;\n      this._isConnected = false;\n    }\n    this.peerConnectionGeneration += 1;\n    this.pendingRemoteICECandidates = [];\n\n    this.peerConnection = new RTCPeerConnection({\n      iceServers: iceServers?.length ? iceServers : DEFAULT_ICE_SERVERS,\n      iceTransportPolicy: ICE_TRANSPORT_POLICY,\n      bundlePolicy: BUNDLE_POLICY,\n    });\n\n    // Remote audio track — fallback to wrapping track in stream if server\n    // doesn't attach a MediaStream to the track\n    this.peerConnection.ontrack = (event) => {\n      const stream = event.streams[0] ?? new MediaStream([event.track]);\n      this.onRemoteTrack(stream);\n    };\n\n    // ICE candidates are NOT sent individually — all candidates are embedded\n    // inline in the answer SDP (complete ICE, not trickle ICE). Trickle ICE\n    // candidates sent before the server receives the answer SDP cause\n    // \"InvalidStateError: remote description is not set\" on the server.\n    // We capture them via waitForIceGathering() instead.\n    this.peerConnection.onicecandidate = (_event) => {\n      // no-op: candidates are captured via localDescription after gathering\n    };\n\n    // Connection state\n    this.peerConnection.onconnectionstatechange = () => {\n      const state = this.peerConnection?.connectionState;\n      this.callbacks.onConnectionStateChange?.(state as RTCPeerConnectionState);\n\n      if (state === \"connected\") {\n        this._isConnected = true;\n        this.callbacks.onConnected?.();\n      } else if (state === \"disconnected\") {\n        this._isConnected = false;\n      } else if (state === \"failed\" || state === \"closed\") {\n        this._isConnected = false;\n        this.callbacks.onDisconnected?.();\n      }\n    };\n  }\n\n  /** Close the peer connection and reset state */\n  close(): void {\n    try {\n      if (this.peerConnection) {\n        // Detach event handlers BEFORE closing so the \"closed\" state change\n        // does not fire onDisconnected — callers decide whether to propagate\n        // the disconnect (e.g. disconnectAudioOnly keeps the session alive).\n        this.peerConnection.onconnectionstatechange = null;\n        this.peerConnection.ontrack = null;\n        this.peerConnection.onicecandidate = null;\n\n        this.peerConnection.close();\n      }\n    } catch (error) {\n      console.warn(\"Error closing peer connection\", error);\n    }\n    this.peerConnection = null;\n    this._isConnected = false;\n    this.peerConnectionGeneration += 1;\n    this.pendingRemoteICECandidates = [];\n  }\n\n  get isConnected(): boolean { return this._isConnected; }\n  get connection(): RTCPeerConnection | null { return this.peerConnection; }\n\n  // ---------------------------------------------------------------------------\n  // SDP / ICE\n  // ---------------------------------------------------------------------------\n\n  /**\n   * Apply an SDP offer, optionally attach local track, and create the answer.\n   *\n   * In text-only mode `localStream` is null — we still complete the WebRTC\n   * negotiation (the server always requires it) but set the transceiver to\n   * `recvonly` so no microphone is needed.\n   *\n   * After setLocalDescription we wait for local ICE gathering to complete\n   * so that the answer SDP contains all client candidates inline. This pairs\n   * with the server sending a complete offer (all server candidates inline).\n   * Together they eliminate trickle-ICE timing bugs that cause Safari to fail.\n   */\n  async handleOffer(sdp: string, localStream: MediaStream | null): Promise<string | null> {\n    if (!this.peerConnection) this.setup();\n    const peerConnection = this.peerConnection!;\n    const offerPeerGeneration = this.peerConnectionGeneration;\n\n    await peerConnection.setRemoteDescription({ type: \"offer\", sdp });\n    if (this.peerConnection !== peerConnection || this.peerConnectionGeneration !== offerPeerGeneration) {\n      return null;\n    }\n\n    const pendingRemoteICECandidates = this.pendingRemoteICECandidates;\n    this.pendingRemoteICECandidates = [];\n    for (const pendingRemoteICECandidate of pendingRemoteICECandidates) {\n      await peerConnection.addIceCandidate(pendingRemoteICECandidate);\n      if (this.peerConnection !== peerConnection || this.peerConnectionGeneration !== offerPeerGeneration) {\n        return null;\n      }\n    }\n\n    const localAudioTrack = localStream?.getAudioTracks().find(track => track.readyState === \"live\") ?? null;\n    const requiresAudioPublish = localStream !== null;\n    if (requiresAudioPublish && !localAudioTrack) {\n      throw new Error(\"[WebRTCPeerManager] Audio mode requires a live local audio track\");\n    }\n\n    const offeredTransceivers = peerConnection.getTransceivers();\n    const audioTransceiver = offeredTransceivers.find(transceiver => transceiver.sender.track?.kind === \"audio\")\n      ?? offeredTransceivers.find(transceiver => transceiver.receiver.track?.kind === \"audio\")\n      // Voice sessions carry one audio m-line; some browsers fill track metadata later.\n      ?? (offeredTransceivers.length === 1 ? offeredTransceivers[0] : null);\n\n    if (!audioTransceiver) {\n      if (requiresAudioPublish) {\n        throw new Error(\"[WebRTCPeerManager] Audio mode offer has no usable audio transceiver\");\n      }\n\n      console.warn(\"[WebRTCPeerManager] No audio transceiver found in offer\");\n      const answer = await peerConnection.createAnswer();\n      if (this.peerConnection !== peerConnection || this.peerConnectionGeneration !== offerPeerGeneration) {\n        return null;\n      }\n      await peerConnection.setLocalDescription(answer);\n      if (this.peerConnection !== peerConnection || this.peerConnectionGeneration !== offerPeerGeneration) {\n        return null;\n      }\n      await this.waitForIceGathering(peerConnection);\n      if (this.peerConnection !== peerConnection || this.peerConnectionGeneration !== offerPeerGeneration) {\n        return null;\n      }\n      return peerConnection.localDescription?.sdp ?? null;\n    }\n\n    if (localAudioTrack) {\n      // Audio mode — bidirectional.\n      audioTransceiver.direction = \"sendrecv\";\n      if (audioTransceiver.sender.track !== localAudioTrack) {\n        try {\n          await audioTransceiver.sender.replaceTrack(localAudioTrack);\n        } catch (replaceTrackError) {\n          audioTransceiver.direction = \"recvonly\";\n          const replaceTrackErrorMessage = replaceTrackError instanceof Error\n            ? replaceTrackError.message\n            : String(replaceTrackError);\n          throw new Error(`[WebRTCPeerManager] Failed to attach local audio track: ${replaceTrackErrorMessage}`);\n        }\n      }\n      this.setCodecPreferences(audioTransceiver);\n    } else {\n      // Text-only mode — receive only (no microphone)\n      audioTransceiver.direction = \"recvonly\";\n    }\n\n    const answer = await peerConnection.createAnswer();\n    if (this.peerConnection !== peerConnection || this.peerConnectionGeneration !== offerPeerGeneration) {\n      return null;\n    }\n    await peerConnection.setLocalDescription(answer);\n    if (this.peerConnection !== peerConnection || this.peerConnectionGeneration !== offerPeerGeneration) {\n      return null;\n    }\n\n    // Wait for local ICE gathering to complete so the answer SDP contains\n    // all client candidates inline. Safari handles the complete SDP reliably;\n    // it often drops or misorders trickle ICE candidates that arrive as\n    // separate addIceCandidate() calls after the offer/answer exchange.\n    await this.waitForIceGathering(peerConnection);\n    if (this.peerConnection !== peerConnection || this.peerConnectionGeneration !== offerPeerGeneration) {\n      return null;\n    }\n    const answerSdp = peerConnection.localDescription?.sdp ?? null;\n    if (!answerSdp) {\n      return null;\n    }\n\n    if (requiresAudioPublish) {\n      let audioMediaSectionFound = false;\n      let insideAudioMediaSection = false;\n      let negotiatedAudioDirection = \"sendrecv\";\n      let audioMediaHasLocalStream = false;\n\n      for (const answerSdpLine of answerSdp.split(/\\r?\\n/)) {\n        if (answerSdpLine.startsWith(\"m=\")) {\n          insideAudioMediaSection = answerSdpLine.startsWith(\"m=audio \");\n          audioMediaSectionFound = audioMediaSectionFound || insideAudioMediaSection;\n          continue;\n        }\n        if (!insideAudioMediaSection) {\n          continue;\n        }\n        if (\n          answerSdpLine === \"a=sendrecv\" ||\n          answerSdpLine === \"a=sendonly\" ||\n          answerSdpLine === \"a=recvonly\" ||\n          answerSdpLine === \"a=inactive\"\n        ) {\n          negotiatedAudioDirection = answerSdpLine.slice(\"a=\".length);\n        }\n        if (answerSdpLine.startsWith(\"a=msid:\")) {\n          audioMediaHasLocalStream = true;\n        }\n      }\n\n      if (!audioMediaSectionFound || negotiatedAudioDirection !== \"sendrecv\" || !audioMediaHasLocalStream) {\n        throw new Error(\n          `[WebRTCPeerManager] Audio answer did not publish microphone: audio=${audioMediaSectionFound}, direction=${negotiatedAudioDirection}, msid=${audioMediaHasLocalStream}`,\n        );\n      }\n    }\n\n    return answerSdp;\n  }\n\n  /**\n   * Wait for the RTCPeerConnection's ICE gathering to reach \"complete\".\n   * Resolves immediately if already complete.\n   * Times out after 5 seconds to avoid blocking forever if STUN is unreachable.\n   */\n  private waitForIceGathering(pc: RTCPeerConnection): Promise<void> {\n    if (pc.iceGatheringState === \"complete\") return Promise.resolve();\n\n    return new Promise<void>((resolve) => {\n      let isResolved = false;\n      let timeout: ReturnType<typeof setTimeout>;\n      const resolveOnce = () => {\n        if (isResolved) return;\n        isResolved = true;\n        clearTimeout(timeout);\n        pc.removeEventListener(\"icegatheringstatechange\", handler);\n        resolve();\n      };\n      const handler = () => {\n        if (pc.iceGatheringState === \"complete\") {\n          resolveOnce();\n        }\n      };\n      timeout = setTimeout(resolveOnce, 5000);\n\n      pc.addEventListener(\"icegatheringstatechange\", handler);\n    });\n  }\n\n  /** Get local SDP (answer) after handleOffer was called */\n  getLocalSDP(): string | undefined {\n    return this.peerConnection?.localDescription?.sdp;\n  }\n\n  /** Apply an SDP answer (unusual server flow) */\n  async handleAnswer(sdp: string): Promise<void> {\n    if (!this.peerConnection) return;\n    const peerConnection = this.peerConnection;\n    await peerConnection.setRemoteDescription({ type: \"answer\", sdp });\n    const pendingRemoteICECandidates = this.pendingRemoteICECandidates;\n    this.pendingRemoteICECandidates = [];\n    for (const pendingRemoteICECandidate of pendingRemoteICECandidates) {\n      await peerConnection.addIceCandidate(pendingRemoteICECandidate);\n    }\n  }\n\n  /** Add a remote ICE candidate */\n  async addICECandidate(candidate: string, sdpMid: string, sdpMLineIndex: number): Promise<void> {\n    if (!this.peerConnection) return;\n    const remoteICECandidate: RTCIceCandidateInit = { candidate, sdpMid, sdpMLineIndex };\n    if (!this.peerConnection.remoteDescription) {\n      this.pendingRemoteICECandidates.push(remoteICECandidate);\n      return;\n    }\n    await this.peerConnection.addIceCandidate(remoteICECandidate);\n  }\n\n  /** Replace the audio track on the existing sender */\n  async replaceTrack(track: MediaStreamTrack): Promise<void> {\n    if (!this.peerConnection) return;\n    const sender = this.peerConnection.getSenders().find(s => s.track?.kind === \"audio\");\n    if (sender) await sender.replaceTrack(track);\n  }\n\n  /** Enable / disable the audio sender track (for mute) */\n  setAudioEnabled(enabled: boolean): void {\n    if (!this.peerConnection) return;\n    const sender = this.peerConnection.getSenders().find(s => s.track?.kind === \"audio\");\n    if (sender?.track) sender.track.enabled = enabled;\n  }\n\n  // ---------------------------------------------------------------------------\n  // Codec preferences\n  // ---------------------------------------------------------------------------\n\n  private setCodecPreferences(transceiver: RTCRtpTransceiver): void {\n    if (!transceiver.setCodecPreferences) return;\n    try {\n      // Use sender capabilities for send-side codec preference ordering\n      const senderCaps = RTCRtpSender.getCapabilities(\"audio\");\n      const receiverCaps = RTCRtpReceiver.getCapabilities(\"audio\");\n      const codecs = senderCaps?.codecs ?? receiverCaps?.codecs;\n      if (!codecs) return;\n\n      const mimeTypeLower = (c: RTCRtpCodec) => c.mimeType.toLowerCase();\n      // Prefer Opus with specific parameters for mono voice\n      const opus = codecs.filter(c => mimeTypeLower(c) === \"audio/opus\");\n      const others = codecs.filter(c => mimeTypeLower(c) !== \"audio/opus\");\n      transceiver.setCodecPreferences([...opus, ...others]);\n    } catch (error) {\n      console.warn(\"Failed to set codec preferences\", error);\n    }\n  }\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n */\n\nimport { AgentConfig } from \"@/rapida/types/agent-config\";\nimport { isChrome, isEdge, isWindows, isSafari, isIOS, isSinkIdSupported } from \"@/rapida/utils\";\n\n/** Sample rate for Opus */\nconst OPUS_SAMPLE_RATE = 48000;\n\n/**\n * Get the appropriate AudioContext class for the current browser.\n * Handles vendor-prefixed versions for older browsers.\n */\nfunction getAudioContextClass(): typeof AudioContext | null {\n  if (typeof window === \"undefined\") return null;\n  return (window as any).AudioContext || (window as any).webkitAudioContext || null;\n}\n\n/**\n * AudioMediaManager — Owns local/remote media and playback\n *\n * Responsibilities:\n * - Capture local microphone stream (getUserMedia)\n * - Build audio constraints (device selection, Chrome quirks)\n * - Manage AudioContext + AnalyserNodes for visualization\n * - Manage remote audio playback (HTMLAudioElement)\n * - Device switching (input / output)\n * - Mute / volume control\n * - User-interaction handler for autoplay policy\n */\nexport class AudioMediaManager {\n  private localStream: MediaStream | null = null;\n  private remoteStream: MediaStream | null = null;\n  private audioElement: HTMLAudioElement | null = null;\n  private audioContext: AudioContext | null = null;\n  private _inputAnalyser: AnalyserNode | null = null;\n  private _outputAnalyser: AnalyserNode | null = null;\n  private isMuted = false;\n  private _volume = 1;\n  // Prevents registering duplicate click/touchstart autoplay-recovery listeners\n  private _userInteractionHandlerRegistered = false;\n\n  constructor(private agentConfig: AgentConfig) { }\n\n  // ---------------------------------------------------------------------------\n  // Local media\n  // ---------------------------------------------------------------------------\n\n  /** Capture the local microphone stream */\n  async setupLocalMedia(): Promise<void> {\n    // Clean up any existing mic resources before re-capturing.\n    // Without this, a second call (e.g. hot reconnect) would overwrite\n    // localStream while the old tracks keep running and the mic indicator stays on.\n    if (this.localStream) {\n      this.localStream.getTracks().forEach(t => t.stop());\n      this.localStream = null;\n    }\n    if (this._inputAnalyser) {\n      this._inputAnalyser.disconnect();\n      this._inputAnalyser = null;\n    }\n\n    const constraints = this.getAudioConstraints();\n\n    try {\n      this.localStream = await navigator.mediaDevices.getUserMedia({ audio: constraints, video: false });\n    } catch (error: any) {\n      // OverconstrainedError — 'exact' deviceId constraint cannot be satisfied\n      //   (Firefox throws this when the device is gone)\n      // NotFoundError — requested device does not exist\n      //   (Chrome throws this for the same situation)\n      // Both mean: fall back to the default device rather than failing completely.\n      if (error?.name === \"OverconstrainedError\" || error?.name === \"NotFoundError\") {\n        console.warn(\"[AudioMediaManager] Retrying with simplified audio constraints:\", error.name);\n        this.localStream = await navigator.mediaDevices.getUserMedia({\n          audio: this.getSimplifiedAudioConstraints(),\n          video: false,\n        });\n      } else {\n        throw error;\n      }\n    }\n\n    const localAudioTrack = this.localStream.getAudioTracks()[0];\n    if (!localAudioTrack) {\n      throw new Error(\"[AudioMediaManager] Microphone capture returned no audio track\");\n    }\n\n    localAudioTrack.enabled = true;\n\n    // Store the actual device being used when none was explicitly selected.\n    const localAudioTrackSettings = localAudioTrack.getSettings();\n    if (localAudioTrackSettings.deviceId && !this.agentConfig.inputOptions.device) {\n      this.agentConfig.inputOptions.device = localAudioTrackSettings.deviceId;\n    }\n\n    // Audio context for visualization - use vendor-prefixed version if needed\n    await this.setupAudioContext();\n\n    if (this.audioContext && this.localStream) {\n      const source = this.audioContext.createMediaStreamSource(this.localStream);\n      this._inputAnalyser = this.audioContext.createAnalyser();\n      this._inputAnalyser.fftSize = 1024;\n      this._inputAnalyser.smoothingTimeConstant = 0.4;\n      source.connect(this._inputAnalyser);\n    }\n  }\n\n  /**\n   * Setup AudioContext with proper handling for different browsers.\n   * Windows browsers (especially Edge) may need special handling.\n   */\n  private async setupAudioContext(): Promise<void> {\n    // Re-use an existing running context rather than silently abandoning it.\n    // Callers that need a fresh context (e.g. after close()) must null\n    // this.audioContext themselves (disconnectAudio does this).\n    if (this.audioContext && this.audioContext.state !== \"closed\") return;\n\n    const AudioContextClass = getAudioContextClass();\n    if (!AudioContextClass) {\n      console.warn(\"[AudioMediaManager] AudioContext not available in this browser\");\n      return;\n    }\n\n    try {\n      // No sampleRate option — browser picks native system rate (avoids WASAPI conflict on Windows)\n      this.audioContext = new AudioContextClass();\n\n      // Handle suspended state (common due to autoplay policies)\n      if (this.audioContext.state === \"suspended\") {\n        try {\n          await this.audioContext.resume();\n        } catch (resumeError) {\n          console.debug(\"[AudioMediaManager] Initial AudioContext resume failed, will retry on user interaction\", resumeError);\n        }\n      }\n    } catch (error) {\n      console.error(\"[AudioMediaManager] Failed to create AudioContext:\", error);\n      // Don't throw - audio context is optional (for visualization)\n      this.audioContext = null;\n    }\n  }\n\n  /** Simplified audio constraints for Windows fallback */\n  private getSimplifiedAudioConstraints(): MediaTrackConstraints {\n    const base: MediaTrackConstraints = {\n      echoCancellation: true,\n      noiseSuppression: true,\n      autoGainControl: true,\n    };\n\n    if (this.agentConfig.inputOptions.device) {\n      // Use 'ideal' instead of 'exact' for better Windows compatibility\n      base.deviceId = { ideal: this.agentConfig.inputOptions.device };\n    }\n\n    return base;\n  }\n\n  /** Build MediaTrackConstraints for getUserMedia */\n  private getAudioConstraints(): MediaTrackConstraints {\n    const base: MediaTrackConstraints = {\n      sampleRate: { ideal: OPUS_SAMPLE_RATE },\n      channelCount: { ideal: 1 },\n      echoCancellation: true,\n      noiseSuppression: true,\n      // Keep AGC enabled to prevent low microphone capture levels on quieter\n      // mics and mobile hardware.\n      autoGainControl: true,\n    };\n\n    if (this.agentConfig.inputOptions.device) {\n      // On Windows, use 'ideal' instead of 'exact' for better compatibility\n      // as some drivers may not support exact device selection\n      if (isWindows()) {\n        base.deviceId = { ideal: this.agentConfig.inputOptions.device };\n      } else {\n        base.deviceId = { exact: this.agentConfig.inputOptions.device };\n      }\n    }\n\n    // On Windows, remove sampleRate constraint — WebRTC handles resampling internally,\n    // and forcing 48kHz can conflict with WASAPI on 44100Hz audio hardware.\n    // On Safari/iOS, sampleRate is not a supported getUserMedia constraint and must be omitted.\n    if (isWindows() || isSafari() || isIOS()) {\n      delete base.sampleRate;\n    }\n\n    // Chrome and Edge (Chromium-based) support additional constraints\n    if (isChrome() || isEdge()) {\n      return {\n        ...base,\n        // @ts-ignore Chrome/Edge-specific\n        googEchoCancellation: true,\n        // @ts-ignore Chrome/Edge-specific AGC.\n        googAutoGainControl: true,\n        // @ts-ignore\n        googNoiseSuppression: true,\n        // @ts-ignore removes low-frequency rumble (fan/AC noise)\n        googHighpassFilter: true,\n      };\n    }\n\n    return base;\n  }\n\n  // ---------------------------------------------------------------------------\n  // Remote audio playback\n  // ---------------------------------------------------------------------------\n\n  /** Attach a remote stream and start playback */\n  async setupRemoteAudio(stream: MediaStream): Promise<void> {\n    this.remoteStream = stream;\n    if (this.audioElement?.srcObject === stream) return;\n\n    if (!this.audioElement) {\n      this.audioElement = this.createAudioElement();\n      await this.setOutputDeviceOnElement(this.audioElement, this.agentConfig.outputOptions.device);\n    }\n\n    this.audioElement.srcObject = stream;\n    this.audioElement.volume = this._volume;\n\n    // Setup output analyser for remote audio visualization\n    await this.setupOutputAnalyser(stream);\n\n    // Start playback\n    await this.startPlayback();\n  }\n\n  /**\n   * Create and configure the audio element for playback.\n   * Handles Windows-specific settings.\n   */\n  private createAudioElement(): HTMLAudioElement {\n    const audio = new Audio();\n    audio.autoplay = true;\n\n    // On Windows, ensure proper audio handling\n    if (isWindows()) {\n      // Prevent potential audio glitches on Windows\n      audio.preservesPitch = false;\n\n      // Add event listeners for Windows-specific audio issues\n      audio.addEventListener(\"stalled\", () => {\n        console.debug(\"[AudioMediaManager] Audio stalled, attempting recovery\");\n        this.recoverAudioPlayback();\n      });\n\n      audio.addEventListener(\"waiting\", () => {\n        console.debug(\"[AudioMediaManager] Audio waiting for data\");\n      });\n    }\n\n    return audio;\n  }\n\n  /**\n   * Set the output device on an audio element.\n   * Handles browsers that don't support setSinkId.\n   */\n  private async setOutputDeviceOnElement(element: HTMLAudioElement, deviceId?: string): Promise<void> {\n    if (!deviceId) return;\n\n    if (!isSinkIdSupported()) {\n      console.warn(\"[AudioMediaManager] setSinkId not supported in this browser - using default output device\");\n      return;\n    }\n\n    try {\n      await (element as any).setSinkId(deviceId);\n    } catch (error: any) {\n      if (error?.name === \"NotFoundError\") {\n        console.warn(`[AudioMediaManager] Output device ${deviceId} not found, using default`);\n      } else if (error?.name === \"NotAllowedError\") {\n        console.warn(\"[AudioMediaManager] Permission denied for output device selection\");\n      } else {\n        console.warn(\"[AudioMediaManager] Failed to set output device:\", error);\n      }\n      // Don't throw - fallback to default device\n    }\n  }\n\n  /**\n   * Setup output analyser for remote audio visualization.\n   */\n  private async setupOutputAnalyser(stream: MediaStream): Promise<void> {\n    try {\n      // Ensure AudioContext exists for visualization\n      if (!this.audioContext) {\n        await this.setupAudioContext();\n      }\n\n      if (this.audioContext && !this._outputAnalyser) {\n        const remoteSource = this.audioContext.createMediaStreamSource(stream);\n        this._outputAnalyser = this.audioContext.createAnalyser();\n        this._outputAnalyser.fftSize = 1024;\n        this._outputAnalyser.smoothingTimeConstant = 0.4;\n        remoteSource.connect(this._outputAnalyser);\n      }\n    } catch (error) {\n      console.debug(\"[AudioMediaManager] Failed to setup output analyser\", error);\n      // Non-critical - visualization won't work but audio will still play\n    }\n  }\n\n  /**\n   * Start audio playback with proper error handling.\n   */\n  private async startPlayback(): Promise<void> {\n    if (!this.audioElement) return;\n\n    try {\n      await this.audioElement.play();\n    } catch (error: any) {\n      if (error?.name === \"NotAllowedError\") {\n        // Autoplay policy blocked playback — wait for a user gesture to resume.\n        console.debug(\"[AudioMediaManager] Autoplay blocked, waiting for user interaction\");\n        this.setupUserInteractionHandler();\n      } else if (error?.name !== \"AbortError\") {\n        // AbortError is a transient race (srcObject reassignment); ignore it.\n        // Any other error is unexpected and worth logging.\n        console.error(\"[AudioMediaManager] Failed to start playback:\", error);\n      }\n    }\n  }\n\n  /**\n   * Attempt to recover audio playback after a stall (common on Windows).\n   */\n  private async recoverAudioPlayback(): Promise<void> {\n    if (!this.audioElement || !this.remoteStream) return;\n\n    const el = this.audioElement;\n    try {\n      el.pause();\n      el.srcObject = null;\n      el.srcObject = this.remoteStream;\n\n      // Same canplay-wait as interruptPlayback: srcObject reassignment triggers\n      // the load algorithm (which internally pauses), so play() must wait until\n      // the element is ready or AbortError follows.\n      if (el.readyState < 3 /* HAVE_FUTURE_DATA */) {\n        await new Promise<void>((resolvePromise) => {\n          let isPromiseResolved = false;\n          // Resolve from whichever arrives first: `canplay` or fallback timeout.\n          const resolveOnce = () => {\n            if (isPromiseResolved) return;\n            isPromiseResolved = true;\n            clearTimeout(fallbackTimeoutId);\n            el.removeEventListener(\"canplay\", handleCanPlay);\n            resolvePromise();\n          };\n          const handleCanPlay: EventListener = () => resolveOnce();\n          const fallbackTimeoutId = setTimeout(resolveOnce, 200);\n          el.addEventListener(\"canplay\", handleCanPlay, { once: true });\n        });\n      }\n\n      await el.play();\n    } catch (error) {\n      console.debug(\"[AudioMediaManager] Audio recovery failed:\", error);\n    }\n  }\n\n  /** Resume audio after user interaction */\n  async resumeAudio(): Promise<void> {\n    try {\n      if (this.audioContext?.state === \"suspended\") {\n        await this.audioContext.resume();\n      }\n      if (this.audioElement?.paused) {\n        await this.audioElement.play();\n      }\n    } catch (error) {\n      console.error(\"Failed to resume audio\", error);\n      throw error;\n    }\n  }\n\n  /**\n   * Interrupt audio output — immediately silence stale assistant audio.\n   *\n   * The server clears its output buffer and stops sending new frames,\n   * but frames already in the WebRTC jitter buffer / audio pipeline will\n   * keep playing for a noticeable moment.  By briefly pausing the\n   * HTMLAudioElement we flush the browser's internal audio buffer so the\n   * user hears silence right away instead of trailing assistant speech.\n   */\n  async interruptPlayback(): Promise<void> {\n    if (!this.audioElement) return;\n\n    try {\n      // Pause playback to flush the browser's internal audio buffer.\n      const el = this.audioElement;\n      el.pause();\n\n      // Detach and re-attach the stream to discard any buffered frames.\n      const stream = el.srcObject;\n      el.srcObject = null;\n      el.srcObject = stream;\n\n      // Reassigning srcObject triggers the browser's media load algorithm,\n      // which internally issues a pause step. Calling play() before that\n      // settles produces an AbortError. Wait for canplay so the load is\n      // complete before resuming. 200 ms timeout guards against streams\n      // with no active audio tracks where canplay may never fire.\n      if (el.readyState < 3 /* HAVE_FUTURE_DATA */) {\n        await new Promise<void>((resolvePromise) => {\n          let isPromiseResolved = false;\n          // Resolve from whichever arrives first: `canplay` or fallback timeout.\n          const resolveOnce = () => {\n            if (isPromiseResolved) return;\n            isPromiseResolved = true;\n            clearTimeout(fallbackTimeoutId);\n            el.removeEventListener(\"canplay\", handleCanPlay);\n            resolvePromise();\n          };\n          const handleCanPlay: EventListener = () => resolveOnce();\n          const fallbackTimeoutId = setTimeout(resolveOnce, 200);\n          el.addEventListener(\"canplay\", handleCanPlay, { once: true });\n        });\n      }\n\n      // Resume — new frames from the server (post-interruption) will play\n      // as soon as they arrive.\n      await el.play();\n    } catch (error) {\n      // play() may throw NotAllowedError if autoplay policy blocks it;\n      // non-fatal since the next server audio will trigger playback anyway.\n      console.debug(\"[AudioMediaManager] interruptPlayback recovery play failed\", error);\n    }\n  }\n\n  /** Ensure audio context is running and element is playing (e.g. on READY signal) */\n  async ensurePlayback(): Promise<void> {\n    try {\n      if (this.audioContext?.state === \"suspended\") {\n        await this.audioContext.resume();\n      }\n      if (this.audioElement?.paused) {\n        try {\n          await this.audioElement.play();\n        } catch (error) {\n          console.debug(\"Autoplay failed, waiting for user interaction\", error);\n        }\n      }\n    } catch (error) {\n      console.error(\"Failed to ensure playback\", error);\n    }\n  }\n\n\n\n  private setupUserInteractionHandler(): void {\n    // Guard: only one pair of listeners at a time. Without this, every failed\n    // play() call (e.g. on repeated reconnects) stacks up duplicate handlers.\n    if (this._userInteractionHandlerRegistered) return;\n    this._userInteractionHandlerRegistered = true;\n\n    const startAudio = async () => {\n      this._userInteractionHandlerRegistered = false;\n      try {\n        if (this.audioContext?.state === \"suspended\") await this.audioContext.resume();\n        if (this.audioElement?.paused) await this.audioElement.play();\n      } catch { }\n      // once:true removes the firing listener; manually remove the other one.\n      document.removeEventListener(\"click\", startAudio);\n      document.removeEventListener(\"touchstart\", startAudio);\n    };\n    document.addEventListener(\"click\", startAudio, { once: true });\n    document.addEventListener(\"touchstart\", startAudio, { once: true });\n  }\n\n  // ---------------------------------------------------------------------------\n  // Device switching\n  // ---------------------------------------------------------------------------\n\n  /** Switch the input (microphone) device */\n  async setInputDevice(deviceId: string): Promise<void> {\n    this.agentConfig.inputOptions.device = deviceId;\n    this.localStream?.getTracks().forEach(t => t.stop());\n    // Null immediately so that if getUserMedia throws, getLocalAudioTrack()\n    // returns undefined rather than a stream full of stopped (silent) tracks.\n    this.localStream = null;\n\n    try {\n      this.localStream = await navigator.mediaDevices.getUserMedia({\n        audio: this.getAudioConstraints(),\n        video: false,\n      });\n    } catch (error: any) {\n      // Same cross-platform fallback as setupLocalMedia:\n      // Chrome → NotFoundError, Firefox → OverconstrainedError, for missing 'exact' device.\n      if (error?.name === \"OverconstrainedError\" || error?.name === \"NotFoundError\") {\n        console.warn(\"[AudioMediaManager] Device selection failed, retrying with simplified constraints:\", error.name);\n        this.localStream = await navigator.mediaDevices.getUserMedia({\n          audio: this.getSimplifiedAudioConstraints(),\n          video: false,\n        });\n      } else {\n        throw error;\n      }\n    }\n\n    const localAudioTrack = this.localStream.getAudioTracks()[0];\n    if (!localAudioTrack) {\n      throw new Error(\"[AudioMediaManager] Microphone device switch returned no audio track\");\n    }\n    localAudioTrack.enabled = !this.isMuted;\n\n    // Reconnect analyser (disconnect old source first to avoid leaking audio nodes)\n    if (this.audioContext && this._inputAnalyser && this.localStream) {\n      this._inputAnalyser.disconnect();\n      const source = this.audioContext.createMediaStreamSource(this.localStream);\n      this._inputAnalyser = this.audioContext.createAnalyser();\n      this._inputAnalyser.fftSize = 1024;\n      this._inputAnalyser.smoothingTimeConstant = 0.4;\n      source.connect(this._inputAnalyser);\n    }\n  }\n\n  /** Switch the output (speaker) device */\n  async setOutputDevice(deviceId: string): Promise<void> {\n    this.agentConfig.outputOptions.device = deviceId;\n\n    if (!this.audioElement) return;\n\n    await this.setOutputDeviceOnElement(this.audioElement, deviceId);\n  }\n\n  // ---------------------------------------------------------------------------\n  // Mute / volume\n  // ---------------------------------------------------------------------------\n\n  setMuted(muted: boolean): void {\n    this.isMuted = muted;\n    this.localStream?.getAudioTracks().forEach(t => { t.enabled = !muted; });\n  }\n\n  getMuted(): boolean { return this.isMuted; }\n\n  setVolume(volume: number): void {\n    this._volume = Math.max(0, Math.min(1, volume));\n    if (this.audioElement) this.audioElement.volume = this._volume;\n  }\n\n  getVolume(): number { return this._volume; }\n\n  // ---------------------------------------------------------------------------\n  // Getters\n  // ---------------------------------------------------------------------------\n\n  get inputAnalyserNode(): AnalyserNode | null { return this._inputAnalyser; }\n  get outputAnalyserNode(): AnalyserNode | null { return this._outputAnalyser; }\n  get mediaStream(): MediaStream | null { return this.localStream; }\n  get remoteMediaStream(): MediaStream | null { return this.remoteStream; }\n  get context(): AudioContext | null { return this.audioContext; }\n\n  /** Get the new audio track after setInputDevice (caller wires it to peer) */\n  getLocalAudioTrack(): MediaStreamTrack | undefined {\n    return this.localStream?.getAudioTracks().find(track => track.readyState === \"live\");\n  }\n\n  // ---------------------------------------------------------------------------\n  // Cleanup\n  // ---------------------------------------------------------------------------\n\n  /** Disconnect audio (for text mode) - stops local media but keeps gRPC stream */\n  async disconnectAudio(): Promise<void> {\n    try {\n      // Stop all microphone tracks so the browser releases the mic indicator\n      this.localStream?.getTracks().forEach(t => t.stop());\n      this.localStream = null;\n\n      // Close the AudioContext that holds a MediaStreamSource reference to the\n      // microphone.  Without this, browsers (especially Chrome) keep the mic\n      // indicator active even after tracks have been stopped.\n      if (this.audioContext && this.audioContext.state !== \"closed\") {\n        await this.audioContext.close();\n      }\n      this.audioContext = null;\n      this._inputAnalyser = null;\n      this._outputAnalyser = null;\n\n      if (this.audioElement) {\n        this.audioElement.pause();\n        this.audioElement.srcObject = null;\n      }\n\n      // Allow the user-interaction handler to re-register after a reconnect.\n      this._userInteractionHandlerRegistered = false;\n      this.remoteStream = null;\n    } catch (error) {\n      console.error(\"Failed to disconnect audio\", error);\n    }\n  }\n\n  /** Full cleanup - closes audio context and clears all resources */\n  async close(): Promise<void> {\n    try {\n      // disconnectAudio() already handles AudioContext, analysers, and remoteStream\n      await this.disconnectAudio();\n    } catch (error) {\n      console.error(\"Error during audio cleanup\", error);\n    }\n  }\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nimport {\n  ConversationUserMessage as CUMessage,\n  ConversationAssistantMessage as CAMessage,\n  ConversationConfiguration,\n  ConversationInterruption,\n  ConversationToolCall,\n  ConversationToolCallResult,\n  ConversationInitialization,\n  ConversationEvent,\n  ConversationMetric,\n  ConversationError,\n  ConversationDisconnection,\n} from \"@/rapida/clients/protos/talk-api_pb\";\n\nimport { AssistantConversationMessage } from \"@/rapida/clients/protos/common_pb\";\n\nexport interface ConversationUserMessage\n  extends CUMessage.AsObject {\n  messageText?: string;\n}\n\nexport class ConversationUserMessage {\n  constructor(config?: CUMessage) {\n    if (config) {\n      Object.assign(this, config.toObject());\n      switch (config.getMessageCase()) {\n        case CUMessage.MessageCase.MESSAGE_NOT_SET:\n        case CUMessage.MessageCase.AUDIO:\n        case CUMessage.MessageCase.TEXT:\n          this.messageText = config.getText();\n      }\n    }\n  }\n}\n\nexport interface ConversationAssistantMessage\n  extends CAMessage.AsObject {\n  messageText?: string;\n}\n\nexport class ConversationAssistantMessage {\n  constructor(config?: CAMessage) {\n    if (config) {\n      Object.assign(this, config.toObject());\n      switch (config.getMessageCase()) {\n        case CAMessage.MessageCase.MESSAGE_NOT_SET:\n        case CAMessage.MessageCase.AUDIO:\n        case CAMessage.MessageCase.TEXT:\n          this.messageText = config.getText();\n      }\n    }\n  }\n}\n\n/**\n *  user friendly interface for message\n */\nexport interface ConversationMessage\n  extends AssistantConversationMessage.AsObject {\n  userMessage?: string;\n  systemMessage?: string;\n}\n\n\n\n\n/**\n * Callbacks for agent events\n */\nexport interface AgentCallback {\n\n  onInitialization?: (args: ConversationInitialization.AsObject | undefined) => void;\n\n  /** Called when configuration is received (conversation ID, etc.) */\n  onConfiguration?: (args: ConversationConfiguration.AsObject | undefined) => void;\n\n  /** Called on interruption */\n  onInterrupt?: (args: ConversationInterruption.AsObject | undefined) => void;\n\n  /** Called when assistant message is received */\n  onAssistantMessage?: (args: ConversationAssistantMessage | undefined) => void;\n\n  /** Called when user message is received */\n  onUserMessage?: (args: ConversationUserMessage | undefined) => void;\n\n  /**\n   * Called when the server invokes a tool call. Return a result map to\n   * send it back as ConversationToolCallResult.\n   *\n   * - Return `Record<string, string>` → SDK sends result to server\n   * - Return void/undefined → no result sent\n   * - Async supported → SDK awaits the promise\n   *\n   * Orphan tool calls (no result returned), timeouts, and error recovery\n   * are managed server-side. The client is only responsible for executing\n   * the action and returning a result when ready.\n   */\n  onToolCall?: (toolCall: ConversationToolCall.AsObject) => Promise<Record<string, string>> | Record<string, string> | void;\n\n  /** Called when a tool call result is received from the server (informational) */\n  onToolCallResult?: (result: ConversationToolCallResult.AsObject) => void;\n\n  /** Called when a pipeline conversation event is received (STT, TTS, LLM, session, etc.) */\n  onConversationEvent?: (event: ConversationEvent.AsObject) => void;\n\n  /** Called when server-side performance/latency metric data is received */\n  onMetric?: (metric: ConversationMetric.AsObject) => void;\n\n  /** Called when connection state changes */\n  onConnectionStateChange?: (state: RTCPeerConnectionState) => void;\n\n  /** Called when fully connected */\n  onConnected?: () => void;\n\n  /** Called when disconnected */\n  onDisconnected?: () => void;\n\n  /** Called when the server ends the conversation */\n  onConversationDisconnected?: (\n    args: ConversationDisconnection.AsObject | undefined\n  ) => void | Promise<void>;\n\n  /** Called when a server-side conversation error is received (with conversation ID and details) */\n  onConversationError?: (error: ConversationError.AsObject) => void;\n\n  /** Called on error */\n  onError?: (error: Error) => void;\n\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n */\n\nimport {\n  AgentCallback,\n  ConversationAssistantMessage as AssistantMessageWrapper,\n  ConversationUserMessage as UserMessageWrapper,\n} from \"@/rapida/types/agent-callback\";\nimport {\n  WebTalkResponse,\n  ServerSignaling,\n  WebRTCSDP,\n} from \"@/rapida/clients/protos/webrtc_pb\";\nimport type { GrpcSignalingManager } from \"./grpc-signaling-manager\";\nimport type { WebRTCPeerManager } from \"./webrtc-peer-manager\";\nimport type { AudioMediaManager } from \"./audio-media-manager\";\n\n/**\n * MessageProtocolHandler — Dispatches incoming WebTalkResponse messages\n *\n * Responsibilities:\n * - Parse each response and route to the correct manager / callback\n * - Handle ServerSignaling (config, SDP, ICE, ready, clear, error)\n * - Handle conversation init/config responses\n * - Handle assistant / user / interruption / tool call messages\n *\n * State: tracks the active WebRTC signaling session to ignore stale offers/ICE.\n */\nexport class MessageProtocolHandler {\n  // Serialization chain ensures signaling messages (CONFIG → OFFER → ICE)\n  // are processed in order even though gRPC callbacks fire without await.\n  private processingChain: Promise<void> = Promise.resolve();\n  private activeSignalingSessionId: string | null = null;\n\n  constructor(\n    private callbacks: AgentCallback,\n    private signaling: GrpcSignalingManager,\n    private peer: WebRTCPeerManager,\n    private audio: AudioMediaManager,\n  ) { }\n\n  // ---------------------------------------------------------------------------\n  // Top-level dispatch\n  // ---------------------------------------------------------------------------\n\n  async handleMessage(response: WebTalkResponse): Promise<void> {\n    this.processingChain = this.processingChain\n      .then(() => this._handleMessage(response))\n      .catch(err => console.error(\"[Protocol] Message processing error\", err));\n    return this.processingChain;\n  }\n\n  private async _handleMessage(response: WebTalkResponse): Promise<void> {\n    // Server signaling (SDP, ICE, config, ready, clear, error)\n    if (response.hasSignaling()) {\n      const sig = response.getSignaling();\n      if (sig) await this.handleServerSignaling(sig);\n    }\n\n    // Conversation initialization (conversation ID, etc.)\n    if (response.hasInitialization()) {\n      const init = response.getInitialization();\n      if (init) {\n        const convId = init.getAssistantconversationid();\n        if (convId) this.signaling.setConversationId(convId);\n        this.callbacks.onInitialization?.(init.toObject());\n      }\n    }\n\n    // Conversation configuration (mode switch acknowledgment)\n    if (response.hasConfiguration()) {\n      const cfg = response.getConfiguration();\n      if (cfg) this.callbacks.onConfiguration?.(cfg.toObject());\n    }\n\n    // Assistant message\n    if (response.hasAssistant()) {\n      const assistant = response.getAssistant();\n      if (assistant) {\n        this.callbacks.onAssistantMessage?.(new AssistantMessageWrapper(assistant));\n      }\n    }\n\n    // User message echo\n    if (response.hasUser()) {\n      const user = response.getUser();\n      if (user) {\n        this.callbacks.onUserMessage?.(new UserMessageWrapper(user));\n      }\n    }\n\n    // Interruption\n    if (response.hasInterruption()) {\n      const interruption = response.getInterruption();\n      if (interruption) this.callbacks.onInterrupt?.(interruption.toObject());\n    }\n\n    // Tool call (server invokes a tool — client may need to act)\n    if (response.hasToolcall()) {\n      const toolCall = response.getToolcall();\n      if (toolCall) this.callbacks.onToolCall?.(toolCall.toObject());\n    }\n\n    // Tool call result (server-side tool completed — informational)\n    if (response.hasToolcallresult()) {\n      const result = response.getToolcallresult();\n      if (result) this.callbacks.onToolCallResult?.(result.toObject());\n    }\n\n    // Disconnection (server requests disconnect)\n    if (response.hasDisconnection()) {\n      const disconnection = response.getDisconnection();\n      await this.callbacks.onConversationDisconnected?.(disconnection?.toObject());\n      this.callbacks.onDisconnected?.();\n    }\n\n    // Pipeline conversation event (STT, TTS, LLM, session, etc.)\n    if (response.hasEvent()) {\n      const event = response.getEvent();\n      if (event) this.callbacks.onConversationEvent?.(event.toObject());\n    }\n\n    // Conversation error (server-side error with conversation ID and details)\n    if (response.hasError()) {\n      const error = response.getError();\n      if (error) {\n        this.callbacks.onError?.(new Error(error.getMessage()));\n        this.callbacks.onConversationError?.(error.toObject());\n      }\n    }\n\n    // Metric (server-side performance/latency data)\n    if (response.hasMetric()) {\n      const metric = response.getMetric();\n      if (metric) this.callbacks.onMetric?.(metric.toObject());\n    }\n  }\n\n  // ---------------------------------------------------------------------------\n  // Server signaling\n  // ---------------------------------------------------------------------------\n\n  private async handleServerSignaling(signaling: ServerSignaling): Promise<void> {\n    const signalingSessionId = signaling.getSessionid();\n    const messageCase = signaling.getMessageCase();\n\n    if (messageCase !== ServerSignaling.MessageCase.CONFIG) {\n      if (this.activeSignalingSessionId && signalingSessionId && signalingSessionId !== this.activeSignalingSessionId) {\n        console.debug(\"[Protocol] Ignoring stale WebRTC signaling\", {\n          activeSignalingSessionId: this.activeSignalingSessionId,\n          signalingSessionId,\n          messageCase,\n        });\n        return;\n      }\n      if (!this.activeSignalingSessionId && signalingSessionId) {\n        this.activeSignalingSessionId = signalingSessionId;\n        this.signaling.setSessionId(signalingSessionId);\n      }\n    }\n\n    switch (messageCase) {\n      case ServerSignaling.MessageCase.CONFIG: {\n        try {\n          this.activeSignalingSessionId = signalingSessionId || null;\n          if (this.activeSignalingSessionId) {\n            this.signaling.setSessionId(this.activeSignalingSessionId);\n          }\n\n          const config = signaling.getConfig();\n          const iceServers = config?.getIceserversList()?.map(srv => ({\n            urls: srv.getUrlsList(),\n            username: srv.getUsername() || undefined,\n            credential: srv.getCredential() || undefined,\n          })) as RTCIceServer[] | undefined;\n          this.peer.setup(iceServers);\n        } catch (error) {\n          this.peer.close();\n          console.error(\"Failed to handle WebRTC config signaling\", error);\n          this.callbacks.onConnectionStateChange?.(\"failed\");\n          this.callbacks.onError?.(new Error(`WebRTC config signaling failed: ${error}`));\n        }\n        break;\n      }\n\n      case ServerSignaling.MessageCase.SDP: {\n        const sdpMessage = signaling.getSdp();\n        const sdpType = sdpMessage?.getType();\n        try {\n          if (!sdpMessage) break;\n\n          const sdp = sdpMessage.getSdp();\n\n          if (sdpType === WebRTCSDP.SDPType.OFFER) {\n            // console.log(\"[Protocol] Handling SDP OFFER\");\n            const answerSdp = await this.peer.handleOffer(sdp, this.audio.mediaStream);\n            if (answerSdp) {\n              this.signaling.sendWebRTCAnswer(answerSdp);\n            } else {\n              console.debug(\"[Protocol] SDP offer was superseded before answer was sent\");\n            }\n          } else if (sdpType === WebRTCSDP.SDPType.ANSWER) {\n            // console.log(\"[Protocol] Handling SDP ANSWER\");\n            await this.peer.handleAnswer(sdp);\n          }\n        } catch (error) {\n          if (sdpType === WebRTCSDP.SDPType.OFFER) {\n            // Cleanup strategy: on failed offer handling, close stale peer state.\n            // Next CONFIG/OFFER cycle will recreate the peer cleanly.\n            this.peer.close();\n          }\n          console.error(\"Failed to handle SDP signaling\", error);\n          this.callbacks.onConnectionStateChange?.(\"failed\");\n          this.callbacks.onError?.(new Error(`SDP signaling failed: ${error}`));\n        }\n        break;\n      }\n\n      case ServerSignaling.MessageCase.ICECANDIDATE: {\n        try {\n          const ice = signaling.getIcecandidate();\n          if (ice && ice.getCandidate()) {\n            await this.peer.addICECandidate(\n              ice.getCandidate(),\n              ice.getSdpmid(),\n              ice.getSdpmlineindex(),\n            );\n          }\n        } catch (error) {\n          console.debug(\"Failed to add ICE candidate (non-fatal)\", error);\n        }\n        break;\n      }\n\n      case ServerSignaling.MessageCase.READY:\n        try {\n          await this.audio.ensurePlayback();\n        } catch (error) {\n          console.error(\"Failed to ensure audio playback\", error);\n          this.callbacks.onError?.(new Error(`Audio playback setup failed: ${error}`));\n        }\n        break;\n\n      case ServerSignaling.MessageCase.CLEAR:\n        this.callbacks.onInterrupt?.(undefined);\n        break;\n\n      case ServerSignaling.MessageCase.ERROR: {\n        const errorMsg = signaling.getError();\n        this.callbacks.onError?.(new Error(errorMsg || \"Signaling error\"));\n        break;\n      }\n    }\n  }\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n */\n\nimport { ConnectionConfig } from \"@/rapida/types/connection-config\";\nimport { AgentConfig } from \"@/rapida/types/agent-config\";\nimport { AgentCallback } from \"@/rapida/types/agent-callback\";\nimport { GrpcSignalingManager } from \"./grpc-signaling-manager\";\nimport { WebRTCPeerManager } from \"./webrtc-peer-manager\";\nimport { AudioMediaManager } from \"./audio-media-manager\";\nimport { MessageProtocolHandler } from \"./message-protocol-handler\";\n\ntype MediaTransportState =\n  | \"text_ready\"\n  | \"audio_capturing\"\n  | \"audio_negotiating\"\n  | \"audio_connected\"\n  | \"audio_failed\";\n\n/**\n * WebRTC gRPC Transport Configuration\n */\nexport interface WebRTCGrpcTransportConfig {\n  /** Connection configuration with gRPC client */\n  connectionConfig: ConnectionConfig;\n  /** Agent configuration */\n  agentConfig: AgentConfig;\n  /** Existing conversation ID to continue */\n  conversationId?: string;\n}\n\n/**\n * WebRTC Transport with gRPC Signaling — Orchestrator\n *\n * Composes four single-responsibility managers:\n *   - GrpcSignalingManager  → gRPC stream lifecycle & proto message building\n *   - WebRTCPeerManager     → RTCPeerConnection, SDP/ICE, codec prefs\n *   - AudioMediaManager     → local/remote media, devices, mute/volume\n *   - MessageProtocolHandler → incoming response dispatch\n *\n * This class wires the managers together and exposes the public API.\n */\nexport class WebRTCGrpcTransport {\n  private config: WebRTCGrpcTransportConfig;\n  private callbacks: AgentCallback;\n  private mediaTransportState: MediaTransportState = \"text_ready\";\n\n  // Managers\n  private signaling: GrpcSignalingManager;\n  private peer: WebRTCPeerManager;\n  private audio: AudioMediaManager;\n  private protocol: MessageProtocolHandler;\n\n  constructor(config: WebRTCGrpcTransportConfig, callbacks: AgentCallback = {}) {\n    this.config = config;\n    this.callbacks = {\n      ...callbacks,\n      onConnectionStateChange: (state) => {\n        if (state === \"connecting\" && this.mediaTransportState === \"audio_capturing\") {\n          this.mediaTransportState = \"audio_negotiating\";\n        } else if (state === \"connected\" && this.mediaTransportState !== \"text_ready\") {\n          this.mediaTransportState = \"audio_connected\";\n        } else if (state === \"failed\" && this.mediaTransportState !== \"text_ready\") {\n          this.mediaTransportState = \"audio_failed\";\n        }\n        callbacks.onConnectionStateChange?.(state);\n      },\n      onConnected: () => {\n        if (this.mediaTransportState !== \"text_ready\") {\n          this.mediaTransportState = \"audio_connected\";\n        }\n        callbacks.onConnected?.();\n      },\n    };\n\n    // 1. Audio manager — captures/plays media, manages devices\n    this.audio = new AudioMediaManager(config.agentConfig);\n\n    // 2. Peer manager — WebRTC connection, wired to send ICE via signaling\n    //    and route remote tracks to audio manager\n    this.peer = new WebRTCPeerManager(\n      this.callbacks,\n      (candidate) => this.signaling.sendICECandidate(candidate),\n      (stream) => this.audio.setupRemoteAudio(stream),\n    );\n\n    // 3. Signaling manager — gRPC stream, wired to forward responses to protocol handler\n    this.signaling = new GrpcSignalingManager(\n      config.connectionConfig,\n      config.agentConfig,\n      this.callbacks,\n      (response) => this.protocol.handleMessage(response),\n      config.conversationId,\n    );\n\n    // 4. Protocol handler — dispatches incoming messages to the right manager/callback\n    this.protocol = new MessageProtocolHandler(this.callbacks, this.signaling, this.peer, this.audio);\n  }\n\n  // ---------------------------------------------------------------------------\n  // Factory\n  // ---------------------------------------------------------------------------\n\n  /**\n   * Factory — create and connect a transport.\n   * @param textOnly  When true, connects gRPC + signaling only (no microphone).\n   */\n  static async create(\n    config: WebRTCGrpcTransportConfig,\n    callbacks: AgentCallback = {},\n    textOnly: boolean = false,\n  ): Promise<WebRTCGrpcTransport> {\n    const transport = new WebRTCGrpcTransport(config, callbacks);\n    await transport.connect(textOnly);\n    return transport;\n  }\n\n  // ---------------------------------------------------------------------------\n  // Connection lifecycle\n  // ---------------------------------------------------------------------------\n\n  /**\n   * Connect the transport.\n   *\n   * @param textOnly  When true, skip microphone — gRPC + signaling only.\n   *\n   * Flow:\n   * 1. (Audio only) Get local media stream (microphone)\n   * 2. Connect gRPC bidirectional stream\n   * 3. Send ConversationInitialization\n   * 4. Server responds with Signaling (SDP offer, ICE)\n   * 5. Client creates peer connection and sends SDP answer\n   * 6. Audio flows over WebRTC / text flows over gRPC\n   */\n  async connect(textOnly: boolean = false): Promise<void> {\n    try {\n      if (!textOnly) {\n        this.mediaTransportState = \"audio_capturing\";\n        await this.audio.setupLocalMedia();\n      } else {\n        this.mediaTransportState = \"text_ready\";\n      }\n      await this.signaling.connect();\n      this.signaling.sendConversationInitialization();\n      // console.log(`[WebRTCTransport] connected (${textOnly ? \"text-only\" : \"audio\"} mode)`);\n\n      // In text-only mode there is no WebRTC peer whose\n      // `onconnectionstatechange` would fire \"connected\".\n      // Signal the connected state explicitly so that consumers\n      // (e.g. useConnectAgent / isConnected) reflect the right status.\n      if (textOnly) {\n        this.callbacks.onConnectionStateChange?.(\"connected\");\n        this.callbacks.onConnected?.();\n      }\n    } catch (error) {\n      this.callbacks.onError?.(error as Error);\n      this.mediaTransportState = textOnly ? \"text_ready\" : \"audio_failed\";\n      await this.close();\n      throw error;\n    }\n  }\n\n  /**\n   * Disconnect audio only (close WebRTC peer) but keep gRPC session alive.\n   * This is a transport-layer operation — the session is unaffected.\n   */\n  async disconnectAudioOnly(): Promise<void> {\n    this.peer.close();\n    await this.audio.disconnectAudio();\n    this.mediaTransportState = \"text_ready\";\n    // Don't fire \"disconnected\" — the gRPC session is still alive.\n    // This is a transport-layer change only (audio → text).\n  }\n\n  /**\n   * Reconnect audio — setup local media (microphone).\n   * The caller is responsible for sending ConversationConfiguration to the server.\n   *\n   * This is a transport-layer operation: it only adds the audio transport\n   * to an existing session. It does NOT create a new session.\n   */\n  async reconnectAudio(): Promise<void> {\n    if (!this.signaling.isConnected) {\n      throw new Error(\"Cannot reconnect audio: gRPC stream not connected\");\n    }\n\n    try {\n      this.mediaTransportState = \"audio_capturing\";\n      await this.audio.setupLocalMedia();\n      // Don't fire \"connecting\" — the session is already connected.\n      // Audio reconnect is a transport-layer change, not a session-level one.\n    } catch (error) {\n      console.error(\"[WebRTCTransport] failed to reconnect audio\", error);\n      this.mediaTransportState = \"audio_failed\";\n      this.callbacks.onConnectionStateChange?.(\"failed\");\n      this.callbacks.onError?.(error as Error);\n      throw error;\n    }\n  }\n\n  async close(): Promise<void> {\n    const wasConnected = this.peer.isConnected || this.signaling.isConnected;\n\n    try {\n      this.signaling.close();\n      this.peer.close();\n      await this.audio.close();\n      this.mediaTransportState = \"text_ready\";\n    } catch (error) {\n      console.error(\"[WebRTCTransport] error during close\", error);\n    }\n\n    if (wasConnected) {\n      this.callbacks.onConnectionStateChange?.(\"closed\");\n      this.callbacks.onDisconnected?.();\n    }\n  }\n\n  // ---------------------------------------------------------------------------\n  // Messaging (delegated to signaling manager)\n  // ---------------------------------------------------------------------------\n\n  sendConversationInitialization(): void { this.signaling.sendConversationInitialization(); }\n  sendConversationConfiguration(): void { this.signaling.sendConversationConfiguration(); }\n  sendText(text: string): void { this.signaling.sendText(text); }\n  sendToolCallResult(id: string, toolId: string, name: string, action: 0 | 1 | 2, result: Record<string, string>): void {\n    this.signaling.sendToolCallResult(id, toolId, name, action, result);\n  }\n\n  // ---------------------------------------------------------------------------\n  // Audio controls (delegated to audio & peer managers)\n  // ---------------------------------------------------------------------------\n\n  interruptAudio(): void { this.audio.interruptPlayback(); }\n  resumeAudio(): Promise<void> { return this.audio.resumeAudio(); }\n\n  setMuted(muted: boolean): void {\n    this.audio.setMuted(muted);\n    this.peer.setAudioEnabled(!muted);\n  }\n  getMuted(): boolean { return this.audio.getMuted(); }\n\n  setVolume(volume: number): void { this.audio.setVolume(volume); }\n  getVolume(): number { return this.audio.getVolume(); }\n\n  async setInputDevice(deviceId: string): Promise<void> {\n    await this.audio.setInputDevice(deviceId);\n    const newTrack = this.audio.getLocalAudioTrack();\n    if (newTrack) await this.peer.replaceTrack(newTrack);\n  }\n\n  async setOutputDevice(deviceId: string): Promise<void> {\n    await this.audio.setOutputDevice(deviceId);\n  }\n\n  // ---------------------------------------------------------------------------\n  // Read-only accessors\n  // ---------------------------------------------------------------------------\n\n  get inputAnalyserNode(): AnalyserNode | null { return this.audio.inputAnalyserNode; }\n  get outputAnalyserNode(): AnalyserNode | null { return this.audio.outputAnalyserNode; }\n  get mediaStream(): MediaStream | null { return this.audio.mediaStream; }\n  get remoteMediaStream(): MediaStream | null { return this.audio.remoteMediaStream; }\n  get context(): AudioContext | null { return this.audio.context; }\n  get connected(): boolean { return this.peer.isConnected; }\n  get isGrpcConnected(): boolean { return this.signaling.isConnected; }\n  get isAudioConnected(): boolean { return this.peer.connection?.connectionState === \"connected\"; }\n}\n\n/**\n * Check if the browser supports WebRTC with gRPC signaling\n */\nexport function supportsWebRTCGrpcTransport(): boolean {\n  return (\n    typeof RTCPeerConnection !== \"undefined\" &&\n    typeof navigator.mediaDevices?.getUserMedia === \"function\"\n  );\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nexport function isIosDevice(): boolean {\n  if (typeof navigator === \"undefined\") return false;\n  return (\n    /iPad|iPhone|iPod/.test(navigator.userAgent) ||\n    /iPad|iPhone|iPod/.test(navigator.platform) ||\n    // iPad on iOS 13+ reports as \"MacIntel\" with touch support\n    (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1) ||\n    (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\n  );\n}\n\nexport function isAndroidDevice(): boolean {\n  if (typeof navigator === \"undefined\") return false;\n  return /Android/i.test(navigator.userAgent);\n}\n\nexport function isWindowsDevice() {\n  if (typeof navigator === \"undefined\") return false;\n  return /win(dows|32|64|nt)/i.test(navigator.userAgent) ||\n    navigator.platform?.toLowerCase().includes(\"win\");\n}\n\n/**\n * Check if the current browser/OS combination has known audio issues.\n * This can be used to provide appropriate warnings or fallbacks.\n */\nexport function hasKnownAudioIssues(): { hasIssues: boolean; issues: string[] } {\n  const issues: string[] = [];\n\n  if (isWindowsDevice()) {\n    // Check for Firefox on Windows (limited setSinkId support)\n    if (/firefox/i.test(navigator.userAgent)) {\n      issues.push(\"Firefox on Windows has limited audio output device selection support\");\n    }\n\n    // Check for older Edge (EdgeHTML, not Chromium)\n    if (/edge\\//i.test(navigator.userAgent) && !/edg\\//i.test(navigator.userAgent)) {\n      issues.push(\"Legacy Edge has limited WebRTC audio support\");\n    }\n  }\n\n  return {\n    hasIssues: issues.length > 0,\n    issues,\n  };\n}\n\n/**\n * Get recommended audio settings for the current platform.\n */\nexport function getRecommendedAudioSettings(): {\n  sampleRate: number;\n  channelCount: number;\n  echoCancellation: boolean;\n  noiseSuppression: boolean;\n  autoGainControl: boolean;\n} {\n  const settings = {\n    sampleRate: 48000,\n    channelCount: 1,\n    echoCancellation: true,\n    noiseSuppression: true,\n    autoGainControl: true,\n  };\n\n  // Windows-specific adjustments\n  if (isWindowsDevice()) {\n    // Some Windows audio drivers work better with 44100Hz\n    if (/firefox/i.test(navigator.userAgent)) {\n      settings.sampleRate = 44100;\n    }\n  }\n\n  return settings;\n}\n","/*\n *  Copyright (c) 2024. Rapida\n *\n *  Permission is hereby granted, free of charge, to any person obtaining a copy\n *  of this software and associated documentation files (the \"Software\"), to deal\n *  in the Software without restriction, including without limitation the rights\n *  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *  copies of the Software, and to permit persons to whom the Software is\n *  furnished to do so, subject to the following conditions:\n *\n *  The above copyright notice and this permission notice shall be included in\n *  all copies or substantial portions of the Software.\n *\n *  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n *  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n *  THE SOFTWARE.\n *\n *  Author: Prashant <prashant@rapida.ai>\n *\n */\nimport { VoiceAgent } from \"@/rapida/agents/voice-agent\";\nimport { useSelectInputDeviceAgent } from \"@/rapida/hooks/use-select-input-device-agent\";\nimport { cn } from \"@/rapida/styles\";\nimport { FC, HTMLAttributes, useEffect, useState } from \"react\";\n\ninterface DeviceSelectorComponentProps extends HTMLAttributes<HTMLDivElement> {\n  voiceAgent: VoiceAgent;\n}\n/**\n *\n * @returns\n */\nexport const DeviceSelectorComponent: FC<DeviceSelectorComponentProps> = ({\n  voiceAgent,\n  className,\n}) => {\n  const [showMenu, setShowMenu] = useState(false);\n  const deviceSelect = useSelectInputDeviceAgent({ voiceAgent });\n  const [selectedDeviceName, setSelectedDeviceName] = useState(\n    voiceAgent.inputMediaDevice || \"\"\n  );\n\n  useEffect(() => {\n    deviceSelect.devices.forEach((device) => {\n      if (device.deviceId === deviceSelect.activeDeviceId) {\n        setSelectedDeviceName(device.label);\n      }\n    });\n  }, [deviceSelect.activeDeviceId, deviceSelect.devices, selectedDeviceName]);\n\n  useEffect(() => {\n    const handleClickOutside = (_: MouseEvent) => {\n      if (showMenu) {\n        setShowMenu(false);\n      }\n    };\n    document.addEventListener(\"click\", handleClickOutside);\n    return () => {\n      document.removeEventListener(\"click\", handleClickOutside);\n    };\n  }, [showMenu]);\n\n  const activeClassName = showMenu ? \"rotate-180\" : \"rotate-0\";\n  return (\n    <div className={cn(className, \"relative\")}>\n      <button\n        className={`flex hover:opacity-50 ${activeClassName} transition-all duration-100`}\n        onClick={(e) => {\n          setShowMenu(!showMenu);\n          e.stopPropagation();\n        }}\n      >\n        <svg\n          xmlns=\"http://www.w3.org/2000/svg\"\n          width=\"16\"\n          height=\"16\"\n          viewBox=\"0 0 16 16\"\n          fill=\"none\"\n        >\n          <path\n            d=\"M13.3334 6L8.00003 11.3333L2.66669 6\"\n            stroke=\"currentColor\"\n            strokeWidth=\"2\"\n          />\n        </svg>\n      </button>\n      <div\n        className=\"absolute left-0 bottom-7 text-left rounded-md border z-10 w-[280px] shadow-lg\"\n        style={{\n          display: showMenu ? \"block\" : \"none\",\n        }}\n      >\n        {deviceSelect.devices.map((device, index) => {\n          return (\n            <div\n              onClick={(e) => {\n                e.stopPropagation();\n                deviceSelect.setActiveMediaDevice(device.deviceId);\n                setShowMenu(false);\n              }}\n              className={cn(\n                voiceAgent.inputMediaDevice === deviceSelect.activeDeviceId &&\n                  \"!text-blue-800\",\n                \"text-gray-900\",\n                \"text-xl\",\n                \"bg-white text-xs py-2 px-2 cursor-pointer hover:bg-gray-200 hover:text-gray-600 rounded-md\"\n              )}\n              key={index}\n            >\n              {device.label}\n            </div>\n          );\n        })}\n      </div>\n    </div>\n  );\n};\n"],"mappings":"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","names":["reader","reader","reader","React","startWith","isIOS","import_webrtc_pb","AgentEvent","MessageRole","MessageStatus","Channel","ConnectionState","import_common_pb","import_common_pb","Feedback","import_assistant_api_pb","import_common_pb","import_common_pb","selectors","import_talk_api_pb","import_talk_api_pb","import_webrtc_pb","ProtoICECandidate","answer","import_talk_api_pb","ConversationUserMessage","CUMessage","CAMessage","import_webrtc_pb","ConversationUserMessage","ConversationUserMessage","useEffect","useState"]}