librechat-data-provider 0.3.5 → 0.3.7

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.
package/dist/index.es.js CHANGED
@@ -1,2 +1,2 @@
1
- import{z as t}from"zod";import e from"axios";var n,o,r=function(){return r=Object.assign||function(t){for(var e,n=1,o=arguments.length;n<o;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t},r.apply(this,arguments)};function i(t,e,n,o){return new(n||(n=Promise))((function(r,i){function a(t){try{l(o.next(t))}catch(t){i(t)}}function s(t){try{l(o.throw(t))}catch(t){i(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}l((o=o.apply(t,e||[])).next())}))}function a(t,e){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,o&&(r=2&s[0]?o.return:s[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,s[1])).done)return r;switch(o=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,o=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){a.label=s[1];break}if(6===s[0]&&a.label<r[1]){a.label=r[1],r=s;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(s);break}r[2]&&a.ops.pop(),a.trys.pop();continue}s=e.call(t,a)}catch(t){s=[6,t],o=0}finally{n=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}"function"==typeof SuppressedError&&SuppressedError,function(t){t.azureOpenAI="azureOpenAI",t.openAI="openAI",t.bingAI="bingAI",t.chatGPTBrowser="chatGPTBrowser",t.google="google",t.gptPlugins="gptPlugins",t.anthropic="anthropic",t.assistant="assistant",t.custom="custom"}(o||(o={}));var s=((n={})[o.google]={model:{default:"chat-bison"},maxOutputTokens:{min:1,max:2048,step:1,default:1024,maxGeminiPro:8192,defaultGeminiPro:8192},temperature:{min:0,max:1,step:.01,default:.2},topP:{min:0,max:1,step:.01,default:.8},topK:{min:1,max:40,step:.01,default:40}},n),l=s[o.google],u=t.nativeEnum(o),p=t.union([u,t.string()]),c=t.object({authField:t.string(),label:t.string(),description:t.string()}),d=t.object({name:t.string(),pluginKey:t.string(),description:t.string(),icon:t.string(),authConfig:t.array(c),authenticated:t.boolean().optional(),isButton:t.boolean().optional()}),h=t.object({input:t.object({content:t.string()}),output:t.object({content:t.string()})}),f=t.object({agent:t.string(),skipCompletion:t.boolean(),model:t.string(),temperature:t.number()}),g=t.object({messageId:t.string(),endpoint:t.string().optional(),clientId:t.string().nullable().optional(),conversationId:t.string().nullable(),parentMessageId:t.string().nullable(),responseMessageId:t.string().nullable().optional(),overrideParentMessageId:t.string().nullable().optional(),bg:t.string().nullable().optional(),model:t.string().nullable().optional(),title:t.string().nullable().or(t.literal("New Chat")).default("New Chat"),sender:t.string(),text:t.string(),generation:t.string().nullable().optional(),isEdited:t.boolean().optional(),isCreatedByUser:t.boolean(),error:t.boolean(),createdAt:t.string().optional().default((function(){return(new Date).toISOString()})),updatedAt:t.string().optional().default((function(){return(new Date).toISOString()})),current:t.boolean().optional(),unfinished:t.boolean().optional(),searchResult:t.boolean().optional(),finish_reason:t.string().optional()}),m=t.object({conversationId:t.string().nullable(),title:t.string().nullable().or(t.literal("New Chat")).default("New Chat"),user:t.string().optional(),endpoint:u.nullable(),endpointType:u.optional(),suggestions:t.array(t.string()).optional(),messages:t.array(t.string()).optional(),tools:t.array(d).optional(),createdAt:t.string(),updatedAt:t.string(),systemMessage:t.string().nullable().optional(),modelLabel:t.string().nullable().optional(),examples:t.array(h).optional(),chatGptLabel:t.string().nullable().optional(),userLabel:t.string().optional(),model:t.string().nullable().optional(),promptPrefix:t.string().nullable().optional(),temperature:t.number().optional(),topP:t.number().optional(),topK:t.number().optional(),context:t.string().nullable().optional(),top_p:t.number().optional(),frequency_penalty:t.number().optional(),presence_penalty:t.number().optional(),jailbreak:t.boolean().optional(),jailbreakConversationId:t.string().nullable().optional(),conversationSignature:t.string().nullable().optional(),parentMessageId:t.string().optional(),clientId:t.string().nullable().optional(),invocationId:t.number().nullable().optional(),toneStyle:t.string().nullable().optional(),maxOutputTokens:t.number().optional(),agentOptions:f.nullable().optional(),assistant_id:t.string().optional(),thread_id:t.string().optional()}),v=m.omit({conversationId:!0,createdAt:!0,updatedAt:!0,title:!0}).merge(t.object({conversationId:t.string().nullable().optional(),presetId:t.string().nullable().optional(),title:t.string().nullable().optional(),defaultPreset:t.boolean().optional(),order:t.number().optional(),endpoint:p.nullable()})),b=m.merge(t.object({endpoint:p.nullable()})),y=m.merge(t.object({endpoint:p.nullable()})),P=m.pick({model:!0,chatGptLabel:!0,promptPrefix:!0,temperature:!0,top_p:!0,presence_penalty:!0,frequency_penalty:!0}).transform((function(t){var e,n,o,i,a,s,l;return r(r({},t),{model:null!==(e=t.model)&&void 0!==e?e:"gpt-3.5-turbo",chatGptLabel:null!==(n=t.chatGptLabel)&&void 0!==n?n:null,promptPrefix:null!==(o=t.promptPrefix)&&void 0!==o?o:null,temperature:null!==(i=t.temperature)&&void 0!==i?i:1,top_p:null!==(a=t.top_p)&&void 0!==a?a:1,presence_penalty:null!==(s=t.presence_penalty)&&void 0!==s?s:0,frequency_penalty:null!==(l=t.frequency_penalty)&&void 0!==l?l:0})})).catch((function(){return{model:"gpt-3.5-turbo",chatGptLabel:null,promptPrefix:null,temperature:1,top_p:1,presence_penalty:0,frequency_penalty:0}})),I=m.pick({model:!0,modelLabel:!0,promptPrefix:!0,examples:!0,temperature:!0,maxOutputTokens:!0,topP:!0,topK:!0}).transform((function(t){var e,n,o,i,a,s,u,p,c,d,h=null===(n=null===(e=null==t?void 0:t.model)||void 0===e?void 0:e.toLowerCase())||void 0===n?void 0:n.includes("gemini-pro"),f=h?l.maxOutputTokens.maxGeminiPro:l.maxOutputTokens.max,g=h?l.maxOutputTokens.defaultGeminiPro:l.maxOutputTokens.default,m=null!==(o=t.maxOutputTokens)&&void 0!==o?o:g;return m=Math.min(m,f),r(r({},t),{model:null!==(i=t.model)&&void 0!==i?i:l.model.default,modelLabel:null!==(a=t.modelLabel)&&void 0!==a?a:null,promptPrefix:null!==(s=t.promptPrefix)&&void 0!==s?s:null,examples:null!==(u=t.examples)&&void 0!==u?u:[{input:{content:""},output:{content:""}}],temperature:null!==(p=t.temperature)&&void 0!==p?p:l.temperature.default,maxOutputTokens:m,topP:null!==(c=t.topP)&&void 0!==c?c:l.topP.default,topK:null!==(d=t.topK)&&void 0!==d?d:l.topK.default})})).catch((function(){return{model:l.model.default,modelLabel:null,promptPrefix:null,examples:[{input:{content:""},output:{content:""}}],temperature:l.temperature.default,maxOutputTokens:l.maxOutputTokens.default,topP:l.topP.default,topK:l.topK.default}})),k=m.pick({jailbreak:!0,systemMessage:!0,context:!0,toneStyle:!0,jailbreakConversationId:!0,conversationSignature:!0,clientId:!0,invocationId:!0}).transform((function(t){var e,n,o,i,a,s,l,u;return r(r({},t),{model:"",jailbreak:null!==(e=t.jailbreak)&&void 0!==e&&e,systemMessage:null!==(n=t.systemMessage)&&void 0!==n?n:null,context:null!==(o=t.context)&&void 0!==o?o:null,toneStyle:null!==(i=t.toneStyle)&&void 0!==i?i:"creative",jailbreakConversationId:null!==(a=t.jailbreakConversationId)&&void 0!==a?a:null,conversationSignature:null!==(s=t.conversationSignature)&&void 0!==s?s:null,clientId:null!==(l=t.clientId)&&void 0!==l?l:null,invocationId:null!==(u=t.invocationId)&&void 0!==u?u:1})})).catch((function(){return{model:"",jailbreak:!1,systemMessage:null,context:null,toneStyle:"creative",jailbreakConversationId:null,conversationSignature:null,clientId:null,invocationId:1}})),x=m.pick({model:!0,modelLabel:!0,promptPrefix:!0,temperature:!0,maxOutputTokens:!0,topP:!0,topK:!0}).transform((function(t){var e,n,o,i,a,s,l;return r(r({},t),{model:null!==(e=t.model)&&void 0!==e?e:"claude-1",modelLabel:null!==(n=t.modelLabel)&&void 0!==n?n:null,promptPrefix:null!==(o=t.promptPrefix)&&void 0!==o?o:null,temperature:null!==(i=t.temperature)&&void 0!==i?i:1,maxOutputTokens:null!==(a=t.maxOutputTokens)&&void 0!==a?a:4e3,topP:null!==(s=t.topP)&&void 0!==s?s:.7,topK:null!==(l=t.topK)&&void 0!==l?l:5})})).catch((function(){return{model:"claude-1",modelLabel:null,promptPrefix:null,temperature:1,maxOutputTokens:4e3,topP:.7,topK:5}})),O=m.pick({model:!0}).transform((function(t){var e;return r(r({},t),{model:null!==(e=t.model)&&void 0!==e?e:"text-davinci-002-render-sha"})})).catch((function(){return{model:"text-davinci-002-render-sha"}})),_=m.pick({model:!0,chatGptLabel:!0,promptPrefix:!0,temperature:!0,top_p:!0,presence_penalty:!0,frequency_penalty:!0,tools:!0,agentOptions:!0}).transform((function(t){var e,n,o,i,a,s,l,u,p;return r(r({},t),{model:null!==(e=t.model)&&void 0!==e?e:"gpt-3.5-turbo",chatGptLabel:null!==(n=t.chatGptLabel)&&void 0!==n?n:null,promptPrefix:null!==(o=t.promptPrefix)&&void 0!==o?o:null,temperature:null!==(i=t.temperature)&&void 0!==i?i:.8,top_p:null!==(a=t.top_p)&&void 0!==a?a:1,presence_penalty:null!==(s=t.presence_penalty)&&void 0!==s?s:0,frequency_penalty:null!==(l=t.frequency_penalty)&&void 0!==l?l:0,tools:null!==(u=t.tools)&&void 0!==u?u:[],agentOptions:null!==(p=t.agentOptions)&&void 0!==p?p:{agent:"functions",skipCompletion:!0,model:"gpt-3.5-turbo",temperature:0}})})).catch((function(){return{model:"gpt-3.5-turbo",chatGptLabel:null,promptPrefix:null,temperature:.8,top_p:1,presence_penalty:0,frequency_penalty:0,tools:[],agentOptions:{agent:"functions",skipCompletion:!0,model:"gpt-3.5-turbo",temperature:0}}}));function C(t){var e=r({},t);return Object.keys(e).forEach((function(t){void 0!==e[t]&&null!==e[t]&&""!==e[t]||delete e[t]})),e}var E,w,A,T,S,L,G=m.pick({model:!0,assistant_id:!0,thread_id:!0}).transform(C).catch((function(){return{}})),j=m.pick({model:!0,chatGptLabel:!0,promptPrefix:!0,temperature:!0,top_p:!0,presence_penalty:!0,frequency_penalty:!0}).transform((function(t){var e=r({},t);return"gpt-3.5-turbo"===e.model&&delete e.model,1===e.temperature&&delete e.temperature,1===e.top_p&&delete e.top_p,0===e.presence_penalty&&delete e.presence_penalty,0===e.frequency_penalty&&delete e.frequency_penalty,C(e)})).catch((function(){return{}})),N=m.pick({model:!0,modelLabel:!0,promptPrefix:!0,examples:!0,temperature:!0,maxOutputTokens:!0,topP:!0,topK:!0}).transform((function(t){var e=r({},t);return e.model===l.model.default&&delete e.model,e.temperature===l.temperature.default&&delete e.temperature,e.maxOutputTokens===l.maxOutputTokens.default&&delete e.maxOutputTokens,e.topP===l.topP.default&&delete e.topP,e.topK===l.topK.default&&delete e.topK,C(e)})).catch((function(){return{}})),K=m.pick({model:!0,modelLabel:!0,promptPrefix:!0,temperature:!0,maxOutputTokens:!0,topP:!0,topK:!0}).transform((function(t){var e=r({},t);return"claude-1"===e.model&&delete e.model,1===e.temperature&&delete e.temperature,4e3===e.maxOutputTokens&&delete e.maxOutputTokens,.7===e.topP&&delete e.topP,5===e.topK&&delete e.topK,C(e)})).catch((function(){return{}})),M=m.pick({model:!0}).transform((function(t){var e=r({},t);return"text-davinci-002-render-sha"===e.model&&delete e.model,C(e)})).catch((function(){return{}})),R=m.pick({model:!0,chatGptLabel:!0,promptPrefix:!0,temperature:!0,top_p:!0,presence_penalty:!0,frequency_penalty:!0,tools:!0,agentOptions:!0}).transform((function(t){var e,n=r({},t);return"gpt-3.5-turbo"===n.model&&delete n.model,null===n.chatGptLabel&&delete n.chatGptLabel,null===n.promptPrefix&&delete n.promptPrefix,.8===n.temperature&&delete n.temperature,1===n.top_p&&delete n.top_p,0===n.presence_penalty&&delete n.presence_penalty,0===n.frequency_penalty&&delete n.frequency_penalty,0===(null===(e=n.tools)||void 0===e?void 0:e.length)&&delete n.tools,n.agentOptions&&"functions"===n.agentOptions.agent&&!0===n.agentOptions.skipCompletion&&"gpt-3.5-turbo"===n.agentOptions.model&&0===n.agentOptions.temperature&&delete n.agentOptions,C(n)})).catch((function(){return{}})),q=t.object({name:t.string().refine((function(t){return!u.safeParse(t).success}),{message:"Value cannot be one of the default endpoint (EModelEndpoint) values: ".concat(Object.values(o).join(", "))}),apiKey:t.string(),baseURL:t.string(),models:t.object({default:t.array(t.string()).min(1),fetch:t.boolean().optional()}),titleConvo:t.boolean().optional(),titleMethod:t.union([t.literal("completion"),t.literal("functions")]).optional(),titleModel:t.string().optional(),summarize:t.boolean().optional(),summaryModel:t.string().optional(),forcePrompt:t.boolean().optional(),modelDisplayLabel:t.string().optional()}),z=t.object({version:t.string(),cache:t.boolean(),endpoints:t.object({custom:t.array(q.partial())}).strict()});!function(t){t.mistral="mistral",t.openrouter="openrouter"}(L||(L={}));var B,U,D,F=[o.openAI,o.assistant,o.azureOpenAI,o.bingAI,o.chatGPTBrowser,o.gptPlugins,o.google,o.anthropic,o.custom],V=((E={})[o.openAI]="OpenAI",E[o.assistant]="Assistants",E[o.azureOpenAI]="Azure OpenAI",E[o.bingAI]="Bing",E[o.chatGPTBrowser]="ChatGPT",E[o.gptPlugins]="Plugins",E[o.google]="Google",E[o.anthropic]="Anthropic",E[o.custom]="Custom",E),Y=((w={})[o.google]=["gemini-pro","gemini-pro-vision","chat-bison","chat-bison-32k","codechat-bison","codechat-bison-32k","text-bison","text-bison-32k","text-unicorn","code-gecko","code-bison","code-bison-32k"],w[o.anthropic]=["claude-2.1","claude-2","claude-1.2","claude-1","claude-1-100k","claude-instant-1","claude-instant-1-100k"],w[o.openAI]=["gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-1106-preview","gpt-3.5-turbo","gpt-3.5-turbo-1106","gpt-4-vision-preview","gpt-4","gpt-3.5-turbo-instruct-0914","gpt-3.5-turbo-0613","gpt-3.5-turbo-0301","gpt-3.5-turbo-instruct","gpt-4-0613","text-davinci-003","gpt-4-0314"],w),H=((A={})[o.openAI]="/api/ask/".concat(o.openAI),A[o.bingAI]="/api/ask/".concat(o.bingAI),A[o.google]="/api/ask/".concat(o.google),A[o.custom]="/api/ask/".concat(o.custom),A[o.anthropic]="/api/ask/".concat(o.anthropic),A[o.gptPlugins]="/api/ask/".concat(o.gptPlugins),A[o.azureOpenAI]="/api/ask/".concat(o.azureOpenAI),A[o.chatGPTBrowser]="/api/ask/".concat(o.chatGPTBrowser),A[o.assistant]="/api/assistants/chat",A),J=new Set([o.gptPlugins,o.anthropic,o.google,o.openAI,o.azureOpenAI,o.custom]),W=((T={})[o.openAI]=!0,T[o.google]=!0,T[o.assistant]=!0,T[o.azureOpenAI]=!0,T[o.custom]=!0,T),X=((S={})[o.openAI]=!0,S[o.azureOpenAI]=!0,S[o.gptPlugins]=!0,S[o.custom]=!0,S),Z=["gpt-4-vision","llava-13b","gemini-pro-vision"];!function(t){t.CONFIG_STORE="configStore",t.PLUGINS="plugins",t.MODELS_CONFIG="modelsConfig",t.ENDPOINT_CONFIG="endpointsConfig",t.CUSTOM_CONFIG="customConfig",t.OVERRIDE_CONFIG="overrideConfig"}(B||(B={})),function(t){t.GOOGLE_SERVICE_KEY="GOOGLE_SERVICE_KEY",t.GOOGLE_API_KEY="GOOGLE_API_KEY"}(U||(U={}));var Q=((D={})[o.openAI]=P,D[o.azureOpenAI]=P,D[o.custom]=P,D[o.google]=I,D[o.bingAI]=k,D[o.anthropic]=x,D[o.chatGPTBrowser]=O,D[o.gptPlugins]=_,D[o.assistant]=G,D);function $(t){for(var e,n=0,o=t;n<o.length;n++){var r=o[n];if(r){e=r;break}}return e}var tt,et,nt,ot=function(t){var e,n,o=t.endpoint,r=t.endpointType,i=t.conversation,a=t.possibleValues,s=Q[o];if(!s&&!r)throw new Error("Unknown endpoint: ".concat(o));!s&&r&&(s=Q[r]);var l=s.parse(i),u=null!=a?a:{},p=u.models,c=u.secondaryModels;return p&&l&&(l.model=null!==(e=$(p))&&void 0!==e?e:l.model),c&&l.agentOptions&&(l.agentOptions.model=null!==(n=$(c))&&void 0!==n?n:l.agentOptions.model),l},rt=function(t){var e,n=t.model,r=t.endpoint,i=t.endpointType,a=t.modelDisplayLabel,s=t.chatGptLabel,l=t.modelLabel,u=t.jailbreak;return[o.openAI,o.azureOpenAI,o.gptPlugins,o.chatGPTBrowser].includes(r)?s||(n&&n.includes("gpt-3")?"GPT-3.5":n&&n.includes("gpt-4")?"GPT-4":n&&n.includes("mistral")?"Mistral":null!==(e=V[r])&&void 0!==e?e:"ChatGPT"):r===o.bingAI?u?"Sydney":"BingAI":r===o.anthropic?null!=l?l:"Claude":r===o.google?l||(n&&n.includes("gemini")?"Gemini":n&&n.includes("code")?"Codey":"PaLM2"):r===o.custom||i===o.custom?l||(s||(n&&n.includes("mistral")?"Mistral":n&&n.includes("gpt-3")?"GPT-3.5":n&&n.includes("gpt-4")?"GPT-4":a||"AI")):""},it={openAI:j,azureOpenAI:j,custom:j,assistant:G,google:N,bingAI:k,anthropic:K,chatGPTBrowser:M,gptPlugins:R},at=function(t){var e,n=t.endpoint,o=t.endpointType,r=t.conversation,i=t.possibleValues;if(!n)throw new Error("undefined endpoint: ".concat(n));var a=it[n];if(!a&&!o)throw new Error("Unknown endpoint: ".concat(n));!a&&o&&(a=it[o]);var s=a.parse(r),l=(null!=i?i:{}).models;return l&&s&&(s.model=null!==(e=$(l))&&void 0!==e?e:s.model),s};function st(t){e.defaults.headers.common["Accept-Language"]=t}function lt(t){e.defaults.headers.common.Authorization="Bearer "+t}!function(t){t.code_interpreter="code_interpreter",t.retrieval="retrieval",t.function="function"}(tt||(tt={})),function(t){t.messages="messages",t.allConversations="allConversations",t.conversation="conversation",t.searchEnabled="searchEnabled",t.user="user",t.name="name",t.models="models",t.balance="balance",t.endpoints="endpoints",t.presets="presets",t.searchResults="searchResults",t.tokenCount="tokenCount",t.availablePlugins="availablePlugins",t.startupConfig="startupConfig",t.assistants="assistants",t.assistant="assistant",t.endpointsConfigOverride="endpointsConfigOverride"}(et||(et={})),function(t){t.imageUpload="imageUpload",t.fileDelete="fileDelete",t.updatePreset="updatePreset",t.deletePreset="deletePreset",t.logoutUser="logoutUser",t.avatarUpload="avatarUpload"}(nt||(nt={}));var ut=function(t,e){return"/api/messages/".concat(t).concat(e?"/".concat(e):"")},pt="/api/keys",ct=function(t,e){return"/api/search?q=".concat(t,"&pageNumber=").concat(e)},dt=function(t){return"/api/assistants".concat(t?"/".concat(t):"")},ht=function(){return"".concat("/api/files","/images")};function ft(t,n){return i(this,void 0,void 0,(function(){return a(this,(function(o){switch(o.label){case 0:return[4,e.post(t,JSON.stringify(n),{headers:{"Content-Type":"application/json"}})];case 1:return[2,o.sent().data]}}))}))}var gt=!1,mt=[],vt=function(t){return ft(function(t){return"/api/auth/refresh".concat(t?"?retry=true":"")}(t))},bt=function(t,e){void 0===e&&(e=null),mt.forEach((function(n){t?n.reject(t):n.resolve(e)})),mt=[]};e.interceptors.response.use((function(t){return t}),(function(t){return i(void 0,void 0,void 0,(function(){var n,o,r,i,s;return a(this,(function(a){switch(a.label){case 0:if(n=t.config,401!==t.response.status||n._retry)return[3,13];if(n._retry=!0,!gt)return[3,5];a.label=1;case 1:return a.trys.push([1,4,,5]),[4,new Promise((function(t,e){mt.push({resolve:t,reject:e})}))];case 2:return r=a.sent(),n.headers.Authorization="Bearer "+r,[4,e(n)];case 3:return[2,a.sent()];case 4:return o=a.sent(),[2,Promise.reject(o)];case 5:gt=!0,a.label=6;case 6:return a.trys.push([6,11,12,13]),[4,vt(!!(null===(s=n.url)||void 0===s?void 0:s.includes("api/auth/refresh")))];case 7:return(r=a.sent().token)?(n.headers.Authorization="Bearer "+r,lt(r),window.dispatchEvent(new CustomEvent("tokenUpdated",{detail:r})),bt(null,r),[4,e(n)]):[3,9];case 8:return[2,a.sent()];case 9:window.location.href="/login",a.label=10;case 10:return[3,13];case 11:return i=a.sent(),bt(i,null),[2,Promise.reject(i)];case 12:return gt=!1,[7];case 13:return[2,Promise.reject(t)]}}))}))}));var yt={get:function(t,n){return i(this,void 0,void 0,(function(){return a(this,(function(o){switch(o.label){case 0:return[4,e.get(t,r({},n))];case 1:return[2,o.sent().data]}}))}))},post:ft,postMultiPart:function(t,n,o){return i(this,void 0,void 0,(function(){return a(this,(function(i){switch(i.label){case 0:return[4,e.post(t,n,r(r({},o),{headers:{"Content-Type":"multipart/form-data"}}))];case 1:return[2,i.sent().data]}}))}))},put:function(t,n){return i(this,void 0,void 0,(function(){return a(this,(function(o){switch(o.label){case 0:return[4,e.put(t,JSON.stringify(n),{headers:{"Content-Type":"application/json"}})];case 1:return[2,o.sent().data]}}))}))},delete:function(t){return i(this,void 0,void 0,(function(){return a(this,(function(n){switch(n.label){case 0:return[4,e.delete(t)];case 1:return[2,n.sent().data]}}))}))},deleteWithOptions:function(t,n){return i(this,void 0,void 0,(function(){return a(this,(function(o){switch(o.label){case 0:return[4,e.delete(t,r({},n))];case 1:return[2,o.sent().data]}}))}))},patch:function(t,n){return i(this,void 0,void 0,(function(){return a(this,(function(o){switch(o.label){case 0:return[4,e.patch(t,JSON.stringify(n),{headers:{"Content-Type":"application/json"}})];case 1:return[2,o.sent().data]}}))}))},refreshToken:vt};var Pt=Object.freeze({__proto__:null,abortRequestWithMessage:function(t,e,n){return yt.post(function(t){return"/api/ask/".concat(t,"/abort")}(t),{arg:{abortKey:e,message:n}})},clearAllConversations:function(){return yt.post("/api/convos/clear",{arg:{}})},createAssistant:function(t){return yt.post(dt(),t)},createPreset:function(t){return yt.post("/api/presets",t)},deleteAssistant:function(t){return yt.delete(dt(t))},deleteConversation:function(t){return yt.post("/api/convos/clear",{arg:t})},deleteFiles:function(t){return i(void 0,void 0,void 0,(function(){return a(this,(function(e){return[2,yt.deleteWithOptions("/api/files",{data:{files:t}})]}))}))},deletePreset:function(t){return yt.post("/api/presets/delete",t)},getAIEndpoints:function(){return yt.get("/api/endpoints")},getAssistantById:function(t){return yt.get(dt(t))},getAvailablePlugins:function(){return yt.get("/api/plugins")},getConversationById:function(t){return yt.get(function(t){return"/api/convos/".concat(t)}(t))},getConversations:function(t){return yt.get(function(t){return"/api/convos?pageNumber=".concat(t)}(t))},getEndpointsConfigOverride:function(){return yt.get("/api/endpoints/config/override")},getLoginGoogle:function(){return yt.get("/api/auth/google")},getMessagesByConvoId:function(t){return"new"===t?Promise.resolve([]):yt.get(ut(t))},getModels:function(){return i(void 0,void 0,void 0,(function(){return a(this,(function(t){return[2,yt.get("/api/models")]}))}))},getPresets:function(){return yt.get("/api/presets")},getSearchEnabled:function(){return yt.get("/api/search/enable")},getStartupConfig:function(){return yt.get("/api/config")},getUser:function(){return yt.get("/api/user")},getUserBalance:function(){return yt.get("/api/balance")},listAssistants:function(t){return yt.get(dt(),{params:t})},login:function(t){return yt.post("/api/auth/login",t)},logout:function(){return yt.post("/api/auth/logout")},register:function(t){return yt.post("/api/auth/register",t)},requestPasswordReset:function(t){return yt.post("/api/auth/requestPasswordReset",t)},resetPassword:function(t){return yt.post("/api/auth/resetPassword",t)},revokeAllUserKeys:function(){return yt.delete("".concat(pt,"?all=true"))},revokeUserKey:function(t){return yt.delete(function(t){return"".concat(pt,"/").concat(t)}(t))},searchConversations:function(t,e){return i(void 0,void 0,void 0,(function(){return a(this,(function(n){return[2,yt.get(ct(t,e))]}))}))},updateAssistant:function(t,e){return yt.patch(dt(t),e)},updateConversation:function(t){return yt.post("/api/convos/update",{arg:t})},updateMessage:function(t){var e=t.conversationId,n=t.messageId,o=t.text;if(!e)throw new Error("conversationId is required");return yt.put(ut(e,n),{text:o})},updatePreset:function(t){return yt.post("/api/presets",t)},updateTokenCount:function(t){return yt.post("/api/tokenizer",{arg:t})},updateUserKey:function(t){if(!t.value)throw new Error("value is required");return yt.put(pt,t)},updateUserPlugins:function(t){return yt.post("/api/user/plugins",t)},uploadAvatar:function(t){return yt.postMultiPart("".concat(ht(),"/avatar"),t)},uploadImage:function(t){return yt.postMultiPart(ht(),t)},userKeyQuery:function(t){return yt.get(function(t){return"".concat(pt,"?name=").concat(t)}(t))}}),It=function(t,e){if(!(this instanceof It))return new It(t,e);this.INITIALIZING=-1,this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,this.url=t,e=e||{},this.headers=e.headers||{},this.payload=void 0!==e.payload?e.payload:"",this.method=e.method||this.payload&&"POST"||"GET",this.withCredentials=!!e.withCredentials,this.FIELD_SEPARATOR=":",this.listeners={},this.xhr=null,this.readyState=this.INITIALIZING,this.progress=0,this.chunk="",this.addEventListener=function(t,e){void 0===this.listeners[t]&&(this.listeners[t]=[]),-1===this.listeners[t].indexOf(e)&&this.listeners[t].push(e)},this.removeEventListener=function(t,e){if(void 0!==this.listeners[t]){var n=[];this.listeners[t].forEach((function(t){t!==e&&n.push(t)})),0===n.length?delete this.listeners[t]:this.listeners[t]=n}},this.dispatchEvent=function(t){if(!t)return!0;t.source=this;var e="on"+t.type;return(!this.hasOwnProperty(e)||(this[e].call(this,t),!t.defaultPrevented))&&(!this.listeners[t.type]||this.listeners[t.type].every((function(e){return e(t),!t.defaultPrevented})))},this._setReadyState=function(t){var e=new CustomEvent("readystatechange");e.readyState=t,this.readyState=t,this.dispatchEvent(e)},this._onStreamFailure=function(t){var e=new CustomEvent("error");e.data=t.currentTarget.response,this.dispatchEvent(e),this.close()},this._onStreamAbort=function(t){this.dispatchEvent(new CustomEvent("abort")),this.close()},this._onStreamProgress=async function(t){if(this.xhr){if(401!==this.xhr.status||this._retry){if(200!==this.xhr.status)return void this._onStreamFailure(t)}else{this._retry=!0;try{const t=await yt.refreshToken();this.headers={"Content-Type":"application/json",Authorization:`Bearer ${t.token}`},lt(t.token),window.dispatchEvent(new CustomEvent("tokenUpdated",{detail:t.token})),this.stream()}catch(e){return void this._onStreamFailure(t)}}this.readyState==this.CONNECTING&&(this.dispatchEvent(new CustomEvent("open")),this._setReadyState(this.OPEN));var e=this.xhr.responseText.substring(this.progress);this.progress+=e.length,e.split(/(\r\n|\r|\n){2}/g).forEach(function(t){0===t.trim().length?(this.dispatchEvent(this._parseEventChunk(this.chunk.trim())),this.chunk=""):this.chunk+=t}.bind(this))}},this._onStreamLoaded=function(t){this._onStreamProgress(t),this.dispatchEvent(this._parseEventChunk(this.chunk)),this.chunk=""},this._parseEventChunk=function(t){if(!t||0===t.length)return null;var e={id:null,retry:null,data:"",event:"message"};t.split(/\n|\r\n|\r/).forEach(function(t){var n=(t=t.trimRight()).indexOf(this.FIELD_SEPARATOR);if(!(n<=0)){var o=t.substring(0,n);if(o in e){var r=t.substring(n+1).trimLeft();"data"===o?e[o]+=r:e[o]=r}}}.bind(this));var n=new CustomEvent(e.event);return n.data=e.data,n.id=e.id,n},this._checkStreamClosed=function(){this.xhr&&this.xhr.readyState===XMLHttpRequest.DONE&&this._setReadyState(this.CLOSED)},this.stream=function(){for(var t in this._setReadyState(this.CONNECTING),this.xhr=new XMLHttpRequest,this.xhr.addEventListener("progress",this._onStreamProgress.bind(this)),this.xhr.addEventListener("load",this._onStreamLoaded.bind(this)),this.xhr.addEventListener("readystatechange",this._checkStreamClosed.bind(this)),this.xhr.addEventListener("error",this._onStreamFailure.bind(this)),this.xhr.addEventListener("abort",this._onStreamAbort.bind(this)),this.xhr.open(this.method,this.url),this.headers)this.xhr.setRequestHeader(t,this.headers[t]);this.xhr.withCredentials=this.withCredentials,this.xhr.send(this.payload)},this.close=function(){this.readyState!==this.CLOSED&&(this.xhr.abort(),this.xhr=null,this._setReadyState(this.CLOSED))}};function kt(t){var e=t.conversation,n=t.message,i=t.messages,a=t.endpointOption,s=t.isEdited,l=t.isContinued,u=b.parse(e).conversationId,p=a,c=p.endpoint,d=p.endpointType,h=H[null!=d?d:c];s&&c===o.assistant?h+="/modify":s&&(h=h.replace("/ask/","/edit/"));var f=r(r(r({},n),a),{isContinued:!(!s||!l),conversationId:u});return c===o.assistant&&(f.messages=i),{server:h,payload:f}}export{U as AuthKeys,B as CacheKeys,o as EModelEndpoint,H as EndpointURLs,L as KnownEndpoints,nt as MutationKeys,et as QueryKeys,It as SSE,tt as Tools,V as alternateName,x as anthropicSchema,G as assistantSchema,k as bingAISchema,O as chatGPTBrowserSchema,K as compactAnthropicSchema,M as compactChatGPTSchema,N as compactGoogleSchema,j as compactOpenAISchema,R as compactPluginsSchema,z as configSchema,kt as createPayload,Pt as dataService,F as defaultEndpoints,Y as defaultModels,u as eModelEndpointSchema,q as endpointSchema,s as endpointSettings,p as extendedModelEndpointSchema,$ as getFirstDefinedValue,rt as getResponseSender,I as googleSchema,_ as gptPluginsSchema,J as modularEndpoints,P as openAISchema,at as parseCompactConvo,ot as parseConvo,C as removeNullishValues,yt as request,st as setAcceptLanguageHeader,lt as setTokenHeader,X as supportsBalanceCheck,W as supportsFiles,f as tAgentOptionsSchema,m as tConversationSchema,b as tConvoUpdateSchema,h as tExampleSchema,g as tMessageSchema,c as tPluginAuthConfigSchema,d as tPluginSchema,v as tPresetSchema,y as tPresetUpdateSchema,Z as visionModels};
1
+ import{z as e}from"zod";import t from"axios";var n,o,r,i=function(){return i=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},i.apply(this,arguments)};function a(e,t,n,o){return new(n||(n=Promise))((function(r,i){function a(e){try{l(o.next(e))}catch(e){i(e)}}function s(e){try{l(o.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((o=o.apply(e,t||[])).next())}))}function s(e,t){var n,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,o&&(r=2&s[0]?o.return:s[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,s[1])).done)return r;switch(o=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,o=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){a.label=s[1];break}if(6===s[0]&&a.label<r[1]){a.label=r[1],r=s;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(s);break}r[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],o=0}finally{n=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}"function"==typeof SuppressedError&&SuppressedError,function(e){e.azureOpenAI="azureOpenAI",e.openAI="openAI",e.bingAI="bingAI",e.chatGPTBrowser="chatGPTBrowser",e.google="google",e.gptPlugins="gptPlugins",e.anthropic="anthropic",e.assistant="assistant",e.custom="custom"}(r||(r={}));var l,u=((n={})[r.google]={model:{default:"chat-bison"},maxOutputTokens:{min:1,max:2048,step:1,default:1024,maxGeminiPro:8192,defaultGeminiPro:8192},temperature:{min:0,max:1,step:.01,default:.2},topP:{min:0,max:1,step:.01,default:.8},topK:{min:1,max:40,step:.01,default:40}},n),p=u[r.google],c=e.nativeEnum(r),d=e.union([c,e.string()]);!function(e){e.low="low",e.auto="auto",e.high="high"}(l||(l={}));var h=((o={})[l.low]=0,o[l.auto]=1,o[l.high]=2,o),g={0:l.low,1:l.auto,2:l.high},f=e.nativeEnum(l),m=e.object({authField:e.string(),label:e.string(),description:e.string()}),v=e.object({name:e.string(),pluginKey:e.string(),description:e.string(),icon:e.string(),authConfig:e.array(m),authenticated:e.boolean().optional(),isButton:e.boolean().optional()}),b=e.object({input:e.object({content:e.string()}),output:e.object({content:e.string()})}),y=e.object({agent:e.string(),skipCompletion:e.boolean(),model:e.string(),temperature:e.number()}),P=e.object({messageId:e.string(),endpoint:e.string().optional(),clientId:e.string().nullable().optional(),conversationId:e.string().nullable(),parentMessageId:e.string().nullable(),responseMessageId:e.string().nullable().optional(),overrideParentMessageId:e.string().nullable().optional(),bg:e.string().nullable().optional(),model:e.string().nullable().optional(),title:e.string().nullable().or(e.literal("New Chat")).default("New Chat"),sender:e.string(),text:e.string(),generation:e.string().nullable().optional(),isEdited:e.boolean().optional(),isCreatedByUser:e.boolean(),error:e.boolean(),createdAt:e.string().optional().default((function(){return(new Date).toISOString()})),updatedAt:e.string().optional().default((function(){return(new Date).toISOString()})),current:e.boolean().optional(),unfinished:e.boolean().optional(),searchResult:e.boolean().optional(),finish_reason:e.string().optional()}),I=e.object({conversationId:e.string().nullable(),title:e.string().nullable().or(e.literal("New Chat")).default("New Chat"),user:e.string().optional(),endpoint:c.nullable(),endpointType:c.optional(),suggestions:e.array(e.string()).optional(),messages:e.array(e.string()).optional(),tools:e.array(v).optional(),createdAt:e.string(),updatedAt:e.string(),systemMessage:e.string().nullable().optional(),modelLabel:e.string().nullable().optional(),examples:e.array(b).optional(),chatGptLabel:e.string().nullable().optional(),userLabel:e.string().optional(),model:e.string().nullable().optional(),promptPrefix:e.string().nullable().optional(),temperature:e.number().optional(),topP:e.number().optional(),topK:e.number().optional(),context:e.string().nullable().optional(),top_p:e.number().optional(),frequency_penalty:e.number().optional(),presence_penalty:e.number().optional(),jailbreak:e.boolean().optional(),jailbreakConversationId:e.string().nullable().optional(),conversationSignature:e.string().nullable().optional(),parentMessageId:e.string().optional(),clientId:e.string().nullable().optional(),invocationId:e.number().nullable().optional(),toneStyle:e.string().nullable().optional(),maxOutputTokens:e.number().optional(),agentOptions:y.nullable().optional(),resendImages:e.boolean().optional(),imageDetail:f.optional(),assistant_id:e.string().optional(),thread_id:e.string().optional()}),O=I.omit({conversationId:!0,createdAt:!0,updatedAt:!0,title:!0}).merge(e.object({conversationId:e.string().nullable().optional(),presetId:e.string().nullable().optional(),title:e.string().nullable().optional(),defaultPreset:e.boolean().optional(),order:e.number().optional(),endpoint:d.nullable()})),k=I.merge(e.object({endpoint:d.nullable()})),x=I.merge(e.object({endpoint:d.nullable()})),_=I.pick({model:!0,chatGptLabel:!0,promptPrefix:!0,temperature:!0,top_p:!0,presence_penalty:!0,frequency_penalty:!0,resendImages:!0,imageDetail:!0}).transform((function(e){var t,n,o,r,a,s,u,p,c;return i(i({},e),{model:null!==(t=e.model)&&void 0!==t?t:"gpt-3.5-turbo",chatGptLabel:null!==(n=e.chatGptLabel)&&void 0!==n?n:null,promptPrefix:null!==(o=e.promptPrefix)&&void 0!==o?o:null,temperature:null!==(r=e.temperature)&&void 0!==r?r:1,top_p:null!==(a=e.top_p)&&void 0!==a?a:1,presence_penalty:null!==(s=e.presence_penalty)&&void 0!==s?s:0,frequency_penalty:null!==(u=e.frequency_penalty)&&void 0!==u?u:0,resendImages:null!==(p=e.resendImages)&&void 0!==p&&p,imageDetail:null!==(c=e.imageDetail)&&void 0!==c?c:l.auto})})).catch((function(){return{model:"gpt-3.5-turbo",chatGptLabel:null,promptPrefix:null,temperature:1,top_p:1,presence_penalty:0,frequency_penalty:0,resendImages:!1,imageDetail:l.auto}})),C=I.pick({model:!0,modelLabel:!0,promptPrefix:!0,examples:!0,temperature:!0,maxOutputTokens:!0,topP:!0,topK:!0}).transform((function(e){var t,n,o,r,a,s,l,u,c,d,h=null===(n=null===(t=null==e?void 0:e.model)||void 0===t?void 0:t.toLowerCase())||void 0===n?void 0:n.includes("gemini-pro"),g=h?p.maxOutputTokens.maxGeminiPro:p.maxOutputTokens.max,f=h?p.maxOutputTokens.defaultGeminiPro:p.maxOutputTokens.default,m=null!==(o=e.maxOutputTokens)&&void 0!==o?o:f;return m=Math.min(m,g),i(i({},e),{model:null!==(r=e.model)&&void 0!==r?r:p.model.default,modelLabel:null!==(a=e.modelLabel)&&void 0!==a?a:null,promptPrefix:null!==(s=e.promptPrefix)&&void 0!==s?s:null,examples:null!==(l=e.examples)&&void 0!==l?l:[{input:{content:""},output:{content:""}}],temperature:null!==(u=e.temperature)&&void 0!==u?u:p.temperature.default,maxOutputTokens:m,topP:null!==(c=e.topP)&&void 0!==c?c:p.topP.default,topK:null!==(d=e.topK)&&void 0!==d?d:p.topK.default})})).catch((function(){return{model:p.model.default,modelLabel:null,promptPrefix:null,examples:[{input:{content:""},output:{content:""}}],temperature:p.temperature.default,maxOutputTokens:p.maxOutputTokens.default,topP:p.topP.default,topK:p.topK.default}})),E=I.pick({jailbreak:!0,systemMessage:!0,context:!0,toneStyle:!0,jailbreakConversationId:!0,conversationSignature:!0,clientId:!0,invocationId:!0}).transform((function(e){var t,n,o,r,a,s,l,u;return i(i({},e),{model:"",jailbreak:null!==(t=e.jailbreak)&&void 0!==t&&t,systemMessage:null!==(n=e.systemMessage)&&void 0!==n?n:null,context:null!==(o=e.context)&&void 0!==o?o:null,toneStyle:null!==(r=e.toneStyle)&&void 0!==r?r:"creative",jailbreakConversationId:null!==(a=e.jailbreakConversationId)&&void 0!==a?a:null,conversationSignature:null!==(s=e.conversationSignature)&&void 0!==s?s:null,clientId:null!==(l=e.clientId)&&void 0!==l?l:null,invocationId:null!==(u=e.invocationId)&&void 0!==u?u:1})})).catch((function(){return{model:"",jailbreak:!1,systemMessage:null,context:null,toneStyle:"creative",jailbreakConversationId:null,conversationSignature:null,clientId:null,invocationId:1}})),w=I.pick({model:!0,modelLabel:!0,promptPrefix:!0,temperature:!0,maxOutputTokens:!0,topP:!0,topK:!0}).transform((function(e){var t,n,o,r,a,s,l;return i(i({},e),{model:null!==(t=e.model)&&void 0!==t?t:"claude-1",modelLabel:null!==(n=e.modelLabel)&&void 0!==n?n:null,promptPrefix:null!==(o=e.promptPrefix)&&void 0!==o?o:null,temperature:null!==(r=e.temperature)&&void 0!==r?r:1,maxOutputTokens:null!==(a=e.maxOutputTokens)&&void 0!==a?a:4e3,topP:null!==(s=e.topP)&&void 0!==s?s:.7,topK:null!==(l=e.topK)&&void 0!==l?l:5})})).catch((function(){return{model:"claude-1",modelLabel:null,promptPrefix:null,temperature:1,maxOutputTokens:4e3,topP:.7,topK:5}})),A=I.pick({model:!0}).transform((function(e){var t;return i(i({},e),{model:null!==(t=e.model)&&void 0!==t?t:"text-davinci-002-render-sha"})})).catch((function(){return{model:"text-davinci-002-render-sha"}})),T=I.pick({model:!0,chatGptLabel:!0,promptPrefix:!0,temperature:!0,top_p:!0,presence_penalty:!0,frequency_penalty:!0,tools:!0,agentOptions:!0}).transform((function(e){var t,n,o,r,a,s,l,u,p;return i(i({},e),{model:null!==(t=e.model)&&void 0!==t?t:"gpt-3.5-turbo",chatGptLabel:null!==(n=e.chatGptLabel)&&void 0!==n?n:null,promptPrefix:null!==(o=e.promptPrefix)&&void 0!==o?o:null,temperature:null!==(r=e.temperature)&&void 0!==r?r:.8,top_p:null!==(a=e.top_p)&&void 0!==a?a:1,presence_penalty:null!==(s=e.presence_penalty)&&void 0!==s?s:0,frequency_penalty:null!==(l=e.frequency_penalty)&&void 0!==l?l:0,tools:null!==(u=e.tools)&&void 0!==u?u:[],agentOptions:null!==(p=e.agentOptions)&&void 0!==p?p:{agent:"functions",skipCompletion:!0,model:"gpt-3.5-turbo",temperature:0}})})).catch((function(){return{model:"gpt-3.5-turbo",chatGptLabel:null,promptPrefix:null,temperature:.8,top_p:1,presence_penalty:0,frequency_penalty:0,tools:[],agentOptions:{agent:"functions",skipCompletion:!0,model:"gpt-3.5-turbo",temperature:0}}}));function L(e){var t=i({},e);return Object.keys(t).forEach((function(e){void 0!==t[e]&&null!==t[e]&&""!==t[e]||delete t[e]})),t}var S,G,j,N,K,D,M=I.pick({model:!0,assistant_id:!0,thread_id:!0}).transform(L).catch((function(){return{}})),R=I.pick({model:!0,chatGptLabel:!0,promptPrefix:!0,temperature:!0,top_p:!0,presence_penalty:!0,frequency_penalty:!0,resendImages:!0,imageDetail:!0}).transform((function(e){var t=i({},e);return"gpt-3.5-turbo"===t.model&&delete t.model,1===t.temperature&&delete t.temperature,1===t.top_p&&delete t.top_p,0===t.presence_penalty&&delete t.presence_penalty,0===t.frequency_penalty&&delete t.frequency_penalty,!0!==t.resendImages&&delete t.resendImages,t.imageDetail===l.auto&&delete t.imageDetail,L(t)})).catch((function(){return{}})),q=I.pick({model:!0,modelLabel:!0,promptPrefix:!0,examples:!0,temperature:!0,maxOutputTokens:!0,topP:!0,topK:!0}).transform((function(e){var t=i({},e);return t.model===p.model.default&&delete t.model,t.temperature===p.temperature.default&&delete t.temperature,t.maxOutputTokens===p.maxOutputTokens.default&&delete t.maxOutputTokens,t.topP===p.topP.default&&delete t.topP,t.topK===p.topK.default&&delete t.topK,L(t)})).catch((function(){return{}})),B=I.pick({model:!0,modelLabel:!0,promptPrefix:!0,temperature:!0,maxOutputTokens:!0,topP:!0,topK:!0}).transform((function(e){var t=i({},e);return"claude-1"===t.model&&delete t.model,1===t.temperature&&delete t.temperature,4e3===t.maxOutputTokens&&delete t.maxOutputTokens,.7===t.topP&&delete t.topP,5===t.topK&&delete t.topK,L(t)})).catch((function(){return{}})),z=I.pick({model:!0}).transform((function(e){var t=i({},e);return"text-davinci-002-render-sha"===t.model&&delete t.model,L(t)})).catch((function(){return{}})),U=I.pick({model:!0,chatGptLabel:!0,promptPrefix:!0,temperature:!0,top_p:!0,presence_penalty:!0,frequency_penalty:!0,tools:!0,agentOptions:!0}).transform((function(e){var t,n=i({},e);return"gpt-3.5-turbo"===n.model&&delete n.model,null===n.chatGptLabel&&delete n.chatGptLabel,null===n.promptPrefix&&delete n.promptPrefix,.8===n.temperature&&delete n.temperature,1===n.top_p&&delete n.top_p,0===n.presence_penalty&&delete n.presence_penalty,0===n.frequency_penalty&&delete n.frequency_penalty,0===(null===(t=n.tools)||void 0===t?void 0:t.length)&&delete n.tools,n.agentOptions&&"functions"===n.agentOptions.agent&&!0===n.agentOptions.skipCompletion&&"gpt-3.5-turbo"===n.agentOptions.model&&0===n.agentOptions.temperature&&delete n.agentOptions,L(n)})).catch((function(){return{}}));!function(e){e.local="local",e.firebase="firebase",e.openai="openai",e.s3="s3"}(S||(S={}));var F,H=e.nativeEnum(S),V=e.object({name:e.string().refine((function(e){return!c.safeParse(e).success}),{message:"Value cannot be one of the default endpoint (EModelEndpoint) values: ".concat(Object.values(r).join(", "))}),apiKey:e.string(),baseURL:e.string(),models:e.object({default:e.array(e.string()).min(1),fetch:e.boolean().optional()}),titleConvo:e.boolean().optional(),titleMethod:e.union([e.literal("completion"),e.literal("functions")]).optional(),titleModel:e.string().optional(),summarize:e.boolean().optional(),summaryModel:e.string().optional(),forcePrompt:e.boolean().optional(),modelDisplayLabel:e.string().optional(),headers:e.record(e.any()).optional()}),W=e.object({version:e.string(),cache:e.boolean(),fileStrategy:H.optional(),endpoints:e.object({custom:e.array(V.partial())}).strict()});!function(e){e.mistral="mistral",e.openrouter="openrouter"}(F||(F={}));var Y,J,X,Z,Q,$=[r.openAI,r.assistant,r.azureOpenAI,r.bingAI,r.chatGPTBrowser,r.gptPlugins,r.google,r.anthropic,r.custom],ee=((G={})[r.openAI]="OpenAI",G[r.assistant]="Assistants",G[r.azureOpenAI]="Azure OpenAI",G[r.bingAI]="Bing",G[r.chatGPTBrowser]="ChatGPT",G[r.gptPlugins]="Plugins",G[r.google]="Google",G[r.anthropic]="Anthropic",G[r.custom]="Custom",G),te=((j={})[r.google]=["gemini-pro","gemini-pro-vision","chat-bison","chat-bison-32k","codechat-bison","codechat-bison-32k","text-bison","text-bison-32k","text-unicorn","code-gecko","code-bison","code-bison-32k"],j[r.anthropic]=["claude-2.1","claude-2","claude-1.2","claude-1","claude-1-100k","claude-instant-1","claude-instant-1-100k"],j[r.openAI]=["gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-1106-preview","gpt-3.5-turbo","gpt-3.5-turbo-1106","gpt-4-vision-preview","gpt-4","gpt-3.5-turbo-instruct-0914","gpt-3.5-turbo-0613","gpt-3.5-turbo-0301","gpt-3.5-turbo-instruct","gpt-4-0613","text-davinci-003","gpt-4-0314"],j),ne=((N={})[r.openAI]="/api/ask/".concat(r.openAI),N[r.bingAI]="/api/ask/".concat(r.bingAI),N[r.google]="/api/ask/".concat(r.google),N[r.custom]="/api/ask/".concat(r.custom),N[r.anthropic]="/api/ask/".concat(r.anthropic),N[r.gptPlugins]="/api/ask/".concat(r.gptPlugins),N[r.azureOpenAI]="/api/ask/".concat(r.azureOpenAI),N[r.chatGPTBrowser]="/api/ask/".concat(r.chatGPTBrowser),N[r.assistant]="/api/assistants/chat",N),oe=new Set([r.gptPlugins,r.anthropic,r.google,r.openAI,r.azureOpenAI,r.custom]),re=((K={})[r.openAI]=!0,K[r.google]=!0,K[r.assistant]=!0,K[r.azureOpenAI]=!0,K[r.custom]=!0,K),ie=((D={})[r.openAI]=!0,D[r.azureOpenAI]=!0,D[r.gptPlugins]=!0,D[r.custom]=!0,D),ae=["gpt-4-vision","llava-13b","gemini-pro-vision"];!function(e){e.CONFIG_STORE="configStore",e.PLUGINS="plugins",e.MODELS_CONFIG="modelsConfig",e.ENDPOINT_CONFIG="endpointsConfig",e.CUSTOM_CONFIG="customConfig",e.OVERRIDE_CONFIG="overrideConfig"}(Y||(Y={})),function(e){e.GOOGLE_SERVICE_KEY="GOOGLE_SERVICE_KEY",e.GOOGLE_API_KEY="GOOGLE_API_KEY"}(J||(J={})),function(e){e[e.LOW=85]="LOW",e[e.HIGH=170]="HIGH",e[e.ADDITIONAL=85]="ADDITIONAL"}(X||(X={})),function(e){e.GENERAL="general",e.BETA="beta",e.DATA="data",e.ACCOUNT="account"}(Z||(Z={}));var se=((Q={})[r.openAI]=_,Q[r.azureOpenAI]=_,Q[r.custom]=_,Q[r.google]=C,Q[r.bingAI]=E,Q[r.anthropic]=w,Q[r.chatGPTBrowser]=A,Q[r.gptPlugins]=T,Q[r.assistant]=M,Q);function le(e){for(var t,n=0,o=e;n<o.length;n++){var r=o[n];if(r){t=r;break}}return t}var ue,pe,ce,de=function(e){var t,n,o=e.endpoint,r=e.endpointType,i=e.conversation,a=e.possibleValues,s=se[o];if(!s&&!r)throw new Error("Unknown endpoint: ".concat(o));!s&&r&&(s=se[r]);var l=s.parse(i),u=null!=a?a:{},p=u.models,c=u.secondaryModels;return p&&l&&(l.model=null!==(t=le(p))&&void 0!==t?t:l.model),c&&l.agentOptions&&(l.agentOptions.model=null!==(n=le(c))&&void 0!==n?n:l.agentOptions.model),l},he=function(e){var t,n=e.model,o=e.endpoint,i=e.endpointType,a=e.modelDisplayLabel,s=e.chatGptLabel,l=e.modelLabel,u=e.jailbreak;return[r.openAI,r.azureOpenAI,r.gptPlugins,r.chatGPTBrowser].includes(o)?s||(n&&n.includes("gpt-3")?"GPT-3.5":n&&n.includes("gpt-4")?"GPT-4":n&&n.includes("mistral")?"Mistral":null!==(t=ee[o])&&void 0!==t?t:"ChatGPT"):o===r.bingAI?u?"Sydney":"BingAI":o===r.anthropic?null!=l?l:"Claude":o===r.google?l||(n&&n.includes("gemini")?"Gemini":n&&n.includes("code")?"Codey":"PaLM2"):o===r.custom||i===r.custom?l||(s||(n&&n.includes("mistral")?"Mistral":n&&n.includes("gpt-3")?"GPT-3.5":n&&n.includes("gpt-4")?"GPT-4":a||"AI")):""},ge={openAI:R,azureOpenAI:R,custom:R,assistant:M,google:q,bingAI:E,anthropic:B,chatGPTBrowser:z,gptPlugins:U},fe=function(e){var t,n=e.endpoint,o=e.endpointType,r=e.conversation,i=e.possibleValues;if(!n)throw new Error("undefined endpoint: ".concat(n));var a=ge[n];if(!a&&!o)throw new Error("Unknown endpoint: ".concat(n));!a&&o&&(a=ge[o]);var s=a.parse(r),l=(null!=i?i:{}).models;return l&&s&&(s.model=null!==(t=le(l))&&void 0!==t?t:s.model),s};function me(e){t.defaults.headers.common["Accept-Language"]=e}function ve(e){t.defaults.headers.common.Authorization="Bearer "+e}!function(e){e.code_interpreter="code_interpreter",e.retrieval="retrieval",e.function="function"}(ue||(ue={})),function(e){e.messages="messages",e.allConversations="allConversations",e.conversation="conversation",e.searchEnabled="searchEnabled",e.user="user",e.name="name",e.models="models",e.balance="balance",e.endpoints="endpoints",e.presets="presets",e.searchResults="searchResults",e.tokenCount="tokenCount",e.availablePlugins="availablePlugins",e.startupConfig="startupConfig",e.assistants="assistants",e.assistant="assistant",e.endpointsConfigOverride="endpointsConfigOverride",e.files="files"}(pe||(pe={})),function(e){e.imageUpload="imageUpload",e.fileDelete="fileDelete",e.updatePreset="updatePreset",e.deletePreset="deletePreset",e.logoutUser="logoutUser",e.avatarUpload="avatarUpload"}(ce||(ce={}));var be=function(e,t){return"/api/messages/".concat(e).concat(t?"/".concat(t):"")},ye="/api/keys",Pe=function(e,t){return"/api/search?q=".concat(e,"&pageNumber=").concat(t)},Ie=function(e){return"/api/assistants".concat(e?"/".concat(e):"")},Oe=function(){return"".concat("/api/files","/images")};function ke(e,n){return a(this,void 0,void 0,(function(){return s(this,(function(o){switch(o.label){case 0:return[4,t.post(e,JSON.stringify(n),{headers:{"Content-Type":"application/json"}})];case 1:return[2,o.sent().data]}}))}))}var xe=!1,_e=[],Ce=function(e){return ke(function(e){return"/api/auth/refresh".concat(e?"?retry=true":"")}(e))},Ee=function(e,t){void 0===t&&(t=null),_e.forEach((function(n){e?n.reject(e):n.resolve(t)})),_e=[]};t.interceptors.response.use((function(e){return e}),(function(e){return a(void 0,void 0,void 0,(function(){var n,o,r,i,a;return s(this,(function(s){switch(s.label){case 0:if(n=e.config,401!==e.response.status||n._retry)return[3,13];if(n._retry=!0,!xe)return[3,5];s.label=1;case 1:return s.trys.push([1,4,,5]),[4,new Promise((function(e,t){_e.push({resolve:e,reject:t})}))];case 2:return r=s.sent(),n.headers.Authorization="Bearer "+r,[4,t(n)];case 3:return[2,s.sent()];case 4:return o=s.sent(),[2,Promise.reject(o)];case 5:xe=!0,s.label=6;case 6:return s.trys.push([6,11,12,13]),[4,Ce(!!(null===(a=n.url)||void 0===a?void 0:a.includes("api/auth/refresh")))];case 7:return(r=s.sent().token)?(n.headers.Authorization="Bearer "+r,ve(r),window.dispatchEvent(new CustomEvent("tokenUpdated",{detail:r})),Ee(null,r),[4,t(n)]):[3,9];case 8:return[2,s.sent()];case 9:window.location.href="/login",s.label=10;case 10:return[3,13];case 11:return i=s.sent(),Ee(i,null),[2,Promise.reject(i)];case 12:return xe=!1,[7];case 13:return[2,Promise.reject(e)]}}))}))}));var we={get:function(e,n){return a(this,void 0,void 0,(function(){return s(this,(function(o){switch(o.label){case 0:return[4,t.get(e,i({},n))];case 1:return[2,o.sent().data]}}))}))},post:ke,postMultiPart:function(e,n,o){return a(this,void 0,void 0,(function(){return s(this,(function(r){switch(r.label){case 0:return[4,t.post(e,n,i(i({},o),{headers:{"Content-Type":"multipart/form-data"}}))];case 1:return[2,r.sent().data]}}))}))},put:function(e,n){return a(this,void 0,void 0,(function(){return s(this,(function(o){switch(o.label){case 0:return[4,t.put(e,JSON.stringify(n),{headers:{"Content-Type":"application/json"}})];case 1:return[2,o.sent().data]}}))}))},delete:function(e){return a(this,void 0,void 0,(function(){return s(this,(function(n){switch(n.label){case 0:return[4,t.delete(e)];case 1:return[2,n.sent().data]}}))}))},deleteWithOptions:function(e,n){return a(this,void 0,void 0,(function(){return s(this,(function(o){switch(o.label){case 0:return[4,t.delete(e,i({},n))];case 1:return[2,o.sent().data]}}))}))},patch:function(e,n){return a(this,void 0,void 0,(function(){return s(this,(function(o){switch(o.label){case 0:return[4,t.patch(e,JSON.stringify(n),{headers:{"Content-Type":"application/json"}})];case 1:return[2,o.sent().data]}}))}))},refreshToken:Ce};var Ae=Object.freeze({__proto__:null,abortRequestWithMessage:function(e,t,n){return we.post(function(e){return"/api/ask/".concat(e,"/abort")}(e),{arg:{abortKey:t,message:n}})},clearAllConversations:function(){return we.post("/api/convos/clear",{arg:{}})},createAssistant:function(e){return we.post(Ie(),e)},createPreset:function(e){return we.post("/api/presets",e)},deleteAssistant:function(e){return we.delete(Ie(e))},deleteConversation:function(e){return we.post("/api/convos/clear",{arg:e})},deleteFiles:function(e){return a(void 0,void 0,void 0,(function(){return s(this,(function(t){return[2,we.deleteWithOptions("/api/files",{data:{files:e}})]}))}))},deletePreset:function(e){return we.post("/api/presets/delete",e)},getAIEndpoints:function(){return we.get("/api/endpoints")},getAssistantById:function(e){return we.get(Ie(e))},getAvailablePlugins:function(){return we.get("/api/plugins")},getConversationById:function(e){return we.get(function(e){return"/api/convos/".concat(e)}(e))},getConversations:function(e){return we.get(function(e){return"/api/convos?pageNumber=".concat(e)}(e))},getEndpointsConfigOverride:function(){return we.get("/api/endpoints/config/override")},getFiles:function(){return we.get("/api/files")},getLoginGoogle:function(){return we.get("/api/auth/google")},getMessagesByConvoId:function(e){return"new"===e?Promise.resolve([]):we.get(be(e))},getModels:function(){return a(void 0,void 0,void 0,(function(){return s(this,(function(e){return[2,we.get("/api/models")]}))}))},getPresets:function(){return we.get("/api/presets")},getSearchEnabled:function(){return we.get("/api/search/enable")},getStartupConfig:function(){return we.get("/api/config")},getUser:function(){return we.get("/api/user")},getUserBalance:function(){return we.get("/api/balance")},listAssistants:function(e){return we.get(Ie(),{params:e})},login:function(e){return we.post("/api/auth/login",e)},logout:function(){return we.post("/api/auth/logout")},register:function(e){return we.post("/api/auth/register",e)},requestPasswordReset:function(e){return we.post("/api/auth/requestPasswordReset",e)},resetPassword:function(e){return we.post("/api/auth/resetPassword",e)},revokeAllUserKeys:function(){return we.delete("".concat(ye,"?all=true"))},revokeUserKey:function(e){return we.delete(function(e){return"".concat(ye,"/").concat(e)}(e))},searchConversations:function(e,t){return a(void 0,void 0,void 0,(function(){return s(this,(function(n){return[2,we.get(Pe(e,t))]}))}))},updateAssistant:function(e,t){return we.patch(Ie(e),t)},updateConversation:function(e){return we.post("/api/convos/update",{arg:e})},updateMessage:function(e){var t=e.conversationId,n=e.messageId,o=e.text;if(!t)throw new Error("conversationId is required");return we.put(be(t,n),{text:o})},updatePreset:function(e){return we.post("/api/presets",e)},updateTokenCount:function(e){return we.post("/api/tokenizer",{arg:e})},updateUserKey:function(e){if(!e.value)throw new Error("value is required");return we.put(ye,e)},updateUserPlugins:function(e){return we.post("/api/user/plugins",e)},uploadAvatar:function(e){return we.postMultiPart("".concat(Oe(),"/avatar"),e)},uploadImage:function(e){return we.postMultiPart(Oe(),e)},userKeyQuery:function(e){return we.get(function(e){return"".concat(ye,"?name=").concat(e)}(e))}}),Te=function(e,t){if(!(this instanceof Te))return new Te(e,t);this.INITIALIZING=-1,this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,this.url=e,t=t||{},this.headers=t.headers||{},this.payload=void 0!==t.payload?t.payload:"",this.method=t.method||this.payload&&"POST"||"GET",this.withCredentials=!!t.withCredentials,this.FIELD_SEPARATOR=":",this.listeners={},this.xhr=null,this.readyState=this.INITIALIZING,this.progress=0,this.chunk="",this.addEventListener=function(e,t){void 0===this.listeners[e]&&(this.listeners[e]=[]),-1===this.listeners[e].indexOf(t)&&this.listeners[e].push(t)},this.removeEventListener=function(e,t){if(void 0!==this.listeners[e]){var n=[];this.listeners[e].forEach((function(e){e!==t&&n.push(e)})),0===n.length?delete this.listeners[e]:this.listeners[e]=n}},this.dispatchEvent=function(e){if(!e)return!0;e.source=this;var t="on"+e.type;return(!this.hasOwnProperty(t)||(this[t].call(this,e),!e.defaultPrevented))&&(!this.listeners[e.type]||this.listeners[e.type].every((function(t){return t(e),!e.defaultPrevented})))},this._setReadyState=function(e){var t=new CustomEvent("readystatechange");t.readyState=e,this.readyState=e,this.dispatchEvent(t)},this._onStreamFailure=function(e){var t=new CustomEvent("error");t.data=e.currentTarget.response,this.dispatchEvent(t),this.close()},this._onStreamAbort=function(e){this.dispatchEvent(new CustomEvent("abort")),this.close()},this._onStreamProgress=async function(e){if(this.xhr){if(401!==this.xhr.status||this._retry){if(200!==this.xhr.status)return void this._onStreamFailure(e)}else{this._retry=!0;try{const e=await we.refreshToken();this.headers={"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},ve(e.token),window.dispatchEvent(new CustomEvent("tokenUpdated",{detail:e.token})),this.stream()}catch(t){return void this._onStreamFailure(e)}}this.readyState==this.CONNECTING&&(this.dispatchEvent(new CustomEvent("open")),this._setReadyState(this.OPEN));var t=this.xhr.responseText.substring(this.progress);this.progress+=t.length,t.split(/(\r\n|\r|\n){2}/g).forEach(function(e){0===e.trim().length?(this.dispatchEvent(this._parseEventChunk(this.chunk.trim())),this.chunk=""):this.chunk+=e}.bind(this))}},this._onStreamLoaded=function(e){this._onStreamProgress(e),this.dispatchEvent(this._parseEventChunk(this.chunk)),this.chunk=""},this._parseEventChunk=function(e){if(!e||0===e.length)return null;var t={id:null,retry:null,data:"",event:"message"};e.split(/\n|\r\n|\r/).forEach(function(e){var n=(e=e.trimRight()).indexOf(this.FIELD_SEPARATOR);if(!(n<=0)){var o=e.substring(0,n);if(o in t){var r=e.substring(n+1).trimLeft();"data"===o?t[o]+=r:t[o]=r}}}.bind(this));var n=new CustomEvent(t.event);return n.data=t.data,n.id=t.id,n},this._checkStreamClosed=function(){this.xhr&&this.xhr.readyState===XMLHttpRequest.DONE&&this._setReadyState(this.CLOSED)},this.stream=function(){for(var e in this._setReadyState(this.CONNECTING),this.xhr=new XMLHttpRequest,this.xhr.addEventListener("progress",this._onStreamProgress.bind(this)),this.xhr.addEventListener("load",this._onStreamLoaded.bind(this)),this.xhr.addEventListener("readystatechange",this._checkStreamClosed.bind(this)),this.xhr.addEventListener("error",this._onStreamFailure.bind(this)),this.xhr.addEventListener("abort",this._onStreamAbort.bind(this)),this.xhr.open(this.method,this.url),this.headers)this.xhr.setRequestHeader(e,this.headers[e]);this.xhr.withCredentials=this.withCredentials,this.xhr.send(this.payload)},this.close=function(){this.readyState!==this.CLOSED&&(this.xhr.abort(),this.xhr=null,this._setReadyState(this.CLOSED))}};function Le(e){var t=e.conversation,n=e.message,o=e.messages,a=e.endpointOption,s=e.isEdited,l=e.isContinued,u=k.parse(t).conversationId,p=a,c=p.endpoint,d=p.endpointType,h=ne[null!=d?d:c];s&&c===r.assistant?h+="/modify":s&&(h=h.replace("/ask/","/edit/"));var g=i(i(i({},n),a),{isContinued:!(!s||!l),conversationId:u});return c===r.assistant&&(g.messages=o),{server:h,payload:g}}export{J as AuthKeys,Y as CacheKeys,r as EModelEndpoint,ne as EndpointURLs,S as FileSources,l as ImageDetail,X as ImageDetailCost,F as KnownEndpoints,ce as MutationKeys,pe as QueryKeys,Te as SSE,Z as SettingsTabValues,ue as Tools,ee as alternateName,w as anthropicSchema,M as assistantSchema,E as bingAISchema,A as chatGPTBrowserSchema,B as compactAnthropicSchema,z as compactChatGPTSchema,q as compactGoogleSchema,R as compactOpenAISchema,U as compactPluginsSchema,W as configSchema,Le as createPayload,Ae as dataService,$ as defaultEndpoints,te as defaultModels,f as eImageDetailSchema,c as eModelEndpointSchema,V as endpointSchema,u as endpointSettings,d as extendedModelEndpointSchema,H as fileSourceSchema,le as getFirstDefinedValue,he as getResponseSender,C as googleSchema,T as gptPluginsSchema,h as imageDetailNumeric,g as imageDetailValue,oe as modularEndpoints,_ as openAISchema,fe as parseCompactConvo,de as parseConvo,L as removeNullishValues,we as request,me as setAcceptLanguageHeader,ve as setTokenHeader,ie as supportsBalanceCheck,re as supportsFiles,y as tAgentOptionsSchema,I as tConversationSchema,k as tConvoUpdateSchema,b as tExampleSchema,P as tMessageSchema,m as tPluginAuthConfigSchema,v as tPluginSchema,O as tPresetSchema,x as tPresetUpdateSchema,ae as visionModels};
2
2
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/schemas.ts","../src/config.ts","../src/parsers.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 custom = 'custom',\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 maxGeminiPro: 8192,\n defaultGeminiPro: 8192,\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 eModelEndpointSchema = z.nativeEnum(EModelEndpoint);\n\nexport const extendedModelEndpointSchema = z.union([eModelEndpointSchema, z.string()]);\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 endpoint: z.string().optional(),\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 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 endpointType: eModelEndpointSchema.optional(),\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().nullable().optional(),\n presetId: z.string().nullable().optional(),\n title: z.string().nullable().optional(),\n defaultPreset: z.boolean().optional(),\n order: z.number().optional(),\n endpoint: extendedModelEndpointSchema.nullable(),\n }),\n );\n\nexport const tConvoUpdateSchema = tConversationSchema.merge(\n z.object({\n endpoint: extendedModelEndpointSchema.nullable(),\n }),\n);\n\nexport const tPresetUpdateSchema = tConversationSchema.merge(\n z.object({\n endpoint: extendedModelEndpointSchema.nullable(),\n }),\n);\n\nexport type TPreset = z.infer<typeof tPresetSchema>;\n\n// type DefaultSchemaValues = Partial<typeof google>;\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 const isGeminiPro = obj?.model?.toLowerCase()?.includes('gemini-pro');\n\n const maxOutputTokensMax = isGeminiPro\n ? google.maxOutputTokens.maxGeminiPro\n : google.maxOutputTokens.max;\n const maxOutputTokensDefault = isGeminiPro\n ? google.maxOutputTokens.defaultGeminiPro\n : google.maxOutputTokens.default;\n\n let maxOutputTokens = obj.maxOutputTokens ?? maxOutputTokensDefault;\n maxOutputTokens = Math.min(maxOutputTokens, maxOutputTokensMax);\n\n return {\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,\n topP: obj.topP ?? google.topP.default,\n topK: obj.topK ?? google.topK.default,\n };\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\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\n// const createGoogleSchema = (customGoogle: DefaultSchemaValues) => {\n// const defaults = { ...google, ...customGoogle };\n// return 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 isGeminiPro = obj?.model?.toLowerCase()?.includes('gemini-pro');\n\n// const maxOutputTokensMax = isGeminiPro\n// ? defaults.maxOutputTokens.maxGeminiPro\n// : defaults.maxOutputTokens.max;\n// const maxOutputTokensDefault = isGeminiPro\n// ? defaults.maxOutputTokens.defaultGeminiPro\n// : defaults.maxOutputTokens.default;\n\n// let maxOutputTokens = obj.maxOutputTokens ?? maxOutputTokensDefault;\n// maxOutputTokens = Math.min(maxOutputTokens, maxOutputTokensMax);\n\n// return {\n// ...obj,\n// model: obj.model ?? defaults.model.default,\n// modelLabel: obj.modelLabel ?? null,\n// promptPrefix: obj.promptPrefix ?? null,\n// examples: obj.examples ?? [{ input: { content: '' }, output: { content: '' } }],\n// temperature: obj.temperature ?? defaults.temperature.default,\n// maxOutputTokens,\n// topP: obj.topP ?? defaults.topP.default,\n// topK: obj.topK ?? defaults.topK.default,\n// };\n// })\n// .catch(() => ({\n// model: defaults.model.default,\n// modelLabel: null,\n// promptPrefix: null,\n// examples: [{ input: { content: '' }, output: { content: '' } }],\n// temperature: defaults.temperature.default,\n// maxOutputTokens: defaults.maxOutputTokens.default,\n// topP: defaults.topP.default,\n// topK: defaults.topK.default,\n// }));\n// };\n","import { z } from 'zod';\nimport { EModelEndpoint, eModelEndpointSchema } from './schemas';\n\nexport const endpointSchema = z.object({\n name: z.string().refine((value) => !eModelEndpointSchema.safeParse(value).success, {\n message: `Value cannot be one of the default endpoint (EModelEndpoint) values: ${Object.values(\n EModelEndpoint,\n ).join(', ')}`,\n }),\n apiKey: z.string(),\n baseURL: z.string(),\n models: z.object({\n default: z.array(z.string()).min(1),\n fetch: z.boolean().optional(),\n }),\n titleConvo: z.boolean().optional(),\n titleMethod: z.union([z.literal('completion'), z.literal('functions')]).optional(),\n titleModel: z.string().optional(),\n summarize: z.boolean().optional(),\n summaryModel: z.string().optional(),\n forcePrompt: z.boolean().optional(),\n modelDisplayLabel: z.string().optional(),\n});\n\nexport const configSchema = z.object({\n version: z.string(),\n cache: z.boolean(),\n endpoints: z\n .object({\n custom: z.array(endpointSchema.partial()),\n })\n .strict(),\n});\n\nexport enum KnownEndpoints {\n mistral = 'mistral',\n openrouter = 'openrouter',\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 EModelEndpoint.custom,\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 [EModelEndpoint.custom]: 'Custom',\n};\n\nexport const defaultModels = {\n [EModelEndpoint.google]: [\n 'gemini-pro',\n 'gemini-pro-vision',\n 'chat-bison',\n 'chat-bison-32k',\n 'codechat-bison',\n 'codechat-bison-32k',\n 'text-bison',\n 'text-bison-32k',\n 'text-unicorn',\n 'code-gecko',\n 'code-bison',\n 'code-bison-32k',\n ],\n [EModelEndpoint.anthropic]: [\n 'claude-2.1',\n 'claude-2',\n 'claude-1.2',\n 'claude-1',\n 'claude-1-100k',\n 'claude-instant-1',\n 'claude-instant-1-100k',\n ],\n [EModelEndpoint.openAI]: [\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};\n\nexport const EndpointURLs: { [key in EModelEndpoint]: string } = {\n [EModelEndpoint.openAI]: `/api/ask/${EModelEndpoint.openAI}`,\n [EModelEndpoint.bingAI]: `/api/ask/${EModelEndpoint.bingAI}`,\n [EModelEndpoint.google]: `/api/ask/${EModelEndpoint.google}`,\n [EModelEndpoint.custom]: `/api/ask/${EModelEndpoint.custom}`,\n [EModelEndpoint.anthropic]: `/api/ask/${EModelEndpoint.anthropic}`,\n [EModelEndpoint.gptPlugins]: `/api/ask/${EModelEndpoint.gptPlugins}`,\n [EModelEndpoint.azureOpenAI]: `/api/ask/${EModelEndpoint.azureOpenAI}`,\n [EModelEndpoint.chatGPTBrowser]: `/api/ask/${EModelEndpoint.chatGPTBrowser}`,\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 EModelEndpoint.azureOpenAI,\n EModelEndpoint.custom,\n]);\n\nexport const supportsFiles = {\n [EModelEndpoint.openAI]: true,\n [EModelEndpoint.google]: true,\n [EModelEndpoint.assistant]: true,\n [EModelEndpoint.azureOpenAI]: true,\n [EModelEndpoint.custom]: true,\n};\n\nexport const supportsBalanceCheck = {\n [EModelEndpoint.openAI]: true,\n [EModelEndpoint.azureOpenAI]: true,\n [EModelEndpoint.gptPlugins]: true,\n [EModelEndpoint.custom]: true,\n};\n\nexport const visionModels = ['gpt-4-vision', 'llava-13b', 'gemini-pro-vision'];\n\n/**\n * Enum for cache keys.\n */\nexport enum CacheKeys {\n /**\n * Key for the config store namespace.\n */\n CONFIG_STORE = 'configStore',\n /**\n * Key for the plugins cache.\n */\n PLUGINS = 'plugins',\n /**\n * Key for the model config cache.\n */\n MODELS_CONFIG = 'modelsConfig',\n /**\n * Key for the default endpoint config cache.\n */\n ENDPOINT_CONFIG = 'endpointsConfig',\n /**\n * Key for the custom config cache.\n */\n CUSTOM_CONFIG = 'customConfig',\n /**\n * Key for the override config cache.\n */\n OVERRIDE_CONFIG = 'overrideConfig',\n}\n\n/**\n * Enum for authentication keys.\n */\nexport enum AuthKeys {\n /**\n * Key for the Service Account to use Vertex AI.\n */\n GOOGLE_SERVICE_KEY = 'GOOGLE_SERVICE_KEY',\n /**\n * API key to use Google Generative AI.\n */\n GOOGLE_API_KEY = 'GOOGLE_API_KEY',\n}\n","import type { TConversation, TPreset } from './schemas';\nimport type { TEndpointOption } from './types';\nimport {\n EModelEndpoint,\n openAISchema,\n googleSchema,\n bingAISchema,\n anthropicSchema,\n chatGPTBrowserSchema,\n gptPluginsSchema,\n assistantSchema,\n compactOpenAISchema,\n compactGoogleSchema,\n compactAnthropicSchema,\n compactChatGPTSchema,\n compactPluginsSchema,\n} from './schemas';\nimport { alternateName } from './config';\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.custom]: 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\n// const schemaCreators: Record<EModelEndpoint, (customSchema: DefaultSchemaValues) => EndpointSchema> = {\n// [EModelEndpoint.google]: createGoogleSchema,\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,\n endpointType,\n conversation,\n possibleValues,\n}: {\n endpoint: EModelEndpoint;\n endpointType?: EModelEndpoint;\n conversation: Partial<TConversation | TPreset>;\n possibleValues?: TPossibleValues;\n // TODO: POC for default schema\n // defaultSchema?: Partial<EndpointSchema>,\n}) => {\n let schema = endpointSchemas[endpoint];\n\n if (!schema && !endpointType) {\n throw new Error(`Unknown endpoint: ${endpoint}`);\n } else if (!schema && endpointType) {\n schema = endpointSchemas[endpointType];\n }\n\n // if (defaultSchema && schemaCreators[endpoint]) {\n // schema = schemaCreators[endpoint](defaultSchema);\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 const getResponseSender = (endpointOption: TEndpointOption): string => {\n const { model, endpoint, endpointType, modelDisplayLabel, chatGptLabel, modelLabel, jailbreak } =\n 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 } else if (model && model.includes('mistral')) {\n return 'Mistral';\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('gemini')) {\n return 'Gemini';\n } else if (model && model.includes('code')) {\n return 'Codey';\n }\n\n return 'PaLM2';\n }\n\n if (endpoint === EModelEndpoint.custom || endpointType === EModelEndpoint.custom) {\n if (modelLabel) {\n return modelLabel;\n } else if (chatGptLabel) {\n return chatGptLabel;\n } else if (model && model.includes('mistral')) {\n return 'Mistral';\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 } else if (modelDisplayLabel) {\n return modelDisplayLabel;\n }\n\n return 'AI';\n }\n\n return '';\n};\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 custom: 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,\n endpointType,\n conversation,\n possibleValues,\n}: {\n endpoint?: EModelEndpoint;\n endpointType?: EModelEndpoint;\n conversation: Partial<TConversation | TPreset>;\n possibleValues?: TPossibleValues;\n // TODO: POC for default schema\n // defaultSchema?: Partial<EndpointSchema>,\n}) => {\n if (!endpoint) {\n throw new Error(`undefined endpoint: ${endpoint}`);\n }\n\n let schema = compactEndpointSchemas[endpoint];\n\n if (!schema && !endpointType) {\n throw new Error(`Unknown endpoint: ${endpoint}`);\n } else if (!schema && endpointType) {\n schema = compactEndpointSchemas[endpointType];\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 avatarUpload = 'avatarUpload',\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\nexport const avatar = () => `${images()}/avatar`;\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 uploadAvatar = (data: FormData): Promise<f.AvatarUploadResponse> => {\n return request.postMultiPart(endpoints.avatar(), 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 type { TSubmission, TMessage, TEndpointOption } from './types';\nimport { tConvoUpdateSchema, EModelEndpoint } from './schemas';\nimport { EndpointURLs } from './config';\n\nexport default function createPayload(submission: TSubmission) {\n const { conversation, message, messages, endpointOption, isEdited, isContinued } = submission;\n const { conversationId } = tConvoUpdateSchema.parse(conversation);\n const { endpoint, endpointType } = endpointOption as {\n endpoint: EModelEndpoint;\n endpointType?: EModelEndpoint;\n };\n\n let server = EndpointURLs[endpointType ?? 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","endpointSettings","_a","google","model","default","maxOutputTokens","min","max","step","maxGeminiPro","defaultGeminiPro","temperature","topP","topK","eModelEndpointSchema","z","nativeEnum","extendedModelEndpointSchema","union","string","tPluginAuthConfigSchema","object","authField","label","description","tPluginSchema","name","pluginKey","icon","authConfig","array","authenticated","boolean","optional","isButton","tExampleSchema","input","content","output","tAgentOptionsSchema","agent","skipCompletion","number","tMessageSchema","messageId","endpoint","clientId","nullable","conversationId","parentMessageId","responseMessageId","overrideParentMessageId","bg","title","or","literal","sender","text","generation","isEdited","isCreatedByUser","error","createdAt","Date","toISOString","updatedAt","current","unfinished","searchResult","finish_reason","tConversationSchema","user","endpointType","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","tConvoUpdateSchema","tPresetUpdateSchema","openAISchema","pick","transform","obj","__assign","_b","_c","_d","_e","_f","_g","catch","googleSchema","isGeminiPro","toLowerCase","includes","maxOutputTokensMax","maxOutputTokensDefault","Math","_h","_j","_k","bingAISchema","anthropicSchema","chatGPTBrowserSchema","gptPluginsSchema","removeNullishValues","newObj","Object","keys","forEach","key","undefined","KnownEndpoints","assistantSchema","compactOpenAISchema","compactGoogleSchema","compactAnthropicSchema","compactChatGPTSchema","compactPluginsSchema","length","endpointSchema","refine","value","safeParse","success","message","concat","values","join","apiKey","baseURL","models","fetch","titleConvo","titleMethod","titleModel","summarize","summaryModel","forcePrompt","modelDisplayLabel","configSchema","version","cache","endpoints","custom","partial","strict","CacheKeys","AuthKeys","defaultEndpoints","openAI","assistant","azureOpenAI","bingAI","chatGPTBrowser","gptPlugins","anthropic","alternateName","defaultModels","EndpointURLs","modularEndpoints","Set","supportsFiles","supportsBalanceCheck","visionModels","endpointSchemas","getFirstDefinedValue","possibleValues","returnValue","possibleValues_1","_i","Tools","QueryKeys","MutationKeys","parseConvo","conversation","schema","Error","convo","parse","secondaryModels","getResponseSender","endpointOption","compactEndpointSchemas","parseCompactConvo","setAcceptLanguageHeader","axios","defaults","headers","common","setTokenHeader","token","keysEndpoint","search","q","pageNumber","assistants","id","images","_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","endpoints.abortRequest","arg","endpoints.assistants","payload","files","endpoints.conversationById","endpoints.conversations","endpoints.messages","params","endpoints.revokeUserKey","endpoints.search","endpoints.images","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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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/schemas.ts","../src/types/files.ts","../src/config.ts","../src/parsers.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 custom = 'custom',\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 maxGeminiPro: 8192,\n defaultGeminiPro: 8192,\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 eModelEndpointSchema = z.nativeEnum(EModelEndpoint);\n\nexport const extendedModelEndpointSchema = z.union([eModelEndpointSchema, z.string()]);\n\nexport enum ImageDetail {\n low = 'low',\n auto = 'auto',\n high = 'high',\n}\n\nexport const imageDetailNumeric = {\n [ImageDetail.low]: 0,\n [ImageDetail.auto]: 1,\n [ImageDetail.high]: 2,\n};\n\nexport const imageDetailValue = {\n 0: ImageDetail.low,\n 1: ImageDetail.auto,\n 2: ImageDetail.high,\n};\n\nexport const eImageDetailSchema = z.nativeEnum(ImageDetail);\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 endpoint: z.string().optional(),\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 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 file_id: string;\n type?: 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 endpointType: eModelEndpointSchema.optional(),\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 /* vision */\n resendImages: z.boolean().optional(),\n imageDetail: eImageDetailSchema.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().nullable().optional(),\n presetId: z.string().nullable().optional(),\n title: z.string().nullable().optional(),\n defaultPreset: z.boolean().optional(),\n order: z.number().optional(),\n endpoint: extendedModelEndpointSchema.nullable(),\n }),\n );\n\nexport const tConvoUpdateSchema = tConversationSchema.merge(\n z.object({\n endpoint: extendedModelEndpointSchema.nullable(),\n }),\n);\n\nexport const tPresetUpdateSchema = tConversationSchema.merge(\n z.object({\n endpoint: extendedModelEndpointSchema.nullable(),\n }),\n);\n\nexport type TPreset = z.infer<typeof tPresetSchema>;\n\n// type DefaultSchemaValues = Partial<typeof google>;\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 resendImages: true,\n imageDetail: 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 resendImages: obj.resendImages ?? false,\n imageDetail: obj.imageDetail ?? ImageDetail.auto,\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 resendImages: false,\n imageDetail: ImageDetail.auto,\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 const isGeminiPro = obj?.model?.toLowerCase()?.includes('gemini-pro');\n\n const maxOutputTokensMax = isGeminiPro\n ? google.maxOutputTokens.maxGeminiPro\n : google.maxOutputTokens.max;\n const maxOutputTokensDefault = isGeminiPro\n ? google.maxOutputTokens.defaultGeminiPro\n : google.maxOutputTokens.default;\n\n let maxOutputTokens = obj.maxOutputTokens ?? maxOutputTokensDefault;\n maxOutputTokens = Math.min(maxOutputTokens, maxOutputTokensMax);\n\n return {\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,\n topP: obj.topP ?? google.topP.default,\n topK: obj.topK ?? google.topK.default,\n };\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\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 resendImages: true,\n imageDetail: 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 if (newObj.resendImages !== true) {\n delete newObj.resendImages;\n }\n if (newObj.imageDetail === ImageDetail.auto) {\n delete newObj.imageDetail;\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\n// const createGoogleSchema = (customGoogle: DefaultSchemaValues) => {\n// const defaults = { ...google, ...customGoogle };\n// return 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 isGeminiPro = obj?.model?.toLowerCase()?.includes('gemini-pro');\n\n// const maxOutputTokensMax = isGeminiPro\n// ? defaults.maxOutputTokens.maxGeminiPro\n// : defaults.maxOutputTokens.max;\n// const maxOutputTokensDefault = isGeminiPro\n// ? defaults.maxOutputTokens.defaultGeminiPro\n// : defaults.maxOutputTokens.default;\n\n// let maxOutputTokens = obj.maxOutputTokens ?? maxOutputTokensDefault;\n// maxOutputTokens = Math.min(maxOutputTokens, maxOutputTokensMax);\n\n// return {\n// ...obj,\n// model: obj.model ?? defaults.model.default,\n// modelLabel: obj.modelLabel ?? null,\n// promptPrefix: obj.promptPrefix ?? null,\n// examples: obj.examples ?? [{ input: { content: '' }, output: { content: '' } }],\n// temperature: obj.temperature ?? defaults.temperature.default,\n// maxOutputTokens,\n// topP: obj.topP ?? defaults.topP.default,\n// topK: obj.topK ?? defaults.topK.default,\n// };\n// })\n// .catch(() => ({\n// model: defaults.model.default,\n// modelLabel: null,\n// promptPrefix: null,\n// examples: [{ input: { content: '' }, output: { content: '' } }],\n// temperature: defaults.temperature.default,\n// maxOutputTokens: defaults.maxOutputTokens.default,\n// topP: defaults.topP.default,\n// topK: defaults.topK.default,\n// }));\n// };\n","export enum FileSources {\n local = 'local',\n firebase = 'firebase',\n openai = 'openai',\n s3 = 's3',\n}\n\nexport type TFile = {\n message: string;\n file_id: string;\n filepath: string;\n filename: string;\n type: string;\n size: number;\n temp_file_id?: string;\n source?: FileSources;\n height?: number;\n width?: number;\n};\n\nexport type TFileUpload = TFile & {\n temp_file_id: string;\n};\n\nexport type AvatarUploadResponse = {\n url: string;\n};\n\nexport type FileUploadBody = {\n formData: FormData;\n file_id: string;\n};\n\nexport type UploadMutationOptions = {\n onSuccess?: (data: TFileUpload, variables: FileUploadBody, context?: unknown) => void;\n onMutate?: (variables: FileUploadBody) => void | Promise<unknown>;\n onError?: (error: unknown, variables: FileUploadBody, context?: unknown) => void;\n};\n\nexport type UploadAvatarOptions = {\n onSuccess?: (data: AvatarUploadResponse, variables: FormData, context?: unknown) => void;\n onMutate?: (variables: FormData) => void | Promise<unknown>;\n onError?: (error: unknown, variables: FormData, context?: unknown) => void;\n};\n\nexport type DeleteFilesResponse = {\n message: string;\n result: Record<string, unknown>;\n};\n\nexport type BatchFile = {\n file_id: string;\n filepath: string;\n source: FileSources;\n};\n\nexport type DeleteFilesBody = {\n files: BatchFile[];\n};\n\nexport type DeleteMutationOptions = {\n onSuccess?: (data: DeleteFilesResponse, variables: DeleteFilesBody, context?: unknown) => void;\n onMutate?: (variables: DeleteFilesBody) => void | Promise<unknown>;\n onError?: (error: unknown, variables: DeleteFilesBody, context?: unknown) => void;\n};\n","import { z } from 'zod';\nimport { EModelEndpoint, eModelEndpointSchema } from './schemas';\nimport { FileSources } from './types/files';\n\nexport const fileSourceSchema = z.nativeEnum(FileSources);\n\nexport const endpointSchema = z.object({\n name: z.string().refine((value) => !eModelEndpointSchema.safeParse(value).success, {\n message: `Value cannot be one of the default endpoint (EModelEndpoint) values: ${Object.values(\n EModelEndpoint,\n ).join(', ')}`,\n }),\n apiKey: z.string(),\n baseURL: z.string(),\n models: z.object({\n default: z.array(z.string()).min(1),\n fetch: z.boolean().optional(),\n }),\n titleConvo: z.boolean().optional(),\n titleMethod: z.union([z.literal('completion'), z.literal('functions')]).optional(),\n titleModel: z.string().optional(),\n summarize: z.boolean().optional(),\n summaryModel: z.string().optional(),\n forcePrompt: z.boolean().optional(),\n modelDisplayLabel: z.string().optional(),\n headers: z.record(z.any()).optional(),\n});\n\nexport const configSchema = z.object({\n version: z.string(),\n cache: z.boolean(),\n fileStrategy: fileSourceSchema.optional(),\n endpoints: z\n .object({\n custom: z.array(endpointSchema.partial()),\n })\n .strict(),\n});\n\nexport enum KnownEndpoints {\n mistral = 'mistral',\n openrouter = 'openrouter',\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 EModelEndpoint.custom,\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 [EModelEndpoint.custom]: 'Custom',\n};\n\nexport const defaultModels = {\n [EModelEndpoint.google]: [\n 'gemini-pro',\n 'gemini-pro-vision',\n 'chat-bison',\n 'chat-bison-32k',\n 'codechat-bison',\n 'codechat-bison-32k',\n 'text-bison',\n 'text-bison-32k',\n 'text-unicorn',\n 'code-gecko',\n 'code-bison',\n 'code-bison-32k',\n ],\n [EModelEndpoint.anthropic]: [\n 'claude-2.1',\n 'claude-2',\n 'claude-1.2',\n 'claude-1',\n 'claude-1-100k',\n 'claude-instant-1',\n 'claude-instant-1-100k',\n ],\n [EModelEndpoint.openAI]: [\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};\n\nexport const EndpointURLs: { [key in EModelEndpoint]: string } = {\n [EModelEndpoint.openAI]: `/api/ask/${EModelEndpoint.openAI}`,\n [EModelEndpoint.bingAI]: `/api/ask/${EModelEndpoint.bingAI}`,\n [EModelEndpoint.google]: `/api/ask/${EModelEndpoint.google}`,\n [EModelEndpoint.custom]: `/api/ask/${EModelEndpoint.custom}`,\n [EModelEndpoint.anthropic]: `/api/ask/${EModelEndpoint.anthropic}`,\n [EModelEndpoint.gptPlugins]: `/api/ask/${EModelEndpoint.gptPlugins}`,\n [EModelEndpoint.azureOpenAI]: `/api/ask/${EModelEndpoint.azureOpenAI}`,\n [EModelEndpoint.chatGPTBrowser]: `/api/ask/${EModelEndpoint.chatGPTBrowser}`,\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 EModelEndpoint.azureOpenAI,\n EModelEndpoint.custom,\n]);\n\nexport const supportsFiles = {\n [EModelEndpoint.openAI]: true,\n [EModelEndpoint.google]: true,\n [EModelEndpoint.assistant]: true,\n [EModelEndpoint.azureOpenAI]: true,\n [EModelEndpoint.custom]: true,\n};\n\nexport const supportsBalanceCheck = {\n [EModelEndpoint.openAI]: true,\n [EModelEndpoint.azureOpenAI]: true,\n [EModelEndpoint.gptPlugins]: true,\n [EModelEndpoint.custom]: true,\n};\n\nexport const visionModels = ['gpt-4-vision', 'llava-13b', 'gemini-pro-vision'];\n\n/**\n * Enum for cache keys.\n */\nexport enum CacheKeys {\n /**\n * Key for the config store namespace.\n */\n CONFIG_STORE = 'configStore',\n /**\n * Key for the plugins cache.\n */\n PLUGINS = 'plugins',\n /**\n * Key for the model config cache.\n */\n MODELS_CONFIG = 'modelsConfig',\n /**\n * Key for the default endpoint config cache.\n */\n ENDPOINT_CONFIG = 'endpointsConfig',\n /**\n * Key for the custom config cache.\n */\n CUSTOM_CONFIG = 'customConfig',\n /**\n * Key for the override config cache.\n */\n OVERRIDE_CONFIG = 'overrideConfig',\n}\n\n/**\n * Enum for authentication keys.\n */\nexport enum AuthKeys {\n /**\n * Key for the Service Account to use Vertex AI.\n */\n GOOGLE_SERVICE_KEY = 'GOOGLE_SERVICE_KEY',\n /**\n * API key to use Google Generative AI.\n */\n GOOGLE_API_KEY = 'GOOGLE_API_KEY',\n}\n\n/**\n * Enum for Image Detail Cost.\n *\n * **Low Res Fixed Cost:** `85`\n *\n * **High Res Calculation:**\n *\n * Number of `512px` Tiles * `170` + `85` (Additional Cost)\n */\nexport enum ImageDetailCost {\n /**\n * Low resolution is a fixed value.\n */\n LOW = 85,\n /**\n * High resolution Cost Per Tile\n */\n HIGH = 170,\n /**\n * Additional Cost added to High Resolution Total Cost\n */\n ADDITIONAL = 85,\n}\n\n/**\n * Tab values for Settings Dialog\n */\nexport enum SettingsTabValues {\n /**\n * Tab for General Settings\n */\n GENERAL = 'general',\n /**\n * Tab for Beta Features\n */\n BETA = 'beta',\n /**\n * Tab for Data Controls\n */\n DATA = 'data',\n /**\n * Tab for Account Settings\n */\n ACCOUNT = 'account',\n}\n","import type { TConversation, TPreset } from './schemas';\nimport type { TEndpointOption } from './types';\nimport {\n EModelEndpoint,\n openAISchema,\n googleSchema,\n bingAISchema,\n anthropicSchema,\n chatGPTBrowserSchema,\n gptPluginsSchema,\n assistantSchema,\n compactOpenAISchema,\n compactGoogleSchema,\n compactAnthropicSchema,\n compactChatGPTSchema,\n compactPluginsSchema,\n} from './schemas';\nimport { alternateName } from './config';\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.custom]: 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\n// const schemaCreators: Record<EModelEndpoint, (customSchema: DefaultSchemaValues) => EndpointSchema> = {\n// [EModelEndpoint.google]: createGoogleSchema,\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,\n endpointType,\n conversation,\n possibleValues,\n}: {\n endpoint: EModelEndpoint;\n endpointType?: EModelEndpoint;\n conversation: Partial<TConversation | TPreset>;\n possibleValues?: TPossibleValues;\n // TODO: POC for default schema\n // defaultSchema?: Partial<EndpointSchema>,\n}) => {\n let schema = endpointSchemas[endpoint];\n\n if (!schema && !endpointType) {\n throw new Error(`Unknown endpoint: ${endpoint}`);\n } else if (!schema && endpointType) {\n schema = endpointSchemas[endpointType];\n }\n\n // if (defaultSchema && schemaCreators[endpoint]) {\n // schema = schemaCreators[endpoint](defaultSchema);\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 const getResponseSender = (endpointOption: TEndpointOption): string => {\n const { model, endpoint, endpointType, modelDisplayLabel, chatGptLabel, modelLabel, jailbreak } =\n 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 } else if (model && model.includes('mistral')) {\n return 'Mistral';\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('gemini')) {\n return 'Gemini';\n } else if (model && model.includes('code')) {\n return 'Codey';\n }\n\n return 'PaLM2';\n }\n\n if (endpoint === EModelEndpoint.custom || endpointType === EModelEndpoint.custom) {\n if (modelLabel) {\n return modelLabel;\n } else if (chatGptLabel) {\n return chatGptLabel;\n } else if (model && model.includes('mistral')) {\n return 'Mistral';\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 } else if (modelDisplayLabel) {\n return modelDisplayLabel;\n }\n\n return 'AI';\n }\n\n return '';\n};\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 custom: 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,\n endpointType,\n conversation,\n possibleValues,\n}: {\n endpoint?: EModelEndpoint;\n endpointType?: EModelEndpoint;\n conversation: Partial<TConversation | TPreset>;\n possibleValues?: TPossibleValues;\n // TODO: POC for default schema\n // defaultSchema?: Partial<EndpointSchema>,\n}) => {\n if (!endpoint) {\n throw new Error(`undefined endpoint: ${endpoint}`);\n }\n\n let schema = compactEndpointSchemas[endpoint];\n\n if (!schema && !endpointType) {\n throw new Error(`Unknown endpoint: ${endpoint}`);\n } else if (!schema && endpointType) {\n schema = compactEndpointSchemas[endpointType];\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 files = 'files',\n}\n\nexport enum MutationKeys {\n imageUpload = 'imageUpload',\n fileDelete = 'fileDelete',\n updatePreset = 'updatePreset',\n deletePreset = 'deletePreset',\n logoutUser = 'logoutUser',\n avatarUpload = 'avatarUpload',\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\nexport const avatar = () => `${images()}/avatar`;\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 getFiles = (): Promise<f.TFile[]> => {\n return request.get(endpoints.files());\n};\n\nexport const uploadImage = (data: FormData): Promise<f.TFileUpload> => {\n return request.postMultiPart(endpoints.images(), data);\n};\n\nexport const uploadAvatar = (data: FormData): Promise<f.AvatarUploadResponse> => {\n return request.postMultiPart(endpoints.avatar(), 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 type { TSubmission, TMessage, TEndpointOption } from './types';\nimport { tConvoUpdateSchema, EModelEndpoint } from './schemas';\nimport { EndpointURLs } from './config';\n\nexport default function createPayload(submission: TSubmission) {\n const { conversation, message, messages, endpointOption, isEdited, isContinued } = submission;\n const { conversationId } = tConvoUpdateSchema.parse(conversation);\n const { endpoint, endpointType } = endpointOption as {\n endpoint: EModelEndpoint;\n endpointType?: EModelEndpoint;\n };\n\n let server = EndpointURLs[endpointType ?? 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","ImageDetail","endpointSettings","_a","google","model","default","maxOutputTokens","min","max","step","maxGeminiPro","defaultGeminiPro","temperature","topP","topK","eModelEndpointSchema","z","nativeEnum","extendedModelEndpointSchema","union","string","imageDetailNumeric","_b","low","auto","high","imageDetailValue","eImageDetailSchema","tPluginAuthConfigSchema","object","authField","label","description","tPluginSchema","name","pluginKey","icon","authConfig","array","authenticated","boolean","optional","isButton","tExampleSchema","input","content","output","tAgentOptionsSchema","agent","skipCompletion","number","tMessageSchema","messageId","endpoint","clientId","nullable","conversationId","parentMessageId","responseMessageId","overrideParentMessageId","bg","title","or","literal","sender","text","generation","isEdited","isCreatedByUser","error","createdAt","Date","toISOString","updatedAt","current","unfinished","searchResult","finish_reason","tConversationSchema","user","endpointType","suggestions","messages","tools","systemMessage","modelLabel","examples","chatGptLabel","userLabel","promptPrefix","context","top_p","frequency_penalty","presence_penalty","jailbreak","jailbreakConversationId","conversationSignature","invocationId","toneStyle","agentOptions","resendImages","imageDetail","assistant_id","thread_id","tPresetSchema","omit","merge","presetId","defaultPreset","order","tConvoUpdateSchema","tPresetUpdateSchema","openAISchema","pick","transform","obj","_c","_d","_e","_f","_g","_h","_j","catch","googleSchema","isGeminiPro","toLowerCase","includes","maxOutputTokensMax","maxOutputTokensDefault","Math","__assign","_k","bingAISchema","anthropicSchema","chatGPTBrowserSchema","gptPluginsSchema","removeNullishValues","newObj","Object","keys","forEach","key","undefined","FileSources","assistantSchema","compactOpenAISchema","compactGoogleSchema","compactAnthropicSchema","compactChatGPTSchema","compactPluginsSchema","length","KnownEndpoints","fileSourceSchema","endpointSchema","refine","value","safeParse","success","message","concat","values","join","apiKey","baseURL","models","fetch","titleConvo","titleMethod","titleModel","summarize","summaryModel","forcePrompt","modelDisplayLabel","headers","record","any","configSchema","version","cache","fileStrategy","endpoints","custom","partial","strict","CacheKeys","AuthKeys","ImageDetailCost","SettingsTabValues","defaultEndpoints","openAI","assistant","azureOpenAI","bingAI","chatGPTBrowser","gptPlugins","anthropic","alternateName","defaultModels","EndpointURLs","modularEndpoints","Set","supportsFiles","supportsBalanceCheck","visionModels","endpointSchemas","getFirstDefinedValue","possibleValues","returnValue","possibleValues_1","_i","Tools","QueryKeys","MutationKeys","parseConvo","conversation","schema","Error","convo","parse","secondaryModels","getResponseSender","endpointOption","compactEndpointSchemas","parseCompactConvo","setAcceptLanguageHeader","axios","defaults","common","setTokenHeader","token","keysEndpoint","search","q","pageNumber","assistants","id","images","_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","endpoints.abortRequest","arg","endpoints.assistants","payload","files","endpoints.conversationById","endpoints.conversations","endpoints.messages","params","endpoints.revokeUserKey","endpoints.search","endpoints.images","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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"}