@acedatacloud/nexior 2.6.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/assets/{Auth.2eac7de7.js → Auth.44a75ce9.js} +1 -1
  2. package/dist/assets/{Buy.1264d797.js → Buy.62ca537d.js} +1 -1
  3. package/dist/assets/{Callback.2f77a4e5.js → Callback.f57e8912.js} +1 -1
  4. package/dist/assets/{Chatdoc.a05767e4.js → Chatdoc.b9650c6f.js} +1 -1
  5. package/dist/assets/{Console.37090d0e.js → Console.2deffe43.js} +1 -1
  6. package/dist/assets/Conversation.3fd98ad9.js +1 -0
  7. package/dist/assets/{Conversation.4c9a9863.js → Conversation.5f7a19ab.js} +1 -1
  8. package/dist/assets/Conversation.77fdae67.css +1 -0
  9. package/dist/assets/{CopyToClipboard.46a44c42.js → CopyToClipboard.08a34e84.js} +1 -1
  10. package/dist/assets/{DarkSelector.ad21cdff.js → DarkSelector.a28245bf.js} +1 -1
  11. package/dist/assets/{Detail.effa500b.js → Detail.272db5b8.js} +1 -1
  12. package/dist/assets/{History.203acb5c.js → History.9b332331.js} +1 -1
  13. package/dist/assets/{Index.6936f67d.js → Index.04d2d798.js} +1 -1
  14. package/dist/assets/{Index.8e92857a.js → Index.0f977b54.js} +1 -1
  15. package/dist/assets/{Index.5c28bfa8.js → Index.1fcb9663.js} +1 -1
  16. package/dist/assets/{Index.03635dcc.js → Index.2b5f62d8.js} +1 -1
  17. package/dist/assets/{Index.d4130496.js → Index.6f1ac1f4.js} +1 -1
  18. package/dist/assets/{Index.276369a7.js → Index.8d0df297.js} +1 -1
  19. package/dist/assets/{Index.cb4811e1.js → Index.9112020e.js} +1 -1
  20. package/dist/assets/{Index.6e1cc10c.js → Index.a279c62e.js} +1 -1
  21. package/dist/assets/{Index.cee8e81d.js → Index.c0b31ef8.js} +1 -1
  22. package/dist/assets/{InfoIcon.6cbf3409.js → InfoIcon.809957ee.js} +1 -1
  23. package/dist/assets/{Invitees.1510cd58.js → Invitees.80f3f5b3.js} +1 -1
  24. package/dist/assets/{List.3a0a7324.js → List.6ccf6b5d.js} +1 -1
  25. package/dist/assets/{List.5625cb5a.js → List.7638b9ee.js} +1 -1
  26. package/dist/assets/{List.eecb5eeb.js → List.8627dc1b.js} +1 -1
  27. package/dist/assets/{Login.4fc8eb9e.js → Login.9bf52a87.js} +1 -1
  28. package/dist/assets/{Main.128616c8.js → Main.866f2598.js} +1 -1
  29. package/dist/assets/{Manage.fa29f15d.js → Manage.d062aee1.js} +1 -1
  30. package/dist/assets/{MarkdownRenderer.194708de.js → MarkdownRenderer.8f1aa597.js} +1 -1
  31. package/dist/assets/{Navigator.e5307748.js → Navigator.36e9130d.js} +1 -1
  32. package/dist/assets/{Pagination.a53c34b9.js → Pagination.a9eaafcc.js} +1 -1
  33. package/dist/assets/{Setting.0831cbfe.js → Setting.47141798.js} +1 -1
  34. package/dist/assets/{Status.8f1f5995.js → Status.c40aa9de.js} +1 -1
  35. package/dist/assets/{distribution.b3e5ff0e.js → distribution.b0226924.js} +1 -1
  36. package/dist/assets/{index.dfcef57f.js → index.8a074915.js} +1 -1
  37. package/dist/assets/{order.9b8dd42b.js → order.6350c3d9.js} +1 -1
  38. package/dist/assets/{price.a38c53a6.js → price.268f06fb.js} +1 -1
  39. package/dist/index.html +1 -1
  40. package/package.json +1 -1
  41. package/dist/assets/Conversation.0c062491.css +0 -1
  42. package/dist/assets/Conversation.aa0bbfd5.js +0 -1
