1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[17591],{12336:(e,t,a)=>{a.d(t,{Z:()=>S});var s=a(21152),i=a(17520),r=a(1457),n=a(46627),o=a(17840),l=a(77111);let d=(e,t,a)=>{if(!t)return[];if(a===l.bF.Standalone)return e.filter(e=>e.id===t);let s=e.findIndex(e=>e.id===t);return s<0?[]:e.slice(0,s+1)},c=e=>e.activeTopicId&&e.threadMaps[e.activeTopicId]||[],u=e=>{if(e.portalThreadId)return c(e).find(t=>t.id===e.portalThreadId)},g=e=>e.threadStartMessageId,p=e=>{if(e.startToForkThread)return g(e);let t=u(e);return null==t?void 0:t.sourceMessageId},h=(e,t)=>{if(e.startToForkThread){let a=g(e);return d(t.filter(e=>!e.threadId),a,e.newThreadMode)}let a=u(e);return d(t,null==a?void 0:a.sourceMessageId,null==a?void 0:a.type)},y=e=>{let t=o.f.activeBaseChatsWithoutTool(e);return h(e,t)},m=e=>t=>o.f.activeBaseChatsWithoutTool(t).filter(t=>!!e&&t.threadId===e),v=e=>{let t=y(e),a=m(e.portalThreadId)(e);return[...t,o.f.activeBaseChats(e).find(e=>e.threadId===s.vS),...a].filter(Boolean)},T=e=>v(e).map(e=>e.id),M=e=>{let t=o.f.activeBaseChats(e);return h(e,t)},I=e=>t=>o.f.activeBaseChats(t).filter(t=>!!e&&t.threadId===e),f=e=>e.messageRAGLoadingIds.some(t=>T(e).includes(t)),w=e=>e.isCreatingThreadMessage,_=e=>e.messageLoadingIds.some(t=>T(e).includes(t)),S={currentPortalThread:u,currentTopicThreads:c,getFirstThreadBySourceMsgId:e=>t=>c(t).find(t=>t.sourceMessageId===e),getThreadsBySourceMsgId:e=>t=>c(t).filter(t=>t.sourceMessageId===e),getThreadsByTopic:e=>t=>{if(e)return t.threadMaps[e]},hasThreadBySourceMsgId:e=>t=>c(t).some(t=>t.sourceMessageId===e),isSendButtonDisabledByMessage:e=>_(e)||e.isCreatingThread||w(e)||f(e),isThreadAIGenerating:e=>e.chatLoadingIds.some(t=>T(e).includes(t)),portalAIChats:e=>[...M(e),...I(e.portalThreadId)(e)].filter(Boolean),portalAIChatsWithHistoryConfig:e=>{let t=[...M(e),...I(e.portalThreadId)(e)].filter(Boolean),a=r.c.enableHistoryCount(i.o.getState()),s=r.c.historyCount(i.o.getState());return n.m4.getSlicedMessages(t,{enableHistoryCount:a,historyCount:s})},portalDisplayChatIDs:T,portalDisplayChats:v,portalDisplayChatsLength:e=>v(e).length,portalDisplayChatsString:e=>v(e).map(e=>e.content).join(""),portalDisplayChildChatsByThreadId:m,threadSourceMessageId:p,threadSourceMessageIndex:e=>{let t=p(e),a=v(e);return t?a.findIndex(e=>e.id===t):-1},threadStartMessageId:g}},14687:(e,t,a)=>{a.d(t,{p:()=>S});var s=a(26621);class i{async createTopic(e){let t=await s.h.create(e);if(!t)throw Error("topic create Error");return t.id}async batchCreateTopics(e){return s.h.batchCreate(e)}async cloneTopic(e,t){return s.h.duplicateTopic(e,t)}async getTopics(e){return s.h.query(e)}async searchTopics(e,t){return s.h.queryByKeyword(e,t)}async getAllTopics(){return s.h.queryAll()}async countTopics(){return s.h.count()}async rankTopics(){throw Error("Method not implemented.")}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:void 0;return s.h.update(e,{...t,favorite:a})}async removeTopic(e){return s.h.delete(e)}async removeTopics(e){return s.h.batchDeleteBySessionId(e)}async batchRemoveTopics(e){return s.h.batchDelete(e)}async removeAllTopic(){return s.h.clearTable()}}var r=a(36363),n=a(64091),o=a(34719),l=a(2171),d=a(51320),c=a(55208),u=a(44778),g=a(19510),p=a(5667),h=a(13151),y=a(89751);function m(){let e=(0,o._)(["count"]);return m=function(){return e},e}class v{constructor(e,t){var a=this;this.query=async function(){let{current:e=0,pageSize:t=9999,sessionId:s}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return a.db.select({createdAt:h.vp.createdAt,favorite:h.vp.favorite,historySummary:h.vp.historySummary,id:h.vp.id,metadata:h.vp.metadata,title:h.vp.title,updatedAt:h.vp.updatedAt}).from(h.vp).where((0,c.Uo)((0,c.eq)(h.vp.userId,a.userId),a.matchSession(s))).orderBy((0,u.i)(h.vp.favorite),(0,u.i)(h.vp.updatedAt)).limit(t).offset(e*t)},this.findById=async e=>this.db.query.topics.findFirst({where:(0,c.Uo)((0,c.eq)(h.vp.id,e),(0,c.eq)(h.vp.userId,this.userId))}),this.queryAll=async()=>this.db.select().from(h.vp).orderBy(h.vp.updatedAt).where((0,c.eq)(h.vp.userId,this.userId)),this.queryByKeyword=async(e,t)=>{if(!e)return[];let a=e.toLowerCase(),s=await this.db.query.topics.findMany({orderBy:[(0,u.
1i)(h.vp.updatedAt)],where:(0,c.Uo)((0,c.eq)(h.vp.userId,this.userId),this.matchSession(t),(0,c.B3)(h.vp.title,"%".concat(a,"%")))}),i=await this.db.select({topicId:y.DZ.topicId}).from(y.DZ).innerJoin(h.vp,(0,c.eq)(y.DZ.topicId,h.vp.id)).where((0,c.Uo)((0,c.eq)(y.DZ.userId,this.userId),(0,c.B3)(y.DZ.content,"%".concat(a,"%")),(0,c.eq)(h.vp.userId,this.userId),this.matchSession(t))).groupBy(y.DZ.topicId);if(0===i.length)return s;let r=i.map(e=>e.topicId),n=await this.db.query.topics.findMany({orderBy:[(0,u.i)(h.vp.updatedAt)],where:(0,c.Uo)((0,c.eq)(h.vp.userId,this.userId),(0,c.RV)(h.vp.id,r))}),o=[...s],l=new Set(s.map(e=>e.id));for(let e of n)l.has(e.id)||o.push(e);return o.sort((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime())},this.count=async e=>(await this.db.select({count:(0,l.U9)(h.vp.id)}).from(h.vp).where((0,g.Yr)([(0,c.eq)(h.vp.userId,this.userId),(null==e?void 0:e.range)?(0,g.VI)(e.range,h.vp.createdAt,e=>e.toDate()):void 0,(null==e?void 0:e.endDate)?(0,g.x8)(e.endDate,h.vp.createdAt,e=>e.toDate()):void 0,(null==e?void 0:e.startDate)?(0,g.QA)(e.startDate,h.vp.createdAt,e=>e.toDate()):void 0])))[0].count,this.rank=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10;return a.db.select({count:(0,l.U9)(y.DZ.id).as("count"),id:h.vp.id,sessionId:h.vp.sessionId,title:h.vp.title}).from(h.vp).where((0,c.Uo)((0,c.eq)(h.vp.userId,a.userId))).leftJoin(y.DZ,(0,c.eq)(h.vp.id,y.DZ.topicId)).groupBy(h.vp.id).orderBy((0,u.i)((0,d.ll)(m()))).having(e=>{let{count:t}=e;return(0,c.gt)(t,0)}).limit(e)},this.create=async function(e){let{messages:t,...s}=e,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.genId();return a.db.transaction(async e=>{let[r]=await e.insert(h.vp).values({...s,id:i,userId:a.userId}).returning();return t&&t.length>0&&await e.update(y.DZ).set({topicId:r.id}).where((0,c.Uo)((0,c.eq)(y.DZ.userId,a.userId),(0,c.RV)(y.DZ.id,t))),r})},this.batchCreate=async e=>this.db.transaction(async t=>{let a=await t.insert(h.vp).values(e.map(e=>({favorite:e.favorite,id:e.id||this.genId(),sessionId:e.sessionId,title:e.title,userId:this.userId}))).returning();return await Promise.all(a.map(async(a,s)=>{let i=e[s].messages;i&&i.length>0&&await t.update(y.DZ).set({topicId:a.id}).where((0,c.Uo)((0,c.eq)(y.DZ.userId,this.userId),(0,c.RV)(y.DZ.id,i)))})),a}),this.duplicate=async(e,t)=>this.db.transaction(async a=>{let s=await a.query.topics.findFirst({where:(0,c.Uo)((0,c.eq)(h.vp.id,e),(0,c.eq)(h.vp.userId,this.userId))});if(!s)throw Error("Topic with id ".concat(e," not found"));let[i]=await a.insert(h.vp).values({...s,clientId:null,id:this.genId(),title:t||(null==s?void 0:s.title)}).returning(),r=await a.select().from(y.DZ).where((0,c.Uo)((0,c.eq)(y.DZ.topicId,e),(0,c.eq)(y.DZ.userId,this.userId)));return{messages:await Promise.all(r.map(async e=>(await a.insert(y.DZ).values({...e,clientId:null,id:(0,p.ZM)("messages"),topicId:i.id}).returning())[0])),topic:i}}),this.delete=async e=>this.db.delete(h.vp).where((0,c.Uo)((0,c.eq)(h.vp.id,e),(0,c.eq)(h.vp.userId,this.userId))),this.batchDeleteBySessionId=async e=>this.db.delete(h.vp).where((0,c.Uo)(this.matchSession(e),(0,c.eq)(h.vp.userId,this.userId))),this.batchDelete=async e=>this.db.delete(h.vp).where((0,c.Uo)((0,c.RV)(h.vp.id,e),(0,c.eq)(h.vp.userId,this.userId))),this.deleteAll=async()=>this.db.delete(h.vp).where((0,c.eq)(h.vp.userId,this.userId)),this.update=async(e,t)=>this.db.update(h.vp).set({...t,updatedAt:new Date}).where((0,c.Uo)((0,c.eq)(h.vp.id,e),(0,c.eq)(h.vp.userId,this.userId))).returning(),this.genId=()=>(0,p.ZM)("topics"),this.matchSession=e=>e?(0,c.eq)(h.vp.sessionId,e):(0,c.kZ)(h.vp.sessionId),this.userId=t,this.db=e}}var T=a(34020);class M extends T.Q{get topicModel(){return new v(n.s,this.userId)}toDbSessionId(e){return e===r.Ed?null:e}constructor(...e){super(...e),this.createTopic=async e=>{let t=await this.topicModel.create({...e,sessionId:this.toDbSessionId(e.sessionId)});if(!t)throw Error("topic create Error");return t.id},this.batchCreateTopics=async e=>({added:(await this.topicModel.batchCreate(e)).length,ids:[],skips:[],success:!0}),this.cloneTopic=async(e,t)=>(await this.topicModel.duplicate(e,t)).topic.id,this.getTopics=async e=>await this.topicModel.query({...e,sessionId:this.toDbSessionId(e.sessionId)}),this.searchTopics=async(e,t)=>await this.topicModel.queryByKeyword(e,this.toDbSessionId(t)),this.getAllTopics=async()=>await this.topicModel.queryAll(),this.countTopics=async e=>this.topicModel.count(e),this.rankTopics=async e=>this.topicModel.rank(e),this.updateTopic=async(e,t)=>this.topicModel.update(e,t),this.removeTopic=async e=>this.topicModel.delete(e),this.removeTopics=async e=>this.topicModel.batchDeleteBySessionId(this.toDbSessionId(e)),this.batchRemoveTopics=async e=>this.topicModel.batchDelete(e),this.removeAllTopic=async()=>this.topicModel.deleteAll()}}var I=a(61205);class f{constructor(){this.createTopic=e=>I.du.topic.createTopic.mutate({...e,sessionId:this.toDbSessionId(e.sessionId)}),this.batchCreateTopics=e=>I.du.topic.batchCreateTopics.mutate(e),this.cloneTopic=(e,t)=>I.du.topic.cloneTopic.mutate({id:e,newTitle:t}),this.getTopics=e=>I.du.topic.getTopics.query({...e,sessionId:this.toDbSessionId(e.sessionId)}),this.getAllTopics=()=>I.du.topic.getAllTopics.query(),this.countTopics=async e=>I.du.topic.countTopics.query(e),this.rankTopics=async e=>I.du.topic.rankTopics.query(e),this.searchTopics=(e,t)=>I.du.topic.searchTopics.query({keywords:e,sessionId:this.toDbSessionId(t)}),this.updateTopic=(e,t)=>I.du.topic.updateTopic.mutate({id:e,value:t}),this.removeTopic=e=>I.du.topic.removeTopic.mutate({id:e}),this.removeTopics=e=>I.du.topic.batchDeleteBySessionId.mutate({id:this.toDbSessionId(e)}),this.batchRemoveTopics=e=>I.du.topic.batchDelete.mutate({ids:e}),this.removeAllTopic=()=>I.du.topic.removeAllTopics.mutate(),this.toDbSessionId=e=>e===r.Ed?null:e}}var w=a(87358);let _="pglite"===w.env.NEXT_PUBLIC_CLIENT_DB?new M:new i,S="server"===w.env.NEXT_PUBLIC_SERVICE_MODE?new f:_},17591:(e,t,a)=>{a.d(t,{L:()=>tp});var s=a(30504),i=a(14),r=a(40523),n=a(99606),o=a(77111);let l={activeId:"inbox",isCreatingMessage:!1,messageEditingIds:[],messageLoadingIds:[],messagesInit:!1,messagesMap:{},chatLoadingIds:[],inputFiles:[],inputMessage:"",messageRAGLoadingIds:[],pluginApiLoadingIds:[],reasoningLoadingIds:[],searchWorkflowLoadingIds:[],toolCallingStreamIds:{},activeTopicId:null,creatingTopic:!1,isSearchingTopic:!1,searchTopics:[],topicLoadingIds:[],topicMaps:{},topicSearchKeywords:"",topicsInit:!1,dalleImageLoading:{},dalleImageMap:{},searchLoading:{},shareLoading:!1,isCreatingThread:!1,newThreadMode:o.bF.Continuation,threadInputMessage:"",threadLoadingIds:[],threadMaps:{},threadsInit:!1,portalArtifactDisplayMode:"preview",showPortal:!1};var d=a(53838),c=a(20953),u=a(92681),g=a(87668),p=a(53449),h=a(91952),y=a(43063);class m{constructor(){this.generateImage=async(e,t)=>{let a={...e,model:"dall-e-3",n:1},s=p.l.OpenAI,i=await (0,h.createHeaderWithAuth)({headers:{"Content-Type":"application/json"},provider:s}),r=await fetch(y.S.images(s),{body:JSON.stringify(a),headers:i,method:"POST",signal:null==t?void 0:t.signal});if(!r.ok)throw await r.json();return(await r.json())[0]}}}let v=new m;var T=a(25151),M=a(17840),I=a(43870),f=a(96315);let w=(0,f.K)("tool"),_=(e,t)=>
1({generateImageFromPrompts:async(e,a)=>{let{toggleDallEImageLoading:s,updateImageItem:i}=t(),r=e=>M.f.getMessageById(e)(t()),n=r(a);if(!n)return;let o=r(n.parentId),l=null==o?void 0:o.content,d=[];await (0,c.Ay)(e,async(e,r)=>{s(a+e.prompt,!0);let n="";try{n=await v.generateImage(e)}catch(i){s(a+e.prompt,!1),d[r]=i,await t().updatePluginState(a,{error:d})}if(!n)return;await i(a,e=>{e[r].previewUrl=n}),s(a+e.prompt,!1);let o=await T.z.getImageFileByUrlWithCORS(n,"".concat(l||e.prompt,"_").concat(r,".png")),c=await I.x.getState().uploadWithProgress({file:o});c&&await i(a,e=>{e[r].imageId=c.id,e[r].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=M.f.getMessageById(e)(t());if(!s)return;let i=JSON.parse(s.content),r=(0,d.jM)(i,a);await t().internal_updateMessageContent(e,JSON.stringify(r))},useFetchDalleImageItem:t=>(0,u.lA)(["FetchImageItem",t],async()=>{let a=await g.Y.getFile(t);return e((0,d.jM)(e=>{e.dalleImageMap[t]||(e.dalleImageMap[t]=a)}),!1,w("useFetchFile")),a})});var S=a(91981),A=a(37287);let b=(0,S.XT)({links:[(0,S.fu)({headers:async()=>{let{createHeaderWithAuth:e}=await Promise.resolve().then(a.bind(a,91952));return e()},maxURLLength:2083,transformer:A.Ay,url:"/trpc/tools"})]});class C{search(e,t){return b.search.query.query({query:e,searchEngine:t})}crawlPage(e){return b.search.crawlPages.mutate({urls:[e]})}crawlPages(e){return b.search.crawlPages.mutate({urls:e})}}let k=new C;var D=a(50757),P=a(63496);let L=(e,t)=>({crawlMultiPages:async function(e,a){let s=!(arguments.length>2)||void 0===arguments[2]||arguments[2],{internal_updateMessageContent:i}=t();t().toggleSearchLoading(e,!0);try{let r=await k.crawlPages(a.urls);await t().updatePluginState(e,r),t().toggleSearchLoading(e,!1);let{results:n}=r;if(!n)return;let o=n.map(e=>{var t;return"errorMessage"in e?e:{...e.data,content:null===(t=e.data.content)||void 0===t?void 0:t.slice(0,D.t)}});return await i(e,JSON.stringify(o)),s}catch(a){console.error(a);let t=[{...a,errorMessage:a.message,errorType:a.name}];await i(e,JSON.stringify(t))}},crawlSinglePage:async(e,a,s)=>{let{crawlMultiPages:i}=t();return await i(e,{urls:[a.url]},s)},reSearchWithSearXNG:async(e,a,s)=>{t().toggleSearchLoading(e,!0),await t().updatePluginArguments(e,a),await t().searchWithSearXNG(e,a,null==s?void 0:s.aiSummary)},saveSearXNGSearchResult:async e=>{let a=M.f.getMessageById(e)(t());if(!a||!a.plugin)return;let{internal_addToolToAssistantMessage:s,internal_createMessage:i,openToolUI:r}=t(),n="tool_call_".concat((0,P.Ak)()),o={content:a.content,id:void 0,parentId:a.parentId,plugin:a.plugin,pluginState:a.pluginState,role:"tool",sessionId:t().activeId,tool_call_id:n,topicId:t().activeTopicId},l=async()=>{a.parentId&&a.plugin&&await s(a.parentId,{id:n,...a.plugin})},[d]=await Promise.all([i(o),l()]);r(d,a.plugin.identifier)},searchWithSearXNG:async function(e,a){let s,i=!(arguments.length>2)||void 0===arguments[2]||arguments[2];t().toggleSearchLoading(e,!0);try{var r;(null==(s=await k.search(a.query,a.searchEngines))?void 0:s.results.length)===0&&a.searchEngines&&(null===(r=a.searchEngines)||void 0===r?void 0:r.length)>0&&(s=await k.search(a.query),t().updatePluginArguments(e,{...a,searchEngines:void 0})),await t().updatePluginState(e,s)}catch(a){"SearXNG is not configured"===a.message?await t().internal_updateMessagePluginError(e,{body:{provider:"searxng"},message:"SearXNG is not configured",type:"PluginSettingsInvalid"}):await t().internal_updateMessagePluginError(e,{body:a,message:a.message,type:"PluginServerError"})}if(t().toggleSearchLoading(e,!1),!s)return;let n=s.results.slice(0,15).map(e=>({content:e.content,title:e.title,url:e.url}));if(await t().internal_updateMessageContent(e,JSON.stringify(n)),0!==n.length)return i},togglePageContent:t=>{e({activePageContentUrl:t})},toggleSearchLoading:(a,s)=>{e({searchLoading:{...t().searchLoading,[a]:s}},!1,"toggleSearchLoading/".concat(s?"start":"end"))}}),B=function(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return{..._(...t),...L(...t)}},E=(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:()=>
1{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")}}),q=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"}]}),R=(e,t)=>({messages:[{content:"ä½ æ¯ä¸åæ
é¿ç¿»è¯çå©çï¼ä½ éè¦å°è¾å
¥çè¯è¨ç¿»è¯ä¸ºç®æ è¯è¨",role:"system"},{content:"请å°ä»¥ä¸å
容 ".concat(e,"ï¼ç¿»è¯ä¸º ").concat(t," "),role:"user"}]});var F=a(46834),U=a(91958),N=a(85869),x=a(80222),j=a(46182),H=a(56894),W=a(99793);let O=(0,f.K)("enhance"),G=(e,t)=>({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:i,internal_dispatchMessage:r}=t(),n=M.f.getMessageById(e)(t());if(!n)return;let o=H.v.translation(j.k.getState());await i(e,{content:"",from:"",to:a}),s(!0,e,O("translateMessage(start)",{id:e}));let l="",c="";N.O.fetchPresetTaskResult({onFinish:async t=>{t&&U.vM.includes(t)&&(c=t),await i(e,{content:l,from:c,to:a})},params:(0,W.h)(o,q(n.content)),trace:t().getCurrentTracePayload({traceName:F.Fs.LanguageDetect})}),await N.O.fetchPresetTaskResult({onFinish:async t=>{await i(e,{content:t,from:c,to:a}),s(!1,e)},onMessageHandle:t=>{"text"===t.type&&r({id:e,key:"translate",type:"updateMessageExtra",value:(0,d.jM)({content:"",from:c,to:a},e=>{l+=t.text,e.content+=l})})},params:(0,W.h)(o,R(n.content,a)),trace:t().getCurrentTracePayload({traceName:F.Fs.Translator})})},updateMessageTranslate:async(e,a)=>{await x.T.updateMessageTranslate(e,a),await t().refreshMessages()}});var Z=a(99387),Q=a(51616),K=a.n(Q),z=a(20071),J=a(14687),V=a(11715);class X{constructor(){this.request=async e=>{try{return fetch(y.S.trace,{body:JSON.stringify(e),headers:{"Content-Type":"application/json"},method:"POST"})}catch(e){console.error(e)}},this.traceEvent=async e=>{if(V.U.userAllowTrace(j.k.getState()))return this.request(e)}}}let Y=new X;var $=a(24530);let ee=e=>{e.returnValue="ä½ ææ£å¨çæä¸ç请æ±ï¼ç¡®å®è¦ç¦»å¼åï¼"},et=(e,t,a)=>(0,d.jM)(e,e=>{if(a)e.includes(t)||e.push(t);else{let a=e.indexOf(t);a>=0&&e.splice(a,1)}}),ea=(e,t)=>{switch(t.type){case"updateMessage":return(0,d.jM)(e,e=>{let{id:a,value:s}=t,i=e.findIndex(e=>e.id===a);i<0||(e[i]=(0,W.h)(e[i],{...s,updatedAt:Date.now()}))});case"updateMessageExtra":return(0,d.jM)(e,e=>{let{id:a,key:s,value:i}=t,r=e.find(e=>e.id===a);r&&(r.extra?r.extra[s]=i:r.extra={[s]:i},r.updatedAt=Date.now())});case"updatePluginState":return(0,d.jM)(e,e=>{let a;let{id:s,key:i,value:r}=t,n=e.find(e=>e.id===s);n&&(a=n.pluginState?(0,W.h)(n.pluginState,{[i]:r}):{[i]:r},K()(n.pluginState,a)||(n.pluginState=a,n.updatedAt=Date.now()))});case"updateMessagePlugin":return(0,d.jM)(e,e=>{let{id:a,value:s}=t,i=e.find(e=>e.id===a);i&&"tool"===i.role&&(i.plugin=(0,W.h)(i.plugin,s),i.updatedAt=Date.now())});case"addMessageTool":return(0,d.jM)(e,e=>{let{id:a,value:s}=t,i=e.find(e=>e.id===a);if(i&&"assistant"===i.role){if(i.tools){if(i.tools.findIndex(e=>e.id===s.id)>0)return;i.tools.push(s)}else i.tools=[s];i.updatedAt=Date.now()}});case"deleteMessageTool":return(0,d.jM)(e,e=>{let{id:a,tool_call_id:s}=t,i=e.find(e=>e.id===a);i&&"assistant"===i.role&&i.tools&&(i.tools=i.tools.filter(e=>e.id!==s),i.updatedAt=Date.now())});case"updateMessageTools":return(0,d.jM)(e,e=>{let{id:a,value:s,tool_call_id:i}=t,r=e.find(e=>e.id===a);if(!r||"assistant"!==r.role||!r.tools)return;let n=r.tools.findIndex(e=>e.id===i);n<0||(r.tools[n]=(0,W.h)(r.tools[n],s),r.updatedAt=Date.now())});case"createMessage":return(0,d.jM)(e,e=>{let{value:a,id:s}=t;e.push({...a,createdAt:Date.now(),id:s,meta:{},updatedAt:Date.now()})});case"deleteMessage":return(0,d.jM)(e,e=>{let{id:a}=t,s=e.findIndex(e=>e.id===a);s>=0&&e.splice(s,1)});case"deleteMessages":return(0,d.jM)(e,e=>{let{ids:a}=t;return e.filter(e=>!a.includes(e.id))});default:throw Error("ææªå®ç°ç typeï¼è¯·æ£æ¥ reducer")}},es=(0,f.K)("m"),ei="SWR_USE_FETCH_MESSAGES",er=(e,t)=>({deleteMessage:async e=>{let a=M.f.getMessageById(e)(t());if(!a)return;let s=[a.id];if(a.tools){let e=a.tools.flatMap(e=>M.f.activeBaseChats(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 x.T.removeMessages(s),await t().refreshMessages()},deleteToolMessage:async e=>{let a=M.f.getMessageById(e)(t());if(!a||"tool"!==a.role)return;let s=async()=>
1{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:i,switchTopic:r}=t();await x.T.removeMessagesByAssistant(e,a),a&&await J.p.removeTopic(a),await i(),await s(),r()},clearAllMessages:async()=>{let{refreshMessages:e}=t();await x.T.removeAllMessages(),await e()},addAIMessage:async()=>{let{internal_createMessage:e,updateInputMessage:a,activeTopicId:s,activeId:i,inputMessage:r}=t();i&&(await e({content:r,role:"assistant",sessionId:i,topicId:s}),a(""))},copyMessage:async(e,a)=>{await (0,Z.l)(a),t().internal_traceMessage(e,{eventType:F.OH.CopyMessage})},toggleMessageEditing:(a,s)=>{e({messageEditingIds:et(t().messageEditingIds,a,s)},!1,"toggleMessageEditing")},updateInputMessage:a=>{K()(a,t().inputMessage)||e({inputMessage:a},!1,es("updateInputMessage",a))},modifyMessageContent:async(e,a)=>{t().internal_traceMessage(e,{eventType:F.OH.ModifyMessage,nextContent:a}),await t().internal_updateMessageContent(e,a)},useFetchMessages:(a,s,i)=>(0,u.lA)(a?[ei,s,i]:null,async e=>{let[,t,a]=e;return x.T.getMessages(t,a)},{onSuccess:(a,r)=>{let n={...t().messagesMap,[(0,$.T)(s,i)]:a};t().messagesInit&&K()(n,t().messagesMap)||e({messagesInit:!0,messagesMap:n},!1,es("useFetchMessages",{messages:a,queryKey:r}))}}),refreshMessages:async()=>{await (0,z.j)([ei,t().activeId,t().activeTopicId])},internal_dispatchMessage:a=>{let{activeId:s}=t();if(!s)return;let i=ea(M.f.activeBaseChats(t()),a),r={...t().messagesMap,[M.f.currentChatKey(t())]:i};K()(r,t().messagesMap)||e({messagesMap:r},!1,{type:"dispatchMessage/".concat(a.type),payload:a})},internal_updateMessageError:async(e,a)=>{t().internal_dispatchMessage({id:e,type:"updateMessage",value:{error:a}}),await x.T.updateMessage(e,{error:a}),await t().refreshMessages()},internal_updateMessagePluginError:async(e,a)=>{await x.T.updateMessagePluginError(e,a),await t().refreshMessages()},internal_updateMessageContent:async(e,a,s)=>{let{internal_dispatchMessage:i,refreshMessages:r,internal_transformToolCalls:n}=t();i((null==s?void 0:s.toolCalls)?{id:e,type:"updateMessage",value:{tools:n(null==s?void 0:s.toolCalls)}}:{id:e,type:"updateMessage",value:{content:a}}),await x.T.updateMessage(e,{content:a,tools:(null==s?void 0:s.toolCalls)?n(null==s?void 0:s.toolCalls):void 0,reasoning:null==s?void 0:s.reasoning,search:null==s?void 0:s.search,metadata:null==s?void 0:s.metadata,model:null==s?void 0:s.model,provider:null==s?void 0:s.provider,imageList:null==s?void 0:s.imageList}),await r()},internal_createMessage:async(e,a)=>{let{internal_createTmpMessage:s,refreshMessages:i,internal_toggleMessageLoading:r}=t(),n=null==a?void 0:a.tempMessageId;n||r(!0,n=s(e));let o=await x.T.createMessage(e);return(null==a?void 0:a.skipRefresh)||(r(!0,n),await i()),r(!1,n),o},internal_fetchMessages:async()=>{let a=await x.T.getMessages(t().activeId,t().activeTopicId),s={...t().messagesMap,[M.f.currentChatKey(t())]:a};t().messagesInit&&K()(s,t().messagesMap)||e({messagesInit:!0,messagesMap:s},!1,es("internal_fetchMessages",{messages:a}))},internal_createTmpMessage:e=>{let{internal_dispatchMessage:a}=t(),s="tmp_"+(0,P.Ak)();return a({type:"createMessage",id:s,value:e}),s},internal_deleteMessage:async e=>{t().internal_dispatchMessage({type:"deleteMessage",id:e}),await x.T.removeMessage(e),await t().refreshMessages()},internal_traceMessage:async(e,a)=>{let s=M.f.getMessageById(e)(t());if(!s)return;let i=null==s?void 0:s.traceId,r=null==s?void 0:s.observationId;i&&(null==s?void 0:s.role)==="assistant"&&Y.traceEvent({traceId:i,observationId:r,content:s.content,...a}).catch()},internal_toggleMessageLoading:(a,s)=>{e({messageLoadingIds:et(t().messageLoadingIds,s,a)},!1,"internal_toggleMessageLoading/".concat(a?"start":"end"))},internal_toggleLoadingArrays:(a,s,i,r)=>{let n="".concat(a,"AbortController");if(s){window.addEventListener("beforeunload",ee);let o=new AbortController;return e({[n]:o,[a]:et(t()[a],i,s)},!1,r),o}i?e({[n]:void 0,[a]:et(t()[a],i,s)},!1,r):e({[n]:void 0,[a]:[]},!1,r),window.removeEventListener("beforeunload",ee)}});var en=a(10888),eo=a(12735),el=a(17953),ed=a(21152),ec=a(24862),eu=a(33433),eg=a(23740),ep=a(88456),eh=a(29129),ey=a(54583),em=a(12336);let ev=(0,f.K)("plugin"),eT=(e,t)=>
1({createAssistantMessageByPlugin:async(e,a)=>{let s={content:e,parentId:a,role:"assistant",sessionId:t().activeId,topicId:t().activeTopicId};await x.T.createMessage(s),await t().refreshMessages()},fillPluginMessageContent:async(e,a,s)=>{let{triggerAIMessage:i,internal_updateMessageContent:r}=t();await r(e,a),s&&await i({parentId:e})},invokeBuiltinTool:async(e,a)=>{let s,i;let{internal_togglePluginApiCalling:r,internal_updateMessageContent:n,internal_updatePluginError:o}=t(),l=JSON.parse(a.arguments);r(!0,e,ev("invokeBuiltinTool/start"));try{s=await eu.j.getState().transformApiArgumentsToAiState(a.apiName,l)}catch(i){var d,c;console.error(i);let t=ep.F.find(e=>e.identifier===a.identifier),s=null==t?void 0:null===(c=t.manifest)||void 0===c?void 0:null===(d=c.api.find(e=>e.name===a.apiName))||void 0===d?void 0:d.parameters;await o(e,{type:eh.T.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:i.stack,arguments:l,schema:s},message:""})}if(r(!1,e,ev("invokeBuiltinTool/end")),!s)return;await n(e,s);let{[a.apiName]:u}=t();if(u){try{i=JSON.parse(s)}catch(e){}if(i)return await u(e,i)}},invokeDefaultTypePlugin:async(e,a)=>{let{internal_callPluginApi:s}=t(),i=await s(e,a);if(i)return i},invokeMarkdownTypePlugin:async(e,a)=>{let{internal_callPluginApi:s}=t();await s(e,a)},invokeStandaloneTypePlugin:async(e,a)=>{let s=await eu.j.getState().validatePluginSettings(a.identifier);if(s&&!s.valid){await x.T.updateMessageError(e,{body:{error:s.errors,message:"[plugin] your settings is invali
1d with plugin manifest setting schema"},message:(0,eo.t)("response.PluginSettingsInvalid",{ns:"error"}),type:en.mq.PluginSettingsInvalid}),await t().refreshMessages();return}},reInvokeToolMessage:async e=>{let a=M.f.getMessageById(e)(t());if(!a||"tool"!==a.role||!a.plugin)return;a.pluginError&&t().internal_updateMessagePluginError(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,threadId:i,inPortalThread:r,inSearchWorkflow:n}=e,{internal_coreProcessMessage:o}=t(),l=r?em.Z.portalAIChatsWithHistoryConfig(t()):M.f.mainAIChatsWithHistoryConfig(t());await o(l,null!=a?a:l.at(-1).id,{traceId:s,threadId:i,inPortalThread:r,inSearchWorkflow:n})},summaryPluginContent:async e=>{let a=M.f.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 function(e){let{threadId:a,inPortalThread:s,inSearchWorkflow:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=M.f.getMessageById(e)(t());if(!r||!r.tools)return;let n=!1,o="",l=r.tools.map(async s=>{let i={content:ed.VH,parentId:e,plugin:s,role:"tool",sessionId:t().activeId,tool_call_id:s.id,threadId:a,topicId:t().activeTopicId},r=await t().internal_createMessage(i),l=await t().internal_invokeDifferentTypePlugin(r,s);("default"===s.type||"builtin"===s.type)&&l&&(n=!0,o=r)});if(await Promise.all(l),!n)return;let d=M.f.getTraceIdByMessageId(o)(t());await t().triggerAIMessage({traceId:d,threadId:a,inPortalThread:s,inSearchWorkflow:i})},updatePluginState:async(e,a)=>{let{refreshMessages:s}=t();t().internal_dispatchMessage({id:e,type:"updateMessage",value:{pluginState:a}}),await x.T.updateMessagePluginState(e,a),await s()},updatePluginArguments:async(e,a)=>{var s;let{refreshMessages:i}=t(),r=M.f.getMessageById(e)(t());if(!r||!(null==r?void 0:r.tool_call_id))return;let n=M.f.getMessageById((null==r?void 0:r.parentId)||"")(t()),o=null==r?void 0:null===(s=r.plugin)||void 0===s?void 0:s.arguments,l=(0,ey.N)(o||""),d=(0,W.h)(l||{},a);if(K()(l,d))return;t().internal_dispatchMessage({id:e,type:"updateMessagePlugin",value:{arguments:JSON.stringify(d)}}),n&&(t().internal_dispatchMessage({id:n.id,type:"updateMessageTools",tool_call_id:null==r?void 0:r.tool_call_id,value:{arguments:JSON.stringify(d)}}),n=M.f.getMessageById(null==n?void 0:n.id)(t()));let c=async()=>{n&&await x.T.updateMessage(n.id,{tools:null==n?void 0:n.tools})};await Promise.all([x.T.updateMessagePluginArguments(e,d),c()]),await i()},internal_addToolToAssistantMessage:async(e,a)=>{let s=M.f.getMessageById(e)(t());if(!s)return;let{internal_dispatchMessage:i,internal_refreshToUpdateMessageTools:r}=t();i({type:"addMessageTool",value:a,id:s.id}),await r(e)},internal_removeToolToAssistantMessage:async(e,a)=>{let s=M.f.getMessageById(e)(t());if(!s||!a)return;let{internal_dispatchMessage:i,internal_refreshToUpdateMessageTools:r}=t();i({type:"deleteMessageTool",tool_call_id:a,id:s.id}),await r(e)},internal_refreshToUpdateMessageTools:async e=>{let a=M.f.getMessageById(e)(t());if(!a||!a.tools)return;let{internal_toggleMessageLoading:s,refreshMessages:i}=t();s(!0,e),await x.T.updateMessage(e,{tools:a.tools}),s(!1,e),await i()},internal_callPluginApi:async(e,a)=>{let s;let{internal_updateMessageContent:i,refreshMessages:r,internal_togglePluginApiCalling:n}=t();try{let i=n(!0,e,ev("fetchPlugin/start")),r=M.f.getMessageById(e)(t()),o=await N.O.runPluginApi(a,{signal:null==i?void 0:i.signal,trace:{observationId:null==r?void 0:r.observationId,traceId:null==r?void 0:r.traceId}});s=o.text,o.traceId&&await x.T.updateMessage(e,{traceId:o.traceId})}catch(t){console.log(t),t.message.includes("The user aborted a request.")||(await x.T.updateMessageError(e,t),await r()),s=""}if(n(!1,e,ev("fetchPlugin/end")),s)return await i(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,i]=e.function.name.split(ec.Ku);if(!s)return null;if(t={apiName:s,arguments:e.function.arguments,id:e.id,identifier:a,type:null!=i?i:"default"},s.startsWith(ec.vF)){let e=s.replace(ec.vF,""),i=eg.w.getToolManifestById(a)(eu.j.getState()),r=null==i?void 0:i.api.find(t=>el.VV.hashStr(t.name).toString()===e);r&&(t.apiName=r.name)}return t}
1).filter(Boolean),internal_updatePluginError:async(e,a)=>{let{refreshMessages:s}=t();t().internal_dispatchMessage({id:e,type:"updateMessage",value:{error:a}}),await x.T.updateMessage(e,{error:a}),await s()}}),eM=()=>({genShareUrl:()=>Promise.resolve("TODO")});var eI=a(90427),ef=a(42770);let ew=e=>{let t=ef.J.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 e_=a(21578);let eS=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,d.jM)(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,d.jM)(e,e=>{let{value:a,id:s}=t,i=e.findIndex(e=>e.id===s);-1!==i&&(e[i]={...e[i],...a,updatedAt:new Date})});case"deleteTopic":return(0,d.jM)(e,e=>{let a=e.findIndex(e=>e.id===t.id);-1!==a&&e.splice(a,1)});default:return e}};var eA=a(45377);let eb=(0,f.K)("t"),eC="SWR_USE_FETCH_TOPIC",ek=(e,t)=>({openNewTopicOrSaveTopic:async()=>{let{switchTopic:e,saveToTopic:a,refreshMessages:s,activeTopicId:i}=t();i?e():(await a(),s())},createTopic:async()=>{let{activeId:a,internal_createTopic:s}=t(),i=M.f.activeBaseChats(t());e({creatingTopic:!0},!1,eb("creatingTopic/start"));let r=await s({sessionId:a,title:(0,eo.t)("defaultTitle",{ns:"topic"}),messages:i.map(e=>e.id)});return e({creatingTopic:!1},!1,eb("creatingTopic/end")),r},saveToTopic:async()=>{let e=M.f.activeBaseChats(t());if(0===e.length)return;let{activeId:a,summaryTopicTitle:s,internal_createTopic:i}=t(),r=await i({sessionId:a,title:(0,eo.t)("defaultTitle",{ns:"topic"}),messages:e.map(e=>e.id)});return t().internal_updateTopicLoading(r,!0),s(r,e),r},duplicateTopic:async e=>{let{refreshTopic:a,switchTopic:s}=t(),i=eA.e.getTopicById(e)(t());if(!i)return;let r=(0,eo.t)("duplicateTitle",{ns:"chat",title:null==i?void 0:i.title});e_.iU.loading({content:(0,eo.t)("duplicateLoading",{ns:"topic"}),key:"duplicateTopic",duration:0});let n=await J.p.cloneTopic(e,r);await a(),e_.iU.destroy("duplicateTopic"),e_.iU.success((0,eo.t)("duplicateSuccess",{ns:"topic"})),await s(n)},summaryTopicTitle:async(e,a)=>{let{internal_updateTopicTitleInSummary:s,internal_updateTopicLoading:i}=t(),r=eA.e.getTopicById(e)(t());if(!r)return;s(e,ed.VH);let n="",o=H.v.topic(j.k.getState());await N.O.fetchPresetTaskResult({onError:()=>{s(e,r.title)},onFinish:async a=>{await t().internal_updateTopic(e,{title:a})},onLoadingChange:t=>{i(e,t)},onMessageHandle:t=>{"text"===t.type&&(n+=t.text),s(e,n)},params:(0,W.h)(o,ew(a)),trace:t().getCurrentTracePayload({traceName:F.Fs.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:i}=t();i(e,!0);let r=await x.T.getMessages(a,e);await s(e,r),i(e,!1)},useFetchTopics:(a,s)=>(0,u.lA)(a?[eC,s]:null,async e=>{let[,t]=e;return J.p.getTopics({sessionId:t})},{suspense:!0,fallbackData:[],onSuccess:a=>{let i={...t().topicMaps,[s]:a};t().topicsInit&&K()(i,t().topicMaps)||e({topicMaps:i,topicsInit:!0},!1,eb("useFetchTopics(success)",{sessionId:s}))}}),useSearchTopics:(t,a)=>(0,eI.default)(["SWR_USE_SEARCH_TOPIC",t,a],e=>{let[,t,a]=e;return J.p.searchTopics(t,a)},{onSuccess:a=>{e({searchTopics:a,isSearchingTopic:!1},!1,eb("useSearchTopics(success)",{keywords:t}))}}),switchTopic:async(a,s)=>{e({activeTopicId:a||null,activeThreadId:void 0},!1,eb("toggleTopic")),s||await t().refreshMessages()},removeSessionTopics:async()=>{let{switchTopic:e,activeId:a,refreshTopic:s}=t();await J.p.removeTopics(a),await s(),e()},removeAllTopics:async()=>{let{refreshTopic:e}=t();await J.p.removeAllTopic(),await e()},removeTopic:async e=>{let{activeId:a,activeTopicId:s,switchTopic:i,refreshTopic:r}=t();await x.T.removeMessagesByAssistant(a,e),await J.p.removeTopic(e),await r(),s===e&&i()},removeUnstarredTopic:async()=>{let{refreshTopic:e,switchTopic:a}=t(),s=eA.e.currentUnFavTopics(t());await J.p.batchRemoveTopics(s.map(e=>e.id)),await e(),a()},internal_updateTopicTitleInSummary:(e,a)=>{t().internal_dispatchTopic({type:"updateTopic",id:e,value:{title:a}},"updateTopicTitleInSummary")}
1,refreshTopic:async()=>(0,z.j)([eC,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 J.p.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 J.p.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 i=eS(eA.e.currentTopics(t()),a),r={...t().topicMaps,[t().activeId]:i};K()(r,t().topicMaps)||e({topicMaps:r},!1,null!=s?s:eb("dispatchTopic/".concat(a.type)))}});var eD=a(87228),eP=a(92043);let eL=e=>'<chunk fileId="'.concat(e.fileId,'" fileName="').concat(e.fileName,'" similarity="').concat(e.similarity,'" ').concat(e.pageNumber?' pageNumber="'.concat(e.pageNumber,'" '):"",">").concat(e.text,"</chunk>"),eB=e=>0===e.length?"":"<retrieved_chunks>\n<retrieved_chunks_docstring>here are retrived chunks you can refer to:</retrieved_chunks_docstring>\n".concat(e.map(e=>eL(e)).join("\n"),"\n</retrieved_chunks>").trim(),eE=e=>'<knowledge id="'.concat(e.id,'" name="').concat(e.name,'" type="').concat(e.type,'"').concat(e.fileType?' fileType="'.concat(e.fileType,'" '):"",">").concat(e.description||"","</knowledge>"),eq=e=>0===(e||[]).length?"":"<knowledge_bases>\n<knowledge_bases_docstring>here are the knowledge base scope we retrieve chunks from:</knowledge_bases_docstring>\n".concat(null==e?void 0:e.map(e=>eE(e)).join("\n"),"\n</knowledge_bases>").trim(),eR=(e,t)=>"<user_query>\n<user_query_docstring>to make result better, we may rewrite user's question.If there is a rewrite query, it will be wrapper with `rewrite_query` tag.</user_query_docstring>\n\n<raw_query>".concat(e.trim(),"</raw_query>\n").concat(t?"<rewrite_query>".concat(t.trim(),"</rewrite_query>"):"","\n<user_query>"),eF=e=>{var t;let{chunks:a,knowledge:s,userQuery:i,rewriteQuery:r}=e;if((null===(t=a||[])||void 0===t?void 0:t.length)===0)return"";let n=(s||[]).map(e=>e.name).join("/");return"<knowledge_base_qa_info>\nYou are also a helpful assistant good answering questions related to ".concat(n,". 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<knowledge_base_anwser_instruction>\n- Note that passages might not be relevant to the question, please only use the passages that are relevant.\n- if there is no relevant passage, please answer using your knowledge.\n- Answer should use the same original language as the question and follow markdown syntax.\n</knowledge_base_anwser_instruction>\n").concat(eq(s),"\n").concat(a?eB(a):"","\n").concat(eR(i,r),"\n</knowledge_base_qa_info>")};var eU=a(17520),eN=a(1457),ex=a(13902),ej=a(55095),eH=a(17755),eW=a(46627),eO=a(80661),eG=a(702);let eZ=(0,f.K)("ai"),eQ=(e,t)=>({delAndRegenerateMessage:async e=>{let a=M.f.getTraceIdByMessageId(e)(t());t().internal_resendMessage(e,{traceId:a}),t().deleteMessage(e),t().internal_traceMessage(e,{eventType:F.OH.DeleteAndRegenerateMessage})},regenerateMessage:async e=>{let a=M.f.getTraceIdByMessageId(e)(t());await t().internal_resendMessage(e,{traceId:a}),t().internal_traceMessage(e,{eventType:F.OH.RegenerateMessage})},sendMessage:async a=>{var s;let i,r;let{message:n,files:o,onlyAddUserMessage:l,isWelcomeQuestion:d}=a,{internal_coreProcessMessage:c,activeTopicId:u,activeId:g,activeThreadId:p}=t();if(!g)return;let h=null==o?void 0:o.map(e=>e.id),y=!!h&&h.length>0;if(!n&&!y)return;e({isCreatingMessage:!0},!1,eZ("creatingMessage/start"));let m={content:n,files:h,role:"user",sessionId:g,topicId:u,threadId:p},v=eN.c.currentChatConfig((0,eU._)());if(!l&&!u&&v.enableAutoCreateTopic){let a=M.f.activeBaseChats(t()).length+2;if(!t().activeTopicId&&a>=v.autoCreateTopicThreshold){i=t().internal_createTmpMessage(m),t().internal_toggleMessageLoading(!0,i);let a=await t().createTopic();if(a){r=a,m.topicId=a;let s=M.f.currentChatKey(t());e({messagesMap:{...t().messagesMap,[(0,$.T)(g,a)]:t().messagesMap[s]}},!1,eZ("moveMessagesToNewTopic")),t().internal_updateTopicLoading(a,!0)}}}
1eO.B.getState().triggerSessionUpdate(t().activeId);let T=await t().internal_createMessage(m,{tempMessageId:i,skipRefresh:!l&&(null===(s=m.fileList)||void 0===s?void 0:s.length)===0});if(i&&t().internal_toggleMessageLoading(!1,i),r&&(await t().switchTopic(r,!0),await t().internal_fetchMessages(),e({messagesMap:{...t().messagesMap,[(0,$.T)(g,null)]:[]}},!1,"internal_copyMessages")),l){e({isCreatingMessage:!1},!1,"creatingMessage/start");return}let I=M.f.activeBaseChats(t()),f=M.f.currentUserFiles(t()).map(e=>e.id);await c(I,T,{isWelcomeQuestion:d,ragQuery:t().internal_shouldUseRAG()?n:void 0,threadId:p}),e({isCreatingMessage:!1},!1,eZ("creatingMessage/stop"));let w=async()=>{if(!v.enableAutoCreateTopic)return;if(r){let e=M.f.activeBaseChats(t());await t().summaryTopicTitle(r,e);return}let e=eA.e.currentActiveTopic(t());if(e&&!e.title){let a=M.f.activeBaseChats(t());await t().summaryTopicTitle(e.id,a)}},_=async()=>{0!==f.length&&eP.zJ&&await eU.o.getState().addFilesToAgent(f,!1)};await Promise.all([w(),_()])},stopGenerateMessage:()=>{let{chatLoadingIdsAbortController:e,internal_toggleChatLoading:a}=t();e&&(e.abort(ed.ve),a(!1,void 0,eZ("stopGenerateMessage")))},internal_coreProcessMessage:async(e,a,s)=>{let i,r;let{internal_fetchAIChatMessage:n,triggerToolCalls:o,refreshMessages:l,activeTopicId:d}=t(),c=[...e],{model:u,provider:g,chatConfig:p}=ex.e.currentAgentConfig((0,eU._)());if(null==s?void 0:s.ragQuery){let{chunks:e,queryId:n,rewriteQuery:o}=await t().internal_retrieveChunks(a,null==s?void 0:s.ragQuery,c.map(e=>e.content).slice(0,c.length-1));r=n;let l=c.pop(),d=eF({chunks:e,userQuery:l.content,rewriteQuery:o,knowledge:ex.e.currentEnabledKnowledge((0,eU._)())});c.push({...l,content:(l.content+"\n\n"+d).trim()}),i=e.map(e=>({id:e.id,similarity:e.similarity}))}let h={role:"assistant",content:ed.VH,fromModel:u,fromProvider:g,parentId:a,sessionId:t().activeId,topicId:d,threadId:null==s?void 0:s.threadId,fileChunks:i,ragQueryId:r},y=await t().internal_createMessage(h),m=ej.g.isModelSupportToolUse(u,g)((0,eH.l)());if(eN.c.isAgentEnableSearch((0,eU._)())&&!m){let{model:e,provider:a}=eN.c.searchFCModel((0,eU._)()),i=!1,r=!1,n=t().internal_toggleChatLoading(!0,y,eZ("generateMessage(start)",{messageId:y,messages:c}));if(t().internal_toggleSearchWorkflow(!0,y),await N.O.fetchPresetTaskResult({params:{messages:c,model:e,provider:a,plugins:[eG.J.identifier]},onFinish:async(s,i)=>{let{toolCalls:r,usage:n}=i;r&&r.length>0&&(t().internal_toggleToolCallingStreaming(y,void 0),await t().internal_updateMessageContent(y,"",{toolCalls:r,metadata:n,model:e,provider:a}))},abortController:n,onMessageHandle:async e=>{"tool_calls"===e.type&&(t().internal_toggleSearchWorkflow(!1,y),t().internal_toggleToolCallingStreaming(y,e.isAnimationActives),t().internal_dispatchMessage({id:y,type:"updateMessage",value:{tools:t().internal_transformToolCalls(e.tool_calls)}}),i=!0),"text"===e.type&&n.abort("not fc")},onErrorHandle:async e=>{r=!0,await x.T.updateMessageError(y,e),await l()}}),t().internal_toggleChatLoading(!1,y,eZ("generateMessage(start)",{messageId:y,messages:c})),t().internal_toggleSearchWorkflow(!1,y),r)return;if(i){await l(),await o(y,{threadId:null==s?void 0:s.threadId,inPortalThread:null==s?void 0:s.inPortalThread});return}}let{isFunctionCall:v}=await n({messages:c,messageId:y,params:s,model:u,provider:g});v&&(await l(),await o(y,{threadId:null==s?void 0:s.threadId,inPortalThread:null==s?void 0:s.inPortalThread}));let T=eN.c.historyCount((0,eU._)());if(eN.c.enableHistoryCount((0,eU._)())&&p.enableCompressHistory&&e.length>T){let a=e.slice(0,-T+1);await t().internal_summaryHistory(a)}},internal_fetchAIChatMessage:async e=>{let a,s,i,{messages:r,messageId:n,params:o,provider:l,model:d}=e,{internal_toggleChatLoading:c,refreshMessages:u,internal_updateMessageContent:g,internal_dispatchMessage:p,internal_toggleToolCallingStreaming:h,internal_toggleChatReasoning:y}=t(),m=c(!0,n,eZ("generateMessage(start)",{messageId:n,messages:r})),v=ex.e.currentAgentConfig((0,eU._)()),T=eN.c.currentChatConfig((0,eU._)()),M=(0,eD.A)(T.inputTemplate,{interpolate:/{{([\S\s]+?)}}/g}),f=eN.c.historyCount((0,eU._)()),w=eN.c.enableHistoryCount((0,eU._)()),_=eW.m4.getSlicedMessages(r,{includeNewUserMessage:!0,enableHistoryCount:w,historyCount:f});_=T.inputTemplate?_.map(e=>{if("user"===e.role)try{return{...e,content:M({text:e.content})}}catch(e){console.error(e)}return e}):_,v.systemRole&&_.unshift({content:v.systemRole,role:"system"}),v.params.max_tokens=T.enableMaxTokens?v.params.max_tokens:void 0,v.params.reasoning_effort=T.enableReasoningEffort?v.params.reasoning_effort:void 0;let S=!1,A="",b="",C=new Map,k=eA.e.currentActiveTopicSummary(t());return await N.O.createAssistantMessageStream({abortController:m,params:{messages:_,model:d,provider:l,...v.params,plugins:v.plugins},historySummary:null==k?void 0:k.content,trace:{traceId:null==o?void 0:o.traceId,sessionId:t().activeId,topicId:t().activeTopicId,traceName:F.Fs.Conversation},isWelcomeQuestion:null==o?void 0:o.isWelcomeQuestion,onErrorHandle:async e=>{await x.T.updateMessageError(n,e),await u()},onFinish:async(e,t)=>{let{traceId:s,observationId:r,toolCalls:o,reasoning:l,grounding:d,usage:c}=t;s&&(a=s,await x.T.updateMessage(n,{traceId:s,observationId:null!=r?r:void 0}));let u=[];
1if(C.size>0)try{u=(await Promise.all(C.values())).filter(e=>!!e.url)}catch(e){console.error("Error waiting for image uploads:",e)}o&&o.length>0&&h(n,void 0),await g(n,e,{toolCalls:o,reasoning:l?{...l,duration:i}:void 0,search:(null==d?void 0:d.citations)?d:void 0,metadata:c,imageList:u.length>0?u:void 0})},onMessageHandle:async e=>{switch(e.type){case"grounding":if(!e.grounding||!e.grounding.citations||e.grounding.citations.length<=0)return;p({id:n,type:"updateMessage",value:{search:{citations:e.grounding.citations,searchQueries:e.grounding.searchQueries}}});break;case"base64_image":{p({id:n,type:"updateMessage",value:{imageList:e.images.map(e=>({id:e.id,url:e.data,alt:e.id}))}});let t=e.image,a=(0,I.$)().uploadBase64FileWithProgress(t.data).then(e=>({id:null==e?void 0:e.id,url:null==e?void 0:e.url,alt:(null==e?void 0:e.filename)||(null==e?void 0:e.id)}));C.set(t.id,a);break}case"text":A+=e.text,i||(i=Date.now()-s,y(!1,n,eZ("generateMessage(end)"))),p({id:n,type:"updateMessage",value:{content:A,reasoning:b?{content:b,duration:i}:void 0}});break;case"reasoning":s||(s=Date.now(),y(!0,n,eZ("generateMessage(end)"))),p({id:n,type:"updateMessage",value:{reasoning:{content:b+=e.text}}});break;case"tool_calls":h(n,e.isAnimationActives),p({id:n,type:"updateMessage",value:{tools:t().internal_transformToolCalls(e.tool_calls)}}),S=!0}}}),c(!1,n,eZ("generateMessage(end)")),{isFunctionCall:S,traceId:a}},internal_resendMessage:async function(e){let{traceId:a,messages:s,threadId:i,inPortalThread:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null!=s?s:M.f.mainAIChats(t()),o=n.findIndex(t=>t.id===e);if(o<0)return;let l=n[o],d=[];switch(l.role){case"tool":case"user":d=n.slice(0,o+1);break;case"assistant":{let e=l.parentId,t=n.findIndex(t=>t.id===e);d=n.slice(0,t<0?o+1:t+1)}}if(d.length<=0)return;let{internal_coreProcessMessage:c,activeThreadId:u}=t(),g=d.findLast(e=>"user"===e.role);g&&await c(d,g.id,{traceId:a,ragQuery:t().internal_shouldUseRAG()?g.content:void 0,threadId:null!=i?i:u,inPortalThread:r})},internal_toggleChatLoading:(e,a,s)=>t().internal_toggleLoadingArrays("chatLoadingIds",e,a,s),internal_toggleChatReasoning:(e,a,s)=>t().internal_toggleLoadingArrays("reasoningLoadingIds",e,a,s),internal_toggleToolCallingStreaming:(a,s)=>{e({toolCallingStreamIds:(0,d.jM)(t().toolCallingStreamIds,e=>{s?e[a]=s:delete e[a]})},!1,"toggleToolCallingStreaming/".concat(s?"start":"end"))},internal_toggleSearchWorkflow:(e,a)=>t().internal_toggleLoadingArrays("searchWorkflowLoadingIds",e,a)}),eK=e=>"<".concat(e.role,">").concat(e.content,"</").concat(e.role,">"),ez=e=>"<chat_history>\n".concat(e.map(e=>eK(e)).join("\n"),"\n</chat_history>"),eJ=e=>({messages:[{content:"You're an assistant who's good at extracting key takeaways from conversations and summarizing them. Please summarize according to the user's needs. The content you need to summarize is located in the <chat_history> </chat_history> group of xml tags. The summary needs to maintain the original language.",role:"system"},{content:"".concat(ez(e),"\n\nPlease summarize the above conversation and retain key information. The summarized content will be used as context for subsequent prompts, and should be limited to 400 tokens."),role:"user"}]}),eV=(e,t)=>({internal_summaryHistory:async e=>{let a=t().activeTopicId;if(e.length<=1||!a)return;let{model:s,provider:i}=H.v.historyCompress(j.k.getState()),r="";await N.O.fetchPresetTaskResult({onFinish:async e=>{r=e},params:{...eJ(e),model:s,provider:i,stream:!1}}),await J.p.updateTopic(a,{historySummary:r,metadata:{model:s,provider:i}}),await t().refreshTopic(),await t().refreshMessages()}});var eX=a(35401);let eY=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eX.cA;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 e$=a(76864);let e0=()=>ex.e.currentKnowledgeIds(eU.o.getState()),e1=()=>ex.e.hasEnabledKnowledge(eU.o.getState()),e3=(e,t)=>({deleteUserMessageRagQuery:async e=>{let a=M.f.getMessageById(e)(t());a&&a.ragQueryId&&(t().internal_dispatchMessage({id:e,type:"updateMessage",value:{ragQuery:null}}),await e$.o.deleteMessageRagQuery(a.ragQueryId),await t().refreshMessages())},internal_retrieveChunks:async(e,a,s)=>{t().internal_toggleMessageRAGLoading(!0,e);let i=M.f.getMessageById(e)(t()),r=null==i?void 0:i.ragQuery;(null==i?void 0:i.ragQuery)||!(s.length>0)||(r=await t().internal_rewriteQuery(e,a,s));let n=M.f.currentUserFiles(t()).map(e=>e.id);try{let{chunks:s,queryId:i}=await e$.o.semanticSearchForChat({fileIds:e0().fileIds.concat(n),knowledgeIds:e0().knowledgeBaseIds,messageId:e,rewriteQuery:r||a,userQuery:a});return t().internal_toggleMessageRAGLoading(!1,e),{chunks:s,queryId:i,rewriteQuery:r}}catch(a){return t().internal_toggleMessageRAGLoading(!1,e),{chunks:[]}}},internal_rewriteQuery:async(e,a,s)=>{let i=a,r=H.v.queryRewrite(j.k.getState());if(!r.enabled)return a;let n={model:r.model,provider:r.provider,...eY(a,s,r.customPrompt?r.customPrompt:void 0)},o="";return await N.O.fetchPresetTaskResult({onFinish:async e=>{i=e},onMessageHandle:a=>{"text"===a.type&&(o+=a.text,t().internal_dispatchMessage({id:e,type:"updateMessage",value:{ragQuery:o}}))},params:n}),i},internal_shouldUseRAG:()=>{let e=M.f.currentUserFiles(t()).map(e=>e.id);return e1()||e.length>0},internal_toggleMessageRAGLoading:(a,s)=>{e({messageRAGLoadingIds:et(t().messageRAGLoadingIds,s,a)},!1,"internal_toggleMessageLoading")},rewriteQuery:async e=>{let a=M.f.getMessageById(e)(t());if(!a)return;await t().deleteUserMessageRagQuery(e);let s=M.f.mainAIChatsWithHistoryConfig(t());await t().internal_rewriteQuery(e,a.content,s.map(e=>e.content))}}),e2=function(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return{...e3(...t),...eQ(...t),...eV(...t)}},e4=(e,t)=>({clearTTS:async e=>{await t().updateMessageTTS(e,!1)},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 x.T.updateMessageTTS(e,a),await t().refreshMessages()}});var e7=a(36363),e5=a(64091),e6=a(23749),e8=a(55208),e9=a(44778),te=a(13151);
1let tt={createdAt:te.eD.createdAt,id:te.eD.id,parentThreadId:te.eD.parentThreadId,sourceMessageId:te.eD.sourceMessageId,status:te.eD.status,title:te.eD.title,topicId:te.eD.topicId,type:te.eD.type,updatedAt:te.eD.updatedAt};class ta{constructor(e,t){this.create=async e=>{let[t]=await this.db.insert(te.eD).values({...e,status:o.$w.Active,userId:this.userId}).onConflictDoNothing().returning();return t},this.delete=async e=>this.db.delete(te.eD).where((0,e8.Uo)((0,e8.eq)(te.eD.id,e),(0,e8.eq)(te.eD.userId,this.userId))),this.deleteAll=async()=>this.db.delete(te.eD).where((0,e8.eq)(te.eD.userId,this.userId)),this.query=async()=>await this.db.select(tt).from(te.eD).where((0,e8.eq)(te.eD.userId,this.userId)).orderBy((0,e9.i)(te.eD.updatedAt)),this.queryByTopicId=async e=>await this.db.select(tt).from(te.eD).where((0,e8.Uo)((0,e8.eq)(te.eD.topicId,e),(0,e8.eq)(te.eD.userId,this.userId))).orderBy((0,e9.i)(te.eD.updatedAt)),this.findById=async e=>this.db.query.threads.findFirst({where:(0,e8.Uo)((0,e8.eq)(te.eD.id,e),(0,e8.eq)(te.eD.userId,this.userId))}),this.update=async(e,t)=>this.db.update(te.eD).set({...t,updatedAt:new Date}).where((0,e8.Uo)((0,e8.eq)(te.eD.id,e),(0,e8.eq)(te.eD.userId,this.userId))),this.userId=t,this.db=e}}var ts=a(34020);class ti extends ts.Q{get threadModel(){return new ta(e5.s,this.userId)}get messageModel(){return new e6.T(e5.s,this.userId)}constructor(...e){super(...e),this.getThreads=async e=>this.threadModel.queryByTopicId(e),this.createThreadWithMessage=async e=>{let t=await this.threadModel.create({parentThreadId:e.parentThreadId,sourceMessageId:e.sourceMessageId,title:e.message.content.slice(0,20),topicId:e.topicId,type:e.type}),a=await this.messageModel.create({...e.message,sessionId:this.toDbSessionId(e.message.sessionId),threadId:null==t?void 0:t.id});return{messageId:null==a?void 0:a.id,threadId:null==t?void 0:t.id}},this.updateThread=async(e,t)=>this.threadModel.update(e,t),this.removeThread=async e=>this.threadModel.delete(e),this.toDbSessionId=e=>e===e7.Ed?null:e}}var tr=a(61205);class tn{constructor(){this.getThreads=e=>tr.du.thread.getThreads.query({topicId:e}),this.createThreadWithMessage=async e=>{let{message:t,...a}=e;return tr.du.thread.createThreadWithMessage.mutate({...a,message:{...t,sessionId:this.toDbSessionId(t.sessionId)}})},this.updateThread=async(e,t)=>tr.du.thread.updateThread.mutate({id:e,value:t}),this.removeThread=async e=>tr.du.thread.removeThread.mutate({id:e}),this.toDbSessionId=e=>e===e7.Ed?null:e}}let to="server"===a(87358).env.NEXT_PUBLIC_SERVICE_MODE?new tn:new ti,tl=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"updateThread":return(0,d.jM)(e,e=>{let{value:a,id:s}=t,i=e.findIndex(e=>e.id===s);-1!==i&&(e[i]={...e[i],...a,updatedAt:new Date})});case"deleteThread":return(0,d.jM)(e,e=>{let a=e.findIndex(e=>e.id===t.id);-1!==a&&e.splice(a,1)});default:return e}},td=(0,f.K)("thd"),tc="SWR_USE_FETCH_THREADS",tu=(e,t)=>({updateThreadInputMessage:a=>{K()(a,t().threadInputMessage)||e({threadInputMessage:a},!1,td("updateThreadInputMessage",a))},openThreadCreator:a=>{e({threadStartMessageId:a,portalThreadId:void 0,startToForkThread:!0},!1,"openThreadCreator"),t().togglePortal(!0)},openThreadInPortal:(a,s)=>{e({portalThreadId:a,threadStartMessageId:s,startToForkThread:!1},!1,"openThreadInPortal"),t().togglePortal(!0)},closeThreadPortal:()=>{e({threadStartMessageId:void 0,portalThreadId:void 0,startToForkThread:void 0},!1,"closeThreadPortal"),t().togglePortal(!1)},sendThreadMessage:async a=>{let s,i,{message:r}=a,{internal_coreProcessMessage:n,activeTopicId:o,activeId:l,threadStartMessageId:d,newThreadMode:c,portalThreadId:u}=t();if(!l||!o||!r)return;e({isCreatingThreadMessage:!0},!1,td("creatingThreadMessage/start"));let g={content:r,role:"user",sessionId:l,topicId:o,threadId:u};if(u)i=t().internal_createTmpMessage(g),t().internal_toggleMessageLoading(!0,i),s=await t().internal_createMessage(g,{tempMessageId:i});else{if(!d)return;i=t().internal_createTmpMessage({...g,threadId:ed.vS}),t().internal_toggleMessageLoading(!0,i);let{threadId:e,messageId:a}=await t().createThread({message:g,sourceMessageId:d,topicId:o,type:c});s=a,await t().refreshThreads(),await t().refreshMessages(),t().openThreadInPortal(e,d)}t().internal_toggleMessageLoading(!1,i),eO.B.getState().triggerSessionUpdate(t().activeId);let p=em.Z.portalAIChats(t());if(await n(p,s,{ragQuery:t().internal_shouldUseRAG()?r:void 0,threadId:t().portalThreadId,inPortalThread:!0}),e({isCreatingThreadMessage:!1},!1,td("creatingThreadMessage/stop")),!u){let e=em.Z.currentPortalThread(t());if(!e)return;let a=em.Z.portalAIChats(t());await t().summaryThreadTitle(e.id,a)}},resendThreadMessage:async e=>{let a=em.Z.portalAIChats(t());await t().internal_resendMessage(e,{messages:a,threadId:t().portalThreadId,inPortalThread:!0})},delAndResendThreadMessage:async e=>{t().resendThreadMessage(e),t().deleteMessage(e)},createThread:async t=>{let{message:a,sourceMessageId:s,topicId:i,type:r}=t;e({isCreatingThread:!0},!1,td("creatingThread/start"));let n=await to.createThreadWithMessage({topicId:i,sourceMessageId:s,type:r,message:a});return e({isCreatingThread:!1},!1,td("creatingThread/end")),n},useFetchThreads:(a,s)=>(0,u.lA)(a&&s&&!eP.yh?[tc,s]:null,async e=>{let[,t]=e;return to.getThreads(t)},{suspense:!0,fallbackData:[],onSuccess:a=>{let i={...t().threadMaps,[s]:a};t().topicsInit&&K()(i,t().topicMaps)||e({threadMaps:i,threadsInit:!0},!1,td("useFetchThreads(success)",{topicId:s}))}}),refreshThreads:async()=>{let e=t().activeTopicId;if(e)return(0,z.j)([tc,e])},removeThread:async a=>{await to.removeThread(a),await t().refreshThreads(),t().activeThreadI
1d===a&&e({activeThreadId:void 0})},switchThread:async t=>{e({activeThreadId:t},!1,td("toggleTopic"))},updateThreadTitle:async(e,a)=>{await t().internal_updateThread(e,{title:a})},summaryThreadTitle:async(e,a)=>{let{internal_updateThreadTitleInSummary:s,internal_updateThreadLoading:i}=t(),r=em.Z.currentPortalThread(t());if(!r)return;s(e,ed.VH);let n="",o=H.v.thread(j.k.getState());await N.O.fetchPresetTaskResult({onError:()=>{s(e,r.title)},onFinish:async a=>{await t().internal_updateThread(e,{title:a})},onLoadingChange:t=>{i(e,t)},onMessageHandle:t=>{"text"===t.type&&(n+=t.text),s(e,n)},params:(0,W.h)(o,ew(a))})},internal_updateThreadTitleInSummary:(e,a)=>{t().internal_dispatchThread({type:"updateThread",id:e,value:{title:a}},"updateThreadTitleInSummary")},internal_updateThreadLoading:(t,a)=>{e(e=>a?{threadLoadingIds:[...e.threadLoadingIds,t]}:{threadLoadingIds:e.threadLoadingIds.filter(e=>e!==t)},!1,td("updateThreadLoading"))},internal_updateThread:async(e,a)=>{t().internal_dispatchThread({type:"updateThread",id:e,value:a}),t().internal_updateThreadLoading(e,!0),await to.updateThread(e,a),await t().refreshThreads(),t().internal_updateThreadLoading(e,!1)},internal_dispatchThread:(a,s)=>{let i=tl(em.Z.currentTopicThreads(t()),a),r={...t().threadMaps,[t().activeTopicId]:i};K()(r,t().threadMaps)||e({threadMaps:r},!1,null!=s?s:td("dispatchThread/".concat(a.type)))}}),tg=(0,n.t)("chat"),tp=(0,r.h)()((0,s.eh)(tg(function(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return{...l,...er(...t),...tu(...t),...e2(...t),...ek(...t),...eM(...t),...G(...t),...e4(...t),...B(...t),...eT(...t),...E(...t)}})),i.x)},17840:(e,t,a)=>{a.d(t,{f:()=>C});var s=a(93972),i=a(36363),r=a(17520),n=a(1457),o=a(24530),l=a(80661),d=a(66749),c=a(46182),u=a(74400),g=a(46627);let p=e=>{switch(e.role){case"user":return{avatar:u.f.userAvatar(c.k.getState())||s.cd};case"system":return e.meta;default:return d.G.currentAgentMeta(l.B.getState())}},h=e=>(0,o.T)(e.activeId,e.activeTopicId),y=e=>e.activeId?(e.messagesMap[h(e)]||[]).map(e=>({...e,meta:p(e)})):[],m=e=>y(e).filter(e=>"tool"!==e.role),v=(e,t)=>{var a;if(!e.activeThreadId)return t.filter(e=>!e.threadId);let s=null===(a=e.threadMaps[e.activeTopicId])||void 0===a?void 0:a.find(t=>t.id===e.activeThreadId);if(!s)return t.filter(e=>!e.threadId);let i=t.findIndex(e=>e.id===s.sourceMessageId);return[...t.slice(0,i+1),...t.filter(t=>t.threadId===e.activeThreadId)]},T=e=>{let t=m(e);return v(e,t)},M=e=>T(e).map(e=>e.id),I=e=>{let t=y(e);return v(e,t)},f=e=>{let t=I(e),a=n.c.enableHistoryCount(r.o.getState()),s=n.c.historyCount(r.o.getState());return g.m4.getSlicedMessages(t,{enableHistoryCount:a,historyCount:s})},w=e=>y(e).filter(e=>"user"===e.role),_=e=>t=>g.m4.getMessageById(y(t),e),S=e=>e.messageRAGLoadingIds.some(t=>M(e).includes(t)),A=e=>e.isCreatingMessage,b=e=>e.messageLoadingIds.some(t=>M(e).includes(t)),C={activeBaseChats:y,activeBaseChatsWithoutTool:m,countMessagesByThreadId:e=>t=>y(t).filter(t=>t.threadId===e).length,currentChatKey:h,currentChatLoadingState:e=>!e.messagesInit,currentToolMessages:e=>y(e).filter(e=>"tool"===e.role),currentUserFiles:e=>w(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:_,getMessageByToolCallId:e=>t=>y(t).find(t=>t.tool_call_id===e),getTraceIdByMessageId:e=>t=>{var a;return null===(a=_(e)(t))||void 0===a?void 0:a.traceId},isAIGenerating:e=>e.chatLoadingIds.some(t=>M(e).includes(t)),isCreatingMessage:A,isCurrentChatLoaded:e=>!!e.messagesMap[h(e)],isHasMessageLoading:b,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=>b(e)||e.creatingTopic||A(e)||S(e),isToolCallStreaming:(e,t)=>a=>{let s=a.toolCallingStreamIds[e];return!!s&&s[t]},latestMessage:e=>y(e).at(-1),mainAIChats:I,mainAIChatsMessageString:e=>f(e).map(e=>e.content).join(""),mainAIChatsWithHistoryConfig:f,mainDisplayChatIDs:M,mainDisplayChats:T,showInboxWelcome:e=>e.activeId===i.Ed&&0===y(e).length}},18827:(e,t,a)=>{a.d(t,{X:()=>s});let s=async e=>{if(0===e.length)return 0;if(e.length<=3e4){let{clientEncodeAsync:t}=await a.e(61710).then(a.bind(a,61710));return await t(e)}{let{serverEncodeAsync:t}=await a.e(69834).then(a.bind(a,69834));return await t(e)}}},24530:(e,t,a)=>{a.d(t,{T:()=>s});let s=(e,t)=>{let a=t;return void 0===t&&(a=null),"".concat(e,"_").concat(a)}},45377:(e,t,a)=>{a.d(t,{e:()=>T});var s=a(12735),i=a(30832),r=a.n(i),n=a(96004),o=a.n(n),l=a(617),d=a.n(l);r().extend(o()),r().extend(d());let c=e=>{let t=r()(e),a=r()();if(t.isToday())return"today";if(t.isYesterday())return"yesterday";let s=a.subtract(7,"day");return!t.isAfter(s)||t.isToday()||t.isYesterday()?t.month()===a.month()&&t.year()===a.year()?"month":t.year()===a.year()?"".concat(t.year(),"-").concat((t.month()+1).toString().padStart(2,"0")):"".concat(t.year()):"week"},u=e=>{let t=new Map;return t.set("today",0),t.set("yesterday",1),t.set("week",2),t.set("month",3),e.sort((e,a)=>{var s,i;let r=null!==(s=t.get(e.id))&&void 0!==s?s:Number.MAX_SAFE_INTEGER,n=null!==(i=t.get(a.id))&&void 0!==i?i:Number.MAX_SAFE_INTEGER;return r!==Number.MAX_SAFE_INTEGER||n!==Number.MAX_SAFE_INTEGER?r-n:a.id.localeCompare(e.id)})},g=e=>{if(!e.length)return[];let t=[...e].sort((e,t)=>
1t.createdAt-e.createdAt),a=new Map;return t.forEach(e=>{let t=c(e.createdAt),s=a.get(t)||[];a.set(t,[...s,e])}),u(Array.from(a.entries()).map(e=>{let[t,a]=e;return{children:a,id:t}}))},p=e=>e.topicMaps[e.activeId],h=e=>{var t;return null===(t=p(e))||void 0===t?void 0:t.find(t=>t.id===e.activeTopicId)},y=e=>p(e),m=e=>{var t;return(null===(t=p(e))||void 0===t?void 0:t.filter(e=>e.favorite))||[]},v=e=>{var t;return(null===(t=p(e))||void 0===t?void 0:t.filter(e=>!e.favorite))||[]},T={currentActiveTopic:h,currentActiveTopicSummary:e=>{var t,a;let s=h(e);if(s)return{content:s.historySummary||"",model:(null===(t=s.metadata)||void 0===t?void 0:t.model)||"",provider:(null===(a=s.metadata)||void 0===a?void 0:a.provider)||""}},currentTopicLength:e=>{var t;return(null===(t=p(e))||void 0===t?void 0:t.length)||0},currentTopics:p,currentUnFavTopics:v,displayTopics:y,getTopicById:e=>t=>{var a;return null===(a=p(t))||void 0===a?void 0:a.find(t=>t.id===e)},groupedTopicsSelector:e=>{let t=y(e);if(!t)return[];let a=m(e),i=v(e);return a.length>0?[{children:a,id:"favorite",title:(0,s.t)("favorite",{ns:"topic"})},...g(i)]:g(t)},isCreatingTopic:e=>e.creatingTopic,isInSearchMode:e=>e.inSearchingMode,isSearchingTopic:e=>e.isSearchingTopic,isUndefinedTopics:e=>!p(e),searchTopics:e=>e.searchTopics}},46627:(e,t,a)=>{a.d(t,{m4:()=>i});var s=a(18827);let i={getMessageById:(e,t)=>e.find(e=>e.id===t),getMessagesTokenCount:async e=>(0,s.X)(e.map(e=>e.content).join("")),getSlicedMessages:(e,t)=>{if(!t.enableHistoryCount||void 0===t.historyCount)return e;let a=t.includeNewUserMessage?t.historyCount+1:t.historyCount;return a<=0?[]:e.slice(-a)}}},50757:(e,t,a)=>{a.d(t,{K:()=>s,t:()=>i});let s={arxiv:"https://icons.duckduckgo.com/ip3/arxiv.org.ico",bilibili:"https://icons.duckduckgo.com/ip3/bilibili.com.ico",bing:"https://icons.duckduckgo.com/ip3/www.bing.com.ico",brave:"https://icons.duckduckgo.com/ip3/brave.com.ico",duckduckgo:"https://icons.duckduckgo.com/ip3/www.duckduckgo.com.ico",google:"https://icons.duckduckgo.com/ip3/google.com.ico","google scholar":"https://icons.duckduckgo.com/ip3/scholar.google.com.ico",npm:"https://icons.duckduckgo.com/ip3/npmjs.com.ico",qwant:"https://icons.duckduckgo.com/ip3/www.qwant.com.ico",youtube:"https://icons.duckduckgo.com/ip3/youtube.com.ico"},i=7e3},56894:(e,t,a)=>{a.d(t,{v:()=>o});var s=a(35401),i=a(99793),r=a(72705);let n=e=>(0,i.h)(s.fw,(0,r.fe)(e).systemAgent),o={agentMeta:e=>n(e).agentMeta,historyCompress:e=>n(e).historyCompress,queryRewrite:e=>n(e).queryRewrite,thread:e=>n(e).thread,topic:e=>n(e).topic,translation:e=>n(e).translation}},77111:(e,t,a)=>{a.d(t,{$w:()=>r,bF:()=>i});var s=a(75452),i=function(e){return e.Continuation="continuation",e.Standalone="standalone",e}({}),r=function(e){return e.Active="active",e.Archived="archived",e.Deprecated="deprecated",e}({});s.z.object({parentThreadId:s.z.string().optional(),sourceMessageId:s.z.string(),title:s.z.string().optional(),topicId:s.z.string(),type:s.z.nativeEnum(i)})},80222:(e,t,a)=>{a.d(t,{T:()=>M});var s=a(30832),i=a.n(s),r=a(31053),n=a(78005);class o{async createMessage(e){let{id:t}=await n.T.create(e);return t}async batchCreateMessages(e){return n.T.batchCreate(e)}async getMessages(e,t){let a=await n.T.query({sessionId:e,topicId:t}),s=await Promise.all(a.flatMap(e=>e.files).filter(Boolean).map(async e=>r.C.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 n.T.queryAll()}async countMessages(){return n.T.count()}async rankModels(){throw Error("Method not implemented.")}async countWords(){throw Error("Method not implemented.")}async getHeatmaps(){throw Error("Method not implemented.")}async countTodayMessages(){return(await n.T.queryAll()).filter(e=>i()(e.createdAt).format("YYYY-MM-DD")===i()().format("YYYY-MM-DD")).length}async getAllMessagesInSession(e){return n.T.queryBySessionId(e)}async updateMessageError(e,t){return n.T.update(e,{error:t})}async updateMessage(e,t){return n.T.update(e,t)}async updateMessageTTS(e,t){return n.T.update(e,{tts:t})}async updateMessageTranslate(e,t){return n.T.update(e,{translate:t})}async updateMessagePluginState(e,t){return n.T.updatePluginState(e,t)}async updateMessagePluginArguments(e,t){let a="string"==typeof t?t:JSON.stringify(t);return n.T.updatePlugin(e,{arguments:a})}async bindMessagesToTopic(e,t){return n.T.batchUpdate(t,{topicId:e})}async removeMessage(e){return n.T.delete(e)}async removeMessages(e){return n.T.bulkDelete(e)}async removeMessagesByAssistant(e,t){return n.T.batchDelete(e,t)}async removeAllMessages(){return n.T.clearTable()}async hasMessages(){return await this.countMessages()>0}async messageCountToCheckTrace(){return await this.countMessages()>=4}async updateMessagePluginError(){throw Error("Method not implemented.")}}var l=a(36363),d=a(64091),c=a(23749),u=a(34020),g=a(31623),p=a(44134).hp;class h extends u.Q{get messageModel(){return new c.T(d.s,this.userId)}constructor(...e){super(...e),this.createMessage=async e=>{let{sessionId:t,...a}=e,{id:s}=await this.messageModel.create({...a,sessionId:this.toDbSessionId(t)});return s},this.batchCreateMessages=async e=>this.messageModel.batchCreate(e),this.getMessages=async(e,t)=>await this.messageModel.query({sessionId:this.toDbSessionId(e),topicId:t},{postProcessUrl:async(e,t)=>{let a=e.replace("client-s3://",""),s=await this.getBase64ByFileHash(a);return"data:".concat(t.fileType,";base64,").concat(s)}}),this.getAllMessages=async()=>await this.messageModel.queryAll(),this.countMessages=async e=>this.messageModel.count(e),this.countWords=async e=>this.messageModel.countWords(e),this.rankModels=async()=>this.messageModel.rankModels(),this.getHeatmaps=async()=>this.messageModel.getHeatmaps(),this.getAllMessagesInSession=async e=>this.messageModel.queryBySessionId(this.toDbSessionId(e)),this.updateMessageError=async(e,t)=>this.messageModel.update(e,{error:t}),this.updateMessage=async(e,t)=>this.messageModel.update(e,t),this.updateMessageTTS=async(e,t)=>this.messageModel.updateTTS(e,t),this.updateMessageTranslate=async(e,t)=>this.messageModel.updateTranslate(e,t),this.updateMessagePluginState=async(e,t)=>this.messageModel.updatePluginState(e,t),this.updateMessagePluginError=async(e,t)=>this.messageModel.updateMessagePlugin(e,{error:t}),this.updateMessagePluginArguments=async(e,t)=>{let a="string"==typeof t?t:JSON.stringify(t);return this.messageModel.updateMessagePlugin(e,{arguments:a})},this.removeMessage=async e=>this.messageModel.deleteMessage(e),this.removeMessages=async e=>this.messageModel.deleteMessages(e),this.removeMessagesByAssistant=async(e,t)=>this.messageModel.deleteMessagesBySession(this.toDbSessionId(e),t),this.removeAllMessages=async()=>this.messageModel.deleteAllMessages(),this.hasMessages=async()=>await this.countMessages()>0,this.messageCountToCheckTrace=async()=>await this.countMessages()>=4,this.toDbSessionId=e=>e===l.Ed?void 0:e,this.getBase64ByFileHash=async e=>{let t=await g.h.getObject(e);
1if(!t)throw Error("file not found");return p.from(await t.arrayBuffer()).toString("base64")}}}var y=a(61205);class m{constructor(){this.createMessage=async e=>{let{sessionId:t,...a}=e;return y.du.message.createMessage.mutate({...a,sessionId:this.toDbSessionId(t)})},this.batchCreateMessages=async e=>y.du.message.batchCreateMessages.mutate(e),this.getMessages=async(e,t)=>await y.du.message.getMessages.query({sessionId:this.toDbSessionId(e),topicId:t}),this.getAllMessages=async()=>y.du.message.getAllMessages.query(),this.getAllMessagesInSession=async e=>y.du.message.getAllMessagesInSession.query({sessionId:this.toDbSessionId(e)}),this.countMessages=async e=>y.du.message.count.query(e),this.countWords=async e=>y.du.message.countWords.query(e),this.rankModels=async()=>y.du.message.rankModels.query(),this.getHeatmaps=async()=>y.du.message.getHeatmaps.query(),this.updateMessageError=async(e,t)=>y.du.message.update.mutate({id:e,value:{error:t}}),this.updateMessagePluginArguments=async(e,t)=>{let a="string"==typeof t?t:JSON.stringify(t);return y.du.message.updateMessagePlugin.mutate({id:e,value:{arguments:a}})},this.updateMessage=async(e,t)=>y.du.message.update.mutate({id:e,value:t}),this.updateMessageTranslate=async(e,t)=>y.du.message.updateTranslate.mutate({id:e,value:t}),this.updateMessageTTS=async(e,t)=>y.du.message.updateTTS.mutate({id:e,value:t}),this.updateMessagePluginState=async(e,t)=>y.du.message.updatePluginState.mutate({id:e,value:t}),this.updateMessagePluginError=async(e,t)=>y.du.message.updatePluginError.mutate({id:e,value:t}),this.removeMessage=async e=>y.du.message.removeMessage.mutate({id:e}),this.removeMessages=async e=>y.du.message.removeMessages.mutate({ids:e}),this.removeMessagesByAssistant=async(e,t)=>y.du.message.removeMessagesByAssistant.mutate({sessionId:this.toDbSessionId(e),topicId:t}),this.removeAllMessages=async()=>y.du.message.removeAllMessages.mutate(),this.toDbSessionId=e=>e===l.Ed?null:e,this.hasMessages=async()=>await this.countMessages()>0,this.messageCountToCheckTrace=async()=>await this.countMessages()>=4}}var v=a(87358);let T="pglite"===v.env.NEXT_PUBLIC_CLIENT_DB?new h:new o,M="server"===v.env.NEXT_PUBLIC_SERVICE_MODE?new m:T},91958:(e,t,a)=>{a.d(t,{Fp:()=>n,QC:()=>r,vM:()=>o});var s=a(59867);let i=["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","fa-IR"],r=e=>{if(!e)return s.xN;if(e.startsWith("ar"))return"ar";if(e.startsWith("fa"))return"fa-IR";if(e.startsWith("cn"))return"zh-CN";for(let t of i)if(t.startsWith(e))return t;return s.xN},n=[{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"},{label:"ÙØ§Ø±Ø³Û",value:"fa-IR"}],o=[...i,"en","zh"]}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.