@blueking/ai-blueking 2.2.1-beta.2 → 2.2.1-beta.3

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.
@@ -52418,7 +52418,10 @@ var EZ = ["src"], DZ = {
52418
52418
  }, a = () => {
52419
52419
  n.sendDisabledTip || n.messageState === Ac.Disabled || n.messageState === Ac.Pending || n.messageState === Ac.Streaming || r("sendMessage");
52420
52420
  };
52421
- return (t, r) => (U(), W("div", uQ, [ui(t.$slots, "default"), ui(t.$slots, "send-icon", {}, () => [K("div", { class: pe(["send-message-icon", [e.messageState && `send-message-icon__${e.messageState}`, { "send-message-icon__disabled": e.sendDisabledTip }]]) }, [e.messageState === B(Ac).Streaming || e.messageState === B(Ac).Pending || e.messageState === B(Ac).Fetching ? Un((U(), G(B(Ml), {
52421
+ return (t, r) => (U(), W("div", uQ, [ui(t.$slots, "default"), ui(t.$slots, "send-icon", {}, () => [K("div", {
52422
+ class: pe(["send-message-icon", [e.messageState && `send-message-icon__${e.messageState}`, { "send-message-icon__disabled": e.sendDisabledTip }]]),
52423
+ onClick: a
52424
+ }, [e.messageState === B(Ac).Streaming || e.messageState === B(Ac).Pending || e.messageState === B(Ac).Fetching ? Un((U(), G(B(Ml), {
52422
52425
  key: 0,
52423
52426
  onClick: i
52424
52427
  }, null, 512)), [[B(QL), {
@@ -52426,10 +52429,7 @@ var EZ = ["src"], DZ = {
52426
52429
  content: B(Z)("停止"),
52427
52430
  theme: "ai-chat-box",
52428
52431
  offset: [0, 16]
52429
- }]]) : Un((U(), G(B(jl), {
52430
- key: 1,
52431
- onClick: a
52432
- }, null, 512)), [[B(QL), {
52432
+ }]]) : Un((U(), G(B(jl), { key: 1 }, null, 512)), [[B(QL), {
52433
52433
  ...e.tippyOptions,
52434
52434
  content: e.sendDisabledTip || (n.messageState === B(Ac).Disabled ? void 0 : B(Z)("发送")),
52435
52435
  theme: "ai-chat-box",
@@ -3478,7 +3478,7 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3478
3478
  `),e+n.reduce((e,n)=>e+(h9(n)?n.text:t?t(n):`@${n.data?.label}`),``)),``),d9=e=>e.split(`
3479
3479
  `).map(e=>e?[{text:e,type:`text`}]:[]),f9=1,p9=2,JVt=3,YVt=e=>e._type!==JVt,m9=class e extends Array{static from(t){return new e(...t)}delete(e,t){return this.push({_type:f9,_start:e,_end:t}),this}insert(e,t){return this.push({_type:p9,_pos:e,_fragment:t}),this}select(e,t){return this.push({_type:JVt,_anchor:e,_focus:t}),this}transform(e){return this.reduce((e,t)=>YVt(t)?rHt(e,t):e,e)}},XVt=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),h9=e=>`text`in e,ZVt=e=>h9(e)?e.text.length:1,QVt=e=>e.reduce((e,t)=>e+ZVt(t),0),g9=(e,t)=>{let n=[...e];if(!n.length)n.push(...t);else for(let e of t){let t=n.length-1,r=n[t];h9(e)&&h9(r)?n[t]={text:r.text+e.text}:n.push(e)}return n},_9=(e,t)=>{for(let n=0;n<e.length;n++){let r=e[n],i=ZVt(r);if(i>t){let i=e.slice(0,n),a=e.slice(n+1);if(h9(r)){let e=r.text.slice(0,t),n=r.text.slice(t);e&&i.push({text:e}),n&&a.unshift({text:n})}else a.unshift(r);return[i,a]}t-=i}return[e,[]]},$Vt=(e,t,n,r)=>{let[i]=n,[a]=r||n,o=_9(e[n[0]],n[1]),s=o[0],l=r?_9(e[r[0]],r[1])[1]:o[1],u=[...t];u.length?(u[0]=g9(s,u[0]),u[u.length-1]=g9(u[u.length-1],l)):u.push(g9(s,l)),e.splice(i,a-i+1,...u)},eHt=(e,t,n)=>s9(t,n)===0?[_9(_9(e[t[0]],n[1])[0],t[1])[1]]:[_9(e[t[0]],t[1])[1],...e.slice(t[0]+1,n[0]),_9(e[n[0]],n[1])[0]],tHt=e=>{switch(e._type){case f9:return c9(e._start,e._end)===1;case p9:return!!u9(e._fragment)}return!0},nHt=(e,t)=>{switch(t._type){case f9:$Vt(e,[],t._start,t._end);break;case p9:$Vt(e,t._fragment,t._pos);break;default:}},rHt=(e,t)=>{switch(t._type){case f9:{let{_start:n,_end:r}=t;if(c9(e,n)!==1)return c9(r,e)===1?[e[0]+n[0]-r[0],e[1]+(s9(r,e)===0?n[1]-r[1]:0)]:n;break}case p9:{let{_pos:n,_fragment:r}=t,i=r.length,a=i-1;if(c9(e,n)!==1)return[e[0]+a,e[1]+(s9(e,n)===0?QVt(r[i-1])-(a===0?0:n[1]):0)];break}default:}return e},iHt=(e,t,n)=>{let r=[...e],i=[...t];try{for(let r of n)tHt(r)&&(YVt(r)?(nHt(e,r),t[0]=rHt(t[0],r),t[1]=rHt(t[1],r)):(r._anchor&&(t[0]=r._anchor),r._focus&&(t[1]=r._focus)))}catch(n){console.error(`rollback transaction:`,n),e.length=0,e.push(...r),t[0]=i[0],t[1]=i[1]}},v9=(e,t,n)=>new m9().delete([0,0],[e.length-1,QVt(e[e.length-1])]).insert([0,0],d9(n)),aHt=Math.min,oHt=typeof queueMicrotask==`function`?queueMicrotask:e=>{Promise.resolve().then(e)},y9,b9,x9,S9,sHt=!1,cHt=!1,lHt,uHt=1,dHt=4,fHt=5,pHt=6,mHt=1,hHt=3,gHt=8,_Ht=e=>e.nodeType===hHt,C9=e=>e.nodeType===mHt,vHt=e=>e.nodeType===gHt,yHt=new Set([`EMBED`,`IMG`,`PICTURE`,`AUDIO`,`VIDEO`,`SVG`,`CANVAS`,`MATH`,`IFRAME`,`OBJECT`]),bHt=e=>e.contentEditable===`false`||yHt.has(e.tagName),xHt=()=>b9,SHt=()=>x9===1?b9.data.length:+(x9===2),CHt=e=>{y9.currentNode=y9.currentNode.parentNode.children[e]},wHt=e=>{let t=e.nextSibling;return!!t&&!vHt(t)},THt=()=>{for(;;){if(x9===2){let e=b9;for(;(b9=y9.nextNode())&&e.contains(b9););}else b9=y9.nextNode();if(x9=null,!b9)break;if(S9){if(S9.contains(b9)){if(sHt=!0,cHt)break}else if(sHt)break}if(_Ht(b9)){let e=b9.data;if(e)return x9=e===`
3480
3480
  `?wHt(b9)?3:pHt:1}else if(C9(b9)){if(b9.tagName===`BR`)return x9=wHt(b9)?3:fHt;if(bHt(b9))return x9=2;if(lHt(b9))return x9=4}}},EHt=(e,t,{_document:n,_isBlock:r},i)=>{try{return lHt=r,y9=n.createTreeWalker(t,dHt|uHt),i&&(i._startNode&&(y9.currentNode=i._startNode,y9.previousNode()),i._endNode&&(S9=i._endNode),cHt=i._excludeEnd||!1),e(THt)}finally{y9=b9=x9=S9=null,sHt=cHt=!1}},DHt=new Set([`DIV`,`H1`,`H2`,`H3`,`H4`,`H5`,`H6`,`P`,`PRE`,`LI`,`DT`,`DD`,`TR`]),OHt=e=>DHt.has(e.tagName),kHt=2,AHt=e=>e.ownerDocument,jHt=e=>AHt(e).getSelection(),MHt=(e,t)=>{if(e.rangeCount){let n=e.getRangeAt(0);if(t.contains(n.commonAncestorContainer))return n}},NHt=(e,t,n)=>{let r=jHt(e);r.removeAllRanges(),r.addRange(t),n&&(r.collapseToEnd(),r.extend(t.startContainer,t.startOffset))},PHt=(e,t,[n,r],i)=>{let a=c9(n,r),o=a===0,s=a===-1,l=s?r:n,u=s?n:r;if(l[0]===0&&l[1]===0&&o&&!t.hasChildNodes()){let n=e.createRange();return n.setStart(t,0),n.setEnd(t,0),NHt(t,n),!0}let d=FHt(t,l,i);if(!d)return!1;let f=o?d:FHt(t,u,i);if(!f)return!1;let p=e.createRange(),[m,h]=d,[g,_]=f;return C9(m)?h<1?p.setStartBefore(m):p.setStartAfter(m):p.setStart(m,h),C9(g)?_<1?p.setEndBefore(g):p.setEndAfter(g):p.setEnd(g,_),NHt(t,p,s),!0},FHt=(e,[t,n],r)=>EHt(e=>{let r,i=!1;for(;r=e();)if(r===4)i||(i=!0,t!==0&&CHt(t));else{let e=SHt();if(n<=e)return[xHt(),n];n-=e}},e,r),IHt=(e,t)=>{let n=t;for(;;){let t=n.parentElement;if(t===e)break;n=t}return n},LHt=e=>{let t=0;for(;e=e.previousElementSibling;)t++;return t},w9=(e,t,n,r)=>{let i,a,o=!0;if(e===t&&!t.hasChildNodes())return[0,0];if(C9(t)&&!bHt(t)&&t.hasChildNodes()){let e=aHt(n,t.childNodes.length-1);t=t.childNodes[e],o=e===n,n=0}let s=IHt(e,t);return r._isBlock(s)?(i=s,a=LHt(i)):(i=e,a=0),EHt(e=>{let t,r=0;for(;t=e();)t===3?(a++,r=0):r+=SHt();return[a,r+n]},i,r,{_endNode:t,_excludeEnd:o})},RHt=(e,t,{startOffset:n,startContainer:r,endOffset:i,endContainer:a})=>{let o=w9(e,r,n,t);return[o,r===a&&n===i?o:w9(e,a,i,t)]},zHt=()=>[[0,0],[0,0]],BHt=(e,t)=>e.compareDocumentPosition(t),VHt=(e,t)=>{let n=jHt(e),r=MHt(n,e);if(!r)return zHt();let i=RHt(e,t,r);return(n.anchorNode===n.focusNode?n.anchorOffset>n.focusOffset:(BHt(n.anchorNode,n.focusNode)&kHt)!==0)?[i[1],i[0]]:i},HHt=(e,t,n,r)=>EHt(e=>{let t,i=null,a=``,o=!1,s=[],l=()=>{a&&=(i||=[],i.push({text:a}),``)},u=()=>{l(),!i&&o&&(i=[]),i&&s.push(i),i=null,o=!1};for(;t=e();)if(t===4)u();else if(o=!0,t===1){let e=xHt(),t=e.data;r&&(r._end[0]===e&&(t=t.slice(0,r._end[1])),r._start?.[0]===e&&(t=t.slice(r._start[1]))),a+=t}else if(t===2){l();let e=xHt();if(r&&(r._end[0]===e&&r._end[1]===0||r._start?.[0]===e&&r._start[1]!==0))continue;let t=n(e);t&&i.push({data:t})}else t===3&&u();return u(),s.length||s.push([]),s},e,t,r&&{_startNode:r._start?.[0],_endNode:r._end[0]}),UHt=(e,t,{clientX:n,clientY:r},i)=>{if(e.caretPositionFromPoint){let a=e.caretPositionFromPoint(n,r);if(a)return w9(t,a.offsetNode,a.offset,i)}else if(e.caretRangeFromPoint){let a=e.caretRangeFromPoint(n,r);if(a)return w9(t,a.startContainer,a.startOffset,i)}},WHt=500,GHt=500,KHt=e=>{let t=0,n=0,r=Date.now,i=[e],a=()=>i[t],o=()=>t>0,s=()=>t<i.length-1;return{get:a,set:e=>{i[t]=e},undo:()=>{if(o())return t--,a()},redo:()=>{if(s())return t++,a()},push:e=>{let a=r();t!==0&&a-n<GHt&&t--,n=a,i[++t]=e,i.splice(t+1),t>WHt&&(t--,i.shift())}}},qHt=(e,t)=>{let n=!1,r=[],i=e=>{n&&r.push(...e)},a=new MutationObserver(e=>{i(e),n||t()}),o=()=>{i(a.takeRecords())};return a.observe(e,{characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),{_record(e){!n&&e&&o(),n=e},_flush:()=>(o(),r.splice(0)),_dispose(){r.splice(0),a.disconnect()}}},JHt=e=>m9.from(e.map(e=>e._type===2?{...e,_fragment:[e._fragment.reduce((e,t)=>g9(e,t),[])]}:e)),YHt=()=>{},XHt=({schema:{single:e,js:t,doc:n,copy:r,paste:i},doc:a,isBlock:o=OHt,onChange:s,onKeyDown:l})=>{let u=zHt(),d=!1,f=YHt,p=()=>m.get()[0],m=KHt([n(a),u]),h=[],g=e=>{d||(h.unshift(e),v(y))},_=new Set,v=e=>{_.has(e)||(_.add(e),oHt(()=>{_.delete(e),e()}))},y=()=>{if(h.length){let n=[...p()],r=[...u],i;for(;i=h.pop();)e&&(i=JHt(i)),iHt(n,r,i);let a=p();XVt(n,a)||(m.set([a,u]),m.push([n,r]),s(t(n))),u=r}};return{input:n=>{if(!(window.InputEvent&&typeof InputEvent.prototype.getTargetRanges==`function`))return console.error(`beforeinput event is not supported.`),YHt;let{contentEditable:a,role:h,ariaMultiLine:_,ariaReadOnly:v}=n,y=n.style.whiteSpace;n.role=`textbox`,n.style.whiteSpace=`pre-wrap`,e||(n.ariaMultiLine=`true`);let b=!1,x=!1,S=null,C=!1,w=!1,T=!1,E=AHt(n),D={_document:E,_isBlock:o};f=()=>{n.contentEditable=d?`false`:`true`,n.ariaReadOnly=d?`true`:null},f();let O=qHt(n,()=>{w&&PHt(E,n,u,D)}),k=()=>{u=VHt(n,D)},A=()=>{let e=O._flush();if(O._record(!1),e.length){let t;for(;t=e.pop();)if(t.type===`childList`){let{target:e,removedNodes:n,addedNodes:r,nextSibling:i}=t;for(let t=n.length-1;t>=0;t--)e.insertBefore(n[t],i);for(let t=r.length-1;t>=0;t--)e.removeChild(r[t])}else t.target.nodeValue=t.oldValue;O._flush(),x=PHt(E,n,u,D)}g(S),C=!1,S=null},j=e=>{if(!C){if(l?.(e)){e.preventDefault();return}if((e.metaKey||e.ctrlKey)&&!e.altKey&&e.code===`KeyZ`&&(e.preventDefault(),O._record(!1),!d)){let n=e.shiftKey?m.redo():m.undo();n&&(s(t(n[0])),u=n[1])}}},M=()=>{C||A()},N=e=>{e.preventDefault();let t=e.inputType;if(t.startsWith(`format`)||t===`historyUndo`||t===`historyRedo`)return;C?O._record(!0):k();let r=e.getTargetRanges()[0];if(r){let i=RHt(n,D,r),a=t===`insertParagraph`||t===`insertLineBreak`?`
3481
- `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new m9().select(...u),c9(...i)!==0&&S.delete(...i),a&&S.insert(i[0],d9(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),c9(...u)!==0&&r(e,eHt(p(),...l9(u)),n)},te=e=>{e.preventDefault(),ee(e.clipboardData)},ne=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new m9().delete(...l9(u))))},re=e=>{e.preventDefault();let[t,n]=l9(u);g(new m9().delete(t,n).insert(t,i(e.clipboardData,D)))},ie=e=>{e.preventDefault();let t=e.dataTransfer,r=UHt(E,n,e,D);if(t&&r){let e=new m9;T&&e.delete(...l9(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ae=e=>{T=!0,ee(e.dataTransfer)},oe=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,te),n.addEventListener(`cut`,ne),n.addEventListener(`paste`,re),n.addEventListener(`drop`,ie),n.addEventListener(`dragstart`,ae),n.addEventListener(`dragend`,oe),()=>{b||(b=!0,f=YHt,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,te),n.removeEventListener(`cut`,ne),n.removeEventListener(`paste`,re),n.removeEventListener(`drop`,ie),n.removeEventListener(`dragstart`,ae),n.removeEventListener(`dragend`,oe))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},ZHt=()=>``,QHt=({is:e,data:t,plain:n=ZHt})=>({is:e,data:t,plain:n}),$Ht=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(h9(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:{...n}}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,u9(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=MHt(jHt(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])vHt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return HHt(e,t,o)}return d9(e.getData(`text/plain`))}}},eUt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},tUt=e=>u9(e,eUt),nUt=$Ht({multiline:!0,void:{tag:QHt({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),rUt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},T9=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),E9=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),iUt={class:`ai-file-upload-btn`},aUt=[`accept`],oUt=$n({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:t}){let n=t,r=er(`fileInputRef`),i=()=>{r.value?.click()},a=e=>{let t=e.target,r=t.files;if(r?.length){let e=(lie/(1024*1024)).toFixed(1),t=Array.from(r),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&Ad({message:Ii(a,e,Bi),theme:`error`}),i.length&&n(`upload`,i)}t.value=``};return(t,n)=>(B(),V(`div`,iUt,[H(`input`,{ref_key:`fileInputRef`,ref:r,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:a},null,40,aUt),Nn((B(),V(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:i},[mr(t.$slots,`default`,{},()=>[Xr(z(Bie))])])),[[z(sp),{...e.tippyOptions,content:z(Vi)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]}]])]))}}),sUt={class:`ai-cite-content`},cUt={class:`ai-cite-content-text`},lUt=$n({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(t,n)=>(B(),V(`div`,sUt,[Xr(z(aae)),H(`span`,cUt,ke(e.content),1),e.onClose?(B(),Kr(z(ta),{key:0,onClick:n[0]||=t=>e.onClose?.(e.content)})):ei(`v-if`,!0)]))}}),uUt={class:`ai-image-preview-toolbar`},dUt={class:`ai-image-preview-toolbar-inner`},fUt={key:0,class:`ai-image-preview-toolbar-pages`},pUt={key:1,class:`ai-image-preview-toolbar-divider`},mUt=[`data-tooltip`],hUt=[`data-tooltip`],gUt=[`data-tooltip`],_Ut=[`data-tooltip`],vUt=[`data-tooltip`],yUt={class:`ai-image-preview-toolbar-info`},bUt=$n({name:`PreviewToolbar`,__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:t}){let n=t;return(t,r)=>(B(),V(`div`,uUt,[H(`div`,dUt,[e.isMultiple?(B(),V(`span`,fUt,ke(e.activeIndex+1)+` / `+ke(e.total),1)):ei(`v-if`,!0),e.isMultiple?(B(),V(`span`,pUt)):ei(`v-if`,!0),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`缩小`),onClick:r[0]||=e=>n(`zoomOut`)},[Xr(z(kie))],8,mUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`放大`),onClick:r[1]||=e=>n(`zoomIn`)},[Xr(z(Oie))],8,hUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`旋转`),onClick:r[2]||=e=>n(`rotate`)},[Xr(z(Aie))],8,gUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`重置`),onClick:r[3]||=e=>n(`reset`)},[Xr(z(jie))],8,_Ut),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`下载`),onClick:r[4]||=e=>n(`download`)},[Xr(z(Mie))],8,vUt),t.$slots.extra?(B(),V(Rr,{key:2},[r[5]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),mr(t.$slots,`extra`)],64)):ei(`v-if`,!0),e.showInfo&&e.currentImageInfo?(B(),V(Rr,{key:3},[r[7]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),H(`div`,yUt,[Xr(z(Iie),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,ke(e.currentImageInfo.width)+` px `+ke(z(Vi)(`宽`)),1),e.currentImageInfo.resolution?(B(),V(Rr,{key:0},[r[6]||=H(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),Xr(z(Iie),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,ke(e.currentImageInfo.resolution),1)],64)):ei(`v-if`,!0)])],64)):ei(`v-if`,!0)])]))}}),xUt=.15,SUt=.1,CUt=10;function wUt(){let e=cn(1),t=cn(0),n=cn(0),r=cn(0),i=cn(!1),a=cn(!1),o=0,s=0,l=0,u=0,d=pi(()=>({transform:`translate(${n.value}px, ${r.value}px) scale(${e.value}) rotate(${t.value}deg)`,cursor:i.value?`grabbing`:`grab`,transition:i.value||a.value?`none`:`transform 0.3s ease`})),f=()=>{a.value=!0,e.value=1,t.value=0,n.value=0,r.value=0,requestAnimationFrame(()=>{a.value=!1})},p=()=>{e.value=Math.min(CUt,e.value*(1+xUt))},m=()=>{e.value=Math.max(SUt,e.value*(1-xUt))};return{imageStyle:d,resetTransform:f,zoomIn:p,zoomOut:m,rotateCW:()=>{t.value+=90},handleWheel:e=>{e.deltaY<0?p():m()},handleDragStart:e=>{if(e.button!==0)return;i.value=!0,o=e.clientX,s=e.clientY,l=n.value,u=r.value;let t=e=>{i.value&&(n.value=l+(e.clientX-o),r.value=u+(e.clientY-s))},a=()=>{i.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,a)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,a)}}}function TUt(e){let{visible:t,onClose:n,onPrev:r,onNext:i}=e,a=e=>{if(t.value)switch(e.key){case`Escape`:n();break;case`ArrowLeft`:r?.();break;case`ArrowRight`:i?.();break}},o=()=>{typeof document>`u`||(document.addEventListener(`keydown`,a),document.body.style.overflow=`hidden`)},s=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,a),document.body.style.overflow=``)};Rn(t,e=>{e?o():s()},{immediate:!0}),cr(()=>{s()})}var EUt=[`src`],DUt={key:1,class:`ai-image-preview-error`},OUt={class:`ai-image-preview-error-text`},kUt={key:2,class:`ai-image-preview-loading`},AUt=[`src`],jUt=$n({name:`ImagePreview`,__name:`image-preview`,props:br({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:{type:Boolean,required:!0},visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let t=e,n=Or(e,`visible`),r=Or(e,`current`),{imageStyle:i,resetTransform:a,zoomIn:o,zoomOut:s,rotateCW:l,handleWheel:u,handleDragStart:d}=wUt(),f=cn(`loading`),p=[],m=()=>{p.forEach(e=>URL.revokeObjectURL(e)),p.length=0},h=e=>{let t=URL.createObjectURL(e);return p.push(t),{url:t,name:e.name,file:e}},g=pi(()=>n.value?(m(),t.images.map(e=>e instanceof File?h(e):typeof e==`string`?{url:e}:e.file&&!e.url?{...e,url:h(e.file).url}:e)):(m(),[]));cr(m);let _=pi(()=>g.value[r.value]??{url:``}),v=pi(()=>g.value.length>1),y=pi(()=>{let e=_.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),b=()=>{n.value=!1},x=()=>{t.maskClosable&&b()},S=e=>{r.value=e,a(),f.value=`loading`},C=()=>{S(r.value>0?r.value-1:g.value.length-1)},w=()=>{S(r.value<g.value.length-1?r.value+1:0)},T=()=>{let e=_.value,n=e.downloadUrl||e.url;if(t.onDownload){t.onDownload(n);return}let r=document.createElement(`a`);r.href=n,r.download=e.name||n.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},E=()=>{f.value=`loaded`},D=()=>{f.value=`error`};return TUt({visible:n,onClose:b,onPrev:()=>v.value&&C(),onNext:()=>v.value&&w()}),(t,p)=>(B(),Kr(Wn,{to:`body`},[Xr(yi,{name:`ai-image-preview-fade`},{default:Mn(()=>[n.value?(B(),V(`div`,{key:0,class:`ai-image-preview`,onWheel:p[1]||=Ni((...e)=>z(u)&&z(u)(...e),[`prevent`])},[H(`div`,{class:`ai-image-preview-close`,onClick:b},[Xr(z(Nie),{class:`ai-image-preview-close-icon`})]),v.value?(B(),V(Rr,{key:0},[H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:C},[Xr(z($i),{class:`ai-image-preview-arrow-icon`})]),H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:w},[Xr(z(Pie),{class:`ai-image-preview-arrow-icon`})])],64)):ei(`v-if`,!0),H(`div`,{class:`ai-image-preview-body`,onClick:Ni(x,[`self`]),onMousedown:p[0]||=(...e)=>z(d)&&z(d)(...e)},[f.value===`error`?ei(`v-if`,!0):(B(),V(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:_.value.url,style:ge(z(i)),onError:D,onLoad:E},null,44,EUt)),f.value===`error`?(B(),V(`div`,DUt,[Xr(z(Fie),{class:`ai-image-preview-error-icon`}),H(`p`,OUt,ke(z(Vi)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):ei(`v-if`,!0),f.value===`loading`?(B(),V(`div`,kUt,[_.value.thumbnailUrl?(B(),V(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:_.value.thumbnailUrl,style:ge(z(i))},null,12,AUt)):ei(`v-if`,!0)])):ei(`v-if`,!0)],32),Xr(bUt,{"active-index":r.value,"current-image-info":y.value,"is-multiple":v.value,"show-info":e.showInfo,total:g.value.length,onDownload:T,onReset:z(a),onRotate:z(l),onZoomIn:z(o),onZoomOut:z(s)},pr({_:2},[t.$slots.extra?{name:`extra`,fn:Mn(()=>[mr(t.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):ei(`v-if`,!0)]),_:3})]))}}),MUt={class:`ai-files-content`},NUt=[`alt`,`src`,`onClick`,`onError`],PUt={key:1,class:`file-content-image image-error`},FUt={key:2,class:`file-content-object`},IUt={class:`file-description`},LUt={class:`file-name`},RUt={class:`file-type`},zUt={class:`file-size`},BUt=$n({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:t}){let n=t,r=e,i=Jt({}),a=e=>e.url?!0:kre(e.mimeType||e.file?.type),o=e=>e.url||e.file?.name||``,s=e=>{i[o(e)]=!0},l=e=>{n(`deleteFile`,e)},u=cn(!1),d=cn(0),f=pi(()=>r.files.filter(e=>a(e)&&!i[o(e)])),p=pi(()=>f.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),m=e=>{let t=f.value.indexOf(e);t<0||(d.value=t,u.value=!0)};return(t,n)=>(B(),V(`div`,MUt,[(B(!0),V(Rr,null,fr(e.files,t=>(B(),V(`div`,{key:t.file?.name,class:xe([`file-content`,{"is-file-object":!a(t)||i[o(t)]}])},[a(t)&&!i[o(t)]?(B(),V(`img`,{key:0,alt:t.filename||t.file?.name,class:`file-content-image`,src:t.url||z(Are)(t.file),onClick:e=>m(t),onError:e=>s(t)},null,40,NUt)):a(t)&&i[o(t)]?(B(),V(`div`,PUt,[Xr(z(bie),{class:`file-error-icon`})])):(B(),V(`div`,FUt,[H(`div`,IUt,[Xr(z(Xi),{class:`file-icon`}),H(`span`,LUt,ke(t.filename||t.file?.name),1),H(`span`,RUt,ke(t.file?z(jre)(t.file):t.filename?.split(`.`).pop()||t.mimeType?.split(`/`).pop()),1)]),H(`div`,zUt,ke(z(Mre)(t.file)),1)])),e.readonly?ei(`v-if`,!0):(B(),Kr(z(zie),{key:3,class:`file-delete-icon`,onClick:e=>l(t)},null,8,[`onClick`]))],2))),128)),Xr(jUt,{current:d.value,"onUpdate:current":n[0]||=e=>d.value=e,visible:u.value,"onUpdate:visible":n[1]||=e=>u.value=e,images:p.value},null,8,[`current`,`visible`,`images`])]))}}),VUt=[`onClick`],HUt=$n({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let t=e,n=er(`promptListRef`),{activeIndex:r}=dp({items:pi(()=>t.prompts),onSelect:t.onSelect,menuRef:n});return(t,i)=>(B(),V(`div`,{ref_key:`promptListRef`,ref:n,class:`ai-prompt-list`},[(B(!0),V(Rr,null,fr(e.prompts,(t,n)=>(B(),V(`div`,{key:t,class:xe([`ai-prompt-list-item`,{"is-active":z(r)===n}]),onClick:n=>e.onSelect(t)},ke(t),11,VUt))),128))],512))}}),UUt=[`onClick`],WUt=[`src`,`onError`],GUt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},KUt={class:`ai-skill-list-item-info`},qUt={class:`ai-skill-list-item-name`},JUt=$n({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let t=e,n=Jt(new Set),r=er(`skillListRef`),{activeIndex:i}=dp({items:pi(()=>t.skills),onSelect:t.onSelect,menuRef:r});return Ln(()=>{t.skills,i.value=0}),(t,a)=>(B(),V(`div`,{ref_key:`skillListRef`,ref:r,class:`ai-skill-list`},[(B(!0),V(Rr,null,fr(e.skills,(t,r)=>(B(),V(`div`,{key:t.skill_code,class:xe([`ai-skill-list-item`,{"is-active":z(i)===r}]),onClick:n=>e.onSelect(t)},[t.icon&&!n.has(t.skill_code)?(B(),V(`img`,{key:0,src:t.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>n.add(t.skill_code)},null,40,WUt)):(B(),V(`div`,GUt,ke(t.skill_name?.[0]?.toUpperCase()),1)),H(`div`,KUt,[H(`div`,qUt,ke(t.skill_name),1)])],10,UUt))),128))],512))}}),YUt={class:`ai-slash-item ai-slash-group-title`},XUt=[`onClick`],ZUt=[`onClick`],QUt=[`title`],$Ut=$n({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let t=e,n=er(`menuRef`),r=sn([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),i=cn([]),a=cn([]),{activeIndex:o}=dp({items:i,onSelect:t.onSelect,menuRef:n});Ln(()=>{let e=[],n=[];for(let[r,i]of Object.entries(rUt)){let a=t.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),n.push(...a))}o.value=0,i.value=n,a.value=e});let s=e=>{let t=r.value.findIndex(t=>t===e.type);t===-1?r.value.push(e.type):r.value.splice(t,1)};return(t,l)=>e.resourceList?.length?(B(),V(`div`,{key:0,ref_key:`menuRef`,ref:n,class:`ai-slash-menu`},[(B(!0),V(Rr,null,fr(a.value,(t,n)=>(B(),V(Rr,null,[t.items.length>0?(B(),V(`div`,{key:n,class:`ai-slash-group`},[H(`div`,YUt,[(B(),V(`svg`,{class:`title-icon`,style:ge({transform:r.value.includes(t.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>s(t)},[...l[0]||=[H(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,XUt)),H(`span`,{class:xe(`mark-${t.type}`)},null,2),$r(` `+ke(t.name)+` (`+ke(t.items.length)+`) `,1)]),r.value.includes(t.type)?(B(!0),V(Rr,{key:0},fr(t.items,t=>(B(),V(`div`,{key:t.id,class:xe([`ai-slash-item ai-slash-group-item`,{"is-active":i.value?.[z(o)]?.id===t.id}]),onClick:n=>e.onSelect(t)},[Nn((B(),V(`span`,{class:`ellipsis-text`,title:t.name},[$r(ke(t.name),1)],8,QUt)),[[z(kp),{text:t.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,ZUt))),128)):ei(`v-if`,!0)])):ei(`v-if`,!0)],64))),256))],512)):ei(`v-if`,!0)}}),eWt=(e,t,n,r)=>new m9().delete(n,r),tWt=(e,t,n,r)=>new m9().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),nWt=(e,t,n,r)=>new m9().insert(n,[[{text:r}]]),rWt=(e,t,n,r)=>new m9().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),iWt={class:`ai-slash-input-wrapper`},aWt=[`aria-placeholder`],oWt={key:0},sWt=[`data-tag-type`,`data-tag-value`],cWt={key:1},lWt=$n({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:Bi?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:t,emit:n}){let r=er(`editorRef`),i=er(`tippyRef`),a=n,o=e,s=dn((e,t)=>({get(){return e(),typeof o.modelValue==`string`?d9(o.modelValue):o.modelValue},set(e){a(`update:modelValue`,e,e?.flat()?.filter(e=>e.type===`tag`)?.map(e=>o.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null)?.filter(e=>!!e)||[]),t()}})),l=cn(`slash`),u=cn(``),d=cn([]),f=cn([]),p=cn([]),m,h,g=null,_=null,v=()=>{g!==null&&(clearTimeout(g),g=null),_!==null&&(clearTimeout(_),_=null)},y=()=>document.body,{commandSelection:b,GetCursorPosition:x,GetDocSnapshot:S,docSnapshot:C}=kTe();Rn(()=>o.modelValue,()=>{m.command(S),u9(C.value||[])!==u9(s.value||[])&&m.command(v9,u9(s.value||[]))},{deep:!1});let w=()=>{g!==null&&clearTimeout(g),g=setTimeout(()=>{g=null;let e=D();u.value=e.query||``,e.isActive?(i.value?.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),i.value?.show()):i.value?.hide()},16)},T=e=>{if(a(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`)return e.shiftKey?void 0:(e.preventDefault?.(),!1);e.key===`@`&&(l.value=`slash`,w()),e.key===`/`&&(l.value=`skill`,w()),e.key===`\\`&&(l.value=`prompt`,w())},E=()=>{u.value=``},D=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=l.value===`slash`?`@`:l.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),u=a.match(s);if(!u)return e;let d=u[1]?.slice(1),f=u.index+u[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},O=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),k=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(eWt,[n,t-u.value.length-1],[n,t]),m.command(tWt,[n,t],e),m.command(nWt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()},A=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{if(_=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();r.value&&e&&(t.selectNodeContents(r.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},j=e=>{m.command(v9,e),A()},M=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(eWt,[n,t-u.value.length-1],[n,t]),m.command(rWt,[n,t],e),m.command(nWt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()};Ln(()=>{let e=o.resources?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type))),t=o.skills?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)));u.value?(d.value=e.filter(e=>e.name.toLowerCase().includes(u.value.toLowerCase())),f.value=t.filter(e=>e.skill_name.toLowerCase().includes(u.value.toLowerCase())||e.skill_code.toLowerCase().includes(u.value.toLowerCase())),p.value=o.prompts.filter(e=>e.toLowerCase().includes(u.value.toLowerCase()))):(d.value=e,f.value=t,p.value=o.prompts),!d.value.length&&!f.value.length&&!p.value.length&&i.value?.hide()});let N=(e,t,n,r)=>{if(t.type===`tag`){let t=O(e,n);m.command(eWt,[r,t],[r,t+1])}},P=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),a(`upload`,n))},F=()=>{h?.(),m=XHt({doc:s.value,schema:nUt,onChange:async e=>{s.value=e,w()},onKeyDown:e=>T(e)}),h=m.input(r.value)},I=()=>l.value===`slash`?d.value.length<1?!1:void 0:l.value===`skill`?f.value.length<1?!1:void 0:p.value.length<1?!1:void 0;return sr(()=>{F(),r.value?.addEventListener(`paste`,P)}),lr(()=>{v(),m.command(v9,``),h?.(),r.value?.removeEventListener(`paste`,P)}),t({cleanup:()=>{m.command(v9,``)},focus:A}),(t,n)=>(B(),V(`div`,iWt,[H(`div`,{ref_key:`editorRef`,ref:r,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[s.value?.length&&s.value.some(e=>e.length)?(B(!0),V(Rr,{key:0},fr(s.value,(e,t)=>(B(),V(`div`,{key:t},[e.length?(B(!0),V(Rr,{key:0},fr(e,(n,r)=>(B(),V(Rr,{key:r},[n.type===`text`?(B(),V(`span`,oWt,ke(n.text),1)):n.type===`tag`?(B(),V(`span`,{key:1,class:xe(`mention-tag-${n.data.type}`),contenteditable:`false`,"data-tag-type":n.data.type,"data-tag-value":n.data.value},[$r(ke(n.data.label)+` `,1),Xr(z(yie),{class:`mention-tag-remove-icon`,onClick:i=>N(e,n,r,t)},null,8,[`onClick`])],10,sWt)):ei(`v-if`,!0)],64))),128)):(B(),V(`br`,cWt))]))),128)):ei(`v-if`,!0)],8,aWt),Xr(z(op),{ref_key:`tippyRef`,ref:i,"append-to":y,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":r.value,"z-index":z(rie),onHidden:E,onShow:I},{content:Mn(()=>[l.value===`slash`?(B(),Kr($Ut,{key:0,"on-select":k,"resource-list":d.value},null,8,[`resource-list`])):l.value===`skill`?(B(),Kr(JUt,{key:1,"on-select":M,skills:f.value},null,8,[`skills`])):l.value===`prompt`?(B(),Kr(HUt,{key:2,"on-select":j,prompts:p.value},null,8,[`prompts`])):ei(`v-if`,!0)]),_:1},8,[`trigger-target`,`z-index`])]))}}),uWt={class:`ai-input-attachment`},dWt=$n({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:t}){let n=e,r=t,i=()=>{r(`stopSending`)},a=()=>{n.sendDisabledTip||n.messageState===Ki.Disabled||n.messageState===Ki.Pending||n.messageState===Ki.Streaming||r(`sendMessage`)};return(t,r)=>(B(),V(`div`,uWt,[mr(t.$slots,`default`),mr(t.$slots,`send-icon`,{},()=>[H(`div`,{class:xe([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]])},[e.messageState===z(Ki).Streaming||e.messageState===z(Ki).Pending||e.messageState===z(Ki).Fetching?Nn((B(),Kr(z(Xie),{key:0,onClick:i},null,512)),[[z(sp),{...e.tippyOptions,content:z(Vi)(`停止`),theme:`ai-chat-box`,offset:[0,16]}]]):Nn((B(),Kr(z(Yie),{key:1,onClick:a},null,512)),[[z(sp),{...e.tippyOptions,content:e.sendDisabledTip||(n.messageState===z(Ki).Disabled?void 0:z(Vi)(`发送`)),theme:`ai-chat-box`,offset:[0,16]}]])],2)])]))}}),fWt={key:1,class:`ai-divider`},pWt=$n({__name:`chat-input`,props:br({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:Bi?`Input "/" to trigger skill
3481
+ `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new m9().select(...u),c9(...i)!==0&&S.delete(...i),a&&S.insert(i[0],d9(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),c9(...u)!==0&&r(e,eHt(p(),...l9(u)),n)},te=e=>{e.preventDefault(),ee(e.clipboardData)},ne=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new m9().delete(...l9(u))))},re=e=>{e.preventDefault();let[t,n]=l9(u);g(new m9().delete(t,n).insert(t,i(e.clipboardData,D)))},ie=e=>{e.preventDefault();let t=e.dataTransfer,r=UHt(E,n,e,D);if(t&&r){let e=new m9;T&&e.delete(...l9(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ae=e=>{T=!0,ee(e.dataTransfer)},oe=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,te),n.addEventListener(`cut`,ne),n.addEventListener(`paste`,re),n.addEventListener(`drop`,ie),n.addEventListener(`dragstart`,ae),n.addEventListener(`dragend`,oe),()=>{b||(b=!0,f=YHt,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,te),n.removeEventListener(`cut`,ne),n.removeEventListener(`paste`,re),n.removeEventListener(`drop`,ie),n.removeEventListener(`dragstart`,ae),n.removeEventListener(`dragend`,oe))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},ZHt=()=>``,QHt=({is:e,data:t,plain:n=ZHt})=>({is:e,data:t,plain:n}),$Ht=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(h9(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:{...n}}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,u9(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=MHt(jHt(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])vHt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return HHt(e,t,o)}return d9(e.getData(`text/plain`))}}},eUt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},tUt=e=>u9(e,eUt),nUt=$Ht({multiline:!0,void:{tag:QHt({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),rUt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},T9=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),E9=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),iUt={class:`ai-file-upload-btn`},aUt=[`accept`],oUt=$n({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:t}){let n=t,r=er(`fileInputRef`),i=()=>{r.value?.click()},a=e=>{let t=e.target,r=t.files;if(r?.length){let e=(lie/(1024*1024)).toFixed(1),t=Array.from(r),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&Ad({message:Ii(a,e,Bi),theme:`error`}),i.length&&n(`upload`,i)}t.value=``};return(t,n)=>(B(),V(`div`,iUt,[H(`input`,{ref_key:`fileInputRef`,ref:r,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:a},null,40,aUt),Nn((B(),V(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:i},[mr(t.$slots,`default`,{},()=>[Xr(z(Bie))])])),[[z(sp),{...e.tippyOptions,content:z(Vi)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]}]])]))}}),sUt={class:`ai-cite-content`},cUt={class:`ai-cite-content-text`},lUt=$n({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(t,n)=>(B(),V(`div`,sUt,[Xr(z(aae)),H(`span`,cUt,ke(e.content),1),e.onClose?(B(),Kr(z(ta),{key:0,onClick:n[0]||=t=>e.onClose?.(e.content)})):ei(`v-if`,!0)]))}}),uUt={class:`ai-image-preview-toolbar`},dUt={class:`ai-image-preview-toolbar-inner`},fUt={key:0,class:`ai-image-preview-toolbar-pages`},pUt={key:1,class:`ai-image-preview-toolbar-divider`},mUt=[`data-tooltip`],hUt=[`data-tooltip`],gUt=[`data-tooltip`],_Ut=[`data-tooltip`],vUt=[`data-tooltip`],yUt={class:`ai-image-preview-toolbar-info`},bUt=$n({name:`PreviewToolbar`,__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:t}){let n=t;return(t,r)=>(B(),V(`div`,uUt,[H(`div`,dUt,[e.isMultiple?(B(),V(`span`,fUt,ke(e.activeIndex+1)+` / `+ke(e.total),1)):ei(`v-if`,!0),e.isMultiple?(B(),V(`span`,pUt)):ei(`v-if`,!0),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`缩小`),onClick:r[0]||=e=>n(`zoomOut`)},[Xr(z(kie))],8,mUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`放大`),onClick:r[1]||=e=>n(`zoomIn`)},[Xr(z(Oie))],8,hUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`旋转`),onClick:r[2]||=e=>n(`rotate`)},[Xr(z(Aie))],8,gUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`重置`),onClick:r[3]||=e=>n(`reset`)},[Xr(z(jie))],8,_Ut),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Vi)(`下载`),onClick:r[4]||=e=>n(`download`)},[Xr(z(Mie))],8,vUt),t.$slots.extra?(B(),V(Rr,{key:2},[r[5]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),mr(t.$slots,`extra`)],64)):ei(`v-if`,!0),e.showInfo&&e.currentImageInfo?(B(),V(Rr,{key:3},[r[7]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),H(`div`,yUt,[Xr(z(Iie),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,ke(e.currentImageInfo.width)+` px `+ke(z(Vi)(`宽`)),1),e.currentImageInfo.resolution?(B(),V(Rr,{key:0},[r[6]||=H(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),Xr(z(Iie),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,ke(e.currentImageInfo.resolution),1)],64)):ei(`v-if`,!0)])],64)):ei(`v-if`,!0)])]))}}),xUt=.15,SUt=.1,CUt=10;function wUt(){let e=cn(1),t=cn(0),n=cn(0),r=cn(0),i=cn(!1),a=cn(!1),o=0,s=0,l=0,u=0,d=pi(()=>({transform:`translate(${n.value}px, ${r.value}px) scale(${e.value}) rotate(${t.value}deg)`,cursor:i.value?`grabbing`:`grab`,transition:i.value||a.value?`none`:`transform 0.3s ease`})),f=()=>{a.value=!0,e.value=1,t.value=0,n.value=0,r.value=0,requestAnimationFrame(()=>{a.value=!1})},p=()=>{e.value=Math.min(CUt,e.value*(1+xUt))},m=()=>{e.value=Math.max(SUt,e.value*(1-xUt))};return{imageStyle:d,resetTransform:f,zoomIn:p,zoomOut:m,rotateCW:()=>{t.value+=90},handleWheel:e=>{e.deltaY<0?p():m()},handleDragStart:e=>{if(e.button!==0)return;i.value=!0,o=e.clientX,s=e.clientY,l=n.value,u=r.value;let t=e=>{i.value&&(n.value=l+(e.clientX-o),r.value=u+(e.clientY-s))},a=()=>{i.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,a)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,a)}}}function TUt(e){let{visible:t,onClose:n,onPrev:r,onNext:i}=e,a=e=>{if(t.value)switch(e.key){case`Escape`:n();break;case`ArrowLeft`:r?.();break;case`ArrowRight`:i?.();break}},o=()=>{typeof document>`u`||(document.addEventListener(`keydown`,a),document.body.style.overflow=`hidden`)},s=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,a),document.body.style.overflow=``)};Rn(t,e=>{e?o():s()},{immediate:!0}),cr(()=>{s()})}var EUt=[`src`],DUt={key:1,class:`ai-image-preview-error`},OUt={class:`ai-image-preview-error-text`},kUt={key:2,class:`ai-image-preview-loading`},AUt=[`src`],jUt=$n({name:`ImagePreview`,__name:`image-preview`,props:br({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:{type:Boolean,required:!0},visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let t=e,n=Or(e,`visible`),r=Or(e,`current`),{imageStyle:i,resetTransform:a,zoomIn:o,zoomOut:s,rotateCW:l,handleWheel:u,handleDragStart:d}=wUt(),f=cn(`loading`),p=[],m=()=>{p.forEach(e=>URL.revokeObjectURL(e)),p.length=0},h=e=>{let t=URL.createObjectURL(e);return p.push(t),{url:t,name:e.name,file:e}},g=pi(()=>n.value?(m(),t.images.map(e=>e instanceof File?h(e):typeof e==`string`?{url:e}:e.file&&!e.url?{...e,url:h(e.file).url}:e)):(m(),[]));cr(m);let _=pi(()=>g.value[r.value]??{url:``}),v=pi(()=>g.value.length>1),y=pi(()=>{let e=_.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),b=()=>{n.value=!1},x=()=>{t.maskClosable&&b()},S=e=>{r.value=e,a(),f.value=`loading`},C=()=>{S(r.value>0?r.value-1:g.value.length-1)},w=()=>{S(r.value<g.value.length-1?r.value+1:0)},T=()=>{let e=_.value,n=e.downloadUrl||e.url;if(t.onDownload){t.onDownload(n);return}let r=document.createElement(`a`);r.href=n,r.download=e.name||n.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},E=()=>{f.value=`loaded`},D=()=>{f.value=`error`};return TUt({visible:n,onClose:b,onPrev:()=>v.value&&C(),onNext:()=>v.value&&w()}),(t,p)=>(B(),Kr(Wn,{to:`body`},[Xr(yi,{name:`ai-image-preview-fade`},{default:Mn(()=>[n.value?(B(),V(`div`,{key:0,class:`ai-image-preview`,onWheel:p[1]||=Ni((...e)=>z(u)&&z(u)(...e),[`prevent`])},[H(`div`,{class:`ai-image-preview-close`,onClick:b},[Xr(z(Nie),{class:`ai-image-preview-close-icon`})]),v.value?(B(),V(Rr,{key:0},[H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:C},[Xr(z($i),{class:`ai-image-preview-arrow-icon`})]),H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:w},[Xr(z(Pie),{class:`ai-image-preview-arrow-icon`})])],64)):ei(`v-if`,!0),H(`div`,{class:`ai-image-preview-body`,onClick:Ni(x,[`self`]),onMousedown:p[0]||=(...e)=>z(d)&&z(d)(...e)},[f.value===`error`?ei(`v-if`,!0):(B(),V(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:_.value.url,style:ge(z(i)),onError:D,onLoad:E},null,44,EUt)),f.value===`error`?(B(),V(`div`,DUt,[Xr(z(Fie),{class:`ai-image-preview-error-icon`}),H(`p`,OUt,ke(z(Vi)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):ei(`v-if`,!0),f.value===`loading`?(B(),V(`div`,kUt,[_.value.thumbnailUrl?(B(),V(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:_.value.thumbnailUrl,style:ge(z(i))},null,12,AUt)):ei(`v-if`,!0)])):ei(`v-if`,!0)],32),Xr(bUt,{"active-index":r.value,"current-image-info":y.value,"is-multiple":v.value,"show-info":e.showInfo,total:g.value.length,onDownload:T,onReset:z(a),onRotate:z(l),onZoomIn:z(o),onZoomOut:z(s)},pr({_:2},[t.$slots.extra?{name:`extra`,fn:Mn(()=>[mr(t.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):ei(`v-if`,!0)]),_:3})]))}}),MUt={class:`ai-files-content`},NUt=[`alt`,`src`,`onClick`,`onError`],PUt={key:1,class:`file-content-image image-error`},FUt={key:2,class:`file-content-object`},IUt={class:`file-description`},LUt={class:`file-name`},RUt={class:`file-type`},zUt={class:`file-size`},BUt=$n({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:t}){let n=t,r=e,i=Jt({}),a=e=>e.url?!0:kre(e.mimeType||e.file?.type),o=e=>e.url||e.file?.name||``,s=e=>{i[o(e)]=!0},l=e=>{n(`deleteFile`,e)},u=cn(!1),d=cn(0),f=pi(()=>r.files.filter(e=>a(e)&&!i[o(e)])),p=pi(()=>f.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),m=e=>{let t=f.value.indexOf(e);t<0||(d.value=t,u.value=!0)};return(t,n)=>(B(),V(`div`,MUt,[(B(!0),V(Rr,null,fr(e.files,t=>(B(),V(`div`,{key:t.file?.name,class:xe([`file-content`,{"is-file-object":!a(t)||i[o(t)]}])},[a(t)&&!i[o(t)]?(B(),V(`img`,{key:0,alt:t.filename||t.file?.name,class:`file-content-image`,src:t.url||z(Are)(t.file),onClick:e=>m(t),onError:e=>s(t)},null,40,NUt)):a(t)&&i[o(t)]?(B(),V(`div`,PUt,[Xr(z(bie),{class:`file-error-icon`})])):(B(),V(`div`,FUt,[H(`div`,IUt,[Xr(z(Xi),{class:`file-icon`}),H(`span`,LUt,ke(t.filename||t.file?.name),1),H(`span`,RUt,ke(t.file?z(jre)(t.file):t.filename?.split(`.`).pop()||t.mimeType?.split(`/`).pop()),1)]),H(`div`,zUt,ke(z(Mre)(t.file)),1)])),e.readonly?ei(`v-if`,!0):(B(),Kr(z(zie),{key:3,class:`file-delete-icon`,onClick:e=>l(t)},null,8,[`onClick`]))],2))),128)),Xr(jUt,{current:d.value,"onUpdate:current":n[0]||=e=>d.value=e,visible:u.value,"onUpdate:visible":n[1]||=e=>u.value=e,images:p.value},null,8,[`current`,`visible`,`images`])]))}}),VUt=[`onClick`],HUt=$n({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let t=e,n=er(`promptListRef`),{activeIndex:r}=dp({items:pi(()=>t.prompts),onSelect:t.onSelect,menuRef:n});return(t,i)=>(B(),V(`div`,{ref_key:`promptListRef`,ref:n,class:`ai-prompt-list`},[(B(!0),V(Rr,null,fr(e.prompts,(t,n)=>(B(),V(`div`,{key:t,class:xe([`ai-prompt-list-item`,{"is-active":z(r)===n}]),onClick:n=>e.onSelect(t)},ke(t),11,VUt))),128))],512))}}),UUt=[`onClick`],WUt=[`src`,`onError`],GUt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},KUt={class:`ai-skill-list-item-info`},qUt={class:`ai-skill-list-item-name`},JUt=$n({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let t=e,n=Jt(new Set),r=er(`skillListRef`),{activeIndex:i}=dp({items:pi(()=>t.skills),onSelect:t.onSelect,menuRef:r});return Ln(()=>{t.skills,i.value=0}),(t,a)=>(B(),V(`div`,{ref_key:`skillListRef`,ref:r,class:`ai-skill-list`},[(B(!0),V(Rr,null,fr(e.skills,(t,r)=>(B(),V(`div`,{key:t.skill_code,class:xe([`ai-skill-list-item`,{"is-active":z(i)===r}]),onClick:n=>e.onSelect(t)},[t.icon&&!n.has(t.skill_code)?(B(),V(`img`,{key:0,src:t.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>n.add(t.skill_code)},null,40,WUt)):(B(),V(`div`,GUt,ke(t.skill_name?.[0]?.toUpperCase()),1)),H(`div`,KUt,[H(`div`,qUt,ke(t.skill_name),1)])],10,UUt))),128))],512))}}),YUt={class:`ai-slash-item ai-slash-group-title`},XUt=[`onClick`],ZUt=[`onClick`],QUt=[`title`],$Ut=$n({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let t=e,n=er(`menuRef`),r=sn([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),i=cn([]),a=cn([]),{activeIndex:o}=dp({items:i,onSelect:t.onSelect,menuRef:n});Ln(()=>{let e=[],n=[];for(let[r,i]of Object.entries(rUt)){let a=t.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),n.push(...a))}o.value=0,i.value=n,a.value=e});let s=e=>{let t=r.value.findIndex(t=>t===e.type);t===-1?r.value.push(e.type):r.value.splice(t,1)};return(t,l)=>e.resourceList?.length?(B(),V(`div`,{key:0,ref_key:`menuRef`,ref:n,class:`ai-slash-menu`},[(B(!0),V(Rr,null,fr(a.value,(t,n)=>(B(),V(Rr,null,[t.items.length>0?(B(),V(`div`,{key:n,class:`ai-slash-group`},[H(`div`,YUt,[(B(),V(`svg`,{class:`title-icon`,style:ge({transform:r.value.includes(t.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>s(t)},[...l[0]||=[H(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,XUt)),H(`span`,{class:xe(`mark-${t.type}`)},null,2),$r(` `+ke(t.name)+` (`+ke(t.items.length)+`) `,1)]),r.value.includes(t.type)?(B(!0),V(Rr,{key:0},fr(t.items,t=>(B(),V(`div`,{key:t.id,class:xe([`ai-slash-item ai-slash-group-item`,{"is-active":i.value?.[z(o)]?.id===t.id}]),onClick:n=>e.onSelect(t)},[Nn((B(),V(`span`,{class:`ellipsis-text`,title:t.name},[$r(ke(t.name),1)],8,QUt)),[[z(kp),{text:t.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,ZUt))),128)):ei(`v-if`,!0)])):ei(`v-if`,!0)],64))),256))],512)):ei(`v-if`,!0)}}),eWt=(e,t,n,r)=>new m9().delete(n,r),tWt=(e,t,n,r)=>new m9().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),nWt=(e,t,n,r)=>new m9().insert(n,[[{text:r}]]),rWt=(e,t,n,r)=>new m9().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),iWt={class:`ai-slash-input-wrapper`},aWt=[`aria-placeholder`],oWt={key:0},sWt=[`data-tag-type`,`data-tag-value`],cWt={key:1},lWt=$n({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:Bi?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:t,emit:n}){let r=er(`editorRef`),i=er(`tippyRef`),a=n,o=e,s=dn((e,t)=>({get(){return e(),typeof o.modelValue==`string`?d9(o.modelValue):o.modelValue},set(e){a(`update:modelValue`,e,e?.flat()?.filter(e=>e.type===`tag`)?.map(e=>o.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null)?.filter(e=>!!e)||[]),t()}})),l=cn(`slash`),u=cn(``),d=cn([]),f=cn([]),p=cn([]),m,h,g=null,_=null,v=()=>{g!==null&&(clearTimeout(g),g=null),_!==null&&(clearTimeout(_),_=null)},y=()=>document.body,{commandSelection:b,GetCursorPosition:x,GetDocSnapshot:S,docSnapshot:C}=kTe();Rn(()=>o.modelValue,()=>{m.command(S),u9(C.value||[])!==u9(s.value||[])&&m.command(v9,u9(s.value||[]))},{deep:!1});let w=()=>{g!==null&&clearTimeout(g),g=setTimeout(()=>{g=null;let e=D();u.value=e.query||``,e.isActive?(i.value?.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),i.value?.show()):i.value?.hide()},16)},T=e=>{if(a(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`)return e.shiftKey?void 0:(e.preventDefault?.(),!1);e.key===`@`&&(l.value=`slash`,w()),e.key===`/`&&(l.value=`skill`,w()),e.key===`\\`&&(l.value=`prompt`,w())},E=()=>{u.value=``},D=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=l.value===`slash`?`@`:l.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),u=a.match(s);if(!u)return e;let d=u[1]?.slice(1),f=u.index+u[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},O=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),k=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(eWt,[n,t-u.value.length-1],[n,t]),m.command(tWt,[n,t],e),m.command(nWt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()},A=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{if(_=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();r.value&&e&&(t.selectNodeContents(r.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},j=e=>{m.command(v9,e),A()},M=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(eWt,[n,t-u.value.length-1],[n,t]),m.command(rWt,[n,t],e),m.command(nWt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()};Ln(()=>{let e=o.resources?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type))),t=o.skills?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)));u.value?(d.value=e.filter(e=>e.name.toLowerCase().includes(u.value.toLowerCase())),f.value=t.filter(e=>e.skill_name.toLowerCase().includes(u.value.toLowerCase())||e.skill_code.toLowerCase().includes(u.value.toLowerCase())),p.value=o.prompts.filter(e=>e.toLowerCase().includes(u.value.toLowerCase()))):(d.value=e,f.value=t,p.value=o.prompts),!d.value.length&&!f.value.length&&!p.value.length&&i.value?.hide()});let N=(e,t,n,r)=>{if(t.type===`tag`){let t=O(e,n);m.command(eWt,[r,t],[r,t+1])}},P=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),a(`upload`,n))},F=()=>{h?.(),m=XHt({doc:s.value,schema:nUt,onChange:async e=>{s.value=e,w()},onKeyDown:e=>T(e)}),h=m.input(r.value)},I=()=>l.value===`slash`?d.value.length<1?!1:void 0:l.value===`skill`?f.value.length<1?!1:void 0:p.value.length<1?!1:void 0;return sr(()=>{F(),r.value?.addEventListener(`paste`,P)}),lr(()=>{v(),m.command(v9,``),h?.(),r.value?.removeEventListener(`paste`,P)}),t({cleanup:()=>{m.command(v9,``)},focus:A}),(t,n)=>(B(),V(`div`,iWt,[H(`div`,{ref_key:`editorRef`,ref:r,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[s.value?.length&&s.value.some(e=>e.length)?(B(!0),V(Rr,{key:0},fr(s.value,(e,t)=>(B(),V(`div`,{key:t},[e.length?(B(!0),V(Rr,{key:0},fr(e,(n,r)=>(B(),V(Rr,{key:r},[n.type===`text`?(B(),V(`span`,oWt,ke(n.text),1)):n.type===`tag`?(B(),V(`span`,{key:1,class:xe(`mention-tag-${n.data.type}`),contenteditable:`false`,"data-tag-type":n.data.type,"data-tag-value":n.data.value},[$r(ke(n.data.label)+` `,1),Xr(z(yie),{class:`mention-tag-remove-icon`,onClick:i=>N(e,n,r,t)},null,8,[`onClick`])],10,sWt)):ei(`v-if`,!0)],64))),128)):(B(),V(`br`,cWt))]))),128)):ei(`v-if`,!0)],8,aWt),Xr(z(op),{ref_key:`tippyRef`,ref:i,"append-to":y,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":r.value,"z-index":z(rie),onHidden:E,onShow:I},{content:Mn(()=>[l.value===`slash`?(B(),Kr($Ut,{key:0,"on-select":k,"resource-list":d.value},null,8,[`resource-list`])):l.value===`skill`?(B(),Kr(JUt,{key:1,"on-select":M,skills:f.value},null,8,[`skills`])):l.value===`prompt`?(B(),Kr(HUt,{key:2,"on-select":j,prompts:p.value},null,8,[`prompts`])):ei(`v-if`,!0)]),_:1},8,[`trigger-target`,`z-index`])]))}}),uWt={class:`ai-input-attachment`},dWt=$n({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:t}){let n=e,r=t,i=()=>{r(`stopSending`)},a=()=>{n.sendDisabledTip||n.messageState===Ki.Disabled||n.messageState===Ki.Pending||n.messageState===Ki.Streaming||r(`sendMessage`)};return(t,r)=>(B(),V(`div`,uWt,[mr(t.$slots,`default`),mr(t.$slots,`send-icon`,{},()=>[H(`div`,{class:xe([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]]),onClick:a},[e.messageState===z(Ki).Streaming||e.messageState===z(Ki).Pending||e.messageState===z(Ki).Fetching?Nn((B(),Kr(z(Xie),{key:0,onClick:i},null,512)),[[z(sp),{...e.tippyOptions,content:z(Vi)(`停止`),theme:`ai-chat-box`,offset:[0,16]}]]):Nn((B(),Kr(z(Yie),{key:1},null,512)),[[z(sp),{...e.tippyOptions,content:e.sendDisabledTip||(n.messageState===z(Ki).Disabled?void 0:z(Vi)(`发送`)),theme:`ai-chat-box`,offset:[0,16]}]])],2)])]))}}),fWt={key:1,class:`ai-divider`},pWt=$n({__name:`chat-input`,props:br({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:Bi?`Input "/" to trigger skill
3482
3482
  Input "\\" to trigger prompt
3483
3483
  Input "@" to trigger tool and MCP
3484
3484
  Use Shift + Enter to enter a new line`:`输入 "/" 唤出 Skill
@@ -3478,7 +3478,7 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3478
3478
  `),e+n.reduce((e,n)=>e+(h9(n)?n.text:t?t(n):`@${n.data?.label}`),``)),``),d9=e=>e.split(`
3479
3479
  `).map(e=>e?[{text:e,type:`text`}]:[]),f9=1,p9=2,YVt=3,XVt=e=>e._type!==YVt,m9=class e extends Array{static from(t){return new e(...t)}delete(e,t){return this.push({_type:f9,_start:e,_end:t}),this}insert(e,t){return this.push({_type:p9,_pos:e,_fragment:t}),this}select(e,t){return this.push({_type:YVt,_anchor:e,_focus:t}),this}transform(e){return this.reduce((e,t)=>XVt(t)?iHt(e,t):e,e)}},ZVt=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),h9=e=>`text`in e,QVt=e=>h9(e)?e.text.length:1,$Vt=e=>e.reduce((e,t)=>e+QVt(t),0),g9=(e,t)=>{let n=[...e];if(!n.length)n.push(...t);else for(let e of t){let t=n.length-1,r=n[t];h9(e)&&h9(r)?n[t]={text:r.text+e.text}:n.push(e)}return n},_9=(e,t)=>{for(let n=0;n<e.length;n++){let r=e[n],i=QVt(r);if(i>t){let i=e.slice(0,n),a=e.slice(n+1);if(h9(r)){let e=r.text.slice(0,t),n=r.text.slice(t);e&&i.push({text:e}),n&&a.unshift({text:n})}else a.unshift(r);return[i,a]}t-=i}return[e,[]]},eHt=(e,t,n,r)=>{let[i]=n,[a]=r||n,o=_9(e[n[0]],n[1]),s=o[0],l=r?_9(e[r[0]],r[1])[1]:o[1],u=[...t];u.length?(u[0]=g9(s,u[0]),u[u.length-1]=g9(u[u.length-1],l)):u.push(g9(s,l)),e.splice(i,a-i+1,...u)},tHt=(e,t,n)=>s9(t,n)===0?[_9(_9(e[t[0]],n[1])[0],t[1])[1]]:[_9(e[t[0]],t[1])[1],...e.slice(t[0]+1,n[0]),_9(e[n[0]],n[1])[0]],nHt=e=>{switch(e._type){case f9:return c9(e._start,e._end)===1;case p9:return!!u9(e._fragment)}return!0},rHt=(e,t)=>{switch(t._type){case f9:eHt(e,[],t._start,t._end);break;case p9:eHt(e,t._fragment,t._pos);break;default:}},iHt=(e,t)=>{switch(t._type){case f9:{let{_start:n,_end:r}=t;if(c9(e,n)!==1)return c9(r,e)===1?[e[0]+n[0]-r[0],e[1]+(s9(r,e)===0?n[1]-r[1]:0)]:n;break}case p9:{let{_pos:n,_fragment:r}=t,i=r.length,a=i-1;if(c9(e,n)!==1)return[e[0]+a,e[1]+(s9(e,n)===0?$Vt(r[i-1])-(a===0?0:n[1]):0)];break}default:}return e},aHt=(e,t,n)=>{let r=[...e],i=[...t];try{for(let r of n)nHt(r)&&(XVt(r)?(rHt(e,r),t[0]=iHt(t[0],r),t[1]=iHt(t[1],r)):(r._anchor&&(t[0]=r._anchor),r._focus&&(t[1]=r._focus)))}catch(n){console.error(`rollback transaction:`,n),e.length=0,e.push(...r),t[0]=i[0],t[1]=i[1]}},v9=(e,t,n)=>new m9().delete([0,0],[e.length-1,$Vt(e[e.length-1])]).insert([0,0],d9(n)),oHt=Math.min,sHt=typeof queueMicrotask==`function`?queueMicrotask:e=>{Promise.resolve().then(e)},y9,b9,x9,S9,cHt=!1,lHt=!1,uHt,dHt=1,fHt=4,pHt=5,mHt=6,hHt=1,gHt=3,_Ht=8,vHt=e=>e.nodeType===gHt,C9=e=>e.nodeType===hHt,yHt=e=>e.nodeType===_Ht,bHt=new Set([`EMBED`,`IMG`,`PICTURE`,`AUDIO`,`VIDEO`,`SVG`,`CANVAS`,`MATH`,`IFRAME`,`OBJECT`]),xHt=e=>e.contentEditable===`false`||bHt.has(e.tagName),SHt=()=>b9,CHt=()=>x9===1?b9.data.length:+(x9===2),wHt=e=>{y9.currentNode=y9.currentNode.parentNode.children[e]},THt=e=>{let t=e.nextSibling;return!!t&&!yHt(t)},EHt=()=>{for(;;){if(x9===2){let e=b9;for(;(b9=y9.nextNode())&&e.contains(b9););}else b9=y9.nextNode();if(x9=null,!b9)break;if(S9){if(S9.contains(b9)){if(cHt=!0,lHt)break}else if(cHt)break}if(vHt(b9)){let e=b9.data;if(e)return x9=e===`
3480
3480
  `?THt(b9)?3:mHt:1}else if(C9(b9)){if(b9.tagName===`BR`)return x9=THt(b9)?3:pHt;if(xHt(b9))return x9=2;if(uHt(b9))return x9=4}}},DHt=(e,t,{_document:n,_isBlock:r},i)=>{try{return uHt=r,y9=n.createTreeWalker(t,fHt|dHt),i&&(i._startNode&&(y9.currentNode=i._startNode,y9.previousNode()),i._endNode&&(S9=i._endNode),lHt=i._excludeEnd||!1),e(EHt)}finally{y9=b9=x9=S9=null,cHt=lHt=!1}},OHt=new Set([`DIV`,`H1`,`H2`,`H3`,`H4`,`H5`,`H6`,`P`,`PRE`,`LI`,`DT`,`DD`,`TR`]),kHt=e=>OHt.has(e.tagName),AHt=2,jHt=e=>e.ownerDocument,MHt=e=>jHt(e).getSelection(),NHt=(e,t)=>{if(e.rangeCount){let n=e.getRangeAt(0);if(t.contains(n.commonAncestorContainer))return n}},PHt=(e,t,n)=>{let r=MHt(e);r.removeAllRanges(),r.addRange(t),n&&(r.collapseToEnd(),r.extend(t.startContainer,t.startOffset))},FHt=(e,t,[n,r],i)=>{let a=c9(n,r),o=a===0,s=a===-1,l=s?r:n,u=s?n:r;if(l[0]===0&&l[1]===0&&o&&!t.hasChildNodes()){let n=e.createRange();return n.setStart(t,0),n.setEnd(t,0),PHt(t,n),!0}let d=IHt(t,l,i);if(!d)return!1;let f=o?d:IHt(t,u,i);if(!f)return!1;let p=e.createRange(),[m,h]=d,[g,_]=f;return C9(m)?h<1?p.setStartBefore(m):p.setStartAfter(m):p.setStart(m,h),C9(g)?_<1?p.setEndBefore(g):p.setEndAfter(g):p.setEnd(g,_),PHt(t,p,s),!0},IHt=(e,[t,n],r)=>DHt(e=>{let r,i=!1;for(;r=e();)if(r===4)i||(i=!0,t!==0&&wHt(t));else{let e=CHt();if(n<=e)return[SHt(),n];n-=e}},e,r),LHt=(e,t)=>{let n=t;for(;;){let t=n.parentElement;if(t===e)break;n=t}return n},RHt=e=>{let t=0;for(;e=e.previousElementSibling;)t++;return t},w9=(e,t,n,r)=>{let i,a,o=!0;if(e===t&&!t.hasChildNodes())return[0,0];if(C9(t)&&!xHt(t)&&t.hasChildNodes()){let e=oHt(n,t.childNodes.length-1);t=t.childNodes[e],o=e===n,n=0}let s=LHt(e,t);return r._isBlock(s)?(i=s,a=RHt(i)):(i=e,a=0),DHt(e=>{let t,r=0;for(;t=e();)t===3?(a++,r=0):r+=CHt();return[a,r+n]},i,r,{_endNode:t,_excludeEnd:o})},zHt=(e,t,{startOffset:n,startContainer:r,endOffset:i,endContainer:a})=>{let o=w9(e,r,n,t);return[o,r===a&&n===i?o:w9(e,a,i,t)]},BHt=()=>[[0,0],[0,0]],VHt=(e,t)=>e.compareDocumentPosition(t),HHt=(e,t)=>{let n=MHt(e),r=NHt(n,e);if(!r)return BHt();let i=zHt(e,t,r);return(n.anchorNode===n.focusNode?n.anchorOffset>n.focusOffset:(VHt(n.anchorNode,n.focusNode)&AHt)!==0)?[i[1],i[0]]:i},UHt=(e,t,n,r)=>DHt(e=>{let t,i=null,a=``,o=!1,s=[],l=()=>{a&&=(i||=[],i.push({text:a}),``)},u=()=>{l(),!i&&o&&(i=[]),i&&s.push(i),i=null,o=!1};for(;t=e();)if(t===4)u();else if(o=!0,t===1){let e=SHt(),t=e.data;r&&(r._end[0]===e&&(t=t.slice(0,r._end[1])),r._start?.[0]===e&&(t=t.slice(r._start[1]))),a+=t}else if(t===2){l();let e=SHt();if(r&&(r._end[0]===e&&r._end[1]===0||r._start?.[0]===e&&r._start[1]!==0))continue;let t=n(e);t&&i.push({data:t})}else t===3&&u();return u(),s.length||s.push([]),s},e,t,r&&{_startNode:r._start?.[0],_endNode:r._end[0]}),WHt=(e,t,{clientX:n,clientY:r},i)=>{if(e.caretPositionFromPoint){let a=e.caretPositionFromPoint(n,r);if(a)return w9(t,a.offsetNode,a.offset,i)}else if(e.caretRangeFromPoint){let a=e.caretRangeFromPoint(n,r);if(a)return w9(t,a.startContainer,a.startOffset,i)}},GHt=500,KHt=500,qHt=e=>{let t=0,n=0,r=Date.now,i=[e],a=()=>i[t],o=()=>t>0,s=()=>t<i.length-1;return{get:a,set:e=>{i[t]=e},undo:()=>{if(o())return t--,a()},redo:()=>{if(s())return t++,a()},push:e=>{let a=r();t!==0&&a-n<KHt&&t--,n=a,i[++t]=e,i.splice(t+1),t>GHt&&(t--,i.shift())}}},JHt=(e,t)=>{let n=!1,r=[],i=e=>{n&&r.push(...e)},a=new MutationObserver(e=>{i(e),n||t()}),o=()=>{i(a.takeRecords())};return a.observe(e,{characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),{_record(e){!n&&e&&o(),n=e},_flush:()=>(o(),r.splice(0)),_dispose(){r.splice(0),a.disconnect()}}},YHt=e=>m9.from(e.map(e=>e._type===2?{...e,_fragment:[e._fragment.reduce((e,t)=>g9(e,t),[])]}:e)),XHt=()=>{},ZHt=({schema:{single:e,js:t,doc:n,copy:r,paste:i},doc:a,isBlock:o=kHt,onChange:s,onKeyDown:l})=>{let u=BHt(),d=!1,f=XHt,p=()=>m.get()[0],m=qHt([n(a),u]),h=[],g=e=>{d||(h.unshift(e),v(y))},_=new Set,v=e=>{_.has(e)||(_.add(e),sHt(()=>{_.delete(e),e()}))},y=()=>{if(h.length){let n=[...p()],r=[...u],i;for(;i=h.pop();)e&&(i=YHt(i)),aHt(n,r,i);let a=p();ZVt(n,a)||(m.set([a,u]),m.push([n,r]),s(t(n))),u=r}};return{input:n=>{if(!(window.InputEvent&&typeof InputEvent.prototype.getTargetRanges==`function`))return console.error(`beforeinput event is not supported.`),XHt;let{contentEditable:a,role:h,ariaMultiLine:_,ariaReadOnly:v}=n,y=n.style.whiteSpace;n.role=`textbox`,n.style.whiteSpace=`pre-wrap`,e||(n.ariaMultiLine=`true`);let b=!1,x=!1,S=null,C=!1,w=!1,T=!1,E=jHt(n),D={_document:E,_isBlock:o};f=()=>{n.contentEditable=d?`false`:`true`,n.ariaReadOnly=d?`true`:null},f();let O=JHt(n,()=>{w&&FHt(E,n,u,D)}),k=()=>{u=HHt(n,D)},A=()=>{let e=O._flush();if(O._record(!1),e.length){let t;for(;t=e.pop();)if(t.type===`childList`){let{target:e,removedNodes:n,addedNodes:r,nextSibling:i}=t;for(let t=n.length-1;t>=0;t--)e.insertBefore(n[t],i);for(let t=r.length-1;t>=0;t--)e.removeChild(r[t])}else t.target.nodeValue=t.oldValue;O._flush(),x=FHt(E,n,u,D)}g(S),C=!1,S=null},j=e=>{if(!C){if(l?.(e)){e.preventDefault();return}if((e.metaKey||e.ctrlKey)&&!e.altKey&&e.code===`KeyZ`&&(e.preventDefault(),O._record(!1),!d)){let n=e.shiftKey?m.redo():m.undo();n&&(s(t(n[0])),u=n[1])}}},M=()=>{C||A()},N=e=>{e.preventDefault();let t=e.inputType;if(t.startsWith(`format`)||t===`historyUndo`||t===`historyRedo`)return;C?O._record(!0):k();let r=e.getTargetRanges()[0];if(r){let i=zHt(n,D,r),a=t===`insertParagraph`||t===`insertLineBreak`?`
3481
- `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new m9().select(...u),c9(...i)!==0&&S.delete(...i),a&&S.insert(i[0],d9(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),c9(...u)!==0&&r(e,tHt(p(),...l9(u)),n)},te=e=>{e.preventDefault(),ee(e.clipboardData)},ne=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new m9().delete(...l9(u))))},re=e=>{e.preventDefault();let[t,n]=l9(u);g(new m9().delete(t,n).insert(t,i(e.clipboardData,D)))},ie=e=>{e.preventDefault();let t=e.dataTransfer,r=WHt(E,n,e,D);if(t&&r){let e=new m9;T&&e.delete(...l9(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ae=e=>{T=!0,ee(e.dataTransfer)},oe=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,te),n.addEventListener(`cut`,ne),n.addEventListener(`paste`,re),n.addEventListener(`drop`,ie),n.addEventListener(`dragstart`,ae),n.addEventListener(`dragend`,oe),()=>{b||(b=!0,f=XHt,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,te),n.removeEventListener(`cut`,ne),n.removeEventListener(`paste`,re),n.removeEventListener(`drop`,ie),n.removeEventListener(`dragstart`,ae),n.removeEventListener(`dragend`,oe))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},QHt=()=>``,$Ht=({is:e,data:t,plain:n=QHt})=>({is:e,data:t,plain:n}),eUt=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(h9(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:{...n}}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,u9(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=NHt(MHt(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])yHt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return UHt(e,t,o)}return d9(e.getData(`text/plain`))}}},tUt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},nUt=e=>u9(e,tUt),rUt=eUt({multiline:!0,void:{tag:$Ht({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),iUt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},T9=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),E9=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),aUt={class:`ai-file-upload-btn`},oUt=[`accept`],sUt=tr({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:t}){let n=t,r=nr(`fileInputRef`),i=()=>{r.value?.click()},a=e=>{let t=e.target,r=t.files;if(r?.length){let e=(cie/(1024*1024)).toFixed(1),t=Array.from(r),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&Nd({message:Ri(a,e,Hi),theme:`error`}),i.length&&n(`upload`,i)}t.value=``};return(t,n)=>(B(),V(`div`,aUt,[H(`input`,{ref_key:`fileInputRef`,ref:r,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:a},null,40,oUt),Fn((B(),V(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:i},[gr(t.$slots,`default`,{},()=>[Qr(z(zie))])])),[[z(lp),{...e.tippyOptions,content:z(Ui)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]}]])]))}}),cUt={class:`ai-cite-content`},lUt={class:`ai-cite-content-text`},uUt=tr({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(t,n)=>(B(),V(`div`,cUt,[Qr(z(iae)),H(`span`,lUt,Ae(e.content),1),e.onClose?(B(),Jr(z(ra),{key:0,onClick:n[0]||=t=>e.onClose?.(e.content)})):ni(`v-if`,!0)]))}}),dUt={class:`ai-image-preview-toolbar`},fUt={class:`ai-image-preview-toolbar-inner`},pUt={key:0,class:`ai-image-preview-toolbar-pages`},mUt={key:1,class:`ai-image-preview-toolbar-divider`},hUt=[`data-tooltip`],gUt=[`data-tooltip`],_Ut=[`data-tooltip`],vUt=[`data-tooltip`],yUt=[`data-tooltip`],bUt={class:`ai-image-preview-toolbar-info`},xUt=tr({name:`PreviewToolbar`,__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:t}){let n=t;return(t,r)=>(B(),V(`div`,dUt,[H(`div`,fUt,[e.isMultiple?(B(),V(`span`,pUt,Ae(e.activeIndex+1)+` / `+Ae(e.total),1)):ni(`v-if`,!0),e.isMultiple?(B(),V(`span`,mUt)):ni(`v-if`,!0),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`缩小`),onClick:r[0]||=e=>n(`zoomOut`)},[Qr(z(Oie))],8,hUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`放大`),onClick:r[1]||=e=>n(`zoomIn`)},[Qr(z(Die))],8,gUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`旋转`),onClick:r[2]||=e=>n(`rotate`)},[Qr(z(kie))],8,_Ut),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`重置`),onClick:r[3]||=e=>n(`reset`)},[Qr(z(Aie))],8,vUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`下载`),onClick:r[4]||=e=>n(`download`)},[Qr(z(jie))],8,yUt),t.$slots.extra?(B(),V(Br,{key:2},[r[5]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),gr(t.$slots,`extra`)],64)):ni(`v-if`,!0),e.showInfo&&e.currentImageInfo?(B(),V(Br,{key:3},[r[7]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),H(`div`,bUt,[Qr(z(Fie),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,Ae(e.currentImageInfo.width)+` px `+Ae(z(Ui)(`宽`)),1),e.currentImageInfo.resolution?(B(),V(Br,{key:0},[r[6]||=H(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),Qr(z(Fie),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,Ae(e.currentImageInfo.resolution),1)],64)):ni(`v-if`,!0)])],64)):ni(`v-if`,!0)])]))}}),SUt=.15,CUt=.1,wUt=10;function TUt(){let e=un(1),t=un(0),n=un(0),r=un(0),i=un(!1),a=un(!1),o=0,s=0,l=0,u=0,d=hi(()=>({transform:`translate(${n.value}px, ${r.value}px) scale(${e.value}) rotate(${t.value}deg)`,cursor:i.value?`grabbing`:`grab`,transition:i.value||a.value?`none`:`transform 0.3s ease`})),f=()=>{a.value=!0,e.value=1,t.value=0,n.value=0,r.value=0,requestAnimationFrame(()=>{a.value=!1})},p=()=>{e.value=Math.min(wUt,e.value*(1+SUt))},m=()=>{e.value=Math.max(CUt,e.value*(1-SUt))};return{imageStyle:d,resetTransform:f,zoomIn:p,zoomOut:m,rotateCW:()=>{t.value+=90},handleWheel:e=>{e.deltaY<0?p():m()},handleDragStart:e=>{if(e.button!==0)return;i.value=!0,o=e.clientX,s=e.clientY,l=n.value,u=r.value;let t=e=>{i.value&&(n.value=l+(e.clientX-o),r.value=u+(e.clientY-s))},a=()=>{i.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,a)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,a)}}}function EUt(e){let{visible:t,onClose:n,onPrev:r,onNext:i}=e,a=e=>{if(t.value)switch(e.key){case`Escape`:n();break;case`ArrowLeft`:r?.();break;case`ArrowRight`:i?.();break}},o=()=>{typeof document>`u`||(document.addEventListener(`keydown`,a),document.body.style.overflow=`hidden`)},s=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,a),document.body.style.overflow=``)};Bn(t,e=>{e?o():s()},{immediate:!0}),ur(()=>{s()})}var DUt=[`src`],OUt={key:1,class:`ai-image-preview-error`},kUt={class:`ai-image-preview-error-text`},AUt={key:2,class:`ai-image-preview-loading`},jUt=[`src`],MUt=tr({name:`ImagePreview`,__name:`image-preview`,props:Sr({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:{type:Boolean,required:!0},visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let t=e,n=Ar(e,`visible`),r=Ar(e,`current`),{imageStyle:i,resetTransform:a,zoomIn:o,zoomOut:s,rotateCW:l,handleWheel:u,handleDragStart:d}=TUt(),f=un(`loading`),p=[],m=()=>{p.forEach(e=>URL.revokeObjectURL(e)),p.length=0},h=e=>{let t=URL.createObjectURL(e);return p.push(t),{url:t,name:e.name,file:e}},g=hi(()=>n.value?(m(),t.images.map(e=>e instanceof File?h(e):typeof e==`string`?{url:e}:e.file&&!e.url?{...e,url:h(e.file).url}:e)):(m(),[]));ur(m);let _=hi(()=>g.value[r.value]??{url:``}),v=hi(()=>g.value.length>1),y=hi(()=>{let e=_.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),b=()=>{n.value=!1},x=()=>{t.maskClosable&&b()},S=e=>{r.value=e,a(),f.value=`loading`},C=()=>{S(r.value>0?r.value-1:g.value.length-1)},w=()=>{S(r.value<g.value.length-1?r.value+1:0)},T=()=>{let e=_.value,n=e.downloadUrl||e.url;if(t.onDownload){t.onDownload(n);return}let r=document.createElement(`a`);r.href=n,r.download=e.name||n.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},E=()=>{f.value=`loaded`},D=()=>{f.value=`error`};return EUt({visible:n,onClose:b,onPrev:()=>v.value&&C(),onNext:()=>v.value&&w()}),(t,p)=>(B(),Jr(Kn,{to:`body`},[Qr(xi,{name:`ai-image-preview-fade`},{default:Pn(()=>[n.value?(B(),V(`div`,{key:0,class:`ai-image-preview`,onWheel:p[1]||=Fi((...e)=>z(u)&&z(u)(...e),[`prevent`])},[H(`div`,{class:`ai-image-preview-close`,onClick:b},[Qr(z(Mie),{class:`ai-image-preview-close-icon`})]),v.value?(B(),V(Br,{key:0},[H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:C},[Qr(z(ta),{class:`ai-image-preview-arrow-icon`})]),H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:w},[Qr(z(Nie),{class:`ai-image-preview-arrow-icon`})])],64)):ni(`v-if`,!0),H(`div`,{class:`ai-image-preview-body`,onClick:Fi(x,[`self`]),onMousedown:p[0]||=(...e)=>z(d)&&z(d)(...e)},[f.value===`error`?ni(`v-if`,!0):(B(),V(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:_.value.url,style:_e(z(i)),onError:D,onLoad:E},null,44,DUt)),f.value===`error`?(B(),V(`div`,OUt,[Qr(z(Pie),{class:`ai-image-preview-error-icon`}),H(`p`,kUt,Ae(z(Ui)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):ni(`v-if`,!0),f.value===`loading`?(B(),V(`div`,AUt,[_.value.thumbnailUrl?(B(),V(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:_.value.thumbnailUrl,style:_e(z(i))},null,12,jUt)):ni(`v-if`,!0)])):ni(`v-if`,!0)],32),Qr(xUt,{"active-index":r.value,"current-image-info":y.value,"is-multiple":v.value,"show-info":e.showInfo,total:g.value.length,onDownload:T,onReset:z(a),onRotate:z(l),onZoomIn:z(o),onZoomOut:z(s)},hr({_:2},[t.$slots.extra?{name:`extra`,fn:Pn(()=>[gr(t.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):ni(`v-if`,!0)]),_:3})]))}}),NUt={class:`ai-files-content`},PUt=[`alt`,`src`,`onClick`,`onError`],FUt={key:1,class:`file-content-image image-error`},IUt={key:2,class:`file-content-object`},LUt={class:`file-description`},RUt={class:`file-name`},zUt={class:`file-type`},BUt={class:`file-size`},VUt=tr({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:t}){let n=t,r=e,i=Yt({}),a=e=>e.url?!0:Ore(e.mimeType||e.file?.type),o=e=>e.url||e.file?.name||``,s=e=>{i[o(e)]=!0},l=e=>{n(`deleteFile`,e)},u=un(!1),d=un(0),f=hi(()=>r.files.filter(e=>a(e)&&!i[o(e)])),p=hi(()=>f.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),m=e=>{let t=f.value.indexOf(e);t<0||(d.value=t,u.value=!0)};return(t,n)=>(B(),V(`div`,NUt,[(B(!0),V(Br,null,mr(e.files,t=>(B(),V(`div`,{key:t.file?.name,class:Se([`file-content`,{"is-file-object":!a(t)||i[o(t)]}])},[a(t)&&!i[o(t)]?(B(),V(`img`,{key:0,alt:t.filename||t.file?.name,class:`file-content-image`,src:t.url||z(kre)(t.file),onClick:e=>m(t),onError:e=>s(t)},null,40,PUt)):a(t)&&i[o(t)]?(B(),V(`div`,FUt,[Qr(z(yie),{class:`file-error-icon`})])):(B(),V(`div`,IUt,[H(`div`,LUt,[Qr(z(Qi),{class:`file-icon`}),H(`span`,RUt,Ae(t.filename||t.file?.name),1),H(`span`,zUt,Ae(t.file?z(Are)(t.file):t.filename?.split(`.`).pop()||t.mimeType?.split(`/`).pop()),1)]),H(`div`,BUt,Ae(z(jre)(t.file)),1)])),e.readonly?ni(`v-if`,!0):(B(),Jr(z(Rie),{key:3,class:`file-delete-icon`,onClick:e=>l(t)},null,8,[`onClick`]))],2))),128)),Qr(MUt,{current:d.value,"onUpdate:current":n[0]||=e=>d.value=e,visible:u.value,"onUpdate:visible":n[1]||=e=>u.value=e,images:p.value},null,8,[`current`,`visible`,`images`])]))}}),HUt=[`onClick`],UUt=tr({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let t=e,n=nr(`promptListRef`),{activeIndex:r}=pp({items:hi(()=>t.prompts),onSelect:t.onSelect,menuRef:n});return(t,i)=>(B(),V(`div`,{ref_key:`promptListRef`,ref:n,class:`ai-prompt-list`},[(B(!0),V(Br,null,mr(e.prompts,(t,n)=>(B(),V(`div`,{key:t,class:Se([`ai-prompt-list-item`,{"is-active":z(r)===n}]),onClick:n=>e.onSelect(t)},Ae(t),11,HUt))),128))],512))}}),WUt=[`onClick`],GUt=[`src`,`onError`],KUt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},qUt={class:`ai-skill-list-item-info`},JUt={class:`ai-skill-list-item-name`},YUt=tr({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let t=e,n=Yt(new Set),r=nr(`skillListRef`),{activeIndex:i}=pp({items:hi(()=>t.skills),onSelect:t.onSelect,menuRef:r});return zn(()=>{t.skills,i.value=0}),(t,a)=>(B(),V(`div`,{ref_key:`skillListRef`,ref:r,class:`ai-skill-list`},[(B(!0),V(Br,null,mr(e.skills,(t,r)=>(B(),V(`div`,{key:t.skill_code,class:Se([`ai-skill-list-item`,{"is-active":z(i)===r}]),onClick:n=>e.onSelect(t)},[t.icon&&!n.has(t.skill_code)?(B(),V(`img`,{key:0,src:t.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>n.add(t.skill_code)},null,40,GUt)):(B(),V(`div`,KUt,Ae(t.skill_name?.[0]?.toUpperCase()),1)),H(`div`,qUt,[H(`div`,JUt,Ae(t.skill_name),1)])],10,WUt))),128))],512))}}),XUt={class:`ai-slash-item ai-slash-group-title`},ZUt=[`onClick`],QUt=[`onClick`],$Ut=[`title`],eWt=tr({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let t=e,n=nr(`menuRef`),r=ln([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),i=un([]),a=un([]),{activeIndex:o}=pp({items:i,onSelect:t.onSelect,menuRef:n});zn(()=>{let e=[],n=[];for(let[r,i]of Object.entries(iUt)){let a=t.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),n.push(...a))}o.value=0,i.value=n,a.value=e});let s=e=>{let t=r.value.findIndex(t=>t===e.type);t===-1?r.value.push(e.type):r.value.splice(t,1)};return(t,l)=>e.resourceList?.length?(B(),V(`div`,{key:0,ref_key:`menuRef`,ref:n,class:`ai-slash-menu`},[(B(!0),V(Br,null,mr(a.value,(t,n)=>(B(),V(Br,null,[t.items.length>0?(B(),V(`div`,{key:n,class:`ai-slash-group`},[H(`div`,XUt,[(B(),V(`svg`,{class:`title-icon`,style:_e({transform:r.value.includes(t.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>s(t)},[...l[0]||=[H(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,ZUt)),H(`span`,{class:Se(`mark-${t.type}`)},null,2),ti(` `+Ae(t.name)+` (`+Ae(t.items.length)+`) `,1)]),r.value.includes(t.type)?(B(!0),V(Br,{key:0},mr(t.items,t=>(B(),V(`div`,{key:t.id,class:Se([`ai-slash-item ai-slash-group-item`,{"is-active":i.value?.[z(o)]?.id===t.id}]),onClick:n=>e.onSelect(t)},[Fn((B(),V(`span`,{class:`ellipsis-text`,title:t.name},[ti(Ae(t.name),1)],8,$Ut)),[[z(jp),{text:t.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,QUt))),128)):ni(`v-if`,!0)])):ni(`v-if`,!0)],64))),256))],512)):ni(`v-if`,!0)}}),tWt=(e,t,n,r)=>new m9().delete(n,r),nWt=(e,t,n,r)=>new m9().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),rWt=(e,t,n,r)=>new m9().insert(n,[[{text:r}]]),iWt=(e,t,n,r)=>new m9().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),aWt={class:`ai-slash-input-wrapper`},oWt=[`aria-placeholder`],sWt={key:0},cWt=[`data-tag-type`,`data-tag-value`],lWt={key:1},uWt=tr({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:Hi?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:t,emit:n}){let r=nr(`editorRef`),i=nr(`tippyRef`),a=n,o=e,s=pn((e,t)=>({get(){return e(),typeof o.modelValue==`string`?d9(o.modelValue):o.modelValue},set(e){a(`update:modelValue`,e,e?.flat()?.filter(e=>e.type===`tag`)?.map(e=>o.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null)?.filter(e=>!!e)||[]),t()}})),l=un(`slash`),u=un(``),d=un([]),f=un([]),p=un([]),m,h,g=null,_=null,v=()=>{g!==null&&(clearTimeout(g),g=null),_!==null&&(clearTimeout(_),_=null)},y=()=>document.body,{commandSelection:b,GetCursorPosition:x,GetDocSnapshot:S,docSnapshot:C}=OTe();Bn(()=>o.modelValue,()=>{m.command(S),u9(C.value||[])!==u9(s.value||[])&&m.command(v9,u9(s.value||[]))},{deep:!1});let w=()=>{g!==null&&clearTimeout(g),g=setTimeout(()=>{g=null;let e=D();u.value=e.query||``,e.isActive?(i.value?.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),i.value?.show()):i.value?.hide()},16)},T=e=>{if(a(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`)return e.shiftKey?void 0:(e.preventDefault?.(),!1);e.key===`@`&&(l.value=`slash`,w()),e.key===`/`&&(l.value=`skill`,w()),e.key===`\\`&&(l.value=`prompt`,w())},E=()=>{u.value=``},D=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=l.value===`slash`?`@`:l.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),u=a.match(s);if(!u)return e;let d=u[1]?.slice(1),f=u.index+u[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},O=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),k=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(tWt,[n,t-u.value.length-1],[n,t]),m.command(nWt,[n,t],e),m.command(rWt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()},A=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{if(_=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();r.value&&e&&(t.selectNodeContents(r.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},j=e=>{m.command(v9,e),A()},M=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(tWt,[n,t-u.value.length-1],[n,t]),m.command(iWt,[n,t],e),m.command(rWt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()};zn(()=>{let e=o.resources?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type))),t=o.skills?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)));u.value?(d.value=e.filter(e=>e.name.toLowerCase().includes(u.value.toLowerCase())),f.value=t.filter(e=>e.skill_name.toLowerCase().includes(u.value.toLowerCase())||e.skill_code.toLowerCase().includes(u.value.toLowerCase())),p.value=o.prompts.filter(e=>e.toLowerCase().includes(u.value.toLowerCase()))):(d.value=e,f.value=t,p.value=o.prompts),!d.value.length&&!f.value.length&&!p.value.length&&i.value?.hide()});let N=(e,t,n,r)=>{if(t.type===`tag`){let t=O(e,n);m.command(tWt,[r,t],[r,t+1])}},P=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),a(`upload`,n))},F=()=>{h?.(),m=ZHt({doc:s.value,schema:rUt,onChange:async e=>{s.value=e,w()},onKeyDown:e=>T(e)}),h=m.input(r.value)},I=()=>l.value===`slash`?d.value.length<1?!1:void 0:l.value===`skill`?f.value.length<1?!1:void 0:p.value.length<1?!1:void 0;return lr(()=>{F(),r.value?.addEventListener(`paste`,P)}),dr(()=>{v(),m.command(v9,``),h?.(),r.value?.removeEventListener(`paste`,P)}),t({cleanup:()=>{m.command(v9,``)},focus:A}),(t,n)=>(B(),V(`div`,aWt,[H(`div`,{ref_key:`editorRef`,ref:r,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[s.value?.length&&s.value.some(e=>e.length)?(B(!0),V(Br,{key:0},mr(s.value,(e,t)=>(B(),V(`div`,{key:t},[e.length?(B(!0),V(Br,{key:0},mr(e,(n,r)=>(B(),V(Br,{key:r},[n.type===`text`?(B(),V(`span`,sWt,Ae(n.text),1)):n.type===`tag`?(B(),V(`span`,{key:1,class:Se(`mention-tag-${n.data.type}`),contenteditable:`false`,"data-tag-type":n.data.type,"data-tag-value":n.data.value},[ti(Ae(n.data.label)+` `,1),Qr(z(vie),{class:`mention-tag-remove-icon`,onClick:i=>N(e,n,r,t)},null,8,[`onClick`])],10,cWt)):ni(`v-if`,!0)],64))),128)):(B(),V(`br`,lWt))]))),128)):ni(`v-if`,!0)],8,oWt),Qr(z(cp),{ref_key:`tippyRef`,ref:i,"append-to":y,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":r.value,"z-index":z(nie),onHidden:E,onShow:I},{content:Pn(()=>[l.value===`slash`?(B(),Jr(eWt,{key:0,"on-select":k,"resource-list":d.value},null,8,[`resource-list`])):l.value===`skill`?(B(),Jr(YUt,{key:1,"on-select":M,skills:f.value},null,8,[`skills`])):l.value===`prompt`?(B(),Jr(UUt,{key:2,"on-select":j,prompts:p.value},null,8,[`prompts`])):ni(`v-if`,!0)]),_:1},8,[`trigger-target`,`z-index`])]))}}),dWt={class:`ai-input-attachment`},fWt=tr({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:t}){let n=e,r=t,i=()=>{r(`stopSending`)},a=()=>{n.sendDisabledTip||n.messageState===Ji.Disabled||n.messageState===Ji.Pending||n.messageState===Ji.Streaming||r(`sendMessage`)};return(t,r)=>(B(),V(`div`,dWt,[gr(t.$slots,`default`),gr(t.$slots,`send-icon`,{},()=>[H(`div`,{class:Se([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]])},[e.messageState===z(Ji).Streaming||e.messageState===z(Ji).Pending||e.messageState===z(Ji).Fetching?Fn((B(),Jr(z(Yie),{key:0,onClick:i},null,512)),[[z(lp),{...e.tippyOptions,content:z(Ui)(`停止`),theme:`ai-chat-box`,offset:[0,16]}]]):Fn((B(),Jr(z(Jie),{key:1,onClick:a},null,512)),[[z(lp),{...e.tippyOptions,content:e.sendDisabledTip||(n.messageState===z(Ji).Disabled?void 0:z(Ui)(`发送`)),theme:`ai-chat-box`,offset:[0,16]}]])],2)])]))}}),pWt={key:1,class:`ai-divider`},mWt=tr({__name:`chat-input`,props:Sr({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:Hi?`Input "/" to trigger skill
3481
+ `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new m9().select(...u),c9(...i)!==0&&S.delete(...i),a&&S.insert(i[0],d9(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),c9(...u)!==0&&r(e,tHt(p(),...l9(u)),n)},te=e=>{e.preventDefault(),ee(e.clipboardData)},ne=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new m9().delete(...l9(u))))},re=e=>{e.preventDefault();let[t,n]=l9(u);g(new m9().delete(t,n).insert(t,i(e.clipboardData,D)))},ie=e=>{e.preventDefault();let t=e.dataTransfer,r=WHt(E,n,e,D);if(t&&r){let e=new m9;T&&e.delete(...l9(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ae=e=>{T=!0,ee(e.dataTransfer)},oe=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,te),n.addEventListener(`cut`,ne),n.addEventListener(`paste`,re),n.addEventListener(`drop`,ie),n.addEventListener(`dragstart`,ae),n.addEventListener(`dragend`,oe),()=>{b||(b=!0,f=XHt,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,te),n.removeEventListener(`cut`,ne),n.removeEventListener(`paste`,re),n.removeEventListener(`drop`,ie),n.removeEventListener(`dragstart`,ae),n.removeEventListener(`dragend`,oe))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},QHt=()=>``,$Ht=({is:e,data:t,plain:n=QHt})=>({is:e,data:t,plain:n}),eUt=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(h9(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:{...n}}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,u9(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=NHt(MHt(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])yHt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return UHt(e,t,o)}return d9(e.getData(`text/plain`))}}},tUt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},nUt=e=>u9(e,tUt),rUt=eUt({multiline:!0,void:{tag:$Ht({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),iUt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},T9=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),E9=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),aUt={class:`ai-file-upload-btn`},oUt=[`accept`],sUt=tr({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:t}){let n=t,r=nr(`fileInputRef`),i=()=>{r.value?.click()},a=e=>{let t=e.target,r=t.files;if(r?.length){let e=(cie/(1024*1024)).toFixed(1),t=Array.from(r),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&Nd({message:Ri(a,e,Hi),theme:`error`}),i.length&&n(`upload`,i)}t.value=``};return(t,n)=>(B(),V(`div`,aUt,[H(`input`,{ref_key:`fileInputRef`,ref:r,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:a},null,40,oUt),Fn((B(),V(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:i},[gr(t.$slots,`default`,{},()=>[Qr(z(zie))])])),[[z(lp),{...e.tippyOptions,content:z(Ui)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]}]])]))}}),cUt={class:`ai-cite-content`},lUt={class:`ai-cite-content-text`},uUt=tr({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(t,n)=>(B(),V(`div`,cUt,[Qr(z(iae)),H(`span`,lUt,Ae(e.content),1),e.onClose?(B(),Jr(z(ra),{key:0,onClick:n[0]||=t=>e.onClose?.(e.content)})):ni(`v-if`,!0)]))}}),dUt={class:`ai-image-preview-toolbar`},fUt={class:`ai-image-preview-toolbar-inner`},pUt={key:0,class:`ai-image-preview-toolbar-pages`},mUt={key:1,class:`ai-image-preview-toolbar-divider`},hUt=[`data-tooltip`],gUt=[`data-tooltip`],_Ut=[`data-tooltip`],vUt=[`data-tooltip`],yUt=[`data-tooltip`],bUt={class:`ai-image-preview-toolbar-info`},xUt=tr({name:`PreviewToolbar`,__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:t}){let n=t;return(t,r)=>(B(),V(`div`,dUt,[H(`div`,fUt,[e.isMultiple?(B(),V(`span`,pUt,Ae(e.activeIndex+1)+` / `+Ae(e.total),1)):ni(`v-if`,!0),e.isMultiple?(B(),V(`span`,mUt)):ni(`v-if`,!0),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`缩小`),onClick:r[0]||=e=>n(`zoomOut`)},[Qr(z(Oie))],8,hUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`放大`),onClick:r[1]||=e=>n(`zoomIn`)},[Qr(z(Die))],8,gUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`旋转`),onClick:r[2]||=e=>n(`rotate`)},[Qr(z(kie))],8,_Ut),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`重置`),onClick:r[3]||=e=>n(`reset`)},[Qr(z(Aie))],8,vUt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Ui)(`下载`),onClick:r[4]||=e=>n(`download`)},[Qr(z(jie))],8,yUt),t.$slots.extra?(B(),V(Br,{key:2},[r[5]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),gr(t.$slots,`extra`)],64)):ni(`v-if`,!0),e.showInfo&&e.currentImageInfo?(B(),V(Br,{key:3},[r[7]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),H(`div`,bUt,[Qr(z(Fie),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,Ae(e.currentImageInfo.width)+` px `+Ae(z(Ui)(`宽`)),1),e.currentImageInfo.resolution?(B(),V(Br,{key:0},[r[6]||=H(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),Qr(z(Fie),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,Ae(e.currentImageInfo.resolution),1)],64)):ni(`v-if`,!0)])],64)):ni(`v-if`,!0)])]))}}),SUt=.15,CUt=.1,wUt=10;function TUt(){let e=un(1),t=un(0),n=un(0),r=un(0),i=un(!1),a=un(!1),o=0,s=0,l=0,u=0,d=hi(()=>({transform:`translate(${n.value}px, ${r.value}px) scale(${e.value}) rotate(${t.value}deg)`,cursor:i.value?`grabbing`:`grab`,transition:i.value||a.value?`none`:`transform 0.3s ease`})),f=()=>{a.value=!0,e.value=1,t.value=0,n.value=0,r.value=0,requestAnimationFrame(()=>{a.value=!1})},p=()=>{e.value=Math.min(wUt,e.value*(1+SUt))},m=()=>{e.value=Math.max(CUt,e.value*(1-SUt))};return{imageStyle:d,resetTransform:f,zoomIn:p,zoomOut:m,rotateCW:()=>{t.value+=90},handleWheel:e=>{e.deltaY<0?p():m()},handleDragStart:e=>{if(e.button!==0)return;i.value=!0,o=e.clientX,s=e.clientY,l=n.value,u=r.value;let t=e=>{i.value&&(n.value=l+(e.clientX-o),r.value=u+(e.clientY-s))},a=()=>{i.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,a)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,a)}}}function EUt(e){let{visible:t,onClose:n,onPrev:r,onNext:i}=e,a=e=>{if(t.value)switch(e.key){case`Escape`:n();break;case`ArrowLeft`:r?.();break;case`ArrowRight`:i?.();break}},o=()=>{typeof document>`u`||(document.addEventListener(`keydown`,a),document.body.style.overflow=`hidden`)},s=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,a),document.body.style.overflow=``)};Bn(t,e=>{e?o():s()},{immediate:!0}),ur(()=>{s()})}var DUt=[`src`],OUt={key:1,class:`ai-image-preview-error`},kUt={class:`ai-image-preview-error-text`},AUt={key:2,class:`ai-image-preview-loading`},jUt=[`src`],MUt=tr({name:`ImagePreview`,__name:`image-preview`,props:Sr({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:{type:Boolean,required:!0},visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let t=e,n=Ar(e,`visible`),r=Ar(e,`current`),{imageStyle:i,resetTransform:a,zoomIn:o,zoomOut:s,rotateCW:l,handleWheel:u,handleDragStart:d}=TUt(),f=un(`loading`),p=[],m=()=>{p.forEach(e=>URL.revokeObjectURL(e)),p.length=0},h=e=>{let t=URL.createObjectURL(e);return p.push(t),{url:t,name:e.name,file:e}},g=hi(()=>n.value?(m(),t.images.map(e=>e instanceof File?h(e):typeof e==`string`?{url:e}:e.file&&!e.url?{...e,url:h(e.file).url}:e)):(m(),[]));ur(m);let _=hi(()=>g.value[r.value]??{url:``}),v=hi(()=>g.value.length>1),y=hi(()=>{let e=_.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),b=()=>{n.value=!1},x=()=>{t.maskClosable&&b()},S=e=>{r.value=e,a(),f.value=`loading`},C=()=>{S(r.value>0?r.value-1:g.value.length-1)},w=()=>{S(r.value<g.value.length-1?r.value+1:0)},T=()=>{let e=_.value,n=e.downloadUrl||e.url;if(t.onDownload){t.onDownload(n);return}let r=document.createElement(`a`);r.href=n,r.download=e.name||n.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},E=()=>{f.value=`loaded`},D=()=>{f.value=`error`};return EUt({visible:n,onClose:b,onPrev:()=>v.value&&C(),onNext:()=>v.value&&w()}),(t,p)=>(B(),Jr(Kn,{to:`body`},[Qr(xi,{name:`ai-image-preview-fade`},{default:Pn(()=>[n.value?(B(),V(`div`,{key:0,class:`ai-image-preview`,onWheel:p[1]||=Fi((...e)=>z(u)&&z(u)(...e),[`prevent`])},[H(`div`,{class:`ai-image-preview-close`,onClick:b},[Qr(z(Mie),{class:`ai-image-preview-close-icon`})]),v.value?(B(),V(Br,{key:0},[H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:C},[Qr(z(ta),{class:`ai-image-preview-arrow-icon`})]),H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:w},[Qr(z(Nie),{class:`ai-image-preview-arrow-icon`})])],64)):ni(`v-if`,!0),H(`div`,{class:`ai-image-preview-body`,onClick:Fi(x,[`self`]),onMousedown:p[0]||=(...e)=>z(d)&&z(d)(...e)},[f.value===`error`?ni(`v-if`,!0):(B(),V(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:_.value.url,style:_e(z(i)),onError:D,onLoad:E},null,44,DUt)),f.value===`error`?(B(),V(`div`,OUt,[Qr(z(Pie),{class:`ai-image-preview-error-icon`}),H(`p`,kUt,Ae(z(Ui)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):ni(`v-if`,!0),f.value===`loading`?(B(),V(`div`,AUt,[_.value.thumbnailUrl?(B(),V(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:_.value.thumbnailUrl,style:_e(z(i))},null,12,jUt)):ni(`v-if`,!0)])):ni(`v-if`,!0)],32),Qr(xUt,{"active-index":r.value,"current-image-info":y.value,"is-multiple":v.value,"show-info":e.showInfo,total:g.value.length,onDownload:T,onReset:z(a),onRotate:z(l),onZoomIn:z(o),onZoomOut:z(s)},hr({_:2},[t.$slots.extra?{name:`extra`,fn:Pn(()=>[gr(t.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):ni(`v-if`,!0)]),_:3})]))}}),NUt={class:`ai-files-content`},PUt=[`alt`,`src`,`onClick`,`onError`],FUt={key:1,class:`file-content-image image-error`},IUt={key:2,class:`file-content-object`},LUt={class:`file-description`},RUt={class:`file-name`},zUt={class:`file-type`},BUt={class:`file-size`},VUt=tr({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:t}){let n=t,r=e,i=Yt({}),a=e=>e.url?!0:Ore(e.mimeType||e.file?.type),o=e=>e.url||e.file?.name||``,s=e=>{i[o(e)]=!0},l=e=>{n(`deleteFile`,e)},u=un(!1),d=un(0),f=hi(()=>r.files.filter(e=>a(e)&&!i[o(e)])),p=hi(()=>f.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),m=e=>{let t=f.value.indexOf(e);t<0||(d.value=t,u.value=!0)};return(t,n)=>(B(),V(`div`,NUt,[(B(!0),V(Br,null,mr(e.files,t=>(B(),V(`div`,{key:t.file?.name,class:Se([`file-content`,{"is-file-object":!a(t)||i[o(t)]}])},[a(t)&&!i[o(t)]?(B(),V(`img`,{key:0,alt:t.filename||t.file?.name,class:`file-content-image`,src:t.url||z(kre)(t.file),onClick:e=>m(t),onError:e=>s(t)},null,40,PUt)):a(t)&&i[o(t)]?(B(),V(`div`,FUt,[Qr(z(yie),{class:`file-error-icon`})])):(B(),V(`div`,IUt,[H(`div`,LUt,[Qr(z(Qi),{class:`file-icon`}),H(`span`,RUt,Ae(t.filename||t.file?.name),1),H(`span`,zUt,Ae(t.file?z(Are)(t.file):t.filename?.split(`.`).pop()||t.mimeType?.split(`/`).pop()),1)]),H(`div`,BUt,Ae(z(jre)(t.file)),1)])),e.readonly?ni(`v-if`,!0):(B(),Jr(z(Rie),{key:3,class:`file-delete-icon`,onClick:e=>l(t)},null,8,[`onClick`]))],2))),128)),Qr(MUt,{current:d.value,"onUpdate:current":n[0]||=e=>d.value=e,visible:u.value,"onUpdate:visible":n[1]||=e=>u.value=e,images:p.value},null,8,[`current`,`visible`,`images`])]))}}),HUt=[`onClick`],UUt=tr({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let t=e,n=nr(`promptListRef`),{activeIndex:r}=pp({items:hi(()=>t.prompts),onSelect:t.onSelect,menuRef:n});return(t,i)=>(B(),V(`div`,{ref_key:`promptListRef`,ref:n,class:`ai-prompt-list`},[(B(!0),V(Br,null,mr(e.prompts,(t,n)=>(B(),V(`div`,{key:t,class:Se([`ai-prompt-list-item`,{"is-active":z(r)===n}]),onClick:n=>e.onSelect(t)},Ae(t),11,HUt))),128))],512))}}),WUt=[`onClick`],GUt=[`src`,`onError`],KUt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},qUt={class:`ai-skill-list-item-info`},JUt={class:`ai-skill-list-item-name`},YUt=tr({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let t=e,n=Yt(new Set),r=nr(`skillListRef`),{activeIndex:i}=pp({items:hi(()=>t.skills),onSelect:t.onSelect,menuRef:r});return zn(()=>{t.skills,i.value=0}),(t,a)=>(B(),V(`div`,{ref_key:`skillListRef`,ref:r,class:`ai-skill-list`},[(B(!0),V(Br,null,mr(e.skills,(t,r)=>(B(),V(`div`,{key:t.skill_code,class:Se([`ai-skill-list-item`,{"is-active":z(i)===r}]),onClick:n=>e.onSelect(t)},[t.icon&&!n.has(t.skill_code)?(B(),V(`img`,{key:0,src:t.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>n.add(t.skill_code)},null,40,GUt)):(B(),V(`div`,KUt,Ae(t.skill_name?.[0]?.toUpperCase()),1)),H(`div`,qUt,[H(`div`,JUt,Ae(t.skill_name),1)])],10,WUt))),128))],512))}}),XUt={class:`ai-slash-item ai-slash-group-title`},ZUt=[`onClick`],QUt=[`onClick`],$Ut=[`title`],eWt=tr({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let t=e,n=nr(`menuRef`),r=ln([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),i=un([]),a=un([]),{activeIndex:o}=pp({items:i,onSelect:t.onSelect,menuRef:n});zn(()=>{let e=[],n=[];for(let[r,i]of Object.entries(iUt)){let a=t.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),n.push(...a))}o.value=0,i.value=n,a.value=e});let s=e=>{let t=r.value.findIndex(t=>t===e.type);t===-1?r.value.push(e.type):r.value.splice(t,1)};return(t,l)=>e.resourceList?.length?(B(),V(`div`,{key:0,ref_key:`menuRef`,ref:n,class:`ai-slash-menu`},[(B(!0),V(Br,null,mr(a.value,(t,n)=>(B(),V(Br,null,[t.items.length>0?(B(),V(`div`,{key:n,class:`ai-slash-group`},[H(`div`,XUt,[(B(),V(`svg`,{class:`title-icon`,style:_e({transform:r.value.includes(t.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>s(t)},[...l[0]||=[H(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,ZUt)),H(`span`,{class:Se(`mark-${t.type}`)},null,2),ti(` `+Ae(t.name)+` (`+Ae(t.items.length)+`) `,1)]),r.value.includes(t.type)?(B(!0),V(Br,{key:0},mr(t.items,t=>(B(),V(`div`,{key:t.id,class:Se([`ai-slash-item ai-slash-group-item`,{"is-active":i.value?.[z(o)]?.id===t.id}]),onClick:n=>e.onSelect(t)},[Fn((B(),V(`span`,{class:`ellipsis-text`,title:t.name},[ti(Ae(t.name),1)],8,$Ut)),[[z(jp),{text:t.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,QUt))),128)):ni(`v-if`,!0)])):ni(`v-if`,!0)],64))),256))],512)):ni(`v-if`,!0)}}),tWt=(e,t,n,r)=>new m9().delete(n,r),nWt=(e,t,n,r)=>new m9().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),rWt=(e,t,n,r)=>new m9().insert(n,[[{text:r}]]),iWt=(e,t,n,r)=>new m9().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),aWt={class:`ai-slash-input-wrapper`},oWt=[`aria-placeholder`],sWt={key:0},cWt=[`data-tag-type`,`data-tag-value`],lWt={key:1},uWt=tr({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:Hi?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:t,emit:n}){let r=nr(`editorRef`),i=nr(`tippyRef`),a=n,o=e,s=pn((e,t)=>({get(){return e(),typeof o.modelValue==`string`?d9(o.modelValue):o.modelValue},set(e){a(`update:modelValue`,e,e?.flat()?.filter(e=>e.type===`tag`)?.map(e=>o.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null)?.filter(e=>!!e)||[]),t()}})),l=un(`slash`),u=un(``),d=un([]),f=un([]),p=un([]),m,h,g=null,_=null,v=()=>{g!==null&&(clearTimeout(g),g=null),_!==null&&(clearTimeout(_),_=null)},y=()=>document.body,{commandSelection:b,GetCursorPosition:x,GetDocSnapshot:S,docSnapshot:C}=OTe();Bn(()=>o.modelValue,()=>{m.command(S),u9(C.value||[])!==u9(s.value||[])&&m.command(v9,u9(s.value||[]))},{deep:!1});let w=()=>{g!==null&&clearTimeout(g),g=setTimeout(()=>{g=null;let e=D();u.value=e.query||``,e.isActive?(i.value?.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),i.value?.show()):i.value?.hide()},16)},T=e=>{if(a(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`)return e.shiftKey?void 0:(e.preventDefault?.(),!1);e.key===`@`&&(l.value=`slash`,w()),e.key===`/`&&(l.value=`skill`,w()),e.key===`\\`&&(l.value=`prompt`,w())},E=()=>{u.value=``},D=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=l.value===`slash`?`@`:l.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),u=a.match(s);if(!u)return e;let d=u[1]?.slice(1),f=u.index+u[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},O=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),k=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(tWt,[n,t-u.value.length-1],[n,t]),m.command(nWt,[n,t],e),m.command(rWt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()},A=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{if(_=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();r.value&&e&&(t.selectNodeContents(r.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},j=e=>{m.command(v9,e),A()},M=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(tWt,[n,t-u.value.length-1],[n,t]),m.command(iWt,[n,t],e),m.command(rWt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()};zn(()=>{let e=o.resources?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type))),t=o.skills?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)));u.value?(d.value=e.filter(e=>e.name.toLowerCase().includes(u.value.toLowerCase())),f.value=t.filter(e=>e.skill_name.toLowerCase().includes(u.value.toLowerCase())||e.skill_code.toLowerCase().includes(u.value.toLowerCase())),p.value=o.prompts.filter(e=>e.toLowerCase().includes(u.value.toLowerCase()))):(d.value=e,f.value=t,p.value=o.prompts),!d.value.length&&!f.value.length&&!p.value.length&&i.value?.hide()});let N=(e,t,n,r)=>{if(t.type===`tag`){let t=O(e,n);m.command(tWt,[r,t],[r,t+1])}},P=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),a(`upload`,n))},F=()=>{h?.(),m=ZHt({doc:s.value,schema:rUt,onChange:async e=>{s.value=e,w()},onKeyDown:e=>T(e)}),h=m.input(r.value)},I=()=>l.value===`slash`?d.value.length<1?!1:void 0:l.value===`skill`?f.value.length<1?!1:void 0:p.value.length<1?!1:void 0;return lr(()=>{F(),r.value?.addEventListener(`paste`,P)}),dr(()=>{v(),m.command(v9,``),h?.(),r.value?.removeEventListener(`paste`,P)}),t({cleanup:()=>{m.command(v9,``)},focus:A}),(t,n)=>(B(),V(`div`,aWt,[H(`div`,{ref_key:`editorRef`,ref:r,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[s.value?.length&&s.value.some(e=>e.length)?(B(!0),V(Br,{key:0},mr(s.value,(e,t)=>(B(),V(`div`,{key:t},[e.length?(B(!0),V(Br,{key:0},mr(e,(n,r)=>(B(),V(Br,{key:r},[n.type===`text`?(B(),V(`span`,sWt,Ae(n.text),1)):n.type===`tag`?(B(),V(`span`,{key:1,class:Se(`mention-tag-${n.data.type}`),contenteditable:`false`,"data-tag-type":n.data.type,"data-tag-value":n.data.value},[ti(Ae(n.data.label)+` `,1),Qr(z(vie),{class:`mention-tag-remove-icon`,onClick:i=>N(e,n,r,t)},null,8,[`onClick`])],10,cWt)):ni(`v-if`,!0)],64))),128)):(B(),V(`br`,lWt))]))),128)):ni(`v-if`,!0)],8,oWt),Qr(z(cp),{ref_key:`tippyRef`,ref:i,"append-to":y,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":r.value,"z-index":z(nie),onHidden:E,onShow:I},{content:Pn(()=>[l.value===`slash`?(B(),Jr(eWt,{key:0,"on-select":k,"resource-list":d.value},null,8,[`resource-list`])):l.value===`skill`?(B(),Jr(YUt,{key:1,"on-select":M,skills:f.value},null,8,[`skills`])):l.value===`prompt`?(B(),Jr(UUt,{key:2,"on-select":j,prompts:p.value},null,8,[`prompts`])):ni(`v-if`,!0)]),_:1},8,[`trigger-target`,`z-index`])]))}}),dWt={class:`ai-input-attachment`},fWt=tr({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:t}){let n=e,r=t,i=()=>{r(`stopSending`)},a=()=>{n.sendDisabledTip||n.messageState===Ji.Disabled||n.messageState===Ji.Pending||n.messageState===Ji.Streaming||r(`sendMessage`)};return(t,r)=>(B(),V(`div`,dWt,[gr(t.$slots,`default`),gr(t.$slots,`send-icon`,{},()=>[H(`div`,{class:Se([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]]),onClick:a},[e.messageState===z(Ji).Streaming||e.messageState===z(Ji).Pending||e.messageState===z(Ji).Fetching?Fn((B(),Jr(z(Yie),{key:0,onClick:i},null,512)),[[z(lp),{...e.tippyOptions,content:z(Ui)(`停止`),theme:`ai-chat-box`,offset:[0,16]}]]):Fn((B(),Jr(z(Jie),{key:1},null,512)),[[z(lp),{...e.tippyOptions,content:e.sendDisabledTip||(n.messageState===z(Ji).Disabled?void 0:z(Ui)(`发送`)),theme:`ai-chat-box`,offset:[0,16]}]])],2)])]))}}),pWt={key:1,class:`ai-divider`},mWt=tr({__name:`chat-input`,props:Sr({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:Hi?`Input "/" to trigger skill
3482
3482
  Input "\\" to trigger prompt
3483
3483
  Input "@" to trigger tool and MCP
3484
3484
  Use Shift + Enter to enter a new line`:`输入 "/" 唤出 Skill
@@ -50730,7 +50730,10 @@ var PW = ["src"], FW = {
50730
50730
  }, a = () => {
50731
50731
  n.sendDisabledTip || n.messageState === LA.Disabled || n.messageState === LA.Pending || n.messageState === LA.Streaming || r("sendMessage");
50732
50732
  };
50733
- return (t, r) => (V(), h("div", vG, [W(t.$slots, "default"), W(t.$slots, "send-icon", {}, () => [g("div", { class: P(["send-message-icon", [e.messageState && `send-message-icon__${e.messageState}`, { "send-message-icon__disabled": e.sendDisabledTip }]]) }, [e.messageState === J(LA).Streaming || e.messageState === J(LA).Pending || e.messageState === J(LA).Fetching ? he((V(), p(J(zj), {
50733
+ return (t, r) => (V(), h("div", vG, [W(t.$slots, "default"), W(t.$slots, "send-icon", {}, () => [g("div", {
50734
+ class: P(["send-message-icon", [e.messageState && `send-message-icon__${e.messageState}`, { "send-message-icon__disabled": e.sendDisabledTip }]]),
50735
+ onClick: a
50736
+ }, [e.messageState === J(LA).Streaming || e.messageState === J(LA).Pending || e.messageState === J(LA).Fetching ? he((V(), p(J(zj), {
50734
50737
  key: 0,
50735
50738
  onClick: i
50736
50739
  }, null, 512)), [[J(eA), {
@@ -50738,10 +50741,7 @@ var PW = ["src"], FW = {
50738
50741
  content: J(Q)("停止"),
50739
50742
  theme: "ai-chat-box",
50740
50743
  offset: [0, 16]
50741
- }]]) : he((V(), p(J(Rj), {
50742
- key: 1,
50743
- onClick: a
50744
- }, null, 512)), [[J(eA), {
50744
+ }]]) : he((V(), p(J(Rj), { key: 1 }, null, 512)), [[J(eA), {
50745
50745
  ...e.tippyOptions,
50746
50746
  content: e.sendDisabledTip || (n.messageState === J(LA).Disabled ? void 0 : J(Q)("发送")),
50747
50747
  theme: "ai-chat-box",
@@ -3481,7 +3481,7 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3481
3481
  `),e+n.reduce((e,n)=>e+(k9(n)?n.text:t?t(n):`@${n.data?.label}`),``)),``),T9=e=>e.split(`
3482
3482
  `).map(e=>e?[{text:e,type:`text`}]:[]),E9=1,D9=2,pUt=3,mUt=e=>e._type!==pUt,O9=class e extends Array{static from(t){return new e(...t)}delete(e,t){return this.push({_type:E9,_start:e,_end:t}),this}insert(e,t){return this.push({_type:D9,_pos:e,_fragment:t}),this}select(e,t){return this.push({_type:pUt,_anchor:e,_focus:t}),this}transform(e){return this.reduce((e,t)=>mUt(t)?SUt(e,t):e,e)}},hUt=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),k9=e=>`text`in e,gUt=e=>k9(e)?e.text.length:1,_Ut=e=>e.reduce((e,t)=>e+gUt(t),0),A9=(e,t)=>{let n=[...e];if(!n.length)n.push(...t);else for(let e of t){let t=n.length-1,r=n[t];k9(e)&&k9(r)?n[t]={text:r.text+e.text}:n.push(e)}return n},j9=(e,t)=>{for(let n=0;n<e.length;n++){let r=e[n],i=gUt(r);if(i>t){let i=e.slice(0,n),a=e.slice(n+1);if(k9(r)){let e=r.text.slice(0,t),n=r.text.slice(t);e&&i.push({text:e}),n&&a.unshift({text:n})}else a.unshift(r);return[i,a]}t-=i}return[e,[]]},vUt=(e,t,n,r)=>{let[i]=n,[a]=r||n,o=j9(e[n[0]],n[1]),s=o[0],l=r?j9(e[r[0]],r[1])[1]:o[1],u=[...t];u.length?(u[0]=A9(s,u[0]),u[u.length-1]=A9(u[u.length-1],l)):u.push(A9(s,l)),e.splice(i,a-i+1,...u)},yUt=(e,t,n)=>x9(t,n)===0?[j9(j9(e[t[0]],n[1])[0],t[1])[1]]:[j9(e[t[0]],t[1])[1],...e.slice(t[0]+1,n[0]),j9(e[n[0]],n[1])[0]],bUt=e=>{switch(e._type){case E9:return S9(e._start,e._end)===1;case D9:return!!w9(e._fragment)}return!0},xUt=(e,t)=>{switch(t._type){case E9:vUt(e,[],t._start,t._end);break;case D9:vUt(e,t._fragment,t._pos);break;default:}},SUt=(e,t)=>{switch(t._type){case E9:{let{_start:n,_end:r}=t;if(S9(e,n)!==1)return S9(r,e)===1?[e[0]+n[0]-r[0],e[1]+(x9(r,e)===0?n[1]-r[1]:0)]:n;break}case D9:{let{_pos:n,_fragment:r}=t,i=r.length,a=i-1;if(S9(e,n)!==1)return[e[0]+a,e[1]+(x9(e,n)===0?_Ut(r[i-1])-(a===0?0:n[1]):0)];break}default:}return e},CUt=(e,t,n)=>{let r=[...e],i=[...t];try{for(let r of n)bUt(r)&&(mUt(r)?(xUt(e,r),t[0]=SUt(t[0],r),t[1]=SUt(t[1],r)):(r._anchor&&(t[0]=r._anchor),r._focus&&(t[1]=r._focus)))}catch(n){console.error(`rollback transaction:`,n),e.length=0,e.push(...r),t[0]=i[0],t[1]=i[1]}},M9=(e,t,n)=>new O9().delete([0,0],[e.length-1,_Ut(e[e.length-1])]).insert([0,0],T9(n)),wUt=Math.min,TUt=typeof queueMicrotask==`function`?queueMicrotask:e=>{Promise.resolve().then(e)},N9,P9,F9,I9,EUt=!1,DUt=!1,OUt,kUt=1,AUt=4,jUt=5,MUt=6,NUt=1,PUt=3,FUt=8,IUt=e=>e.nodeType===PUt,L9=e=>e.nodeType===NUt,LUt=e=>e.nodeType===FUt,RUt=new Set([`EMBED`,`IMG`,`PICTURE`,`AUDIO`,`VIDEO`,`SVG`,`CANVAS`,`MATH`,`IFRAME`,`OBJECT`]),zUt=e=>e.contentEditable===`false`||RUt.has(e.tagName),BUt=()=>P9,VUt=()=>F9===1?P9.data.length:+(F9===2),HUt=e=>{N9.currentNode=N9.currentNode.parentNode.children[e]},UUt=e=>{let t=e.nextSibling;return!!t&&!LUt(t)},WUt=()=>{for(;;){if(F9===2){let e=P9;for(;(P9=N9.nextNode())&&e.contains(P9););}else P9=N9.nextNode();if(F9=null,!P9)break;if(I9){if(I9.contains(P9)){if(EUt=!0,DUt)break}else if(EUt)break}if(IUt(P9)){let e=P9.data;if(e)return F9=e===`
3483
3483
  `?UUt(P9)?3:MUt:1}else if(L9(P9)){if(P9.tagName===`BR`)return F9=UUt(P9)?3:jUt;if(zUt(P9))return F9=2;if(OUt(P9))return F9=4}}},GUt=(e,t,{_document:n,_isBlock:r},i)=>{try{return OUt=r,N9=n.createTreeWalker(t,AUt|kUt),i&&(i._startNode&&(N9.currentNode=i._startNode,N9.previousNode()),i._endNode&&(I9=i._endNode),DUt=i._excludeEnd||!1),e(WUt)}finally{N9=P9=F9=I9=null,EUt=DUt=!1}},KUt=new Set([`DIV`,`H1`,`H2`,`H3`,`H4`,`H5`,`H6`,`P`,`PRE`,`LI`,`DT`,`DD`,`TR`]),qUt=e=>KUt.has(e.tagName),JUt=2,YUt=e=>e.ownerDocument,XUt=e=>YUt(e).getSelection(),ZUt=(e,t)=>{if(e.rangeCount){let n=e.getRangeAt(0);if(t.contains(n.commonAncestorContainer))return n}},QUt=(e,t,n)=>{let r=XUt(e);r.removeAllRanges(),r.addRange(t),n&&(r.collapseToEnd(),r.extend(t.startContainer,t.startOffset))},$Ut=(e,t,[n,r],i)=>{let a=S9(n,r),o=a===0,s=a===-1,l=s?r:n,u=s?n:r;if(l[0]===0&&l[1]===0&&o&&!t.hasChildNodes()){let n=e.createRange();return n.setStart(t,0),n.setEnd(t,0),QUt(t,n),!0}let d=eWt(t,l,i);if(!d)return!1;let f=o?d:eWt(t,u,i);if(!f)return!1;let p=e.createRange(),[m,h]=d,[g,_]=f;return L9(m)?h<1?p.setStartBefore(m):p.setStartAfter(m):p.setStart(m,h),L9(g)?_<1?p.setEndBefore(g):p.setEndAfter(g):p.setEnd(g,_),QUt(t,p,s),!0},eWt=(e,[t,n],r)=>GUt(e=>{let r,i=!1;for(;r=e();)if(r===4)i||(i=!0,t!==0&&HUt(t));else{let e=VUt();if(n<=e)return[BUt(),n];n-=e}},e,r),tWt=(e,t)=>{let n=t;for(;;){let t=n.parentElement;if(t===e)break;n=t}return n},nWt=e=>{let t=0;for(;e=e.previousElementSibling;)t++;return t},R9=(e,t,n,r)=>{let i,a,o=!0;if(e===t&&!t.hasChildNodes())return[0,0];if(L9(t)&&!zUt(t)&&t.hasChildNodes()){let e=wUt(n,t.childNodes.length-1);t=t.childNodes[e],o=e===n,n=0}let s=tWt(e,t);return r._isBlock(s)?(i=s,a=nWt(i)):(i=e,a=0),GUt(e=>{let t,r=0;for(;t=e();)t===3?(a++,r=0):r+=VUt();return[a,r+n]},i,r,{_endNode:t,_excludeEnd:o})},rWt=(e,t,{startOffset:n,startContainer:r,endOffset:i,endContainer:a})=>{let o=R9(e,r,n,t);return[o,r===a&&n===i?o:R9(e,a,i,t)]},iWt=()=>[[0,0],[0,0]],aWt=(e,t)=>e.compareDocumentPosition(t),oWt=(e,t)=>{let n=XUt(e),r=ZUt(n,e);if(!r)return iWt();let i=rWt(e,t,r);return(n.anchorNode===n.focusNode?n.anchorOffset>n.focusOffset:(aWt(n.anchorNode,n.focusNode)&JUt)!==0)?[i[1],i[0]]:i},sWt=(e,t,n,r)=>GUt(e=>{let t,i=null,a=``,o=!1,s=[],l=()=>{a&&=(i||=[],i.push({text:a}),``)},u=()=>{l(),!i&&o&&(i=[]),i&&s.push(i),i=null,o=!1};for(;t=e();)if(t===4)u();else if(o=!0,t===1){let e=BUt(),t=e.data;r&&(r._end[0]===e&&(t=t.slice(0,r._end[1])),r._start?.[0]===e&&(t=t.slice(r._start[1]))),a+=t}else if(t===2){l();let e=BUt();if(r&&(r._end[0]===e&&r._end[1]===0||r._start?.[0]===e&&r._start[1]!==0))continue;let t=n(e);t&&i.push({data:t})}else t===3&&u();return u(),s.length||s.push([]),s},e,t,r&&{_startNode:r._start?.[0],_endNode:r._end[0]}),cWt=(e,t,{clientX:n,clientY:r},i)=>{if(e.caretPositionFromPoint){let a=e.caretPositionFromPoint(n,r);if(a)return R9(t,a.offsetNode,a.offset,i)}else if(e.caretRangeFromPoint){let a=e.caretRangeFromPoint(n,r);if(a)return R9(t,a.startContainer,a.startOffset,i)}},lWt=500,uWt=500,dWt=e=>{let t=0,n=0,r=Date.now,i=[e],a=()=>i[t],o=()=>t>0,s=()=>t<i.length-1;return{get:a,set:e=>{i[t]=e},undo:()=>{if(o())return t--,a()},redo:()=>{if(s())return t++,a()},push:e=>{let a=r();t!==0&&a-n<uWt&&t--,n=a,i[++t]=e,i.splice(t+1),t>lWt&&(t--,i.shift())}}},fWt=(e,t)=>{let n=!1,r=[],i=e=>{n&&r.push(...e)},a=new MutationObserver(e=>{i(e),n||t()}),o=()=>{i(a.takeRecords())};return a.observe(e,{characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),{_record(e){!n&&e&&o(),n=e},_flush:()=>(o(),r.splice(0)),_dispose(){r.splice(0),a.disconnect()}}},pWt=e=>O9.from(e.map(e=>e._type===2?{...e,_fragment:[e._fragment.reduce((e,t)=>A9(e,t),[])]}:e)),mWt=()=>{},hWt=({schema:{single:e,js:t,doc:n,copy:r,paste:i},doc:a,isBlock:o=qUt,onChange:s,onKeyDown:l})=>{let u=iWt(),d=!1,f=mWt,p=()=>m.get()[0],m=dWt([n(a),u]),h=[],g=e=>{d||(h.unshift(e),v(y))},_=new Set,v=e=>{_.has(e)||(_.add(e),TUt(()=>{_.delete(e),e()}))},y=()=>{if(h.length){let n=[...p()],r=[...u],i;for(;i=h.pop();)e&&(i=pWt(i)),CUt(n,r,i);let a=p();hUt(n,a)||(m.set([a,u]),m.push([n,r]),s(t(n))),u=r}};return{input:n=>{if(!(window.InputEvent&&typeof InputEvent.prototype.getTargetRanges==`function`))return console.error(`beforeinput event is not supported.`),mWt;let{contentEditable:a,role:h,ariaMultiLine:_,ariaReadOnly:v}=n,y=n.style.whiteSpace;n.role=`textbox`,n.style.whiteSpace=`pre-wrap`,e||(n.ariaMultiLine=`true`);let b=!1,x=!1,S=null,C=!1,w=!1,T=!1,E=YUt(n),D={_document:E,_isBlock:o};f=()=>{n.contentEditable=d?`false`:`true`,n.ariaReadOnly=d?`true`:null},f();let O=fWt(n,()=>{w&&$Ut(E,n,u,D)}),k=()=>{u=oWt(n,D)},A=()=>{let e=O._flush();if(O._record(!1),e.length){let t;for(;t=e.pop();)if(t.type===`childList`){let{target:e,removedNodes:n,addedNodes:r,nextSibling:i}=t;for(let t=n.length-1;t>=0;t--)e.insertBefore(n[t],i);for(let t=r.length-1;t>=0;t--)e.removeChild(r[t])}else t.target.nodeValue=t.oldValue;O._flush(),x=$Ut(E,n,u,D)}g(S),C=!1,S=null},j=e=>{if(!C){if(l?.(e)){e.preventDefault();return}if((e.metaKey||e.ctrlKey)&&!e.altKey&&e.code===`KeyZ`&&(e.preventDefault(),O._record(!1),!d)){let n=e.shiftKey?m.redo():m.undo();n&&(s(t(n[0])),u=n[1])}}},M=()=>{C||A()},N=e=>{e.preventDefault();let t=e.inputType;if(t.startsWith(`format`)||t===`historyUndo`||t===`historyRedo`)return;C?O._record(!0):k();let r=e.getTargetRanges()[0];if(r){let i=rWt(n,D,r),a=t===`insertParagraph`||t===`insertLineBreak`?`
3484
- `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new O9().select(...u),S9(...i)!==0&&S.delete(...i),a&&S.insert(i[0],T9(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),S9(...u)!==0&&r(e,yUt(p(),...C9(u)),n)},te=e=>{e.preventDefault(),ee(e.clipboardData)},ne=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new O9().delete(...C9(u))))},re=e=>{e.preventDefault();let[t,n]=C9(u);g(new O9().delete(t,n).insert(t,i(e.clipboardData,D)))},ie=e=>{e.preventDefault();let t=e.dataTransfer,r=cWt(E,n,e,D);if(t&&r){let e=new O9;T&&e.delete(...C9(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ae=e=>{T=!0,ee(e.dataTransfer)},oe=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,te),n.addEventListener(`cut`,ne),n.addEventListener(`paste`,re),n.addEventListener(`drop`,ie),n.addEventListener(`dragstart`,ae),n.addEventListener(`dragend`,oe),()=>{b||(b=!0,f=mWt,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,te),n.removeEventListener(`cut`,ne),n.removeEventListener(`paste`,re),n.removeEventListener(`drop`,ie),n.removeEventListener(`dragstart`,ae),n.removeEventListener(`dragend`,oe))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},gWt=()=>``,_Wt=({is:e,data:t,plain:n=gWt})=>({is:e,data:t,plain:n}),vWt=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(k9(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:{...n}}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,w9(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=ZUt(XUt(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])LUt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return sWt(e,t,o)}return T9(e.getData(`text/plain`))}}},yWt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},bWt=e=>w9(e,yWt),xWt=vWt({multiline:!0,void:{tag:_Wt({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),SWt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},z9=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),B9=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),CWt={class:`ai-file-upload-btn`},wWt=[`accept`],TWt=$n({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:t}){let n=t,r=er(`fileInputRef`),i=()=>{r.value?.click()},a=e=>{let t=e.target,r=t.files;if(r?.length){let e=(cEe/(1024*1024)).toFixed(1),t=Array.from(r),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&sd({message:_p(a,e,xp),theme:`error`}),i.length&&n(`upload`,i)}t.value=``};return(t,n)=>(B(),V(`div`,CWt,[H(`input`,{ref_key:`fileInputRef`,ref:r,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:a},null,40,wWt),Nn((B(),V(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:i},[mr(t.$slots,`default`,{},()=>[Xr(z(zEe))])])),[[z(gp),{...e.tippyOptions,content:z(Sp)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]}]])]))}}),EWt={class:`ai-cite-content`},DWt={class:`ai-cite-content-text`},OWt=$n({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(t,n)=>(B(),V(`div`,EWt,[Xr(z(iDe)),H(`span`,DWt,ke(e.content),1),e.onClose?(B(),Kr(z(Ip),{key:0,onClick:n[0]||=t=>e.onClose?.(e.content)})):ei(`v-if`,!0)]))}}),kWt={class:`ai-image-preview-toolbar`},AWt={class:`ai-image-preview-toolbar-inner`},jWt={key:0,class:`ai-image-preview-toolbar-pages`},MWt={key:1,class:`ai-image-preview-toolbar-divider`},NWt=[`data-tooltip`],PWt=[`data-tooltip`],FWt=[`data-tooltip`],IWt=[`data-tooltip`],LWt=[`data-tooltip`],RWt={class:`ai-image-preview-toolbar-info`},zWt=$n({name:`PreviewToolbar`,__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:t}){let n=t;return(t,r)=>(B(),V(`div`,kWt,[H(`div`,AWt,[e.isMultiple?(B(),V(`span`,jWt,ke(e.activeIndex+1)+` / `+ke(e.total),1)):ei(`v-if`,!0),e.isMultiple?(B(),V(`span`,MWt)):ei(`v-if`,!0),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`缩小`),onClick:r[0]||=e=>n(`zoomOut`)},[Xr(z(OEe))],8,NWt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`放大`),onClick:r[1]||=e=>n(`zoomIn`)},[Xr(z(DEe))],8,PWt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`旋转`),onClick:r[2]||=e=>n(`rotate`)},[Xr(z(kEe))],8,FWt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`重置`),onClick:r[3]||=e=>n(`reset`)},[Xr(z(AEe))],8,IWt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`下载`),onClick:r[4]||=e=>n(`download`)},[Xr(z(jEe))],8,LWt),t.$slots.extra?(B(),V(Rr,{key:2},[r[5]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),mr(t.$slots,`extra`)],64)):ei(`v-if`,!0),e.showInfo&&e.currentImageInfo?(B(),V(Rr,{key:3},[r[7]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),H(`div`,RWt,[Xr(z(FEe),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,ke(e.currentImageInfo.width)+` px `+ke(z(Sp)(`宽`)),1),e.currentImageInfo.resolution?(B(),V(Rr,{key:0},[r[6]||=H(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),Xr(z(FEe),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,ke(e.currentImageInfo.resolution),1)],64)):ei(`v-if`,!0)])],64)):ei(`v-if`,!0)])]))}}),BWt=.15,VWt=.1,HWt=10;function UWt(){let e=cn(1),t=cn(0),n=cn(0),r=cn(0),i=cn(!1),a=cn(!1),o=0,s=0,l=0,u=0,d=pi(()=>({transform:`translate(${n.value}px, ${r.value}px) scale(${e.value}) rotate(${t.value}deg)`,cursor:i.value?`grabbing`:`grab`,transition:i.value||a.value?`none`:`transform 0.3s ease`})),f=()=>{a.value=!0,e.value=1,t.value=0,n.value=0,r.value=0,requestAnimationFrame(()=>{a.value=!1})},p=()=>{e.value=Math.min(HWt,e.value*(1+BWt))},m=()=>{e.value=Math.max(VWt,e.value*(1-BWt))};return{imageStyle:d,resetTransform:f,zoomIn:p,zoomOut:m,rotateCW:()=>{t.value+=90},handleWheel:e=>{e.deltaY<0?p():m()},handleDragStart:e=>{if(e.button!==0)return;i.value=!0,o=e.clientX,s=e.clientY,l=n.value,u=r.value;let t=e=>{i.value&&(n.value=l+(e.clientX-o),r.value=u+(e.clientY-s))},a=()=>{i.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,a)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,a)}}}function WWt(e){let{visible:t,onClose:n,onPrev:r,onNext:i}=e,a=e=>{if(t.value)switch(e.key){case`Escape`:n();break;case`ArrowLeft`:r?.();break;case`ArrowRight`:i?.();break}},o=()=>{typeof document>`u`||(document.addEventListener(`keydown`,a),document.body.style.overflow=`hidden`)},s=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,a),document.body.style.overflow=``)};Rn(t,e=>{e?o():s()},{immediate:!0}),cr(()=>{s()})}var GWt=[`src`],KWt={key:1,class:`ai-image-preview-error`},qWt={class:`ai-image-preview-error-text`},JWt={key:2,class:`ai-image-preview-loading`},YWt=[`src`],XWt=$n({name:`ImagePreview`,__name:`image-preview`,props:br({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:{type:Boolean,required:!0},visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let t=e,n=Or(e,`visible`),r=Or(e,`current`),{imageStyle:i,resetTransform:a,zoomIn:o,zoomOut:s,rotateCW:l,handleWheel:u,handleDragStart:d}=UWt(),f=cn(`loading`),p=[],m=()=>{p.forEach(e=>URL.revokeObjectURL(e)),p.length=0},h=e=>{let t=URL.createObjectURL(e);return p.push(t),{url:t,name:e.name,file:e}},g=pi(()=>n.value?(m(),t.images.map(e=>e instanceof File?h(e):typeof e==`string`?{url:e}:e.file&&!e.url?{...e,url:h(e.file).url}:e)):(m(),[]));cr(m);let _=pi(()=>g.value[r.value]??{url:``}),v=pi(()=>g.value.length>1),y=pi(()=>{let e=_.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),b=()=>{n.value=!1},x=()=>{t.maskClosable&&b()},S=e=>{r.value=e,a(),f.value=`loading`},C=()=>{S(r.value>0?r.value-1:g.value.length-1)},w=()=>{S(r.value<g.value.length-1?r.value+1:0)},T=()=>{let e=_.value,n=e.downloadUrl||e.url;if(t.onDownload){t.onDownload(n);return}let r=document.createElement(`a`);r.href=n,r.download=e.name||n.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},E=()=>{f.value=`loaded`},D=()=>{f.value=`error`};return WWt({visible:n,onClose:b,onPrev:()=>v.value&&C(),onNext:()=>v.value&&w()}),(t,p)=>(B(),Kr(Wn,{to:`body`},[Xr(yi,{name:`ai-image-preview-fade`},{default:Mn(()=>[n.value?(B(),V(`div`,{key:0,class:`ai-image-preview`,onWheel:p[1]||=Ni((...e)=>z(u)&&z(u)(...e),[`prevent`])},[H(`div`,{class:`ai-image-preview-close`,onClick:b},[Xr(z(MEe),{class:`ai-image-preview-close-icon`})]),v.value?(B(),V(Rr,{key:0},[H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:C},[Xr(z(Pp),{class:`ai-image-preview-arrow-icon`})]),H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:w},[Xr(z(NEe),{class:`ai-image-preview-arrow-icon`})])],64)):ei(`v-if`,!0),H(`div`,{class:`ai-image-preview-body`,onClick:Ni(x,[`self`]),onMousedown:p[0]||=(...e)=>z(d)&&z(d)(...e)},[f.value===`error`?ei(`v-if`,!0):(B(),V(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:_.value.url,style:ge(z(i)),onError:D,onLoad:E},null,44,GWt)),f.value===`error`?(B(),V(`div`,KWt,[Xr(z(PEe),{class:`ai-image-preview-error-icon`}),H(`p`,qWt,ke(z(Sp)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):ei(`v-if`,!0),f.value===`loading`?(B(),V(`div`,JWt,[_.value.thumbnailUrl?(B(),V(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:_.value.thumbnailUrl,style:ge(z(i))},null,12,YWt)):ei(`v-if`,!0)])):ei(`v-if`,!0)],32),Xr(zWt,{"active-index":r.value,"current-image-info":y.value,"is-multiple":v.value,"show-info":e.showInfo,total:g.value.length,onDownload:T,onReset:z(a),onRotate:z(l),onZoomIn:z(o),onZoomOut:z(s)},pr({_:2},[t.$slots.extra?{name:`extra`,fn:Mn(()=>[mr(t.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):ei(`v-if`,!0)]),_:3})]))}}),ZWt={class:`ai-files-content`},QWt=[`alt`,`src`,`onClick`,`onError`],$Wt={key:1,class:`file-content-image image-error`},eGt={key:2,class:`file-content-object`},tGt={class:`file-description`},nGt={class:`file-name`},rGt={class:`file-type`},iGt={class:`file-size`},aGt=$n({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:t}){let n=t,r=e,i=Jt({}),a=e=>e.url?!0:OTe(e.mimeType||e.file?.type),o=e=>e.url||e.file?.name||``,s=e=>{i[o(e)]=!0},l=e=>{n(`deleteFile`,e)},u=cn(!1),d=cn(0),f=pi(()=>r.files.filter(e=>a(e)&&!i[o(e)])),p=pi(()=>f.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),m=e=>{let t=f.value.indexOf(e);t<0||(d.value=t,u.value=!0)};return(t,n)=>(B(),V(`div`,ZWt,[(B(!0),V(Rr,null,fr(e.files,t=>(B(),V(`div`,{key:t.file?.name,class:xe([`file-content`,{"is-file-object":!a(t)||i[o(t)]}])},[a(t)&&!i[o(t)]?(B(),V(`img`,{key:0,alt:t.filename||t.file?.name,class:`file-content-image`,src:t.url||z(kTe)(t.file),onClick:e=>m(t),onError:e=>s(t)},null,40,QWt)):a(t)&&i[o(t)]?(B(),V(`div`,$Wt,[Xr(z(yEe),{class:`file-error-icon`})])):(B(),V(`div`,eGt,[H(`div`,tGt,[Xr(z(jp),{class:`file-icon`}),H(`span`,nGt,ke(t.filename||t.file?.name),1),H(`span`,rGt,ke(t.file?z(ATe)(t.file):t.filename?.split(`.`).pop()||t.mimeType?.split(`/`).pop()),1)]),H(`div`,iGt,ke(z(jTe)(t.file)),1)])),e.readonly?ei(`v-if`,!0):(B(),Kr(z(REe),{key:3,class:`file-delete-icon`,onClick:e=>l(t)},null,8,[`onClick`]))],2))),128)),Xr(XWt,{current:d.value,"onUpdate:current":n[0]||=e=>d.value=e,visible:u.value,"onUpdate:visible":n[1]||=e=>u.value=e,images:p.value},null,8,[`current`,`visible`,`images`])]))}}),oGt=[`onClick`],sGt=$n({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let t=e,n=er(`promptListRef`),{activeIndex:r}=Hp({items:pi(()=>t.prompts),onSelect:t.onSelect,menuRef:n});return(t,i)=>(B(),V(`div`,{ref_key:`promptListRef`,ref:n,class:`ai-prompt-list`},[(B(!0),V(Rr,null,fr(e.prompts,(t,n)=>(B(),V(`div`,{key:t,class:xe([`ai-prompt-list-item`,{"is-active":z(r)===n}]),onClick:n=>e.onSelect(t)},ke(t),11,oGt))),128))],512))}}),cGt=[`onClick`],lGt=[`src`,`onError`],uGt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},dGt={class:`ai-skill-list-item-info`},fGt={class:`ai-skill-list-item-name`},pGt=$n({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let t=e,n=Jt(new Set),r=er(`skillListRef`),{activeIndex:i}=Hp({items:pi(()=>t.skills),onSelect:t.onSelect,menuRef:r});return Ln(()=>{t.skills,i.value=0}),(t,a)=>(B(),V(`div`,{ref_key:`skillListRef`,ref:r,class:`ai-skill-list`},[(B(!0),V(Rr,null,fr(e.skills,(t,r)=>(B(),V(`div`,{key:t.skill_code,class:xe([`ai-skill-list-item`,{"is-active":z(i)===r}]),onClick:n=>e.onSelect(t)},[t.icon&&!n.has(t.skill_code)?(B(),V(`img`,{key:0,src:t.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>n.add(t.skill_code)},null,40,lGt)):(B(),V(`div`,uGt,ke(t.skill_name?.[0]?.toUpperCase()),1)),H(`div`,dGt,[H(`div`,fGt,ke(t.skill_name),1)])],10,cGt))),128))],512))}}),mGt={class:`ai-slash-item ai-slash-group-title`},hGt=[`onClick`],gGt=[`onClick`],_Gt=[`title`],vGt=$n({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let t=e,n=er(`menuRef`),r=sn([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),i=cn([]),a=cn([]),{activeIndex:o}=Hp({items:i,onSelect:t.onSelect,menuRef:n});Ln(()=>{let e=[],n=[];for(let[r,i]of Object.entries(SWt)){let a=t.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),n.push(...a))}o.value=0,i.value=n,a.value=e});let s=e=>{let t=r.value.findIndex(t=>t===e.type);t===-1?r.value.push(e.type):r.value.splice(t,1)};return(t,l)=>e.resourceList?.length?(B(),V(`div`,{key:0,ref_key:`menuRef`,ref:n,class:`ai-slash-menu`},[(B(!0),V(Rr,null,fr(a.value,(t,n)=>(B(),V(Rr,null,[t.items.length>0?(B(),V(`div`,{key:n,class:`ai-slash-group`},[H(`div`,mGt,[(B(),V(`svg`,{class:`title-icon`,style:ge({transform:r.value.includes(t.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>s(t)},[...l[0]||=[H(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,hGt)),H(`span`,{class:xe(`mark-${t.type}`)},null,2),$r(` `+ke(t.name)+` (`+ke(t.items.length)+`) `,1)]),r.value.includes(t.type)?(B(!0),V(Rr,{key:0},fr(t.items,t=>(B(),V(`div`,{key:t.id,class:xe([`ai-slash-item ai-slash-group-item`,{"is-active":i.value?.[z(o)]?.id===t.id}]),onClick:n=>e.onSelect(t)},[Nn((B(),V(`span`,{class:`ellipsis-text`,title:t.name},[$r(ke(t.name),1)],8,_Gt)),[[z(Wp),{text:t.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,gGt))),128)):ei(`v-if`,!0)])):ei(`v-if`,!0)],64))),256))],512)):ei(`v-if`,!0)}}),yGt=(e,t,n,r)=>new O9().delete(n,r),bGt=(e,t,n,r)=>new O9().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),xGt=(e,t,n,r)=>new O9().insert(n,[[{text:r}]]),SGt=(e,t,n,r)=>new O9().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),CGt={class:`ai-slash-input-wrapper`},wGt=[`aria-placeholder`],TGt={key:0},EGt=[`data-tag-type`,`data-tag-value`],DGt={key:1},OGt=$n({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:xp?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:t,emit:n}){let r=er(`editorRef`),i=er(`tippyRef`),a=n,o=e,s=dn((e,t)=>({get(){return e(),typeof o.modelValue==`string`?T9(o.modelValue):o.modelValue},set(e){a(`update:modelValue`,e,e?.flat()?.filter(e=>e.type===`tag`)?.map(e=>o.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null)?.filter(e=>!!e)||[]),t()}})),l=cn(`slash`),u=cn(``),d=cn([]),f=cn([]),p=cn([]),m,h,g=null,_=null,v=()=>{g!==null&&(clearTimeout(g),g=null),_!==null&&(clearTimeout(_),_=null)},y=()=>document.body,{commandSelection:b,GetCursorPosition:x,GetDocSnapshot:S,docSnapshot:C}=jDe();Rn(()=>o.modelValue,()=>{m.command(S),w9(C.value||[])!==w9(s.value||[])&&m.command(M9,w9(s.value||[]))},{deep:!1});let w=()=>{g!==null&&clearTimeout(g),g=setTimeout(()=>{g=null;let e=D();u.value=e.query||``,e.isActive?(i.value?.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),i.value?.show()):i.value?.hide()},16)},T=e=>{if(a(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`)return e.shiftKey?void 0:(e.preventDefault?.(),!1);e.key===`@`&&(l.value=`slash`,w()),e.key===`/`&&(l.value=`skill`,w()),e.key===`\\`&&(l.value=`prompt`,w())},E=()=>{u.value=``},D=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=l.value===`slash`?`@`:l.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),u=a.match(s);if(!u)return e;let d=u[1]?.slice(1),f=u.index+u[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},O=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),k=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(yGt,[n,t-u.value.length-1],[n,t]),m.command(bGt,[n,t],e),m.command(xGt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()},A=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{if(_=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();r.value&&e&&(t.selectNodeContents(r.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},j=e=>{m.command(M9,e),A()},M=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(yGt,[n,t-u.value.length-1],[n,t]),m.command(SGt,[n,t],e),m.command(xGt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()};Ln(()=>{let e=o.resources?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type))),t=o.skills?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)));u.value?(d.value=e.filter(e=>e.name.toLowerCase().includes(u.value.toLowerCase())),f.value=t.filter(e=>e.skill_name.toLowerCase().includes(u.value.toLowerCase())||e.skill_code.toLowerCase().includes(u.value.toLowerCase())),p.value=o.prompts.filter(e=>e.toLowerCase().includes(u.value.toLowerCase()))):(d.value=e,f.value=t,p.value=o.prompts),!d.value.length&&!f.value.length&&!p.value.length&&i.value?.hide()});let N=(e,t,n,r)=>{if(t.type===`tag`){let t=O(e,n);m.command(yGt,[r,t],[r,t+1])}},P=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),a(`upload`,n))},F=()=>{h?.(),m=hWt({doc:s.value,schema:xWt,onChange:async e=>{s.value=e,w()},onKeyDown:e=>T(e)}),h=m.input(r.value)},I=()=>l.value===`slash`?d.value.length<1?!1:void 0:l.value===`skill`?f.value.length<1?!1:void 0:p.value.length<1?!1:void 0;return sr(()=>{F(),r.value?.addEventListener(`paste`,P)}),lr(()=>{v(),m.command(M9,``),h?.(),r.value?.removeEventListener(`paste`,P)}),t({cleanup:()=>{m.command(M9,``)},focus:A}),(t,n)=>(B(),V(`div`,CGt,[H(`div`,{ref_key:`editorRef`,ref:r,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[s.value?.length&&s.value.some(e=>e.length)?(B(!0),V(Rr,{key:0},fr(s.value,(e,t)=>(B(),V(`div`,{key:t},[e.length?(B(!0),V(Rr,{key:0},fr(e,(n,r)=>(B(),V(Rr,{key:r},[n.type===`text`?(B(),V(`span`,TGt,ke(n.text),1)):n.type===`tag`?(B(),V(`span`,{key:1,class:xe(`mention-tag-${n.data.type}`),contenteditable:`false`,"data-tag-type":n.data.type,"data-tag-value":n.data.value},[$r(ke(n.data.label)+` `,1),Xr(z(vEe),{class:`mention-tag-remove-icon`,onClick:i=>N(e,n,r,t)},null,8,[`onClick`])],10,EGt)):ei(`v-if`,!0)],64))),128)):(B(),V(`br`,DGt))]))),128)):ei(`v-if`,!0)],8,wGt),Xr(z(hp),{ref_key:`tippyRef`,ref:i,"append-to":y,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":r.value,"z-index":z(nEe),onHidden:E,onShow:I},{content:Mn(()=>[l.value===`slash`?(B(),Kr(vGt,{key:0,"on-select":k,"resource-list":d.value},null,8,[`resource-list`])):l.value===`skill`?(B(),Kr(pGt,{key:1,"on-select":M,skills:f.value},null,8,[`skills`])):l.value===`prompt`?(B(),Kr(sGt,{key:2,"on-select":j,prompts:p.value},null,8,[`prompts`])):ei(`v-if`,!0)]),_:1},8,[`trigger-target`,`z-index`])]))}}),kGt={class:`ai-input-attachment`},AGt=$n({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:t}){let n=e,r=t,i=()=>{r(`stopSending`)},a=()=>{n.sendDisabledTip||n.messageState===Dp.Disabled||n.messageState===Dp.Pending||n.messageState===Dp.Streaming||r(`sendMessage`)};return(t,r)=>(B(),V(`div`,kGt,[mr(t.$slots,`default`),mr(t.$slots,`send-icon`,{},()=>[H(`div`,{class:xe([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]])},[e.messageState===z(Dp).Streaming||e.messageState===z(Dp).Pending||e.messageState===z(Dp).Fetching?Nn((B(),Kr(z(YEe),{key:0,onClick:i},null,512)),[[z(gp),{...e.tippyOptions,content:z(Sp)(`停止`),theme:`ai-chat-box`,offset:[0,16]}]]):Nn((B(),Kr(z(JEe),{key:1,onClick:a},null,512)),[[z(gp),{...e.tippyOptions,content:e.sendDisabledTip||(n.messageState===z(Dp).Disabled?void 0:z(Sp)(`发送`)),theme:`ai-chat-box`,offset:[0,16]}]])],2)])]))}}),jGt={key:1,class:`ai-divider`},MGt=$n({__name:`chat-input`,props:br({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:xp?`Input "/" to trigger skill
3484
+ `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new O9().select(...u),S9(...i)!==0&&S.delete(...i),a&&S.insert(i[0],T9(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),S9(...u)!==0&&r(e,yUt(p(),...C9(u)),n)},te=e=>{e.preventDefault(),ee(e.clipboardData)},ne=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new O9().delete(...C9(u))))},re=e=>{e.preventDefault();let[t,n]=C9(u);g(new O9().delete(t,n).insert(t,i(e.clipboardData,D)))},ie=e=>{e.preventDefault();let t=e.dataTransfer,r=cWt(E,n,e,D);if(t&&r){let e=new O9;T&&e.delete(...C9(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ae=e=>{T=!0,ee(e.dataTransfer)},oe=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,te),n.addEventListener(`cut`,ne),n.addEventListener(`paste`,re),n.addEventListener(`drop`,ie),n.addEventListener(`dragstart`,ae),n.addEventListener(`dragend`,oe),()=>{b||(b=!0,f=mWt,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,te),n.removeEventListener(`cut`,ne),n.removeEventListener(`paste`,re),n.removeEventListener(`drop`,ie),n.removeEventListener(`dragstart`,ae),n.removeEventListener(`dragend`,oe))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},gWt=()=>``,_Wt=({is:e,data:t,plain:n=gWt})=>({is:e,data:t,plain:n}),vWt=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(k9(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:{...n}}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,w9(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=ZUt(XUt(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])LUt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return sWt(e,t,o)}return T9(e.getData(`text/plain`))}}},yWt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},bWt=e=>w9(e,yWt),xWt=vWt({multiline:!0,void:{tag:_Wt({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),SWt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},z9=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),B9=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),CWt={class:`ai-file-upload-btn`},wWt=[`accept`],TWt=$n({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:t}){let n=t,r=er(`fileInputRef`),i=()=>{r.value?.click()},a=e=>{let t=e.target,r=t.files;if(r?.length){let e=(cEe/(1024*1024)).toFixed(1),t=Array.from(r),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&sd({message:_p(a,e,xp),theme:`error`}),i.length&&n(`upload`,i)}t.value=``};return(t,n)=>(B(),V(`div`,CWt,[H(`input`,{ref_key:`fileInputRef`,ref:r,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:a},null,40,wWt),Nn((B(),V(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:i},[mr(t.$slots,`default`,{},()=>[Xr(z(zEe))])])),[[z(gp),{...e.tippyOptions,content:z(Sp)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]}]])]))}}),EWt={class:`ai-cite-content`},DWt={class:`ai-cite-content-text`},OWt=$n({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(t,n)=>(B(),V(`div`,EWt,[Xr(z(iDe)),H(`span`,DWt,ke(e.content),1),e.onClose?(B(),Kr(z(Ip),{key:0,onClick:n[0]||=t=>e.onClose?.(e.content)})):ei(`v-if`,!0)]))}}),kWt={class:`ai-image-preview-toolbar`},AWt={class:`ai-image-preview-toolbar-inner`},jWt={key:0,class:`ai-image-preview-toolbar-pages`},MWt={key:1,class:`ai-image-preview-toolbar-divider`},NWt=[`data-tooltip`],PWt=[`data-tooltip`],FWt=[`data-tooltip`],IWt=[`data-tooltip`],LWt=[`data-tooltip`],RWt={class:`ai-image-preview-toolbar-info`},zWt=$n({name:`PreviewToolbar`,__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:t}){let n=t;return(t,r)=>(B(),V(`div`,kWt,[H(`div`,AWt,[e.isMultiple?(B(),V(`span`,jWt,ke(e.activeIndex+1)+` / `+ke(e.total),1)):ei(`v-if`,!0),e.isMultiple?(B(),V(`span`,MWt)):ei(`v-if`,!0),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`缩小`),onClick:r[0]||=e=>n(`zoomOut`)},[Xr(z(OEe))],8,NWt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`放大`),onClick:r[1]||=e=>n(`zoomIn`)},[Xr(z(DEe))],8,PWt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`旋转`),onClick:r[2]||=e=>n(`rotate`)},[Xr(z(kEe))],8,FWt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`重置`),onClick:r[3]||=e=>n(`reset`)},[Xr(z(AEe))],8,IWt),H(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":z(Sp)(`下载`),onClick:r[4]||=e=>n(`download`)},[Xr(z(jEe))],8,LWt),t.$slots.extra?(B(),V(Rr,{key:2},[r[5]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),mr(t.$slots,`extra`)],64)):ei(`v-if`,!0),e.showInfo&&e.currentImageInfo?(B(),V(Rr,{key:3},[r[7]||=H(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),H(`div`,RWt,[Xr(z(FEe),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,ke(e.currentImageInfo.width)+` px `+ke(z(Sp)(`宽`)),1),e.currentImageInfo.resolution?(B(),V(Rr,{key:0},[r[6]||=H(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),Xr(z(FEe),{class:`ai-image-preview-toolbar-info-icon`}),H(`span`,null,ke(e.currentImageInfo.resolution),1)],64)):ei(`v-if`,!0)])],64)):ei(`v-if`,!0)])]))}}),BWt=.15,VWt=.1,HWt=10;function UWt(){let e=cn(1),t=cn(0),n=cn(0),r=cn(0),i=cn(!1),a=cn(!1),o=0,s=0,l=0,u=0,d=pi(()=>({transform:`translate(${n.value}px, ${r.value}px) scale(${e.value}) rotate(${t.value}deg)`,cursor:i.value?`grabbing`:`grab`,transition:i.value||a.value?`none`:`transform 0.3s ease`})),f=()=>{a.value=!0,e.value=1,t.value=0,n.value=0,r.value=0,requestAnimationFrame(()=>{a.value=!1})},p=()=>{e.value=Math.min(HWt,e.value*(1+BWt))},m=()=>{e.value=Math.max(VWt,e.value*(1-BWt))};return{imageStyle:d,resetTransform:f,zoomIn:p,zoomOut:m,rotateCW:()=>{t.value+=90},handleWheel:e=>{e.deltaY<0?p():m()},handleDragStart:e=>{if(e.button!==0)return;i.value=!0,o=e.clientX,s=e.clientY,l=n.value,u=r.value;let t=e=>{i.value&&(n.value=l+(e.clientX-o),r.value=u+(e.clientY-s))},a=()=>{i.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,a)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,a)}}}function WWt(e){let{visible:t,onClose:n,onPrev:r,onNext:i}=e,a=e=>{if(t.value)switch(e.key){case`Escape`:n();break;case`ArrowLeft`:r?.();break;case`ArrowRight`:i?.();break}},o=()=>{typeof document>`u`||(document.addEventListener(`keydown`,a),document.body.style.overflow=`hidden`)},s=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,a),document.body.style.overflow=``)};Rn(t,e=>{e?o():s()},{immediate:!0}),cr(()=>{s()})}var GWt=[`src`],KWt={key:1,class:`ai-image-preview-error`},qWt={class:`ai-image-preview-error-text`},JWt={key:2,class:`ai-image-preview-loading`},YWt=[`src`],XWt=$n({name:`ImagePreview`,__name:`image-preview`,props:br({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:{type:Boolean,required:!0},visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let t=e,n=Or(e,`visible`),r=Or(e,`current`),{imageStyle:i,resetTransform:a,zoomIn:o,zoomOut:s,rotateCW:l,handleWheel:u,handleDragStart:d}=UWt(),f=cn(`loading`),p=[],m=()=>{p.forEach(e=>URL.revokeObjectURL(e)),p.length=0},h=e=>{let t=URL.createObjectURL(e);return p.push(t),{url:t,name:e.name,file:e}},g=pi(()=>n.value?(m(),t.images.map(e=>e instanceof File?h(e):typeof e==`string`?{url:e}:e.file&&!e.url?{...e,url:h(e.file).url}:e)):(m(),[]));cr(m);let _=pi(()=>g.value[r.value]??{url:``}),v=pi(()=>g.value.length>1),y=pi(()=>{let e=_.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),b=()=>{n.value=!1},x=()=>{t.maskClosable&&b()},S=e=>{r.value=e,a(),f.value=`loading`},C=()=>{S(r.value>0?r.value-1:g.value.length-1)},w=()=>{S(r.value<g.value.length-1?r.value+1:0)},T=()=>{let e=_.value,n=e.downloadUrl||e.url;if(t.onDownload){t.onDownload(n);return}let r=document.createElement(`a`);r.href=n,r.download=e.name||n.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},E=()=>{f.value=`loaded`},D=()=>{f.value=`error`};return WWt({visible:n,onClose:b,onPrev:()=>v.value&&C(),onNext:()=>v.value&&w()}),(t,p)=>(B(),Kr(Wn,{to:`body`},[Xr(yi,{name:`ai-image-preview-fade`},{default:Mn(()=>[n.value?(B(),V(`div`,{key:0,class:`ai-image-preview`,onWheel:p[1]||=Ni((...e)=>z(u)&&z(u)(...e),[`prevent`])},[H(`div`,{class:`ai-image-preview-close`,onClick:b},[Xr(z(MEe),{class:`ai-image-preview-close-icon`})]),v.value?(B(),V(Rr,{key:0},[H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:C},[Xr(z(Pp),{class:`ai-image-preview-arrow-icon`})]),H(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:w},[Xr(z(NEe),{class:`ai-image-preview-arrow-icon`})])],64)):ei(`v-if`,!0),H(`div`,{class:`ai-image-preview-body`,onClick:Ni(x,[`self`]),onMousedown:p[0]||=(...e)=>z(d)&&z(d)(...e)},[f.value===`error`?ei(`v-if`,!0):(B(),V(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:_.value.url,style:ge(z(i)),onError:D,onLoad:E},null,44,GWt)),f.value===`error`?(B(),V(`div`,KWt,[Xr(z(PEe),{class:`ai-image-preview-error-icon`}),H(`p`,qWt,ke(z(Sp)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):ei(`v-if`,!0),f.value===`loading`?(B(),V(`div`,JWt,[_.value.thumbnailUrl?(B(),V(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:_.value.thumbnailUrl,style:ge(z(i))},null,12,YWt)):ei(`v-if`,!0)])):ei(`v-if`,!0)],32),Xr(zWt,{"active-index":r.value,"current-image-info":y.value,"is-multiple":v.value,"show-info":e.showInfo,total:g.value.length,onDownload:T,onReset:z(a),onRotate:z(l),onZoomIn:z(o),onZoomOut:z(s)},pr({_:2},[t.$slots.extra?{name:`extra`,fn:Mn(()=>[mr(t.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):ei(`v-if`,!0)]),_:3})]))}}),ZWt={class:`ai-files-content`},QWt=[`alt`,`src`,`onClick`,`onError`],$Wt={key:1,class:`file-content-image image-error`},eGt={key:2,class:`file-content-object`},tGt={class:`file-description`},nGt={class:`file-name`},rGt={class:`file-type`},iGt={class:`file-size`},aGt=$n({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:t}){let n=t,r=e,i=Jt({}),a=e=>e.url?!0:OTe(e.mimeType||e.file?.type),o=e=>e.url||e.file?.name||``,s=e=>{i[o(e)]=!0},l=e=>{n(`deleteFile`,e)},u=cn(!1),d=cn(0),f=pi(()=>r.files.filter(e=>a(e)&&!i[o(e)])),p=pi(()=>f.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),m=e=>{let t=f.value.indexOf(e);t<0||(d.value=t,u.value=!0)};return(t,n)=>(B(),V(`div`,ZWt,[(B(!0),V(Rr,null,fr(e.files,t=>(B(),V(`div`,{key:t.file?.name,class:xe([`file-content`,{"is-file-object":!a(t)||i[o(t)]}])},[a(t)&&!i[o(t)]?(B(),V(`img`,{key:0,alt:t.filename||t.file?.name,class:`file-content-image`,src:t.url||z(kTe)(t.file),onClick:e=>m(t),onError:e=>s(t)},null,40,QWt)):a(t)&&i[o(t)]?(B(),V(`div`,$Wt,[Xr(z(yEe),{class:`file-error-icon`})])):(B(),V(`div`,eGt,[H(`div`,tGt,[Xr(z(jp),{class:`file-icon`}),H(`span`,nGt,ke(t.filename||t.file?.name),1),H(`span`,rGt,ke(t.file?z(ATe)(t.file):t.filename?.split(`.`).pop()||t.mimeType?.split(`/`).pop()),1)]),H(`div`,iGt,ke(z(jTe)(t.file)),1)])),e.readonly?ei(`v-if`,!0):(B(),Kr(z(REe),{key:3,class:`file-delete-icon`,onClick:e=>l(t)},null,8,[`onClick`]))],2))),128)),Xr(XWt,{current:d.value,"onUpdate:current":n[0]||=e=>d.value=e,visible:u.value,"onUpdate:visible":n[1]||=e=>u.value=e,images:p.value},null,8,[`current`,`visible`,`images`])]))}}),oGt=[`onClick`],sGt=$n({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let t=e,n=er(`promptListRef`),{activeIndex:r}=Hp({items:pi(()=>t.prompts),onSelect:t.onSelect,menuRef:n});return(t,i)=>(B(),V(`div`,{ref_key:`promptListRef`,ref:n,class:`ai-prompt-list`},[(B(!0),V(Rr,null,fr(e.prompts,(t,n)=>(B(),V(`div`,{key:t,class:xe([`ai-prompt-list-item`,{"is-active":z(r)===n}]),onClick:n=>e.onSelect(t)},ke(t),11,oGt))),128))],512))}}),cGt=[`onClick`],lGt=[`src`,`onError`],uGt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},dGt={class:`ai-skill-list-item-info`},fGt={class:`ai-skill-list-item-name`},pGt=$n({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let t=e,n=Jt(new Set),r=er(`skillListRef`),{activeIndex:i}=Hp({items:pi(()=>t.skills),onSelect:t.onSelect,menuRef:r});return Ln(()=>{t.skills,i.value=0}),(t,a)=>(B(),V(`div`,{ref_key:`skillListRef`,ref:r,class:`ai-skill-list`},[(B(!0),V(Rr,null,fr(e.skills,(t,r)=>(B(),V(`div`,{key:t.skill_code,class:xe([`ai-skill-list-item`,{"is-active":z(i)===r}]),onClick:n=>e.onSelect(t)},[t.icon&&!n.has(t.skill_code)?(B(),V(`img`,{key:0,src:t.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>n.add(t.skill_code)},null,40,lGt)):(B(),V(`div`,uGt,ke(t.skill_name?.[0]?.toUpperCase()),1)),H(`div`,dGt,[H(`div`,fGt,ke(t.skill_name),1)])],10,cGt))),128))],512))}}),mGt={class:`ai-slash-item ai-slash-group-title`},hGt=[`onClick`],gGt=[`onClick`],_Gt=[`title`],vGt=$n({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let t=e,n=er(`menuRef`),r=sn([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),i=cn([]),a=cn([]),{activeIndex:o}=Hp({items:i,onSelect:t.onSelect,menuRef:n});Ln(()=>{let e=[],n=[];for(let[r,i]of Object.entries(SWt)){let a=t.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),n.push(...a))}o.value=0,i.value=n,a.value=e});let s=e=>{let t=r.value.findIndex(t=>t===e.type);t===-1?r.value.push(e.type):r.value.splice(t,1)};return(t,l)=>e.resourceList?.length?(B(),V(`div`,{key:0,ref_key:`menuRef`,ref:n,class:`ai-slash-menu`},[(B(!0),V(Rr,null,fr(a.value,(t,n)=>(B(),V(Rr,null,[t.items.length>0?(B(),V(`div`,{key:n,class:`ai-slash-group`},[H(`div`,mGt,[(B(),V(`svg`,{class:`title-icon`,style:ge({transform:r.value.includes(t.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>s(t)},[...l[0]||=[H(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,hGt)),H(`span`,{class:xe(`mark-${t.type}`)},null,2),$r(` `+ke(t.name)+` (`+ke(t.items.length)+`) `,1)]),r.value.includes(t.type)?(B(!0),V(Rr,{key:0},fr(t.items,t=>(B(),V(`div`,{key:t.id,class:xe([`ai-slash-item ai-slash-group-item`,{"is-active":i.value?.[z(o)]?.id===t.id}]),onClick:n=>e.onSelect(t)},[Nn((B(),V(`span`,{class:`ellipsis-text`,title:t.name},[$r(ke(t.name),1)],8,_Gt)),[[z(Wp),{text:t.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,gGt))),128)):ei(`v-if`,!0)])):ei(`v-if`,!0)],64))),256))],512)):ei(`v-if`,!0)}}),yGt=(e,t,n,r)=>new O9().delete(n,r),bGt=(e,t,n,r)=>new O9().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),xGt=(e,t,n,r)=>new O9().insert(n,[[{text:r}]]),SGt=(e,t,n,r)=>new O9().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),CGt={class:`ai-slash-input-wrapper`},wGt=[`aria-placeholder`],TGt={key:0},EGt=[`data-tag-type`,`data-tag-value`],DGt={key:1},OGt=$n({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:xp?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:t,emit:n}){let r=er(`editorRef`),i=er(`tippyRef`),a=n,o=e,s=dn((e,t)=>({get(){return e(),typeof o.modelValue==`string`?T9(o.modelValue):o.modelValue},set(e){a(`update:modelValue`,e,e?.flat()?.filter(e=>e.type===`tag`)?.map(e=>o.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null)?.filter(e=>!!e)||[]),t()}})),l=cn(`slash`),u=cn(``),d=cn([]),f=cn([]),p=cn([]),m,h,g=null,_=null,v=()=>{g!==null&&(clearTimeout(g),g=null),_!==null&&(clearTimeout(_),_=null)},y=()=>document.body,{commandSelection:b,GetCursorPosition:x,GetDocSnapshot:S,docSnapshot:C}=jDe();Rn(()=>o.modelValue,()=>{m.command(S),w9(C.value||[])!==w9(s.value||[])&&m.command(M9,w9(s.value||[]))},{deep:!1});let w=()=>{g!==null&&clearTimeout(g),g=setTimeout(()=>{g=null;let e=D();u.value=e.query||``,e.isActive?(i.value?.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),i.value?.show()):i.value?.hide()},16)},T=e=>{if(a(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`)return e.shiftKey?void 0:(e.preventDefault?.(),!1);e.key===`@`&&(l.value=`slash`,w()),e.key===`/`&&(l.value=`skill`,w()),e.key===`\\`&&(l.value=`prompt`,w())},E=()=>{u.value=``},D=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=l.value===`slash`?`@`:l.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),u=a.match(s);if(!u)return e;let d=u[1]?.slice(1),f=u.index+u[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},O=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),k=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(yGt,[n,t-u.value.length-1],[n,t]),m.command(bGt,[n,t],e),m.command(xGt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()},A=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{if(_=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();r.value&&e&&(t.selectNodeContents(r.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},j=e=>{m.command(M9,e),A()},M=e=>{m.command(x);let{column:t,line:n}=b.value;m.command(yGt,[n,t-u.value.length-1],[n,t]),m.command(SGt,[n,t],e),m.command(xGt,[n,t+u.value.length+1+1],` `),i.value?.hide(),A()};Ln(()=>{let e=o.resources?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type))),t=o.skills?.filter(e=>!s.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)));u.value?(d.value=e.filter(e=>e.name.toLowerCase().includes(u.value.toLowerCase())),f.value=t.filter(e=>e.skill_name.toLowerCase().includes(u.value.toLowerCase())||e.skill_code.toLowerCase().includes(u.value.toLowerCase())),p.value=o.prompts.filter(e=>e.toLowerCase().includes(u.value.toLowerCase()))):(d.value=e,f.value=t,p.value=o.prompts),!d.value.length&&!f.value.length&&!p.value.length&&i.value?.hide()});let N=(e,t,n,r)=>{if(t.type===`tag`){let t=O(e,n);m.command(yGt,[r,t],[r,t+1])}},P=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),a(`upload`,n))},F=()=>{h?.(),m=hWt({doc:s.value,schema:xWt,onChange:async e=>{s.value=e,w()},onKeyDown:e=>T(e)}),h=m.input(r.value)},I=()=>l.value===`slash`?d.value.length<1?!1:void 0:l.value===`skill`?f.value.length<1?!1:void 0:p.value.length<1?!1:void 0;return sr(()=>{F(),r.value?.addEventListener(`paste`,P)}),lr(()=>{v(),m.command(M9,``),h?.(),r.value?.removeEventListener(`paste`,P)}),t({cleanup:()=>{m.command(M9,``)},focus:A}),(t,n)=>(B(),V(`div`,CGt,[H(`div`,{ref_key:`editorRef`,ref:r,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[s.value?.length&&s.value.some(e=>e.length)?(B(!0),V(Rr,{key:0},fr(s.value,(e,t)=>(B(),V(`div`,{key:t},[e.length?(B(!0),V(Rr,{key:0},fr(e,(n,r)=>(B(),V(Rr,{key:r},[n.type===`text`?(B(),V(`span`,TGt,ke(n.text),1)):n.type===`tag`?(B(),V(`span`,{key:1,class:xe(`mention-tag-${n.data.type}`),contenteditable:`false`,"data-tag-type":n.data.type,"data-tag-value":n.data.value},[$r(ke(n.data.label)+` `,1),Xr(z(vEe),{class:`mention-tag-remove-icon`,onClick:i=>N(e,n,r,t)},null,8,[`onClick`])],10,EGt)):ei(`v-if`,!0)],64))),128)):(B(),V(`br`,DGt))]))),128)):ei(`v-if`,!0)],8,wGt),Xr(z(hp),{ref_key:`tippyRef`,ref:i,"append-to":y,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":r.value,"z-index":z(nEe),onHidden:E,onShow:I},{content:Mn(()=>[l.value===`slash`?(B(),Kr(vGt,{key:0,"on-select":k,"resource-list":d.value},null,8,[`resource-list`])):l.value===`skill`?(B(),Kr(pGt,{key:1,"on-select":M,skills:f.value},null,8,[`skills`])):l.value===`prompt`?(B(),Kr(sGt,{key:2,"on-select":j,prompts:p.value},null,8,[`prompts`])):ei(`v-if`,!0)]),_:1},8,[`trigger-target`,`z-index`])]))}}),kGt={class:`ai-input-attachment`},AGt=$n({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:t}){let n=e,r=t,i=()=>{r(`stopSending`)},a=()=>{n.sendDisabledTip||n.messageState===Dp.Disabled||n.messageState===Dp.Pending||n.messageState===Dp.Streaming||r(`sendMessage`)};return(t,r)=>(B(),V(`div`,kGt,[mr(t.$slots,`default`),mr(t.$slots,`send-icon`,{},()=>[H(`div`,{class:xe([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]]),onClick:a},[e.messageState===z(Dp).Streaming||e.messageState===z(Dp).Pending||e.messageState===z(Dp).Fetching?Nn((B(),Kr(z(YEe),{key:0,onClick:i},null,512)),[[z(gp),{...e.tippyOptions,content:z(Sp)(`停止`),theme:`ai-chat-box`,offset:[0,16]}]]):Nn((B(),Kr(z(JEe),{key:1},null,512)),[[z(gp),{...e.tippyOptions,content:e.sendDisabledTip||(n.messageState===z(Dp).Disabled?void 0:z(Sp)(`发送`)),theme:`ai-chat-box`,offset:[0,16]}]])],2)])]))}}),jGt={key:1,class:`ai-divider`},MGt=$n({__name:`chat-input`,props:br({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:xp?`Input "/" to trigger skill
3485
3485
  Input "\\" to trigger prompt
3486
3486
  Input "@" to trigger tool and MCP
3487
3487
  Use Shift + Enter to enter a new line`:`输入 "/" 唤出 Skill
@@ -3481,7 +3481,7 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3481
3481
  `),e+n.reduce((e,n)=>e+(a9(n)?n.text:t?t(n):`@${n.data?.label}`),``)),``),t9=e=>e.split(`
3482
3482
  `).map(e=>e?[{text:e,type:`text`}]:[]),n9=1,r9=2,sPt=3,cPt=e=>e._type!==sPt,i9=class e extends Array{static from(t){return new e(...t)}delete(e,t){return this.push({_type:n9,_start:e,_end:t}),this}insert(e,t){return this.push({_type:r9,_pos:e,_fragment:t}),this}select(e,t){return this.push({_type:sPt,_anchor:e,_focus:t}),this}transform(e){return this.reduce((e,t)=>cPt(t)?c9(e,t):e,e)}},lPt=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),a9=e=>`text`in e,uPt=e=>a9(e)?e.text.length:1,dPt=e=>e.reduce((e,t)=>e+uPt(t),0),o9=(e,t)=>{let n=[...e];if(!n.length)n.push(...t);else for(let e of t){let t=n.length-1,r=n[t];a9(e)&&a9(r)?n[t]={text:r.text+e.text}:n.push(e)}return n},s9=(e,t)=>{for(let n=0;n<e.length;n++){let r=e[n],i=uPt(r);if(i>t){let i=e.slice(0,n),a=e.slice(n+1);if(a9(r)){let e=r.text.slice(0,t),n=r.text.slice(t);e&&i.push({text:e}),n&&a.unshift({text:n})}else a.unshift(r);return[i,a]}t-=i}return[e,[]]},fPt=(e,t,n,r)=>{let[i]=n,[a]=r||n,o=s9(e[n[0]],n[1]),s=o[0],l=r?s9(e[r[0]],r[1])[1]:o[1],u=[...t];u.length?(u[0]=o9(s,u[0]),u[u.length-1]=o9(u[u.length-1],l)):u.push(o9(s,l)),e.splice(i,a-i+1,...u)},pPt=(e,t,n)=>Z7(t,n)===0?[s9(s9(e[t[0]],n[1])[0],t[1])[1]]:[s9(e[t[0]],t[1])[1],...e.slice(t[0]+1,n[0]),s9(e[n[0]],n[1])[0]],mPt=e=>{switch(e._type){case n9:return Q7(e._start,e._end)===1;case r9:return!!e9(e._fragment)}return!0},hPt=(e,t)=>{switch(t._type){case n9:fPt(e,[],t._start,t._end);break;case r9:fPt(e,t._fragment,t._pos);break;default:}},c9=(e,t)=>{switch(t._type){case n9:{let{_start:n,_end:r}=t;if(Q7(e,n)!==1)return Q7(r,e)===1?[e[0]+n[0]-r[0],e[1]+(Z7(r,e)===0?n[1]-r[1]:0)]:n;break}case r9:{let{_pos:n,_fragment:r}=t,i=r.length,a=i-1;if(Q7(e,n)!==1)return[e[0]+a,e[1]+(Z7(e,n)===0?dPt(r[i-1])-(a===0?0:n[1]):0)];break}default:}return e},gPt=(e,t,n)=>{let r=[...e],i=[...t];try{for(let r of n)mPt(r)&&(cPt(r)?(hPt(e,r),t[0]=c9(t[0],r),t[1]=c9(t[1],r)):(r._anchor&&(t[0]=r._anchor),r._focus&&(t[1]=r._focus)))}catch(n){console.error(`rollback transaction:`,n),e.length=0,e.push(...r),t[0]=i[0],t[1]=i[1]}},l9=(e,t,n)=>new i9().delete([0,0],[e.length-1,dPt(e[e.length-1])]).insert([0,0],t9(n)),_Pt=Math.min,vPt=typeof queueMicrotask==`function`?queueMicrotask:e=>{Promise.resolve().then(e)},u9,d9,f9,p9,m9=!1,h9=!1,yPt,bPt=1,xPt=4,SPt=5,CPt=6,wPt=1,TPt=3,EPt=8,DPt=e=>e.nodeType===TPt,g9=e=>e.nodeType===wPt,OPt=e=>e.nodeType===EPt,kPt=new Set([`EMBED`,`IMG`,`PICTURE`,`AUDIO`,`VIDEO`,`SVG`,`CANVAS`,`MATH`,`IFRAME`,`OBJECT`]),APt=e=>e.contentEditable===`false`||kPt.has(e.tagName),_9=()=>d9,jPt=()=>f9===1?d9.data.length:+(f9===2),MPt=e=>{u9.currentNode=u9.currentNode.parentNode.children[e]},NPt=e=>{let t=e.nextSibling;return!!t&&!OPt(t)},PPt=()=>{for(;;){if(f9===2){let e=d9;for(;(d9=u9.nextNode())&&e.contains(d9););}else d9=u9.nextNode();if(f9=null,!d9)break;if(p9){if(p9.contains(d9)){if(m9=!0,h9)break}else if(m9)break}if(DPt(d9)){let e=d9.data;if(e)return f9=e===`
3483
3483
  `?NPt(d9)?3:CPt:1}else if(g9(d9)){if(d9.tagName===`BR`)return f9=NPt(d9)?3:SPt;if(APt(d9))return f9=2;if(yPt(d9))return f9=4}}},v9=(e,t,{_document:n,_isBlock:r},i)=>{try{return yPt=r,u9=n.createTreeWalker(t,xPt|bPt),i&&(i._startNode&&(u9.currentNode=i._startNode,u9.previousNode()),i._endNode&&(p9=i._endNode),h9=i._excludeEnd||!1),e(PPt)}finally{u9=d9=f9=p9=null,m9=h9=!1}},FPt=new Set([`DIV`,`H1`,`H2`,`H3`,`H4`,`H5`,`H6`,`P`,`PRE`,`LI`,`DT`,`DD`,`TR`]),IPt=e=>FPt.has(e.tagName),LPt=2,RPt=e=>e.ownerDocument,y9=e=>RPt(e).getSelection(),zPt=(e,t)=>{if(e.rangeCount){let n=e.getRangeAt(0);if(t.contains(n.commonAncestorContainer))return n}},BPt=(e,t,n)=>{let r=y9(e);r.removeAllRanges(),r.addRange(t),n&&(r.collapseToEnd(),r.extend(t.startContainer,t.startOffset))},VPt=(e,t,[n,r],i)=>{let a=Q7(n,r),o=a===0,s=a===-1,l=s?r:n,u=s?n:r;if(l[0]===0&&l[1]===0&&o&&!t.hasChildNodes()){let n=e.createRange();return n.setStart(t,0),n.setEnd(t,0),BPt(t,n),!0}let d=HPt(t,l,i);if(!d)return!1;let f=o?d:HPt(t,u,i);if(!f)return!1;let p=e.createRange(),[m,h]=d,[g,_]=f;return g9(m)?h<1?p.setStartBefore(m):p.setStartAfter(m):p.setStart(m,h),g9(g)?_<1?p.setEndBefore(g):p.setEndAfter(g):p.setEnd(g,_),BPt(t,p,s),!0},HPt=(e,[t,n],r)=>v9(e=>{let r,i=!1;for(;r=e();)if(r===4)i||(i=!0,t!==0&&MPt(t));else{let e=jPt();if(n<=e)return[_9(),n];n-=e}},e,r),UPt=(e,t)=>{let n=t;for(;;){let t=n.parentElement;if(t===e)break;n=t}return n},WPt=e=>{let t=0;for(;e=e.previousElementSibling;)t++;return t},b9=(e,t,n,r)=>{let i,a,o=!0;if(e===t&&!t.hasChildNodes())return[0,0];if(g9(t)&&!APt(t)&&t.hasChildNodes()){let e=_Pt(n,t.childNodes.length-1);t=t.childNodes[e],o=e===n,n=0}let s=UPt(e,t);return r._isBlock(s)?(i=s,a=WPt(i)):(i=e,a=0),v9(e=>{let t,r=0;for(;t=e();)t===3?(a++,r=0):r+=jPt();return[a,r+n]},i,r,{_endNode:t,_excludeEnd:o})},GPt=(e,t,{startOffset:n,startContainer:r,endOffset:i,endContainer:a})=>{let o=b9(e,r,n,t);return[o,r===a&&n===i?o:b9(e,a,i,t)]},KPt=()=>[[0,0],[0,0]],qPt=(e,t)=>e.compareDocumentPosition(t),JPt=(e,t)=>{let n=y9(e),r=zPt(n,e);if(!r)return KPt();let i=GPt(e,t,r);return(n.anchorNode===n.focusNode?n.anchorOffset>n.focusOffset:(qPt(n.anchorNode,n.focusNode)&LPt)!==0)?[i[1],i[0]]:i},YPt=(e,t,n,r)=>v9(e=>{let t,i=null,a=``,o=!1,s=[],l=()=>{a&&=(i||=[],i.push({text:a}),``)},u=()=>{l(),!i&&o&&(i=[]),i&&s.push(i),i=null,o=!1};for(;t=e();)if(t===4)u();else if(o=!0,t===1){let e=_9(),t=e.data;r&&(r._end[0]===e&&(t=t.slice(0,r._end[1])),r._start?.[0]===e&&(t=t.slice(r._start[1]))),a+=t}else if(t===2){l();let e=_9();if(r&&(r._end[0]===e&&r._end[1]===0||r._start?.[0]===e&&r._start[1]!==0))continue;let t=n(e);t&&i.push({data:t})}else t===3&&u();return u(),s.length||s.push([]),s},e,t,r&&{_startNode:r._start?.[0],_endNode:r._end[0]}),XPt=(e,t,{clientX:n,clientY:r},i)=>{if(e.caretPositionFromPoint){let a=e.caretPositionFromPoint(n,r);if(a)return b9(t,a.offsetNode,a.offset,i)}else if(e.caretRangeFromPoint){let a=e.caretRangeFromPoint(n,r);if(a)return b9(t,a.startContainer,a.startOffset,i)}},ZPt=500,QPt=500,$Pt=e=>{let t=0,n=0,r=Date.now,i=[e],a=()=>i[t],o=()=>t>0,s=()=>t<i.length-1;return{get:a,set:e=>{i[t]=e},undo:()=>{if(o())return t--,a()},redo:()=>{if(s())return t++,a()},push:e=>{let a=r();t!==0&&a-n<QPt&&t--,n=a,i[++t]=e,i.splice(t+1),t>ZPt&&(t--,i.shift())}}},eFt=(e,t)=>{let n=!1,r=[],i=e=>{n&&r.push(...e)},a=new MutationObserver(e=>{i(e),n||t()}),o=()=>{i(a.takeRecords())};return a.observe(e,{characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),{_record(e){!n&&e&&o(),n=e},_flush:()=>(o(),r.splice(0)),_dispose(){r.splice(0),a.disconnect()}}},tFt=e=>i9.from(e.map(e=>e._type===2?{...e,_fragment:[e._fragment.reduce((e,t)=>o9(e,t),[])]}:e)),x9=()=>{},nFt=({schema:{single:e,js:t,doc:n,copy:r,paste:i},doc:a,isBlock:o=IPt,onChange:s,onKeyDown:l})=>{let u=KPt(),d=!1,f=x9,p=()=>m.get()[0],m=$Pt([n(a),u]),h=[],g=e=>{d||(h.unshift(e),v(y))},_=new Set,v=e=>{_.has(e)||(_.add(e),vPt(()=>{_.delete(e),e()}))},y=()=>{if(h.length){let n=[...p()],r=[...u],i;for(;i=h.pop();)e&&(i=tFt(i)),gPt(n,r,i);let a=p();lPt(n,a)||(m.set([a,u]),m.push([n,r]),s(t(n))),u=r}};return{input:n=>{if(!(window.InputEvent&&typeof InputEvent.prototype.getTargetRanges==`function`))return console.error(`beforeinput event is not supported.`),x9;let{contentEditable:a,role:h,ariaMultiLine:_,ariaReadOnly:v}=n,y=n.style.whiteSpace;n.role=`textbox`,n.style.whiteSpace=`pre-wrap`,e||(n.ariaMultiLine=`true`);let b=!1,x=!1,S=null,C=!1,w=!1,T=!1,E=RPt(n),D={_document:E,_isBlock:o};f=()=>{n.contentEditable=d?`false`:`true`,n.ariaReadOnly=d?`true`:null},f();let O=eFt(n,()=>{w&&VPt(E,n,u,D)}),k=()=>{u=JPt(n,D)},A=()=>{let e=O._flush();if(O._record(!1),e.length){let t;for(;t=e.pop();)if(t.type===`childList`){let{target:e,removedNodes:n,addedNodes:r,nextSibling:i}=t;for(let t=n.length-1;t>=0;t--)e.insertBefore(n[t],i);for(let t=r.length-1;t>=0;t--)e.removeChild(r[t])}else t.target.nodeValue=t.oldValue;O._flush(),x=VPt(E,n,u,D)}g(S),C=!1,S=null},j=e=>{if(!C){if(l?.(e)){e.preventDefault();return}if((e.metaKey||e.ctrlKey)&&!e.altKey&&e.code===`KeyZ`&&(e.preventDefault(),O._record(!1),!d)){let n=e.shiftKey?m.redo():m.undo();n&&(s(t(n[0])),u=n[1])}}},M=()=>{C||A()},N=e=>{e.preventDefault();let t=e.inputType;if(t.startsWith(`format`)||t===`historyUndo`||t===`historyRedo`)return;C?O._record(!0):k();let r=e.getTargetRanges()[0];if(r){let i=GPt(n,D,r),a=t===`insertParagraph`||t===`insertLineBreak`?`
3484
- `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new i9().select(...u),Q7(...i)!==0&&S.delete(...i),a&&S.insert(i[0],t9(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),Q7(...u)!==0&&r(e,pPt(p(),...$7(u)),n)},z=e=>{e.preventDefault(),ee(e.clipboardData)},B=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new i9().delete(...$7(u))))},V=e=>{e.preventDefault();let[t,n]=$7(u);g(new i9().delete(t,n).insert(t,i(e.clipboardData,D)))},te=e=>{e.preventDefault();let t=e.dataTransfer,r=XPt(E,n,e,D);if(t&&r){let e=new i9;T&&e.delete(...$7(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ne=e=>{T=!0,ee(e.dataTransfer)},re=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,z),n.addEventListener(`cut`,B),n.addEventListener(`paste`,V),n.addEventListener(`drop`,te),n.addEventListener(`dragstart`,ne),n.addEventListener(`dragend`,re),()=>{b||(b=!0,f=x9,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,z),n.removeEventListener(`cut`,B),n.removeEventListener(`paste`,V),n.removeEventListener(`drop`,te),n.removeEventListener(`dragstart`,ne),n.removeEventListener(`dragend`,re))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},rFt=()=>``,iFt=({is:e,data:t,plain:n=rFt})=>({is:e,data:t,plain:n}),aFt=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(a9(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:{...n}}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,e9(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=zPt(y9(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])OPt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return YPt(e,t,o)}return t9(e.getData(`text/plain`))}}},oFt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},S9=e=>e9(e,oFt),sFt=aFt({multiline:!0,void:{tag:iFt({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),cFt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},C9=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),w9=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),lFt={class:`ai-file-upload-btn`},uFt=[`accept`],dFt=(0,t.defineComponent)({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:n}){let r=n,i=(0,t.useTemplateRef)(`fileInputRef`),a=()=>{i.value?.click()},o=e=>{let t=e.target,n=t.files;if(n?.length){let e=(kye/(1024*1024)).toFixed(1),t=Array.from(n),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&Sc({message:bu(a,e,wu),theme:`error`}),i.length&&r(`upload`,i)}t.value=``};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,lFt,[(0,t.createElementVNode)(`input`,{ref_key:`fileInputRef`,ref:i,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:o},null,40,uFt),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:a},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createVNode)((0,t.unref)(obe))])])),[[(0,t.unref)(yu),{...e.tippyOptions,content:(0,t.unref)(Tu)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]}]])]))}}),fFt={class:`ai-cite-content`},pFt={class:`ai-cite-content-text`},mFt=(0,t.defineComponent)({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,fFt,[(0,t.createVNode)((0,t.unref)(Tbe)),(0,t.createElementVNode)(`span`,pFt,(0,t.toDisplayString)(e.content),1),e.onClose?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(zu),{key:0,onClick:r[0]||=t=>e.onClose?.(e.content)})):(0,t.createCommentVNode)(`v-if`,!0)]))}}),hFt={class:`ai-image-preview-toolbar`},gFt={class:`ai-image-preview-toolbar-inner`},_Ft={key:0,class:`ai-image-preview-toolbar-pages`},vFt={key:1,class:`ai-image-preview-toolbar-divider`},yFt=[`data-tooltip`],bFt=[`data-tooltip`],xFt=[`data-tooltip`],SFt=[`data-tooltip`],CFt=[`data-tooltip`],wFt={class:`ai-image-preview-toolbar-info`},TFt=(0,t.defineComponent)({name:`PreviewToolbar`,__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hFt,[(0,t.createElementVNode)(`div`,gFt,[e.isMultiple?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,_Ft,(0,t.toDisplayString)(e.activeIndex+1)+` / `+(0,t.toDisplayString)(e.total),1)):(0,t.createCommentVNode)(`v-if`,!0),e.isMultiple?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,vFt)):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`缩小`),onClick:i[0]||=e=>r(`zoomOut`)},[(0,t.createVNode)((0,t.unref)(Yye))],8,yFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`放大`),onClick:i[1]||=e=>r(`zoomIn`)},[(0,t.createVNode)((0,t.unref)(Jye))],8,bFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`旋转`),onClick:i[2]||=e=>r(`rotate`)},[(0,t.createVNode)((0,t.unref)(Xye))],8,xFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`重置`),onClick:i[3]||=e=>r(`reset`)},[(0,t.createVNode)((0,t.unref)(Zye))],8,SFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`下载`),onClick:i[4]||=e=>r(`download`)},[(0,t.createVNode)((0,t.unref)(Qye))],8,CFt),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[i[5]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),(0,t.renderSlot)(n.$slots,`extra`)],64)):(0,t.createCommentVNode)(`v-if`,!0),e.showInfo&&e.currentImageInfo?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:3},[i[7]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),(0,t.createElementVNode)(`div`,wFt,[(0,t.createVNode)((0,t.unref)(nbe),{class:`ai-image-preview-toolbar-info-icon`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.currentImageInfo.width)+` px `+(0,t.toDisplayString)((0,t.unref)(Tu)(`宽`)),1),e.currentImageInfo.resolution?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[i[6]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),(0,t.createVNode)((0,t.unref)(nbe),{class:`ai-image-preview-toolbar-info-icon`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.currentImageInfo.resolution),1)],64)):(0,t.createCommentVNode)(`v-if`,!0)])],64)):(0,t.createCommentVNode)(`v-if`,!0)])]))}}),EFt=.15,DFt=.1,OFt=10;function kFt(){let e=(0,t.shallowRef)(1),n=(0,t.shallowRef)(0),r=(0,t.shallowRef)(0),i=(0,t.shallowRef)(0),a=(0,t.shallowRef)(!1),o=(0,t.shallowRef)(!1),s=0,l=0,u=0,d=0,f=(0,t.computed)(()=>({transform:`translate(${r.value}px, ${i.value}px) scale(${e.value}) rotate(${n.value}deg)`,cursor:a.value?`grabbing`:`grab`,transition:a.value||o.value?`none`:`transform 0.3s ease`})),p=()=>{o.value=!0,e.value=1,n.value=0,r.value=0,i.value=0,requestAnimationFrame(()=>{o.value=!1})},m=()=>{e.value=Math.min(OFt,e.value*(1+EFt))},h=()=>{e.value=Math.max(DFt,e.value*(1-EFt))};return{imageStyle:f,resetTransform:p,zoomIn:m,zoomOut:h,rotateCW:()=>{n.value+=90},handleWheel:e=>{e.deltaY<0?m():h()},handleDragStart:e=>{if(e.button!==0)return;a.value=!0,s=e.clientX,l=e.clientY,u=r.value,d=i.value;let t=e=>{a.value&&(r.value=u+(e.clientX-s),i.value=d+(e.clientY-l))},n=()=>{a.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)}}}function AFt(e){let{visible:n,onClose:r,onPrev:i,onNext:a}=e,o=e=>{if(n.value)switch(e.key){case`Escape`:r();break;case`ArrowLeft`:i?.();break;case`ArrowRight`:a?.();break}},s=()=>{typeof document>`u`||(document.addEventListener(`keydown`,o),document.body.style.overflow=`hidden`)},l=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,o),document.body.style.overflow=``)};(0,t.watch)(n,e=>{e?s():l()},{immediate:!0}),(0,t.onBeforeUnmount)(()=>{l()})}var jFt=[`src`],MFt={key:1,class:`ai-image-preview-error`},NFt={class:`ai-image-preview-error-text`},PFt={key:2,class:`ai-image-preview-loading`},FFt=[`src`],IFt=(0,t.defineComponent)({name:`ImagePreview`,__name:`image-preview`,props:(0,t.mergeModels)({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:{type:Boolean,required:!0},visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let n=e,r=(0,t.useModel)(e,`visible`),i=(0,t.useModel)(e,`current`),{imageStyle:a,resetTransform:o,zoomIn:s,zoomOut:l,rotateCW:u,handleWheel:d,handleDragStart:f}=kFt(),p=(0,t.shallowRef)(`loading`),m=[],h=()=>{m.forEach(e=>URL.revokeObjectURL(e)),m.length=0},g=e=>{let t=URL.createObjectURL(e);return m.push(t),{url:t,name:e.name,file:e}},_=(0,t.computed)(()=>r.value?(h(),n.images.map(e=>e instanceof File?g(e):typeof e==`string`?{url:e}:e.file&&!e.url?{...e,url:g(e.file).url}:e)):(h(),[]));(0,t.onBeforeUnmount)(h);let v=(0,t.computed)(()=>_.value[i.value]??{url:``}),y=(0,t.computed)(()=>_.value.length>1),b=(0,t.computed)(()=>{let e=v.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),x=()=>{r.value=!1},S=()=>{n.maskClosable&&x()},C=e=>{i.value=e,o(),p.value=`loading`},w=()=>{C(i.value>0?i.value-1:_.value.length-1)},T=()=>{C(i.value<_.value.length-1?i.value+1:0)},E=()=>{let e=v.value,t=e.downloadUrl||e.url;if(n.onDownload){n.onDownload(t);return}let r=document.createElement(`a`);r.href=t,r.download=e.name||t.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},D=()=>{p.value=`loaded`},O=()=>{p.value=`error`};return AFt({visible:r,onClose:x,onPrev:()=>y.value&&w(),onNext:()=>y.value&&T()}),(n,m)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`ai-image-preview-fade`},{default:(0,t.withCtx)(()=>[r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`ai-image-preview`,onWheel:m[1]||=(0,t.withModifiers)((...e)=>(0,t.unref)(d)&&(0,t.unref)(d)(...e),[`prevent`])},[(0,t.createElementVNode)(`div`,{class:`ai-image-preview-close`,onClick:x},[(0,t.createVNode)((0,t.unref)($ye),{class:`ai-image-preview-close-icon`})]),y.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:w},[(0,t.createVNode)((0,t.unref)(Lu),{class:`ai-image-preview-arrow-icon`})]),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:T},[(0,t.createVNode)((0,t.unref)(ebe),{class:`ai-image-preview-arrow-icon`})])],64)):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-body`,onClick:(0,t.withModifiers)(S,[`self`]),onMousedown:m[0]||=(...e)=>(0,t.unref)(f)&&(0,t.unref)(f)(...e)},[p.value===`error`?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:v.value.url,style:(0,t.normalizeStyle)((0,t.unref)(a)),onError:O,onLoad:D},null,44,jFt)),p.value===`error`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,MFt,[(0,t.createVNode)((0,t.unref)(tbe),{class:`ai-image-preview-error-icon`}),(0,t.createElementVNode)(`p`,NFt,(0,t.toDisplayString)((0,t.unref)(Tu)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):(0,t.createCommentVNode)(`v-if`,!0),p.value===`loading`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,PFt,[v.value.thumbnailUrl?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:v.value.thumbnailUrl,style:(0,t.normalizeStyle)((0,t.unref)(a))},null,12,FFt)):(0,t.createCommentVNode)(`v-if`,!0)])):(0,t.createCommentVNode)(`v-if`,!0)],32),(0,t.createVNode)(TFt,{"active-index":i.value,"current-image-info":b.value,"is-multiple":y.value,"show-info":e.showInfo,total:_.value.length,onDownload:E,onReset:(0,t.unref)(o),onRotate:(0,t.unref)(u),onZoomIn:(0,t.unref)(s),onZoomOut:(0,t.unref)(l)},(0,t.createSlots)({_:2},[n.$slots.extra?{name:`extra`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):(0,t.createCommentVNode)(`v-if`,!0)]),_:3})]))}}),LFt={class:`ai-files-content`},RFt=[`alt`,`src`,`onClick`,`onError`],zFt={key:1,class:`file-content-image image-error`},BFt={key:2,class:`file-content-object`},VFt={class:`file-description`},HFt={class:`file-name`},UFt={class:`file-type`},WFt={class:`file-size`},T9=(0,t.defineComponent)({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:n}){let r=n,i=e,a=(0,t.reactive)({}),o=e=>e.url?!0:Yve(e.mimeType||e.file?.type),s=e=>e.url||e.file?.name||``,l=e=>{a[s(e)]=!0},u=e=>{r(`deleteFile`,e)},d=(0,t.shallowRef)(!1),f=(0,t.shallowRef)(0),p=(0,t.computed)(()=>i.files.filter(e=>o(e)&&!a[s(e)])),m=(0,t.computed)(()=>p.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),h=e=>{let t=p.value.indexOf(e);t<0||(f.value=t,d.value=!0)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,LFt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.files,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.file?.name,class:(0,t.normalizeClass)([`file-content`,{"is-file-object":!o(n)||a[s(n)]}])},[o(n)&&!a[s(n)]?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,alt:n.filename||n.file?.name,class:`file-content-image`,src:n.url||(0,t.unref)(Xve)(n.file),onClick:e=>h(n),onError:e=>l(n)},null,40,RFt)):o(n)&&a[s(n)]?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zFt,[(0,t.createVNode)((0,t.unref)(Bye),{class:`file-error-icon`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,BFt,[(0,t.createElementVNode)(`div`,VFt,[(0,t.createVNode)((0,t.unref)(Pu),{class:`file-icon`}),(0,t.createElementVNode)(`span`,HFt,(0,t.toDisplayString)(n.filename||n.file?.name),1),(0,t.createElementVNode)(`span`,UFt,(0,t.toDisplayString)(n.file?(0,t.unref)(Zve)(n.file):n.filename?.split(`.`).pop()||n.mimeType?.split(`/`).pop()),1)]),(0,t.createElementVNode)(`div`,WFt,(0,t.toDisplayString)((0,t.unref)(Qve)(n.file)),1)])),e.readonly?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(abe),{key:3,class:`file-delete-icon`,onClick:e=>u(n)},null,8,[`onClick`]))],2))),128)),(0,t.createVNode)(IFt,{current:f.value,"onUpdate:current":r[0]||=e=>f.value=e,visible:d.value,"onUpdate:visible":r[1]||=e=>d.value=e,images:m.value},null,8,[`current`,`visible`,`images`])]))}}),GFt=[`onClick`],KFt=(0,t.defineComponent)({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let n=e,r=(0,t.useTemplateRef)(`promptListRef`),{activeIndex:i}=Gu({items:(0,t.computed)(()=>n.prompts),onSelect:n.onSelect,menuRef:r});return(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`promptListRef`,ref:r,class:`ai-prompt-list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.prompts,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([`ai-prompt-list-item`,{"is-active":(0,t.unref)(i)===r}]),onClick:t=>e.onSelect(n)},(0,t.toDisplayString)(n),11,GFt))),128))],512))}}),qFt=[`onClick`],JFt=[`src`,`onError`],YFt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},XFt={class:`ai-skill-list-item-info`},ZFt={class:`ai-skill-list-item-name`},QFt=(0,t.defineComponent)({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let n=e,r=(0,t.reactive)(new Set),i=(0,t.useTemplateRef)(`skillListRef`),{activeIndex:a}=Gu({items:(0,t.computed)(()=>n.skills),onSelect:n.onSelect,menuRef:i});return(0,t.watchEffect)(()=>{n.skills,a.value=0}),(n,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`skillListRef`,ref:i,class:`ai-skill-list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.skills,(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.skill_code,class:(0,t.normalizeClass)([`ai-skill-list-item`,{"is-active":(0,t.unref)(a)===i}]),onClick:t=>e.onSelect(n)},[n.icon&&!r.has(n.skill_code)?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,src:n.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>r.add(n.skill_code)},null,40,JFt)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,YFt,(0,t.toDisplayString)(n.skill_name?.[0]?.toUpperCase()),1)),(0,t.createElementVNode)(`div`,XFt,[(0,t.createElementVNode)(`div`,ZFt,(0,t.toDisplayString)(n.skill_name),1)])],10,qFt))),128))],512))}}),$Ft={class:`ai-slash-item ai-slash-group-title`},eIt=[`onClick`],tIt=[`onClick`],nIt=[`title`],rIt=(0,t.defineComponent)({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let n=e,r=(0,t.useTemplateRef)(`menuRef`),i=(0,t.ref)([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),a=(0,t.shallowRef)([]),o=(0,t.shallowRef)([]),{activeIndex:s}=Gu({items:a,onSelect:n.onSelect,menuRef:r});(0,t.watchEffect)(()=>{let e=[],t=[];for(let[r,i]of Object.entries(cFt)){let a=n.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),t.push(...a))}s.value=0,a.value=t,o.value=e});let l=e=>{let t=i.value.findIndex(t=>t===e.type);t===-1?i.value.push(e.type):i.value.splice(t,1)};return(n,u)=>e.resourceList?.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`menuRef`,ref:r,class:`ai-slash-menu`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.value,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[n.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:r,class:`ai-slash-group`},[(0,t.createElementVNode)(`div`,$Ft,[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`title-icon`,style:(0,t.normalizeStyle)({transform:i.value.includes(n.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>l(n)},[...u[0]||=[(0,t.createElementVNode)(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,eIt)),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)(`mark-${n.type}`)},null,2),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(n.name)+` (`+(0,t.toDisplayString)(n.items.length)+`) `,1)]),i.value.includes(n.type)?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(n.items,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.id,class:(0,t.normalizeClass)([`ai-slash-item ai-slash-group-item`,{"is-active":a.value?.[(0,t.unref)(s)]?.id===n.id}]),onClick:t=>e.onSelect(n)},[(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`ellipsis-text`,title:n.name},[(0,t.createTextVNode)((0,t.toDisplayString)(n.name),1)],8,nIt)),[[(0,t.unref)(qu),{text:n.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,tIt))),128)):(0,t.createCommentVNode)(`v-if`,!0)])):(0,t.createCommentVNode)(`v-if`,!0)],64))),256))],512)):(0,t.createCommentVNode)(`v-if`,!0)}}),E9=(e,t,n,r)=>new i9().delete(n,r),iIt=(e,t,n,r)=>new i9().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),aIt=(e,t,n,r)=>new i9().insert(n,[[{text:r}]]),oIt=(e,t,n,r)=>new i9().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),sIt={class:`ai-slash-input-wrapper`},cIt=[`aria-placeholder`],lIt={key:0},uIt=[`data-tag-type`,`data-tag-value`],dIt={key:1},fIt=(0,t.defineComponent)({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:wu?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:n,emit:r}){let i=(0,t.useTemplateRef)(`editorRef`),a=(0,t.useTemplateRef)(`tippyRef`),o=r,s=e,l=(0,t.customRef)((e,t)=>({get(){return e(),typeof s.modelValue==`string`?t9(s.modelValue):s.modelValue},set(e){o(`update:modelValue`,e,e?.flat()?.filter(e=>e.type===`tag`)?.map(e=>s.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null)?.filter(e=>!!e)||[]),t()}})),u=(0,t.shallowRef)(`slash`),d=(0,t.shallowRef)(``),f=(0,t.shallowRef)([]),p=(0,t.shallowRef)([]),m=(0,t.shallowRef)([]),h,g,_=null,v=null,y=()=>{_!==null&&(clearTimeout(_),_=null),v!==null&&(clearTimeout(v),v=null)},b=()=>document.body,{commandSelection:x,GetCursorPosition:S,GetDocSnapshot:C,docSnapshot:w}=Qbe();(0,t.watch)(()=>s.modelValue,()=>{h.command(C),e9(w.value||[])!==e9(l.value||[])&&h.command(l9,e9(l.value||[]))},{deep:!1});let T=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{_=null;let e=O();d.value=e.query||``,e.isActive?(a.value?.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),a.value?.show()):a.value?.hide()},16)},E=e=>{if(o(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`)return e.shiftKey?void 0:(e.preventDefault?.(),!1);e.key===`@`&&(u.value=`slash`,T()),e.key===`/`&&(u.value=`skill`,T()),e.key===`\\`&&(u.value=`prompt`,T())},D=()=>{d.value=``},O=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=u.value===`slash`?`@`:u.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),l=a.match(s);if(!l)return e;let d=l[1]?.slice(1),f=l.index+l[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},k=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),A=e=>{h.command(S);let{column:t,line:n}=x.value;h.command(E9,[n,t-d.value.length-1],[n,t]),h.command(iIt,[n,t],e),h.command(aIt,[n,t+d.value.length+1+1],` `),a.value?.hide(),j()},j=()=>{v!==null&&clearTimeout(v),v=setTimeout(()=>{if(v=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();i.value&&e&&(t.selectNodeContents(i.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},M=e=>{h.command(l9,e),j()},N=e=>{h.command(S);let{column:t,line:n}=x.value;h.command(E9,[n,t-d.value.length-1],[n,t]),h.command(oIt,[n,t],e),h.command(aIt,[n,t+d.value.length+1+1],` `),a.value?.hide(),j()};(0,t.watchEffect)(()=>{let e=s.resources?.filter(e=>!l.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type))),t=s.skills?.filter(e=>!l.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)));d.value?(f.value=e.filter(e=>e.name.toLowerCase().includes(d.value.toLowerCase())),p.value=t.filter(e=>e.skill_name.toLowerCase().includes(d.value.toLowerCase())||e.skill_code.toLowerCase().includes(d.value.toLowerCase())),m.value=s.prompts.filter(e=>e.toLowerCase().includes(d.value.toLowerCase()))):(f.value=e,p.value=t,m.value=s.prompts),!f.value.length&&!p.value.length&&!m.value.length&&a.value?.hide()});let P=(e,t,n,r)=>{if(t.type===`tag`){let t=k(e,n);h.command(E9,[r,t],[r,t+1])}},F=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),o(`upload`,n))},I=()=>{g?.(),h=nFt({doc:l.value,schema:sFt,onChange:async e=>{l.value=e,T()},onKeyDown:e=>E(e)}),g=h.input(i.value)},L=()=>u.value===`slash`?f.value.length<1?!1:void 0:u.value===`skill`?p.value.length<1?!1:void 0:m.value.length<1?!1:void 0;return(0,t.onMounted)(()=>{I(),i.value?.addEventListener(`paste`,F)}),(0,t.onUnmounted)(()=>{y(),h.command(l9,``),g?.(),i.value?.removeEventListener(`paste`,F)}),n({cleanup:()=>{h.command(l9,``)},focus:j}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,sIt,[(0,t.createElementVNode)(`div`,{ref_key:`editorRef`,ref:i,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[l.value?.length&&l.value.some(e=>e.length)?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(l.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n},[e.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:i},[r.type===`text`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,lIt,(0,t.toDisplayString)(r.text),1)):r.type===`tag`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)(`mention-tag-${r.data.type}`),contenteditable:`false`,"data-tag-type":r.data.type,"data-tag-value":r.data.value},[(0,t.createTextVNode)((0,t.toDisplayString)(r.data.label)+` `,1),(0,t.createVNode)((0,t.unref)(zye),{class:`mention-tag-remove-icon`,onClick:t=>P(e,r,i,n)},null,8,[`onClick`])],10,uIt)):(0,t.createCommentVNode)(`v-if`,!0)],64))),128)):((0,t.openBlock)(),(0,t.createElementBlock)(`br`,dIt))]))),128)):(0,t.createCommentVNode)(`v-if`,!0)],8,cIt),(0,t.createVNode)((0,t.unref)(_u),{ref_key:`tippyRef`,ref:a,"append-to":b,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":i.value,"z-index":(0,t.unref)(Cye),onHidden:D,onShow:L},{content:(0,t.withCtx)(()=>[u.value===`slash`?((0,t.openBlock)(),(0,t.createBlock)(rIt,{key:0,"on-select":A,"resource-list":f.value},null,8,[`resource-list`])):u.value===`skill`?((0,t.openBlock)(),(0,t.createBlock)(QFt,{key:1,"on-select":N,skills:p.value},null,8,[`skills`])):u.value===`prompt`?((0,t.openBlock)(),(0,t.createBlock)(KFt,{key:2,"on-select":M,prompts:m.value},null,8,[`prompts`])):(0,t.createCommentVNode)(`v-if`,!0)]),_:1},8,[`trigger-target`,`z-index`])]))}}),pIt={class:`ai-input-attachment`},mIt=(0,t.defineComponent)({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:n}){let r=e,i=n,a=()=>{i(`stopSending`)},o=()=>{r.sendDisabledTip||r.messageState===Au.Disabled||r.messageState===Au.Pending||r.messageState===Au.Streaming||i(`sendMessage`)};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pIt,[(0,t.renderSlot)(n.$slots,`default`),(0,t.renderSlot)(n.$slots,`send-icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]])},[e.messageState===(0,t.unref)(Au).Streaming||e.messageState===(0,t.unref)(Au).Pending||e.messageState===(0,t.unref)(Au).Fetching?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(gbe),{key:0,onClick:a},null,512)),[[(0,t.unref)(yu),{...e.tippyOptions,content:(0,t.unref)(Tu)(`停止`),theme:`ai-chat-box`,offset:[0,16]}]]):(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(hbe),{key:1,onClick:o},null,512)),[[(0,t.unref)(yu),{...e.tippyOptions,content:e.sendDisabledTip||(r.messageState===(0,t.unref)(Au).Disabled?void 0:(0,t.unref)(Tu)(`发送`)),theme:`ai-chat-box`,offset:[0,16]}]])],2)])]))}}),hIt={key:1,class:`ai-divider`},gIt=(0,t.defineComponent)({__name:`chat-input`,props:(0,t.mergeModels)({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:wu?`Input "/" to trigger skill
3484
+ `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new i9().select(...u),Q7(...i)!==0&&S.delete(...i),a&&S.insert(i[0],t9(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),Q7(...u)!==0&&r(e,pPt(p(),...$7(u)),n)},z=e=>{e.preventDefault(),ee(e.clipboardData)},B=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new i9().delete(...$7(u))))},V=e=>{e.preventDefault();let[t,n]=$7(u);g(new i9().delete(t,n).insert(t,i(e.clipboardData,D)))},te=e=>{e.preventDefault();let t=e.dataTransfer,r=XPt(E,n,e,D);if(t&&r){let e=new i9;T&&e.delete(...$7(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ne=e=>{T=!0,ee(e.dataTransfer)},re=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,z),n.addEventListener(`cut`,B),n.addEventListener(`paste`,V),n.addEventListener(`drop`,te),n.addEventListener(`dragstart`,ne),n.addEventListener(`dragend`,re),()=>{b||(b=!0,f=x9,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,z),n.removeEventListener(`cut`,B),n.removeEventListener(`paste`,V),n.removeEventListener(`drop`,te),n.removeEventListener(`dragstart`,ne),n.removeEventListener(`dragend`,re))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},rFt=()=>``,iFt=({is:e,data:t,plain:n=rFt})=>({is:e,data:t,plain:n}),aFt=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(a9(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:{...n}}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,e9(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=zPt(y9(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])OPt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return YPt(e,t,o)}return t9(e.getData(`text/plain`))}}},oFt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},S9=e=>e9(e,oFt),sFt=aFt({multiline:!0,void:{tag:iFt({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),cFt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},C9=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),w9=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),lFt={class:`ai-file-upload-btn`},uFt=[`accept`],dFt=(0,t.defineComponent)({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:n}){let r=n,i=(0,t.useTemplateRef)(`fileInputRef`),a=()=>{i.value?.click()},o=e=>{let t=e.target,n=t.files;if(n?.length){let e=(kye/(1024*1024)).toFixed(1),t=Array.from(n),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&Sc({message:bu(a,e,wu),theme:`error`}),i.length&&r(`upload`,i)}t.value=``};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,lFt,[(0,t.createElementVNode)(`input`,{ref_key:`fileInputRef`,ref:i,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:o},null,40,uFt),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:a},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createVNode)((0,t.unref)(obe))])])),[[(0,t.unref)(yu),{...e.tippyOptions,content:(0,t.unref)(Tu)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]}]])]))}}),fFt={class:`ai-cite-content`},pFt={class:`ai-cite-content-text`},mFt=(0,t.defineComponent)({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,fFt,[(0,t.createVNode)((0,t.unref)(Tbe)),(0,t.createElementVNode)(`span`,pFt,(0,t.toDisplayString)(e.content),1),e.onClose?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(zu),{key:0,onClick:r[0]||=t=>e.onClose?.(e.content)})):(0,t.createCommentVNode)(`v-if`,!0)]))}}),hFt={class:`ai-image-preview-toolbar`},gFt={class:`ai-image-preview-toolbar-inner`},_Ft={key:0,class:`ai-image-preview-toolbar-pages`},vFt={key:1,class:`ai-image-preview-toolbar-divider`},yFt=[`data-tooltip`],bFt=[`data-tooltip`],xFt=[`data-tooltip`],SFt=[`data-tooltip`],CFt=[`data-tooltip`],wFt={class:`ai-image-preview-toolbar-info`},TFt=(0,t.defineComponent)({name:`PreviewToolbar`,__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hFt,[(0,t.createElementVNode)(`div`,gFt,[e.isMultiple?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,_Ft,(0,t.toDisplayString)(e.activeIndex+1)+` / `+(0,t.toDisplayString)(e.total),1)):(0,t.createCommentVNode)(`v-if`,!0),e.isMultiple?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,vFt)):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`缩小`),onClick:i[0]||=e=>r(`zoomOut`)},[(0,t.createVNode)((0,t.unref)(Yye))],8,yFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`放大`),onClick:i[1]||=e=>r(`zoomIn`)},[(0,t.createVNode)((0,t.unref)(Jye))],8,bFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`旋转`),onClick:i[2]||=e=>r(`rotate`)},[(0,t.createVNode)((0,t.unref)(Xye))],8,xFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`重置`),onClick:i[3]||=e=>r(`reset`)},[(0,t.createVNode)((0,t.unref)(Zye))],8,SFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(Tu)(`下载`),onClick:i[4]||=e=>r(`download`)},[(0,t.createVNode)((0,t.unref)(Qye))],8,CFt),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[i[5]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),(0,t.renderSlot)(n.$slots,`extra`)],64)):(0,t.createCommentVNode)(`v-if`,!0),e.showInfo&&e.currentImageInfo?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:3},[i[7]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),(0,t.createElementVNode)(`div`,wFt,[(0,t.createVNode)((0,t.unref)(nbe),{class:`ai-image-preview-toolbar-info-icon`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.currentImageInfo.width)+` px `+(0,t.toDisplayString)((0,t.unref)(Tu)(`宽`)),1),e.currentImageInfo.resolution?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[i[6]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),(0,t.createVNode)((0,t.unref)(nbe),{class:`ai-image-preview-toolbar-info-icon`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.currentImageInfo.resolution),1)],64)):(0,t.createCommentVNode)(`v-if`,!0)])],64)):(0,t.createCommentVNode)(`v-if`,!0)])]))}}),EFt=.15,DFt=.1,OFt=10;function kFt(){let e=(0,t.shallowRef)(1),n=(0,t.shallowRef)(0),r=(0,t.shallowRef)(0),i=(0,t.shallowRef)(0),a=(0,t.shallowRef)(!1),o=(0,t.shallowRef)(!1),s=0,l=0,u=0,d=0,f=(0,t.computed)(()=>({transform:`translate(${r.value}px, ${i.value}px) scale(${e.value}) rotate(${n.value}deg)`,cursor:a.value?`grabbing`:`grab`,transition:a.value||o.value?`none`:`transform 0.3s ease`})),p=()=>{o.value=!0,e.value=1,n.value=0,r.value=0,i.value=0,requestAnimationFrame(()=>{o.value=!1})},m=()=>{e.value=Math.min(OFt,e.value*(1+EFt))},h=()=>{e.value=Math.max(DFt,e.value*(1-EFt))};return{imageStyle:f,resetTransform:p,zoomIn:m,zoomOut:h,rotateCW:()=>{n.value+=90},handleWheel:e=>{e.deltaY<0?m():h()},handleDragStart:e=>{if(e.button!==0)return;a.value=!0,s=e.clientX,l=e.clientY,u=r.value,d=i.value;let t=e=>{a.value&&(r.value=u+(e.clientX-s),i.value=d+(e.clientY-l))},n=()=>{a.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)}}}function AFt(e){let{visible:n,onClose:r,onPrev:i,onNext:a}=e,o=e=>{if(n.value)switch(e.key){case`Escape`:r();break;case`ArrowLeft`:i?.();break;case`ArrowRight`:a?.();break}},s=()=>{typeof document>`u`||(document.addEventListener(`keydown`,o),document.body.style.overflow=`hidden`)},l=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,o),document.body.style.overflow=``)};(0,t.watch)(n,e=>{e?s():l()},{immediate:!0}),(0,t.onBeforeUnmount)(()=>{l()})}var jFt=[`src`],MFt={key:1,class:`ai-image-preview-error`},NFt={class:`ai-image-preview-error-text`},PFt={key:2,class:`ai-image-preview-loading`},FFt=[`src`],IFt=(0,t.defineComponent)({name:`ImagePreview`,__name:`image-preview`,props:(0,t.mergeModels)({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:{type:Boolean,required:!0},visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let n=e,r=(0,t.useModel)(e,`visible`),i=(0,t.useModel)(e,`current`),{imageStyle:a,resetTransform:o,zoomIn:s,zoomOut:l,rotateCW:u,handleWheel:d,handleDragStart:f}=kFt(),p=(0,t.shallowRef)(`loading`),m=[],h=()=>{m.forEach(e=>URL.revokeObjectURL(e)),m.length=0},g=e=>{let t=URL.createObjectURL(e);return m.push(t),{url:t,name:e.name,file:e}},_=(0,t.computed)(()=>r.value?(h(),n.images.map(e=>e instanceof File?g(e):typeof e==`string`?{url:e}:e.file&&!e.url?{...e,url:g(e.file).url}:e)):(h(),[]));(0,t.onBeforeUnmount)(h);let v=(0,t.computed)(()=>_.value[i.value]??{url:``}),y=(0,t.computed)(()=>_.value.length>1),b=(0,t.computed)(()=>{let e=v.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),x=()=>{r.value=!1},S=()=>{n.maskClosable&&x()},C=e=>{i.value=e,o(),p.value=`loading`},w=()=>{C(i.value>0?i.value-1:_.value.length-1)},T=()=>{C(i.value<_.value.length-1?i.value+1:0)},E=()=>{let e=v.value,t=e.downloadUrl||e.url;if(n.onDownload){n.onDownload(t);return}let r=document.createElement(`a`);r.href=t,r.download=e.name||t.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},D=()=>{p.value=`loaded`},O=()=>{p.value=`error`};return AFt({visible:r,onClose:x,onPrev:()=>y.value&&w(),onNext:()=>y.value&&T()}),(n,m)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`ai-image-preview-fade`},{default:(0,t.withCtx)(()=>[r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`ai-image-preview`,onWheel:m[1]||=(0,t.withModifiers)((...e)=>(0,t.unref)(d)&&(0,t.unref)(d)(...e),[`prevent`])},[(0,t.createElementVNode)(`div`,{class:`ai-image-preview-close`,onClick:x},[(0,t.createVNode)((0,t.unref)($ye),{class:`ai-image-preview-close-icon`})]),y.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:w},[(0,t.createVNode)((0,t.unref)(Lu),{class:`ai-image-preview-arrow-icon`})]),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:T},[(0,t.createVNode)((0,t.unref)(ebe),{class:`ai-image-preview-arrow-icon`})])],64)):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-body`,onClick:(0,t.withModifiers)(S,[`self`]),onMousedown:m[0]||=(...e)=>(0,t.unref)(f)&&(0,t.unref)(f)(...e)},[p.value===`error`?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:v.value.url,style:(0,t.normalizeStyle)((0,t.unref)(a)),onError:O,onLoad:D},null,44,jFt)),p.value===`error`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,MFt,[(0,t.createVNode)((0,t.unref)(tbe),{class:`ai-image-preview-error-icon`}),(0,t.createElementVNode)(`p`,NFt,(0,t.toDisplayString)((0,t.unref)(Tu)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):(0,t.createCommentVNode)(`v-if`,!0),p.value===`loading`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,PFt,[v.value.thumbnailUrl?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:v.value.thumbnailUrl,style:(0,t.normalizeStyle)((0,t.unref)(a))},null,12,FFt)):(0,t.createCommentVNode)(`v-if`,!0)])):(0,t.createCommentVNode)(`v-if`,!0)],32),(0,t.createVNode)(TFt,{"active-index":i.value,"current-image-info":b.value,"is-multiple":y.value,"show-info":e.showInfo,total:_.value.length,onDownload:E,onReset:(0,t.unref)(o),onRotate:(0,t.unref)(u),onZoomIn:(0,t.unref)(s),onZoomOut:(0,t.unref)(l)},(0,t.createSlots)({_:2},[n.$slots.extra?{name:`extra`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):(0,t.createCommentVNode)(`v-if`,!0)]),_:3})]))}}),LFt={class:`ai-files-content`},RFt=[`alt`,`src`,`onClick`,`onError`],zFt={key:1,class:`file-content-image image-error`},BFt={key:2,class:`file-content-object`},VFt={class:`file-description`},HFt={class:`file-name`},UFt={class:`file-type`},WFt={class:`file-size`},T9=(0,t.defineComponent)({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:n}){let r=n,i=e,a=(0,t.reactive)({}),o=e=>e.url?!0:Yve(e.mimeType||e.file?.type),s=e=>e.url||e.file?.name||``,l=e=>{a[s(e)]=!0},u=e=>{r(`deleteFile`,e)},d=(0,t.shallowRef)(!1),f=(0,t.shallowRef)(0),p=(0,t.computed)(()=>i.files.filter(e=>o(e)&&!a[s(e)])),m=(0,t.computed)(()=>p.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),h=e=>{let t=p.value.indexOf(e);t<0||(f.value=t,d.value=!0)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,LFt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.files,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.file?.name,class:(0,t.normalizeClass)([`file-content`,{"is-file-object":!o(n)||a[s(n)]}])},[o(n)&&!a[s(n)]?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,alt:n.filename||n.file?.name,class:`file-content-image`,src:n.url||(0,t.unref)(Xve)(n.file),onClick:e=>h(n),onError:e=>l(n)},null,40,RFt)):o(n)&&a[s(n)]?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zFt,[(0,t.createVNode)((0,t.unref)(Bye),{class:`file-error-icon`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,BFt,[(0,t.createElementVNode)(`div`,VFt,[(0,t.createVNode)((0,t.unref)(Pu),{class:`file-icon`}),(0,t.createElementVNode)(`span`,HFt,(0,t.toDisplayString)(n.filename||n.file?.name),1),(0,t.createElementVNode)(`span`,UFt,(0,t.toDisplayString)(n.file?(0,t.unref)(Zve)(n.file):n.filename?.split(`.`).pop()||n.mimeType?.split(`/`).pop()),1)]),(0,t.createElementVNode)(`div`,WFt,(0,t.toDisplayString)((0,t.unref)(Qve)(n.file)),1)])),e.readonly?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(abe),{key:3,class:`file-delete-icon`,onClick:e=>u(n)},null,8,[`onClick`]))],2))),128)),(0,t.createVNode)(IFt,{current:f.value,"onUpdate:current":r[0]||=e=>f.value=e,visible:d.value,"onUpdate:visible":r[1]||=e=>d.value=e,images:m.value},null,8,[`current`,`visible`,`images`])]))}}),GFt=[`onClick`],KFt=(0,t.defineComponent)({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let n=e,r=(0,t.useTemplateRef)(`promptListRef`),{activeIndex:i}=Gu({items:(0,t.computed)(()=>n.prompts),onSelect:n.onSelect,menuRef:r});return(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`promptListRef`,ref:r,class:`ai-prompt-list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.prompts,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([`ai-prompt-list-item`,{"is-active":(0,t.unref)(i)===r}]),onClick:t=>e.onSelect(n)},(0,t.toDisplayString)(n),11,GFt))),128))],512))}}),qFt=[`onClick`],JFt=[`src`,`onError`],YFt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},XFt={class:`ai-skill-list-item-info`},ZFt={class:`ai-skill-list-item-name`},QFt=(0,t.defineComponent)({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let n=e,r=(0,t.reactive)(new Set),i=(0,t.useTemplateRef)(`skillListRef`),{activeIndex:a}=Gu({items:(0,t.computed)(()=>n.skills),onSelect:n.onSelect,menuRef:i});return(0,t.watchEffect)(()=>{n.skills,a.value=0}),(n,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`skillListRef`,ref:i,class:`ai-skill-list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.skills,(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.skill_code,class:(0,t.normalizeClass)([`ai-skill-list-item`,{"is-active":(0,t.unref)(a)===i}]),onClick:t=>e.onSelect(n)},[n.icon&&!r.has(n.skill_code)?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,src:n.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>r.add(n.skill_code)},null,40,JFt)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,YFt,(0,t.toDisplayString)(n.skill_name?.[0]?.toUpperCase()),1)),(0,t.createElementVNode)(`div`,XFt,[(0,t.createElementVNode)(`div`,ZFt,(0,t.toDisplayString)(n.skill_name),1)])],10,qFt))),128))],512))}}),$Ft={class:`ai-slash-item ai-slash-group-title`},eIt=[`onClick`],tIt=[`onClick`],nIt=[`title`],rIt=(0,t.defineComponent)({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let n=e,r=(0,t.useTemplateRef)(`menuRef`),i=(0,t.ref)([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),a=(0,t.shallowRef)([]),o=(0,t.shallowRef)([]),{activeIndex:s}=Gu({items:a,onSelect:n.onSelect,menuRef:r});(0,t.watchEffect)(()=>{let e=[],t=[];for(let[r,i]of Object.entries(cFt)){let a=n.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),t.push(...a))}s.value=0,a.value=t,o.value=e});let l=e=>{let t=i.value.findIndex(t=>t===e.type);t===-1?i.value.push(e.type):i.value.splice(t,1)};return(n,u)=>e.resourceList?.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`menuRef`,ref:r,class:`ai-slash-menu`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.value,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[n.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:r,class:`ai-slash-group`},[(0,t.createElementVNode)(`div`,$Ft,[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`title-icon`,style:(0,t.normalizeStyle)({transform:i.value.includes(n.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>l(n)},[...u[0]||=[(0,t.createElementVNode)(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,eIt)),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)(`mark-${n.type}`)},null,2),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(n.name)+` (`+(0,t.toDisplayString)(n.items.length)+`) `,1)]),i.value.includes(n.type)?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(n.items,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.id,class:(0,t.normalizeClass)([`ai-slash-item ai-slash-group-item`,{"is-active":a.value?.[(0,t.unref)(s)]?.id===n.id}]),onClick:t=>e.onSelect(n)},[(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`ellipsis-text`,title:n.name},[(0,t.createTextVNode)((0,t.toDisplayString)(n.name),1)],8,nIt)),[[(0,t.unref)(qu),{text:n.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,tIt))),128)):(0,t.createCommentVNode)(`v-if`,!0)])):(0,t.createCommentVNode)(`v-if`,!0)],64))),256))],512)):(0,t.createCommentVNode)(`v-if`,!0)}}),E9=(e,t,n,r)=>new i9().delete(n,r),iIt=(e,t,n,r)=>new i9().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),aIt=(e,t,n,r)=>new i9().insert(n,[[{text:r}]]),oIt=(e,t,n,r)=>new i9().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),sIt={class:`ai-slash-input-wrapper`},cIt=[`aria-placeholder`],lIt={key:0},uIt=[`data-tag-type`,`data-tag-value`],dIt={key:1},fIt=(0,t.defineComponent)({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:wu?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:n,emit:r}){let i=(0,t.useTemplateRef)(`editorRef`),a=(0,t.useTemplateRef)(`tippyRef`),o=r,s=e,l=(0,t.customRef)((e,t)=>({get(){return e(),typeof s.modelValue==`string`?t9(s.modelValue):s.modelValue},set(e){o(`update:modelValue`,e,e?.flat()?.filter(e=>e.type===`tag`)?.map(e=>s.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null)?.filter(e=>!!e)||[]),t()}})),u=(0,t.shallowRef)(`slash`),d=(0,t.shallowRef)(``),f=(0,t.shallowRef)([]),p=(0,t.shallowRef)([]),m=(0,t.shallowRef)([]),h,g,_=null,v=null,y=()=>{_!==null&&(clearTimeout(_),_=null),v!==null&&(clearTimeout(v),v=null)},b=()=>document.body,{commandSelection:x,GetCursorPosition:S,GetDocSnapshot:C,docSnapshot:w}=Qbe();(0,t.watch)(()=>s.modelValue,()=>{h.command(C),e9(w.value||[])!==e9(l.value||[])&&h.command(l9,e9(l.value||[]))},{deep:!1});let T=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{_=null;let e=O();d.value=e.query||``,e.isActive?(a.value?.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),a.value?.show()):a.value?.hide()},16)},E=e=>{if(o(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`)return e.shiftKey?void 0:(e.preventDefault?.(),!1);e.key===`@`&&(u.value=`slash`,T()),e.key===`/`&&(u.value=`skill`,T()),e.key===`\\`&&(u.value=`prompt`,T())},D=()=>{d.value=``},O=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=u.value===`slash`?`@`:u.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),l=a.match(s);if(!l)return e;let d=l[1]?.slice(1),f=l.index+l[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},k=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),A=e=>{h.command(S);let{column:t,line:n}=x.value;h.command(E9,[n,t-d.value.length-1],[n,t]),h.command(iIt,[n,t],e),h.command(aIt,[n,t+d.value.length+1+1],` `),a.value?.hide(),j()},j=()=>{v!==null&&clearTimeout(v),v=setTimeout(()=>{if(v=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();i.value&&e&&(t.selectNodeContents(i.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},M=e=>{h.command(l9,e),j()},N=e=>{h.command(S);let{column:t,line:n}=x.value;h.command(E9,[n,t-d.value.length-1],[n,t]),h.command(oIt,[n,t],e),h.command(aIt,[n,t+d.value.length+1+1],` `),a.value?.hide(),j()};(0,t.watchEffect)(()=>{let e=s.resources?.filter(e=>!l.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type))),t=s.skills?.filter(e=>!l.value?.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)));d.value?(f.value=e.filter(e=>e.name.toLowerCase().includes(d.value.toLowerCase())),p.value=t.filter(e=>e.skill_name.toLowerCase().includes(d.value.toLowerCase())||e.skill_code.toLowerCase().includes(d.value.toLowerCase())),m.value=s.prompts.filter(e=>e.toLowerCase().includes(d.value.toLowerCase()))):(f.value=e,p.value=t,m.value=s.prompts),!f.value.length&&!p.value.length&&!m.value.length&&a.value?.hide()});let P=(e,t,n,r)=>{if(t.type===`tag`){let t=k(e,n);h.command(E9,[r,t],[r,t+1])}},F=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),o(`upload`,n))},I=()=>{g?.(),h=nFt({doc:l.value,schema:sFt,onChange:async e=>{l.value=e,T()},onKeyDown:e=>E(e)}),g=h.input(i.value)},L=()=>u.value===`slash`?f.value.length<1?!1:void 0:u.value===`skill`?p.value.length<1?!1:void 0:m.value.length<1?!1:void 0;return(0,t.onMounted)(()=>{I(),i.value?.addEventListener(`paste`,F)}),(0,t.onUnmounted)(()=>{y(),h.command(l9,``),g?.(),i.value?.removeEventListener(`paste`,F)}),n({cleanup:()=>{h.command(l9,``)},focus:j}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,sIt,[(0,t.createElementVNode)(`div`,{ref_key:`editorRef`,ref:i,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[l.value?.length&&l.value.some(e=>e.length)?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(l.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n},[e.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:i},[r.type===`text`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,lIt,(0,t.toDisplayString)(r.text),1)):r.type===`tag`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)(`mention-tag-${r.data.type}`),contenteditable:`false`,"data-tag-type":r.data.type,"data-tag-value":r.data.value},[(0,t.createTextVNode)((0,t.toDisplayString)(r.data.label)+` `,1),(0,t.createVNode)((0,t.unref)(zye),{class:`mention-tag-remove-icon`,onClick:t=>P(e,r,i,n)},null,8,[`onClick`])],10,uIt)):(0,t.createCommentVNode)(`v-if`,!0)],64))),128)):((0,t.openBlock)(),(0,t.createElementBlock)(`br`,dIt))]))),128)):(0,t.createCommentVNode)(`v-if`,!0)],8,cIt),(0,t.createVNode)((0,t.unref)(_u),{ref_key:`tippyRef`,ref:a,"append-to":b,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":i.value,"z-index":(0,t.unref)(Cye),onHidden:D,onShow:L},{content:(0,t.withCtx)(()=>[u.value===`slash`?((0,t.openBlock)(),(0,t.createBlock)(rIt,{key:0,"on-select":A,"resource-list":f.value},null,8,[`resource-list`])):u.value===`skill`?((0,t.openBlock)(),(0,t.createBlock)(QFt,{key:1,"on-select":N,skills:p.value},null,8,[`skills`])):u.value===`prompt`?((0,t.openBlock)(),(0,t.createBlock)(KFt,{key:2,"on-select":M,prompts:m.value},null,8,[`prompts`])):(0,t.createCommentVNode)(`v-if`,!0)]),_:1},8,[`trigger-target`,`z-index`])]))}}),pIt={class:`ai-input-attachment`},mIt=(0,t.defineComponent)({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:n}){let r=e,i=n,a=()=>{i(`stopSending`)},o=()=>{r.sendDisabledTip||r.messageState===Au.Disabled||r.messageState===Au.Pending||r.messageState===Au.Streaming||i(`sendMessage`)};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pIt,[(0,t.renderSlot)(n.$slots,`default`),(0,t.renderSlot)(n.$slots,`send-icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]]),onClick:o},[e.messageState===(0,t.unref)(Au).Streaming||e.messageState===(0,t.unref)(Au).Pending||e.messageState===(0,t.unref)(Au).Fetching?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(gbe),{key:0,onClick:a},null,512)),[[(0,t.unref)(yu),{...e.tippyOptions,content:(0,t.unref)(Tu)(`停止`),theme:`ai-chat-box`,offset:[0,16]}]]):(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(hbe),{key:1},null,512)),[[(0,t.unref)(yu),{...e.tippyOptions,content:e.sendDisabledTip||(r.messageState===(0,t.unref)(Au).Disabled?void 0:(0,t.unref)(Tu)(`发送`)),theme:`ai-chat-box`,offset:[0,16]}]])],2)])]))}}),hIt={key:1,class:`ai-divider`},gIt=(0,t.defineComponent)({__name:`chat-input`,props:(0,t.mergeModels)({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:wu?`Input "/" to trigger skill
3485
3485
  Input "\\" to trigger prompt
3486
3486
  Input "@" to trigger tool and MCP
3487
3487
  Use Shift + Enter to enter a new line`:`输入 "/" 唤出 Skill
@@ -3474,7 +3474,7 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
3474
3474
  `),e+n.reduce((e,n)=>e+(P7(n)?n.text:t?t(n):`@${n.data?.label}`),``)),``),A7=e=>e.split(`
3475
3475
  `).map(e=>e?[{text:e,type:`text`}]:[]),j7=1,M7=2,fPt=3,pPt=e=>e._type!==fPt,N7=class e extends Array{static from(t){return new e(...t)}delete(e,t){return this.push({_type:j7,_start:e,_end:t}),this}insert(e,t){return this.push({_type:M7,_pos:e,_fragment:t}),this}select(e,t){return this.push({_type:fPt,_anchor:e,_focus:t}),this}transform(e){return this.reduce((e,t)=>pPt(t)?L7(e,t):e,e)}},mPt=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),P7=e=>`text`in e,hPt=e=>P7(e)?e.text.length:1,gPt=e=>e.reduce((e,t)=>e+hPt(t),0),F7=(e,t)=>{let n=[...e];if(!n.length)n.push(...t);else for(let e of t){let t=n.length-1,r=n[t];P7(e)&&P7(r)?n[t]={text:r.text+e.text}:n.push(e)}return n},I7=(e,t)=>{for(let n=0;n<e.length;n++){let r=e[n],i=hPt(r);if(i>t){let i=e.slice(0,n),a=e.slice(n+1);if(P7(r)){let e=r.text.slice(0,t),n=r.text.slice(t);e&&i.push({text:e}),n&&a.unshift({text:n})}else a.unshift(r);return[i,a]}t-=i}return[e,[]]},_Pt=(e,t,n,r)=>{let[i]=n,[a]=r||n,o=I7(e[n[0]],n[1]),s=o[0],l=r?I7(e[r[0]],r[1])[1]:o[1],u=[...t];u.length?(u[0]=F7(s,u[0]),u[u.length-1]=F7(u[u.length-1],l)):u.push(F7(s,l)),e.splice(i,a-i+1,...u)},vPt=(e,t,n)=>E7(t,n)===0?[I7(I7(e[t[0]],n[1])[0],t[1])[1]]:[I7(e[t[0]],t[1])[1],...e.slice(t[0]+1,n[0]),I7(e[n[0]],n[1])[0]],yPt=e=>{switch(e._type){case j7:return D7(e._start,e._end)===1;case M7:return!!k7(e._fragment)}return!0},bPt=(e,t)=>{switch(t._type){case j7:_Pt(e,[],t._start,t._end);break;case M7:_Pt(e,t._fragment,t._pos);break;default:}},L7=(e,t)=>{switch(t._type){case j7:{let{_start:n,_end:r}=t;if(D7(e,n)!==1)return D7(r,e)===1?[e[0]+n[0]-r[0],e[1]+(E7(r,e)===0?n[1]-r[1]:0)]:n;break}case M7:{let{_pos:n,_fragment:r}=t,i=r.length,a=i-1;if(D7(e,n)!==1)return[e[0]+a,e[1]+(E7(e,n)===0?gPt(r[i-1])-(a===0?0:n[1]):0)];break}default:}return e},xPt=(e,t,n)=>{let r=[...e],i=[...t];try{for(let r of n)yPt(r)&&(pPt(r)?(bPt(e,r),t[0]=L7(t[0],r),t[1]=L7(t[1],r)):(r._anchor&&(t[0]=r._anchor),r._focus&&(t[1]=r._focus)))}catch(n){console.error(`rollback transaction:`,n),e.length=0,e.push(...r),t[0]=i[0],t[1]=i[1]}},R7=(e,t,n)=>new N7().delete([0,0],[e.length-1,gPt(e[e.length-1])]).insert([0,0],A7(n)),SPt=Math.min,CPt=typeof queueMicrotask==`function`?queueMicrotask:e=>{Promise.resolve().then(e)},z7,B7,V7,H7,U7=!1,W7=!1,wPt,TPt=1,EPt=4,DPt=5,OPt=6,kPt=1,APt=3,jPt=8,MPt=e=>e.nodeType===APt,G7=e=>e.nodeType===kPt,NPt=e=>e.nodeType===jPt,PPt=new Set([`EMBED`,`IMG`,`PICTURE`,`AUDIO`,`VIDEO`,`SVG`,`CANVAS`,`MATH`,`IFRAME`,`OBJECT`]),FPt=e=>e.contentEditable===`false`||PPt.has(e.tagName),K7=()=>B7,IPt=()=>V7===1?B7.data.length:+(V7===2),LPt=e=>{z7.currentNode=z7.currentNode.parentNode.children[e]},RPt=e=>{let t=e.nextSibling;return!!t&&!NPt(t)},zPt=()=>{for(;;){if(V7===2){let e=B7;for(;(B7=z7.nextNode())&&e.contains(B7););}else B7=z7.nextNode();if(V7=null,!B7)break;if(H7){if(H7.contains(B7)){if(U7=!0,W7)break}else if(U7)break}if(MPt(B7)){let e=B7.data;if(e)return V7=e===`
3476
3476
  `?RPt(B7)?3:OPt:1}else if(G7(B7)){if(B7.tagName===`BR`)return V7=RPt(B7)?3:DPt;if(FPt(B7))return V7=2;if(wPt(B7))return V7=4}}},q7=(e,t,{_document:n,_isBlock:r},i)=>{try{return wPt=r,z7=n.createTreeWalker(t,EPt|TPt),i&&(i._startNode&&(z7.currentNode=i._startNode,z7.previousNode()),i._endNode&&(H7=i._endNode),W7=i._excludeEnd||!1),e(zPt)}finally{z7=B7=V7=H7=null,U7=W7=!1}},BPt=new Set([`DIV`,`H1`,`H2`,`H3`,`H4`,`H5`,`H6`,`P`,`PRE`,`LI`,`DT`,`DD`,`TR`]),VPt=e=>BPt.has(e.tagName),HPt=2,UPt=e=>e.ownerDocument,J7=e=>UPt(e).getSelection(),WPt=(e,t)=>{if(e.rangeCount){let n=e.getRangeAt(0);if(t.contains(n.commonAncestorContainer))return n}},GPt=(e,t,n)=>{let r=J7(e);r.removeAllRanges(),r.addRange(t),n&&(r.collapseToEnd(),r.extend(t.startContainer,t.startOffset))},KPt=(e,t,[n,r],i)=>{let a=D7(n,r),o=a===0,s=a===-1,l=s?r:n,u=s?n:r;if(l[0]===0&&l[1]===0&&o&&!t.hasChildNodes()){let n=e.createRange();return n.setStart(t,0),n.setEnd(t,0),GPt(t,n),!0}let d=qPt(t,l,i);if(!d)return!1;let f=o?d:qPt(t,u,i);if(!f)return!1;let p=e.createRange(),[m,h]=d,[g,_]=f;return G7(m)?h<1?p.setStartBefore(m):p.setStartAfter(m):p.setStart(m,h),G7(g)?_<1?p.setEndBefore(g):p.setEndAfter(g):p.setEnd(g,_),GPt(t,p,s),!0},qPt=(e,[t,n],r)=>q7(e=>{let r,i=!1;for(;r=e();)if(r===4)i||(i=!0,t!==0&&LPt(t));else{let e=IPt();if(n<=e)return[K7(),n];n-=e}},e,r),JPt=(e,t)=>{let n=t;for(;;){let t=n.parentElement;if(t===e)break;n=t}return n},YPt=e=>{let t=0;for(;e=e.previousElementSibling;)t++;return t},Y7=(e,t,n,r)=>{let i,a,o=!0;if(e===t&&!t.hasChildNodes())return[0,0];if(G7(t)&&!FPt(t)&&t.hasChildNodes()){let e=SPt(n,t.childNodes.length-1);t=t.childNodes[e],o=e===n,n=0}let s=JPt(e,t);return r._isBlock(s)?(i=s,a=YPt(i)):(i=e,a=0),q7(e=>{let t,r=0;for(;t=e();)t===3?(a++,r=0):r+=IPt();return[a,r+n]},i,r,{_endNode:t,_excludeEnd:o})},XPt=(e,t,{startOffset:n,startContainer:r,endOffset:i,endContainer:a})=>{let o=Y7(e,r,n,t);return[o,r===a&&n===i?o:Y7(e,a,i,t)]},ZPt=()=>[[0,0],[0,0]],QPt=(e,t)=>e.compareDocumentPosition(t),$Pt=(e,t)=>{let n=J7(e),r=WPt(n,e);if(!r)return ZPt();let i=XPt(e,t,r);return(n.anchorNode===n.focusNode?n.anchorOffset>n.focusOffset:(QPt(n.anchorNode,n.focusNode)&HPt)!==0)?[i[1],i[0]]:i},eFt=(e,t,n,r)=>q7(e=>{let t,i=null,a=``,o=!1,s=[],l=()=>{a&&=(i||=[],i.push({text:a}),``)},u=()=>{l(),!i&&o&&(i=[]),i&&s.push(i),i=null,o=!1};for(;t=e();)if(t===4)u();else if(o=!0,t===1){let e=K7(),t=e.data;r&&(r._end[0]===e&&(t=t.slice(0,r._end[1])),r._start?.[0]===e&&(t=t.slice(r._start[1]))),a+=t}else if(t===2){l();let e=K7();if(r&&(r._end[0]===e&&r._end[1]===0||r._start?.[0]===e&&r._start[1]!==0))continue;let t=n(e);t&&i.push({data:t})}else t===3&&u();return u(),s.length||s.push([]),s},e,t,r&&{_startNode:r._start?.[0],_endNode:r._end[0]}),tFt=(e,t,{clientX:n,clientY:r},i)=>{if(e.caretPositionFromPoint){let a=e.caretPositionFromPoint(n,r);if(a)return Y7(t,a.offsetNode,a.offset,i)}else if(e.caretRangeFromPoint){let a=e.caretRangeFromPoint(n,r);if(a)return Y7(t,a.startContainer,a.startOffset,i)}},nFt=500,rFt=500,iFt=e=>{let t=0,n=0,r=Date.now,i=[e],a=()=>i[t],o=()=>t>0,s=()=>t<i.length-1;return{get:a,set:e=>{i[t]=e},undo:()=>{if(o())return t--,a()},redo:()=>{if(s())return t++,a()},push:e=>{let a=r();t!==0&&a-n<rFt&&t--,n=a,i[++t]=e,i.splice(t+1),t>nFt&&(t--,i.shift())}}},aFt=(e,t)=>{let n=!1,r=[],i=e=>{n&&r.push(...e)},a=new MutationObserver(e=>{i(e),n||t()}),o=()=>{i(a.takeRecords())};return a.observe(e,{characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),{_record(e){!n&&e&&o(),n=e},_flush:()=>(o(),r.splice(0)),_dispose(){r.splice(0),a.disconnect()}}},oFt=e=>N7.from(e.map(e=>e._type===2?$($({},e),{},{_fragment:[e._fragment.reduce((e,t)=>F7(e,t),[])]}):e)),X7=()=>{},sFt=({schema:{single:e,js:t,doc:n,copy:r,paste:i},doc:a,isBlock:o=VPt,onChange:s,onKeyDown:l})=>{let u=ZPt(),d=!1,f=X7,p=()=>m.get()[0],m=iFt([n(a),u]),h=[],g=e=>{d||(h.unshift(e),v(y))},_=new Set,v=e=>{_.has(e)||(_.add(e),CPt(()=>{_.delete(e),e()}))},y=()=>{if(h.length){let n=[...p()],r=[...u],i;for(;i=h.pop();)e&&(i=oFt(i)),xPt(n,r,i);let a=p();mPt(n,a)||(m.set([a,u]),m.push([n,r]),s(t(n))),u=r}};return{input:n=>{if(!(window.InputEvent&&typeof InputEvent.prototype.getTargetRanges==`function`))return console.error(`beforeinput event is not supported.`),X7;let{contentEditable:a,role:h,ariaMultiLine:_,ariaReadOnly:v}=n,y=n.style.whiteSpace;n.role=`textbox`,n.style.whiteSpace=`pre-wrap`,e||(n.ariaMultiLine=`true`);let b=!1,x=!1,S=null,C=!1,w=!1,T=!1,E=UPt(n),D={_document:E,_isBlock:o};f=()=>{n.contentEditable=d?`false`:`true`,n.ariaReadOnly=d?`true`:null},f();let O=aFt(n,()=>{w&&KPt(E,n,u,D)}),k=()=>{u=$Pt(n,D)},A=()=>{let e=O._flush();if(O._record(!1),e.length){let t;for(;t=e.pop();)if(t.type===`childList`){let{target:e,removedNodes:n,addedNodes:r,nextSibling:i}=t;for(let t=n.length-1;t>=0;t--)e.insertBefore(n[t],i);for(let t=r.length-1;t>=0;t--)e.removeChild(r[t])}else t.target.nodeValue=t.oldValue;O._flush(),x=KPt(E,n,u,D)}g(S),C=!1,S=null},j=e=>{if(!C){if(l!=null&&l(e)){e.preventDefault();return}if((e.metaKey||e.ctrlKey)&&!e.altKey&&e.code===`KeyZ`&&(e.preventDefault(),O._record(!1),!d)){let n=e.shiftKey?m.redo():m.undo();n&&(s(t(n[0])),u=n[1])}}},M=()=>{C||A()},N=e=>{e.preventDefault();let t=e.inputType;if(t.startsWith(`format`)||t===`historyUndo`||t===`historyRedo`)return;C?O._record(!0):k();let r=e.getTargetRanges()[0];if(r){let i=XPt(n,D,r),a=t===`insertParagraph`||t===`insertLineBreak`?`
3477
- `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new N7().select(...u),D7(...i)!==0&&S.delete(...i),a&&S.insert(i[0],A7(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),D7(...u)!==0&&r(e,vPt(p(),...O7(u)),n)},z=e=>{e.preventDefault(),ee(e.clipboardData)},B=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new N7().delete(...O7(u))))},V=e=>{e.preventDefault();let[t,n]=O7(u);g(new N7().delete(t,n).insert(t,i(e.clipboardData,D)))},te=e=>{e.preventDefault();let t=e.dataTransfer,r=tFt(E,n,e,D);if(t&&r){let e=new N7;T&&e.delete(...O7(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ne=e=>{T=!0,ee(e.dataTransfer)},re=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,z),n.addEventListener(`cut`,B),n.addEventListener(`paste`,V),n.addEventListener(`drop`,te),n.addEventListener(`dragstart`,ne),n.addEventListener(`dragend`,re),()=>{b||(b=!0,f=X7,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,z),n.removeEventListener(`cut`,B),n.removeEventListener(`paste`,V),n.removeEventListener(`drop`,te),n.removeEventListener(`dragstart`,ne),n.removeEventListener(`dragend`,re))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},cFt=()=>``,lFt=({is:e,data:t,plain:n=cFt})=>({is:e,data:t,plain:n}),uFt=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(P7(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:$({},n)}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,k7(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=WPt(J7(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])NPt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return eFt(e,t,o)}return A7(e.getData(`text/plain`))}}},dFt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},Z7=e=>k7(e,dFt),fFt=uFt({multiline:!0,void:{tag:lFt({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),pFt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},mFt=Symbol(`imagePreviewGroup`),Q7=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),$7=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),hFt={class:`ai-file-upload-btn`},gFt=[`accept`],_Ft=(0,t.defineComponent)({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:n}){let r=n,i=(0,t.useTemplateRef)(`fileInputRef`),a=()=>{var e;(e=i.value)==null||e.click()},o=e=>{let t=e.target,n=t.files;if(n!=null&&n.length){let e=(QDt/(1024*1024)).toFixed(1),t=Array.from(n),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&nc({message:R8(a,e,H8),theme:`error`}),i.length&&r(`upload`,i)}t.value=``};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hFt,[(0,t.createElementVNode)(`input`,{ref_key:`fileInputRef`,ref:i,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:o},null,40,gFt),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:a},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createVNode)((0,t.unref)(MOt))])])),[[(0,t.unref)(Jl),$($({},e.tippyOptions),{},{content:(0,t.unref)(U8)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]})]])]))}}),vFt={class:`ai-cite-content`},yFt={class:`ai-cite-content-text`},bFt=(0,t.defineComponent)({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vFt,[(0,t.createVNode)((0,t.unref)(ZOt)),(0,t.createElementVNode)(`span`,yFt,(0,t.toDisplayString)(e.content),1),e.onClose?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(a5),{key:0,onClick:r[0]||=t=>e.onClose?.call(e,e.content)})):(0,t.createCommentVNode)(``,!0)]))}}),xFt={class:`ai-image-preview-toolbar`},SFt={class:`ai-image-preview-toolbar-inner`},CFt={key:0,class:`ai-image-preview-toolbar-pages`},wFt={key:1,class:`ai-image-preview-toolbar-divider`},TFt=[`data-tooltip`],EFt=[`data-tooltip`],DFt=[`data-tooltip`],OFt=[`data-tooltip`],kFt=[`data-tooltip`],AFt={class:`ai-image-preview-toolbar-info`},jFt=(0,t.defineComponent)($($({},{name:`PreviewToolbar`}),{},{__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xFt,[(0,t.createElementVNode)(`div`,SFt,[e.isMultiple?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,CFt,(0,t.toDisplayString)(e.activeIndex+1)+` / `+(0,t.toDisplayString)(e.total),1)):(0,t.createCommentVNode)(``,!0),e.isMultiple?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wFt)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`缩小`),onClick:i[0]||=e=>r(`zoomOut`)},[(0,t.createVNode)((0,t.unref)(bOt))],8,TFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`放大`),onClick:i[1]||=e=>r(`zoomIn`)},[(0,t.createVNode)((0,t.unref)(yOt))],8,EFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`旋转`),onClick:i[2]||=e=>r(`rotate`)},[(0,t.createVNode)((0,t.unref)(xOt))],8,DFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`重置`),onClick:i[3]||=e=>r(`reset`)},[(0,t.createVNode)((0,t.unref)(SOt))],8,OFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`下载`),onClick:i[4]||=e=>r(`download`)},[(0,t.createVNode)((0,t.unref)(COt))],8,kFt),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[i[5]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),(0,t.renderSlot)(n.$slots,`extra`)],64)):(0,t.createCommentVNode)(``,!0),e.showInfo&&e.currentImageInfo?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:3},[i[7]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),(0,t.createElementVNode)(`div`,AFt,[(0,t.createVNode)((0,t.unref)(OOt),{class:`ai-image-preview-toolbar-info-icon`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.currentImageInfo.width)+` px `+(0,t.toDisplayString)((0,t.unref)(U8)(`宽`)),1),e.currentImageInfo.resolution?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[i[6]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),(0,t.createVNode)((0,t.unref)(OOt),{class:`ai-image-preview-toolbar-info-icon`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.currentImageInfo.resolution),1)],64)):(0,t.createCommentVNode)(``,!0)])],64)):(0,t.createCommentVNode)(``,!0)])]))}})),MFt=.15,NFt=.1,PFt=10;function FFt(){let e=(0,t.shallowRef)(1),n=(0,t.shallowRef)(0),r=(0,t.shallowRef)(0),i=(0,t.shallowRef)(0),a=(0,t.shallowRef)(!1),o=(0,t.shallowRef)(!1),s=0,l=0,u=0,d=0,f=(0,t.computed)(()=>({transform:`translate(${r.value}px, ${i.value}px) scale(${e.value}) rotate(${n.value}deg)`,cursor:a.value?`grabbing`:`grab`,transition:a.value||o.value?`none`:`transform 0.3s ease`})),p=()=>{o.value=!0,e.value=1,n.value=0,r.value=0,i.value=0,requestAnimationFrame(()=>{o.value=!1})},m=()=>{e.value=Math.min(PFt,e.value*(1+MFt))},h=()=>{e.value=Math.max(NFt,e.value*(1-MFt))};return{imageStyle:f,resetTransform:p,zoomIn:m,zoomOut:h,rotateCW:()=>{n.value+=90},handleWheel:e=>{e.deltaY<0?m():h()},handleDragStart:e=>{if(e.button!==0)return;a.value=!0,s=e.clientX,l=e.clientY,u=r.value,d=i.value;let t=e=>{a.value&&(r.value=u+(e.clientX-s),i.value=d+(e.clientY-l))},n=()=>{a.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)}}}function IFt(e){let{visible:n,onClose:r,onPrev:i,onNext:a}=e,o=e=>{if(n.value)switch(e.key){case`Escape`:r();break;case`ArrowLeft`:i?.();break;case`ArrowRight`:a?.();break}},s=()=>{typeof document>`u`||(document.addEventListener(`keydown`,o),document.body.style.overflow=`hidden`)},l=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,o),document.body.style.overflow=``)};(0,t.watch)(n,e=>{e?s():l()},{immediate:!0}),(0,t.onBeforeUnmount)(()=>{l()})}var LFt=[`src`],RFt={key:1,class:`ai-image-preview-error`},zFt={class:`ai-image-preview-error-text`},BFt={key:2,class:`ai-image-preview-loading`},VFt=[`src`],e9=(0,t.defineComponent)($($({},{name:`ImagePreview`}),{},{__name:`image-preview`,props:(0,t.mergeModels)({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:$({type:Boolean},{required:!0}),visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let n=e,r=(0,t.useModel)(e,`visible`),i=(0,t.useModel)(e,`current`),{imageStyle:a,resetTransform:o,zoomIn:s,zoomOut:l,rotateCW:u,handleWheel:d,handleDragStart:f}=FFt(),p=(0,t.shallowRef)(`loading`),m=[],h=()=>{m.forEach(e=>URL.revokeObjectURL(e)),m.length=0},g=e=>{let t=URL.createObjectURL(e);return m.push(t),{url:t,name:e.name,file:e}},_=(0,t.computed)(()=>r.value?(h(),n.images.map(e=>e instanceof File?g(e):typeof e==`string`?{url:e}:e.file&&!e.url?$($({},e),{},{url:g(e.file).url}):e)):(h(),[]));(0,t.onBeforeUnmount)(h);let v=(0,t.computed)(()=>_.value[i.value]??{url:``}),y=(0,t.computed)(()=>_.value.length>1),b=(0,t.computed)(()=>{let e=v.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),x=()=>{r.value=!1},S=()=>{n.maskClosable&&x()},C=e=>{i.value=e,o(),p.value=`loading`},w=()=>{C(i.value>0?i.value-1:_.value.length-1)},T=()=>{C(i.value<_.value.length-1?i.value+1:0)},E=()=>{let e=v.value,t=e.downloadUrl||e.url;if(n.onDownload){n.onDownload(t);return}let r=document.createElement(`a`);r.href=t,r.download=e.name||t.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},D=()=>{p.value=`loaded`},O=()=>{p.value=`error`};return IFt({visible:r,onClose:x,onPrev:()=>y.value&&w(),onNext:()=>y.value&&T()}),(n,m)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`ai-image-preview-fade`},{default:(0,t.withCtx)(()=>[r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`ai-image-preview`,onWheel:m[1]||=(0,t.withModifiers)((...e)=>(0,t.unref)(d)&&(0,t.unref)(d)(...e),[`prevent`])},[(0,t.createElementVNode)(`div`,{class:`ai-image-preview-close`,onClick:x},[(0,t.createVNode)((0,t.unref)(wOt),{class:`ai-image-preview-close-icon`})]),y.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:w},[(0,t.createVNode)((0,t.unref)(r5),{class:`ai-image-preview-arrow-icon`})]),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:T},[(0,t.createVNode)((0,t.unref)(TOt),{class:`ai-image-preview-arrow-icon`})])],64)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-body`,onClick:(0,t.withModifiers)(S,[`self`]),onMousedown:m[0]||=(...e)=>(0,t.unref)(f)&&(0,t.unref)(f)(...e)},[p.value===`error`?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:v.value.url,style:(0,t.normalizeStyle)((0,t.unref)(a)),onError:O,onLoad:D},null,44,LFt)),p.value===`error`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,RFt,[(0,t.createVNode)((0,t.unref)(DOt),{class:`ai-image-preview-error-icon`}),(0,t.createElementVNode)(`p`,zFt,(0,t.toDisplayString)((0,t.unref)(U8)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):(0,t.createCommentVNode)(``,!0),p.value===`loading`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,BFt,[v.value.thumbnailUrl?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:v.value.thumbnailUrl,style:(0,t.normalizeStyle)((0,t.unref)(a))},null,12,VFt)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],32),(0,t.createVNode)(jFt,{"active-index":i.value,"current-image-info":b.value,"is-multiple":y.value,"show-info":e.showInfo,total:_.value.length,onDownload:E,onReset:(0,t.unref)(o),onRotate:(0,t.unref)(u),onZoomIn:(0,t.unref)(s),onZoomOut:(0,t.unref)(l)},(0,t.createSlots)({_:2},[n.$slots.extra?{name:`extra`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):(0,t.createCommentVNode)(``,!0)]),_:3})]))}})),HFt={class:`ai-files-content`},UFt=[`alt`,`src`,`onClick`,`onError`],WFt={key:1,class:`file-content-image image-error`},GFt={key:2,class:`file-content-object`},KFt={class:`file-description`},qFt={class:`file-name`},JFt={class:`file-type`},YFt={class:`file-size`},t9=(0,t.defineComponent)({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:n}){let r=n,i=e,a=(0,t.reactive)({}),o=e=>e.url?!0:vDt(e.mimeType||e.file?.type),s=e=>e.url||e.file?.name||``,l=e=>{a[s(e)]=!0},u=e=>{r(`deleteFile`,e)},d=(0,t.shallowRef)(!1),f=(0,t.shallowRef)(0),p=(0,t.computed)(()=>i.files.filter(e=>o(e)&&!a[s(e)])),m=(0,t.computed)(()=>p.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),h=e=>{let t=p.value.indexOf(e);t<0||(f.value=t,d.value=!0)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,HFt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.files,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.file?.name,class:(0,t.normalizeClass)([`file-content`,{"is-file-object":!o(n)||a[s(n)]}])},[o(n)&&!a[s(n)]?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,alt:n.filename||n.file?.name,class:`file-content-image`,src:n.url||(0,t.unref)(yDt)(n.file),onClick:e=>h(n),onError:e=>l(n)},null,40,UFt)):o(n)&&a[s(n)]?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,WFt,[(0,t.createVNode)((0,t.unref)(dOt),{class:`file-error-icon`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,GFt,[(0,t.createElementVNode)(`div`,KFt,[(0,t.createVNode)((0,t.unref)(e5),{class:`file-icon`}),(0,t.createElementVNode)(`span`,qFt,(0,t.toDisplayString)(n.filename||n.file?.name),1),(0,t.createElementVNode)(`span`,JFt,(0,t.toDisplayString)(n.file?(0,t.unref)(bDt)(n.file):n.filename?.split(`.`).pop()||n.mimeType?.split(`/`).pop()),1)]),(0,t.createElementVNode)(`div`,YFt,(0,t.toDisplayString)((0,t.unref)(xDt)(n.file)),1)])),e.readonly?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(jOt),{key:3,class:`file-delete-icon`,onClick:e=>u(n)},null,8,[`onClick`]))],2))),128)),(0,t.createVNode)(e9,{current:f.value,"onUpdate:current":r[0]||=e=>f.value=e,visible:d.value,"onUpdate:visible":r[1]||=e=>d.value=e,images:m.value},null,8,[`current`,`visible`,`images`])]))}}),XFt=[`onClick`],ZFt=(0,t.defineComponent)({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let n=e,r=(0,t.useTemplateRef)(`promptListRef`),{activeIndex:i}=p5({items:(0,t.computed)(()=>n.prompts),onSelect:n.onSelect,menuRef:r});return(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`promptListRef`,ref:r,class:`ai-prompt-list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.prompts,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([`ai-prompt-list-item`,{"is-active":(0,t.unref)(i)===r}]),onClick:t=>e.onSelect(n)},(0,t.toDisplayString)(n),11,XFt))),128))],512))}}),QFt=[`onClick`],$Ft=[`src`,`onError`],eIt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},tIt={class:`ai-skill-list-item-info`},nIt={class:`ai-skill-list-item-name`},rIt=(0,t.defineComponent)({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let n=e,r=(0,t.reactive)(new Set),i=(0,t.useTemplateRef)(`skillListRef`),{activeIndex:a}=p5({items:(0,t.computed)(()=>n.skills),onSelect:n.onSelect,menuRef:i});return(0,t.watchEffect)(()=>{n.skills,a.value=0}),(n,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`skillListRef`,ref:i,class:`ai-skill-list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.skills,(n,i)=>{var o;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.skill_code,class:(0,t.normalizeClass)([`ai-skill-list-item`,{"is-active":(0,t.unref)(a)===i}]),onClick:t=>e.onSelect(n)},[n.icon&&!r.has(n.skill_code)?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,src:n.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>r.add(n.skill_code)},null,40,$Ft)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,eIt,(0,t.toDisplayString)((o=n.skill_name)==null||(o=o[0])==null?void 0:o.toUpperCase()),1)),(0,t.createElementVNode)(`div`,tIt,[(0,t.createElementVNode)(`div`,nIt,(0,t.toDisplayString)(n.skill_name),1)])],10,QFt)}),128))],512))}}),iIt={class:`ai-slash-item ai-slash-group-title`},aIt=[`onClick`],oIt=[`onClick`],sIt=[`title`],cIt=(0,t.defineComponent)({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let n=e,r=(0,t.useTemplateRef)(`menuRef`),i=(0,t.ref)([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),a=(0,t.shallowRef)([]),o=(0,t.shallowRef)([]),{activeIndex:s}=p5({items:a,onSelect:n.onSelect,menuRef:r});(0,t.watchEffect)(()=>{let e=[],t=[];for(let[r,i]of Object.entries(pFt)){let a=n.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),t.push(...a))}s.value=0,a.value=t,o.value=e});let l=e=>{let t=i.value.findIndex(t=>t===e.type);t===-1?i.value.push(e.type):i.value.splice(t,1)};return(n,u)=>{var d;return(d=e.resourceList)!=null&&d.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`menuRef`,ref:r,class:`ai-slash-menu`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.value,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[n.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:r,class:`ai-slash-group`},[(0,t.createElementVNode)(`div`,iIt,[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`title-icon`,style:(0,t.normalizeStyle)({transform:i.value.includes(n.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>l(n)},[...u[0]||=[(0,t.createElementVNode)(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,aIt)),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)(`mark-${n.type}`)},null,2),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(n.name)+` (`+(0,t.toDisplayString)(n.items.length)+`) `,1)]),i.value.includes(n.type)?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(n.items,n=>{var r;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.id,class:(0,t.normalizeClass)([`ai-slash-item ai-slash-group-item`,{"is-active":((r=a.value)==null||(r=r[(0,t.unref)(s)])==null?void 0:r.id)===n.id}]),onClick:t=>e.onSelect(n)},[(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`ellipsis-text`,title:n.name},[(0,t.createTextVNode)((0,t.toDisplayString)(n.name),1)],8,sIt)),[[(0,t.unref)(h5),{text:n.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,oIt)}),128)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],64))),256))],512)):(0,t.createCommentVNode)(``,!0)}}}),n9=(e,t,n,r)=>new N7().delete(n,r),lIt=(e,t,n,r)=>new N7().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),uIt=(e,t,n,r)=>new N7().insert(n,[[{text:r}]]),dIt=(e,t,n,r)=>new N7().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),fIt={class:`ai-slash-input-wrapper`},pIt=[`aria-placeholder`],mIt={key:0},hIt=[`data-tag-type`,`data-tag-value`],gIt={key:1},_It=(0,t.defineComponent)({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:H8?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:n,emit:r}){let i=(0,t.useTemplateRef)(`editorRef`),a=(0,t.useTemplateRef)(`tippyRef`),o=r,s=e,l=(0,t.customRef)((e,t)=>({get(){return e(),typeof s.modelValue==`string`?A7(s.modelValue):s.modelValue},set(e){var n;o(`update:modelValue`,e,(e==null||(n=e.flat())==null||(n=n.filter(e=>e.type===`tag`))==null||(n=n.map(e=>s.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null))==null?void 0:n.filter(e=>!!e))||[]),t()}})),u=(0,t.shallowRef)(`slash`),d=(0,t.shallowRef)(``),f=(0,t.shallowRef)([]),p=(0,t.shallowRef)([]),m=(0,t.shallowRef)([]),h,g,_=null,v=null,y=()=>{_!==null&&(clearTimeout(_),_=null),v!==null&&(clearTimeout(v),v=null)},b=()=>document.body,{commandSelection:x,GetCursorPosition:S,GetDocSnapshot:C,docSnapshot:w}=Okt();(0,t.watch)(()=>s.modelValue,()=>{h.command(C),k7(w.value||[])!==k7(l.value||[])&&h.command(R7,k7(l.value||[]))},{deep:!1});let T=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{_=null;let e=O();if(d.value=e.query||``,e.isActive){var t,n;(t=a.value)==null||t.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),(n=a.value)==null||n.show()}else{var r;(r=a.value)==null||r.hide()}},16)},E=e=>{if(o(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`){var t;return e.shiftKey?void 0:((t=e.preventDefault)==null||t.call(e),!1)}e.key===`@`&&(u.value=`slash`,T()),e.key===`/`&&(u.value=`skill`,T()),e.key===`\\`&&(u.value=`prompt`,T())},D=()=>{d.value=``},O=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=u.value===`slash`?`@`:u.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),l=a.match(s);if(!l)return e;let d=l[1]?.slice(1),f=l.index+l[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},k=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),A=e=>{var t;h.command(S);let{column:n,line:r}=x.value;h.command(n9,[r,n-d.value.length-1],[r,n]),h.command(lIt,[r,n],e),h.command(uIt,[r,n+d.value.length+1+1],` `),(t=a.value)==null||t.hide(),j()},j=()=>{v!==null&&clearTimeout(v),v=setTimeout(()=>{if(v=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();i.value&&e&&(t.selectNodeContents(i.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},M=e=>{h.command(R7,e),j()},N=e=>{var t;h.command(S);let{column:n,line:r}=x.value;h.command(n9,[r,n-d.value.length-1],[r,n]),h.command(dIt,[r,n],e),h.command(uIt,[r,n+d.value.length+1+1],` `),(t=a.value)==null||t.hide(),j()};(0,t.watchEffect)(()=>{let e=s.resources?.filter(e=>{var t;return!((t=l.value)!=null&&t.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type)))}),t=s.skills?.filter(e=>{var t;return!((t=l.value)!=null&&t.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)))});if(d.value?(f.value=e.filter(e=>e.name.toLowerCase().includes(d.value.toLowerCase())),p.value=t.filter(e=>e.skill_name.toLowerCase().includes(d.value.toLowerCase())||e.skill_code.toLowerCase().includes(d.value.toLowerCase())),m.value=s.prompts.filter(e=>e.toLowerCase().includes(d.value.toLowerCase()))):(f.value=e,p.value=t,m.value=s.prompts),!f.value.length&&!p.value.length&&!m.value.length){var n;(n=a.value)==null||n.hide()}});let P=(e,t,n,r)=>{if(t.type===`tag`){let t=k(e,n);h.command(n9,[r,t],[r,t+1])}},F=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),o(`upload`,n))},I=()=>{g?.(),h=sFt({doc:l.value,schema:fFt,onChange:function(){var e=c5(function*(e){l.value=e,T()});return function(t){return e.apply(this,arguments)}}(),onKeyDown:e=>E(e)}),g=h.input(i.value)},L=()=>u.value===`slash`?f.value.length<1?!1:void 0:u.value===`skill`?p.value.length<1?!1:void 0:m.value.length<1?!1:void 0;return(0,t.onMounted)(()=>{var e;I(),(e=i.value)==null||e.addEventListener(`paste`,F)}),(0,t.onUnmounted)(()=>{var e;y(),h.command(R7,``),g?.(),(e=i.value)==null||e.removeEventListener(`paste`,F)}),n({cleanup:()=>{h.command(R7,``)},focus:j}),(n,r)=>{var o;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,fIt,[(0,t.createElementVNode)(`div`,{ref_key:`editorRef`,ref:i,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[(o=l.value)!=null&&o.length&&l.value.some(e=>e.length)?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(l.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n},[e.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:i},[r.type===`text`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,mIt,(0,t.toDisplayString)(r.text),1)):r.type===`tag`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)(`mention-tag-${r.data.type}`),contenteditable:`false`,"data-tag-type":r.data.type,"data-tag-value":r.data.value},[(0,t.createTextVNode)((0,t.toDisplayString)(r.data.label)+` `,1),(0,t.createVNode)((0,t.unref)(uOt),{class:`mention-tag-remove-icon`,onClick:t=>P(e,r,i,n)},null,8,[`onClick`])],10,hIt)):(0,t.createCommentVNode)(``,!0)],64))),128)):((0,t.openBlock)(),(0,t.createElementBlock)(`br`,gIt))]))),128)):(0,t.createCommentVNode)(``,!0)],8,pIt),(0,t.createVNode)((0,t.unref)(Kl),{ref_key:`tippyRef`,ref:a,"append-to":b,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":i.value,"z-index":(0,t.unref)(KDt),onHidden:D,onShow:L},{content:(0,t.withCtx)(()=>[u.value===`slash`?((0,t.openBlock)(),(0,t.createBlock)(cIt,{key:0,"on-select":A,"resource-list":f.value},null,8,[`resource-list`])):u.value===`skill`?((0,t.openBlock)(),(0,t.createBlock)(rIt,{key:1,"on-select":N,skills:p.value},null,8,[`skills`])):u.value===`prompt`?((0,t.openBlock)(),(0,t.createBlock)(ZFt,{key:2,"on-select":M,prompts:m.value},null,8,[`prompts`])):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`trigger-target`,`z-index`])])}}}),vIt={class:`ai-input-attachment`},yIt=(0,t.defineComponent)({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:n}){let r=e,i=n,a=()=>{i(`stopSending`)},o=()=>{r.sendDisabledTip||r.messageState===J8.Disabled||r.messageState===J8.Pending||r.messageState===J8.Streaming||i(`sendMessage`)};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vIt,[(0,t.renderSlot)(n.$slots,`default`),(0,t.renderSlot)(n.$slots,`send-icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]])},[e.messageState===(0,t.unref)(J8).Streaming||e.messageState===(0,t.unref)(J8).Pending||e.messageState===(0,t.unref)(J8).Fetching?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(HOt),{key:0,onClick:a},null,512)),[[(0,t.unref)(Jl),$($({},e.tippyOptions),{},{content:(0,t.unref)(U8)(`停止`),theme:`ai-chat-box`,offset:[0,16]})]]):(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(VOt),{key:1,onClick:o},null,512)),[[(0,t.unref)(Jl),$($({},e.tippyOptions),{},{content:e.sendDisabledTip||(r.messageState===(0,t.unref)(J8).Disabled?void 0:(0,t.unref)(U8)(`发送`)),theme:`ai-chat-box`,offset:[0,16]})]])],2)])]))}}),bIt={key:1,class:`ai-divider`},xIt=(0,t.defineComponent)({__name:`chat-input`,props:(0,t.mergeModels)({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:H8?`Input "/" to trigger skill
3477
+ `:e.data;if(a==null){let t=e.dataTransfer;t&&(a=t.getData(`text/plain`))}S||=new N7().select(...u),D7(...i)!==0&&S.delete(...i),a&&S.insert(i[0],A7(a))}C||A()},P=()=>{C||k(),C=!0},F=()=>{A()},I=()=>{w=!0,k()},L=()=>{w=!1},R=()=>{if(x){x=!1;return}w&&!C&&!T&&k()},ee=e=>{k(),D7(...u)!==0&&r(e,vPt(p(),...O7(u)),n)},z=e=>{e.preventDefault(),ee(e.clipboardData)},B=e=>{e.preventDefault(),d||(ee(e.clipboardData),g(new N7().delete(...O7(u))))},V=e=>{e.preventDefault();let[t,n]=O7(u);g(new N7().delete(t,n).insert(t,i(e.clipboardData,D)))},te=e=>{e.preventDefault();let t=e.dataTransfer,r=tFt(E,n,e,D);if(t&&r){let e=new N7;T&&e.delete(...O7(u));let a=e.transform(r);e.select(a,a).insert(a,i(t,D)).select(a),g(e),n.focus({preventScroll:!0})}},ne=e=>{T=!0,ee(e.dataTransfer)},re=()=>{T=!1};return E.addEventListener(`selectionchange`,R),n.addEventListener(`keydown`,j),n.addEventListener(`input`,M),n.addEventListener(`beforeinput`,N),n.addEventListener(`compositionstart`,P),n.addEventListener(`compositionend`,F),n.addEventListener(`focus`,I),n.addEventListener(`blur`,L),n.addEventListener(`copy`,z),n.addEventListener(`cut`,B),n.addEventListener(`paste`,V),n.addEventListener(`drop`,te),n.addEventListener(`dragstart`,ne),n.addEventListener(`dragend`,re),()=>{b||(b=!0,f=X7,n.contentEditable=a,n.role=h,n.ariaMultiLine=_,n.ariaReadOnly=v,n.style.whiteSpace=y,O._dispose(),E.removeEventListener(`selectionchange`,R),n.removeEventListener(`keydown`,j),n.removeEventListener(`input`,M),n.removeEventListener(`beforeinput`,N),n.removeEventListener(`compositionstart`,P),n.removeEventListener(`compositionend`,F),n.removeEventListener(`focus`,I),n.removeEventListener(`blur`,L),n.removeEventListener(`copy`,z),n.removeEventListener(`cut`,B),n.removeEventListener(`paste`,V),n.removeEventListener(`drop`,te),n.removeEventListener(`dragstart`,ne),n.removeEventListener(`dragend`,re))}},command:(e,...t)=>{let n=e(p(),u,...t);n&&g(n)},readonly:e=>{d=e,f()}}},cFt=()=>``,lFt=({is:e,data:t,plain:n=cFt})=>({is:e,data:t,plain:n}),uFt=({multiline:e,void:t={}})=>{let n=Object.entries(t),r=new WeakMap,i=new WeakMap,a=e=>e.reduce((e,t)=>{if(P7(t)){let n=r.get(t);n||r.set(t,n={type:`text`,text:t.text}),e.push(n)}else{let n=i.get(t.data);n?e.push(n):e.push({type:`tag`,data:t.data})}return e},[]),o=e=>{for(let[t,r]of n)if(r.is(e)){let n=r.data(e);return i.set(n,{type:t,data:$({},n)}),n}},s=e=>{if(e.type===`text`)return{text:e.text};let{type:t,data:n}=e;return i.set(n,{type:t,data:n}),{data:n}};return{single:!e,js:e?e=>e.map(a):e=>a(e[0]),doc:t=>e?t.map(e=>e.map(s)):[t.map(s)],copy:(e,n,r)=>{e.setData(`text/plain`,k7(n,e=>t[i.get(e.data).type].plain(e.data)));let a=document.createElement(`div`),o=WPt(J7(r),r);o&&a.appendChild(o.cloneContents()),e.setData(`text/html`,a.innerHTML)},paste:(e,t)=>{let n=e.getData(`text/html`);if(n){let e=new DOMParser().parseFromString(n,`text/html`).body,r=!1;for(let t of[...e.childNodes])NPt(t)?t.data===`StartFragment`?(r=!0,e=new DocumentFragment):t.data===`EndFragment`&&(r=!1):r&&e.appendChild(t);return eFt(e,t,o)}return A7(e.getData(`text/plain`))}}},dFt=e=>{let t=e.data;return t.type===`skill`?`/${t.value}`:`@${t.label}`},Z7=e=>k7(e,dFt),fFt=uFt({multiline:!0,void:{tag:lFt({is:e=>e.contentEditable===`false`&&e.dataset.tagType!==void 0,data:e=>({label:e.textContent,value:e.dataset.tagValue,type:e.dataset.tagType}),plain:e=>e.type===`skill`?`/${e.value}`:e.label})}}),pFt={tool:`工具`,skill:`Skill`,mcp:`MCP`,doc:`知识库`,knowledgebase:`知识库`,shortcut:`快捷指令`},mFt=Symbol(`imagePreviewGroup`),Q7=function(e){return e.Error=`error`,e.Pending=`pending`,e.Success=`success`,e}({}),$7=function(e){return e.Disabled=`disabled`,e.Hidden=`hidden`,e}({}),hFt={class:`ai-file-upload-btn`},gFt=[`accept`],_Ft=(0,t.defineComponent)({__name:`file-upload-btn`,props:{accept:{default:`image/*`},maxFiles:{default:3},multiple:{type:Boolean,default:!0},tippyOptions:{}},emits:[`upload`],setup(e,{emit:n}){let r=n,i=(0,t.useTemplateRef)(`fileInputRef`),a=()=>{var e;(e=i.value)==null||e.click()},o=e=>{let t=e.target,n=t.files;if(n!=null&&n.length){let e=(QDt/(1024*1024)).toFixed(1),t=Array.from(n),i=[],a=0;for(let e of t)e.size>0&&e.size<2516582.4?i.push(e):a+=1;a>0&&nc({message:R8(a,e,H8),theme:`error`}),i.length&&r(`upload`,i)}t.value=``};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hFt,[(0,t.createElementVNode)(`input`,{ref_key:`fileInputRef`,ref:i,accept:e.accept,class:`file-upload-btn-input`,multiple:``,type:`file`,onChange:o},null,40,gFt),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`ai-shortcut-btn file-upload-btn-icon`,onClick:a},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createVNode)((0,t.unref)(MOt))])])),[[(0,t.unref)(Jl),$($({},e.tippyOptions),{},{content:(0,t.unref)(U8)(`上传图片, 最多支持上传 3 个, 最大支持 2.4MB`),theme:`ai-chat-box`,offset:[0,16]})]])]))}}),vFt={class:`ai-cite-content`},yFt={class:`ai-cite-content-text`},bFt=(0,t.defineComponent)({__name:`cite-content`,props:{content:{},onClose:{type:Function}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vFt,[(0,t.createVNode)((0,t.unref)(ZOt)),(0,t.createElementVNode)(`span`,yFt,(0,t.toDisplayString)(e.content),1),e.onClose?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(a5),{key:0,onClick:r[0]||=t=>e.onClose?.call(e,e.content)})):(0,t.createCommentVNode)(``,!0)]))}}),xFt={class:`ai-image-preview-toolbar`},SFt={class:`ai-image-preview-toolbar-inner`},CFt={key:0,class:`ai-image-preview-toolbar-pages`},wFt={key:1,class:`ai-image-preview-toolbar-divider`},TFt=[`data-tooltip`],EFt=[`data-tooltip`],DFt=[`data-tooltip`],OFt=[`data-tooltip`],kFt=[`data-tooltip`],AFt={class:`ai-image-preview-toolbar-info`},jFt=(0,t.defineComponent)($($({},{name:`PreviewToolbar`}),{},{__name:`preview-toolbar`,props:{activeIndex:{},currentImageInfo:{},isMultiple:{type:Boolean},showInfo:{type:Boolean},total:{}},emits:[`zoomIn`,`zoomOut`,`rotate`,`reset`,`download`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xFt,[(0,t.createElementVNode)(`div`,SFt,[e.isMultiple?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,CFt,(0,t.toDisplayString)(e.activeIndex+1)+` / `+(0,t.toDisplayString)(e.total),1)):(0,t.createCommentVNode)(``,!0),e.isMultiple?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wFt)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`缩小`),onClick:i[0]||=e=>r(`zoomOut`)},[(0,t.createVNode)((0,t.unref)(bOt))],8,TFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`放大`),onClick:i[1]||=e=>r(`zoomIn`)},[(0,t.createVNode)((0,t.unref)(yOt))],8,EFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`旋转`),onClick:i[2]||=e=>r(`rotate`)},[(0,t.createVNode)((0,t.unref)(xOt))],8,DFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`重置`),onClick:i[3]||=e=>r(`reset`)},[(0,t.createVNode)((0,t.unref)(SOt))],8,OFt),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-toolbar-btn`,"data-tooltip":(0,t.unref)(U8)(`下载`),onClick:i[4]||=e=>r(`download`)},[(0,t.createVNode)((0,t.unref)(COt))],8,kFt),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[i[5]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),(0,t.renderSlot)(n.$slots,`extra`)],64)):(0,t.createCommentVNode)(``,!0),e.showInfo&&e.currentImageInfo?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:3},[i[7]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-divider`},null,-1),(0,t.createElementVNode)(`div`,AFt,[(0,t.createVNode)((0,t.unref)(OOt),{class:`ai-image-preview-toolbar-info-icon`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.currentImageInfo.width)+` px `+(0,t.toDisplayString)((0,t.unref)(U8)(`宽`)),1),e.currentImageInfo.resolution?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[i[6]||=(0,t.createElementVNode)(`span`,{class:`ai-image-preview-toolbar-info-dot`},null,-1),(0,t.createVNode)((0,t.unref)(OOt),{class:`ai-image-preview-toolbar-info-icon`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.currentImageInfo.resolution),1)],64)):(0,t.createCommentVNode)(``,!0)])],64)):(0,t.createCommentVNode)(``,!0)])]))}})),MFt=.15,NFt=.1,PFt=10;function FFt(){let e=(0,t.shallowRef)(1),n=(0,t.shallowRef)(0),r=(0,t.shallowRef)(0),i=(0,t.shallowRef)(0),a=(0,t.shallowRef)(!1),o=(0,t.shallowRef)(!1),s=0,l=0,u=0,d=0,f=(0,t.computed)(()=>({transform:`translate(${r.value}px, ${i.value}px) scale(${e.value}) rotate(${n.value}deg)`,cursor:a.value?`grabbing`:`grab`,transition:a.value||o.value?`none`:`transform 0.3s ease`})),p=()=>{o.value=!0,e.value=1,n.value=0,r.value=0,i.value=0,requestAnimationFrame(()=>{o.value=!1})},m=()=>{e.value=Math.min(PFt,e.value*(1+MFt))},h=()=>{e.value=Math.max(NFt,e.value*(1-MFt))};return{imageStyle:f,resetTransform:p,zoomIn:m,zoomOut:h,rotateCW:()=>{n.value+=90},handleWheel:e=>{e.deltaY<0?m():h()},handleDragStart:e=>{if(e.button!==0)return;a.value=!0,s=e.clientX,l=e.clientY,u=r.value,d=i.value;let t=e=>{a.value&&(r.value=u+(e.clientX-s),i.value=d+(e.clientY-l))},n=()=>{a.value=!1,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)}}}function IFt(e){let{visible:n,onClose:r,onPrev:i,onNext:a}=e,o=e=>{if(n.value)switch(e.key){case`Escape`:r();break;case`ArrowLeft`:i?.();break;case`ArrowRight`:a?.();break}},s=()=>{typeof document>`u`||(document.addEventListener(`keydown`,o),document.body.style.overflow=`hidden`)},l=()=>{typeof document>`u`||(document.removeEventListener(`keydown`,o),document.body.style.overflow=``)};(0,t.watch)(n,e=>{e?s():l()},{immediate:!0}),(0,t.onBeforeUnmount)(()=>{l()})}var LFt=[`src`],RFt={key:1,class:`ai-image-preview-error`},zFt={class:`ai-image-preview-error-text`},BFt={key:2,class:`ai-image-preview-loading`},VFt=[`src`],e9=(0,t.defineComponent)($($({},{name:`ImagePreview`}),{},{__name:`image-preview`,props:(0,t.mergeModels)({images:{default:()=>[]},maskClosable:{type:Boolean,default:!0},onDownload:{type:Function,default:void 0},showInfo:{type:Boolean,default:!1}},{visible:$({type:Boolean},{required:!0}),visibleModifiers:{},current:{default:0},currentModifiers:{}}),emits:[`update:visible`,`update:current`],setup(e){let n=e,r=(0,t.useModel)(e,`visible`),i=(0,t.useModel)(e,`current`),{imageStyle:a,resetTransform:o,zoomIn:s,zoomOut:l,rotateCW:u,handleWheel:d,handleDragStart:f}=FFt(),p=(0,t.shallowRef)(`loading`),m=[],h=()=>{m.forEach(e=>URL.revokeObjectURL(e)),m.length=0},g=e=>{let t=URL.createObjectURL(e);return m.push(t),{url:t,name:e.name,file:e}},_=(0,t.computed)(()=>r.value?(h(),n.images.map(e=>e instanceof File?g(e):typeof e==`string`?{url:e}:e.file&&!e.url?$($({},e),{},{url:g(e.file).url}):e)):(h(),[]));(0,t.onBeforeUnmount)(h);let v=(0,t.computed)(()=>_.value[i.value]??{url:``}),y=(0,t.computed)(()=>_.value.length>1),b=(0,t.computed)(()=>{let e=v.value;return!e.width&&!e.resolution?null:{width:e.width,resolution:e.resolution}}),x=()=>{r.value=!1},S=()=>{n.maskClosable&&x()},C=e=>{i.value=e,o(),p.value=`loading`},w=()=>{C(i.value>0?i.value-1:_.value.length-1)},T=()=>{C(i.value<_.value.length-1?i.value+1:0)},E=()=>{let e=v.value,t=e.downloadUrl||e.url;if(n.onDownload){n.onDownload(t);return}let r=document.createElement(`a`);r.href=t,r.download=e.name||t.split(`/`).pop()||`image`,r.target=`_blank`,document.body.appendChild(r),r.click(),document.body.removeChild(r)},D=()=>{p.value=`loaded`},O=()=>{p.value=`error`};return IFt({visible:r,onClose:x,onPrev:()=>y.value&&w(),onNext:()=>y.value&&T()}),(n,m)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`ai-image-preview-fade`},{default:(0,t.withCtx)(()=>[r.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`ai-image-preview`,onWheel:m[1]||=(0,t.withModifiers)((...e)=>(0,t.unref)(d)&&(0,t.unref)(d)(...e),[`prevent`])},[(0,t.createElementVNode)(`div`,{class:`ai-image-preview-close`,onClick:x},[(0,t.createVNode)((0,t.unref)(wOt),{class:`ai-image-preview-close-icon`})]),y.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-left`,onClick:w},[(0,t.createVNode)((0,t.unref)(r5),{class:`ai-image-preview-arrow-icon`})]),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-arrow ai-image-preview-arrow-right`,onClick:T},[(0,t.createVNode)((0,t.unref)(TOt),{class:`ai-image-preview-arrow-icon`})])],64)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`ai-image-preview-body`,onClick:(0,t.withModifiers)(S,[`self`]),onMousedown:m[0]||=(...e)=>(0,t.unref)(f)&&(0,t.unref)(f)(...e)},[p.value===`error`?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`ai-image-preview-img`,draggable:`false`,src:v.value.url,style:(0,t.normalizeStyle)((0,t.unref)(a)),onError:O,onLoad:D},null,44,LFt)),p.value===`error`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,RFt,[(0,t.createVNode)((0,t.unref)(DOt),{class:`ai-image-preview-error-icon`}),(0,t.createElementVNode)(`p`,zFt,(0,t.toDisplayString)((0,t.unref)(U8)(`抱歉,图片加载失败,可尝试重新加载`)),1)])):(0,t.createCommentVNode)(``,!0),p.value===`loading`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,BFt,[v.value.thumbnailUrl?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`ai-image-preview-img ai-image-preview-img--blur`,draggable:`false`,src:v.value.thumbnailUrl,style:(0,t.normalizeStyle)((0,t.unref)(a))},null,12,VFt)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],32),(0,t.createVNode)(jFt,{"active-index":i.value,"current-image-info":b.value,"is-multiple":y.value,"show-info":e.showInfo,total:_.value.length,onDownload:E,onReset:(0,t.unref)(o),onRotate:(0,t.unref)(u),onZoomIn:(0,t.unref)(s),onZoomOut:(0,t.unref)(l)},(0,t.createSlots)({_:2},[n.$slots.extra?{name:`extra`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`extra`)]),key:`0`}:void 0]),1032,[`active-index`,`current-image-info`,`is-multiple`,`show-info`,`total`,`onReset`,`onRotate`,`onZoomIn`,`onZoomOut`])],32)):(0,t.createCommentVNode)(``,!0)]),_:3})]))}})),HFt={class:`ai-files-content`},UFt=[`alt`,`src`,`onClick`,`onError`],WFt={key:1,class:`file-content-image image-error`},GFt={key:2,class:`file-content-object`},KFt={class:`file-description`},qFt={class:`file-name`},JFt={class:`file-type`},YFt={class:`file-size`},t9=(0,t.defineComponent)({__name:`file-content`,props:{files:{},readonly:{type:Boolean}},emits:[`deleteFile`],setup(e,{emit:n}){let r=n,i=e,a=(0,t.reactive)({}),o=e=>e.url?!0:vDt(e.mimeType||e.file?.type),s=e=>e.url||e.file?.name||``,l=e=>{a[s(e)]=!0},u=e=>{r(`deleteFile`,e)},d=(0,t.shallowRef)(!1),f=(0,t.shallowRef)(0),p=(0,t.computed)(()=>i.files.filter(e=>o(e)&&!a[s(e)])),m=(0,t.computed)(()=>p.value.map(e=>e.url?e.url:e.file?e.file:``).filter(Boolean)),h=e=>{let t=p.value.indexOf(e);t<0||(f.value=t,d.value=!0)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,HFt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.files,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.file?.name,class:(0,t.normalizeClass)([`file-content`,{"is-file-object":!o(n)||a[s(n)]}])},[o(n)&&!a[s(n)]?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,alt:n.filename||n.file?.name,class:`file-content-image`,src:n.url||(0,t.unref)(yDt)(n.file),onClick:e=>h(n),onError:e=>l(n)},null,40,UFt)):o(n)&&a[s(n)]?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,WFt,[(0,t.createVNode)((0,t.unref)(dOt),{class:`file-error-icon`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,GFt,[(0,t.createElementVNode)(`div`,KFt,[(0,t.createVNode)((0,t.unref)(e5),{class:`file-icon`}),(0,t.createElementVNode)(`span`,qFt,(0,t.toDisplayString)(n.filename||n.file?.name),1),(0,t.createElementVNode)(`span`,JFt,(0,t.toDisplayString)(n.file?(0,t.unref)(bDt)(n.file):n.filename?.split(`.`).pop()||n.mimeType?.split(`/`).pop()),1)]),(0,t.createElementVNode)(`div`,YFt,(0,t.toDisplayString)((0,t.unref)(xDt)(n.file)),1)])),e.readonly?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(jOt),{key:3,class:`file-delete-icon`,onClick:e=>u(n)},null,8,[`onClick`]))],2))),128)),(0,t.createVNode)(e9,{current:f.value,"onUpdate:current":r[0]||=e=>f.value=e,visible:d.value,"onUpdate:visible":r[1]||=e=>d.value=e,images:m.value},null,8,[`current`,`visible`,`images`])]))}}),XFt=[`onClick`],ZFt=(0,t.defineComponent)({__name:`ai-prompt-list`,props:{onSelect:{type:Function},prompts:{}},setup(e){let n=e,r=(0,t.useTemplateRef)(`promptListRef`),{activeIndex:i}=p5({items:(0,t.computed)(()=>n.prompts),onSelect:n.onSelect,menuRef:r});return(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`promptListRef`,ref:r,class:`ai-prompt-list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.prompts,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([`ai-prompt-list-item`,{"is-active":(0,t.unref)(i)===r}]),onClick:t=>e.onSelect(n)},(0,t.toDisplayString)(n),11,XFt))),128))],512))}}),QFt=[`onClick`],$Ft=[`src`,`onError`],eIt={key:1,class:`ai-skill-list-item-icon ai-skill-list-item-icon--fallback`},tIt={class:`ai-skill-list-item-info`},nIt={class:`ai-skill-list-item-name`},rIt=(0,t.defineComponent)({__name:`ai-skill-list`,props:{onSelect:{type:Function},skills:{}},setup(e){let n=e,r=(0,t.reactive)(new Set),i=(0,t.useTemplateRef)(`skillListRef`),{activeIndex:a}=p5({items:(0,t.computed)(()=>n.skills),onSelect:n.onSelect,menuRef:i});return(0,t.watchEffect)(()=>{n.skills,a.value=0}),(n,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`skillListRef`,ref:i,class:`ai-skill-list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.skills,(n,i)=>{var o;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.skill_code,class:(0,t.normalizeClass)([`ai-skill-list-item`,{"is-active":(0,t.unref)(a)===i}]),onClick:t=>e.onSelect(n)},[n.icon&&!r.has(n.skill_code)?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,src:n.icon,alt:``,class:`ai-skill-list-item-icon`,onError:e=>r.add(n.skill_code)},null,40,$Ft)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,eIt,(0,t.toDisplayString)((o=n.skill_name)==null||(o=o[0])==null?void 0:o.toUpperCase()),1)),(0,t.createElementVNode)(`div`,tIt,[(0,t.createElementVNode)(`div`,nIt,(0,t.toDisplayString)(n.skill_name),1)])],10,QFt)}),128))],512))}}),iIt={class:`ai-slash-item ai-slash-group-title`},aIt=[`onClick`],oIt=[`onClick`],sIt=[`title`],cIt=(0,t.defineComponent)({__name:`ai-slash-menu`,props:{onSelect:{type:Function},resourceList:{}},setup(e){let n=e,r=(0,t.useTemplateRef)(`menuRef`),i=(0,t.ref)([`tool`,`shortcut`,`doc`,`knowledgebase`,`mcp`]),a=(0,t.shallowRef)([]),o=(0,t.shallowRef)([]),{activeIndex:s}=p5({items:a,onSelect:n.onSelect,menuRef:r});(0,t.watchEffect)(()=>{let e=[],t=[];for(let[r,i]of Object.entries(pFt)){let a=n.resourceList?.filter(e=>e.type===r)??[];a.length>0&&(e.push({type:r,name:i,isExpand:!1,items:a||[]}),t.push(...a))}s.value=0,a.value=t,o.value=e});let l=e=>{let t=i.value.findIndex(t=>t===e.type);t===-1?i.value.push(e.type):i.value.splice(t,1)};return(n,u)=>{var d;return(d=e.resourceList)!=null&&d.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`menuRef`,ref:r,class:`ai-slash-menu`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.value,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[n.items.length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:r,class:`ai-slash-group`},[(0,t.createElementVNode)(`div`,iIt,[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`title-icon`,style:(0,t.normalizeStyle)({transform:i.value.includes(n.type)?`rotate(90deg)`:`rotate(0deg)`}),viewBox:`0 0 1024 1024`,onClick:e=>l(n)},[...u[0]||=[(0,t.createElementVNode)(`path`,{d:`M800 512L288 928V96z`},null,-1)]],12,aIt)),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)(`mark-${n.type}`)},null,2),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(n.name)+` (`+(0,t.toDisplayString)(n.items.length)+`) `,1)]),i.value.includes(n.type)?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(n.items,n=>{var r;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.id,class:(0,t.normalizeClass)([`ai-slash-item ai-slash-group-item`,{"is-active":((r=a.value)==null||(r=r[(0,t.unref)(s)])==null?void 0:r.id)===n.id}]),onClick:t=>e.onSelect(n)},[(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`ellipsis-text`,title:n.name},[(0,t.createTextVNode)((0,t.toDisplayString)(n.name),1)],8,sIt)),[[(0,t.unref)(h5),{text:n.name,zIndex:9999999,placement:`right-start`,theme:`ai-slash-editor-overflow-tips-theme`}]])],10,oIt)}),128)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],64))),256))],512)):(0,t.createCommentVNode)(``,!0)}}}),n9=(e,t,n,r)=>new N7().delete(n,r),lIt=(e,t,n,r)=>new N7().insert(n,[[{data:{label:r.name,value:r.name,type:r.type}}]]),uIt=(e,t,n,r)=>new N7().insert(n,[[{text:r}]]),dIt=(e,t,n,r)=>new N7().insert(n,[[{data:{label:r.skill_name,value:r.skill_code,type:`skill`}}]]),fIt={class:`ai-slash-input-wrapper`},pIt=[`aria-placeholder`],mIt={key:0},hIt=[`data-tag-type`,`data-tag-value`],gIt={key:1},_It=(0,t.defineComponent)({__name:`ai-slash-input`,props:{modelValue:{},placeholder:{default:H8?`Please enter content`:`请输入内容`},prompts:{default:()=>[]},resources:{default:()=>[]},skills:{default:()=>[]}},emits:[`update:modelValue`,`keydown`,`upload`],setup(e,{expose:n,emit:r}){let i=(0,t.useTemplateRef)(`editorRef`),a=(0,t.useTemplateRef)(`tippyRef`),o=r,s=e,l=(0,t.customRef)((e,t)=>({get(){return e(),typeof s.modelValue==`string`?A7(s.modelValue):s.modelValue},set(e){var n;o(`update:modelValue`,e,(e==null||(n=e.flat())==null||(n=n.filter(e=>e.type===`tag`))==null||(n=n.map(e=>s.resources?.find(t=>(t.id===e.data.value||t.name===e.data.value)&&t.type===e.data.type)||null))==null?void 0:n.filter(e=>!!e))||[]),t()}})),u=(0,t.shallowRef)(`slash`),d=(0,t.shallowRef)(``),f=(0,t.shallowRef)([]),p=(0,t.shallowRef)([]),m=(0,t.shallowRef)([]),h,g,_=null,v=null,y=()=>{_!==null&&(clearTimeout(_),_=null),v!==null&&(clearTimeout(v),v=null)},b=()=>document.body,{commandSelection:x,GetCursorPosition:S,GetDocSnapshot:C,docSnapshot:w}=Okt();(0,t.watch)(()=>s.modelValue,()=>{h.command(C),k7(w.value||[])!==k7(l.value||[])&&h.command(R7,k7(l.value||[]))},{deep:!1});let T=()=>{_!==null&&clearTimeout(_),_=setTimeout(()=>{_=null;let e=O();if(d.value=e.query||``,e.isActive){var t,n;(t=a.value)==null||t.setProps({getReferenceClientRect:()=>({left:e.coordinates?.left||0,top:e.coordinates?.top||0,width:0,height:0})}),(n=a.value)==null||n.show()}else{var r;(r=a.value)==null||r.hide()}},16)},E=e=>{if(o(`keydown`,e),e.key===`Enter`||e.key===`NumpadEnter`){var t;return e.shiftKey?void 0:((t=e.preventDefault)==null||t.call(e),!1)}e.key===`@`&&(u.value=`slash`,T()),e.key===`/`&&(u.value=`skill`,T()),e.key===`\\`&&(u.value=`prompt`,T())},D=()=>{d.value=``},O=()=>{let e={isActive:!1,query:``,rect:null,coordinates:null};if(typeof window>`u`)return e;let t=window.getSelection();if(!t||t.rangeCount===0)return e;let n=t.getRangeAt(0),r=n.startContainer,i=n.startOffset;if(r.nodeType!==Node.TEXT_NODE)return e;let a=(r.textContent||``).slice(0,i),o=u.value===`slash`?`@`:u.value===`skill`?`/`:`\\`,s=RegExp(`(${o===`\\`?`\\\\`:o}[^\\s]*)$`),l=a.match(s);if(!l)return e;let d=l[1]?.slice(1),f=l.index+l[0].indexOf(o);try{let e=document.createRange();e.setStart(r,f),e.setEnd(r,f+1);let t=e.getBoundingClientRect();return{isActive:!0,query:d,rect:t,coordinates:{top:t.bottom,left:t.left,height:t.height}}}catch{return e}},k=(e,t)=>e.reduce((e,n,r)=>r>=t?e:(n.type===`text`&&(e+=n.text?.length||0),n.type===`tag`&&(e+=1),e),0),A=e=>{var t;h.command(S);let{column:n,line:r}=x.value;h.command(n9,[r,n-d.value.length-1],[r,n]),h.command(lIt,[r,n],e),h.command(uIt,[r,n+d.value.length+1+1],` `),(t=a.value)==null||t.hide(),j()},j=()=>{v!==null&&clearTimeout(v),v=setTimeout(()=>{if(v=null,typeof window>`u`)return;let e=window.getSelection(),t=document.createRange();i.value&&e&&(t.selectNodeContents(i.value),t.collapse(!1),e.removeAllRanges(),e.addRange(t))},100)},M=e=>{h.command(R7,e),j()},N=e=>{var t;h.command(S);let{column:n,line:r}=x.value;h.command(n9,[r,n-d.value.length-1],[r,n]),h.command(dIt,[r,n],e),h.command(uIt,[r,n+d.value.length+1+1],` `),(t=a.value)==null||t.hide(),j()};(0,t.watchEffect)(()=>{let e=s.resources?.filter(e=>{var t;return!((t=l.value)!=null&&t.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.id&&t.data.type===e.type)))}),t=s.skills?.filter(e=>{var t;return!((t=l.value)!=null&&t.some(t=>t.some(t=>t.type===`tag`&&t.data.value===e.skill_code&&t.data.type===`skill`)))});if(d.value?(f.value=e.filter(e=>e.name.toLowerCase().includes(d.value.toLowerCase())),p.value=t.filter(e=>e.skill_name.toLowerCase().includes(d.value.toLowerCase())||e.skill_code.toLowerCase().includes(d.value.toLowerCase())),m.value=s.prompts.filter(e=>e.toLowerCase().includes(d.value.toLowerCase()))):(f.value=e,p.value=t,m.value=s.prompts),!f.value.length&&!p.value.length&&!m.value.length){var n;(n=a.value)==null||n.hide()}});let P=(e,t,n,r)=>{if(t.type===`tag`){let t=k(e,n);h.command(n9,[r,t],[r,t+1])}},F=e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),o(`upload`,n))},I=()=>{g?.(),h=sFt({doc:l.value,schema:fFt,onChange:function(){var e=c5(function*(e){l.value=e,T()});return function(t){return e.apply(this,arguments)}}(),onKeyDown:e=>E(e)}),g=h.input(i.value)},L=()=>u.value===`slash`?f.value.length<1?!1:void 0:u.value===`skill`?p.value.length<1?!1:void 0:m.value.length<1?!1:void 0;return(0,t.onMounted)(()=>{var e;I(),(e=i.value)==null||e.addEventListener(`paste`,F)}),(0,t.onUnmounted)(()=>{var e;y(),h.command(R7,``),g?.(),(e=i.value)==null||e.removeEventListener(`paste`,F)}),n({cleanup:()=>{h.command(R7,``)},focus:j}),(n,r)=>{var o;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,fIt,[(0,t.createElementVNode)(`div`,{ref_key:`editorRef`,ref:i,"aria-placeholder":e.placeholder,class:`ai-slash-input`,spellcheck:`false`},[(o=l.value)!=null&&o.length&&l.value.some(e=>e.length)?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(l.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n},[e.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:i},[r.type===`text`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,mIt,(0,t.toDisplayString)(r.text),1)):r.type===`tag`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)(`mention-tag-${r.data.type}`),contenteditable:`false`,"data-tag-type":r.data.type,"data-tag-value":r.data.value},[(0,t.createTextVNode)((0,t.toDisplayString)(r.data.label)+` `,1),(0,t.createVNode)((0,t.unref)(uOt),{class:`mention-tag-remove-icon`,onClick:t=>P(e,r,i,n)},null,8,[`onClick`])],10,hIt)):(0,t.createCommentVNode)(``,!0)],64))),128)):((0,t.openBlock)(),(0,t.createElementBlock)(`br`,gIt))]))),128)):(0,t.createCommentVNode)(``,!0)],8,pIt),(0,t.createVNode)((0,t.unref)(Kl),{ref_key:`tippyRef`,ref:a,"append-to":b,arrow:!1,"hide-on-click":!0,interactive:!0,offset:[0,0],placement:`right-start`,theme:`light ai-slash-editor-theme`,trigger:`manual`,"trigger-target":i.value,"z-index":(0,t.unref)(KDt),onHidden:D,onShow:L},{content:(0,t.withCtx)(()=>[u.value===`slash`?((0,t.openBlock)(),(0,t.createBlock)(cIt,{key:0,"on-select":A,"resource-list":f.value},null,8,[`resource-list`])):u.value===`skill`?((0,t.openBlock)(),(0,t.createBlock)(rIt,{key:1,"on-select":N,skills:p.value},null,8,[`skills`])):u.value===`prompt`?((0,t.openBlock)(),(0,t.createBlock)(ZFt,{key:2,"on-select":M,prompts:m.value},null,8,[`prompts`])):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`trigger-target`,`z-index`])])}}}),vIt={class:`ai-input-attachment`},yIt=(0,t.defineComponent)({__name:`input-attachment`,props:{messageState:{},sendDisabledTip:{},tippyOptions:{}},emits:[`sendMessage`,`stopSending`],setup(e,{emit:n}){let r=e,i=n,a=()=>{i(`stopSending`)},o=()=>{r.sendDisabledTip||r.messageState===J8.Disabled||r.messageState===J8.Pending||r.messageState===J8.Streaming||i(`sendMessage`)};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,vIt,[(0,t.renderSlot)(n.$slots,`default`),(0,t.renderSlot)(n.$slots,`send-icon`,{},()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`send-message-icon`,[e.messageState&&`send-message-icon__${e.messageState}`,{"send-message-icon__disabled":e.sendDisabledTip}]]),onClick:o},[e.messageState===(0,t.unref)(J8).Streaming||e.messageState===(0,t.unref)(J8).Pending||e.messageState===(0,t.unref)(J8).Fetching?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(HOt),{key:0,onClick:a},null,512)),[[(0,t.unref)(Jl),$($({},e.tippyOptions),{},{content:(0,t.unref)(U8)(`停止`),theme:`ai-chat-box`,offset:[0,16]})]]):(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(VOt),{key:1},null,512)),[[(0,t.unref)(Jl),$($({},e.tippyOptions),{},{content:e.sendDisabledTip||(r.messageState===(0,t.unref)(J8).Disabled?void 0:(0,t.unref)(U8)(`发送`)),theme:`ai-chat-box`,offset:[0,16]})]])],2)])]))}}),bIt={key:1,class:`ai-divider`},xIt=(0,t.defineComponent)({__name:`chat-input`,props:(0,t.mergeModels)({defaultUploadFiles:{},inputMaxHeight:{default:200},messageStatus:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{default:H8?`Input "/" to trigger skill
3478
3478
  Input "\\" to trigger prompt
3479
3479
  Input "@" to trigger tool and MCP
3480
3480
  Use Shift + Enter to enter a new line`:`输入 "/" 唤出 Skill
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blueking/ai-blueking",
3
- "version": "2.2.1-beta.2",
3
+ "version": "2.2.1-beta.3",
4
4
  "description": "AI 小鲸 V2 - 基于新架构的智能对话组件",
5
5
  "license": "MIT",
6
6
  "author": "Tencent BlueKing",
@@ -67,7 +67,7 @@
67
67
  "vue-draggable-resizable": "^3.0.0",
68
68
  "vue-tippy": "^6.7.1",
69
69
  "@blueking/chat-helper": "0.0.12-beta.9",
70
- "@blueking/chat-x": "0.0.47-beta.2"
70
+ "@blueking/chat-x": "0.0.47-beta.3"
71
71
  },
72
72
  "devDependencies": {
73
73
  "@types/node": "^25.0.1",