@@ -1 +0,0 @@
1
- var ce=Object.defineProperty;var K=Object.getOwnPropertySymbols;var ue=Object.prototype.hasOwnProperty,he=Object.prototype.propertyIsEnumerable;var J=(e,t,a)=>t in e?ce(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,R=(e,t)=>{for(var a in t||(t={}))ue.call(t,a)&&J(e,a,t[a]);if(K)for(var a of K(t))he.call(t,a)&&J(e,a,t[a]);return e};import{a as Q}from"./vendor-axios.168e6950.js";import{I as pe}from"./vendor-others.45931466.js";import{_ as S,I as N,x as T,u as me,y as _e,z as G,A as Y,D as X,E as Z,F as x,G as L,i as ae,H as M,j as ie,J as V}from"./index.dfcef57f.js";import{H as I,o as n,e as u,al as l,f as d,L as f,S as C,M as w,V as _,W as D,ai as A,as as H,$ as q,T as z,U as E,Q as U,O as ge,aw as fe,a0 as F,I as ee}from"./vendor-@vue.f0bb489b.js";import{M as $e,i as te}from"./MarkdownRenderer.194708de.js";import{ai as O}from"./vendor-fortawesome.36304e5a.js";import{C as ye}from"./CopyToClipboard.46a44c42.js";import{E as B,a as P,b as we,c as ke,d as ve,e as Ce,f as Ee,g as se,A as be,h as oe}from"./Status.8f1f5995.js";import{C as Se,k as re,q as Ie,s as le,L as de,M as Ne,K as ne,f as De,N as qe,j as Ae,e as Oe,d as Re,A as Te,O as Me}from"./vendor-element-plus.0968c254.js";import"./vendor-qrcode.40fbc994.js";import"./vendor-markdown.cc2fe066.js";import"./vendor-highlight.js.6ee9ffbc.js";import"./application.cfa0de64.js";const Ue=I({name:"AnsweringMark",data(){return{}},computed:{conversationId(){var e,t;return(t=(e=this.$route.params)==null?void 0:e.id)==null?void 0:t.toString()}}}),Ve={class:"mark"};function Ge(e,t,a,p,$,o){return n(),u("div",Ve)}var Le=S(Ue,[["render",Ge],["__file","/home/runner/work/Nexior/Nexior/src/components/chat/AnsweringMark.vue"]]);const Be=I({name:"Message",components:{CopyToClipboard:ye,AnsweringMark:Le,MarkdownRenderer:$e,ElAlert:Se,ElButton:re,ElImage:Ie,ElTooltip:le,FontAwesomeIcon:O,ElInput:de},props:{message:{type:Object,required:!0},application:{type:Object,required:!0}},emits:["stop","update:messages","edit"],data(){return{copied:!1,isEditing:!1,questionValue:this.message.content,messageState:N}},computed:{errorText(){var e,t;if(!(!this.message.error||!((e=this.message.error)!=null&&e.code)))switch((t=this.message.error)==null?void 0:t.code){case se:return this.$t("chat.message.errorUsedUp");case Ee:return this.$t("chat.message.errorApiError");case Ce:return this.$t("chat.message.errorBadRequest");case ve:return this.$t("chat.message.errorTimeout");case ke:return this.$t("chat.message.errorTooManyRequests");case we:return this.$t("chat.message.errorContentTooLarge");case P:return this.$t("chat.message.errorNotApplied");case B:default:return this.$t("chat.message.errorUnknown")}},showBuyMore(){var e;return this.message.role===T&&((e=this.message.error)==null?void 0:e.code)===se}},watch:{},methods:{startEditing(){this.isEditing=!0,this.questionValue=this.message.content,console.debug("start to get answer",this.message)},cancelEdit(){this.isEditing=!1},sendEdit(){this.isEditing=!1,this.onSubmit()},onSubmit(){this.$emit("edit",this.message,this.questionValue)},onCopy(){pe(this.message.content.toString(),{debug:!0}),this.copied=!0,setTimeout(()=>{this.copied=!1},3e3)},onBuyMore(){var e;this.$router.push({name:me,params:{id:(e=this.application)==null?void 0:e.id}})}}}),Pe=["role"],He={class:"author"},ze={key:0,class:"main"},Fe={class:"content"},We={class:"edit-left"},je={key:0,class:"message-content"},Ke={key:1},Je=["src"],Qe={key:1,class:"chat-container"},Ye={class:"button-group"},Xe=z("\u53D6\u6D88"),Ze=z("\u53D1\u9001"),xe={class:"operations"};function et(e,t,a,p,$,o){var y;const r=l("el-image"),h=l("font-awesome-icon"),m=l("el-tooltip"),i=l("markdown-renderer"),g=l("el-input"),s=l("el-button"),k=l("answering-mark"),b=l("copy-to-clipboard"),c=l("el-alert");return n(),u("div",{class:U({message:!0,[e.message.role]:!0}),role:e.message.role},[d("div",He,[e.message.role==="assistant"?(n(),f(r,{key:0,src:"https://cdn.acedata.cloud/7dljuv.png",fit:"cover",class:"avatar"})):C("v-if",!0)]),e.errorText?(n(),f(c,{key:1,class:"error",title:e.errorText,type:"error",closable:!1},null,8,["title"])):(n(),u("div",ze,[d("div",Fe,[d("div",We,[e.message.role==="user"&&!e.isEditing?(n(),f(m,{key:0,effect:"dark",content:e.$t("chat.button.edit"),placement:"bottom"},{default:w(()=>[_(h,{icon:"fa-solid fa-edit",class:"icon icon-edit",onClick:e.startEditing},null,8,["onClick"])]),_:1},8,["content"])):C("v-if",!0)]),e.isEditing?(n(),u("div",Qe,[_(g,{modelValue:e.questionValue,"onUpdate:modelValue":t[0]||(t[0]=v=>e.questionValue=v),type:"textarea",class:"chat-input",onKeydown:H(q(e.sendEdit,["exact","prevent"]),["enter"])},null,8,["modelValue","onKeydown"]),d("div",Ye,[_(s,{size:"small",class:"cancel-button",onClick:e.cancelEdit},{default:w(()=>[Xe]),_:1},8,["onClick"]),_(s,{type:"primary",size:"small",class:"send-button",onClick:e.sendEdit},{default:w(()=>[Ze]),_:1},8,["onClick"])])])):(n(),u("div",je,[Array.isArray(e.message.content)?(n(),u("div",Ke,[(n(!0),u(D,null,A(e.message.content,(v,W)=>{var j;return n(),u("div",{key:W},[v.type==="image_url"?(n(),u("img",{key:0,src:typeof(v==null?void 0:v.image_url)=="string"?v.image_url:(j=v.image_url)==null?void 0:j.url,fit:"cover",class:"image"},null,8,Je)):C("v-if",!0),v.type==="text"?(n(),f(i,{key:W,content:v.text},null,8,["content"])):C("v-if",!0)])}),128))])):(n(),f(i,{key:0,content:(y=e.message)==null?void 0:y.content},null,8,["content"]))])),e.message.state===e.messageState.PENDING?(n(),f(k,{key:2})):C("v-if",!0)]),d("div",xe,[Array.isArray(e.message.content)?C("v-if",!0):(n(),f(b,{key:0,content:e.message.content,class:"btn-copy"},null,8,["content"]))])])),e.showBuyMore?(n(),f(s,{key:2,round:"",type:"primary",class:"btn btn-buy",size:"small",onClick:e.onBuyMore},{default:w(()=>[z(E(e.$t("common.button.buyMore")),1)]),_:1},8,["onClick"])):C("v-if",!0)],10,Pe)}var tt=S(Be,[["render",et],["__scopeId","data-v-f0476f80"],["__file","/home/runner/work/Nexior/Nexior/src/components/chat/Message.vue"]]);const st=I({name:"InputBox",components:{ElTooltip:le,FontAwesomeIcon:O,ElUpload:Ne},props:{disabled:{type:Boolean,required:!1,default:!1},references:{type:Array,required:!1,default:()=>[]},question:{type:String,required:!0}},emits:["update:question","update:references","submit"],data(){return{inputHeight:"35px",questionValue:this.question,fileList:[],uploadUrl:_e()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>{var t;return(t=e==null?void 0:e.response)==null?void 0:t.file_url})},canUpload(){return[G.name].includes(this.model.name)},model(){return this.$store.state.chat.model}},watch:{urls(e){this.$emit("update:references",e)},questionValue(e){this.$emit("update:question",e)},question(e){e!==this.questionValue&&(this.questionValue=e)},references(e){e.length===0&&(this.fileList=[])}},methods:{adjustTextareaHeight(){this.$nextTick(()=>{const e=this.$refs.textarea;e&&(e.style.height="35px",e.style.height=e.scrollHeight+"px")})},onSubmit(){!this.question||this.$emit("submit")},onExceed(){ne.warning(this.$t("chat.message.uploadReferencesExceed"))},onError(){ne.error(this.$t("chat.message.uploadReferencesError"))}}}),ot={class:"input-box"},nt={class:"btn btn-upload"},at=["disabled","placeholder"],it={class:"info"};function rt(e,t,a,p,$,o){const r=l("font-awesome-icon"),h=l("el-tooltip"),m=l("el-upload");return n(),u(D,null,[d("div",ot,[_(m,{"file-list":e.fileList,"onUpdate:file-list":t[0]||(t[0]=i=>e.fileList=i),class:U({upload:!0,disabled:!e.canUpload}),disabled:!e.canUpload,name:"file","show-file-list":!0,limit:1,multiple:!1,action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,headers:e.headers},{default:w(()=>[_(h,{class:"box-item",effect:"dark",content:e.$t("chat.message.uploadFile"),placement:"top"},{default:w(()=>[d("span",nt,[_(r,{icon:"fa-solid fa-paperclip",class:"icon icon-attachment"})])]),_:1},8,["content"])]),_:1},8,["file-list","class","disabled","action","on-exceed","on-error","headers"]),d("span",{class:U({btn:!0,"btn-send":!0,disabled:!e.questionValue}),onClick:t[1]||(t[1]=(...i)=>e.onSubmit&&e.onSubmit(...i))},[_(r,{icon:"fa-solid fa-location-arrow",class:"icon icon-send"})],2),C(" add this textarea "),ge(d("textarea",{ref:"textarea","onUpdate:modelValue":t[2]||(t[2]=i=>e.questionValue=i),disabled:e.disabled,class:"input",placeholder:e.$t("chat.message.newMessagePlaceholder"),style:F({height:e.inputHeight}),onKeydown:t[3]||(t[3]=H(q((...i)=>e.onSubmit&&e.onSubmit(...i),["exact","prevent"]),["enter"])),onInput:t[4]||(t[4]=(...i)=>e.adjustTextareaHeight&&e.adjustTextareaHeight(...i))},null,44,at),[[fe,e.questionValue]])]),d("p",it,E(e.$t("chat.message.howToUse")),1)],64)}var lt=S(st,[["render",rt],["__scopeId","data-v-020f4eb8"],["__file","/home/runner/work/Nexior/Nexior/src/components/chat/InputBox.vue"]]);const dt=I({name:"ModelSelector",components:{ElDropdown:De,ElDropdownMenu:qe,ElDropdownItem:Ae,FontAwesomeIcon:O},emits:["update:modelValue","select"],data(){return{options:[{icon:"fa-solid fa-bolt",color:"#ff9900",model:Y},{icon:"fa-solid fa-bolt",color:"#ff9900",model:X},{icon:"fa-solid fa-wand-magic-sparkles",color:"#ce65e6",model:Z},{icon:"fa-solid fa-wand-magic-sparkles",color:"#ce65e6",model:x},{icon:"fa-solid fa-wand-magic-sparkles",color:"#ce65e6",model:G}]}},computed:{model(){const e=this.$store.state.chat.model.name;return[Y,X,Z,x,G].find(a=>a.name===e)}},methods:{onCommandChange(e){this.$emit("select",e),this.$store.dispatch("chat/setModel",e)}}}),ct={class:"selector"},ut={class:"name"},ht={class:"angle"},pt={class:"item"},mt={class:"info"},_t={class:"name"},gt={class:"description"};function ft(e,t,a,p,$,o){const r=l("font-awesome-icon"),h=l("el-dropdown-item"),m=l("el-dropdown-menu"),i=l("el-dropdown");return n(),u("div",ct,[_(i,{trigger:"click","popper-class":"popper"},{dropdown:w(()=>[_(m,null,{default:w(()=>[(n(!0),u(D,null,A(e.options,(g,s)=>(n(),f(h,{key:s,onClick:k=>e.onCommandChange(g.model)},{default:w(()=>[d("div",pt,[d("div",{class:"icon",style:F({color:g.color})},[_(r,{icon:g.icon},null,8,["icon"])],4),d("div",mt,[d("p",_t,E(g.model.getDisplayName()),1),d("p",gt,E(g.model.getDescription()),1)])])]),_:2},1032,["onClick"]))),128))]),_:1})]),default:w(()=>{var g;return[d("div",null,[d("span",ut,E((g=e.model)==null?void 0:g.getDisplayName()),1),d("span",ht,[_(r,{icon:"fa-solid fa-angle-down"})])])]}),_:1})])}var $t=S(dt,[["render",ft],["__scopeId","data-v-358d65be"],["__file","/home/runner/work/Nexior/Nexior/src/components/chat/ModelSelector.vue"]]);const yt=I({name:"ConversationIntroductionItem",components:{FontAwesomeIcon:O},props:{content:{type:String,required:!0},icon:{type:String,required:!0},color:{type:String,default:"rgb(0, 0, 0)"}},data(){return{}},computed:{}}),wt={class:"item"},kt={class:"icon"},vt={class:"content"};function Ct(e,t,a,p,$,o){const r=l("font-awesome-icon");return n(),u("div",wt,[d("div",kt,[_(r,{icon:e.icon,style:F({color:e.color})},null,8,["icon","style"])]),d("div",vt,E(e.content),1)])}var Et=S(yt,[["render",Ct],["__scopeId","data-v-bc919b38"],["__file","/home/runner/work/Nexior/Nexior/src/components/chat/IntroductionItem.vue"]]);const bt=I({name:"ConversationIntroduction",components:{IntroductionItem:Et,ElRow:Oe,ElCol:Re},emits:["draft"],data(){return{items:[{icon:"fa-solid fa-pen-nib",content:this.$t("chat.message.question1"),color:"rgb(226, 197, 65)"},{icon:"fa-solid fa-laptop-code",content:this.$t("chat.message.question2"),color:"rgb(203, 139, 208)"},{icon:"fa-solid fa-fan",content:this.$t("chat.message.question3"),color:"rgb(118, 208, 235)"},{icon:"fa-solid fa-plane-departure",content:this.$t("chat.message.question4"),color:"rgb(237, 98, 98)"}].sort(()=>Math.random()-.5)}},computed:{}}),St={class:"introduction"};function It(e,t,a,p,$,o){const r=l("introduction-item"),h=l("el-col"),m=l("el-row");return n(),u("div",St,[_(m,{class:"items",justify:"center",gutter:15},{default:w(()=>[(n(!0),u(D,null,A(e.items,(i,g)=>(n(),f(h,{key:g,md:6,sm:12,xs:12},{default:w(()=>[_(r,{content:i.content,icon:i.icon,color:i.color,class:"cursor-pointer",onClick:s=>e.$emit("draft",i.content)},null,8,["content","icon","color","onClick"])]),_:2},1024))),128))]),_:1})])}var Nt=S(bt,[["render",It],["__scopeId","data-v-52040931"],["__file","/home/runner/work/Nexior/Nexior/src/components/chat/Introduction.vue"]]);const Dt=I({name:"SidePanel",components:{ElInput:de,FontAwesomeIcon:O,ElSkeleton:Te},props:{},emits:["click"],computed:{conversationId(){var e,t;return(t=(e=this.$route.params)==null?void 0:e.id)==null?void 0:t.toString()},conversationGroups(){var r,h,m,i,g,s,k,b;const e=this.$store.state.chat.conversations,t=new Date;t.setHours(0,0,0,0);const a=new Date(t);a.setDate(a.getDate()-1);const p=new Date(t);p.setDate(p.getDate()-t.getDay());const $=new Date(p);$.setDate($.getDate()-7);const o=e==null?void 0:e.reduce((c,y)=>{const v=new Date(y.updated_at*1e3);return v>=t?c.today.push(y):v>=a?c.yesterday.push(y):v>=p?c.thisWeek.push(y):c.earlier.push(y),c},{today:[],yesterday:[],thisWeek:[],earlier:[]});return R(R(R(R({},((r=o==null?void 0:o.today)==null?void 0:r.length)>0?{today:(h=o==null?void 0:o.today)==null?void 0:h.sort((c,y)=>y.updated_at-c.updated_at)}:{}),((m=o==null?void 0:o.yesterday)==null?void 0:m.length)>0?{yesterday:(i=o==null?void 0:o.yesterday)==null?void 0:i.sort((c,y)=>y.updated_at-c.updated_at)}:{}),((g=o==null?void 0:o.thisWeek)==null?void 0:g.length)>0?{thisWeek:(s=o==null?void 0:o.thisWeek)==null?void 0:s.sort((c,y)=>y.updated_at-c.updated_at)}:{}),((k=o==null?void 0:o.earlier)==null?void 0:k.length)>0?{earlier:(b=o==null?void 0:o.earlier)==null?void 0:b.sort((c,y)=>y.updated_at-c.updated_at)}:{})},application(){return this.$store.state.chat.application},loading(){return this.$store.state.chat.status.getConversations===L.Request},token(){var e,t;return(t=(e=this.$store.state.chat)==null?void 0:e.credential)==null?void 0:t.token}},methods:{async onNewConversation(){this.$router.push({name:ae})},async onConfirm(e){const t=this.token;if(!t){console.error("Token is not found");return}e!=null&&e.deleting?(await M.deleteConversation(e.id,{token:t}),await this.$store.dispatch("chat/getConversations")):e!=null&&e.editing?(await M.updateConversation(e,{token:t}),await this.$store.dispatch("chat/getConversations")):e.editing=!0},onClick(e){!e||(this.$router.push({name:ie,params:{id:e}}),this.$emit("click",e))}}}),qt={class:"panel"},At={key:1,class:"conversations"},Ot={class:"icons"},Rt={class:"title"},Tt={class:"key"},Mt=["onClick"],Ut={class:"title"},Vt={key:0},Gt={key:1},Lt={key:2},Bt={class:"operations"};function Pt(e,t,a,p,$,o){const r=l("el-skeleton"),h=l("font-awesome-icon"),m=l("el-input");return n(),u("div",qt,[e.loading&&e.conversationGroups===void 0?(n(),f(r,{key:0})):(n(),u("div",At,[d("div",{class:"conversation",onClick:t[0]||(t[0]=(...i)=>e.onNewConversation&&e.onNewConversation(...i))},[d("div",Ot,[_(h,{icon:"fa-solid fa-plus",class:"icon"})]),d("div",Rt,E(e.$t("chat.message.startNewChat")),1)]),(n(!0),u(D,null,A(e.conversationGroups,(i,g)=>(n(),u("div",{key:g,class:"group"},[d("div",Tt,E(e.$t(`chat.group.${g}`)),1),(n(!0),u(D,null,A(i,(s,k)=>{var b;return n(),u("div",{key:k,class:U({conversation:!0,active:s.id===e.conversationId}),onClick:c=>e.onClick(s.id)},[d("div",Ut,[s!=null&&s.deleting?(n(),u("span",Vt,E(`${e.$t("chat.message.confirmDelete")}?`),1)):s!=null&&s.editing?(n(),u("span",Gt,[_(m,{modelValue:s.title,"onUpdate:modelValue":c=>s.title=c,onKeydown:H(c=>e.onConfirm(s),["enter"])},null,8,["modelValue","onUpdate:modelValue","onKeydown"])])):(s==null?void 0:s.title)||(s==null?void 0:s.messages)?(n(),u("span",Lt,E((s==null?void 0:s.title)||((b=s==null?void 0:s.messages[(s==null?void 0:s.messages.length)-1])==null?void 0:b.content)),1)):C("v-if",!0)]),d("div",Bt,[!(s!=null&&s.editing)&&!s.deleting?(n(),f(h,{key:0,icon:"fa-solid fa-edit",class:"icon icon-edit",onClick:q(c=>s.editing=!0,["stop"])},null,8,["onClick"])):C("v-if",!0),!(s!=null&&s.editing)&&!s.deleting?(n(),f(h,{key:1,icon:"fa-solid fa-trash",class:"icon icon-delete",onClick:q(c=>s.deleting=!0,["stop"])},null,8,["onClick"])):C("v-if",!0),(s==null?void 0:s.editing)||s.deleting?(n(),f(h,{key:2,icon:"fa-solid fa-check",class:"icon icon-confirm",onClick:q(c=>e.onConfirm(s),["stop"])},null,8,["onClick"])):C("v-if",!0),(s==null?void 0:s.editing)||s.deleting?(n(),f(h,{key:3,icon:"fa-solid fa-xmark",class:"icon icon-cancel",onClick:q(c=>{s.editing=!1,s.deleting=!1},["stop"])},null,8,["onClick"])):C("v-if",!0)])],10,Mt)}),128))]))),128))]))])}var Ht=S(Dt,[["render",Pt],["__scopeId","data-v-d866c834"],["__file","/home/runner/work/Nexior/Nexior/src/components/chat/SidePanel.vue"]]);const zt=I({name:"LayoutChat",components:{SidePanel:Ht,ElDrawer:Me,ElButton:re,FontAwesomeIcon:O},data(){return{drawer:!1}}}),Ft={class:"main"},Wt={class:"side"},jt={class:"chat"};function Kt(e,t,a,p,$,o){const r=l("side-panel"),h=l("font-awesome-icon"),m=l("el-button"),i=l("el-drawer");return n(),u("div",Ft,[d("div",Wt,[ee(e.$slots,"side",{},()=>[_(r)],!0)]),d("div",jt,[ee(e.$slots,"chat",{},void 0,!0)]),_(m,{round:"",class:"menu",onClick:t[0]||(t[0]=g=>e.drawer=!0)},{default:w(()=>[_(h,{icon:"fa-solid fa-bars",class:"icon-menu"})]),_:1}),_(i,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=g=>e.drawer=g),"with-header":!1,size:"290px",class:"drawer"},{default:w(()=>[_(r)]),_:1},8,["modelValue"])])}var Jt=S(zt,[["render",Kt],["__scopeId","data-v-8d7a06d2"],["__file","/home/runner/work/Nexior/Nexior/src/layouts/Chat.vue"]]);const Qt=I({name:"ChatConversation",components:{InputBox:lt,Introduction:Nt,ModelSelector:$t,Message:tt,ApplicationStatus:be,Layout:Jt},data(){var e,t;return{question:"",references:[],answering:!1,messages:((t=(e=this.$store.state.chat.conversations)==null?void 0:e.find(a=>{var p;return a.id===((p=this.$route.params.id)==null?void 0:p.toString())}))==null?void 0:t.messages)||[]}},computed:{model(){return this.$store.state.chat.model},conversationId(){var e;return(e=this.$route.params.id)==null?void 0:e.toString()},conversation(){var e;return(e=this.$store.state.chat.conversations)==null?void 0:e.find(t=>t.id===this.conversationId)},service(){return this.$store.state.chat.service},application(){return this.$store.state.chat.application},credential(){var e;return(e=this.$store.state.chat)==null?void 0:e.credential},needApply(){return this.$store.state.chat.status.getApplication===L.Success&&!this.application},conversations(){return this.$store.state.chat.conversations},initializing(){return this.$store.state.chat.status.getApplication===L.Request}},watch:{model(e){e&&this.onModelChanged()},conversationId(e){var t,a;e?(this.messages=((a=(t=this.conversations)==null?void 0:t.find(p=>p.id===e))==null?void 0:a.messages)||[],this.onScrollDown()):this.messages=[]}},async mounted(){await this.onGetService(),await this.onGetApplication(),await this.onGetConversations(),await this.onScrollDown()},methods:{async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("chat/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("chat/getApplication"),console.debug("end onGetApplication")},async onGetConversations(){console.debug("start onGetConversations"),await this.$store.dispatch("chat/getConversations"),console.debug("end onGetConversations")},async onDraft(e){this.question=e,this.onSubmit()},async onEdit(e,t){var o;const a=this.messages.findIndex(r=>r===e);a!==-1&&(this.messages=this.messages.slice(0,a)),this.question=t;const p=(o=this.credential)==null?void 0:o.token;if(!p){console.error("no token or endpoint or question"),this.messages.push({error:{code:P},role:T,state:N.FAILED});return}let $=this.conversationId;M.updateConversation({id:this.conversationId,messages:this.messages},{token:p}).then(async()=>{await this.$store.dispatch("chat/setConversation",{id:$,messages:this.messages}),this.messages.push({content:this.question,role:V}),console.debug("onEdit",this.question),await this.onFetchAnswer()}).catch(r=>{var h,m;if(this.messages&&this.messages.length>0&&(this.messages[this.messages.length-1].state=N.FAILED),console.error(r),Q.isCancel(r))this.messages[this.messages.length-1].error={code:oe};else if((h=r==null?void 0:r.response)!=null&&h.data){let i=(m=r==null?void 0:r.response)==null?void 0:m.data;te(i)&&(i=JSON.parse(i)),console.debug("error",i),this.messages&&this.messages.length>0&&(this.messages[this.messages.length-1].error=i.error)}else this.messages&&this.messages.length>0&&(this.messages[this.messages.length-1].error={code:B});this.answering=!1})},async onCreateNewConversation(){await this.$router.push({name:ae})},async onModelChanged(){await this.onCreateNewConversation(),await this.$store.dispatch("chat/getApplication")},async onSubmit(){if(this.references.length>0){let e=[];e.push({type:"text",text:this.question});for(let t=0;t<this.references.length;t++)e.push({type:"image_url",image_url:this.references[t]});this.messages.push({content:e,role:V})}else this.messages.push({content:this.question,role:V});console.debug("onSubmit",this.question,this.references),await this.onFetchAnswer()},async onScrollDown(){setTimeout(()=>{const e=document.querySelector(".dialogue");!e||!this.messages||this.messages.length===0||(e.scrollTop=e==null?void 0:e.scrollHeight)},0)},async onFetchAnswer(){var $;const e=($=this.credential)==null?void 0:$.token,t=this.question,a=this.references;if(console.debug("validated",t,a),this.question="",this.references=[],!e||!t){console.error("no token or endpoint or question"),this.messages.push({error:{code:P},role:T,state:N.FAILED});return}let p=this.conversationId;this.messages.push({content:"",role:T,state:N.PENDING}),console.debug("start to get answer",this.messages),this.onScrollDown(),this.answering=!0,M.chatConversation({question:t,model:this.model.name,references:a,id:this.conversationId,stateful:!0},{token:e,stream:o=>{console.debug("stream response",o),this.messages[this.messages.length-1]={role:T,content:o.answer,state:N.ANSWERING},p=o==null?void 0:o.id,this.onScrollDown()}}).then(async()=>{console.debug("finished fetch answer",this.messages),this.messages[this.messages.length-1].state=N.FINISHED,await this.$store.dispatch("chat/setConversation",{id:p,messages:this.messages}),this.answering=!1,this.conversationId||await this.$router.push({name:ie,params:{id:p}}),this.onScrollDown(),await this.$store.dispatch("chat/getConversations"),await this.$store.dispatch("chat/getApplication")}).catch(o=>{var r,h;if(this.messages&&this.messages.length>0&&(this.messages[this.messages.length-1].state=N.FAILED),console.error(o),Q.isCancel(o))this.messages[this.messages.length-1].error={code:oe};else if((r=o==null?void 0:o.response)!=null&&r.data){let m=(h=o==null?void 0:o.response)==null?void 0:h.data;te(m)&&(m=JSON.parse(m)),console.debug("error",m),this.messages&&this.messages.length>0&&(this.messages[this.messages.length-1].error=m.error)}else this.messages&&this.messages.length>0&&(this.messages[this.messages.length-1].error={code:B});this.answering=!1})}}}),Yt={class:"dialogue"},Xt={key:1,class:"messages"},Zt={class:"bottom"};function xt(e,t,a,p,$,o){const r=l("model-selector"),h=l("application-status"),m=l("introduction"),i=l("message"),g=l("input-box"),s=l("layout");return n(),f(s,null,{chat:w(()=>[_(r,{class:"selector"}),_(h,{initializing:e.initializing,application:e.application,"need-apply":e.needApply,service:e.service,onRefresh:t[0]||(t[0]=k=>e.$store.dispatch("chat/getApplication"))},null,8,["initializing","application","need-apply","service"]),d("div",Yt,[e.messages.length===0?(n(),f(m,{key:0,onDraft:e.onDraft},null,8,["onDraft"])):(n(),u("div",Xt,[(n(!0),u(D,null,A(e.messages,(k,b)=>(n(),f(i,{key:b,message:k,messages:e.messages,question:e.question,application:e.application,class:"message","onUpdate:question":t[1]||(t[1]=c=>e.question=c),"onUpdate:messages":t[2]||(t[2]=c=>e.messages=c),onEdit:e.onEdit},null,8,["message","messages","question","application","onEdit"]))),128))]))]),d("div",Zt,[_(g,{disabled:e.answering,question:e.question,references:e.references,"onUpdate:question":t[3]||(t[3]=k=>e.question=k),"onUpdate:references":t[4]||(t[4]=k=>e.references=k),onSubmit:e.onSubmit},null,8,["disabled","question","references","onSubmit"])])]),_:1})}var ms=S(Qt,[["render",xt],["__scopeId","data-v-3ab2fb26"],["__file","/home/runner/work/Nexior/Nexior/src/pages/chat/Conversation.vue"]]);export{ms as default};