librechat-data-provider 0.2.5 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../src/schemas.ts","../src/types/assistants.ts","../src/keys.ts","../src/headers-helpers.ts","../src/api-endpoints.ts","../src/request.ts","../src/data-service.ts","../src/sse.js","../src/createPayload.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport enum EModelEndpoint {\n azureOpenAI = 'azureOpenAI',\n openAI = 'openAI',\n bingAI = 'bingAI',\n chatGPTBrowser = 'chatGPTBrowser',\n google = 'google',\n gptPlugins = 'gptPlugins',\n anthropic = 'anthropic',\n assistant = 'assistant',\n}\n\nexport const defaultEndpoints: EModelEndpoint[] = [\n EModelEndpoint.openAI,\n EModelEndpoint.assistant,\n EModelEndpoint.azureOpenAI,\n EModelEndpoint.bingAI,\n EModelEndpoint.chatGPTBrowser,\n EModelEndpoint.gptPlugins,\n EModelEndpoint.google,\n EModelEndpoint.anthropic,\n];\n\nexport const alternateName = {\n [EModelEndpoint.openAI]: 'OpenAI',\n [EModelEndpoint.assistant]: 'Assistants',\n [EModelEndpoint.azureOpenAI]: 'Azure OpenAI',\n [EModelEndpoint.bingAI]: 'Bing',\n [EModelEndpoint.chatGPTBrowser]: 'ChatGPT',\n [EModelEndpoint.gptPlugins]: 'Plugins',\n [EModelEndpoint.google]: 'Google',\n [EModelEndpoint.anthropic]: 'Anthropic',\n};\n\nexport const endpointSettings = {\n [EModelEndpoint.google]: {\n model: {\n default: 'chat-bison',\n },\n maxOutputTokens: {\n min: 1,\n max: 2048,\n step: 1,\n default: 1024,\n },\n temperature: {\n min: 0,\n max: 1,\n step: 0.01,\n default: 0.2,\n },\n topP: {\n min: 0,\n max: 1,\n step: 0.01,\n default: 0.8,\n },\n topK: {\n min: 1,\n max: 40,\n step: 0.01,\n default: 40,\n },\n },\n};\n\nconst google = endpointSettings[EModelEndpoint.google];\n\nexport const EndpointURLs: { [key in EModelEndpoint]: string } = {\n [EModelEndpoint.azureOpenAI]: '/api/ask/azureOpenAI',\n [EModelEndpoint.openAI]: '/api/ask/openAI',\n [EModelEndpoint.bingAI]: '/api/ask/bingAI',\n [EModelEndpoint.chatGPTBrowser]: '/api/ask/chatGPTBrowser',\n [EModelEndpoint.google]: '/api/ask/google',\n [EModelEndpoint.gptPlugins]: '/api/ask/gptPlugins',\n [EModelEndpoint.anthropic]: '/api/ask/anthropic',\n [EModelEndpoint.assistant]: '/api/assistants/chat',\n};\n\nexport const modularEndpoints = new Set<EModelEndpoint | string>([\n EModelEndpoint.gptPlugins,\n EModelEndpoint.anthropic,\n EModelEndpoint.google,\n EModelEndpoint.openAI,\n]);\n\nexport const supportsFiles = {\n [EModelEndpoint.openAI]: true,\n [EModelEndpoint.assistant]: true,\n};\n\nexport const openAIModels = [\n 'gpt-3.5-turbo-16k-0613',\n 'gpt-3.5-turbo-16k',\n 'gpt-4-1106-preview',\n 'gpt-3.5-turbo',\n 'gpt-3.5-turbo-1106',\n 'gpt-4-vision-preview',\n 'gpt-4',\n 'gpt-3.5-turbo-instruct-0914',\n 'gpt-3.5-turbo-0613',\n 'gpt-3.5-turbo-0301',\n 'gpt-3.5-turbo-instruct',\n 'gpt-4-0613',\n 'text-davinci-003',\n 'gpt-4-0314',\n];\n\nexport const visionModels = ['gpt-4-vision', 'llava-13b'];\n\nexport const eModelEndpointSchema = z.nativeEnum(EModelEndpoint);\n\nexport const tPluginAuthConfigSchema = z.object({\n authField: z.string(),\n label: z.string(),\n description: z.string(),\n});\n\nexport type TPluginAuthConfig = z.infer<typeof tPluginAuthConfigSchema>;\n\nexport const tPluginSchema = z.object({\n name: z.string(),\n pluginKey: z.string(),\n description: z.string(),\n icon: z.string(),\n authConfig: z.array(tPluginAuthConfigSchema),\n authenticated: z.boolean().optional(),\n isButton: z.boolean().optional(),\n});\n\nexport type TPlugin = z.infer<typeof tPluginSchema>;\n\nexport type TInput = {\n inputStr: string;\n};\n\nexport type TResPlugin = {\n plugin: string;\n input: string;\n thought: string;\n loading?: boolean;\n outputs?: string;\n latest?: string;\n inputs?: TInput[];\n};\n\nexport const tExampleSchema = z.object({\n input: z.object({\n content: z.string(),\n }),\n output: z.object({\n content: z.string(),\n }),\n});\n\nexport type TExample = z.infer<typeof tExampleSchema>;\n\nexport const tAgentOptionsSchema = z.object({\n agent: z.string(),\n skipCompletion: z.boolean(),\n model: z.string(),\n temperature: z.number(),\n});\n\nexport const tMessageSchema = z.object({\n messageId: z.string(),\n clientId: z.string().nullable().optional(),\n conversationId: z.string().nullable(),\n parentMessageId: z.string().nullable(),\n responseMessageId: z.string().nullable().optional(),\n overrideParentMessageId: z.string().nullable().optional(),\n bg: z.string().nullable().optional(),\n model: z.string().nullable().optional(),\n title: z.string().nullable().or(z.literal('New Chat')).default('New Chat'),\n sender: z.string(),\n text: z.string(),\n generation: z.string().nullable().optional(),\n isEdited: z.boolean().optional(),\n isCreatedByUser: z.boolean(),\n error: z.boolean(),\n createdAt: z\n .string()\n .optional()\n .default(() => new Date().toISOString()),\n updatedAt: z\n .string()\n .optional()\n .default(() => new Date().toISOString()),\n current: z.boolean().optional(),\n unfinished: z.boolean().optional(),\n submitting: z.boolean().optional(),\n searchResult: z.boolean().optional(),\n finish_reason: z.string().optional(),\n});\n\nexport type TMessage = z.input<typeof tMessageSchema> & {\n children?: TMessage[];\n plugin?: TResPlugin | null;\n plugins?: TResPlugin[];\n files?: {\n type: string;\n file_id: string;\n filename?: string;\n preview?: string;\n filepath?: string;\n height?: number;\n width?: number;\n }[];\n};\n\nexport const tConversationSchema = z.object({\n conversationId: z.string().nullable(),\n title: z.string().nullable().or(z.literal('New Chat')).default('New Chat'),\n user: z.string().optional(),\n endpoint: eModelEndpointSchema.nullable(),\n suggestions: z.array(z.string()).optional(),\n messages: z.array(z.string()).optional(),\n tools: z.array(tPluginSchema).optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n systemMessage: z.string().nullable().optional(),\n modelLabel: z.string().nullable().optional(),\n examples: z.array(tExampleSchema).optional(),\n chatGptLabel: z.string().nullable().optional(),\n userLabel: z.string().optional(),\n model: z.string().nullable().optional(),\n promptPrefix: z.string().nullable().optional(),\n temperature: z.number().optional(),\n topP: z.number().optional(),\n topK: z.number().optional(),\n context: z.string().nullable().optional(),\n top_p: z.number().optional(),\n frequency_penalty: z.number().optional(),\n presence_penalty: z.number().optional(),\n jailbreak: z.boolean().optional(),\n jailbreakConversationId: z.string().nullable().optional(),\n conversationSignature: z.string().nullable().optional(),\n parentMessageId: z.string().optional(),\n clientId: z.string().nullable().optional(),\n invocationId: z.number().nullable().optional(),\n toneStyle: z.string().nullable().optional(),\n maxOutputTokens: z.number().optional(),\n agentOptions: tAgentOptionsSchema.nullable().optional(),\n /* assistant */\n assistant_id: z.string().optional(),\n thread_id: z.string().optional(),\n});\n\nexport type TConversation = z.infer<typeof tConversationSchema>;\n\nexport const tPresetSchema = tConversationSchema\n .omit({\n conversationId: true,\n createdAt: true,\n updatedAt: true,\n title: true,\n })\n .merge(\n z.object({\n conversationId: z.string().optional(),\n presetId: z.string().nullable().optional(),\n title: z.string().nullable().optional(),\n defaultPreset: z.boolean().optional(),\n order: z.number().optional(),\n }),\n );\n\nexport type TPreset = z.infer<typeof tPresetSchema>;\n\nexport const openAISchema = tConversationSchema\n .pick({\n model: true,\n chatGptLabel: true,\n promptPrefix: true,\n temperature: true,\n top_p: true,\n presence_penalty: true,\n frequency_penalty: true,\n })\n .transform((obj) => ({\n ...obj,\n model: obj.model ?? 'gpt-3.5-turbo',\n chatGptLabel: obj.chatGptLabel ?? null,\n promptPrefix: obj.promptPrefix ?? null,\n temperature: obj.temperature ?? 1,\n top_p: obj.top_p ?? 1,\n presence_penalty: obj.presence_penalty ?? 0,\n frequency_penalty: obj.frequency_penalty ?? 0,\n }))\n .catch(() => ({\n model: 'gpt-3.5-turbo',\n chatGptLabel: null,\n promptPrefix: null,\n temperature: 1,\n top_p: 1,\n presence_penalty: 0,\n frequency_penalty: 0,\n }));\n\nexport const googleSchema = tConversationSchema\n .pick({\n model: true,\n modelLabel: true,\n promptPrefix: true,\n examples: true,\n temperature: true,\n maxOutputTokens: true,\n topP: true,\n topK: true,\n })\n .transform((obj) => ({\n ...obj,\n model: obj.model ?? google.model.default,\n modelLabel: obj.modelLabel ?? null,\n promptPrefix: obj.promptPrefix ?? null,\n examples: obj.examples ?? [{ input: { content: '' }, output: { content: '' } }],\n temperature: obj.temperature ?? google.temperature.default,\n maxOutputTokens: obj.maxOutputTokens ?? google.maxOutputTokens.default,\n topP: obj.topP ?? google.topP.default,\n topK: obj.topK ?? google.topK.default,\n }))\n .catch(() => ({\n model: google.model.default,\n modelLabel: null,\n promptPrefix: null,\n examples: [{ input: { content: '' }, output: { content: '' } }],\n temperature: google.temperature.default,\n maxOutputTokens: google.maxOutputTokens.default,\n topP: google.topP.default,\n topK: google.topK.default,\n }));\n\nexport const bingAISchema = tConversationSchema\n .pick({\n jailbreak: true,\n systemMessage: true,\n context: true,\n toneStyle: true,\n jailbreakConversationId: true,\n conversationSignature: true,\n clientId: true,\n invocationId: true,\n })\n .transform((obj) => ({\n ...obj,\n model: '',\n jailbreak: obj.jailbreak ?? false,\n systemMessage: obj.systemMessage ?? null,\n context: obj.context ?? null,\n toneStyle: obj.toneStyle ?? 'creative',\n jailbreakConversationId: obj.jailbreakConversationId ?? null,\n conversationSignature: obj.conversationSignature ?? null,\n clientId: obj.clientId ?? null,\n invocationId: obj.invocationId ?? 1,\n }))\n .catch(() => ({\n model: '',\n jailbreak: false,\n systemMessage: null,\n context: null,\n toneStyle: 'creative',\n jailbreakConversationId: null,\n conversationSignature: null,\n clientId: null,\n invocationId: 1,\n }));\n\nexport const anthropicSchema = tConversationSchema\n .pick({\n model: true,\n modelLabel: true,\n promptPrefix: true,\n temperature: true,\n maxOutputTokens: true,\n topP: true,\n topK: true,\n })\n .transform((obj) => ({\n ...obj,\n model: obj.model ?? 'claude-1',\n modelLabel: obj.modelLabel ?? null,\n promptPrefix: obj.promptPrefix ?? null,\n temperature: obj.temperature ?? 1,\n maxOutputTokens: obj.maxOutputTokens ?? 4000,\n topP: obj.topP ?? 0.7,\n topK: obj.topK ?? 5,\n }))\n .catch(() => ({\n model: 'claude-1',\n modelLabel: null,\n promptPrefix: null,\n temperature: 1,\n maxOutputTokens: 4000,\n topP: 0.7,\n topK: 5,\n }));\n\nexport const chatGPTBrowserSchema = tConversationSchema\n .pick({\n model: true,\n })\n .transform((obj) => ({\n ...obj,\n model: obj.model ?? 'text-davinci-002-render-sha',\n }))\n .catch(() => ({\n model: 'text-davinci-002-render-sha',\n }));\n\nexport const gptPluginsSchema = tConversationSchema\n .pick({\n model: true,\n chatGptLabel: true,\n promptPrefix: true,\n temperature: true,\n top_p: true,\n presence_penalty: true,\n frequency_penalty: true,\n tools: true,\n agentOptions: true,\n })\n .transform((obj) => ({\n ...obj,\n model: obj.model ?? 'gpt-3.5-turbo',\n chatGptLabel: obj.chatGptLabel ?? null,\n promptPrefix: obj.promptPrefix ?? null,\n temperature: obj.temperature ?? 0.8,\n top_p: obj.top_p ?? 1,\n presence_penalty: obj.presence_penalty ?? 0,\n frequency_penalty: obj.frequency_penalty ?? 0,\n tools: obj.tools ?? [],\n agentOptions: obj.agentOptions ?? {\n agent: 'functions',\n skipCompletion: true,\n model: 'gpt-3.5-turbo',\n temperature: 0,\n },\n }))\n .catch(() => ({\n model: 'gpt-3.5-turbo',\n chatGptLabel: null,\n promptPrefix: null,\n temperature: 0.8,\n top_p: 1,\n presence_penalty: 0,\n frequency_penalty: 0,\n tools: [],\n agentOptions: {\n agent: 'functions',\n skipCompletion: true,\n model: 'gpt-3.5-turbo',\n temperature: 0,\n },\n }));\n\nexport function removeNullishValues<T extends object>(obj: T): T {\n const newObj: Partial<T> = { ...obj };\n\n (Object.keys(newObj) as Array<keyof T>).forEach((key) => {\n if (newObj[key] === undefined || newObj[key] === null || newObj[key] === '') {\n delete newObj[key];\n }\n });\n\n return newObj as T;\n}\n\nexport const assistantSchema = tConversationSchema\n .pick({\n model: true,\n assistant_id: true,\n thread_id: true,\n })\n .transform(removeNullishValues)\n .catch(() => ({}));\n\ntype EndpointSchema =\n | typeof openAISchema\n | typeof googleSchema\n | typeof bingAISchema\n | typeof anthropicSchema\n | typeof chatGPTBrowserSchema\n | typeof gptPluginsSchema\n | typeof assistantSchema;\n\nconst endpointSchemas: Record<EModelEndpoint, EndpointSchema> = {\n [EModelEndpoint.openAI]: openAISchema,\n [EModelEndpoint.azureOpenAI]: openAISchema,\n [EModelEndpoint.google]: googleSchema,\n [EModelEndpoint.bingAI]: bingAISchema,\n [EModelEndpoint.anthropic]: anthropicSchema,\n [EModelEndpoint.chatGPTBrowser]: chatGPTBrowserSchema,\n [EModelEndpoint.gptPlugins]: gptPluginsSchema,\n [EModelEndpoint.assistant]: assistantSchema,\n};\n\nexport function getFirstDefinedValue(possibleValues: string[]) {\n let returnValue;\n for (const value of possibleValues) {\n if (value) {\n returnValue = value;\n break;\n }\n }\n return returnValue;\n}\n\nexport type TPossibleValues = {\n models: string[];\n secondaryModels?: string[];\n};\n\nexport const parseConvo = (\n endpoint: EModelEndpoint,\n conversation: Partial<TConversation | TPreset>,\n possibleValues?: TPossibleValues,\n) => {\n const schema = endpointSchemas[endpoint];\n\n if (!schema) {\n throw new Error(`Unknown endpoint: ${endpoint}`);\n }\n\n const convo = schema.parse(conversation) as TConversation;\n const { models, secondaryModels } = possibleValues ?? {};\n\n if (models && convo) {\n convo.model = getFirstDefinedValue(models) ?? convo.model;\n }\n\n if (secondaryModels && convo.agentOptions) {\n convo.agentOptions.model = getFirstDefinedValue(secondaryModels) ?? convo.agentOptions.model;\n }\n\n return convo;\n};\n\nexport type TEndpointOption = {\n endpoint: EModelEndpoint;\n model?: string | null;\n promptPrefix?: string;\n temperature?: number;\n chatGptLabel?: string | null;\n modelLabel?: string | null;\n jailbreak?: boolean;\n key?: string | null;\n};\n\nexport const getResponseSender = (endpointOption: TEndpointOption): string => {\n const { model, endpoint, chatGptLabel, modelLabel, jailbreak } = endpointOption;\n\n if (\n [\n EModelEndpoint.openAI,\n EModelEndpoint.azureOpenAI,\n EModelEndpoint.gptPlugins,\n EModelEndpoint.chatGPTBrowser,\n ].includes(endpoint)\n ) {\n if (chatGptLabel) {\n return chatGptLabel;\n } else if (model && model.includes('gpt-3')) {\n return 'GPT-3.5';\n } else if (model && model.includes('gpt-4')) {\n return 'GPT-4';\n }\n return alternateName[endpoint] ?? 'ChatGPT';\n }\n\n if (endpoint === EModelEndpoint.bingAI) {\n return jailbreak ? 'Sydney' : 'BingAI';\n }\n\n if (endpoint === EModelEndpoint.anthropic) {\n return modelLabel ?? 'Claude';\n }\n\n if (endpoint === EModelEndpoint.google) {\n if (modelLabel) {\n return modelLabel;\n } else if (model && model.includes('code')) {\n return 'Codey';\n }\n\n return 'PaLM2';\n }\n\n return '';\n};\n\nexport const compactOpenAISchema = tConversationSchema\n .pick({\n model: true,\n chatGptLabel: true,\n promptPrefix: true,\n temperature: true,\n top_p: true,\n presence_penalty: true,\n frequency_penalty: true,\n })\n .transform((obj: Partial<TConversation>) => {\n const newObj: Partial<TConversation> = { ...obj };\n if (newObj.model === 'gpt-3.5-turbo') {\n delete newObj.model;\n }\n if (newObj.temperature === 1) {\n delete newObj.temperature;\n }\n if (newObj.top_p === 1) {\n delete newObj.top_p;\n }\n if (newObj.presence_penalty === 0) {\n delete newObj.presence_penalty;\n }\n if (newObj.frequency_penalty === 0) {\n delete newObj.frequency_penalty;\n }\n\n return removeNullishValues(newObj);\n })\n .catch(() => ({}));\n\nexport const compactGoogleSchema = tConversationSchema\n .pick({\n model: true,\n modelLabel: true,\n promptPrefix: true,\n examples: true,\n temperature: true,\n maxOutputTokens: true,\n topP: true,\n topK: true,\n })\n .transform((obj) => {\n const newObj: Partial<TConversation> = { ...obj };\n if (newObj.model === google.model.default) {\n delete newObj.model;\n }\n if (newObj.temperature === google.temperature.default) {\n delete newObj.temperature;\n }\n if (newObj.maxOutputTokens === google.maxOutputTokens.default) {\n delete newObj.maxOutputTokens;\n }\n if (newObj.topP === google.topP.default) {\n delete newObj.topP;\n }\n if (newObj.topK === google.topK.default) {\n delete newObj.topK;\n }\n\n return removeNullishValues(newObj);\n })\n .catch(() => ({}));\n\nexport const compactAnthropicSchema = tConversationSchema\n .pick({\n model: true,\n modelLabel: true,\n promptPrefix: true,\n temperature: true,\n maxOutputTokens: true,\n topP: true,\n topK: true,\n })\n .transform((obj) => {\n const newObj: Partial<TConversation> = { ...obj };\n if (newObj.model === 'claude-1') {\n delete newObj.model;\n }\n if (newObj.temperature === 1) {\n delete newObj.temperature;\n }\n if (newObj.maxOutputTokens === 4000) {\n delete newObj.maxOutputTokens;\n }\n if (newObj.topP === 0.7) {\n delete newObj.topP;\n }\n if (newObj.topK === 5) {\n delete newObj.topK;\n }\n\n return removeNullishValues(newObj);\n })\n .catch(() => ({}));\n\nexport const compactChatGPTSchema = tConversationSchema\n .pick({\n model: true,\n })\n .transform((obj) => {\n const newObj: Partial<TConversation> = { ...obj };\n // model: obj.model ?? 'text-davinci-002-render-sha',\n if (newObj.model === 'text-davinci-002-render-sha') {\n delete newObj.model;\n }\n\n return removeNullishValues(newObj);\n })\n .catch(() => ({}));\n\nexport const compactPluginsSchema = tConversationSchema\n .pick({\n model: true,\n chatGptLabel: true,\n promptPrefix: true,\n temperature: true,\n top_p: true,\n presence_penalty: true,\n frequency_penalty: true,\n tools: true,\n agentOptions: true,\n })\n .transform((obj) => {\n const newObj: Partial<TConversation> = { ...obj };\n if (newObj.model === 'gpt-3.5-turbo') {\n delete newObj.model;\n }\n if (newObj.chatGptLabel === null) {\n delete newObj.chatGptLabel;\n }\n if (newObj.promptPrefix === null) {\n delete newObj.promptPrefix;\n }\n if (newObj.temperature === 0.8) {\n delete newObj.temperature;\n }\n if (newObj.top_p === 1) {\n delete newObj.top_p;\n }\n if (newObj.presence_penalty === 0) {\n delete newObj.presence_penalty;\n }\n if (newObj.frequency_penalty === 0) {\n delete newObj.frequency_penalty;\n }\n if (newObj.tools?.length === 0) {\n delete newObj.tools;\n }\n\n if (\n newObj.agentOptions &&\n newObj.agentOptions.agent === 'functions' &&\n newObj.agentOptions.skipCompletion === true &&\n newObj.agentOptions.model === 'gpt-3.5-turbo' &&\n newObj.agentOptions.temperature === 0\n ) {\n delete newObj.agentOptions;\n }\n\n return removeNullishValues(newObj);\n })\n .catch(() => ({}));\n\ntype CompactEndpointSchema =\n | typeof compactOpenAISchema\n | typeof assistantSchema\n | typeof compactGoogleSchema\n | typeof bingAISchema\n | typeof compactAnthropicSchema\n | typeof compactChatGPTSchema\n | typeof compactPluginsSchema;\n\nconst compactEndpointSchemas: Record<string, CompactEndpointSchema> = {\n openAI: compactOpenAISchema,\n azureOpenAI: compactOpenAISchema,\n assistant: assistantSchema,\n google: compactGoogleSchema,\n /* BingAI needs all fields */\n bingAI: bingAISchema,\n anthropic: compactAnthropicSchema,\n chatGPTBrowser: compactChatGPTSchema,\n gptPlugins: compactPluginsSchema,\n};\n\nexport const parseCompactConvo = (\n endpoint: EModelEndpoint | undefined,\n conversation: Partial<TConversation | TPreset>,\n possibleValues?: TPossibleValues,\n) => {\n if (!endpoint) {\n throw new Error(`undefined endpoint: ${endpoint}`);\n }\n\n const schema = compactEndpointSchemas[endpoint];\n\n if (!schema) {\n throw new Error(`Unknown endpoint: ${endpoint}`);\n }\n\n const convo = schema.parse(conversation) as TConversation;\n // const { models, secondaryModels } = possibleValues ?? {};\n const { models } = possibleValues ?? {};\n\n if (models && convo) {\n convo.model = getFirstDefinedValue(models) ?? convo.model;\n }\n\n // if (secondaryModels && convo.agentOptions) {\n // convo.agentOptionmodel = getFirstDefinedValue(secondaryModels) ?? convo.agentOptionmodel;\n // }\n\n return convo;\n};\n","export type Metadata = {\n [key: string]: unknown;\n};\n\nexport enum Tools {\n code_interpreter = 'code_interpreter',\n retrieval = 'retrieval',\n function = 'function',\n}\n\nexport type Tool = {\n [type: string]: Tools;\n};\n\nexport type Assistant = {\n id: string;\n created_at: number;\n description: string | null;\n file_ids: string[];\n instructions: string | null;\n metadata: Metadata | null;\n model: string;\n name: string | null;\n object: string;\n tools: Tool[];\n};\n\nexport type AssistantCreateParams = {\n model: string;\n description?: string | null;\n file_ids?: string[];\n instructions?: string | null;\n metadata?: Metadata | null;\n name?: string | null;\n tools?: Tool[];\n};\n\nexport type AssistantUpdateParams = {\n model?: string;\n description?: string | null;\n file_ids?: string[];\n instructions?: string | null;\n metadata?: Metadata | null;\n name?: string | null;\n tools?: Tool[];\n};\n\nexport type AssistantListParams = {\n limit?: number;\n before?: string | null;\n after?: string | null;\n order?: 'asc' | 'desc';\n};\n\nexport type AssistantListResponse = {\n object: string;\n data: Assistant[];\n first_id: string;\n last_id: string;\n has_more: boolean;\n};\n\nexport type File = {\n file_id: string;\n id?: string;\n temp_file_id?: string;\n bytes: number;\n created_at: number;\n filename: string;\n object: string;\n purpose: 'fine-tune' | 'fine-tune-results' | 'assistants' | 'assistants_output';\n};\n","export enum QueryKeys {\n messages = 'messages',\n allConversations = 'allConversations',\n conversation = 'conversation',\n searchEnabled = 'searchEnabled',\n user = 'user',\n name = 'name', // user key name\n models = 'models',\n balance = 'balance',\n endpoints = 'endpoints',\n presets = 'presets',\n searchResults = 'searchResults',\n tokenCount = 'tokenCount',\n availablePlugins = 'availablePlugins',\n startupConfig = 'startupConfig',\n assistants = 'assistants',\n assistant = 'assistant',\n endpointsConfigOverride = 'endpointsConfigOverride',\n}\n\nexport enum MutationKeys {\n imageUpload = 'imageUpload',\n fileDelete = 'fileDelete',\n updatePreset = 'updatePreset',\n deletePreset = 'deletePreset',\n logoutUser = 'logoutUser',\n}\n","import axios from 'axios';\n\nexport function setAcceptLanguageHeader(value: string): void {\n axios.defaults.headers.common['Accept-Language'] = value;\n}\n\nexport function setTokenHeader(token: string) {\n axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;\n}\n","export const user = () => '/api/user';\n\nexport const balance = () => '/api/balance';\n\nexport const userPlugins = () => '/api/user/plugins';\n\nexport const messages = (conversationId: string, messageId?: string) =>\n `/api/messages/${conversationId}${messageId ? `/${messageId}` : ''}`;\n\nconst keysEndpoint = '/api/keys';\n\nexport const keys = () => keysEndpoint;\n\nexport const userKeyQuery = (name: string) => `${keysEndpoint}?name=${name}`;\n\nexport const revokeUserKey = (name: string) => `${keysEndpoint}/${name}`;\n\nexport const revokeAllUserKeys = () => `${keysEndpoint}?all=true`;\n\nexport const abortRequest = (endpoint: string) => `/api/ask/${endpoint}/abort`;\n\nexport const conversations = (pageNumber: string) => `/api/convos?pageNumber=${pageNumber}`;\n\nexport const conversationById = (id: string) => `/api/convos/${id}`;\n\nexport const updateConversation = () => '/api/convos/update';\n\nexport const deleteConversation = () => '/api/convos/clear';\n\nexport const search = (q: string, pageNumber: string) =>\n `/api/search?q=${q}&pageNumber=${pageNumber}`;\n\nexport const searchEnabled = () => '/api/search/enable';\n\nexport const presets = () => '/api/presets';\n\nexport const deletePreset = () => '/api/presets/delete';\n\nexport const aiEndpoints = () => '/api/endpoints';\n\nexport const endpointsConfigOverride = () => '/api/endpoints/config/override';\n\nexport const models = () => '/api/models';\n\nexport const tokenizer = () => '/api/tokenizer';\n\nexport const login = () => '/api/auth/login';\n\nexport const logout = () => '/api/auth/logout';\n\nexport const register = () => '/api/auth/register';\n\nexport const loginFacebook = () => '/api/auth/facebook';\n\nexport const loginGoogle = () => '/api/auth/google';\n\nexport const refreshToken = (retry?: boolean) => `/api/auth/refresh${retry ? '?retry=true' : ''}`;\n\nexport const requestPasswordReset = () => '/api/auth/requestPasswordReset';\n\nexport const resetPassword = () => '/api/auth/resetPassword';\n\nexport const plugins = () => '/api/plugins';\n\nexport const config = () => '/api/config';\n\nexport const assistants = (id?: string) => `/api/assistants${id ? `/${id}` : ''}`;\n\nexport const files = () => '/api/files';\n\nexport const images = () => `${files()}/images`;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport axios, { AxiosRequestConfig, AxiosError } from 'axios';\nimport { setTokenHeader } from './headers-helpers';\nimport * as endpoints from './api-endpoints';\n\nasync function _get<T>(url: string, options?: AxiosRequestConfig): Promise<T> {\n const response = await axios.get(url, { ...options });\n return response.data;\n}\n\nasync function _post(url: string, data?: any) {\n const response = await axios.post(url, JSON.stringify(data), {\n headers: { 'Content-Type': 'application/json' },\n });\n return response.data;\n}\n\nasync function _postMultiPart(url: string, formData: FormData, options?: AxiosRequestConfig) {\n const response = await axios.post(url, formData, {\n ...options,\n headers: { 'Content-Type': 'multipart/form-data' },\n });\n return response.data;\n}\n\nasync function _put(url: string, data?: any) {\n const response = await axios.put(url, JSON.stringify(data), {\n headers: { 'Content-Type': 'application/json' },\n });\n return response.data;\n}\n\nasync function _delete<T>(url: string): Promise<T> {\n const response = await axios.delete(url);\n return response.data;\n}\n\nasync function _deleteWithOptions<T>(url: string, options?: AxiosRequestConfig): Promise<T> {\n const response = await axios.delete(url, { ...options });\n return response.data;\n}\n\nasync function _patch(url: string, data?: any) {\n const response = await axios.patch(url, JSON.stringify(data), {\n headers: { 'Content-Type': 'application/json' },\n });\n return response.data;\n}\n\nlet isRefreshing = false;\nlet failedQueue: { resolve: (value?: any) => void; reject: (reason?: any) => void }[] = [];\n\nconst refreshToken = (retry?: boolean) => _post(endpoints.refreshToken(retry));\n\nconst processQueue = (error: AxiosError | null, token: string | null = null) => {\n failedQueue.forEach((prom) => {\n if (error) {\n prom.reject(error);\n } else {\n prom.resolve(token);\n }\n });\n failedQueue = [];\n};\n\naxios.interceptors.response.use(\n (response) => response,\n async (error) => {\n const originalRequest = error.config;\n\n if (error.response.status === 401 && !originalRequest._retry) {\n originalRequest._retry = true;\n\n if (isRefreshing) {\n try {\n const token = await new Promise((resolve, reject) => {\n failedQueue.push({ resolve, reject });\n });\n originalRequest.headers['Authorization'] = 'Bearer ' + token;\n return await axios(originalRequest);\n } catch (err) {\n return Promise.reject(err);\n }\n }\n\n isRefreshing = true;\n\n try {\n const { token } = await refreshToken(\n // Handle edge case where we get a blank screen if the initial 401 error is from a refresh token request\n originalRequest.url?.includes('api/auth/refresh') ? true : false,\n );\n\n if (token) {\n originalRequest.headers['Authorization'] = 'Bearer ' + token;\n setTokenHeader(token);\n window.dispatchEvent(new CustomEvent('tokenUpdated', { detail: token }));\n processQueue(null, token);\n return await axios(originalRequest);\n } else {\n window.location.href = '/login';\n }\n } catch (err) {\n processQueue(err as AxiosError, null);\n return Promise.reject(err);\n } finally {\n isRefreshing = false;\n }\n }\n\n return Promise.reject(error);\n },\n);\n\nexport default {\n get: _get,\n post: _post,\n postMultiPart: _postMultiPart,\n put: _put,\n delete: _delete,\n deleteWithOptions: _deleteWithOptions,\n patch: _patch,\n refreshToken,\n};\n","import * as f from './types/files';\nimport * as m from './types/mutations';\nimport * as a from './types/assistants';\nimport * as t from './types';\nimport * as s from './schemas';\nimport request from './request';\nimport * as endpoints from './api-endpoints';\n\nexport function getConversations(pageNumber: string): Promise<t.TGetConversationsResponse> {\n return request.get(endpoints.conversations(pageNumber));\n}\n\nexport function abortRequestWithMessage(\n endpoint: string,\n abortKey: string,\n message: string,\n): Promise<void> {\n return request.post(endpoints.abortRequest(endpoint), { arg: { abortKey, message } });\n}\n\nexport function deleteConversation(payload: t.TDeleteConversationRequest) {\n //todo: this should be a DELETE request\n return request.post(endpoints.deleteConversation(), { arg: payload });\n}\n\nexport function clearAllConversations(): Promise<unknown> {\n return request.post(endpoints.deleteConversation(), { arg: {} });\n}\n\nexport function revokeUserKey(name: string): Promise<unknown> {\n return request.delete(endpoints.revokeUserKey(name));\n}\n\nexport function revokeAllUserKeys(): Promise<unknown> {\n return request.delete(endpoints.revokeAllUserKeys());\n}\n\nexport function getMessagesByConvoId(conversationId: string): Promise<s.TMessage[]> {\n if (conversationId === 'new') {\n return Promise.resolve([]);\n }\n return request.get(endpoints.messages(conversationId));\n}\n\nexport function getConversationById(id: string): Promise<s.TConversation> {\n return request.get(endpoints.conversationById(id));\n}\n\nexport function updateConversation(\n payload: t.TUpdateConversationRequest,\n): Promise<t.TUpdateConversationResponse> {\n return request.post(endpoints.updateConversation(), { arg: payload });\n}\n\nexport function updateMessage(payload: t.TUpdateMessageRequest): Promise<unknown> {\n const { conversationId, messageId, text } = payload;\n if (!conversationId) {\n throw new Error('conversationId is required');\n }\n\n return request.put(endpoints.messages(conversationId, messageId), { text });\n}\n\nexport function updateUserKey(payload: t.TUpdateUserKeyRequest) {\n const { value } = payload;\n if (!value) {\n throw new Error('value is required');\n }\n\n return request.put(endpoints.keys(), payload);\n}\n\nexport function getPresets(): Promise<s.TPreset[]> {\n return request.get(endpoints.presets());\n}\n\nexport function createPreset(payload: s.TPreset): Promise<s.TPreset> {\n return request.post(endpoints.presets(), payload);\n}\n\nexport function updatePreset(payload: s.TPreset): Promise<s.TPreset> {\n return request.post(endpoints.presets(), payload);\n}\n\nexport function deletePreset(arg: s.TPreset | undefined): Promise<m.PresetDeleteResponse> {\n return request.post(endpoints.deletePreset(), arg);\n}\n\nexport function getSearchEnabled(): Promise<boolean> {\n return request.get(endpoints.searchEnabled());\n}\n\nexport function getUser(): Promise<t.TUser> {\n return request.get(endpoints.user());\n}\n\nexport function getUserBalance(): Promise<string> {\n return request.get(endpoints.balance());\n}\n\nexport const searchConversations = async (\n q: string,\n pageNumber: string,\n): Promise<t.TSearchResults> => {\n return request.get(endpoints.search(q, pageNumber));\n};\n\nexport const updateTokenCount = (text: string) => {\n return request.post(endpoints.tokenizer(), { arg: text });\n};\n\nexport const login = (payload: t.TLoginUser) => {\n return request.post(endpoints.login(), payload);\n};\n\nexport const logout = () => {\n return request.post(endpoints.logout());\n};\n\nexport const register = (payload: t.TRegisterUser) => {\n return request.post(endpoints.register(), payload);\n};\n\nexport const userKeyQuery = (name: string): Promise<t.TCheckUserKeyResponse> =>\n request.get(endpoints.userKeyQuery(name));\n\nexport const getLoginGoogle = () => {\n return request.get(endpoints.loginGoogle());\n};\n\nexport const requestPasswordReset = (\n payload: t.TRequestPasswordReset,\n): Promise<t.TRequestPasswordResetResponse> => {\n return request.post(endpoints.requestPasswordReset(), payload);\n};\n\nexport const resetPassword = (payload: t.TResetPassword) => {\n return request.post(endpoints.resetPassword(), payload);\n};\n\nexport const getAvailablePlugins = (): Promise<s.TPlugin[]> => {\n return request.get(endpoints.plugins());\n};\n\nexport const updateUserPlugins = (payload: t.TUpdateUserPlugins) => {\n return request.post(endpoints.userPlugins(), payload);\n};\n\n/* Config */\n\nexport const getStartupConfig = (): Promise<t.TStartupConfig> => {\n return request.get(endpoints.config());\n};\n\nexport const getAIEndpoints = (): Promise<t.TEndpointsConfig> => {\n return request.get(endpoints.aiEndpoints());\n};\n\nexport const getModels = async (): Promise<t.TModelsConfig> => {\n return request.get(endpoints.models());\n};\n\nexport const getEndpointsConfigOverride = (): Promise<unknown | boolean> => {\n return request.get(endpoints.endpointsConfigOverride());\n};\n\n/* Assistants */\n\nexport const createAssistant = (data: a.AssistantCreateParams): Promise<a.Assistant> => {\n return request.post(endpoints.assistants(), data);\n};\n\nexport const getAssistantById = (assistant_id: string): Promise<a.Assistant> => {\n return request.get(endpoints.assistants(assistant_id));\n};\n\nexport const updateAssistant = (\n assistant_id: string,\n data: a.AssistantUpdateParams,\n): Promise<a.Assistant> => {\n return request.patch(endpoints.assistants(assistant_id), data);\n};\n\nexport const deleteAssistant = (assistant_id: string): Promise<void> => {\n return request.delete(endpoints.assistants(assistant_id));\n};\n\nexport const listAssistants = (\n params?: a.AssistantListParams,\n): Promise<a.AssistantListResponse> => {\n return request.get(endpoints.assistants(), { params });\n};\n\n/* Files */\n\nexport const uploadImage = (data: FormData): Promise<f.FileUploadResponse> => {\n return request.postMultiPart(endpoints.images(), data);\n};\n\nexport const deleteFiles = async (files: f.BatchFile[]): Promise<f.DeleteFilesResponse> =>\n request.deleteWithOptions(endpoints.files(), {\n data: { files },\n });\n","/* eslint-disable */\n/**\n * Copyright (C) 2016 Maxime Petazzoni <maxime.petazzoni@bulix.org>.\n * All rights reserved.\n */\n\nimport request from './request';\nimport { setTokenHeader } from './headers-helpers';\n\nvar SSE = function (url, options) {\n if (!(this instanceof SSE)) {\n return new SSE(url, options);\n }\n\n this.INITIALIZING = -1;\n this.CONNECTING = 0;\n this.OPEN = 1;\n this.CLOSED = 2;\n\n this.url = url;\n\n options = options || {};\n this.headers = options.headers || {};\n this.payload = options.payload !== undefined ? options.payload : '';\n this.method = options.method || (this.payload && 'POST') || 'GET';\n this.withCredentials = !!options.withCredentials;\n\n this.FIELD_SEPARATOR = ':';\n this.listeners = {};\n\n this.xhr = null;\n this.readyState = this.INITIALIZING;\n this.progress = 0;\n this.chunk = '';\n\n this.addEventListener = function (type, listener) {\n if (this.listeners[type] === undefined) {\n this.listeners[type] = [];\n }\n\n if (this.listeners[type].indexOf(listener) === -1) {\n this.listeners[type].push(listener);\n }\n };\n\n this.removeEventListener = function (type, listener) {\n if (this.listeners[type] === undefined) {\n return;\n }\n\n var filtered = [];\n this.listeners[type].forEach(function (element) {\n if (element !== listener) {\n filtered.push(element);\n }\n });\n if (filtered.length === 0) {\n delete this.listeners[type];\n } else {\n this.listeners[type] = filtered;\n }\n };\n\n this.dispatchEvent = function (e) {\n if (!e) {\n return true;\n }\n\n e.source = this;\n\n var onHandler = 'on' + e.type;\n if (this.hasOwnProperty(onHandler)) {\n this[onHandler].call(this, e);\n if (e.defaultPrevented) {\n return false;\n }\n }\n\n if (this.listeners[e.type]) {\n return this.listeners[e.type].every(function (callback) {\n callback(e);\n return !e.defaultPrevented;\n });\n }\n\n return true;\n };\n\n this._setReadyState = function (state) {\n var event = new CustomEvent('readystatechange');\n event.readyState = state;\n this.readyState = state;\n this.dispatchEvent(event);\n };\n\n this._onStreamFailure = function (e) {\n var event = new CustomEvent('error');\n event.data = e.currentTarget.response;\n this.dispatchEvent(event);\n this.close();\n };\n\n this._onStreamAbort = function (e) {\n this.dispatchEvent(new CustomEvent('abort'));\n this.close();\n };\n\n this._onStreamProgress = async function (e) {\n if (!this.xhr) {\n return;\n }\n\n if (this.xhr.status === 401 && !this._retry) {\n this._retry = true;\n try {\n const refreshResponse = await request.refreshToken();\n this.headers = {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${refreshResponse.token}`,\n };\n setTokenHeader(refreshResponse.token);\n window.dispatchEvent(new CustomEvent('tokenUpdated', { detail: refreshResponse.token }));\n this.stream();\n } catch (err) {\n this._onStreamFailure(e);\n return;\n }\n } else if (this.xhr.status !== 200) {\n this._onStreamFailure(e);\n return;\n }\n\n if (this.readyState == this.CONNECTING) {\n this.dispatchEvent(new CustomEvent('open'));\n this._setReadyState(this.OPEN);\n }\n\n var data = this.xhr.responseText.substring(this.progress);\n this.progress += data.length;\n data.split(/(\\r\\n|\\r|\\n){2}/g).forEach(\n function (part) {\n if (part.trim().length === 0) {\n this.dispatchEvent(this._parseEventChunk(this.chunk.trim()));\n this.chunk = '';\n } else {\n this.chunk += part;\n }\n }.bind(this),\n );\n };\n\n this._onStreamLoaded = function (e) {\n this._onStreamProgress(e);\n\n // Parse the last chunk.\n this.dispatchEvent(this._parseEventChunk(this.chunk));\n this.chunk = '';\n };\n\n /**\n * Parse a received SSE event chunk into a constructed event object.\n */\n this._parseEventChunk = function (chunk) {\n if (!chunk || chunk.length === 0) {\n return null;\n }\n\n var e = { id: null, retry: null, data: '', event: 'message' };\n chunk.split(/\\n|\\r\\n|\\r/).forEach(\n function (line) {\n line = line.trimRight();\n var index = line.indexOf(this.FIELD_SEPARATOR);\n if (index <= 0) {\n // Line was either empty, or started with a separator and is a comment.\n // Either way, ignore.\n return;\n }\n\n var field = line.substring(0, index);\n if (!(field in e)) {\n return;\n }\n\n var value = line.substring(index + 1).trimLeft();\n if (field === 'data') {\n e[field] += value;\n } else {\n e[field] = value;\n }\n }.bind(this),\n );\n\n var event = new CustomEvent(e.event);\n event.data = e.data;\n event.id = e.id;\n return event;\n };\n\n this._checkStreamClosed = function () {\n if (!this.xhr) {\n return;\n }\n\n if (this.xhr.readyState === XMLHttpRequest.DONE) {\n this._setReadyState(this.CLOSED);\n }\n };\n\n this.stream = function () {\n this._setReadyState(this.CONNECTING);\n\n this.xhr = new XMLHttpRequest();\n this.xhr.addEventListener('progress', this._onStreamProgress.bind(this));\n this.xhr.addEventListener('load', this._onStreamLoaded.bind(this));\n this.xhr.addEventListener('readystatechange', this._checkStreamClosed.bind(this));\n this.xhr.addEventListener('error', this._onStreamFailure.bind(this));\n this.xhr.addEventListener('abort', this._onStreamAbort.bind(this));\n this.xhr.open(this.method, this.url);\n for (var header in this.headers) {\n this.xhr.setRequestHeader(header, this.headers[header]);\n }\n this.xhr.withCredentials = this.withCredentials;\n this.xhr.send(this.payload);\n };\n\n this.close = function () {\n if (this.readyState === this.CLOSED) {\n return;\n }\n\n this.xhr.abort();\n this.xhr = null;\n this._setReadyState(this.CLOSED);\n };\n};\n\nexport { SSE };\n// Export our SSE module for npm.js\n// if (typeof exports !== 'undefined') {\n// // exports.SSE = SSE;\n// module.exports = { SSE };\n// }\n","import { tConversationSchema } from './schemas';\nimport type { TSubmission, TMessage, TEndpointOption } from './types';\nimport { EModelEndpoint, EndpointURLs } from './types';\n\nexport default function createPayload(submission: TSubmission) {\n const { conversation, message, messages, endpointOption, isEdited, isContinued } = submission;\n const { conversationId } = tConversationSchema.parse(conversation);\n const { endpoint } = endpointOption as { endpoint: EModelEndpoint };\n\n let server = EndpointURLs[endpoint];\n\n if (isEdited && endpoint === EModelEndpoint.assistant) {\n server += '/modify';\n } else if (isEdited) {\n server = server.replace('/ask/', '/edit/');\n }\n\n type Payload = Partial<TMessage> &\n Partial<TEndpointOption> & {\n isContinued: boolean;\n conversationId: string | null;\n messages?: typeof messages;\n };\n\n const payload: Payload = {\n ...message,\n ...endpointOption,\n isContinued: !!(isEdited && isContinued),\n conversationId,\n };\n\n if (endpoint === EModelEndpoint.assistant) {\n payload.messages = messages;\n }\n\n return { server, payload };\n}\n"],"names":["EModelEndpoint","defaultEndpoints","openAI","assistant","azureOpenAI","bingAI","chatGPTBrowser","gptPlugins","google","anthropic","alternateName","_a","endpointSettings","_b","model","default","maxOutputTokens","min","max","step","temperature","topP","topK","EndpointURLs","_c","modularEndpoints","Set","supportsFiles","_d","openAIModels","visionModels","eModelEndpointSchema","z","nativeEnum","tPluginAuthConfigSchema","object","authField","string","label","description","tPluginSchema","name","pluginKey","icon","authConfig","array","authenticated","boolean","optional","isButton","tExampleSchema","input","content","output","tAgentOptionsSchema","agent","skipCompletion","number","tMessageSchema","messageId","clientId","nullable","conversationId","parentMessageId","responseMessageId","overrideParentMessageId","bg","title","or","literal","sender","text","generation","isEdited","isCreatedByUser","error","createdAt","Date","toISOString","updatedAt","current","unfinished","submitting","searchResult","finish_reason","tConversationSchema","user","endpoint","suggestions","messages","tools","systemMessage","modelLabel","examples","chatGptLabel","userLabel","promptPrefix","context","top_p","frequency_penalty","presence_penalty","jailbreak","jailbreakConversationId","conversationSignature","invocationId","toneStyle","agentOptions","assistant_id","thread_id","tPresetSchema","omit","merge","presetId","defaultPreset","order","openAISchema","pick","transform","obj","__assign","_e","_f","_g","catch","googleSchema","_h","bingAISchema","anthropicSchema","chatGPTBrowserSchema","gptPluginsSchema","_j","removeNullishValues","newObj","Object","keys","forEach","key","undefined","assistantSchema","endpointSchemas","getFirstDefinedValue","possibleValues","returnValue","possibleValues_1","_i","length","value","Tools","QueryKeys","MutationKeys","parseConvo","conversation","schema","Error","convo","parse","models","secondaryModels","getResponseSender","endpointOption","includes","compactOpenAISchema","compactGoogleSchema","compactAnthropicSchema","compactChatGPTSchema","compactPluginsSchema","compactEndpointSchemas","parseCompactConvo","setAcceptLanguageHeader","axios","defaults","headers","common","setTokenHeader","token","concat","keysEndpoint","search","q","pageNumber","assistants","id","_post","url","data","post","JSON","stringify","sent","isRefreshing","failedQueue","refreshToken","retry","endpoints.refreshToken","processQueue","prom","reject","resolve","interceptors","response","use","__awaiter","originalRequest","config","status","_retry","Promise","push","err_1","window","dispatchEvent","CustomEvent","detail","location","href","err_2","request","get","options","postMultiPart","formData","put","delete","deleteWithOptions","patch","abortKey","message","endpoints.abortRequest","arg","endpoints.assistants","payload","files","endpoints.conversationById","endpoints.conversations","endpoints.messages","params","endpoints.revokeUserKey","endpoints.search","endpoints.userKeyQuery","SSE","this","INITIALIZING","CONNECTING","OPEN","CLOSED","method","withCredentials","FIELD_SEPARATOR","listeners","xhr","readyState","progress","chunk","addEventListener","type","listener","indexOf","removeEventListener","filtered","element","e","source","onHandler","hasOwnProperty","call","defaultPrevented","every","callback","_setReadyState","state","event","_onStreamFailure","currentTarget","close","_onStreamAbort","_onStreamProgress","async","refreshResponse","Authorization","stream","err","responseText","substring","split","part","trim","_parseEventChunk","bind","_onStreamLoaded","line","index","trimRight","field","trimLeft","_checkStreamClosed","XMLHttpRequest","DONE","header","open","setRequestHeader","send","abort","createPayload","submission","isContinued","server","replace"],"mappings":"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"}