"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[63605],{56381:function(e,t,a){a.d(t,{Uc:function(){return i},oB:function(){return n}});var s=a(12603);s.z.object({webrtc_sync:s.z.boolean().optional(),check_updates:s.z.boolean().optional(),pin_list:s.z.boolean().optional(),language_model_settings:s.z.boolean().optional(),openai_api_key:s.z.boolean().optional(),openai_proxy_url:s.z.boolean().optional(),create_session:s.z.boolean().optional(),edit_agent:s.z.boolean().optional(),plugins:s.z.boolean().optional(),dalle:s.z.boolean().optional(),speech_to_text:s.z.boolean().optional(),token_counter:s.z.boolean().optional(),welcome_suggest:s.z.boolean().optional(),clerk_sign_up:s.z.boolean().optional(),market:s.z.boolean().optional(),knowledge_base:s.z.boolean().optional(),rag_eval:s.z.boolean().optional(),cloud_promotion:s.z.boolean().optional(),commercial_hide_github:s.z.boolean().optional(),commercial_hide_docs:s.z.boolean().optional()});let n={webrtc_sync:!1,pin_list:!1,language_model_settings:!0,openai_api_key:!0,openai_proxy_url:!0,create_session:!0,edit_agent:!0,plugins:!0,dalle:!0,check_updates:!0,welcome_suggest:!0,token_counter:!0,knowledge_base:!0,rag_eval:!1,clerk_sign_up:!0,cloud_promotion:!1,market:!0,speech_to_text:!0,commercial_hide_github:!1,commercial_hide_docs:!1},i=e=>({enableWebrtc:e.webrtc_sync,isAgentEditable:e.edit_agent,showCreateSession:e.create_session,showLLM:e.language_model_settings,showPinList:e.pin_list,showOpenAIApiKey:e.openai_api_key,showOpenAIProxyUrl:e.openai_proxy_url,enablePlugins:e.plugins,showDalle:e.dalle,enableCheckUpdates:e.check_updates,showWelcomeSuggest:e.welcome_suggest,enableClerkSignUp:e.clerk_sign_up,enableKnowledgeBase:e.knowledge_base,enableRAGEval:e.rag_eval,showCloudPromotion:e.cloud_promotion,showMarket:e.market,enableSTT:e.speech_to_text,hideGitHub:e.commercial_hide_github,hideDocs:e.commercial_hide_docs})},14116:function(e,t,a){a.d(t,{G7:function(){return n},Zv:function(){return r},h_:function(){return i}});let s=["ar","bg-BG","de-DE","en-US","es-ES","fr-FR","ja-JP","ko-KR","pt-BR","ru-RU","tr-TR","zh-CN","zh-TW","vi-VN"],n=e=>{if(!e)return"en-US";if(e.startsWith("ar"))return"ar";if(e.startsWith("cn"))return"zh-CN";for(let t of s)if(t.startsWith(e))return t;return"en-US"},i=[{label:"English",value:"en-US"},{label:"简体中文",value:"zh-CN"},{label:"繁體中文",value:"zh-TW"},{label:"日本語",value:"ja-JP"},{label:"한국어",value:"ko-KR"},{label:"Deutsch",value:"de-DE"},{label:"Espa\xf1ol",value:"es-ES"},{label:"العربية",value:"ar"},{label:"Fran\xe7ais",value:"fr-FR"},{label:"Portugu\xeas",value:"pt-BR"},{label:"Русский",value:"ru-RU"},{label:"T\xfcrk\xe7e",value:"tr-TR"},{label:"Polski",value:"pl-PL"},{label:"Nederlands",value:"nl-NL"},{label:"Italiano",value:"it-IT"},{label:"Tiếng Việt",value:"vi-VN"},{label:"Български",value:"bg-BG"}],r=[...s,"en","zh"]},21347:function(e,t,a){a.d(t,{l:function(){return d}});var s=a(27166),n=a(62737),i=a.n(n),r=a(81824),o=a(37830);class l{async createMessage(e){let{id:t}=await o.M.create(e);return t}async batchCreateMessages(e){return o.M.batchCreate(e)}async getMessages(e,t){let a=await o.M.query({sessionId:e,topicId:t}),s=await Promise.all(a.flatMap(e=>e.files).filter(Boolean).map(async e=>r.O.findById(e)));return a.map(e=>({...e,imageList:s.filter(t=>{var a;return(null===(a=e.files)||void 0===a?void 0:a.includes(t.id))&&t.fileType.startsWith("image")}).map(e=>({alt:e.name,id:e.id,url:e.url}))}))}async getAllMessages(){return o.M.queryAll()}async countMessages(){return o.M.count()}async countTodayMessages(){return(await o.M.queryAll()).filter(e=>i()(e.createdAt).format("YYYY-MM-DD")===i()().format("YYYY-MM-DD")).length}async getAllMessagesInSession(e){return o.M.queryBySessionId(e)}async updateMessageError(e,t){return o.M.update(e,{error:t})}async updateMessage(e,t){return o.M.update(e,t)}async updateMessageTTS(e,t){return o.M.update(e,{tts:t})}async updateMessageTranslate(e,t){return o.M.update(e,{translate:t})}async updateMessagePluginState(e,t){return o.M.updatePluginState(e,t)}async updateMessagePluginArguments(e,t){let a="string"==typeof t?t:JSON.stringify(t);return o.M.updatePlugin(e,{arguments:a})}async bindMessagesToTopic(e,t){return o.M.batchUpdate(t,{topicId:e})}async removeMessage(e){return o.M.delete(e)}async removeMessages(e){return o.M.bulkDelete(e)}async removeMessagesByAssistant(e,t){return o.M.batchDelete(e,t)}async removeAllMessages(){return o.M.clearTable()}async hasMessages(){return await this.countMessages()>0}}var c=a(99056),g=a(2684);class u{createMessage(e){let{sessionId:t,...a}=e;return g.oq.message.createMessage.mutate({...a,sessionId:this.toDbSessionId(t)})}batchCreateMessages(e){return g.oq.message.batchCreateMessages.mutate(e)}getMessages(e,t){return g.oq.message.getMessages.query({sessionId:this.toDbSessionId(e),topicId:t})}getAllMessages(){return g.oq.message.getAllMessages.query()}getAllMessagesInSession(e){return g.oq.message.getAllMessagesInSession.query({sessionId:this.toDbSessionId(e)})}countMessages(){return g.oq.message.count.query()}countTodayMessages(){return g.oq.message.countToday.query()}updateMessageError(e,t){return g.oq.message.update.mutate({id:e,value:{error:t}})}async updateMessagePluginError(e,t){return g.oq.message.update.mutate({id:e,value:{pluginError:t}})}async updateMessagePluginArguments(e,t){let a="string"==typeof t?t:JSON.stringify(t);return g.oq.message.updateMessagePlugin.mutate({id:e,value:{arguments:a}})}updateMessage(e,t){return g.oq.message.update.mutate({id:e,value:t})}updateMessageTranslate(e,t){return g.oq.message.updateTranslate.mutate({id:e,value:t})}updateMessageTTS(e,t){return g.oq.message.updateTTS.mutate({id:e,value:t})}updateMessagePluginState(e,t){return g.oq.message.updatePluginState.mutate({id:e,value:t})}bindMessagesToTopic(e,t){throw Error("Method not implemented.")}removeMessage(e){return g.oq.message.removeMessage.mutate({id:e})}removeMessages(e){return g.oq.message.removeMessages.mutate({ids:e})}removeMessagesByAssistant(e,t){return g.oq.message.removeMessagesByAssistant.mutate({sessionId:this.toDbSessionId(e),topicId:t})}removeAllMessages(){return g.oq.message.removeAllMessages.mutate()}toDbSessionId(e){return e===c.B9?null:e}async hasMessages(){return await this.countMessages()>0}async messageCountToCheckTrace(){return await this.countMessages()>=4}}let d=s.ZN?new u:new l},15533:function(e,t,a){a.d(t,{w:function(){return c}});var s=a(27166),n=a(18360);class i{async createTopic(e){let t=await n.i.create(e);if(!t)throw Error("topic create Error");return t.id}async batchCreateTopics(e){return n.i.batchCreate(e)}async cloneTopic(e,t){return n.i.duplicateTopic(e,t)}async getTopics(e){return n.i.query(e)}async searchTopics(e,t){return n.i.queryByKeyword(e,t)}async getAllTopics(){return n.i.queryAll()}async countTopics(){return n.i.count()}async updateTopicFavorite(e,t){return this.updateTopic(e,{favorite:t})}async updateTopicTitle(e,t){return this.updateTopic(e,{title:t})}async updateTopic(e,t){let a=void 0!==t.favorite?t.favorite?1:0:void 0;return n.i.update(e,{...t,favorite:a})}async removeTopic(e){return n.i.delete(e)}async removeTopics(e){return n.i.batchDeleteBySessionId(e)}async batchRemoveTopics(e){return n.i.batchDelete(e)}async removeAllTopic(){return n.i.clearTable()}}var r=a(99056),o=a(2684);class l{createTopic(e){return o.oq.topic.createTopic.mutate({...e,sessionId:this.toDbSessionId(e.sessionId)})}batchCreateTopics(e){return o.oq.topic.batchCreateTopics.mutate(e)}cloneTopic(e,t){return o.oq.topic.cloneTopic.mutate({id:e,newTitle:t})}getTopics(e){return o.oq.topic.getTopics.query({...e,sessionId:this.toDbSessionId(e.sessionId)})}getAllTopics(){return o.oq.topic.getAllTopics.query()}async countTopics(){return o.oq.topic.countTopics.query()}searchTopics(e,t){return o.oq.topic.searchTopics.query({keywords:e,sessionId:this.toDbSessionId(t)})}updateTopic(e,t){return o.oq.topic.updateTopic.mutate({id:e,value:t})}removeTopic(e){return o.oq.topic.removeTopic.mutate({id:e})}removeTopics(e){return o.oq.topic.batchDeleteBySessionId.mutate({id:this.toDbSessionId(e)})}batchRemoveTopics(e){return o.oq.topic.batchDelete.mutate({ids:e})}removeAllTopic(){return o.oq.topic.removeAllTopics.mutate()}toDbSessionId(e){return e===r.B9?null:e}}let c=s.ZN?new l:new i},93956:function(e,t,a){a.d(t,{_L:function(){return n}});var s=a(34205);let n={getMessageById:(e,t)=>e.find(e=>e.id===t),getMessagesTokenCount:async e=>(0,s.W)(e.map(e=>e.content).join("")),getSlicedMessagesWithConfig:(e,t)=>t.enableHistoryCount&&t.historyCount?t.historyCount<=0?[]:e.slice(-t.historyCount):e}},75104:function(e,t,a){a.d(t,{X:function(){return P}});var s=a(79951),n=a(24552),i=a(99056),r=a(91192),o=a(16310),l=a(79880),c=a(27951),g=a(54995),u=a(55082),d=a(75172),p=a(97013),y=a(20557),m=a(61887),v=a(93956);let M=e=>{switch(e.role){case"user":return{avatar:y.c.userAvatar(p.L.getState())||n._D};case"system":return e.meta;default:return d.S.currentAgentMeta(u.F.getState())}},h=e=>(0,l.J)(e.activeId,e.activeTopicId),T=e=>e.activeId?(e.messagesMap[h(e)]||[]).map(e=>({...e,meta:M(e)})):[],f=e=>T(e).filter(e=>"user"===e.role),w=Date.now(),I=e=>t=>{let a=T(t).filter(e=>"tool"!==e.role),{isAgentEditable:r}=(0,c.i)((0,g.cy)().getState());if(0!==a.length)return a;let[o,l]=[t.activeId,t.activeId===i.B9],u=(0,s.t)("agentDefaultMessageWithSystemRole",{name:e.title||(0,s.t)("defaultAgent"),ns:"chat",systemRole:e.description}),d=(0,s.t)(r?"agentDefaultMessage":"agentDefaultMessageWithoutEdit",{name:e.title||(0,s.t)("defaultAgent"),ns:"chat",url:"/chat/settings?session=".concat(o)});return[{content:l?"":e.description?u:d,createdAt:w,extra:{},id:"default",meta:(0,m.T)({avatar:n.Jo},e),role:"assistant",updatedAt:w}]},_=e=>{let t=T(e),a=o.y.currentAgentChatConfig(r.E.getState());return v._L.getSlicedMessagesWithConfig(t,a)},S=e=>t=>v._L.getMessageById(T(t),e),b=e=>e.messageRAGLoadingIds.length>0,A=e=>e.isCreatingMessage,C=e=>e.messageLoadingIds.length>0,P={chatsMessageString:e=>_(e).map(e=>e.content).join(""),currentChatIDsWithGuideMessage:e=>I(d.S.currentAgentMeta(u.F.getState()))(e).map(e=>e.id),currentChatKey:h,currentChatLoadingState:e=>!e.messagesInit,currentChats:T,currentChatsWithGuideMessage:I,currentChatsWithHistoryConfig:_,currentToolMessages:e=>T(e).filter(e=>"tool"===e.role),currentUserFiles:e=>f(e).filter(e=>{var t;return e.fileList&&(null===(t=e.fileList)||void 0===t?void 0:t.length)>0}).flatMap(e=>e.fileList).filter(Boolean),getMessageById:S,getMessageByToolCallId:e=>t=>T(t).find(t=>t.tool_call_id===e),getTraceIdByMessageId:e=>t=>{var a;return null===(a=S(e)(t))||void 0===a?void 0:a.traceId},isAIGenerating:e=>e.chatLoadingIds.length>0,isCreatingMessage:A,isCurrentChatLoaded:e=>!!e.messagesMap[h(e)],isHasMessageLoading:C,isMessageEditing:e=>t=>t.messageEditingIds.includes(e),isMessageGenerating:e=>t=>t.chatLoadingIds.includes(e),isMessageInRAGFlow:e=>t=>t.messageRAGLoadingIds.includes(e),isMessageLoading:e=>t=>t.messageLoadingIds.includes(e),isPluginApiInvoking:e=>t=>t.pluginApiLoadingIds.includes(e),isSendButtonDisabledByMessage:e=>C(e)||e.creatingTopic||A(e)||b(e),isToolCallStreaming:(e,t)=>a=>{let s=a.toolCallingStreamIds[e];return!!s&&s[t]},latestMessage:e=>T(e).at(-1),showInboxWelcome:e=>e.activeId===i.B9&&0===T(e).length}},77779:function(e,t,a){a.d(t,{S:function(){return i}});let s=e=>e.topicMaps[e.activeId],n=e=>e.searchTopics,i={currentActiveTopic:e=>{var t;return null===(t=s(e))||void 0===t?void 0:t.find(t=>t.id===e.activeTopicId)},currentTopicLength:e=>{var t;return(null===(t=s(e))||void 0===t?void 0:t.length)||0},currentTopics:s,currentUnFavTopics:e=>{var t;return(null===(t=s(e))||void 0===t?void 0:t.filter(e=>!e.favorite))||[]},displayTopics:e=>e.isSearchingTopic?n(e):s(e),getTopicById:e=>t=>{var a;return null===(a=s(t))||void 0===a?void 0:a.find(t=>t.id===e)},isCreatingTopic:e=>e.creatingTopic,searchTopics:n}},63605:function(e,t,a){a.d(t,{a:function(){return eG}});var s=a(61968),n=a(28769),i=a(71327),r=a(55059);let o={activeId:"inbox",isCreatingMessage:!1,messageEditingIds:[],messageLoadingIds:[],messagesInit:!1,messagesMap:{},chatLoadingIds:[],inputFiles:[],inputMessage:"",messageRAGLoadingIds:[],pluginApiLoadingIds:[],toolCallingStreamIds:{},activeTopicId:null,creatingTopic:!1,isSearchingTopic:!1,searchTopics:[],topicLoadingIds:[],topicMaps:{},topicSearchKeywords:"",topicsInit:!1,dalleImageLoading:{},dalleImageMap:{},shareLoading:!1,portalArtifactDisplayMode:"preview",showPortal:!1};var l=a(61472),c=a(18509),g=a(65945),u=a(13906),d=a(8695),p=a(30238),y=a(10312);class m{async generateImage(e,t){let a={...e,model:"dall-e-3",n:1},s=d.k.OpenAI,n=await (0,p.createHeaderWithAuth)({headers:{"Content-Type":"application/json"},provider:s}),i=await fetch(y.P.images(s),{body:JSON.stringify(a),headers:n,method:"POST",signal:null==t?void 0:t.signal});if(!i.ok)throw await i.json();return(await i.json())[0]}}let v=new m;var M=a(56922),h=a(75104),T=a(30526),f=a(7136);let w=(0,f.Z)("tool"),I=(e,t)=>({generateImageFromPrompts:async(e,a)=>{let{toggleDallEImageLoading:s,updateImageItem:n}=t(),i=e=>h.X.getMessageById(e)(t()),r=i(a);if(!r)return;let o=i(r.parentId),l=null==o?void 0:o.content,g=[];await (0,c.ZP)(e,async(e,i)=>{s(a+e.prompt,!0);let r="";try{r=await v.generateImage(e)}catch(n){s(a+e.prompt,!1),g[i]=n,await t().updatePluginState(a,{error:g})}if(!r)return;await n(a,e=>{e[i].previewUrl=r}),s(a+e.prompt,!1);let o=await M.T.getImageFileByUrlWithCORS(r,"".concat(l||e.prompt,"_").concat(i,".png")),c=await T.O.getState().uploadWithProgress({file:o,onStatusUpdate:()=>{}});c&&await n(a,e=>{e[i].imageId=c.id,e[i].previewUrl=void 0})})},text2image:async(e,a)=>{await t().generateImageFromPrompts(a,e)},toggleDallEImageLoading:(a,s)=>{e({dalleImageLoading:{...t().dalleImageLoading,[a]:s}},!1,w("toggleDallEImageLoading"))},updateImageItem:async(e,a)=>{let s=h.X.getMessageById(e)(t());if(!s)return;let n=JSON.parse(s.content),i=(0,l.Uy)(n,a);await t().internal_updateMessageContent(e,JSON.stringify(i))},useFetchDalleImageItem:t=>(0,g.O4)(["FetchImageItem",t],async()=>{let a=await u.b.getFile(t);return e((0,l.Uy)(e=>{e.dalleImageMap[t]||(e.dalleImageMap[t]=a)}),!1,w("useFetchFile")),a})}),_=(e,t)=>({closeArtifact:()=>{t().togglePortal(!1),e({portalArtifact:void 0},!1,"closeArtifact")},closeFilePreview:()=>{e({portalFile:void 0},!1,"closeFilePreview")},closeMessageDetail:()=>{e({portalMessageDetail:void 0},!1,"openMessageDetail")},closeToolUI:()=>{e({portalToolMessage:void 0},!1,"closeToolUI")},openArtifact:a=>{t().togglePortal(!0),e({portalArtifact:a},!1,"openArtifact")},openFilePreview:a=>{t().togglePortal(!0),e({portalFile:a},!1,"openFilePreview")},openMessageDetail:a=>{t().togglePortal(!0),e({portalMessageDetail:a},!1,"openMessageDetail")},openToolUI:(a,s)=>{t().togglePortal(!0),e({portalToolMessage:{id:a,identifier:s}},!1,"openToolUI")},togglePortal:a=>{e({showPortal:void 0===a?!t().showPortal:a},!1,"toggleInspector")}}),S=e=>({messages:[{content:"你是一名精通全世界语言的语言专家，你需要识别用户输入的内容，以国际标准 locale 进行输出",role:"system"},{content:"{你好}",role:"user"},{content:"zh-CN",role:"assistant"},{content:"{hello}",role:"user"},{content:"en-US",role:"assistant"},{content:"{".concat(e,"}"),role:"user"}]}),b=(e,t)=>({messages:[{content:"你是一名擅长翻译的助理，你需要将输入的语言翻译为目标语言",role:"system"},{content:"请将以下内容 ".concat(e,"，翻译为 ").concat(t," "),role:"user"}]});var A=a(93650),C=a(14116),P=a(55478),L=a(21347),k=a(97013),D=a(92987),B=a(61887);let E=(0,f.Z)("enhance"),q=(e,t)=>({clearTTS:async e=>{await t().updateMessageTTS(e,!1)},clearTranslate:async e=>{await t().updateMessageTranslate(e,!1)},getCurrentTracePayload:e=>({sessionId:t().activeId,topicId:t().activeTopicId,...e}),translateMessage:async(e,a)=>{let{internal_toggleChatLoading:s,updateMessageTranslate:n,internal_dispatchMessage:i}=t(),r=h.X.getMessageById(e)(t());if(!r)return;let o=D.u.translation(k.L.getState());await n(e,{content:"",from:"",to:a}),s(!0,e,E("translateMessage(start)",{id:e}));let c="",g="";P.A.fetchPresetTaskResult({onFinish:async t=>{t&&C.Zv.includes(t)&&(g=t),await n(e,{content:c,from:g,to:a})},params:(0,B.T)(o,S(r.content)),trace:t().getCurrentTracePayload({traceName:A.Ve.LanguageDetect})}),await P.A.fetchPresetTaskResult({onFinish:async t=>{await n(e,{content:t,from:g,to:a}),s(!1,e)},onMessageHandle:t=>{"text"===t.type&&i({id:e,key:"translate",type:"updateMessageExtra",value:(0,l.Uy)({content:"",from:g,to:a},e=>{c+=t.text,e.content+=c})})},params:(0,B.T)(o,b(r.content,a)),trace:t().getCurrentTracePayload({traceName:A.Ve.Translator})})},ttsMessage:async function(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};await t().updateMessageTTS(e,a)},updateMessageTTS:async(e,a)=>{await L.l.updateMessageTTS(e,a),await t().refreshMessages()},updateMessageTranslate:async(e,a)=>{await L.l.updateMessageTranslate(e,a),await t().refreshMessages()}});var U=a(48911),F=a(59731),R=a.n(F),x=a(83048),X=a(15533),N=a(78593);class O{async request(e){try{return fetch(y.P.trace,{body:JSON.stringify(e),headers:{"Content-Type":"application/json"},method:"POST"})}catch(e){console.error(e)}}async traceEvent(e){if(N.l.userAllowTrace(k.L.getState()))return this.request(e)}}let z=new O;var W=a(79880),G=a(18388);let J=e=>{e.returnValue="你有正在生成中的请求，确定要离开吗？"},Q=(e,t,a)=>(0,l.Uy)(e,e=>{if(a)e.includes(t)||e.push(t);else{let a=e.indexOf(t);a>=0&&e.splice(a,1)}}),j=(e,t)=>{switch(t.type){case"updateMessage":return(0,l.Uy)(e,e=>{let{id:a,value:s}=t,n=e.findIndex(e=>e.id===a);n<0||(e[n]=(0,B.T)(e[n],{...s,updatedAt:Date.now()}))});case"updateMessageExtra":return(0,l.Uy)(e,e=>{let{id:a,key:s,value:n}=t,i=e.find(e=>e.id===a);i&&(i.extra?i.extra[s]=n:i.extra={[s]:n},i.updatedAt=Date.now())});case"updatePluginState":return(0,l.Uy)(e,e=>{let a;let{id:s,key:n,value:i}=t,r=e.find(e=>e.id===s);r&&(a=r.pluginState?(0,B.T)(r.pluginState,{[n]:i}):{[n]:i},R()(r.pluginState,a)||(r.pluginState=a,r.updatedAt=Date.now()))});case"updateMessagePlugin":return(0,l.Uy)(e,e=>{let{id:a,value:s}=t,n=e.find(e=>e.id===a);n&&"tool"===n.role&&(n.plugin=(0,B.T)(n.plugin,s),n.updatedAt=Date.now())});case"addMessageTool":return(0,l.Uy)(e,e=>{let{id:a,value:s}=t,n=e.find(e=>e.id===a);if(n&&"assistant"===n.role){if(n.tools){if(n.tools.findIndex(e=>e.id===s.id)>0)return;n.tools.push(s)}else n.tools=[s];n.updatedAt=Date.now()}});case"deleteMessageTool":return(0,l.Uy)(e,e=>{let{id:a,tool_call_id:s}=t,n=e.find(e=>e.id===a);n&&"assistant"===n.role&&n.tools&&(n.tools=n.tools.filter(e=>e.id!==s),n.updatedAt=Date.now())});case"updateMessageTools":return(0,l.Uy)(e,e=>{let{id:a,value:s,tool_call_id:n}=t,i=e.find(e=>e.id===a);if(!i||"assistant"!==i.role||!i.tools)return;let r=i.tools.findIndex(e=>e.id===n);r<0||(i.tools[r]=(0,B.T)(i.tools[r],s),i.updatedAt=Date.now())});case"createMessage":return(0,l.Uy)(e,e=>{let{value:a,id:s}=t;e.push({...a,createdAt:Date.now(),id:s,meta:{},updatedAt:Date.now()})});case"deleteMessage":return(0,l.Uy)(e,e=>{let{id:a}=t,s=e.findIndex(e=>e.id===a);s>=0&&e.splice(s,1)});case"deleteMessages":return(0,l.Uy)(e,e=>{let{ids:a}=t;return e.filter(e=>!a.includes(e.id))});default:throw Error("暂未实现的 type，请检查 reducer")}},H=(0,f.Z)("m"),K="SWR_USE_FETCH_MESSAGES",Y=(e,t)=>({deleteMessage:async e=>{let a=h.X.getMessageById(e)(t());if(!a)return;let s=[a.id];if(a.tools){let e=a.tools.flatMap(e=>h.X.currentChats(t()).filter(t=>t.tool_call_id===e.id).map(e=>e.id));s=s.concat(e)}t().internal_dispatchMessage({type:"deleteMessages",ids:s}),await L.l.removeMessages(s),await t().refreshMessages()},deleteToolMessage:async e=>{let a=h.X.getMessageById(e)(t());if(!a||"tool"!==a.role)return;let s=async()=>{a.parentId&&await t().internal_removeToolToAssistantMessage(a.parentId,a.tool_call_id)};await Promise.all([t().internal_deleteMessage(e),s()])},clearMessage:async()=>{let{activeId:e,activeTopicId:a,refreshMessages:s,refreshTopic:n,switchTopic:i}=t();await L.l.removeMessagesByAssistant(e,a),a&&await X.w.removeTopic(a),await n(),await s(),i()},clearAllMessages:async()=>{let{refreshMessages:e}=t();await L.l.removeAllMessages(),await e()},addAIMessage:async()=>{let{internal_createMessage:e,updateInputMessage:a,activeTopicId:s,activeId:n,inputMessage:i}=t();n&&(await e({content:i,role:"assistant",sessionId:n,topicId:s}),a(""))},copyMessage:async(e,a)=>{await (0,U.v)(a),t().internal_traceMessage(e,{eventType:A.s$.CopyMessage})},toggleMessageEditing:(a,s)=>{e({messageEditingIds:Q(t().messageEditingIds,a,s)},!1,"toggleMessageEditing")},updateInputMessage:a=>{R()(a,t().inputMessage)||e({inputMessage:a},!1,H("updateInputMessage",a))},modifyMessageContent:async(e,a)=>{t().internal_traceMessage(e,{eventType:A.s$.ModifyMessage,nextContent:a}),await t().internal_updateMessageContent(e,a)},useFetchMessages:(a,s)=>(0,g.O4)([K,a,s],async e=>{let[,t,a]=e;return L.l.getMessages(t,a)},{onSuccess:(n,i)=>{let r={...t().messagesMap,[(0,W.J)(a,s)]:n};t().messagesInit&&R()(r,t().messagesMap)||e({messagesInit:!0,messagesMap:r},!1,H("useFetchMessages",{messages:n,queryKey:i}))}}),refreshMessages:async()=>{await (0,x.mutate)([K,t().activeId,t().activeTopicId])},internal_dispatchMessage:a=>{let{activeId:s}=t();if(!s)return;let n=j(h.X.currentChats(t()),a),i={...t().messagesMap,[h.X.currentChatKey(t())]:n};R()(i,t().messagesMap)||e({messagesMap:i},!1,{type:"dispatchMessage/".concat(a.type),payload:a})},internal_updateMessageError:async(e,a)=>{t().internal_dispatchMessage({id:e,type:"updateMessage",value:{error:a}}),await L.l.updateMessage(e,{error:a}),await t().refreshMessages()},internal_updateMessageContent:async(e,a,s)=>{let{internal_dispatchMessage:n,refreshMessages:i,internal_transformToolCalls:r}=t();n(s?{id:e,type:"updateMessage",value:{tools:r(s)}}:{id:e,type:"updateMessage",value:{content:a}}),await L.l.updateMessage(e,{content:a,tools:s?r(s):void 0}),await i()},internal_createMessage:async(e,a)=>{let{internal_createTmpMessage:s,refreshMessages:n,internal_toggleMessageLoading:i}=t(),r=null==a?void 0:a.tempMessageId;r||i(!0,r=s(e));let o=await L.l.createMessage(e);return(null==a?void 0:a.skipRefresh)||(i(!0,r),await n()),i(!1,r),o},internal_fetchMessages:async()=>{let a=await L.l.getMessages(t().activeId,t().activeTopicId),s={...t().messagesMap,[h.X.currentChatKey(t())]:a};t().messagesInit&&R()(s,t().messagesMap)||e({messagesInit:!0,messagesMap:s},!1,H("internal_fetchMessages",{messages:a}))},internal_createTmpMessage:e=>{let{internal_dispatchMessage:a}=t(),s="tmp_"+(0,G.x0)();return a({type:"createMessage",id:s,value:e}),s},internal_deleteMessage:async e=>{t().internal_dispatchMessage({type:"deleteMessage",id:e}),await L.l.removeMessage(e),await t().refreshMessages()},internal_traceMessage:async(e,a)=>{let s=h.X.getMessageById(e)(t());if(!s)return;let n=null==s?void 0:s.traceId,i=null==s?void 0:s.observationId;n&&(null==s?void 0:s.role)==="assistant"&&z.traceEvent({traceId:n,observationId:i,content:s.content,...a}).catch()},internal_toggleMessageLoading:(a,s)=>{e({messageLoadingIds:Q(t().messageLoadingIds,s,a)},!1,"internal_toggleMessageLoading")},internal_toggleLoadingArrays:(a,s,n,i)=>{if(s){window.addEventListener("beforeunload",J);let r=new AbortController;return e({abortController:r,[a]:Q(t()[a],n,s)},!1,i),r}n?e({abortController:void 0,[a]:Q(t()[a],n,s)},!1,i):e({abortController:void 0,[a]:[]},!1,i),window.removeEventListener("beforeunload",J)}});var Z=a(12152),V=a(79951),$=a(34590),ee=a(36904),et=a(89890),ea=a(49871),es=a(25914),en=a(64024),ei=a(88959),er=a(41808);let eo=(0,f.Z)("plugin"),el=(e,t)=>({createAssistantMessageByPlugin:async(e,a)=>{let s={content:e,parentId:a,role:"assistant",sessionId:t().activeId,topicId:t().activeTopicId};await L.l.createMessage(s),await t().refreshMessages()},fillPluginMessageContent:async(e,a,s)=>{let{triggerAIMessage:n,internal_updateMessageContent:i}=t();await i(e,a),s&&await n({parentId:e})},invokeBuiltinTool:async(e,a)=>{let s,n;let{internal_togglePluginApiCalling:i,internal_updateMessageContent:r,internal_updatePluginError:o}=t(),l=JSON.parse(a.arguments);i(!0,e,eo("invokeBuiltinTool/start"));try{s=await ea.n.getState().transformApiArgumentsToAiState(a.apiName,l)}catch(n){var c,g;console.error(n);let t=en.v.find(e=>e.identifier===a.identifier),s=null==t?void 0:null===(g=t.manifest)||void 0===g?void 0:null===(c=g.api.find(e=>e.name===a.apiName))||void 0===c?void 0:c.parameters;await o(e,{type:ei.P.PluginFailToTransformArguments,body:{message:"[plugin] fail to transform plugin arguments to ai state, it may due to model's limited tools calling capacity. You can refer to https://lobehub.com/docs/usage/tools-calling for more detail.",stack:n.stack,arguments:l,schema:s},message:""})}if(i(!1,e,eo("invokeBuiltinTool/end")),!s)return;await r(e,s);let{[a.apiName]:u}=t();if(u){try{n=JSON.parse(s)}catch(e){}if(n)return await u(e,n)}},invokeDefaultTypePlugin:async(e,a)=>{let{internal_callPluginApi:s}=t(),n=await s(e,a);if(n)return n},invokeMarkdownTypePlugin:async(e,a)=>{let{internal_callPluginApi:s}=t();await s(e,a)},invokeStandaloneTypePlugin:async(e,a)=>{let s=await ea.n.getState().validatePluginSettings(a.identifier);if(s&&!s.valid){await L.l.updateMessageError(e,{body:{error:s.errors,message:"[plugin] your settings is invalid with plugin manifest setting schema"},message:(0,V.t)("response.PluginSettingsInvalid",{ns:"error"}),type:Z.FK.PluginSettingsInvalid}),await t().refreshMessages();return}},reInvokeToolMessage:async e=>{let a=h.X.getMessageById(e)(t());if(!a||"tool"!==a.role||!a.plugin)return;a.error&&t().internal_updateMessageError(e,null);let s={...a.plugin,id:a.tool_call_id};await t().internal_invokeDifferentTypePlugin(e,s)},triggerAIMessage:async e=>{let{parentId:a,traceId:s}=e,{internal_coreProcessMessage:n}=t(),i=h.X.currentChats(t());await n(i,null!=a?a:i.at(-1).id,{traceId:s})},summaryPluginContent:async e=>{let a=h.X.getMessageById(e)(t());a&&"tool"===a.role&&await t().internal_coreProcessMessage([{role:"assistant",content:"作为一名总结专家，请结合以上系统提示词，将以下内容进行总结："},{...a,content:a.content,role:"assistant",name:void 0,tool_call_id:void 0}],a.id)},triggerToolCalls:async e=>{let a=h.X.getMessageById(e)(t());if(!a||!a.tools)return;let s=!1,n="",i=a.tools.map(async a=>{let i={content:ee.v,parentId:e,plugin:a,role:"tool",sessionId:t().activeId,tool_call_id:a.id,topicId:t().activeTopicId},r=await t().internal_createMessage(i),o=await t().internal_invokeDifferentTypePlugin(r,a);("default"===a.type||"builtin"===a.type)&&o&&(s=!0,n=r)});if(await Promise.all(i),!s)return;let r=h.X.getTraceIdByMessageId(n)(t());await t().triggerAIMessage({traceId:r})},updatePluginState:async(e,a)=>{let{refreshMessages:s}=t();t().internal_dispatchMessage({id:e,type:"updateMessage",value:{pluginState:a}}),await L.l.updateMessagePluginState(e,a),await s()},updatePluginArguments:async(e,a)=>{var s;let{refreshMessages:n}=t(),i=h.X.getMessageById(e)(t());if(!i||!(null==i?void 0:i.tool_call_id))return;let r=h.X.getMessageById((null==i?void 0:i.parentId)||"")(t()),o=null==i?void 0:null===(s=i.plugin)||void 0===s?void 0:s.arguments,l=(0,er.N)(o||""),c=(0,B.T)(l||{},a);if(R()(l,c))return;t().internal_dispatchMessage({id:e,type:"updateMessagePlugin",value:{arguments:JSON.stringify(c)}}),r&&(t().internal_dispatchMessage({id:r.id,type:"updateMessageTools",tool_call_id:null==i?void 0:i.tool_call_id,value:{arguments:JSON.stringify(c)}}),r=h.X.getMessageById(null==r?void 0:r.id)(t()));let g=async()=>{r&&await L.l.updateMessage(r.id,{tools:null==r?void 0:r.tools})};await Promise.all([L.l.updateMessagePluginArguments(e,c),g()]),await n()},internal_addToolToAssistantMessage:async(e,a)=>{let s=h.X.getMessageById(e)(t());if(!s)return;let{internal_dispatchMessage:n,internal_refreshToUpdateMessageTools:i}=t();n({type:"addMessageTool",value:a,id:s.id}),await i(e)},internal_removeToolToAssistantMessage:async(e,a)=>{let s=h.X.getMessageById(e)(t());if(!s||!a)return;let{internal_dispatchMessage:n,internal_refreshToUpdateMessageTools:i}=t();n({type:"deleteMessageTool",tool_call_id:a,id:s.id}),await i(e)},internal_refreshToUpdateMessageTools:async e=>{let a=h.X.getMessageById(e)(t());if(!a||!a.tools)return;let{internal_toggleMessageLoading:s,refreshMessages:n}=t();s(!0,e),await L.l.updateMessage(e,{tools:a.tools}),s(!1,e),await n()},internal_callPluginApi:async(e,a)=>{let s;let{internal_updateMessageContent:n,refreshMessages:i,internal_togglePluginApiCalling:r}=t();try{let n=r(!0,e,eo("fetchPlugin/start")),i=h.X.getMessageById(e)(t()),o=await P.A.runPluginApi(a,{signal:null==n?void 0:n.signal,trace:{observationId:null==i?void 0:i.observationId,traceId:null==i?void 0:i.traceId}});s=o.text,o.traceId&&await L.l.updateMessage(e,{traceId:o.traceId})}catch(t){console.log(t),t.message.includes("The user aborted a request.")||(await L.l.updateMessageError(e,t),await i()),s=""}if(r(!1,e,eo("fetchPlugin/end")),s)return await n(e,s),s},internal_invokeDifferentTypePlugin:async(e,a)=>{switch(a.type){case"standalone":return await t().invokeStandaloneTypePlugin(e,a);case"markdown":return await t().invokeMarkdownTypePlugin(e,a);case"builtin":return await t().invokeBuiltinTool(e,a);default:return await t().invokeDefaultTypePlugin(e,a)}},internal_togglePluginApiCalling:(e,a,s)=>t().internal_toggleLoadingArrays("pluginApiLoadingIds",e,a,s),internal_transformToolCalls:e=>e.map(e=>{let t;let[a,s,n]=e.function.name.split(et.zB);if(!s)return null;if(t={apiName:s,arguments:e.function.arguments,id:e.id,identifier:a,type:null!=n?n:"default"},s.startsWith(et.Af)){let e=s.replace(et.Af,""),n=es.q.getToolManifestById(a)(ea.n.getState()),i=null==n?void 0:n.api.find(t=>$.V8.hashStr(t.name).toString()===e);i&&(t.apiName=i.name)}return t}).filter(Boolean),internal_updatePluginError:async(e,a)=>{let{refreshMessages:s}=t();t().internal_dispatchMessage({id:e,type:"updateMessage",value:{error:a}}),await L.l.updateMessage(e,{error:a}),await s()}});var ec=a(62737),eg=a.n(ec),eu=a(24552),ed=a(57126),ep=a(91192),ey=a(16310),em=a(55082),ev=a(75172);let eM={from:"gpt",value:"Share from [**\uD83E\uDD2F LobeChat**](https://github.com/lobehub/lobe-chat) - ".concat(eg()().format("YYYY-MM-DD"))},eh=e=>({from:"gpt",value:["**\uD83E\uDDE9 Function Calling Plugin**","- Identifier: `".concat(e.identifier,"`"),"- API name: `".concat(e.apiName,"`"),"- Result:","","```json",e.content,"```"].join("\n")}),eT=(e,t)=>({shareToShareGPT:async a=>{let{withSystemRole:s,withPluginInfo:n,avatar:i}=a,r=h.X.currentChats(t()),o=ey.y.currentAgentConfig(ep.E.getState()),c=ev.S.currentAgentMeta(em.F.getState()),g=s&&!!o.systemRole,u=(0,l.Uy)([],e=>{for(let s of(e.push({from:"gpt",value:["".concat(c.avatar," **").concat(c.title,"** - ").concat(c.description),g&&"---",g&&o.systemRole].filter(Boolean).join("\n\n")}),r))switch(s.role){case"assistant":e.push({from:"gpt",value:s.content});break;case"tool":var t,a;n&&e.push(eh({apiName:(null===(t=s.plugin)||void 0===t?void 0:t.apiName)||"undefined",content:s.content,identifier:(null===(a=s.plugin)||void 0===a?void 0:a.identifier)||"undefined"}));break;case"user":e.push({from:"human",value:s.content})}e.push(eM)});e({shareLoading:!0});let d=await ed.G.createShareGPTUrl({avatarUrl:i||eu.Hy,items:u});e({shareLoading:!1}),window.open(d,"_blank")}});var ef=a(77945);let ew=e=>{let t=ef.d.getCurrentLanguage();return{messages:[{content:"你是一名擅长会话的助理，你需要将用户的会话总结为 10 个字以内的标题",role:"system"},{content:"".concat(e.map(e=>"".concat(e.role,": ").concat(e.content)).join("\n"),"\n\n请总结上述对话为10个字以内的标题，不需要包含标点符号，输出语言语种为：").concat(t),role:"user"}]}};var eI=a(76662);let e_=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"addTopic":return(0,l.Uy)(e,e=>{var a;return e.unshift({...t.value,createdAt:Date.now(),favorite:!1,id:null!==(a=t.value.id)&&void 0!==a?a:Date.now().toString(),sessionId:t.value.sessionId?t.value.sessionId:void 0,updatedAt:Date.now()}),e.sort((e,t)=>Number(t.favorite)-Number(e.favorite))});case"updateTopic":return(0,l.Uy)(e,e=>{let{value:a,id:s}=t,n=e.findIndex(e=>e.id===s);-1!==n&&(e[n]={...e[n],...a,updatedAt:new Date})});case"deleteTopic":return(0,l.Uy)(e,e=>{let a=e.findIndex(e=>e.id===t.id);-1!==a&&e.splice(a,1)});default:return e}};var eS=a(77779);let eb=(0,f.Z)("t"),eA="SWR_USE_FETCH_TOPIC",eC=(e,t)=>({openNewTopicOrSaveTopic:async()=>{let{switchTopic:e,saveToTopic:a,refreshMessages:s,activeTopicId:n}=t();n?e():(await a(),s())},createTopic:async()=>{let{activeId:a,internal_createTopic:s}=t(),n=h.X.currentChats(t());e({creatingTopic:!0},!1,eb("creatingTopic/start"));let i=await s({sessionId:a,title:(0,V.t)("topic.defaultTitle",{ns:"chat"}),messages:n.map(e=>e.id)});return e({creatingTopic:!1},!1,eb("creatingTopic/end")),i},saveToTopic:async()=>{let e=h.X.currentChats(t());if(0===e.length)return;let{activeId:a,summaryTopicTitle:s,internal_createTopic:n}=t(),i=await n({sessionId:a,title:(0,V.t)("topic.defaultTitle",{ns:"chat"}),messages:e.map(e=>e.id)});return t().internal_updateTopicLoading(i,!0),s(i,e),i},duplicateTopic:async e=>{let{refreshTopic:a,switchTopic:s}=t(),n=eS.S.getTopicById(e)(t());if(!n)return;let i=(0,V.t)("duplicateTitle",{ns:"chat",title:null==n?void 0:n.title});eI.yw.loading({content:(0,V.t)("topic.duplicateLoading",{ns:"chat"}),key:"duplicateTopic",duration:0});let r=await X.w.cloneTopic(e,i);await a(),eI.yw.destroy("duplicateTopic"),eI.yw.success((0,V.t)("topic.duplicateSuccess",{ns:"chat"})),await s(r)},summaryTopicTitle:async(e,a)=>{let{internal_updateTopicTitleInSummary:s,internal_updateTopicLoading:n}=t(),i=eS.S.getTopicById(e)(t());if(!i)return;s(e,ee.v);let r="",o=D.u.topic(k.L.getState());await P.A.fetchPresetTaskResult({onError:()=>{s(e,i.title)},onFinish:async a=>{await t().internal_updateTopic(e,{title:a})},onLoadingChange:t=>{n(e,t)},onMessageHandle:t=>{"text"===t.type&&(r+=t.text),s(e,r)},params:(0,B.T)(o,ew(a)),trace:t().getCurrentTracePayload({traceName:A.Ve.SummaryTopicTitle,topicId:e})})},favoriteTopic:async(e,a)=>{await t().internal_updateTopic(e,{favorite:a})},updateTopicTitle:async(e,a)=>{await t().internal_updateTopic(e,{title:a})},autoRenameTopicTitle:async e=>{let{activeId:a,summaryTopicTitle:s,internal_updateTopicLoading:n}=t();n(e,!0);let i=await L.l.getMessages(a,e);await s(e,i),n(e,!1)},useFetchTopics:a=>(0,g.O4)([eA,a],async e=>{let[,t]=e;return X.w.getTopics({sessionId:t})},{suspense:!0,fallbackData:[],onSuccess:s=>{let n={...t().topicMaps,[a]:s};t().topicsInit&&R()(n,t().topicMaps)||e({topicMaps:n,topicsInit:!0},!1,eb("useFetchTopics(success)",{sessionId:a}))}}),useSearchTopics:(t,a)=>(0,x.default)(["SWR_USE_SEARCH_TOPIC",t,a],e=>{let[,t,a]=e;return X.w.searchTopics(t,a)},{onSuccess:a=>{e({searchTopics:a},!1,eb("useSearchTopics(success)",{keywords:t}))}}),switchTopic:async(a,s)=>{e({activeTopicId:a||null},!1,eb("toggleTopic")),s||await t().refreshMessages()},removeSessionTopics:async()=>{let{switchTopic:e,activeId:a,refreshTopic:s}=t();await X.w.removeTopics(a),await s(),e()},removeAllTopics:async()=>{let{refreshTopic:e}=t();await X.w.removeAllTopic(),await e()},removeTopic:async e=>{let{activeId:a,activeTopicId:s,switchTopic:n,refreshTopic:i}=t();await L.l.removeMessagesByAssistant(a,e),await X.w.removeTopic(e),await i(),s===e&&n()},removeUnstarredTopic:async()=>{let{refreshTopic:e,switchTopic:a}=t(),s=eS.S.currentUnFavTopics(t());await X.w.batchRemoveTopics(s.map(e=>e.id)),await e(),a()},internal_updateTopicTitleInSummary:(e,a)=>{t().internal_dispatchTopic({type:"updateTopic",id:e,value:{title:a}},"updateTopicTitleInSummary")},refreshTopic:async()=>(0,x.mutate)([eA,t().activeId]),internal_updateTopicLoading:(t,a)=>{e(e=>a?{topicLoadingIds:[...e.topicLoadingIds,t]}:{topicLoadingIds:e.topicLoadingIds.filter(e=>e!==t)},!1,eb("updateTopicLoading"))},internal_updateTopic:async(e,a)=>{t().internal_dispatchTopic({type:"updateTopic",id:e,value:a}),t().internal_updateTopicLoading(e,!0),await X.w.updateTopic(e,a),await t().refreshTopic(),t().internal_updateTopicLoading(e,!1)},internal_createTopic:async e=>{let a=Date.now().toString();t().internal_dispatchTopic({type:"addTopic",value:{...e,id:a}},"internal_createTopic"),t().internal_updateTopicLoading(a,!0);let s=await X.w.createTopic(e);return t().internal_updateTopicLoading(a,!1),t().internal_updateTopicLoading(s,!0),await t().refreshTopic(),t().internal_updateTopicLoading(s,!1),s},internal_dispatchTopic:(a,s)=>{let n=e_(eS.S.currentTopics(t()),a),i={...t().topicMaps,[t().activeId]:n};R()(i,t().topicMaps)||e({topicMaps:i},!1,null!=s?s:eb("dispatchTopic/".concat(a.type)))}});var eP=a(38060);let eL=e=>{let{context:t,knowledge:a,question:s}=e;return{messages:[{content:"You are also a helpful assistant good answering questions related to ".concat(a.join("/"),". And you'll be provided with a question and several passages that might be relevant. And currently your task is to provide answer based on the question and passages.\n\nNote that passages might not be relevant to the question, please only use the passages that are relevant. Or if there is no relevant passage, please answer using your knowledge.\n\nAnswer should use the same original language as the question and follow markdown syntax.\n\nThe provided passages as context:\n\n<Context>\n").concat(t.join("\n"),"\n</Context>\n\nThe question to answer is:\n\n").concat(s,"\n"),role:"user"}]}};var ek=a(27166),eD=a(93956),eB=a(59227);let eE=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eB.JO;return{messages:[{content:"".concat(a,"\n<chatHistory>\n").concat(t.join("\n"),"\n</chatHistory>\n"),role:"system"},{content:"Follow Up Input: ".concat(e,", it's standalone query:"),role:"user"}]}};var eq=a(35222);let eU=()=>ey.y.currentKnowledgeIds(ep.E.getState()),eF=()=>ey.y.hasEnabledKnowledge(ep.E.getState()),eR=(e,t)=>({deleteUserMessageRagQuery:async e=>{let a=h.X.getMessageById(e)(t());a&&a.ragQueryId&&(t().internal_dispatchMessage({id:e,type:"updateMessage",value:{ragQuery:null}}),await eq.S.deleteMessageRagQuery(a.ragQueryId),await t().refreshMessages())},internal_retrieveChunks:async(e,a,s)=>{t().internal_toggleMessageRAGLoading(!0,e);let n=h.X.getMessageById(e)(t()),i=(null==n?void 0:n.ragQuery)||a;i.length<15&&!(null==n?void 0:n.ragQuery)&&s.length>0&&(i=await t().internal_rewriteQuery(e,a,s));let r=h.X.currentUserFiles(t()).map(e=>e.id),{chunks:o,queryId:l}=await eq.S.semanticSearchForChat({fileIds:eU().fileIds.concat(r),knowledgeIds:eU().knowledgeBaseIds,messageId:e,rewriteQuery:i,userQuery:a});return t().internal_toggleMessageRAGLoading(!1,e),{chunks:o,queryId:l}},internal_rewriteQuery:async(e,a,s)=>{let n=a,i=D.u.queryRewrite(k.L.getState());if(!i.enabled)return a;let r={model:i.model,provider:i.provider,...eE(a,s,i.customPrompt?i.customPrompt:void 0)},o="";return await P.A.fetchPresetTaskResult({onFinish:async e=>{n=e},onMessageHandle:a=>{"text"===a.type&&(o+=a.text,t().internal_dispatchMessage({id:e,type:"updateMessage",value:{ragQuery:o}}))},params:r}),n},internal_shouldUseRAG:()=>{let e=h.X.currentUserFiles(t()).map(e=>e.id);return eF()||e.length>0},internal_toggleMessageRAGLoading:(a,s)=>{e({messageRAGLoadingIds:Q(t().messageRAGLoadingIds,s,a)},!1,"internal_toggleMessageLoading")},rewriteQuery:async e=>{let a=h.X.getMessageById(e)(t());if(!a)return;await t().deleteUserMessageRagQuery(e);let s=h.X.currentChatsWithHistoryConfig(t());await t().internal_rewriteQuery(e,a.content,s.map(e=>e.content))}}),ex=(0,f.Z)("ai"),eX=()=>ey.y.currentAgentConfig(ep.E.getState()),eN=()=>ey.y.currentAgentChatConfig(ep.E.getState()),eO=()=>ey.y.currentEnabledKnowledge(ep.E.getState()),ez=function(e,t){for(var a=arguments.length,s=Array(a>2?a-2:0),n=2;n<a;n++)s[n-2]=arguments[n];return{...eR(e,t,...s),delAndRegenerateMessage:async e=>{let a=h.X.getTraceIdByMessageId(e)(t());t().internal_resendMessage(e,a),t().deleteMessage(e),t().internal_traceMessage(e,{eventType:A.s$.DeleteAndRegenerateMessage})},regenerateMessage:async e=>{let a=h.X.getTraceIdByMessageId(e)(t());await t().internal_resendMessage(e,a),t().internal_traceMessage(e,{eventType:A.s$.RegenerateMessage})},sendMessage:async a=>{var s;let n,i;let{message:r,files:o,onlyAddUserMessage:l,isWelcomeQuestion:c}=a,{internal_coreProcessMessage:g,activeTopicId:u,activeId:d}=t();if(!d)return;let p=null==o?void 0:o.map(e=>e.id),y=!!p&&p.length>0;if(!r&&!y)return;e({isCreatingMessage:!0},!1,ex("creatingMessage/start"));let m={content:r,files:p,role:"user",sessionId:d,topicId:u},v=eN();if(!l&&!u&&v.enableAutoCreateTopic){let a=h.X.currentChats(t()).length+2;if(!t().activeTopicId&&a>=v.autoCreateTopicThreshold){n=t().internal_createTmpMessage(m),t().internal_toggleMessageLoading(!0,n);let a=await t().createTopic();if(a){i=a,m.topicId=a;let s=h.X.currentChatKey(t());e({messagesMap:{...t().messagesMap,[(0,W.J)(d,a)]:t().messagesMap[s]}},!1,ex("moveMessagesToNewTopic")),t().internal_updateTopicLoading(a,!0)}}}em.F.getState().triggerSessionUpdate(t().activeId);let M=await t().internal_createMessage(m,{tempMessageId:n,skipRefresh:!l&&(null===(s=m.fileList)||void 0===s?void 0:s.length)===0});if(n&&t().internal_toggleMessageLoading(!1,n),i&&(await t().switchTopic(i,!0),await t().internal_fetchMessages(),e({messagesMap:{...t().messagesMap,[(0,W.J)(d,null)]:[]}},!1,"internal_copyMessages")),l){e({isCreatingMessage:!1},!1,"creatingMessage/start");return}let T=h.X.currentChats(t()),f=h.X.currentUserFiles(t()).map(e=>e.id);await g(T,M,{isWelcomeQuestion:c,ragQuery:t().internal_shouldUseRAG()?r:void 0}),e({isCreatingMessage:!1},!1,ex("creatingMessage/stop"));let w=async()=>{if(!v.enableAutoCreateTopic)return;if(i){let e=h.X.currentChats(t());await t().summaryTopicTitle(i,e);return}let e=eS.S.currentActiveTopic(t());if(e&&!e.title){let a=h.X.currentChats(t());await t().summaryTopicTitle(e.id,a)}},I=async()=>{0!==f.length&&ek.ZN&&await ep.E.getState().addFilesToAgent(f,!1)};await Promise.all([w(),I()])},stopGenerateMessage:()=>{let{abortController:e,internal_toggleChatLoading:a}=t();e&&(e.abort(ee.F),a(!1,void 0,ex("stopGenerateMessage")))},internal_coreProcessMessage:async(e,a,s)=>{let n,i;let{internal_fetchAIChatMessage:r,triggerToolCalls:o,refreshMessages:l,activeTopicId:c}=t(),g=[...e],{model:u,provider:d}=eX();if(null==s?void 0:s.ragQuery){var p,y;let{chunks:e,queryId:r}=await t().internal_retrieveChunks(a,null==s?void 0:s.ragQuery,g.map(e=>e.content).slice(0,g.length-1));i=r;let o=eL({context:e.map(e=>e.text),question:null==s?void 0:s.ragQuery,knowledge:eO().map(e=>e.name)});o.messages&&(null===(p=o.messages)||void 0===p?void 0:p.length)>0&&(g.pop(),null===(y=o.messages)||void 0===y||y.forEach(e=>g.push(e))),n=e.map(e=>({id:e.id,similarity:e.similarity}))}let m={role:"assistant",content:ee.v,fromModel:u,fromProvider:d,parentId:a,sessionId:t().activeId,topicId:c,fileChunks:n,ragQueryId:i},v=await t().internal_createMessage(m),{isFunctionCall:M}=await r(g,v,s);M&&(await l(),await o(v))},internal_fetchAIChatMessage:async(e,a,s)=>{let n;let{internal_toggleChatLoading:i,refreshMessages:r,internal_updateMessageContent:o,internal_dispatchMessage:l,internal_toggleToolCallingStreaming:c}=t(),g=i(!0,a,ex("generateMessage(start)",{assistantId:a,messages:e})),u=eX(),d=u.chatConfig,p=(0,eP.Z)(d.inputTemplate,{interpolate:/{{([\S\s]+?)}}/g}),y=eD._L.getSlicedMessagesWithConfig(e,d);y=d.inputTemplate?y.map(e=>{if("user"===e.role)try{return{...e,content:p({text:e.content})}}catch(e){console.error(e)}return e}):y,u.systemRole&&y.unshift({content:u.systemRole,role:"system"}),u.params.max_tokens=d.enableMaxTokens?u.params.max_tokens:void 0,"gpt-4-vision-preview"!==u.model||u.params.max_tokens||(u.params.max_tokens=2048);let m=!1,v="";return await P.A.createAssistantMessageStream({abortController:g,params:{messages:y,model:u.model,provider:u.provider,...u.params,plugins:u.plugins},trace:{traceId:null==s?void 0:s.traceId,sessionId:t().activeId,topicId:t().activeTopicId,traceName:A.Ve.Conversation},isWelcomeQuestion:null==s?void 0:s.isWelcomeQuestion,onErrorHandle:async e=>{await L.l.updateMessageError(a,e),await r()},onFinish:async(e,t)=>{let{traceId:s,observationId:i,toolCalls:r}=t;s&&(n=s,await L.l.updateMessage(a,{traceId:s,observationId:null!=i?i:void 0})),r&&r.length>0&&c(a,void 0),await o(a,e,r)},onMessageHandle:async e=>{switch(e.type){case"text":l({id:a,type:"updateMessage",value:{content:v+=e.text}});break;case"tool_calls":c(a,e.isAnimationActives),l({id:a,type:"updateMessage",value:{tools:t().internal_transformToolCalls(e.tool_calls)}}),m=!0}}}),i(!1,a,ex("generateMessage(end)")),{isFunctionCall:m,traceId:n}},internal_resendMessage:async(e,a)=>{let s=h.X.currentChats(t()),n=s.findIndex(t=>t.id===e);if(n<0)return;let i=s[n],r=[];switch(i.role){case"tool":case"user":r=s.slice(0,n+1);break;case"assistant":{let e=i.parentId,t=s.findIndex(t=>t.id===e);r=s.slice(0,t<0?n+1:t+1)}}if(r.length<=0)return;let{internal_coreProcessMessage:o}=t(),l=r.findLast(e=>"user"===e.role);l&&await o(r,l.id,{traceId:a,ragQuery:t().internal_shouldUseRAG()?i.content:void 0})},internal_toggleChatLoading:(e,a,s)=>t().internal_toggleLoadingArrays("chatLoadingIds",e,a,s),internal_toggleToolCallingStreaming:(a,s)=>{e({toolCallingStreamIds:(0,l.Uy)(t().toolCallingStreamIds,e=>{s?e[a]=s:delete e[a]})},!1,"toggleToolCallingStreaming")}}},eW=(0,r.B)("chat"),eG=(0,i.F)()((0,s.XR)(eW(function(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return{...o,...Y(...t),...ez(...t),...eC(...t),...eT(...t),...q(...t),...I(...t),...el(...t),..._(...t)}})),n.X)},79880:function(e,t,a){a.d(t,{J:function(){return s}});let s=(e,t)=>{let a=t;return void 0===t&&(a=null),"".concat(e,"_").concat(a)}},27951:function(e,t,a){a.d(t,{i:function(){return n},n:function(){return i}});var s=a(56381);let n=e=>(0,s.Uc)(e.featureFlags),i={enableUploadFileToServer:e=>e.serverConfig.enableUploadFileToServer,enabledAccessCode:e=>{var t;return!!(null===(t=e.serverConfig)||void 0===t?void 0:t.enabledAccessCode)},enabledOAuthSSO:e=>e.serverConfig.enabledOAuthSSO,enabledTelemetryChat:e=>e.serverConfig.telemetry.langfuse||!1,isMobile:e=>e.isMobile||!1,oAuthSSOProviders:e=>e.serverConfig.oAuthSSOProviders}},54995:function(e,t,a){let s;a.d(t,{cy:function(){return p},oC:function(){return y},zt:function(){return m}});var n=a(43142),i=a(28769),r=a(71327),o=a(56381),l=a(55059),c=a(61887);let g={featureFlags:o.oB,serverConfig:{telemetry:{}}},u=e=>()=>({...(0,c.T)(g,e)}),d=(0,l.B)("serverConfig"),p=e=>(s||(s=(0,r.F)()(d(u(e||{})),i.X),window.global_serverConfigStore=s),s),{useStore:y,Provider:m}=(0,n.k)()},92987:function(e,t,a){a.d(t,{u:function(){return o}});var s=a(59227),n=a(61887),i=a(25506);let r=e=>(0,n.T)(s.$0,(0,i.gC)(e).systemAgent),o={agentMeta:e=>r(e).agentMeta,queryRewrite:e=>r(e).queryRewrite,topic:e=>r(e).topic,translation:e=>r(e).translation}},34205:function(e,t,a){a.d(t,{W:function(){return s}});let s=async e=>{if(0===e.length)return 0;if(e.length<=5e4){let{clientEncodeAsync:t}=await a.e(38165).then(a.bind(a,38165));return await t(e)}{let{serverEncodeAsync:t}=await a.e(15922).then(a.bind(a,15922));return await t(e)}}}}]);