@blueking/ai-blueking 2.2.5-beta.5 → 2.2.5-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/chat-bot.vue.d.ts.map +1 -1
- package/dist/components/composables/use-chatbot-state.d.ts +0 -4
- package/dist/components/composables/use-chatbot-state.d.ts.map +1 -1
- package/dist/composables/use-ai-blueking-init.d.ts.map +1 -1
- package/dist/manager/business/chat-business-manager.d.ts +1 -1
- package/dist/manager/business/chat-business-manager.d.ts.map +1 -1
- package/dist/manager/business/model-selection-manager.d.ts +1 -1
- package/dist/manager/business/model-selection-manager.d.ts.map +1 -1
- package/dist/standalone/index.es.min.js +17 -18
- package/dist/standalone/index.iife.min.js +2 -2
- package/dist/standalone/index.umd.min.js +2 -2
- package/dist/vue2/index.es.min.js +17 -18
- package/dist/vue2/index.iife.min.js +2 -2
- package/dist/vue2/index.umd.min.js +2 -2
- package/dist/vue3/index.es.min.js +17 -18
- package/dist/vue3/index.iife.min.js +2 -2
- package/dist/vue3/index.umd.min.js +2 -2
- package/package.json +3 -3
|
@@ -3912,5 +3912,5 @@ ${e.themeCSS}`),e.fontFamily!==void 0&&(n+=`
|
|
|
3912
3912
|
/>
|
|
3913
3913
|
</template> `),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`ai-reasoning-message-title-icon collapsed-icon`,{"is-collapsed":r.value}])},[(0,t.createVNode)((0,t.unref)(Rl))],2)],2),(0,t.withDirectives)((0,t.createElementVNode)(`div`,OUt,[e.status===(0,t.unref)(kl).Error?((0,t.openBlock)(),(0,t.createBlock)(gIt,{key:0,content:e.content?.join(`
|
|
3914
3914
|
`)||``},null,8,[`content`])):((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)(Array.isArray(e.content)?e.content:[e.content],e=>((0,t.openBlock)(),(0,t.createBlock)(K7,{key:e,content:e},null,8,[`content`]))),128))],512),[[t.vShow,!r.value]])]))}}),AUt={class:`ai-collapsible-content`},jUt=(0,t.defineComponent)({__name:`collapsible-content`,props:(0,t.mergeModels)({maxHeight:{default:200}},{expanded:{type:Boolean,default:!1},expandedModifiers:{}}),emits:[`update:expanded`],setup(e){let n=e,r=(0,t.useModel)(e,`expanded`),i=(0,t.useTemplateRef)(`measureRef`),a=(0,t.shallowRef)(0),o=(0,t.computed)(()=>a.value>n.maxHeight),s=(0,t.computed)(()=>o.value&&!r.value),l=null,u=()=>{l?.disconnect(),l=null};return(0,t.watch)(i,e=>{u(),!(!e||typeof ResizeObserver>`u`)&&(l=new ResizeObserver(([e])=>{a.value=e.contentRect.height}),l.observe(e))},{flush:`post`}),(0,t.onUnmounted)(u),(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,AUt,[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`ai-collapsible-content-body`,{"is-collapsed":s.value}]),style:(0,t.normalizeStyle)(s.value?{maxHeight:`${e.maxHeight}px`}:void 0)},[(0,t.createCommentVNode)(` 折叠由外层 max-height 实现,真实高度始终从这一层测量 `),(0,t.createElementVNode)(`div`,{ref_key:`measureRef`,ref:i},[(0,t.renderSlot)(n.$slots,`default`)],512)],6),o.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`ai-collapsible-content-toggle`,onClick:a[0]||=e=>r.value=!r.value},[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(r.value?(0,t.unref)(wl)(`收起`):(0,t.unref)(wl)(`显示更多`)),1),(0,t.createVNode)((0,t.unref)(Il),{class:(0,t.normalizeClass)([`ai-collapsible-content-toggle-icon`,{"is-expanded":r.value}])},null,8,[`class`])])):(0,t.createCommentVNode)(`v-if`,!0)]))}}),MUt={class:`ai-key-value-content`},NUt={key:0,class:`ai-key-value-title`},PUt={class:`ai-key-value-content`},FUt={class:`item-key`},IUt={class:`item-value`},LUt=(0,t.defineComponent)({__name:`key-value-content`,props:{content:{},title:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,MUt,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,NUt,[(0,t.createVNode)((0,t.unref)(mye)),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.title),1)])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,PUt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.content,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.key,class:`key-value-item`},[(0,t.createElementVNode)(`div`,FUt,(0,t.toDisplayString)(e.key),1),r[0]||=(0,t.createTextVNode)(` : `,-1),(0,t.createElementVNode)(`div`,IUt,(0,t.toDisplayString)(e.value),1)]))),128))])]))}}),RUt={class:`ai-text-content`},zUt=(0,t.defineComponent)({__name:`text-content`,props:{content:{}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,RUt,(0,t.toDisplayString)(e.content),1))}}),BUt={class:`ai-user-message`},VUt={key:1,class:`ai-user-message-content`},HUt={class:`user-edit-footer`},UUt=(0,t.defineComponent)({__name:`user-message`,props:{content:{},createdAt:{},id:{},messageId:{},messageTools:{},name:{},onAction:{type:Function},property:{},role:{},status:{},tippyOptions:{},uid:{},messageToolsStatus:{},onInputConfirm:{type:Function},onShortcutConfirm:{type:Function}},setup(e){let n=e,r=MSe(),{copy:i}=Yu(),a=(0,t.computed)(()=>rd(b_e,n.messageTools)),o=(0,t.shallowRef)(!1),s=(0,t.shallowRef)(``),l=(0,t.useTemplateRef)(`chatInputRef`),u=(0,t.computed)(()=>{let e=n.property?.extra?.cite;if(!(!e||typeof e==`string`))return e.title}),d=(0,t.computed)(()=>{let e=n.property?.extra?.cite;return!e||typeof e==`string`?e:e.data}),f=(0,t.computed)(()=>{if(!n.property?.extra)return null;let{extra:e}=n.property,{shortcut:t,cite:r,context:i}=e||{};if(t)return t;if(r&&typeof r==`object`&&r.data?.length){let e=[];for(let t of r.data){let n=i?.find(e=>e.__label===t.key);n?.__key&&e.push({formItemProps:{label:n.__label,required:!!n.fillBack},props:{default:n.__value},key:n.__key,type:`textarea`})}return{components:e,name:r.title}}return null}),p=(0,t.computed)(()=>Array.isArray(n.content)?n.content?.filter(e=>e.type===Dl.Binary):[]),m=(0,t.computed)(()=>{let e=n.property?.docSchema;if(!e)return;let t=BSe(e,p.value);return t.some(e=>e.some(e=>e.type===`tag`))?t:void 0}),h=(0,t.computed)(()=>n.content?typeof n.content==`string`?[n.content]:n.content.filter(e=>e.type===Dl.Text&&!!e.text?.trim()).map(e=>e.text):[]),g=async e=>{e.id===`edit`?(h.value.length&&(s.value=m.value??h.value[0]??``,o.value=!0),p.value.length&&(o.value=!0),o.value&&(await(0,t.nextTick)(),l.value?.focus?.())):e.id===`copy`&&i(typeof n.content==`string`?n.content:JSON.stringify(n.content||``)),await n.onAction?.(e)},_=async()=>{await l.value?.triggerSendMessage?.(),o.value=!1},v=()=>{o.value=!1},y=()=>{o.value=!1},b=async e=>{n.onShortcutConfirm?.(e),o.value=!1},x=async(e,t)=>{n.onInputConfirm?.(e,t),o.value=!1};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,BUt,[d.value&&typeof d.value==`string`?((0,t.openBlock)(),(0,t.createBlock)(MLt,{key:0,class:`ai-user-message-cite`,content:d.value},null,8,[`content`])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createCommentVNode)(` 非编辑状态 `),o.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createCommentVNode)(` 编辑状态 `),f.value?((0,t.openBlock)(),(0,t.createBlock)(hSe,(0,t.mergeProps)({key:0},f.value,{class:`user-shortcut-render`,onClose:y,onSubmit:b}),null,16)):((0,t.openBlock)(),(0,t.createBlock)(Czt,{key:1,ref_key:`chatInputRef`,ref:l,modelValue:s.value,"onUpdate:modelValue":i[0]||=e=>s.value=e,class:`user-edit-input`,"default-upload-files":p.value,"menu-sources":(0,t.unref)(r)?.menuSources?.value??[],"on-send-message":x,"support-upload":(0,t.unref)(r)?.supportUpload.value??!1},{"send-icon":(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,HUt,[(0,t.createVNode)((0,t.unref)(Ko),{size:`small`,onClick:v},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`取消`)),1)]),_:1}),(0,t.createVNode)((0,t.unref)(Ko),{size:`small`,theme:`primary`,onClick:_},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`发送`)),1)]),_:1})])]),_:1},8,[`modelValue`,`default-upload-files`,`menu-sources`,`support-upload`]))],64)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 图片 / 文件的分组与排序由 FileContent 内部按设计稿处理 `),p.value.length?((0,t.openBlock)(),(0,t.createBlock)(mRt,{key:0,class:`ai-user-message-binary-files`,files:p.value,readonly:!0,variant:`message`},null,8,[`files`])):(0,t.createCommentVNode)(`v-if`,!0),d.value||h.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,VUt,[(0,t.createCommentVNode)(` 设计稿标注:消息最高显示 200px,超出后由「显示更多 / 收起」控制 `),(0,t.createVNode)(jUt,{"max-height":(0,t.unref)(200)},{default:(0,t.withCtx)(()=>[Array.isArray(d.value)?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createCommentVNode)(` property.extra.cite 是数组时,显示结构化内容 `),(0,t.createVNode)(LUt,{content:d.value,title:u.value},null,8,[`content`,`title`])],64)):m.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 发送时保留了富文本文档:把 @ 选中的资源原样还原成标签 `),(0,t.createVNode)((0,t.unref)(FRt),{doc:m.value},null,8,[`doc`])],2112)):e.content?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createCommentVNode)(` agui user message content 显示`),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(zUt,{key:n,content:e},null,8,[`content`]))),128))],2112)):(0,t.createCommentVNode)(`v-if`,!0)]),_:1},8,[`max-height`])])):(0,t.createCommentVNode)(`v-if`,!0),e.messageToolsStatus===(0,t.unref)(x9).Hidden?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createBlock)(OVt,{key:2,class:`ai-user-message-tools`,"message-tools":a.value,"message-tools-status":e.messageToolsStatus,"on-action":g,"tippy-options":e.tippyOptions,"update-tools":[]},{prepend:(0,t.withCtx)(()=>[(0,t.createVNode)(uVt,{"created-at":e.createdAt},null,8,[`created-at`])]),_:1},8,[`message-tools`,`message-tools-status`,`tippy-options`]))],64))]))}}),z9=(0,t.defineComponent)({__name:`message-render`,props:{messageToolsStatus:{},onInputConfirm:{type:Function},onShortcutConfirm:{type:Function},onAction:{type:Function},tippyOptions:{},message:{},messageTools:{},onInterruptResume:{type:Function}},setup(e){let n=e,r=(0,t.useSlots)(),i=(0,t.computed)(()=>{switch(n.message.role){case Ol.User:return(0,t.h)(UUt,{...n.message,onAction:n.onAction,onInputConfirm:n.onInputConfirm,onShortcutConfirm:n.onShortcutConfirm,messageTools:n.messageTools,messageToolsStatus:n.messageToolsStatus,tippyOptions:n.tippyOptions});case Ol.Assistant:return(0,t.h)(nUt,n.message,{default:e=>(0,t.renderSlot)(r,`default`,e,()=>[(0,t.h)(J7,{content:n.message.content||``,status:n.message.status},r.codeHeader?{codeHeader:e=>r.codeHeader?.(e)}:void 0)])});case Ol.Info:return(0,t.h)(aUt,n.message);case Ol.Reasoning:return(0,t.h)(kUt,n.message);case Ol.Tool:return(0,t.h)(GHt,n.message);case Ol.Activity:return(0,t.h)(LHt,{...n.message,onInterruptResume:n.onInterruptResume});case Ol.Interrupt:return(0,t.h)(SUt,{...n.message,onInterruptResume:n.onInterruptResume},r.answeredQuestion?{answeredQuestion:e=>r.answeredQuestion?.(e)}:void 0);case Ol.Loading:return(0,t.h)(wUt,n.message);default:return null}});return(e,n)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(i.value)))}}),WUt=[`id`,`data-message-group-id`,`onMouseenter`,`onMouseleave`],GUt=[`data-message-id`],KUt={class:`ai-message-fixed-bottom`},qUt=(0,t.defineComponent)({__name:`message-container`,props:(0,t.mergeModels)({enableSelection:{type:Boolean,default:!1},messageGroups:{},messages:{},messageStatus:{},messageTools:{},messageToolsStatus:{},messageToolsTippyOptions:{},onAgentAction:{},onAgentFeedback:{},onInterruptResume:{},onUserAction:{},renderMode:{},updateTools:{},userMessageTools:{},onUserInputConfirm:{},onUserShortcutConfirm:{}},{selectedUserMessages:{required:!1},selectedUserMessagesModifiers:{}}),emits:(0,t.mergeModels)([`stopStreaming`],[`update:selectedUserMessages`]),setup(e){let n=e,r=(0,t.useModel)(e,`selectedUserMessages`),i=e=>{let t=e.id||e.uid;return t===void 0?void 0:String(t)},a=e=>{for(let t=e.length-1;t>=0;t--){let n=e[t]?.createdAt;if(n)return n}},o=(0,t.useTemplateRef)(`messageContainerRef`),s=(0,t.useTemplateRef)(`messageContainerBottomRef`),{jumpToBottom:l,toScrollBottom:u,debouncedShowScrollBottomBtn:d}=wSe(o,s);(0,t.onMounted)(()=>{n.messageGroups?.length&&(l(),requestAnimationFrame(()=>l()))});let{copy:f}=Yu(),p=(0,t.computed)(()=>rd(y_e,n.messageTools).filter(e=>n.renderMode!==Ml.Test||e.id!==`share`)),m=(0,t.computed)(()=>rd(x_e,n.updateTools)),h=(0,t.computed)(()=>n.renderMode===Ml.Share?n.messageGroups.filter(e=>e.type!==Ol.Loading):n.messageGroups),g=e=>{e.messages?.at(-1)?.role!==Ol.Interrupt&&(e.isHover=!0)},_=(e,t)=>{let n=t.toElement??t.relatedTarget;n instanceof Element&&n.classList.contains(`ai-user-feedback`)||(e.isHover=!1)},v=(e,t)=>{let i=e.type===Ol.User;n.messageGroups?.forEach((r,a)=>{if(r===e){r.checked=t;let e=i?n.messageGroups.at(a+1):n.messageGroups.at(a-1);e&&(e.checked=t)}}),r.value=n.messageGroups?.filter(e=>e.checked).map(e=>e.messages).flat()},y=async(e,t)=>(e.id===`copy`&&f(t.filter(e=>e.role!==Ol.Reasoning).map(e=>typeof e.content==`string`?e.content:JSON.stringify(e.content||``)).join(`
|
|
3915
|
-
`)),n.onAgentAction?.(e,t)),b=async(e,t)=>{n.onUserAction?.(e,t)},x=async(e,t,r)=>{n.onUserInputConfirm?.(e,t,r)},S=async(e,t)=>{n.onUserShortcutConfirm?.(e,t)};return(r,l)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`messageContainerRef`,ref:o,class:`ai-message-container`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,(o,s)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{id:o.uid,key:s,class:`message-group`,"data-message-group-id":o.uid,style:(0,t.normalizeStyle)({backgroundColor:o.checked?`#f5f7fa`:`transparent`}),onMouseenter:e=>g(o),onMouseleave:e=>_(o,e)},[(0,t.renderSlot)(r.$slots,`group`,(0,t.mergeProps)({ref_for:!0},{group:o}),()=>[e.enableSelection&&o.type!==(0,t.unref)(Ol).Loading?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ds),{key:0,class:(0,t.normalizeClass)([`message-group-checkbox`,{"is-user-group":o.type===(0,t.unref)(Ol).User}]),"model-value":o.checked,"onUpdate:modelValue":e=>v(o,e)},null,8,[`class`,`model-value`,`onUpdate:modelValue`])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`message-group-messages`,{"message-group-enabled-selection":e.renderMode===(0,t.unref)(Ml).Share||e.enableSelection&&o.type!==(0,t.unref)(Ol).Loading}]),style:(0,t.normalizeStyle)({width:e.enableSelection&&o.type!==(0,t.unref)(Ol).Loading?`calc(100% - 16px)`:`100%`})},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.messages,(a,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:o,class:`ai-message-item`,"data-message-id":i(a)},[(0,t.renderSlot)(r.$slots,`default`,(0,t.mergeProps)({ref_for:!0},{message:a,messageToolsStatus:e.messageToolsStatus,onInterruptResume:n.onInterruptResume}),()=>[((0,t.openBlock)(),(0,t.createBlock)(z9,{key:o,message:a,"message-tools":e.userMessageTools,"message-tools-status":e.messageToolsStatus,"on-action":e=>b(e,a),"on-input-confirm":(e,t)=>x(a,e,t),"on-interrupt-resume":n.onInterruptResume,"on-shortcut-confirm":e=>S(a,e),"tippy-options":e.messageToolsTippyOptions},(0,t.createSlots)({_:2},[r.$slots.answeredQuestion?{name:`answeredQuestion`,fn:(0,t.withCtx)(e=>[(0,t.renderSlot)(r.$slots,`answeredQuestion`,(0,t.mergeProps)({ref_for:!0},e))]),key:`0`}:void 0]),1032,[`message`,`message-tools`,`message-tools-status`,`on-action`,`on-input-confirm`,`on-interrupt-resume`,`on-shortcut-confirm`,`tippy-options`]))])],8,GUt))),128)),e.renderMode!==(0,t.unref)(Ml).Share&&!(e.enableSelection&&o.type!==(0,t.unref)(Ol).Loading)&&!o.pause&&o.type===(0,t.unref)(Ol).Assistant&&e.messageToolsStatus!==(0,t.unref)(x9).Hidden?((0,t.openBlock)(),(0,t.createBlock)(OVt,{key:0,"message-tools":p.value,"message-tools-status":e.messageToolsStatus,"on-action":e=>y(e,o.messages),style:(0,t.normalizeStyle)({visibility:o.isHover?`visible`:`hidden`}),"tippy-options":n.messageToolsTippyOptions,"update-tools":m.value,onFeedback:(e,t,r)=>n.onAgentFeedback?.(e,o.messages,t,r)},{append:(0,t.withCtx)(()=>[(0,t.createVNode)(uVt,{"created-at":a(o.messages)},null,8,[`created-at`])]),_:2},1032,[`message-tools`,`message-tools-status`,`on-action`,`style`,`tippy-options`,`update-tools`,`onFeedback`])):(0,t.createCommentVNode)(`v-if`,!0)],6)])],44,WUt))),128)),(0,t.createElementVNode)(`div`,{ref_key:`messageContainerBottomRef`,ref:s,class:`message-container-bottom`,tabindex:`0`},null,512),(0,t.createElementVNode)(`div`,KUt,[(0,t.withDirectives)((0,t.createVNode)(jye,{loading:e.messageStatus===(0,t.unref)(kl).StopLoading,title:e.messageStatus===(0,t.unref)(kl).StopLoading?(0,t.unref)(wl)(`正在停止`):(0,t.unref)(wl)(`停止生成`),onClick:l[0]||=e=>r.$emit(`stopStreaming`)},{icon:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Jve))]),_:1},8,[`loading`,`title`]),[[t.vShow,e.renderMode!==(0,t.unref)(Ml).Share&&(e.messageStatus===(0,t.unref)(kl).Streaming||e.messageStatus===(0,t.unref)(kl).StopLoading||e.messageStatus===(0,t.unref)(kl).Fetching||e.messageStatus===(0,t.unref)(kl).Pending)]]),(0,t.withDirectives)((0,t.createVNode)(jye,{title:(0,t.unref)(wl)(`返回底部`),onClick:l[1]||=()=>(0,t.unref)(u)(`smooth`)},{icon:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(gye))]),_:1},8,[`title`]),[[t.vShow,(0,t.unref)(d)]])])],512))}}),JUt={class:`ai-execution-summary`},YUt={key:0,class:`ai-execution-summary-header`},XUt={class:`ai-execution-summary-content`},ZUt=[`onMouseenter`],QUt={class:`content-item-header`},$Ut={class:`content-item-title`},eWt={class:`content-item-messages`},tWt={key:0,class:`timeline-line`},nWt={key:1,class:`ai-execution-summary-content-empty`},rWt={class:`ai-execution-summary-content-empty-text`},iWt=(0,t.defineComponent)({__name:`execution-summary`,props:{messageGroups:{}},emits:[`locateMessageGroup`,`updateKeyword`],setup(e,{emit:n}){let r=n,i=od(),{keyword:a}=OCe(),o=(0,t.shallowRef)(void 0),s=e=>{if(!e)return``;let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`},l=e=>{r(`locateMessageGroup`,e.uid,e)},u=()=>{a.value=``,r(`updateKeyword`,``)};return(n,d)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,JUt,[e.messageGroups.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,YUt,[(0,t.createVNode)((0,t.unref)(is),{modelValue:(0,t.unref)(a),"onUpdate:modelValue":[d[0]||=e=>(0,t.isRef)(a)?a.value=e:null,d[1]||=e=>r(`updateKeyword`,e)],class:`ai-execution-summary-header-input`,clearable:``,placeholder:(0,t.unref)(wl)(`搜索 关键字`)},null,8,[`modelValue`,`placeholder`])])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,XUt,[e.messageGroups.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e.messageGroups,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.uid,class:`ai-execution-summary-content-item`,onMouseenter:e=>o.value=n.uid,onMouseleave:d[2]||=e=>o.value=void 0},[(0,t.createElementVNode)(`div`,QUt,[d[3]||=(0,t.createElementVNode)(`span`,{class:`timeline-dot`},null,-1),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,$Ut,[(0,t.createTextVNode)((0,t.toDisplayString)(typeof n.userMessageTitle==`number`?s(n.userMessageTitle):n.userMessageTitle),1)])),[[(0,t.unref)(sd),{...(0,t.unref)(i)}]]),(0,t.withDirectives)((0,t.createVNode)((0,t.unref)(Ko),{class:`content-item-locate`,text:``,theme:`primary`,onClick:e=>l(n)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`在对话中定位`)),1)]),_:1},8,[`onClick`]),[[t.vShow,o.value===n.uid]])]),(0,t.createElementVNode)(`div`,eWt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(n.messages,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(z9,{key:n,message:e},null,8,[`message`]))),128))]),r<e.messageGroups.length-1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,tWt)):(0,t.createCommentVNode)(`v-if`,!0)],40,ZUt))),128)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,nWt,[(0,t.createVNode)((0,t.unref)(hc),{class:`empty-exception`,scene:`part`,type:`empty`}),(0,t.createElementVNode)(`div`,rWt,[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(a)?(0,t.unref)(wl)(`搜索结果为空`):(0,t.unref)(wl)(`暂无数据`))+` `,1),(0,t.unref)(a)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ko),{key:0,text:``,theme:`primary`,onClick:u},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`清空搜索`)),1)]),_:1})):(0,t.createCommentVNode)(`v-if`,!0)])]))])]))}}),aWt={class:`ai-selection-footer`},oWt={class:`ai-selection-footer-left`},sWt={class:`select-all-text`},cWt={class:`ai-selection-footer-right`},lWt=(0,t.defineComponent)({__name:`selection-footer`,props:{isAllSelected:{type:Boolean},loading:{type:Boolean},selectedCount:{}},emits:[`cancel`,`confirm`,`toggle-all`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,aWt,[(0,t.createElementVNode)(`div`,oWt,[(0,t.createVNode)((0,t.unref)(ds),{"model-value":e.isAllSelected,"onUpdate:modelValue":i[0]||=e=>r(`toggle-all`,e)},null,8,[`model-value`]),(0,t.createElementVNode)(`span`,sWt,(0,t.toDisplayString)((0,t.unref)(wl)(`全选`)),1)]),(0,t.createElementVNode)(`div`,cWt,[(0,t.createVNode)((0,t.unref)(Ko),{disabled:e.loading,onClick:i[1]||=e=>r(`cancel`)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`取消`)),1)]),_:1},8,[`disabled`]),(0,t.createVNode)((0,t.unref)(Ko),{disabled:e.selectedCount===0,loading:e.loading,theme:`primary`,onClick:i[2]||=e=>r(`confirm`)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`确定`)),1)]),_:1},8,[`disabled`,`loading`])])]))}}),uWt=[`data-ai-size`],dWt={key:0,class:`ai-chat-container-loading`},fWt={class:`screen-wrapper`},pWt={key:1,class:`ai-welcome-content`},mWt={class:`ai-welcome-title`},hWt={key:0,class:`ai-welcome-remark`},gWt=(0,t.defineComponent)({__name:`chat-container`,props:(0,t.mergeModels)({asideCollapsed:{type:Boolean,default:void 0},chatLoading:{type:Boolean},commonTippyOptions:{},executionTabVisible:{type:Boolean,default:!0},getSideRenderComponent:{},getSideTabRenderComponent:{},onArtifactClick:{},onCustomTabChange:{},openingRemark:{},resizeProps:{},size:{default:`small`},timezone:{},welcomeTitle:{},accept:{},defaultUploadFiles:{},inputMaxHeight:{},menuGroupItemLimit:{},menuSources:{},messageStatus:{},models:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{},sendDisabledTip:{},shortcutId:{},shortcuts:{},supportUpload:{type:Boolean},tippyOptions:{},messages:{},messageTools:{},messageToolsStatus:{},onAgentAction:{},onAgentFeedback:{},onInterruptResume:{},onUserAction:{},renderMode:{},updateTools:{},userMessageTools:{},onUserInputConfirm:{},onUserShortcutConfirm:{}},{renderMode:{required:!1,default:Ml.Chat},renderModeModifiers:{},selectedShortcut:{required:!1},selectedShortcutModifiers:{},cite:{required:!1,default:``},citeModifiers:{},selectedModel:{required:!1},selectedModelModifiers:{}}),emits:(0,t.mergeModels)([`selectShortcut`,`deleteShortcut`,`deleteFile`,`update:modelValue`,`modelChange`,`stopStreaming`,`shortcutClose`,`shortcutSubmit`,`confirmShare`,`collapseChange`,`update:asideCollapsed`],[`update:renderMode`,`update:selectedShortcut`,`update:cite`,`update:selectedModel`]),setup(e,{expose:n,emit:r}){let i=bhe.TabPanel,a=e,o=(0,t.useModel)(e,`renderMode`),s=(0,t.useTemplateRef)(`fullScreenRef`),{isFullScreen:l,enter:u,exit:d}=kSe(s);kCe({renderMode:o});let f=(0,t.computed)(()=>({collapsible:!1,immediate:!0,min:400,...a.resizeProps,placement:`right`})),p=(0,t.computed)(()=>a.getSideRenderComponent?.(t.h,T.value.data?.props??{})??T.value.data?.component),m=(0,t.computed)(()=>{let e=a.menuSources??[];return e.some(e=>e.type===`artifact`)?e:[...e,...QSe(a.messages)]}),h=(0,t.useTemplateRef)(`chatInputRef`);PSe({insertMention:e=>h.value?.insertMention?.(e)}),jSe({menuSources:m,size:(0,t.computed)(()=>a.size??`small`),supportUpload:(0,t.computed)(()=>a.supportUpload??!1),timezone:(0,t.computed)(()=>a.timezone)}),(0,t.watch)(()=>a.size??`small`,e=>{typeof document<`u`&&(document.body.dataset.aiSize=e)},{immediate:!0});let g=(0,t.useModel)(e,`selectedShortcut`),_=(0,t.useModel)(e,`cite`),v=(0,t.useModel)(e,`selectedModel`),y=r,b=(0,t.shallowRef)(!0),x=(0,t.computed)({get:()=>a.asideCollapsed??b.value,set:e=>{a.asideCollapsed===void 0&&(b.value=e),y(`update:asideCollapsed`,e)}}),S=(0,t.computed)(()=>l.value&&s.value?{...a.commonTippyOptions,appendTo:s.value}:{...a.commonTippyOptions});jCe({tippyOptions:S});let{displayTabs:C,tabs:w,selectedTab:T,isCollapse:E,addCustomTab:D,ensureCustomTab:O,removeCustomTab:k,selectCustomTab:A,resetCustomTab:j}=DSe({collapsed:x,executionTabVisible:()=>a.executionTabVisible,onTabChange:async e=>{if(e.name===`file-artifact`)return;let t=T.value.data?.props||{loading:!0,data:{}};T.value.data={...T.value.data,props:t};let n=await a.onCustomTabChange?.(e);T.value.data={...T.value.data,props:{...t,loading:!1,data:n}}}}),M={closable:!1,label:wl(`文件产物`),name:_Se,order:-1};O(M);let N=(0,t.shallowRef)(``),P=(0,t.ref)([]),F=(0,t.shallowRef)(),I=()=>{let e=a.resizeProps?.initialDivide;return typeof e==`number`?e:400},L=(0,t.shallowRef)(I()),R=(0,t.shallowRef)(I()),ee=(0,t.shallowRef)(!1),z=(0,t.computed)(()=>`calc(100% - ${L.value}px)`),B=(0,t.computed)(()=>`${R.value}px`),{messageGroups:V,executionGroups:te,sessionArtifacts:ne,isShareMode:re,isAllSelected:ie,onToggleShareAll:ae,onCancelShare:H,onConfirmShare:oe,pendingApprovalTipText:se,activeUserQuestionInterrupt:ce}=wCe({keyword:N,messages:(0,t.computed)(()=>a.messages),renderMode:(0,t.computed)(()=>o.value),selectedUserMessages:P}),le=(0,t.computed)(()=>{let e=new Map(ne.value.map(e=>[e.outputId,e]));for(let t of h.value?.uploadedArtifacts??[])e.set(t.outputId,t);return[...e.values()]}),{activeArtifactId:ue,setActiveArtifactId:de}=ySe({getOnArtifactClick:()=>a.onArtifactClick,onOpen:()=>{D(M)}});(0,t.watch)(le,e=>{if(!e.length){de(``);return}e.some(e=>e.outputId===ue.value)||de(e[0].outputId)},{immediate:!0}),(0,t.watch)(E,e=>{e?(N.value=``,L.value=0):L.value=R.value,y(`collapseChange`,e,L.value)});let fe=(0,t.computed)(()=>a.messageStatus===kl.StopLoading?kl.StopLoading:V.value?.some(e=>e.messages.some(e=>e.id===`__loading__`))?kl.Fetching:a.messageStatus),pe=()=>{g.value=null,y(`shortcutClose`)},me=e=>{y(`shortcutSubmit`,e)},he=()=>{y(`deleteShortcut`)},ge=e=>{y(`selectShortcut`,e)},_e=(e,t)=>{y(`update:modelValue`,e,t)},ve=async(e,t)=>{let n=ce.value;return a.onSendMessage?.(e,t,n?{payload:xBt(n),interrupt:n}:void 0)},ye=e=>{if(!e)return;let t=document.getElementById(e);if(!t){let t=V.value.find(t=>t.messages.some(t=>t.uid===e));t&&document.getElementById(t.uid)?.scrollIntoView({behavior:`smooth`});return}t.scrollIntoView({behavior:`smooth`})},be=e=>{if(!(e instanceof HTMLElement))return;let t=e.getBoundingClientRect();t.bottom<0||t.top>window.innerHeight||e.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})},xe=e=>e===`execution`?B_e:e===`file-artifact`?W_e:U_e,Se=e=>{A(w.value.find(t=>t.name===e))},Ce=e=>{N.value=e},we=async(e,t)=>{if(e.id===`share`||e.triggerSelection){F.value=e,re.value=!0;return}return a.onAgentAction?.(e,t)},Te=()=>{y(`confirmShare`,oe(),F.value),(0,t.nextTick)(()=>{re.value=!1,P.value=[],F.value=void 0})},Ee=()=>{H(),F.value=void 0},De=e=>{ee.value=!0,L.value=e,R.value=e},Oe=()=>{ee.value=!1};return(0,t.onUnmounted)(()=>{j(),typeof document<`u`&&delete document.body.dataset.aiSize}),n({selectedTab:T,addCustomTab:D,removeCustomTab:k,selectCustomTab:A,enterShareMode:()=>{re.value=!0},exitShareMode:()=>{Ee()}}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`ai-chat-container`,"data-ai-size":e.size,style:(0,t.normalizeStyle)({"--resize-main-width":z.value,"--resize-aside-width":B.value})},[e.chatLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dWt,[(0,t.createVNode)(Fzt)])):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ahe),(0,t.mergeProps)({key:1,class:[`ai-chat-container-resize-layout`,{"ai-is-collapse":(0,t.unref)(E)||(0,t.unref)(C).length===0,"ai-is-welcome":!e.messages?.length,"is-resizing":ee.value}]},f.value,{onAfterResize:Oe,onResizing:De}),{aside:(0,t.withCtx)(()=>[(0,t.createVNode)(t.Transition,{name:`ai-aside-content`},{default:(0,t.withCtx)(()=>[!(0,t.unref)(E)&&(0,t.unref)(C).length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`fullScreenRef`,ref:s,class:`ai-full-screen-wrapper`},[(0,t.createVNode)((0,t.unref)(bhe),{active:(0,t.unref)(T).name,class:`ai-chat-container-tab`,"label-height":40,type:`unborder-card`,onChange:Se},{setting:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,fWt,[(0,t.createVNode)(cd,{class:`screen-btn`,"tippy-options":{...S.value,content:(0,t.unref)(l)?(0,t.unref)(wl)(`退出全屏`):(0,t.unref)(wl)(`全屏`)}},{default:(0,t.withCtx)(()=>[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(vye),{key:1,onClick:(0,t.unref)(d)},null,8,[`onClick`])):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(_ye),{key:0,onClick:(0,t.unref)(u)},null,8,[`onClick`]))]),_:1},8,[`tippy-options`])])]),default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(C),n=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(i),{key:n.name,class:`ai-chat-container-tab-panel`,label:()=>(0,t.h)(`div`,{class:`ai-execution-summary-label`,onVnodeMounted:e=>{(0,t.unref)(T).name===n.name&&be(e.el)}},e.getSideTabRenderComponent?.(t.h,n,{removeCustomTab:(0,t.unref)(k)})??[(0,t.h)(xe(n.name),{class:`ai-execution-summary-icon`}),(0,t.withDirectives)((0,t.h)(`span`,{class:`ai-execution-summary-label-text`},n.label??``),[[(0,t.unref)(sd),{...S.value,text:n.label??``}]]),n.closable!==!1&&n.name!==(0,t.unref)(`execution`)?(0,t.h)((0,t.unref)(zl),{class:`ai-execution-close-icon`,onClick:()=>{(0,t.unref)(k)(n.name)}}):null]),name:n.name},null,8,[`label`,`name`]))),128))]),_:1},8,[`active`]),(0,t.unref)(T)?.name===(0,t.unref)(`execution`)&&e.executionTabVisible!==!1?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.unref)(E)?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createBlock)(iWt,{key:0,"message-groups":(0,t.unref)(te),style:{height:`calc(100% - 40px)`},onLocateMessageGroup:ye,onUpdateKeyword:Ce},null,8,[`message-groups`]))],64)):(0,t.unref)(T)?.name===(0,t.unref)(`file-artifact`)?((0,t.openBlock)(),(0,t.createBlock)(vBt,{key:1,"active-id":(0,t.unref)(ue),artifacts:le.value,style:{height:`calc(100% - 40px)`},onSelect:(0,t.unref)(de)},null,8,[`active-id`,`artifacts`,`onSelect`])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.unref)(T)&&(0,t.unref)(T).name!==(0,t.unref)(`file-artifact`)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:(0,t.unref)(T).name,class:`ai-chat-container-message-slot`},[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(p.value),(0,t.mergeProps)({key:(0,t.unref)(T).name},(0,t.unref)(T)?.data?.props),{locateButton:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ko),{class:`ai-locate-button`,size:`small`,text:``,theme:`primary`,onClick:r[0]||=e=>ye((0,t.unref)(T)?.data?.messageUid)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`在对话中定位`)),1)]),_:1})]),_:1},16))])):(0,t.createCommentVNode)(`v-if`,!0)],512)):(0,t.createCommentVNode)(`v-if`,!0)]),_:1})]),main:(0,t.withCtx)(()=>[e.messages?.length?(0,t.renderSlot)(n.$slots,`default`,(0,t.normalizeProps)((0,t.mergeProps)({key:0},{messages:e.messages,messageStatus:e.messageStatus,messageGroups:(0,t.unref)(V),selectedUserMessages:P.value,messageToolsStatus:e.messageToolsStatus,isShareMode:(0,t.unref)(re),commonTippyOptions:S.value,handleAgentAction:we,onAgentFeedback:e.onAgentFeedback,onInterruptResume:e.onInterruptResume,onUserAction:e.onUserAction,onUserInputConfirm:e.onUserInputConfirm,onUserShortcutConfirm:e.onUserShortcutConfirm})),()=>[e.messages?.length?((0,t.openBlock)(),(0,t.createBlock)(qUt,{key:0,"selected-user-messages":P.value,"onUpdate:selectedUserMessages":r[1]||=e=>P.value=e,"enable-selection":(0,t.unref)(re),"message-groups":(0,t.unref)(V),"message-status":fe.value,"message-tools":e.messageTools,"message-tools-status":e.messageToolsStatus,"message-tools-tippy-options":S.value,messages:e.messages,"on-agent-action":we,"on-agent-feedback":e.onAgentFeedback,"on-interrupt-resume":e.onInterruptResume,"on-user-action":e.onUserAction,"on-user-input-confirm":e.onUserInputConfirm,"on-user-shortcut-confirm":e.onUserShortcutConfirm,"render-mode":o.value,"update-tools":e.updateTools,"user-message-tools":e.userMessageTools,onStopStreaming:r[2]||=e=>y(`stopStreaming`)},{group:(0,t.withCtx)(({group:e})=>[(0,t.renderSlot)(n.$slots,`group`,(0,t.normalizeProps)((0,t.guardReactiveProps)({group:e})))]),default:(0,t.withCtx)(({message:e,messageToolsStatus:r,onInterruptResume:i})=>[(0,t.renderSlot)(n.$slots,`message`,(0,t.normalizeProps)((0,t.guardReactiveProps)({message:e,messageToolsStatus:r,onInterruptResume:i})))]),_:3},8,[`selected-user-messages`,`enable-selection`,`message-groups`,`message-status`,`message-tools`,`message-tools-status`,`message-tools-tippy-options`,`messages`,`on-agent-feedback`,`on-interrupt-resume`,`on-user-action`,`on-user-input-confirm`,`on-user-shortcut-confirm`,`render-mode`,`update-tools`,`user-message-tools`])):(0,t.createCommentVNode)(`v-if`,!0)]):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pWt,[(0,t.renderSlot)(n.$slots,`welcome`,(0,t.normalizeProps)((0,t.guardReactiveProps)({openingRemark:e.openingRemark,welcomeTitle:e.welcomeTitle})),()=>[(0,t.createVNode)((0,t.unref)(k_e)),(0,t.createElementVNode)(`h2`,mWt,(0,t.toDisplayString)(e.welcomeTitle??(0,t.unref)(wl)(`你好,我是小鲸`)),1),e.openingRemark?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hWt,[(0,t.createVNode)(J7,{content:e.openingRemark},null,8,[`content`])])):(0,t.createCommentVNode)(`v-if`,!0)])])),o.value===(0,t.unref)(Ml).Share?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.unref)(re)?((0,t.openBlock)(),(0,t.createBlock)(lWt,{key:0,"is-all-selected":(0,t.unref)(ie),loading:!1,"selected-count":P.value.length,onCancel:Ee,onConfirm:Te,onToggleAll:(0,t.unref)(ae)},null,8,[`is-all-selected`,`selected-count`,`onToggleAll`])):g.value?.components?.length?((0,t.openBlock)(),(0,t.createBlock)(hSe,(0,t.mergeProps)({key:1},g.value,{class:{"is-welcome-overlay":!e.messages?.length},onClose:pe,onSubmit:me}),null,16,[`class`])):((0,t.openBlock)(),(0,t.createBlock)(Czt,{key:2,ref_key:`chatInputRef`,ref:h,cite:_.value,"onUpdate:cite":r[3]||=e=>_.value=e,"selected-model":v.value,"onUpdate:selectedModel":r[4]||=e=>v.value=e,"menu-sources":m.value,"message-status":fe.value,"model-value":e.modelValue,models:e.models,"on-send-message":ve,"on-stop-sending":e.onStopSending,"on-upload":e.onUpload,placeholder:e.placeholder,"send-disabled-tip":(0,t.unref)(se),"shortcut-id":g.value?.id,shortcuts:e.shortcuts,"support-upload":e.supportUpload,"tippy-options":S.value,onDeleteFile:r[5]||=e=>y(`deleteFile`,e),onDeleteShortcut:he,onModelChange:r[6]||=e=>y(`modelChange`,e),onSelectShortcut:ge,"onUpdate:modelValue":_e},{interrupt:(0,t.withCtx)(()=>[(0,t.unref)(ce)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(eVt),{key:0,interrupt:(0,t.unref)(ce),"on-resume":e.onInterruptResume},{question:(0,t.withCtx)(({question:e,qIndex:r,answer:i,setAnswer:a,confirm:o})=>[(0,t.renderSlot)(n.$slots,`interruptQuestion`,(0,t.normalizeProps)((0,t.guardReactiveProps)({question:e,qIndex:r,answer:i,setAnswer:a,confirm:o})))]),_:3},8,[`interrupt`,`on-resume`])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.unref)(se)?((0,t.openBlock)(),(0,t.createBlock)(Ezt,{key:1,content:(0,t.unref)(se)},null,8,[`content`])):(0,t.createCommentVNode)(`v-if`,!0)]),_:3},8,[`cite`,`selected-model`,`menu-sources`,`message-status`,`model-value`,`models`,`on-stop-sending`,`on-upload`,`placeholder`,`send-disabled-tip`,`shortcut-id`,`shortcuts`,`support-upload`,`tippy-options`]))],64))]),_:3},16,[`class`]))],12,uWt))}}),_Wt=`data:image/png;base64,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`,vWt={class:`left-section`},yWt={class:`logo`},bWt=[`src`],xWt={key:0,class:`rename-tooltip`},SWt={class:`rename-content`},CWt={key:0,class:`tippy-dropdown-menu`},wWt={key:1,class:`bkai-icon bkai-auto-refresh-line`},TWt={class:`right-section`},EWt={key:4,"aria-hidden":`true`,class:`header-toolbar-divider`},DWt=w((0,t.defineComponent)({__name:`index`,props:{agentName:{default:``},asideCollapsed:{type:Boolean,default:!0},autoGenerateLoading:{type:Boolean},draggable:{type:Boolean,default:!0},enableChatSession:{type:Boolean,default:!0},hasPermission:{type:Boolean,default:!0},hasSessionContents:{type:Boolean},isCompressionHeight:{type:Boolean,default:!1},renderMode:{default:Ml.Chat},selectedLlmCode:{default:void 0},sessionBusinessManager:{default:void 0},sessionName:{default:``},showAsideToggle:{type:Boolean,default:!0},showCompressionIcon:{type:Boolean,default:!0},showHistoryIcon:{type:Boolean,default:!0},showMoreIcon:{type:Boolean,default:!0},showNewChatIcon:{type:Boolean,default:!0},title:{default:``},chatGroup:{default:()=>({enabled:!1,staff:[],username:``})},dropdownMenuConfig:{default:()=>({showRename:!0,showAutoGenerate:!0,showShare:!1})}},emits:[`auto-generate-name`,`close`,`help-click`,`history-click`,`history-session-delete`,`history-session-rename`,`history-session-switch`,`new-chat`,`new-chat-created`,`rename`,`share`,`toggle-aside`,`toggle-compression`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.defineComponent)({name:`AsideToggleIcon`,setup(){return()=>(0,t.cloneVNode)(Oye)}}),s=Che,l=(0,t.ref)(null),u=(0,t.ref)(null),d=(0,t.useTemplateRef)(`moreMenuTippyRef`),f=(0,t.ref)(!1),p=(0,t.ref)(``),m=(0,t.ref)(null),h=(0,t.ref)(!1),g=()=>document.querySelector(`.ai-blueking-panel`)||document.body,_=null,v=()=>{!u.value||!i.sessionBusinessManager||(_=l_e({triggerRef:u,sessionBusinessManager:i.sessionBusinessManager,onSessionSwitch:e=>a(`history-session-switch`,e),onSessionDelete:e=>a(`history-session-delete`,e),onSessionRename:(e,t)=>a(`history-session-rename`,e,t)}))},y=(0,t.computed)(()=>i.hasPermission?i.enableChatSession?i.title||`${i.agentName||``}-${i.sessionName||``}`:i.agentName:xl(`无智能体使用权限`)),b=(0,t.computed)(()=>i.isCompressionHeight?`bkai-morenchicun`:`bkai-yasuo`),x=(0,t.computed)(()=>i.isCompressionHeight?xl(`恢复默认尺寸`):xl(`缩小高度`)),S=(0,t.computed)(()=>i.hasPermission),C=e=>S.value?e:xl(`暂无使用权限`),w=()=>({cursor:S.value?`pointer`:`not-allowed`}),T=(0,t.ref)(!1),E=async()=>{if(!T.value){T.value=!0;try{if(i.sessionBusinessManager)try{let e=await i.sessionBusinessManager.createNewSession({model:i.selectedLlmCode});e&&a(`new-chat-created`,{sessionCode:e.sessionCode,sessionName:e.sessionName,createdAt:e.createdAt})}catch(e){console.error(`Failed to create new session:`,e),Cc({theme:`error`,message:xl(`创建会话失败`)})}a(`new-chat`)}finally{T.value=!1}}},D=e=>{e.stopPropagation(),i.sessionBusinessManager?(_||v(),_&&_.handleTriggerClick(e)):a(`history-click`,e)},O=()=>{a(`help-click`)},k=e=>{e.stopPropagation(),_&&_.isVisible()&&_.hide(),d.value&&(h.value?d.value.hide():d.value.show())},A=()=>{d.value?.hide(),N()},j=()=>{!i.hasSessionContents||i.autoGenerateLoading||a(`auto-generate-name`)},M=()=>{i.hasSessionContents&&(d.value?.hide(),a(`share`))},N=()=>{document.removeEventListener(`click`,L),p.value=i.sessionName||``,f.value=!0,setTimeout(()=>{document.addEventListener(`click`,L)},100),setTimeout(()=>{if(m.value)try{let e=m.value;e&&typeof e.focus==`function`&&e.focus();let t=e.$el?.querySelector(`input`);t&&typeof t.select==`function`&&t.select()}catch(e){console.warn(`Failed to focus rename input:`,e)}},100)},P=()=>{let e=p.value.trim();if(!e){F();return}a(`rename`,e),f.value=!1,p.value=``},F=()=>{f.value=!1,p.value=``},I=(e,t)=>{p.value=e,t.key===`Enter`?P():t.key===`Escape`&&F()},L=e=>{if(!f.value)return;let t=e.target,n=document.querySelector(`.rename-tooltip`);n&&!n.contains(t)&&F()};return(0,t.watch)(()=>i.autoGenerateLoading,(e,t)=>{t&&!e&&h.value&&d.value?.hide()}),(0,t.onMounted)(()=>{i.sessionBusinessManager&&v(),document.addEventListener(`click`,L)}),(0,t.onBeforeUnmount)(()=>{_&&=(_.destroy(),null),document.removeEventListener(`click`,L)}),n({headerRef:l,historyIconRef:u}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`headerRef`,ref:l,class:(0,t.normalizeClass)([`ai-header drag-handle`,{draggable:i.draggable,"is-aside-expanded":!i.asideCollapsed}])},[(0,t.createElementVNode)(`div`,vWt,[(0,t.createElementVNode)(`div`,yWt,[(0,t.createElementVNode)(`img`,{alt:`logo`,src:(0,t.unref)(_Wt)},null,8,bWt)]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`title`,{"title-with-tooltip":f.value}])},[(0,t.createTextVNode)((0,t.toDisplayString)(y.value)+` `,1),(0,t.createCommentVNode)(` 重命名 tooltip 直接绑定在 title 上 `),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xWt,[(0,t.createElementVNode)(`div`,SWt,[(0,t.createVNode)((0,t.unref)(is),{ref_key:`renameInputRef`,ref:m,modelValue:p.value,"onUpdate:modelValue":r[0]||=e=>p.value=e,class:`rename-input`,placeholder:(0,t.unref)(xl)(`请输入新的会话名称`),onKeyup:I},null,8,[`modelValue`,`placeholder`]),(0,t.createElementVNode)(`div`,{class:`rename-buttons`},[(0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-check-1 rename-btn confirm-btn`,onClick:P}),(0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-close rename-btn cancel-btn`,onClick:F})])])])):(0,t.createCommentVNode)(`v-if`,!0)],2),(0,t.createCommentVNode)(` 更多图标下拉菜单 - 使用 vue-tippy `),i.showMoreIcon&&S.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Wu),{key:0,ref_key:`moreMenuTippyRef`,ref:d,"append-to":g,arrow:!1,interactive:``,offset:[0,4],placement:`bottom-start`,theme:`ai-blueking-light more-menu-light light`,trigger:`manual`,onHidden:r[1]||=e=>h.value=!1,onShown:r[2]||=e=>h.value=!0},{content:(0,t.withCtx)(()=>[h.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,CWt,[i.dropdownMenuConfig?.showRename?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`tippy-menu-item`,onClick:A},[r[8]||=(0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-bianji`},null,-1),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(xl)(`重命名`)),1)])):(0,t.createCommentVNode)(`v-if`,!0),i.dropdownMenuConfig?.showAutoGenerate?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)([`tippy-menu-item`,{disabled:!i.hasSessionContents||i.autoGenerateLoading}]),onClick:j},[i.autoGenerateLoading?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ro),{key:0,mode:`spin`,size:`mini`,theme:`primary`})):((0,t.openBlock)(),(0,t.createElementBlock)(`i`,wWt)),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(xl)(`自动生成命名`)),1)],2)),[[(0,t.unref)(Ku),{content:i.hasSessionContents?``:(0,t.unref)(xl)(`请先发起会话`),theme:`ai-blueking-tooltip`,arrow:!0,delay:[300,0],appendTo:g}]]):(0,t.createCommentVNode)(`v-if`,!0),i.dropdownMenuConfig?.showShare&&i.renderMode!==(0,t.unref)(Ml).Test?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:(0,t.normalizeClass)([`tippy-menu-item`,{disabled:!i.hasSessionContents}]),onClick:M},[r[9]||=(0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-fenxiang`},null,-1),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(xl)(`分享会话`)),1)],2)),[[(0,t.unref)(Ku),{content:i.hasSessionContents?``:(0,t.unref)(xl)(`请先发起会话`),theme:`ai-blueking-tooltip`,arrow:!0,delay:[300,0],appendTo:g}]]):(0,t.createCommentVNode)(`v-if`,!0)])):(0,t.createCommentVNode)(`v-if`,!0)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,{class:`bkai-icon bkai-more`,onClick:k})]),_:1},512)):(0,t.createCommentVNode)(`v-if`,!0)]),(0,t.renderSlot)(n.$slots,`headerLeft`,{},void 0,!0),(0,t.createElementVNode)(`div`,TWt,[(0,t.createCommentVNode)(` 新增会话按钮 `),i.showNewChatIcon&&e.enableChatSession!==!1?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:0,class:(0,t.normalizeClass)([`bkai-icon`,`bkai-xinzengliaotian`,{disabled:!S.value||T.value||!e.hasSessionContents}]),style:(0,t.normalizeStyle)(w()),onClick:r[3]||=t=>S.value&&!T.value&&e.hasSessionContents?E():void 0},null,6)),[[(0,t.unref)(s),{content:T.value?(0,t.unref)(xl)(`正在创建会话...`):e.hasSessionContents?C((0,t.unref)(xl)(`新增会话`)):(0,t.unref)(xl)(`当前已是新会话`),boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createCommentVNode)(` 历史会话按钮 `),i.showHistoryIcon&&e.enableChatSession!==!1?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:1,ref_key:`historyIconRef`,ref:u,class:(0,t.normalizeClass)([`bkai-icon`,`bkai-history`,{disabled:!S.value}]),style:(0,t.normalizeStyle)(w()),onClick:r[4]||=e=>S.value?D(e):void 0},null,6)),[[(0,t.unref)(s),{content:C((0,t.unref)(xl)(`历史会话`)),boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0),e.chatGroup?.enabled?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:2,class:`bkai-icon bkai-zhushou`,onClick:O},null,512)),[[(0,t.unref)(s),{content:(0,t.unref)(xl)(`转人工`),boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0),i.showCompressionIcon?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:3,class:(0,t.normalizeClass)([`bkai-icon`,b.value]),onClick:r[5]||=e=>a(`toggle-compression`)},null,2)),[[(0,t.unref)(s),{content:x.value,boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0),(0,t.withDirectives)((0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-close-line-2`,onClick:r[6]||=e=>a(`close`)},null,512),[[(0,t.unref)(s),{content:(0,t.unref)(xl)(`关闭`),boundary:`parent`}]]),(0,t.createCommentVNode)(` 设计稿:关闭与侧栏展开之间有竖线分隔 `),i.showAsideToggle?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,EWt)):(0,t.createCommentVNode)(`v-if`,!0),i.showAsideToggle?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:5,class:`bkai-icon aside-toggle`,onClick:r[7]||=(0,t.withModifiers)(e=>a(`toggle-aside`),[`stop`])},[(0,t.createVNode)((0,t.unref)(o))])),[[(0,t.unref)(s),{content:i.asideCollapsed?(0,t.unref)(xl)(`展开侧栏`):(0,t.unref)(xl)(`收起侧栏`),boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0)])],2))}}),[[`__scopeId`,`data-v-03aace06`]]);function OWt(e){let t=bl(e);fetch(t,{method:`GET`,credentials:`include`}).catch(()=>{})}async function kWt(e,t={}){let{enableModelSelect:n=!0}=t,r=[e.agent.getAgentInfo(),e.session.getSessions()];n&&typeof e.agent.getLlms==`function`&&r.push(e.agent.getLlms().catch(e=>{console.error(`[runAgentBootstrap] Failed to load models:`,e)})),await Promise.all(r);let i=e.agent.info.value?.saasUrl;i&&OWt(i)}var AWt=class extends Error{constructor(e=`当前没有可用模型,无法创建会话`){super(e),this.name=`ModelUnavailableError`}},B9=class{_isLoading;_models;_selectedLlmCode;_selectedModelName;_selectedModelSupportsVision;agentModule;config;loadPromise=null;pendingPersist=new Map;sessionModule;defaultModelCode(){let e=this._models.value;return(e.find(e=>e.property?.default)??e[0])?.llm_code}hasValidSelection(){let e=this._selectedLlmCode.value;return!!e&&this._models.value.some(t=>t.llm_code===e)}isSessionPending(){return this.sessionModule!=null&&this.sessionModule.current?.value==null}constructor(e,n=null,r={}){this.agentModule=e,this.sessionModule=n,this.config=r,this._models=(0,t.ref)([]),this._selectedLlmCode=(0,t.ref)(void 0),this._isLoading=(0,t.ref)(!1),this._selectedModelName=(0,t.computed)(()=>{let e=this._selectedLlmCode.value;return e?this._models.value.find(t=>t.llm_code===e)?.llm_name??``:``}),this._selectedModelSupportsVision=(0,t.computed)(()=>{let e=this._selectedLlmCode.value;return e?!!this._models.value.find(t=>t.llm_code===e)?.property?.support_vision:!1}),this.enabled&&this.sessionModule&&(0,t.watch)(()=>this.sessionModule.current?.value?.sessionCode,()=>{this.applySessionModel(this.sessionModule.current?.value?.model)})}get enabled(){return this.config.enabled!==!1}get isLoading(){return this._isLoading}get models(){return this._models}get selectedLlmCode(){return this._selectedLlmCode}get selectedModelName(){return this._selectedModelName}get selectedModelSupportsVision(){return this._selectedModelSupportsVision}applySessionModel(e){let t=this._models.value;if(t.length===0){this._selectedLlmCode.value=void 0;return}if(!this.isSessionPending()){if(e&&t.some(t=>t.llm_code===e)){this._selectedLlmCode.value=e;return}this.hasValidSelection()||(this._selectedLlmCode.value=this.defaultModelCode())}}ensureLoaded(){return!this.enabled||this._models.value.length>0?Promise.resolve():(this.loadPromise||=this.loadModels().finally(()=>{this.loadPromise=null}),this.loadPromise)}async loadModels(e={}){this._isLoading.value=!0;try{let t=this.agentModule?.models?.value;if(!e.force&&Array.isArray(t)&&t.length>0)this._models.value=[...t];else if(typeof this.agentModule?.getLlms==`function`){let e=await this.agentModule.getLlms();this._models.value=Array.isArray(e)?e:[]}else this._models.value=[];this.applySessionModel(this.sessionModule?.current?.value?.model)}catch(e){console.error(`[ModelSelectionManager] Failed to load models:`,e),this._models.value=[],this._selectedLlmCode.value=void 0}finally{this._isLoading.value=!1}}async persistSessionModel(e,t){let n=t??this.sessionModule?.current?.value;if(!n?.sessionCode||!e||n.model===e)return;let{sessionCode:r}=n,i=this.pendingPersist.get(r);if(i?.llmCode===e)return i.promise;let a=Promise.resolve(this.sessionModule.updateSession({...n,model:e})).then(()=>void 0).finally(()=>{this.pendingPersist.get(r)?.promise===a&&this.pendingPersist.delete(r)});return this.pendingPersist.set(r,{llmCode:e,promise:a}),a}resolveModelForSession(e){if(!this.enabled)return e;let t=this._models.value;if(t.length===0)throw new AWt;return e&&t.some(t=>t.llm_code===e)?e:this.hasValidSelection()?this._selectedLlmCode.value:this.defaultModelCode()}setModels(e){this._models.value=e,this.applySessionModel(this.sessionModule?.current?.value?.model)}setSelectedModel(e){this._selectedLlmCode.value=e?.llm_code}setSelectedModelByName(e){if(!e){this._selectedLlmCode.value=void 0;return}this._selectedLlmCode.value=this._models.value.find(t=>t.llm_name===e)?.llm_code}},jWt=class{_isGenerating;_isStopLoading;agentModule;config;eventEmitter;messageModule;modelSelection;sessionModule;persistSelection(e){this.modelSelection.persistSessionModel(e).catch(e=>{console.error(`[ChatBusinessManager] Failed to persist session model:`,e),this.emit(`chat-error`,{action:`persistSessionModel`,error:e})})}resolveChatModel(e){return(e??this.modelSelection.selectedLlmCode.value)||void 0}autoRenameSessionIfNeeded(e){let t=this.sessionModule;if(!t||this.messageModule.list.value.length!==1)return;let n=t.renameSession(e);n&&n.then(n=>{let r=t.list.value.find(t=>t.sessionCode===e)??(t.current?.value?.sessionCode===e?t.current.value:null),i=n?.sessionName??r?.sessionName;i&&this.config.onSessionRenamed?.(i,e)}).catch(e=>{console.error(`[ChatBusinessManager] Auto rename session failed:`,e)})}emit(e,t){this.eventEmitter?.emit(e,t)}constructor(e,n,r=null,i=null,a={},o){this.agentModule=e,this.messageModule=n,this.sessionModule=r,this.eventEmitter=i,this.config=a,this.modelSelection=o??new B9(e,r),this._isGenerating=(0,t.ref)(!1),this._isStopLoading=(0,t.ref)(!1)}get isGenerating(){return this._isGenerating}get isStopLoading(){return this._isStopLoading}get isMessagesLoading(){return this.messageModule.isListLoading}get models(){return this.modelSelection.models}get isModelsLoading(){return this.modelSelection.isLoading}get selectedLlmCode(){return this.modelSelection.selectedLlmCode}get selectedModelName(){return this.modelSelection.selectedModelName}get selectedModelSupportsVision(){return this.modelSelection.selectedModelSupportsVision}get messages(){return this.messageModule.list}async ensureModelsLoaded(){return this.modelSelection.ensureLoaded()}async loadModels(e={}){return this.modelSelection.loadModels(e)}setModels(e){this.modelSelection.setModels(e)}setSelectedModelByName(e){this.modelSelection.setSelectedModelByName(e),this.persistSelection(this.modelSelection.selectedLlmCode.value)}setSelectedModel(e){this.modelSelection.setSelectedModel(e),this.persistSelection(this.modelSelection.selectedLlmCode.value)}get openingRemark(){return this.config.openingRemark||``}get predefinedQuestions(){return this.config.predefinedQuestions||[]}async batchDeleteMessages(e){try{await this.messageModule.deleteMessages(e);let t=e.map(e=>e.id).filter(Boolean);this.emit(`messages-batch-deleted`,{messageIds:t})}catch(e){throw console.error(`Failed to batch delete messages:`,e),this.emit(`chat-error`,{action:`batch-delete-messages`,error:e}),e}}async deleteMessage(e){try{await this.messageModule.deleteMessages([e]),this.emit(`message-deleted`,{messageId:e.id})}catch(e){throw console.error(`Failed to delete message:`,e),this.emit(`chat-error`,{action:`delete-message`,error:e}),e}}handleStreamEnd(){this._isGenerating.value=!1,this.emit(`receive-end`,{})}handleStreamError(e){this._isGenerating.value=!1,this.emit(`receive-error`,{error:e})}handleStreamStart(){this._isGenerating.value=!0,this.emit(`receive-start`,{})}async regenerateFromAIMessages(e,t){try{if(!e||e.length===0)throw Error(`No AI messages provided`);let n=this.messages.value,r=yl(n,e[0]);if(!r)throw Error(`No user message found before AI messages`);let i=r.id;if(i===void 0)throw Error(`User message has no id`);await this.regenerateMessage(String(i),t)}catch(e){throw console.error(`Failed to regenerate from AI messages:`,e),this.emit(`chat-error`,{action:`regenerate`,error:e}),e}}async regenerateMessage(e,t){try{let n=this.messages.value,r=n.findIndex(t=>String(t.id)===e);if(r===-1)throw Error(`Message not found: ${e}`);let i=n[r];if(i.role!==$c.User)throw Error(`Can only regenerate from user messages`);let a=n.slice(r),o=typeof i.content==`string`?i.content:JSON.stringify(i.content),s=i.property;this._isGenerating.value=!0;let l=this.messageModule.deleteMessages(a);this.agentModule.chat(o,t,void 0,void 0,s,this.resolveChatModel()),this.emit(`chat-regenerate`,{messageId:e}),l.catch(e=>{console.error(`[regenerateMessage] Delete API error:`,e)})}catch(e){throw console.error(`Failed to regenerate message:`,e),this._isGenerating.value=!1,this.emit(`chat-error`,{action:`regenerate`,error:e}),e}}async resendMessageWithProperty(e,t,n,r){try{let i=this.messages.value,a=i.findIndex(t=>String(t.id)===e);if(a===-1)throw Error(`Message not found: ${e}`);if(i[a].role!==$c.User)throw Error(`Can only resend user messages`);let o=i.slice(a);this._isGenerating.value=!0;let s=this.messageModule.deleteMessages(o);this.agentModule.chat(n,t,void 0,void 0,r,this.resolveChatModel()),this.emit(`chat-resend`,{messageId:e}),s.catch(e=>{console.error(`[resendMessageWithProperty] Delete API error:`,e)})}catch(e){throw console.error(`Failed to resend message with property:`,e),this._isGenerating.value=!1,this.emit(`chat-error`,{action:`resend`,error:e}),e}}async retryMessage(e){try{console.warn(`retryMessage not implemented yet`),this.emit(`chat-retry`,{messageId:e})}catch(e){throw console.error(`Failed to retry message:`,e),this.emit(`chat-error`,{action:`retry`,error:e}),e}}async sendMessage(e,t,n={}){try{if(!t)throw Error(`No active session. Please create or select a session first.`);this._isGenerating.value=!0,this.emit(`send-message`,{content:e}),await this.agentModule.chat(e,t,void 0,void 0,n.property,this.resolveChatModel(n.model)),this.autoRenameSessionIfNeeded(t)}catch(e){throw console.error(`Failed to send message:`,e),this._isGenerating.value=!1,this.emit(`chat-error`,{action:`send`,error:e}),e}}async stopGeneration(){let e=this.sessionModule?.current?.value?.sessionCode??``;this._isStopLoading.value=!0;try{await this.agentModule.stopChat(e),this._isGenerating.value=!1,this.emit(`stop`,{})}catch(e){throw console.error(`Failed to stop generation:`,e),this.emit(`chat-error`,{action:`stop`,error:e}),e}finally{this._isStopLoading.value=!1}}},MWt=class{agentModule;config;eventEmitter;messageModule;modelSelection;sessionModule;emit(e,t){this.eventEmitter?.emit(e,t)}async resolveSessionModel(e){return await this.modelSelection.ensureLoaded(),this.modelSelection.resolveModelForSession(e)}constructor(e,t=null,n=null,r={},i=null,a){this.sessionModule=e,this.agentModule=t,this.eventEmitter=n,this.config=r,this.messageModule=i,this.modelSelection=a??new B9(t,e,{enabled:!1})}get currentSession(){return this.sessionModule.current}get isCreateLoading(){return this.sessionModule.isCreateLoading}get isCurrentLoading(){return this.sessionModule.isCurrentLoading}get isDeleteLoading(){return this.sessionModule.isDeleteLoading}get isListLoading(){return this.sessionModule.isListLoading}get isLoadingMore(){return this.sessionModule.isLoadingMore}get isUpdateLoading(){return this.sessionModule.isUpdateLoading}get hasMoreSessions(){return this.sessionModule.hasMore}get sessionCount(){return this.sessionModule.count}get sessionList(){return this.sessionModule.list}async createNewSession(e){let t=this.currentSession.value;if(t?.sessionCode&&this.isCurrentSessionEmpty(t))return null;await this.loadSessions();let n=this.sessionList.value;if(n.length>0){let r=n[0];if(r.sessionCode===t?.sessionCode?this.isCurrentSessionEmpty(r):this.isSessionEmpty(r))return await this.modelSelection.persistSessionModel(await this.resolveSessionModel(e?.model),r),await this.switchSession(r.sessionCode,{loadMessages:!1}),null}return await this.createSession({name:`新会话`,sessionCode:this.generateSessionCode(),model:e?.model}),this.sessionModule.current.value}generateSessionCode(){return`new_session_${Date.now()}`}async createSession(e={}){if(this.config.enableChatSession===!1)throw Error(`Chat session is disabled`);try{let t=await this.resolveSessionModel(e.model),n={sessionName:e.name||`新会话`,sessionCode:e.sessionCode||`session_${Date.now()}`,isTemporary:e.isTemporary||!1,...t?{model:t}:{},sessionProperty:{labels:e.labels}};await this.sessionModule.createSession(n);let r=this.agentModule?.info?.value;r&&this.agentModule?.handleRole(r,n.sessionCode),this.emit(`session-created`,{session:this.sessionModule.current.value})}catch(e){throw console.error(`Failed to create session:`,e),this.emit(`session-error`,{action:`create`,error:e}),e}}async deleteSession(e){try{await this.sessionModule.deleteSession(e),this.emit(`session-deleted`,{sessionCode:e})}catch(e){throw console.error(`Failed to delete session:`,e),this.emit(`session-error`,{action:`delete`,error:e}),e}}async getSession(e){try{await this.sessionModule.getSession(e)}catch(e){throw console.error(`Failed to get session:`,e),this.emit(`session-error`,{action:`get`,error:e}),e}}isSessionEmpty(e){let t=this.findSession(e.sessionCode)?.sessionContentCount??e.sessionContentCount;return t==null?!1:t===0}isCurrentSessionEmpty(e){return this.messageModule&&Lge(this.messageModule.list.value)?!1:this.isSessionEmpty(e)}findSession(e){return this.sessionList.value.find(t=>t.sessionCode===e)}async loadRecentSession(e){try{if(this.currentSession.value?.sessionCode)return;e?.skipLoadSessions||await this.loadSessions();let t=this.sessionList.value;if(this.config.initialSessionCode){let e=this.findSession(this.config.initialSessionCode);await this.switchSession(this.config.initialSessionCode,{loadMessages:e?!this.isSessionEmpty(e):!0});return}if(t.length>0){let n=t[0],r=(n.sessionContentCount??0)>0,i=e?.alwaysCreateNewSession??this.config.alwaysCreateNewSession??!1;r||i?await this.createSession({name:`新会话`,sessionCode:this.generateSessionCode()}):await this.switchSession(n.sessionCode,{loadMessages:!1});return}await this.createSession({name:`新会话`,sessionCode:this.generateSessionCode()})}catch(e){throw console.error(`Failed to load recent session:`,e),e}}async loadSessions(){try{await this.sessionModule.getSessions(),this.emit(`sessions-loaded`,{sessions:this.sessionList.value})}catch(e){throw console.error(`Failed to load sessions:`,e),this.emit(`session-error`,{action:`load`,error:e}),e}}async loadMoreSessions(){try{await this.sessionModule.loadMoreSessions()}catch(e){throw console.error(`Failed to load more sessions:`,e),this.emit(`session-error`,{action:`loadMore`,error:e}),e}}async switchSession(e,t){try{await this.sessionModule.chooseSession(e,t),this.emit(`session-switched`,{session:this.sessionModule.current.value})}catch(e){throw console.error(`Failed to switch session:`,e),this.emit(`session-error`,{action:`switch`,error:e}),e}}async updateSessionName(e,t){try{let n=this.sessionList.value.find(t=>t.sessionCode===e);if(!n)throw Error(`Session not found: ${e}`);await this.sessionModule.updateSession({...n,sessionName:t}),this.emit(`session-updated`,{session:this.sessionModule.current.value})}catch(e){throw console.error(`Failed to update session name:`,e),this.emit(`session-error`,{action:`update`,error:e}),e}}},NWt=class{messageModule;sessionModule;constructor(e,t){this.messageModule=e,this.sessionModule=t}async shareMessages(e){if(e.length===0)throw Error(`No messages to share`);let t=this.sessionModule.current?.value?.sessionCode;if(!t)throw Error(`No active session`);let n=await this.messageModule.shareMessages(t,e);if(!n)throw Error(`Share failed: no result returned`);return{shareUrl:`${n.share_page}share-page/${n.share_token}`,userMessageIds:e.map(e=>String(e.id))}}},PWt=class{_agentShortcuts;_effectiveShortcuts;_propsShortcuts;eventEmitter;emit(e,t){this.eventEmitter?.emit(e,t)}constructor(e=null,n=[]){this._propsShortcuts=(0,t.ref)(n),this._agentShortcuts=(0,t.ref)([]),this.eventEmitter=e,this._effectiveShortcuts=(0,t.computed)(()=>this._propsShortcuts.value.length>0?this._propsShortcuts.value:this._agentShortcuts.value.length>0?this._agentShortcuts.value:[])}get count(){return this._effectiveShortcuts.value.length}get effectiveShortcuts(){return this._effectiveShortcuts}get hasShortcuts(){return this._effectiveShortcuts.value.length>0}get shortcuts(){return this._effectiveShortcuts}addShortcut(e){this._propsShortcuts.value.push(e)}clear(){this._propsShortcuts.value=[],this._agentShortcuts.value=[]}filterByTextLength(e,t){return!e||e.length>t?[]:this._effectiveShortcuts.value}filterShortcuts(e,t){return t?this._effectiveShortcuts.value.filter(n=>t(n,e)):this._effectiveShortcuts.value}getShortcutById(e){return this._effectiveShortcuts.value.find(t=>t.id===e)}handleShortcutClick(e,t,n=`main`){this.emit(`shortcut-click`,{shortcut:e,selectedText:t,source:n})}limitShortcuts(e){return this._effectiveShortcuts.value.slice(0,e)}removeShortcut(e){this._propsShortcuts.value=this._propsShortcuts.value.filter(t=>t.id!==e)}setAgentShortcuts(e){this._agentShortcuts.value=e}setShortcuts(e){this._propsShortcuts.value=e}},FWt=class{_isCompressed;_isDraggingOrResizing;_nimbusMinimized;_panelVisible;_positionAndSize;cleanupFunctions;config;containerRef=null;debugMode;listeners;onceListeners;constructor(e={}){this.config=e,this.listeners=new Map,this.onceListeners=new Map,this.debugMode=e.debug??!1,this.cleanupFunctions=[],this._panelVisible=(0,t.ref)(e.initialPanelVisible??!1),this._nimbusMinimized=(0,t.ref)(e.initialNimbusMinimized??!1),this._isDraggingOrResizing=(0,t.ref)(!1),this._isCompressed=(0,t.ref)(!1),this._positionAndSize=(0,t.ref)({x:0,y:0,width:400,height:window.innerHeight})}get container(){return{updatePosition:this.updatePosition.bind(this),updateSize:this.updateSize.bind(this),updatePositionAndSize:this.updatePositionAndSize.bind(this),toggleCompression:this.toggleCompression.bind(this),expandForSidePanel:this.expandForSidePanel.bind(this),collapseSidePanel:this.collapseSidePanel.bind(this),abortSidePanelSequence:this.abortSidePanelSequence.bind(this),positionAndSize:(0,t.computed)(()=>this.containerRef?.positionAndSize?.value??this._positionAndSize.value),isCompressed:(0,t.computed)(()=>this._isCompressed.value),isSidePanelExpanded:(0,t.computed)(()=>this.containerRef?.isSidePanelExpanded?.value??!1)}}get isCompressed(){return this._isCompressed}get isDraggingOrResizing(){return this._isDraggingOrResizing}get nimbus(){return{minimize:this.minimizeNimbus.bind(this),restore:this.restoreNimbus.bind(this),toggle:this.toggleNimbus.bind(this),isMinimized:(0,t.computed)(()=>this._nimbusMinimized.value)}}get nimbusMinimized(){return this._nimbusMinimized}get panel(){return{show:this.showPanel.bind(this),hide:this.hidePanel.bind(this),toggle:this.togglePanel.bind(this),isVisible:(0,t.computed)(()=>this._panelVisible.value)}}get panelVisible(){return this._panelVisible}get state(){return{panelVisible:this._panelVisible,nimbusMinimized:this._nimbusMinimized,isDraggingOrResizing:this._isDraggingOrResizing,positionAndSize:this._positionAndSize}}abortSidePanelSequence(){this.containerRef?.abortSidePanelSequence?.()}collapseSidePanel(e){return this.containerRef?.collapseSidePanel?this.containerRef.collapseSidePanel(e):(e?.onBeforeSizeChange?.(),Promise.resolve())}destroy(){this.listeners.clear(),this.onceListeners.clear(),this.cleanupFunctions.forEach(e=>e()),this.cleanupFunctions=[],this.debugMode&&console.debug(`[ComponentManager] Destroyed`)}emit(e,t){this.debugMode&&console.debug(`[ComponentManager] Emitting "${e}"`,t);let n=this.listeners.get(e);n&&n.forEach(n=>{try{n(t)}catch(t){console.error(`[ComponentManager] Error in listener for "${e}":`,t)}});let r=this.onceListeners.get(e);if(r&&r.size>0){let n=Array.from(r);this.onceListeners.delete(e),n.forEach(n=>{try{n(t)}catch(t){console.error(`[ComponentManager] Error in once listener for "${e}":`,t)}})}}emitInternal(e,t){this.emit(e,t)}expandForSidePanel(e,t){return this.containerRef?.expandForSidePanel?this.containerRef.expandForSidePanel(e,t):(t?.onBeforeSizeChange?.(),Promise.resolve())}getConfig(){return this.config}getRegisteredEvents(){let e=new Set;return this.listeners.forEach((t,n)=>e.add(n)),this.onceListeners.forEach((t,n)=>e.add(n)),Array.from(e)}handleDragging(e){this._isDraggingOrResizing.value=!0,this._positionAndSize.value=e,this.emit(`dragging`,e)}handleDragStop(e){this._isDraggingOrResizing.value=!1,this._positionAndSize.value=e,this.emit(`drag-stop`,e)}handleNimbusClick(){this.emit(`nimbus-click`,{}),this.showPanel()}handlePopupClick(){this.emit(`popup-click`,{}),this.showPanel()}handlePopupShortcutClick(e){this.emit(`popup-shortcut-click`,{shortcut:e}),this.emit(`shortcut-click`,{shortcut:e,source:`popup`})}handleResizeStop(e){this._isDraggingOrResizing.value=!1,this._positionAndSize.value=e,this.emit(`resize-stop`,e)}handleResizing(e){this._isDraggingOrResizing.value=!0,this._positionAndSize.value=e,this.emit(`resizing`,e)}handleShortcutClick(e,t){this.emit(`shortcut-click`,{shortcut:e,source:t})}hasListeners(e){return this.listenerCount(e)>0}hidePanel(){this._panelVisible.value=!1,this.emit(`panel-hide`,{})}listenerCount(e){return(this.listeners.get(e)?.size??0)+(this.onceListeners.get(e)?.size??0)}minimizeNimbus(){this._nimbusMinimized.value=!0,this.emit(`nimbus-minimize`,{})}off(e,t){t?(this.listeners.get(e)?.delete(t),this.onceListeners.get(e)?.delete(t),this.debugMode&&console.debug(`[ComponentManager] Unsubscribed from "${e}", remaining: ${this.listenerCount(e)}`)):(this.listeners.delete(e),this.onceListeners.delete(e),this.debugMode&&console.debug(`[ComponentManager] Removed all listeners for "${e}"`))}on(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),this.debugMode&&console.debug(`[ComponentManager] Subscribed to "${e}", total: ${this.listenerCount(e)}`),()=>{this.off(e,t)}}once(e,t){return this.onceListeners.has(e)||this.onceListeners.set(e,new Set),this.onceListeners.get(e).add(t),this.debugMode&&console.debug(`[ComponentManager] Subscribed once to "${e}"`),()=>{this.onceListeners.get(e)?.delete(t)}}restoreNimbus(){this._nimbusMinimized.value=!1,this.emit(`nimbus-restore`,{})}setCompressed(e){this._isCompressed.value=e}setContainerRef(e){this.containerRef=e,e?.isCompressed&&(this._isCompressed.value=e.isCompressed.value)}setDebugMode(e){this.debugMode=e}setDraggingOrResizing(e){this._isDraggingOrResizing.value=e}showPanel(e){this._panelVisible.value=!0,this.emit(`panel-show`,{sessionCode:e})}toggleCompression(){this.containerRef?this.containerRef.toggleCompression():this._isCompressed.value=!this._isCompressed.value}toggleNimbus(){this._nimbusMinimized.value?this.restoreNimbus():this.minimizeNimbus()}togglePanel(){this._panelVisible.value?this.hidePanel():this.showPanel()}updatePosition(e,t){this._positionAndSize.value={...this._positionAndSize.value,x:e,y:t}}updatePositionAndSize(e,t,n,r){this._positionAndSize.value={x:e,y:t,width:n,height:r}}updateSize(e,t){this._positionAndSize.value={...this._positionAndSize.value,width:e,height:t}}};function IWt(e){return new FWt(e)}var LWt={"panel-show":`show`,"panel-hide":`close`,"panel-toggle":null,"nimbus-click":null,"nimbus-minimize":null,"nimbus-restore":null,"popup-click":null,"popup-shortcut-click":null,dragging:`dragging`,resizing:`resizing`,"drag-stop":`drag-stop`,"resize-stop":`resize-stop`,"compression-toggle":null,"side-panel-expand":null,"side-panel-collapse":null,"send-message":`send-message`,"receive-start":`receive-start`,"receive-text":`receive-text`,"receive-end":`receive-end`,"receive-error":null,stop:`stop`,"chat-regenerate":null,"chat-retry":null,"message-deleted":null,"messages-batch-deleted":null,"session-created":null,"session-switched":null,"session-deleted":null,"session-updated":null,"sessions-loaded":null,"session-initialized":`session-initialized`,"session-error":null,"shortcut-click":`shortcut-click`,"chat-error":null,"sdk-error":`sdk-error`,"new-chat":`new-chat`,"new-chat-created":`new-chat-created`,"history-click":`history-click`,"auto-generate-name":`auto-generate-name`,"help-click":`help-click`,rename:`rename`,share:`share`,close:`close`,"toggle-compression":null,"transfer-messages":`transfer-messages`,"share-messages":`share-messages`,"agent-info-loaded":null,error:null};function RWt(e,t){switch(e){case`send-message`:return[t.content];case`rename`:return[t.newName,t.sessionCode];case`history-click`:return[t.event];case`dragging`:case`resizing`:case`drag-stop`:case`resize-stop`:case`shortcut-click`:case`session-initialized`:case`sdk-error`:case`transfer-messages`:case`share-messages`:case`new-chat-created`:return[t];case`panel-show`:case`panel-hide`:case`receive-start`:case`receive-text`:case`receive-end`:case`stop`:case`new-chat`:case`auto-generate-name`:case`help-click`:case`share`:case`close`:return[];default:return[t]}}var zWt=class extends Error{constructor(){super(`[ChatBot] Initialization was superseded by a newer init`),this.name=`ChatBotInitStaleError`}};function BWt(e){let{props:n,emit:r,reportError:i,managerErrorBridge:a}=e,o=(0,t.shallowRef)(null),s=(0,t.shallowRef)(null),l=(0,t.shallowRef)(null),u=(0,t.shallowRef)(null),d=(0,t.ref)(!1),f=(0,t.ref)(!n.chatHelper),p=(0,t.ref)(null),m=(0,t.computed)(()=>d.value),h=()=>n.chatHelper?!n.chatHelper.agent||!n.chatHelper.session||!n.chatHelper.message?{valid:!1,error:`[ChatBot] Invalid chatHelper: missing required modules (agent, session, message)`}:{valid:!0}:n.url?{valid:!0}:{valid:!1,error:`[ChatBot] Neither chatHelper nor url provided. Component requires at least one.`},g=()=>{let e=h();if(!e.valid)return console.error(e.error),p.value=Error(e.error),null;if(n.chatHelper)return n.chatHelper;let a=new ll({onStart:()=>{r(`receive-start`)},onMessage:e=>{r(`receive-text`)},onDone:()=>{r(`receive-end`)},onError:e=>{i(e,`Stream error`)}}),o=Mge({requestData:Pge(bl(n.url),()=>(0,t.toValue)(n.requestOptions)),protocol:a});return a.injectMessageModule(o.message),o},_=e=>{if(e)try{e.agent.abortChat(),e.agent.clearLongPollTimer?.()}catch{}},v=0,y=null,b=null,x=null,S=e=>{x&&=(e?x.reject(e):x.resolve(),null),y=null},C=e=>{if(e!==v)throw new zWt},w=async e=>{if(n.enableModelSelect!==!1){if(n.models?.length){e.setModels(n.models);return}await e.ensureLoaded()}},T=async e=>{let t=o.value;d.value=!1,p.value=null,f.value=!n.chatHelper,_(t),C(e),o.value=null,s.value=null,l.value=null,u.value=null;let m=g();if(!m)throw p.value??Error(`[ChatBot] Failed to create chatHelper`);let h=n.modelSelectionManager??new B9(m.agent,m.session,{enabled:n.enableModelSelect!==!1}),v=new MWt(m.session,m.agent,a,{enableChatSession:!0,autoSwitchToInitialSession:!!n.sessionCode,loadRecentSessionOnMount:n.autoLoad,initialSessionCode:n.sessionCode,alwaysCreateNewSession:n.alwaysCreateNewSession},m.message,h),y=new jWt(m.agent,m.message,m.session,a,{openingRemark:n.helloText,predefinedQuestions:n.prompts?.length?n.prompts:void 0,placeholder:n.placeholder,onSessionRenamed:(e,t)=>r(`rename`,e,t)},h),b=new PWt(null,n.shortcuts||[]);o.value=m,s.value=v,l.value=y,u.value=b;try{f.value?(await kWt(m,{enableModelSelect:n.enableModelSelect!==!1&&!n.models?.length}),C(e),await w(h),C(e),await v.loadRecentSession({skipLoadSessions:!0}),C(e)):await w(h),C(e),d.value=!0,r(`agent-info-loaded`,m)}catch(t){throw C(e),p.value=i(t,`Failed to initialize ChatBot`),t}},E=()=>{S(new zWt),b=null;let e=++v;y=new Promise((t,n)=>{x={resolve:t,reject:n},T(e).then(()=>{x&&=(b=Promise.resolve(),x.resolve(),null)}).catch(e=>{x&&=(x.reject(zge(e)),null)}).finally(()=>{e===v&&(y=null)})}),y.catch(()=>{})};return(0,t.watch)([()=>n.url,()=>n.chatHelper],()=>E(),{immediate:!0}),(0,t.onBeforeUnmount)(()=>{S(),_(o.value)}),{chatHelper:o,isStandaloneMode:f,isInitialized:d,isReady:m,initError:p,whenReady:()=>d.value?(b||=Promise.resolve(),b):p.value?Promise.reject(p.value):y||Promise.resolve(),chatBusinessManager:l,sessionBusinessManager:s,shortcutManager:u}}var VWt=[{id:`rebuild`,hidden:!0}],HWt=[{id:`delete`,hidden:!0}],UWt=[{id:`edit`,hidden:!0},{id:`delete`,hidden:!0}];function V9(e,t,n){return e?[...n,...t??[]]:t}function WWt(e){let{props:n,chatHelper:r,chatBusinessManager:i,sessionBusinessManager:a,shortcutManager:o,isStandaloneMode:s,isInitialized:l,selectedShortcut:u}=e,d=(0,t.computed)(()=>i.value?.isStopLoading.value?kl.StopLoading:((n.chatHelper||r.value)?.agent)?.isChatting?.value?kl.Streaming:kl.Complete),f=(0,t.computed)(()=>d.value===kl.Streaming?x9.Disabled:void 0),p=(0,t.computed)(()=>((n.chatHelper||r.value)?.agent)?.info.value?.agentType===`claw`),m=(0,t.computed)(()=>V9(p.value,n.messageTools,VWt)),h=(0,t.computed)(()=>V9(p.value,n.updateTools,HWt)),g=(0,t.computed)(()=>V9(p.value,void 0,UWt)),_=(0,t.computed)(()=>i.value?.messages.value??[]),v=(0,t.computed)(()=>i.value?.isMessagesLoading.value??!1),y=(0,t.computed)(()=>i.value?.isGenerating.value??!1),b=(0,t.computed)(()=>a.value?.currentSession.value??null),x=(0,t.computed)(()=>s.value&&!l.value?!1:!v.value&&_.value.length===0),S=(0,t.computed)(()=>r.value?.agent.info.value?.conversationSettings?.openingRemark||``),C=(0,t.computed)(()=>n.resources?.length?n.resources:r.value?.agent.info.value?.resources??[]),w=(0,t.computed)(()=>n.prompts?.length?n.prompts:r.value?.agent.info.value?.conversationSettings?.predefinedQuestions??[]),T=(0,t.computed)(()=>n.skills?.length?n.skills:(r.value?.agent.info.value?.relatedSkills??[]).map(e=>({skill_name:e.skill_name,skill_code:e.skill_code,description:e.description,icon:e.icon})));return{messageStatus:d,messageToolsStatus:f,effectiveMessageTools:m,effectiveUpdateTools:h,effectiveUserMessageTools:g,messages:_,isMessagesLoading:v,isGenerating:y,currentSession:b,isWelcomeState:x,openingRemark:S,effectiveMenuSources:(0,t.computed)(()=>Mhe({skills:T.value,resources:C.value,prompts:w.value})),effectiveSupportUpload:(0,t.computed)(()=>u.value?.supportUpload?u.value.supportUpload.vision===!0:i.value?.selectedModelSupportsVision.value??!1),chatbotStyle:(0,t.computed)(()=>({height:typeof n.height==`number`?`${n.height}px`:n.height,maxWidth:typeof n.maxWidth==`number`?`${n.maxWidth}px`:n.maxWidth})),filteredShortcuts:(0,t.computed)(()=>o.value?.shortcuts.value??[])}}var GWt=new Set([`chat-error`,`receive-error`,`session-error`]);function KWt(e,n={}){let r=new WeakSet,i=(i,a)=>{let o=zge(i);return r.has(o)?o:(r.add(o),console.error(a?`[ChatBot] ${a}:`:`[ChatBot] error:`,i),e(`error`,o),(0,t.toValue)(n.errorToast)!==!1&&Cc({message:o.message||xl(`请求失败`),theme:`error`}),o)};return{managerErrorBridge:{emit:(e,t)=>{GWt.has(e)&&i(t?.error)}},reportError:i}}var qWt={[Al.ApprovalCancel]:nl.ApprovalCancel,[Al.FlowNodeRetry]:nl.FlowNodeRetry,[Al.FlowNodeSkip]:nl.FlowNodeSkip};function JWt(e){return`operation`in e}function YWt(e){return`interruptId`in e&&`reason`in e&&e.reason===El.UserQuestion}function XWt(e){return e===`cancelled`?ol.Cancelled:ol.Resolved}function ZWt(e){let t=e?.session.current?.value?.sessionCode;if(!t)throw Error(`[ChatBot] Cannot resume interrupt: no active session`);return t}function QWt(e){return{interruptId:e.interruptId,status:XWt(e.status),payload:e.payload}}function $Wt(e){let{chatHelper:t,reportError:n}=e,r=async e=>{let n=t.value;if(!n)throw Error(`[ChatBot] Cannot resume interrupt: chatHelper not initialized`);if(!JWt(e))throw Error(`[ChatBot] Unsupported interrupt resume payload`);let r=ZWt(n);if(e.operation===Al.ApprovalRefresh){n.agent.pollResumeSession(r);return}let i=qWt[e.operation];if(!i)throw Error(`[ChatBot] Unsupported interrupt resume operation: ${e.operation}`);let a=n.agent;if(e.operation===Al.ApprovalCancel){await a.userOperationStreamRequest(r,i,{interrupt_id:e.payload.interrupt_id});return}(e.operation===Al.FlowNodeRetry||e.operation===Al.FlowNodeSkip)&&await a.userOperationStreamRequest(r,i,{node_id:e.payload.node_id,task_id:String(e.payload.task_id)})},i=async(e,n)=>{let r=t.value;if(!r)throw Error(`[ChatBot] Cannot resume interrupt: chatHelper not initialized`);let i=ZWt(r);await r.agent.streamRequest({sessionCode:i,resume:QWt(e),...n?{input:n}:{}})};return{handleInterruptResume:async(e,t)=>{try{if(JWt(e)){await r(e);return}if(YWt(e)){await i(e);return}throw Error(`[ChatBot] Unsupported interrupt resume payload`)}catch(e){n(e,`Failed to handle interrupt resume`)}},resumeUserQuestionWithInput:async(e,t)=>{try{if(!t.payload||!YWt(t.payload))throw Error(`[ChatBot] Invalid user question resume options`);let n=typeof e==`string`?e.trim():``;if(!n)throw Error(`[ChatBot] User question free text input is empty`);await i(t.payload,n)}catch(e){n(e,`Failed to resume user question with input`)}}}}function eGt(e){let{emit:n,chatHelper:r,chatBusinessManager:i,getRequestOptions:a,reportError:o,resumeUserQuestionWithInput:s,selectedShortcut:l}=e,u=(0,t.shallowRef)([[]]),d=(0,t.shallowRef)(``);(0,t.watch)(()=>r.value?.session.current?.value?.sessionCode,(e,t)=>{t&&t!==e&&(d.value=``)});let f=e=>{u.value=e},p=new Set,m=e=>{if(e){if(`path`in e&&e.path)return e.path;if(`id`in e&&e.id)return e.id}},h=async(e,t)=>{try{await r.value.session.deletePvFile(e,t)}catch(e){o(e,`Failed to delete uploaded file`)}},g=(e,t,n)=>{t.forEach((t,r)=>{if(!p.has(t))return;p.delete(t);let i=m(n[r]);i&&h(e,i)})},_=async(e,t={})=>{if(!i.value||!r.value)throw Error(`[ChatBot] Cannot send message: chatBusinessManager not initialized`);let o=r.value.session.current?.value?.sessionCode;if(!o)throw Error(`[ChatBot] Cannot send message: no active session`);u.value=[[]],d.value=``,n(`send-message`,typeof e==`string`?e:``);let s=vl(t.property,a);await i.value.sendMessage(e,o,{...t,...s?{property:s}:{}})},v=async e=>{let t=r.value?.session.current?.value?.sessionCode;if(!t)throw Error(`[ChatBot] Cannot upload: no active session`);try{let n=await r.value.session.uploadFiles(t,e);if(!n?.length)throw Error(`[ChatBot] Upload failed: empty response`);return g(t,e,n),n}catch(t){throw e.forEach(e=>p.delete(e)),t}},y=async e=>{let t=r.value?.session.current?.value?.sessionCode;if(!t)throw Error(`[ChatBot] Cannot resolve artifact URL: no active session`);let n=await r.value.session.getPvFileDownloadUrl(t,e.outputId);return{download_url:n?.download_url,preview_url:n?.preview_url}},b=async e=>{let t=e.outputId||e.id;if(e.file&&!t){p.add(e.file);return}e.file&&p.delete(e.file);let n=r.value?.session.current?.value?.sessionCode;!t||!n||await h(n,t)},x=async(e,t,n)=>{try{if(n?.payload&&s){u.value=[[]],d.value=``,await s(e,n);return}let r={};d.value&&(r.cite=d.value),l.value&&(r.command=l.value.id);let i=The(t),a={...Object.keys(r).length?{extra:r}:{},...i?{docSchema:i}:{}};await _(e,Object.keys(a).length?{property:a}:{})}catch(e){o(e,`Failed to send message`)}},S=async()=>{await C()},C=async()=>{if(!i.value){console.error(`[ChatBot] Cannot stop generation: chatBusinessManager not initialized`);return}try{await i.value.stopGeneration(),n(`stop`)}catch(e){o(e,`Failed to stop generation`)}};return{userInput:u,cite:d,handleUpdateModelValue:f,doSendMessage:_,handleSendMessage:x,handleArtifactClick:y,handleDeleteFile:b,handleUpload:v,handleStopSending:S,stopGeneration:C}}var tGt=e=>!e||e.id===`share`;function nGt(e){let{emit:t,chatHelper:n,isStandaloneMode:r}=e,i=async e=>{if(!(!n.value||e.length===0))try{await Hge((await new NWt(n.value.message,n.value.session).shareMessages(e)).shareUrl),Cc({message:`分享链接已复制到剪贴板`,theme:`success`})}catch(e){console.error(`[ChatBot] Failed to share messages:`,e),Cc({message:`分享失败,请重试`,theme:`error`})}};return{handleConfirmShare:async(e,n)=>{r.value&&tGt(n)&&await i(e),t(`confirm-share`,e,n)}}}function rGt(e){let{props:n,emit:r,shortcutManager:i,doSendMessage:a,reportError:o,selectedShortcut:s}=e,l=(0,t.computed)(()=>i.value?.effectiveShortcuts.value??[]),u=(e,t)=>{let n=e,r;if(r=n.enable_fill_back&&n.fill_back_component_key?n.fill_back_component_key:n.components?.find(e=>e.fillBack)?.key,r&&t){let e=n.components?.map(e=>e.key===r?{...e,default:t}:{...e,default:e.default??void 0});s.value={...n,components:e,formModel:{...n.formModel,[r]:t}}}else s.value={...n,formModel:{...n.formModel}}},d=(e,t)=>{let n=e.components||[];return{extra:{cite:{type:`structured`,title:e.alias||e.name,data:n.map(e=>({key:e.name||e.key,value:String(t[e.key]??``)}))},command:e.id,context:n.map(e=>({[e.key]:t[e.key],context_type:e.type,__label:e.name||e.key,__key:e.key,__value:t[e.key]}))}}},f=e=>{let t=e.property?.extra;return t?.shortcut?t.shortcut:t?.command?l.value.find(e=>e.id===t.command)??null:null},p=(e,t)=>{u(e,t),r(`shortcut-click`,{shortcut:e,source:`main`})},m=()=>{s.value=null};return(0,t.watch)(()=>n.shortcuts,e=>{i.value?.setShortcuts(e||[])},{immediate:!0}),(0,t.watch)(()=>e.chatHelper.value?.agent.info.value?.conversationSettings?.commands,e=>{e&&i.value?.setAgentShortcuts(e)},{immediate:!0}),{effectiveShortcuts:l,selectShortcutWithText:u,buildShortcutProperty:d,getShortcutFromMessage:f,handleSelectShortcut:p,handleCloseShortcut:m,handleShortcutSubmit:async e=>{if(!s.value){console.error(`[ChatBot] No selected shortcut`);return}let t=d(s.value,e),n=s.value.name,r=s.value;m();try{await a(n,{property:t})}catch(e){s.value=r,o(e,`Failed to submit shortcut`)}},sendShortcutDirectly:async(e,t)=>{let n=e,r={...n.formModel},i=n.components||[];for(let e of i)e.key in r||(r[e.key]=e.default??``);let s;s=n.enable_fill_back&&n.fill_back_component_key?n.fill_back_component_key:i.find(e=>e.fillBack)?.key,s&&t&&(r[s]=t);let l=d(n,r),u=n.name;try{await a(u,{property:l})}catch(e){o(e,`Failed to send shortcut directly`)}}}}function iGt(e){let{emit:t,chatHelper:n,chatBusinessManager:r,cite:i,focusInput:a,getShortcutFromMessage:o,buildShortcutProperty:s,getRequestOptions:l,reportError:u,stopGeneration:d}=e,f=async e=>{if(!r.value||!n.value){console.error(`[ChatBot] Cannot delete messages: chatBusinessManager not initialized`);return}try{let t=r.value.messages.value,i=yl(t,e[0]);if(!i){console.error(`[ChatBot] No user message found before AI messages`);return}let a=[i,...e];await n.value.message.deleteMessages(a)}catch(e){u(e,`Failed to delete messages`)}},p=async e=>{if(!r.value||!n.value){console.error(`[ChatBot] Cannot regenerate: chatBusinessManager not initialized`);return}let t=n.value.session.current?.value?.sessionCode;if(!t){console.error(`[ChatBot] Cannot regenerate: no active session`);return}try{await r.value.regenerateFromAIMessages(e,t)}catch(e){u(e,`Failed to regenerate`)}},m=async e=>{if(!r.value||!n.value){console.error(`[ChatBot] Cannot delete message: chatHelper not initialized`);return}try{let t=r.value.messages.value,i=t.findIndex(t=>t===e);if(i===-1){console.error(`[ChatBot] User message not found in messages list`);return}let a=[];for(let e=i+1;e<t.length;e++){let n=t[e];if(n.role===Ol.User)break;a.push(n)}let o=[e,...a];await n.value.message.deleteMessages(o)}catch(e){u(e,`Failed to delete user message`)}};return{handleAgentAction:async(e,r)=>{if(e.id===`cite`){i.value=r.filter(e=>e.role!==Ol.Reasoning).map(e=>typeof e.content==`string`?e.content:JSON.stringify(e.content||``)).join(`
|
|
3916
|
-
`),a();return}if(e.id===`rebuild`){await p(r);return}if(e.id===`delete`){await f(r);return}if(e.id===`like`||e.id===`unlike`){let t=e.id===`like`?5:0;try{return await n.value?.session.getSessionFeedbackReasons(t)||[]}catch(e){return console.error(`[ChatBot] Failed to get feedback reasons:`,e),[]}}t(`agent-action`,e,r)},handleAgentFeedback:async(e,i,a,o)=>{if(!n.value){console.error(`[ChatBot] Cannot submit feedback: chatHelper not initialized`);return}let s=n.value.session.current?.value?.sessionCode;if(!s){console.error(`[ChatBot] Cannot submit feedback: no active session`);return}let l=Rge(r.value?.messages.value||[],i[0]);if(l===void 0){console.error(`[ChatBot] Cannot submit feedback: no user message found`);return}let d=e.id===`like`?5:0;try{await n.value.session.postSessionFeedback({sessionCode:s,sessionContentIds:[l],rate:d,labels:a,comment:o}),t(`feedback`,e,i[0],a,o)}catch(e){u(e,`Failed to submit feedback`)}},handleUserAction:async(e,t)=>{if(e.id===`delete`){await m(t);return}if(e.id===`cite`){i.value=typeof t.content==`string`?t.content:JSON.stringify(t.content||``),a();return}console.log(`handleUserAction`,e,t)},handleUserInputConfirm:async(e,t,i)=>{if(!n.value){console.error(`[ChatBot] Cannot edit message: chatHelper not initialized`);return}let a=n.value.session.current?.value?.sessionCode;if(!a){console.error(`[ChatBot] Cannot edit message: no active session`);return}let o=e.id;if(o===void 0){console.error(`[ChatBot] Cannot edit message: message has no id`);return}try{let n=e.property,s=The(i),u=vl(s?{...n,docSchema:s}:n,l);await r.value?.resendMessageWithProperty(String(o),a,typeof t==`string`?t:``,u)}catch(e){u(e,`Failed to edit and resend message`)}},handleUserShortcutConfirm:async(e,t)=>{if(!r.value||!n.value){console.error(`[ChatBot] Cannot edit shortcut message: chatHelper not initialized`);return}let i=n.value.session.current?.value?.sessionCode;if(!i){console.error(`[ChatBot] Cannot edit shortcut message: no active session`);return}let a=e.id;if(a===void 0){console.error(`[ChatBot] Cannot edit shortcut message: message has no id`);return}try{let n=o(e);if(!n){console.error(`[ChatBot] Cannot edit shortcut message: shortcut not found`);return}let u=vl(s(n,t),l),d=String(t.input??``);await r.value.resendMessageWithProperty(String(a),i,d,u)}catch(e){u(e,`Failed to edit shortcut message`)}},handleStopStreaming:d}}var aGt=(0,t.defineComponent)({__name:`chat-bot`,props:{alwaysCreateNewSession:{type:Boolean},asideCollapsed:{type:Boolean,default:void 0},autoLoad:{type:Boolean,default:!0},chatHelper:{default:void 0},enableModelSelect:{type:Boolean,default:!0},enableSelection:{type:Boolean,default:!1},errorToast:{type:Boolean,default:!0},executionTabVisible:{type:Boolean,default:!0},extCls:{},getSideRenderComponent:{},getSideTabRenderComponent:{},height:{},helloText:{},maxWidth:{},messageTools:{},messageToolsTippyOptions:{},models:{default:void 0},modelSelectionManager:{default:void 0},onCustomTabChange:{},placeholder:{},prompts:{},renderMode:{default:Ml.Chat},requestOptions:{},resources:{default:()=>[]},sessionCode:{},shareLoading:{type:Boolean,default:!1},shortcuts:{default:()=>[]},size:{},timezone:{},skills:{},updateTools:{},url:{default:``},useAgentName:{type:Boolean,default:!1},resizeProps:{}},emits:[`agent-action`,`agent-info-loaded`,`cancel-share`,`confirm-share`,`error`,`execution-panel-change`,`feedback`,`receive-end`,`receive-start`,`receive-text`,`rename`,`request-share`,`send-message`,`session-switched`,`shortcut-click`,`stop`,`update:asideCollapsed`],setup(e,{expose:n,emit:r}){let i=e,a={initialDivide:560,min:400},o=(0,t.computed)(()=>({...a,...i.resizeProps})),s=r,l=(0,t.useSlots)(),u=(0,t.ref)(!0),d=(0,t.computed)({get:()=>i.asideCollapsed??u.value,set:e=>{i.asideCollapsed===void 0&&(u.value=e),s(`update:asideCollapsed`,e)}}),f=(0,t.ref)(),p=(0,t.ref)(),m=(0,t.ref)(),h=(0,t.computed)(()=>({...i.messageToolsTippyOptions,appendTo:i.messageToolsTippyOptions?.appendTo??(()=>f.value??document.body)})),g=(0,t.ref)(null),_=(0,t.computed)({get:()=>i.renderMode??Ml.Chat,set:()=>{}}),v=(0,t.computed)(()=>O.value?.selectedLlmCode.value),y=()=>{m.value?.focus?.()},{reportError:b,managerErrorBridge:x}=KWt(s,{errorToast:()=>i.errorToast}),{chatHelper:S,isStandaloneMode:C,isInitialized:w,isReady:T,initError:E,whenReady:D,chatBusinessManager:O,sessionBusinessManager:k,shortcutManager:A}=BWt({props:i,emit:s,reportError:b,managerErrorBridge:x}),{handleInterruptResume:j,resumeUserQuestionWithInput:M}=$Wt({chatHelper:S,reportError:b}),{userInput:N,cite:P,handleUpdateModelValue:F,doSendMessage:I,handleSendMessage:L,handleUpload:R,handleDeleteFile:ee,handleArtifactClick:z,handleStopSending:B,stopGeneration:V}=eGt({emit:s,chatHelper:S,chatBusinessManager:O,getRequestOptions:()=>i.requestOptions,reportError:b,resumeUserQuestionWithInput:M,selectedShortcut:g}),{handleSelectShortcut:te,handleCloseShortcut:ne,handleShortcutSubmit:re,selectShortcutWithText:ie,getShortcutFromMessage:ae,buildShortcutProperty:H,sendShortcutDirectly:oe}=rGt({props:i,emit:s,chatHelper:S,shortcutManager:A,doSendMessage:I,reportError:b,selectedShortcut:g}),{messageStatus:se,messageToolsStatus:ce,effectiveMessageTools:le,effectiveUpdateTools:ue,effectiveUserMessageTools:de,messages:fe,isMessagesLoading:pe,isGenerating:me,currentSession:he,isWelcomeState:ge,openingRemark:_e,effectiveMenuSources:ve,effectiveSupportUpload:ye,chatbotStyle:be,filteredShortcuts:xe}=WWt({props:i,chatHelper:S,chatBusinessManager:O,sessionBusinessManager:k,shortcutManager:A,isStandaloneMode:C,isInitialized:w,selectedShortcut:g}),{handleAgentAction:Se,handleAgentFeedback:Ce,handleUserAction:we,handleUserInputConfirm:Te,handleUserShortcutConfirm:Ee,handleStopStreaming:De}=iGt({emit:s,chatHelper:S,chatBusinessManager:O,cite:P,focusInput:y,getShortcutFromMessage:ae,buildShortcutProperty:H,getRequestOptions:()=>i.requestOptions,reportError:b,stopGeneration:V}),Oe=(0,t.computed)(()=>!w.value||pe.value),ke=(0,t.computed)(()=>{if(i.useAgentName)return S.value?.agent.info.value?.agentName||void 0}),Ae=(0,t.computed)(()=>{if(i.enableModelSelect===!1)return;let e=O.value?.models.value??[];return e.length>0?e:void 0}),je=(0,t.computed)({get:()=>O.value?.selectedModelName.value??``,set:e=>{O.value?.setSelectedModelByName(e)}}),Me=e=>{O.value?.setSelectedModel(e)};(0,t.watch)(()=>i.models,e=>{i.enableModelSelect===!1||!O.value||e?.length&&O.value.setModels(e)});let{handleConfirmShare:Ne}=nGt({emit:s,chatHelper:S,isStandaloneMode:C}),Pe=(e,t)=>{s(`execution-panel-change`,e,t)},Fe=async e=>{if(i.onCustomTabChange)return i.onCustomTabChange(e);let t=e.data?.props;if(t?.task_id!=null&&t?.node_id)return S.value?.message.getFlowAgentTaskNodeInfo(t.task_id,t.node_id)};return n({sendMessage:e=>L(e,[[]]),stopGeneration:V,switchSession:async e=>{if(!k.value){console.error(`[ChatBot] Cannot switch session: sessionBusinessManager not initialized`);return}try{await k.value.switchSession(e),s(`session-switched`,k.value.currentSession.value)}catch(e){b(e,`Failed to switch session`)}},messages:fe,currentSession:he,isGenerating:me,get isReady(){return T.value},whenReady:D,getChatHelper:()=>S.value,setCiteText:e=>{P.value=e},focusInput:y,enterShareMode:()=>p.value?.enterShareMode(),exitShareMode:()=>p.value?.exitShareMode(),selectShortcut:(e,t)=>{ie(e,t)},sendShortcut:(e,t)=>oe(e,t),updateAgentInfo:async()=>{let e=S.value;if(!e)return null;try{await e.agent.getAgentInfo();let t=e.agent.info.value??null;return t?.conversationSettings?.commands&&A.value?.setAgentShortcuts(t.conversationSettings.commands),t}catch(e){return b(e,`Failed to update agentInfo`),null}},selectedLlmCode:v}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:f,class:(0,t.normalizeClass)([`ai-chatbot`,i.extCls,{"welcome-state":(0,t.unref)(ge)}]),style:(0,t.normalizeStyle)((0,t.unref)(be))},[(0,t.createVNode)((0,t.unref)(gWt),{ref_key:`chatContainerRef`,ref:p,"aside-collapsed":d.value,"onUpdate:asideCollapsed":n[0]||=e=>d.value=e,cite:(0,t.unref)(P),"onUpdate:cite":n[1]||=e=>(0,t.isRef)(P)?P.value=e:null,"render-mode":_.value,"onUpdate:renderMode":n[2]||=e=>_.value=e,"selected-model":je.value,"onUpdate:selectedModel":n[3]||=e=>je.value=e,"selected-shortcut":g.value,"onUpdate:selectedShortcut":n[4]||=e=>g.value=e,"chat-loading":Oe.value,"common-tippy-options":h.value,"execution-tab-visible":i.executionTabVisible,"get-side-render-component":i.getSideRenderComponent,"get-side-tab-render-component":i.getSideTabRenderComponent,"message-status":(0,t.unref)(se),"message-tools":(0,t.unref)(le),"message-tools-status":(0,t.unref)(ce),"menu-sources":(0,t.unref)(ve),messages:(0,t.unref)(fe),"model-value":(0,t.unref)(N),models:Ae.value,"on-agent-action":(0,t.unref)(Se),"on-agent-feedback":(0,t.unref)(Ce),"on-artifact-click":(0,t.unref)(z),"on-custom-tab-change":Fe,"on-interrupt-resume":(0,t.unref)(j),"on-send-message":(0,t.unref)(L),"on-stop-sending":(0,t.unref)(B),"on-upload":(0,t.unref)(R),"on-user-action":(0,t.unref)(we),"on-user-input-confirm":(0,t.unref)(Te),"on-user-shortcut-confirm":(0,t.unref)(Ee),"opening-remark":(0,t.unref)(_e),placeholder:i.placeholder,"resize-props":o.value,"shortcut-id":g.value?.id,shortcuts:(0,t.unref)(xe),size:i.size,timezone:i.timezone,"support-upload":(0,t.unref)(ye),"update-tools":(0,t.unref)(ue),"user-message-tools":(0,t.unref)(de),"welcome-title":ke.value,onCollapseChange:Pe,onConfirmShare:(0,t.unref)(Ne),onDeleteFile:(0,t.unref)(ee),onDeleteShortcut:(0,t.unref)(ne),onModelChange:Me,onSelectShortcut:(0,t.unref)(te),onShortcutClose:(0,t.unref)(ne),onShortcutSubmit:(0,t.unref)(re),onStopStreaming:(0,t.unref)(De),"onUpdate:modelValue":(0,t.unref)(F)},(0,t.createSlots)({message:(0,t.withCtx)(({message:n,messageToolsStatus:r,onInterruptResume:i})=>[(0,t.createCommentVNode)(` 消费方提供了 #message slot 时,优先使用消费方的渲染 `),(0,t.unref)(l).message?(0,t.renderSlot)(e.$slots,`message`,{key:0,message:n,messageToolsStatus:r,onInterruptResume:i}):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 否则使用默认的 MessageRender `),(0,t.createVNode)((0,t.unref)(z9),{message:n,"message-tools":(0,t.unref)(de),"message-tools-status":r,"on-action":e=>(0,t.unref)(we)(e,n),"on-input-confirm":(e,r)=>(0,t.unref)(Te)(n,e,r),"on-interrupt-resume":i,"on-shortcut-confirm":e=>(0,t.unref)(Ee)(n,e),"tippy-options":h.value},(0,t.createSlots)({_:2},[e.$slots.codeHeader?{name:`codeHeader`,fn:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`codeHeader`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)))]),key:`0`}:void 0]),1032,[`message`,`message-tools`,`message-tools-status`,`on-action`,`on-input-confirm`,`on-interrupt-resume`,`on-shortcut-confirm`,`tippy-options`])],2112))]),_:2},[e.$slots.welcome?{name:`welcome`,fn:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`welcome`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)))]),key:`0`}:void 0]),1032,`aside-collapsed.cite.render-mode.selected-model.selected-shortcut.chat-loading.common-tippy-options.execution-tab-visible.get-side-render-component.get-side-tab-render-component.message-status.message-tools.message-tools-status.menu-sources.messages.model-value.models.on-agent-action.on-agent-feedback.on-artifact-click.on-interrupt-resume.on-send-message.on-stop-sending.on-upload.on-user-action.on-user-input-confirm.on-user-shortcut-confirm.opening-remark.placeholder.resize-props.shortcut-id.shortcuts.size.timezone.support-upload.update-tools.user-message-tools.welcome-title.onConfirmShare.onDeleteFile.onDeleteShortcut.onSelectShortcut.onShortcutClose.onShortcutSubmit.onStopStreaming.onUpdate:modelValue`.split(`.`))],6))}});function oGt(e,n){let{name:r,props:i,emitNames:a,exposeKeys:o,slots:s=[],deepWatchProps:l=[],methods:u={}}=n,d=Object.keys(i);return{name:r,render(e){return e(`div`,{style:{width:`100%`,height:`100%`}})},props:i,data(){return{app:null,componentInstance:null,unWatchStack:[]}},created(){let n=this.$emit.bind(this),r=this,i=()=>(0,t.createApp)({setup(){return()=>{let i={};for(let e of d)i[e]=r[e];let o={};for(let e of s){let t=r.$scopedSlots?.[e];t!==void 0&&(o[e]=e=>t(e))}let l=Object.keys(o).length>0?o:void 0;return(0,t.h)(oie,{prefix:lGt()},{default:()=>(0,t.h)(e,{...r.$attrs,...i,...cGt(n,a),ref:e=>{r.componentInstance=e}},l)})}}});r.app=i();for(let e of l)r.unWatchStack.push(r.$watch(e,()=>{r.app&&(r.app.unmount(),r.app=i(),r.app.mount(r.$el))},{deep:!0}))},mounted(){let e=this;e.app?.mount(e.$el),e.$nextTick(()=>{let t=e.componentInstance;if(t)for(let n of o){let r=t[n];typeof r==`function`?e[n]=r.bind(t):e[n]=r}})},beforeDestroy(){let e=this;e.unWatchStack.forEach(e=>e?.()),e.unWatchStack=[],e.app&&=(e.app.unmount(),null),e.componentInstance=null},methods:u}}function sGt(e){return`on`+e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function cGt(e,t){let n={};for(let r of t)n[sGt(r)]=(...t)=>{e(r,...t)};return n}function lGt(){return`ai-bk`}var H9=function(e){return e.ERROR=`error`,e.IDLE=`idle`,e.LOADING_AGENT=`loading_agent`,e.READY=`ready`,e}({});function uGt(e){let{url:n,requestOptions:r,autoInit:i=!0,protocolCallbacks:a,enableModelSelect:o=!0}=e,s=(0,t.toValue)(n);if(!s)throw Error(`[useChatBootstrap] url is required`);let l=(0,t.ref)(H9.IDLE),u=(0,t.ref)(null),d=(0,t.ref)(!1),f=new Map,p=new ll({onStart:()=>{a?.onStart?.()},onMessage:e=>{a?.onMessage?.(e)},onDone:()=>{a?.onDone?.()},onError:e=>{a?.onError?.(e)}}),m=Mge({requestData:Pge(s,r),protocol:p});p.injectMessageModule(m.message);let h=(0,t.computed)(()=>l.value===H9.LOADING_AGENT),g=(0,t.computed)(()=>l.value===H9.READY),_=(0,t.computed)(()=>m.agent.info.value??null),v=(0,t.computed)(()=>_.value?.agentName??``),y=(0,t.computed)(()=>m.session.current.value??null),b=(0,t.computed)(()=>m.session.list.value??[]),x=null,S=0,C=async e=>{u.value=null;try{if(l.value=H9.LOADING_AGENT,await kWt(m,{enableModelSelect:o}),e!==S)return;l.value=H9.READY,d.value=!0}catch(t){if(e!==S)return;throw console.error(`[useChatBootstrap] Initialization failed:`,t),u.value=t,l.value=H9.ERROR,t}},w=async()=>{if(d.value)return;if(x)return x;let e=S;return x=C(e).finally(()=>{e===S&&(x=null)}),x},T=()=>{S+=1,l.value=H9.IDLE,u.value=null,d.value=!1,x=null},E=async()=>{T(),await w()},D=async e=>{T();let t=m.http;t?.updateConfig?t.updateConfig({urlPrefix:e}):console.warn(`[useChatBootstrap] chatHelper.http.updateConfig is not implemented yet, URL change may not take effect`),await w()};return(0,t.watch)(()=>(0,t.toValue)(n),(e,t)=>{e&&e!==t&&t&&D(e).catch(()=>{})}),i&&Promise.resolve().then(()=>{w().catch(()=>{})}),{chatHelper:m,protocol:p,phase:l,isInitializing:h,isReady:g,error:u,agentInfo:_,agentName:v,currentSession:y,sessionList:b,initialize:w,retry:E,updateConfig:D,registerExtension:(e,t)=>{f.set(e,t)},getExtension:e=>f.get(e)}}function dGt(e){return{sendMessage:t=>e(`send-message`,{content:t}),receiveStart:()=>e(`receive-start`,{}),receiveText:()=>e(`receive-text`,{}),receiveEnd:()=>e(`receive-end`,{}),stop:()=>e(`stop`,{}),newChat:()=>e(`new-chat`,{}),newChatCreated:t=>e(`new-chat-created`,{session:t}),historyClick:t=>e(`history-click`,{event:t}),autoGenerateName:()=>e(`auto-generate-name`,{}),helpClick:()=>e(`help-click`,{}),rename:(t,n)=>e(`rename`,{newName:t,sessionCode:n}),share:()=>e(`share`,{}),transferMessages:t=>e(`transfer-messages`,{messageIds:t}),shareMessages:t=>e(`share-messages`,{messageIds:t})}}function fGt(e){let{componentManager:n,emit:r,debug:i=!1}=e,a=[],o=()=>{for(let[e,t]of Object.entries(LWt)){if(t===null)continue;let o=n.on(e,n=>{let a=RWt(e,n);i&&console.debug(`[useEventBridge] ${e} -> ${t}`,a),r(t,...a)});a.push(o)}},s=(e,t)=>{i&&console.debug(`[useEventBridge] Forwarding to manager: ${e}`,t),n.emit(e,t)},l=(e,...t)=>{i&&console.debug(`[useEventBridge] Direct emit: ${e}`,t),r(e,...t)},u=()=>{a.forEach(e=>e()),a.length=0};return o(),(0,t.onUnmounted)(()=>{u()}),{forwardToManager:s,emitDirect:l,cleanup:u}}function pGt(e){let{props:n,emit:r}=e,i=(0,t.ref)(),a=(0,t.ref)(),o=(0,t.computed)(()=>bl(n.url??``)),s=IWt({initialPanelVisible:!1,initialNimbusMinimized:n.defaultMinimize,enablePopup:n.enablePopup,enableNimbus:!n.hideNimbus,enableDraggable:n.draggable}),l=s.panelVisible,u=s.nimbusMinimized,{forwardToManager:d}=fGt({componentManager:s,emit:r}),f=dGt(d),p=new WeakSet,m=null,h=null,g=()=>{m&&=(clearTimeout(m.timer),null)},_=e=>{let{apiName:t,error:r,action:i,source:a,shouldToast:o=!0}=e,l=r instanceof Error?r.message:String(r),u=r instanceof Error?r:null;u&&p.has(u)||(u&&p.add(u),a!==`http`&&u&&m?.error===u&&g(),console.error(`[AIBlueking] ${t} error:`,r),o&&n.errorToast!==!1&&Cc({message:l||xl(`请求失败`),theme:`error`}),s.emitInternal(`sdk-error`,{apiName:t,action:i,source:a,code:-1,message:l,data:r}))},v=e=>{g();let t=h??(S.value?`chat`:`init`);m={error:e,timer:setTimeout(()=>{m=null,_({apiName:t,error:e,source:`http`})},0)}},y=async(e,t)=>{let n=h;h=e;try{return await t()}finally{h=n}},b=e=>{_({apiName:`chat`,error:e,source:`business`})},{chatHelper:x,isReady:S,error:C,agentInfo:w,agentName:T,currentSession:E,initialize:D}=uGt({url:o,requestOptions:()=>(0,t.toValue)(n.requestOptions),autoInit:!0,enableModelSelect:n.enableModelSelect!==!1,protocolCallbacks:{onStart:()=>{f.receiveStart()},onMessage:()=>{f.receiveText()},onDone:()=>{f.receiveEnd()},onError:e=>{_({apiName:`chat`,error:e,source:`protocol`})}}}),O=x;O.onError?.(e=>{v(e)},{ignoreErrors:n.ignoreErrors});let k=new B9(O.agent,O.session,{enabled:n.enableModelSelect!==!1}),A=async()=>{if(n.enableModelSelect!==!1){if(n.models?.length){k.setModels(n.models);return}await k.ensureLoaded()}},j=new MWt(O.session,O.agent,null,{enableChatSession:n.enableChatSession,initialSessionCode:n.initialSessionCode,alwaysCreateNewSession:n.alwaysCreateNewSession},O.message,k),M=new NWt(O.message,O.session),N=new PWt(null,n.shortcuts||[]),P=null,F=()=>n.loadRecentSessionOnMount?(P||=A().then(()=>j.loadRecentSession({skipLoadSessions:!0})).finally(()=>{P=null}),P):Promise.resolve(),I=async()=>{await y(`init`,async()=>{await D(),await F()})},L=(0,t.computed)(()=>s.isCompressed.value),R=(0,t.computed)(()=>T.value),ee=(0,t.computed)(()=>O.message.list.value.length===0);(0,t.watch)(()=>C.value,e=>{e&&(g(),_({apiName:`init`,error:e,source:`http`}))});let z=e=>{e.conversationSettings?.commands&&N.setAgentShortcuts(e.conversationSettings.commands)},B=async()=>{try{await O.agent.getAgentInfo();let e=w.value;return e&&z(e),e}catch(e){return _({apiName:`getAgentInfo`,error:e,source:`http`}),null}};(0,t.watch)(()=>S.value,async e=>{if(e&&w.value&&(z(w.value),w.value.conversationSettings&&d(`session-initialized`,{openingRemark:w.value.conversationSettings.openingRemark||``,predefinedQuestions:w.value.conversationSettings.predefinedQuestions||[]}),n.loadRecentSessionOnMount))try{await F()}catch(e){_({apiName:`session`,action:`loadRecentSession`,error:e,source:`business`})}},{immediate:!0}),(0,t.watch)(()=>n.shortcuts,e=>{N.setShortcuts(e||[])},{immediate:!0});let V=e=>{Kge(e)&&(e.preventDefault(),l.value?s.hidePanel():s.showPanel())};return(0,t.onMounted)(async()=>{i.value&&s.setContainerRef(i.value),window.addEventListener(`keydown`,V)}),(0,t.onBeforeUnmount)(()=>{g(),window.removeEventListener(`keydown`,V),s.destroy()}),{chatHelper:O,componentManager:s,modelSelection:k,sessionBusinessManager:j,shareBusinessManager:M,shortcutManager:N,forwarders:f,forwardToManager:d,chatBotRef:a,draggableContainerRef:i,panelVisible:l,nimbusMinimized:u,normalizedUrl:o,agentInfo:w,agentName:R,currentSession:E,isCompressed:L,isWelcomeState:ee,handleError:b,reportSdkError:_,ensureSessionReady:I,updateAgentInfo:B}}function mGt(e){let{shortcutManager:n,chatBotRef:r,forwardToManager:i,show:a,props:o}=e,s=(0,t.ref)(!1),l=(0,t.ref)(``);return{aiSelectionVisible:s,selectedText:l,filteredPopupShortcuts:(0,t.computed)(()=>{let e=n.effectiveShortcuts.value;return typeof o.shortcutFilter==`function`&&l.value?e.filter(e=>o.shortcutFilter?.(e,l.value)):e}),handleSelectionChange:e=>{l.value=e},handleAiSelectionShortcut:async(e,t)=>{s.value=!1,await a(),r.value&&(e.components?.length?r.value.selectShortcut(e,t):(r.value.selectShortcut(e),r.value.setCiteText(t),r.value.focusInput())),i(`shortcut-click`,{shortcut:e,source:`popup`})}}}function hGt(e,n=!1){let r=window.innerHeight-48-40,i=window.innerWidth-48-16,a=(0,t.ref)(i),o=(0,t.ref)(r),s=(0,t.ref)(0),l=(0,t.ref)(n),u=(0,t.ref)(!1),d=(0,t.ref)(!1),f=0,p=e=>{e?a.value=window.innerWidth-12:a.value=i},m=(e,t)=>{o.value=t,s.value=t-r},h=()=>{(0,t.nextTick)(()=>{o.value=window.innerHeight-48-40+s.value,l.value?a.value=window.innerWidth-12:a.value=window.innerWidth-48-16})};return(0,t.onMounted)(()=>{window.addEventListener(`resize`,h),h()}),(0,t.onUnmounted)(()=>{window.removeEventListener(`resize`,h)}),{nimbusWidth:48,nimbusHeight:48,nimbusLeft:a,nimbusTop:o,isMinimize:l,isHovering:u,isDragging:d,handleNimbusDragging:m,handleNimbusMinimize:p,handleClick:()=>{if(d.value){d.value=!1;return}e(`click`)},handleMinimize:()=>{l.value=!l.value,e(`minimize`,l.value),l.value?a.value=window.innerWidth-12:a.value=window.innerWidth-60},handleDragging:(e,t)=>{a.value=e,o.value=t},handleMouseEnter:()=>{u.value=!0},handleMouseLeave:()=>{u.value=!1},handleMouseDown:()=>{f=Date.now(),d.value=!1},handleMouseUp:()=>{Date.now()-f>200&&(d.value=!0)}}}var gGt=560;function _Gt(e){let{componentManager:n,chatBotRef:r,forwarders:i,forwardToManager:a,beforeNimbusClick:o,ensureSessionReady:s}=e,l=(0,t.ref)(!0),u=gGt,d=async e=>{n.showPanel(e),s&&await s(),e&&r.value&&await r.value.switchSession(e)},f=async e=>{await d(e)},p=()=>{l.value=!0,n.abortSidePanelSequence(),n.hidePanel()},m=()=>{p()},h=async()=>{if(o&&await o()===!1){n.emit(`nimbus-click`,{});return}n.handleNimbusClick()},g=e=>{n.handleDragging(e)},_=e=>{n.handleResizing(e)},v=e=>{n.handleDragStop(e)},y=e=>{n.handleResizeStop(e)},b=()=>{n.container.toggleCompression()},x=e=>{n.setCompressed(e)},S=(e,t)=>{u=Math.max(gGt,t??u)},C=async()=>{l.value&&=(await n.expandForSidePanel(u,{onBeforeSizeChange:()=>{l.value=!1}}),!1)},w=async()=>{l.value||=(await n.collapseSidePanel({onBeforeSizeChange:()=>{l.value=!0}}),!0)};return{show:d,handleShow:f,hide:p,handleClose:m,handleNimbusClick:h,handleDragging:g,handleResizing:_,handleDragStop:v,handleResizeStop:y,handleToggleCompression:b,handleCompressionChange:x,handleExecutionPanelChange:S,handleToggleAside:async()=>{l.value?await C():await w()},handleAsideCollapsedUpdate:async e=>{e!==l.value&&(e?await w():await C())},asideCollapsed:l,sendMessage:async e=>{r.value&&await r.value.sendMessage(e)},handleReceiveStart:()=>{i.receiveStart()},handleReceiveText:()=>{i.receiveText()},handleReceiveEnd:()=>{i.receiveEnd()},handleStop:()=>{i.stop()},stopGeneration:()=>{r.value&&r.value.stopGeneration()},updatePosition:(e,t)=>{n.container.updatePosition(e,t)},updateSize:(e,t)=>{n.container.updateSize(e,t)},updatePositionAndSize:(e,t,r,i)=>{n.container.updatePositionAndSize(e,t,r,i)},setCiteText:e=>{r.value&&r.value.setCiteText(e)},focusInput:()=>{r.value&&r.value.focusInput()},selectShortcut:(e,t)=>{r.value&&r.value.selectShortcut(e,t)},sendShortcut:(e,t)=>r.value?r.value.sendShortcut(e,t):Promise.resolve(),getChatHelper:()=>r.value?r.value.getChatHelper():null,handleShortcutClick:e=>{a(`shortcut-click`,e)}}}function vGt(e){let{chatHelper:n,sessionBusinessManager:r,chatBotRef:i,forwarders:a,reportSdkError:o,currentSession:s}=e,l=(0,t.ref)(``),u=(0,t.ref)(!0),d=(0,t.ref)(!1),f=(0,t.ref)(!1),p=()=>Lge(n.message.list.value);return(0,t.watch)(()=>s.value,e=>{e&&(l.value=e.sessionName||``,d.value=(e.sessionContentCount??0)>0||p())},{immediate:!0}),(0,t.watch)(()=>n.message.list.value.length,()=>{d.value=p()}),{sessionName:l,hasPermission:u,hasSessionContents:d,autoGenerateLoading:f,handleNewChat:async()=>{i.value?.exitShareMode(),i.value?.setCiteText(``),a.newChat()},handleNewChatCreated:e=>{a.newChatCreated(e)},handleHistoryClick:e=>{a.historyClick(e)},handleHistorySessionSwitch:async e=>{try{i.value?.exitShareMode(),await r.switchSession(e)}catch(e){console.error(`[AIBlueking] Failed to switch history session:`,e),o({apiName:`session`,action:`historySwitch`,error:e,source:`business`})}},handleHistorySessionDelete:async e=>{try{await r.deleteSession(e)}catch(e){console.error(`[AIBlueking] Failed to delete history session:`,e),o({apiName:`session`,action:`historyDelete`,error:e,source:`business`})}},handleHistorySessionRename:async(e,t)=>{try{await r.updateSessionName(e,t)}catch(e){console.error(`[AIBlueking] Failed to rename history session:`,e),o({apiName:`session`,action:`historyRename`,error:e,source:`business`})}},handleAutoGenerateName:async()=>{let e=n.session.current?.value?.sessionCode;if(!e){console.error(`[AIBlueking] Cannot auto-generate name: no active session`);return}f.value=!0;try{await n.session.renameSession(e);let t=n.session.list.value.find(t=>t.sessionCode===e);t&&(l.value=t.sessionName||``)}catch(e){console.error(`[AIBlueking] Failed to auto-generate session name:`,e),o({apiName:`session`,action:`autoGenerateName`,error:e,source:`business`})}finally{f.value=!1}a.autoGenerateName()},handleHelpClick:()=>{a.helpClick()},handleRename:async e=>{let t=n.session.current?.value;if(!t){console.error(`[AIBlueking] Cannot rename: no active session`);return}try{await n.session.updateSession({...t,sessionName:e}),l.value=e}catch(e){console.error(`[AIBlueking] Failed to rename session:`,e),o({apiName:`session`,action:`rename`,error:e,source:`business`})}a.rename(e,t.sessionCode)},handleSessionRenamed:(e,t)=>{s.value?.sessionCode===t&&(l.value=e),a.rename(e,t)},handleSessionSwitched:e=>{e&&(l.value=e.sessionName||``,d.value=(e.sessionContentCount??0)>0||p())},addNewSession:async e=>{e?await r.createSession(e):await r.createNewSession()},switchToSession:async e=>{i.value&&await i.value.switchSession(e)},updateSessionName:async(e,t)=>{try{await r.updateSessionName(e,t),l.value=t}catch(e){console.error(`[AIBlueking] Failed to update session name:`,e),o({apiName:`session`,action:`updateSessionName`,error:e,source:`business`})}}}}function yGt(e){let{shareBusinessManager:n,chatBotRef:r,emit:i,forwarders:a,reportSdkError:o}=e,s=(0,t.ref)(!1);return{isShareLoading:s,handleShare:()=>{r.value?.enterShareMode(),a.share()},handleCancelShare:()=>{r.value?.exitShareMode()},handleConfirmShare:async(e,t)=>{if(!tGt(t)){r.value?.exitShareMode(),i(`confirm-share`,e,t);return}s.value=!0;try{let{shareUrl:o,userMessageIds:s}=await n.shareMessages(e);await Hge(o),Cc({message:xl(`分享链接已复制到剪贴板`),theme:`success`}),r.value?.exitShareMode(),a.shareMessages(s),i(`confirm-share`,e,t)}catch(e){console.error(`[AIBlueking] Failed to share messages:`,e),o({apiName:`share`,action:`confirmShare`,error:e,source:`business`})}finally{s.value=!1}}}}function bGt(e={}){let n=(0,t.ref)([]),r=(t,r,i={})=>{try{let a=typeof t==`string`?document.querySelector(t):t;if(!a)return console.warn(`Tooltip target not found: ${t}`),null;let o=(0,y.default)(a,{content:r,placement:`top`,arrow:!0,delay:[300,0],theme:`ai-blueking-tooltip`,...e,...i});return n.value.push(o),o}catch(e){return console.error(`Failed to create tooltip:`,e),null}},i=(e,t,n={})=>{let i=document.querySelectorAll(e),a=[];return i.forEach(e=>{let i=r(e,t,n);i&&a.push(i)}),a},a=e=>{let t=[];return e.forEach(({element:e,content:n,options:i})=>{let a=r(e,n,i);a&&t.push(a)}),t},o=()=>{n.value.forEach(e=>{e.destroy()}),n.value=[]};return(0,t.onBeforeUnmount)(()=>{o()}),{instances:n,createTooltip:r,createTooltipsForSelector:i,createMultipleTooltips:a,destroyAll:o,updateContent:(e,t)=>{e.setContent(t)},destroyInstance:e=>{e.destroy()}}}var xGt={url:``,title:``,extCls:``,hideNimbus:!1,hideHeader:!1,enablePopup:!0,draggable:!0,enableChatSession:!0,enableModelSelect:!0,executionTabVisible:!0,renderMode:Ml.Chat,defaultWidth:400,defaultHeight:void 0,defaultTop:0,defaultLeft:void 0,maxWidth:1e3,miniPadding:0,nimbusSize:`normal`,defaultMinimize:!1,shortcuts:()=>[],shortcutLimit:3,shortcutFilter:void 0,hideDefaultTrigger:!1,requestOptions:()=>({}),teleportTo:`body`,placeholder:void 0,helloText:xl(`你好,我是小鲸`),useAgentName:!1,disabledInput:!1,showHistoryIcon:!0,showNewChatIcon:!0,showCompressionIcon:!0,showMoreIcon:!0,initialSessionCode:``,autoSwitchToInitialSession:!1,alwaysCreateNewSession:!1,loadRecentSessionOnMount:!0,prompts:()=>[],dropdownMenuConfig:()=>({showRename:!0,showAutoGenerate:!0,showShare:!0}),defaultChatInputPosition:void 0,errorToast:!0,ignoreErrors:()=>[]};function SGt(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Function]`}function U9(e,t,n,r=1){let[i,a]=typeof r==`number`?[r,r]:r;return[Math.round(t/i/e[0])*e[0],Math.round(n/a/e[1])*e[1]]}function W9(e,t,n){return e-t-n}function G9(e,t,n){return e-t-n}function K9(e,t,n){return t!==null&&e<t?t:n!==null&&n<e?n:e}function CGt(e,t,n){let r=e,i=[`matches`,`webkitMatchesSelector`,`mozMatchesSelector`,`msMatchesSelector`,`oMatchesSelector`].find(e=>SGt(r[e]));if(!SGt(r[i]))return!1;do{if(r[i](t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function wGt(e){let t=window.getComputedStyle(e);return[parseFloat(t.getPropertyValue(`width`),10),parseFloat(t.getPropertyValue(`height`),10)]}function q9(e,t,n){e&&(e.attachEvent?e.attachEvent(`on`+t,n):e.addEventListener?e.addEventListener(t,n,!0):e[`on`+t]=n)}function J9(e,t,n){e&&(e.detachEvent?e.detachEvent(`on`+t,n):e.removeEventListener?e.removeEventListener(t,n,!0):e[`on`+t]=null)}var TGt=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},Y9={mouse:{start:`mousedown`,move:`mousemove`,stop:`mouseup`},touch:{start:`touchstart`,move:`touchmove`,stop:`touchend`}},EGt={userSelect:`none`,MozUserSelect:`none`,WebkitUserSelect:`none`,MsUserSelect:`none`},DGt={userSelect:`auto`,MozUserSelect:`auto`,WebkitUserSelect:`auto`,MsUserSelect:`auto`},X9=Y9.mouse,OGt={replace:!0,name:`vue-draggable-resizable`,props:{className:{type:String,default:`vdr`},classNameDraggable:{type:String,default:`draggable`},classNameResizable:{type:String,default:`resizable`},classNameDragging:{type:String,default:`dragging`},classNameResizing:{type:String,default:`resizing`},classNameActive:{type:String,default:`active`},classNameHandle:{type:String,default:`handle`},disableUserSelect:{type:Boolean,default:!0},enableNativeDrag:{type:Boolean,default:!1},preventDeactivation:{type:Boolean,default:!1},active:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},lockAspectRatio:{type:Boolean,default:!1},w:{type:[Number,String],default:200,validator:e=>typeof e==`number`?e>0:e===`auto`},h:{type:[Number,String],default:200,validator:e=>typeof e==`number`?e>0:e===`auto`},minWidth:{type:Number,default:0,validator:e=>e>=0},minHeight:{type:Number,default:0,validator:e=>e>=0},maxWidth:{type:Number,default:null,validator:e=>e>=0},maxHeight:{type:Number,default:null,validator:e=>e>=0},x:{type:Number,default:0},y:{type:Number,default:0},z:{type:[String,Number],default:`auto`,validator:e=>typeof e==`string`?e===`auto`:e>=0},handles:{type:Array,default:()=>[`tl`,`tm`,`tr`,`mr`,`br`,`bm`,`bl`,`ml`],validator:e=>{let t=new Set([`tl`,`tm`,`tr`,`mr`,`br`,`bm`,`bl`,`ml`]);return new Set(e.filter(e=>t.has(e))).size===e.length}},dragHandle:{type:String,default:null},dragCancel:{type:String,default:null},axis:{type:String,default:`both`,validator:e=>[`x`,`y`,`both`].includes(e)},grid:{type:Array,default:()=>[1,1]},parent:{type:Boolean,default:!1},scale:{type:[Number,Array],default:1,validator:e=>typeof e==`number`?e>0:e.length===2&&e[0]>0&&e[1]>0},onDragStart:{type:Function,default:()=>!0},onDrag:{type:Function,default:()=>!0},onResizeStart:{type:Function,default:()=>!0},onResize:{type:Function,default:()=>!0}},data:function(){return{left:this.x,top:this.y,right:null,bottom:null,width:null,height:null,widthTouched:!1,heightTouched:!1,aspectFactor:null,parentWidth:null,parentHeight:null,handle:null,enabled:this.active,resizing:!1,dragging:!1,dragEnable:!1,resizeEnable:!1,zIndex:this.z}},created:function(){this.maxWidth&&this.minWidth>this.maxWidth&&console.warn(`[Vdr warn]: Invalid prop: minWidth cannot be greater than maxWidth`),this.maxHeight&&this.minHeight>this.maxHeight&&console.warn(`[Vdr warn]: Invalid prop: minHeight cannot be greater than maxHeight`),this.resetBoundsAndMouseState()},mounted:function(){this.enableNativeDrag||(this.$el.ondragstart=()=>!1);let[e,t]=this.getParentSize();this.parentWidth=e,this.parentHeight=t;let[n,r]=wGt(this.$el);this.aspectFactor=(this.w===`auto`?n:this.w)/(this.h===`auto`?r:this.h),this.width=this.w===`auto`?n:this.w,this.height=this.h===`auto`?r:this.h,this.right=this.parentWidth-this.width-this.left,this.bottom=this.parentHeight-this.height-this.top,this.active&&this.$emit(`activated`),q9(document.documentElement,`mousedown`,this.deselect),q9(document.documentElement,`touchend touchcancel`,this.deselect),q9(window,`resize`,this.checkParentSize)},beforeUnmount:function(){J9(document.documentElement,`mousedown`,this.deselect),J9(document.documentElement,`touchstart`,this.handleUp),J9(document.documentElement,`mousemove`,this.move),J9(document.documentElement,`touchmove`,this.move),J9(document.documentElement,`mouseup`,this.handleUp),J9(document.documentElement,`touchend touchcancel`,this.deselect),J9(window,`resize`,this.checkParentSize)},methods:{resetBoundsAndMouseState(){this.mouseClickPosition={mouseX:0,mouseY:0,x:0,y:0,w:0,h:0},this.bounds={minLeft:null,maxLeft:null,minRight:null,maxRight:null,minTop:null,maxTop:null,minBottom:null,maxBottom:null}},checkParentSize(){if(this.parent){let[e,t]=this.getParentSize();this.parentWidth=e,this.parentHeight=t,this.right=this.parentWidth-this.width-this.left,this.bottom=this.parentHeight-this.height-this.top}},getParentSize(){if(this.parent){let e=window.getComputedStyle(this.$el.parentNode,null);return[parseInt(e.getPropertyValue(`width`),10),parseInt(e.getPropertyValue(`height`),10)]}return[null,null]},elementTouchDown(e){X9=Y9.touch,this.elementDown(e)},elementMouseDown(e){X9=Y9.mouse,this.elementDown(e)},elementDown(e){if(e instanceof MouseEvent&&e.button!==0)return;let t=e.target||e.srcElement;if(this.$el.contains(t)){if(this.onDragStart(e)===!1)return;if(this.dragHandle&&!CGt(t,this.dragHandle,this.$el)||this.dragCancel&&CGt(t,this.dragCancel,this.$el)){this.dragging=!1;return}this.enabled||(this.enabled=!0,this.$emit(`activated`),this.$emit(`update:active`,!0)),this.draggable&&(this.dragEnable=!0),this.mouseClickPosition.mouseX=e.touches?e.touches[0].pageX:e.pageX,this.mouseClickPosition.mouseY=e.touches?e.touches[0].pageY:e.pageY,this.mouseClickPosition.left=this.left,this.mouseClickPosition.right=this.right,this.mouseClickPosition.top=this.top,this.mouseClickPosition.bottom=this.bottom,this.parent&&(this.bounds=this.calcDragLimits()),q9(document.documentElement,X9.move,this.move),q9(document.documentElement,X9.stop,this.handleUp)}},calcDragLimits(){return{minLeft:this.left%this.grid[0],maxLeft:Math.floor((this.parentWidth-this.width-this.left)/this.grid[0])*this.grid[0]+this.left,minRight:this.right%this.grid[0],maxRight:Math.floor((this.parentWidth-this.width-this.right)/this.grid[0])*this.grid[0]+this.right,minTop:this.top%this.grid[1],maxTop:Math.floor((this.parentHeight-this.height-this.top)/this.grid[1])*this.grid[1]+this.top,minBottom:this.bottom%this.grid[1],maxBottom:Math.floor((this.parentHeight-this.height-this.bottom)/this.grid[1])*this.grid[1]+this.bottom}},deselect(e){let t=e.target||e.srcElement,n=RegExp(this.className+`-([trmbl]{2})`,``);!this.$el.contains(t)&&!n.test(t.className)&&(this.enabled&&!this.preventDeactivation&&(this.enabled=!1,this.$emit(`deactivated`),this.$emit(`update:active`,!1)),J9(document.documentElement,X9.move,this.handleResize)),this.resetBoundsAndMouseState()},handleTouchDown(e,t){X9=Y9.touch,this.handleDown(e,t)},handleDown(e,t){t instanceof MouseEvent&&t.which!==1||this.onResizeStart(e,t)!==!1&&(t.stopPropagation&&t.stopPropagation(),this.lockAspectRatio&&!e.includes(`m`)?this.handle=`m`+e.substring(1):this.handle=e,this.resizeEnable=!0,this.mouseClickPosition.mouseX=t.touches?t.touches[0].pageX:t.pageX,this.mouseClickPosition.mouseY=t.touches?t.touches[0].pageY:t.pageY,this.mouseClickPosition.left=this.left,this.mouseClickPosition.right=this.right,this.mouseClickPosition.top=this.top,this.mouseClickPosition.bottom=this.bottom,this.bounds=this.calcResizeLimits(),q9(document.documentElement,X9.move,this.handleResize),q9(document.documentElement,X9.stop,this.handleUp))},calcResizeLimits(){let e=this.minW,t=this.minH,n=this.maxW,r=this.maxH,i=this.aspectFactor,[a,o]=this.grid,s=this.width,l=this.height,u=this.left,d=this.top,f=this.right,p=this.bottom;this.lockAspectRatio&&(e/t>i?t=e/i:e=i*t,n&&r?(n=Math.min(n,i*r),r=Math.min(r,n/i)):n?r=n/i:r&&(n=i*r)),n-=n%a,r-=r%o;let m={minLeft:null,maxLeft:null,minTop:null,maxTop:null,minRight:null,maxRight:null,minBottom:null,maxBottom:null};return this.parent?(m.minLeft=u%a,m.maxLeft=u+Math.floor((s-e)/a)*a,m.minTop=d%o,m.maxTop=d+Math.floor((l-t)/o)*o,m.minRight=f%a,m.maxRight=f+Math.floor((s-e)/a)*a,m.minBottom=p%o,m.maxBottom=p+Math.floor((l-t)/o)*o,n&&(m.minLeft=Math.max(m.minLeft,this.parentWidth-f-n),m.minRight=Math.max(m.minRight,this.parentWidth-u-n)),r&&(m.minTop=Math.max(m.minTop,this.parentHeight-p-r),m.minBottom=Math.max(m.minBottom,this.parentHeight-d-r)),this.lockAspectRatio&&(m.minLeft=Math.max(m.minLeft,u-d*i),m.minTop=Math.max(m.minTop,d-u/i),m.minRight=Math.max(m.minRight,f-p*i),m.minBottom=Math.max(m.minBottom,p-f/i))):(m.minLeft=null,m.maxLeft=u+Math.floor((s-e)/a)*a,m.minTop=null,m.maxTop=d+Math.floor((l-t)/o)*o,m.minRight=null,m.maxRight=f+Math.floor((s-e)/a)*a,m.minBottom=null,m.maxBottom=p+Math.floor((l-t)/o)*o,n&&(m.minLeft=-(f+n),m.minRight=-(u+n)),r&&(m.minTop=-(p+r),m.minBottom=-(d+r)),this.lockAspectRatio&&n&&r&&(m.minLeft=Math.min(m.minLeft,-(f+n)),m.minTop=Math.min(m.minTop,-(r+p)),m.minRight=Math.min(m.minRight,-u-n),m.minBottom=Math.min(m.minBottom,-d-r))),m},move(e){this.resizing?this.handleResize(e):this.dragEnable&&this.handleDrag(e)},handleDrag(e){let t=this.axis,n=this.grid,r=this.bounds,i=this.mouseClickPosition,[a,o]=U9(n,t&&t!==`y`?i.mouseX-(e.touches?e.touches[0].pageX:e.pageX):0,t&&t!==`x`?i.mouseY-(e.touches?e.touches[0].pageY:e.pageY):0,this.scale),s=K9(i.left-a,r.minLeft,r.maxLeft),l=K9(i.top-o,r.minTop,r.maxTop);if(this.onDrag(s,l)===!1)return;let u=K9(i.right+a,r.minRight,r.maxRight),d=K9(i.bottom+o,r.minBottom,r.maxBottom);this.left=s,this.top=l,this.right=u,this.bottom=d,this.$emit(`dragging`,this.left,this.top),this.dragging=!0},moveHorizontally(e){let[t,n]=U9(this.grid,e,this.top,1),r=K9(t,this.bounds.minLeft,this.bounds.maxLeft);this.left=r,this.right=this.parentWidth-this.width-r},moveVertically(e){let[t,n]=U9(this.grid,this.left,e,1),r=K9(n,this.bounds.minTop,this.bounds.maxTop);this.top=r,this.bottom=this.parentHeight-this.height-r},handleResize(e){let t=this.left,n=this.top,r=this.right,i=this.bottom,a=this.mouseClickPosition,o=this.aspectFactor,s=a.mouseX-(e.touches?e.touches[0].pageX:e.pageX),l=a.mouseY-(e.touches?e.touches[0].pageY:e.pageY);!this.widthTouched&&s&&(this.widthTouched=!0),!this.heightTouched&&l&&(this.heightTouched=!0);let[u,d]=U9(this.grid,s,l,this.scale);this.handle.includes(`b`)?(i=K9(a.bottom+d,this.bounds.minBottom,this.bounds.maxBottom),this.lockAspectRatio&&this.resizingOnY&&(r=this.right-(this.bottom-i)*o)):this.handle.includes(`t`)&&(n=K9(a.top-d,this.bounds.minTop,this.bounds.maxTop),this.lockAspectRatio&&this.resizingOnY&&(t=this.left-(this.top-n)*o)),this.handle.includes(`r`)?(r=K9(a.right+u,this.bounds.minRight,this.bounds.maxRight),this.lockAspectRatio&&this.resizingOnX&&(i=this.bottom-(this.right-r)/o)):this.handle.includes(`l`)&&(t=K9(a.left-u,this.bounds.minLeft,this.bounds.maxLeft),this.lockAspectRatio&&this.resizingOnX&&(n=this.top-(this.left-t)/o));let f=W9(this.parentWidth,t,r),p=G9(this.parentHeight,n,i);this.onResize(this.handle,t,n,f,p)!==!1&&(this.left=t,this.top=n,this.right=r,this.bottom=i,this.width=f,this.height=p,this.$emit(`resizing`,this.left,this.top,this.width,this.height),this.resizing=!0)},changeWidth(e){let[t,n]=U9(this.grid,e,0,1),r=K9(this.parentWidth-t-this.left,this.bounds.minRight,this.bounds.maxRight),i=this.bottom;this.lockAspectRatio&&(i=this.bottom-(this.right-r)/this.aspectFactor);let a=W9(this.parentWidth,this.left,r),o=G9(this.parentHeight,this.top,i);this.right=r,this.bottom=i,this.width=a,this.height=o},changeHeight(e){let[t,n]=U9(this.grid,0,e,1),r=K9(this.parentHeight-n-this.top,this.bounds.minBottom,this.bounds.maxBottom),i=this.right;this.lockAspectRatio&&(i=this.right-(this.bottom-r)*this.aspectFactor);let a=W9(this.parentWidth,this.left,i),o=G9(this.parentHeight,this.top,r);this.right=i,this.bottom=r,this.width=a,this.height=o},handleUp(e){this.handle=null,this.resetBoundsAndMouseState(),this.dragEnable=!1,this.resizeEnable=!1,this.resizing&&(this.resizing=!1,this.$emit(`resizeStop`,this.left,this.top,this.width,this.height)),this.dragging&&(this.dragging=!1,this.$emit(`dragStop`,this.left,this.top)),J9(document.documentElement,X9.move,this.handleResize)}},computed:{style(){return{transform:`translate(${this.left}px, ${this.top}px)`,width:this.computedWidth,height:this.computedHeight,zIndex:this.zIndex,...this.dragging&&this.disableUserSelect?EGt:DGt}},actualHandles(){return this.resizable?this.handles:[]},computedWidth(){return this.w===`auto`&&!this.widthTouched?`auto`:this.width+`px`},computedHeight(){return this.h===`auto`&&!this.heightTouched?`auto`:this.height+`px`},minW(){return this.minWidth},minH(){return this.minHeight},maxW(){return this.maxWidth},maxH(){return this.maxHeight},resizingOnX(){return!!this.handle&&(this.handle.includes(`l`)||this.handle.includes(`r`))},resizingOnY(){return!!this.handle&&(this.handle.includes(`t`)||this.handle.includes(`b`))},isCornerHandle(){return!!this.handle&&[`tl`,`tr`,`br`,`bl`].includes(this.handle)}},watch:{active(e){this.enabled=e,e?this.$emit(`activated`):this.$emit(`deactivated`)},z(e){(e>=0||e===`auto`)&&(this.zIndex=e)},x(e){this.resizing||this.dragging||(this.parent&&(this.bounds=this.calcDragLimits()),this.moveHorizontally(e))},y(e){this.resizing||this.dragging||(this.parent&&(this.bounds=this.calcDragLimits()),this.moveVertically(e))},lockAspectRatio(e){e?this.aspectFactor=this.width/this.height:this.aspectFactor=void 0},w(e){this.resizing||this.dragging||(this.parent&&(this.bounds=this.calcResizeLimits()),this.changeWidth(e))},h(e){this.resizing||this.dragging||(this.parent&&(this.bounds=this.calcResizeLimits()),this.changeHeight(e))}}},kGt=[`onMousedown`,`onTouchstart`];function AGt(e,n,r,i,a,o){return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{style:(0,t.normalizeStyle)(o.style),class:(0,t.normalizeClass)([{[r.classNameActive]:e.enabled,[r.classNameDragging]:e.dragging,[r.classNameResizing]:e.resizing,[r.classNameDraggable]:r.draggable,[r.classNameResizable]:r.resizable},r.className]),onMousedown:n[0]||=(...e)=>o.elementMouseDown&&o.elementMouseDown(...e),onTouchstart:n[1]||=(...e)=>o.elementTouchDown&&o.elementTouchDown(...e)},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.actualHandles,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([r.classNameHandle,r.classNameHandle+`-`+n]),style:(0,t.normalizeStyle)({display:e.enabled?`block`:`none`}),onMousedown:(0,t.withModifiers)(e=>o.handleDown(n,e),[`stop`,`prevent`]),onTouchstart:(0,t.withModifiers)(e=>o.handleTouchDown(n,e),[`stop`,`prevent`])},[(0,t.renderSlot)(e.$slots,n)],46,kGt))),128)),(0,t.renderSlot)(e.$slots,`default`)],38)}var Z9=TGt(OGt,[[`render`,AGt]]);function Q9(e){Q9.installed||(Q9.installed=!0,e.component(`VueDraggableResizable`,Z9))}var jGt={install:Q9},$9=null;typeof window<`u`?$9=window.Vue:typeof global<`u`&&($9=global.Vue),$9&&$9.use(jGt);var MGt=3;function NGt(e={},n){let r=e.initWidth||400,i=e.minWidth||400,a=e.minHeight||400,o=e.maxWidthPercent||40,s=e.compressedHeight||800,l=e.compressedPadding===void 0?0:e.compressedPadding,u=(0,t.ref)(e.defaultLeft===void 0?window.innerWidth-r:e.defaultLeft),d=(0,t.ref)(e.defaultTop===void 0?0:e.defaultTop),f=(0,t.ref)(e.defaultHeight===void 0?window.innerHeight-(e.defaultTop===void 0?0:e.defaultTop):e.defaultHeight),p=(0,t.ref)(r),m=(0,t.ref)(d.value),h=(0,t.ref)(u.value),g=(0,t.ref)(p.value),_=(0,t.ref)(f.value),v=(0,t.ref)(Math.max(window.innerWidth*(o/100),g.value)),y=(0,t.ref)(!1),b=(0,t.ref)(0),x=null,S=null,C=0,w=0,T=!1,E=null,D=(0,t.ref)(!1),O=e=>{let t=window.innerWidth,n={...e};return n.width>t&&(n.width=t),n.x+n.width>t&&(n.x=t-n.width),n.x<0&&(n.x=0),n},k=()=>({x:h.value,y:m.value,width:g.value,height:_.value}),A=(e,t)=>{D.value&&(E!==null&&Math.abs(e-E.x)<=MGt&&Math.abs(t-E.width)<=MGt||(x=null,T=!1))},j=(e,t)=>{h.value=e,m.value=t,b.value=e-(window.innerWidth-g.value),A(e,g.value),n?.onDragging?.(k())},M=(e,t,r,i)=>{h.value=e,m.value=t,g.value=Math.min(r,v.value),_.value=i,A(e,g.value),n?.onResizing?.(k())},N=(e,t)=>{h.value=e,m.value=t,b.value=e-(window.innerWidth-g.value),A(e,g.value),S=D.value?k():null,n?.onDragStop?.(k())},P=(e,t,r,i)=>{h.value=e,m.value=t,g.value=Math.min(r,v.value),_.value=i,A(e,g.value),S=D.value?k():null,n?.onResizeStop?.(k())},F=()=>{v.value=Math.max(window.innerWidth*(o/100),g.value),(0,t.nextTick)(()=>{if(y.value)h.value=window.innerWidth-g.value-l,m.value=window.innerHeight-s-l;else{let e=window.innerWidth-g.value-b.value;h.value=Math.max(0,e),setTimeout(()=>{_.value=window.innerHeight-m.value},0)}g.value>v.value&&(g.value=v.value)})},I=()=>{y.value?(m.value=d.value,(0,t.nextTick)(()=>{_.value=f.value,h.value=u.value,g.value=p.value})):(m.value=window.innerHeight-s-l,h.value=u.value-l,g.value=r,_.value=s),y.value=!y.value},L=(e,t)=>{h.value=e,m.value=t,b.value=e-(window.innerWidth-g.value)},R=(e,t)=>{g.value=Math.max(i,Math.min(e,v.value)),_.value=Math.max(a,t)},ee=(e,t,n,r)=>{L(e,t),R(n,r)},z=()=>{b.value=h.value-(window.innerWidth-g.value)},B=async(e,n,r,i,a=`expand`)=>{let o=n.x!==e.x,s=n.width!==e.width,l=async()=>{o&&(L(n.x,n.y),await(0,t.nextTick)())},u=async()=>{i?.onBeforeSizeChange?.(),s&&(R(n.width,n.height),await(0,t.nextTick)())};try{if(a===`expand`){if(await l(),r!==w)return;await u();return}if(await u(),r!==w)return;await l()}finally{z(),E=k()}};return(0,t.onMounted)(()=>{window.addEventListener(`resize`,F)}),(0,t.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,F)}),{minWidth:i,minHeight:a,maxWidth:v,top:m,left:h,width:g,height:_,isCompressed:y,isSidePanelExpanded:D,handleDragging:j,handleResizing:M,handleDragStop:N,handleResizeStop:P,toggleCompression:I,updatePosition:L,updateSize:R,updatePositionAndSize:ee,expandForSidePanel:async(e,t)=>{if(D.value)return;let n=k();x={...n},D.value=!0;let r=++w,a=window.innerWidth,o=i+e;if(n.width>=o){C=0,T=!1,S={...n},E={...n},t?.onBeforeSizeChange?.();return}let s=S?.width??n.width+e;s=Math.min(s,v.value,a),s=Math.max(s,o,i);let l=Math.max(0,s-n.width),u=a-(n.x+n.width),d=Math.max(0,l-u),f=Math.max(0,n.x-d);s=Math.min(s,a-f),C=Math.max(0,s-n.width);let p=O({x:f,y:n.y,width:s,height:n.height});T=p.x!==n.x,await B(n,p,r,t,`expand`),r===w&&(S=k())},collapseSidePanel:async e=>{if(!D.value)return;let t=k();S={...t},D.value=!1;let n=++w,r=x,a=T&&r!==null,o=r?.width??Math.max(i,t.width-C),s=O({x:a&&r?r.x:t.x,y:t.y,width:o,height:t.height});T=!1,await B(t,s,n,e,`collapse`)},abortSidePanelSequence:()=>{w+=1,D.value=!1,T=!1,x&&(L(x.x,x.y),R(x.width,x.height)),z(),E=k()}}}var PGt={class:`draggable-container-content`},FGt=w((0,t.defineComponent)({__name:`draggable-container`,props:{className:{default:``},compressedHeight:{default:800},compressedPadding:{default:0},defaultHeight:{default:void 0},defaultWidth:{default:400},defaultX:{default:void 0},defaultY:{default:0},draggable:{type:Boolean,default:!0},dragHandle:{default:`.drag-handle`},maxWidth:{default:void 0},maxWidthPercent:{default:80},minHeight:{default:400},minWidth:{default:400},resizable:{type:Boolean,default:!0},teleportTo:{default:`body`},visible:{type:Boolean,default:!1}},emits:[`dragging`,`resizing`,`drag-stop`,`resize-stop`,`compression-change`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(!1),{minWidth:s,minHeight:l,maxWidth:u,top:d,left:f,width:p,height:m,isCompressed:h,isSidePanelExpanded:g,handleDragging:_,handleResizing:v,handleDragStop:y,handleResizeStop:b,toggleCompression:x,updatePosition:S,updateSize:C,updatePositionAndSize:w,expandForSidePanel:T,collapseSidePanel:E,abortSidePanelSequence:D}=NGt({initWidth:i.defaultWidth,minWidth:i.minWidth,minHeight:i.minHeight,maxWidthPercent:i.maxWidthPercent,compressedHeight:i.compressedHeight,defaultHeight:i.defaultHeight,defaultTop:i.defaultY,defaultLeft:i.defaultX,compressedPadding:i.compressedPadding},{onDragStop:e=>a(`drag-stop`,e),onResizeStop:e=>a(`resize-stop`,e),onDragging:e=>a(`dragging`,e),onResizing:e=>a(`resizing`,e)}),O=(0,t.computed)(()=>({"--draggable-max-width":typeof i.maxWidth==`number`?`${i.maxWidth}px`:i.maxWidth??`${u.value}px`})),k=(0,t.computed)(()=>({x:f.value,y:d.value,width:p.value,height:m.value})),A=()=>{document.querySelectorAll(`iframe`).forEach(e=>{e.style.pointerEvents=`none`})},j=()=>{document.querySelectorAll(`iframe`).forEach(e=>{e.style.pointerEvents=``})},M=(e,t)=>{o.value||(o.value=!0,A()),_(e,t)},N=(e,t,n,r)=>{o.value||(o.value=!0,A()),v(e,t,n,r)},P=(e,t)=>{y(e,t),o.value=!1,j()},F=(e,t,n,r)=>{b(e,t,n,r),o.value=!1,j()};return(0,t.watch)(h,e=>{a(`compression-change`,e)}),n({updatePosition:S,updateSize:C,updatePositionAndSize:w,toggleCompression:x,expandForSidePanel:T,collapseSidePanel:E,abortSidePanelSequence:D,positionAndSize:k,isCompressed:h,isSidePanelExpanded:g}),(e,n)=>(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Z9),{ref:`draggableRef`,active:i.visible,class:(0,t.normalizeClass)([`draggable-container-wrapper`,i.className,{"is-dragging-or-resizing":o.value}]),"class-name":`draggable-container-inner`,"drag-handle":i.dragHandle,draggable:i.draggable,h:(0,t.unref)(m),"max-width":(0,t.unref)(u),"min-height":(0,t.unref)(l),"min-width":(0,t.unref)(s),parent:!0,"prevent-deactivation":!0,resizable:i.resizable,style:(0,t.normalizeStyle)(O.value),w:(0,t.unref)(p),x:(0,t.unref)(f),y:(0,t.unref)(d),onDragStop:P,onDragging:M,onResizeStop:F,onResizing:N},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,PGt,[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)])]),_:3},8,[`active`,`class`,`drag-handle`,`draggable`,`h`,`max-width`,`min-height`,`min-width`,`resizable`,`style`,`w`,`x`,`y`])),[[t.vShow,i.visible]])}}),[[`__scopeId`,`data-v-7417a71b`]]),IGt={class:`nimbus-bkai-wrapper`},LGt=[`width`,`height`,`src`],RGt=w((0,t.defineComponent)({name:`NimbusButton`,__name:`nimbus`,props:{isPanelShow:{type:Boolean},isMinimize:{type:Boolean},size:{default:`normal`}},emits:[`click`,`minimize`,`update:isMinimize`],setup(e,{emit:n}){(0,t.useCssVars)(e=>({v05a8b16e:`${o.value.container}px`,v4e1cf4ca:`${o.value.wrapper}px`,v5ab0c513:`${o.value.mini.right}px`,v40c13a80:`${o.value.mini.size}px`,v0d35a9ef:`${o.value.mini.fontSize}px`}));let r=e,i=n,a={small:{container:40,wrapper:32,img:24,mini:{size:14,fontSize:10,right:-4}},normal:{container:48,wrapper:40,img:32,mini:{size:16,fontSize:12,right:-6}},large:{container:56,wrapper:48,img:40,mini:{size:18,fontSize:14,right:-6}}},o=(0,t.computed)(()=>a[r.size]),s=(0,t.ref)(null),l=(0,t.ref)(null),{nimbusLeft:u,nimbusTop:d,isMinimize:f,handleClick:p,handleMinimize:m,handleDragging:h,handleMouseEnter:g,handleMouseLeave:_,handleMouseDown:v,handleMouseUp:y}=hGt(i,r.isMinimize);(0,t.watch)(f,e=>{i(`update:isMinimize`,e)});let b=(0,t.computed)(()=>f.value?xl(`恢复默认大小`):xl(`最小化,将缩成锚点`)),{createTooltip:x,destroyAll:S}=bGt({theme:`ai-blueking`,delay:[0,0]}),C=()=>{(0,t.nextTick)(()=>{w()})},w=()=>{S(),s.value&&!f.value&&x(s.value,Wge(),{placement:`left`}),l.value&&x(l.value,b.value,{placement:`top`})};return(0,t.watch)(()=>f.value,()=>{(0,t.nextTick)(()=>{w()})}),(0,t.onMounted)(()=>{(0,t.nextTick)(()=>{w()}),window.addEventListener(`resize`,C)}),(0,t.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,C)}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Z9),{active:!e.isPanelShow,axis:`y`,draggable:!0,h:o.value.container,parent:!0,"prevent-deactivation":!0,resizable:!1,w:o.value.container,x:(0,t.unref)(u),y:(0,t.unref)(d),onDragging:(0,t.unref)(h)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{ref_key:`nimbusContainerRef`,ref:s,class:(0,t.normalizeClass)([`nimbus-container`,{"is-minimize":(0,t.unref)(f)}]),onClick:r[1]||=(...e)=>(0,t.unref)(p)&&(0,t.unref)(p)(...e),onMousedown:r[2]||=(...e)=>(0,t.unref)(v)&&(0,t.unref)(v)(...e),onMouseenter:r[3]||=(...e)=>(0,t.unref)(g)&&(0,t.unref)(g)(...e),onMouseleave:r[4]||=(...e)=>(0,t.unref)(_)&&(0,t.unref)(_)(...e),onMouseup:r[5]||=(...e)=>(0,t.unref)(y)&&(0,t.unref)(y)(...e)},[(0,t.createElementVNode)(`div`,IGt,[(0,t.createElementVNode)(`img`,{width:o.value.img,height:o.value.img,src:(0,t.unref)(_Wt),alt:`nimbus`},null,8,LGt)]),(0,t.createElementVNode)(`i`,{ref_key:`minimizeButtonRef`,ref:l,class:(0,t.normalizeClass)([`nimbus-mini bkai-icon`,(0,t.unref)(f)?`bkai-yinyong`:`bkai-minus-line`]),onClick:r[0]||=(0,t.withModifiers)((...e)=>(0,t.unref)(m)&&(0,t.unref)(m)(...e),[`stop`])},null,2)],34)]),_:1},8,[`active`,`h`,`w`,`x`,`y`,`onDragging`]))}}),[[`__scopeId`,`data-v-26b6f3ea`]]),zGt=w((0,t.defineComponent)({inheritAttrs:!1,__name:`ai-blueking`,props:(0,t.mergeDefaults)({alwaysCreateNewSession:{type:Boolean},autoSwitchToInitialSession:{type:Boolean},defaultChatInputPosition:{},defaultHeight:{},defaultLeft:{},defaultMinimize:{type:Boolean},defaultTop:{},defaultWidth:{},disabledInput:{type:Boolean},draggable:{type:Boolean},dropdownMenuConfig:{},enableChatSession:{type:Boolean},enableModelSelect:{type:Boolean},models:{},enablePopup:{type:Boolean},errorToast:{type:Boolean},executionTabVisible:{type:Boolean},extCls:{},getSideRenderComponent:{type:Function},getSideTabRenderComponent:{type:Function},helloText:{},messageTools:{},updateTools:{},hideDefaultTrigger:{type:Boolean},hideHeader:{type:Boolean},hideNimbus:{type:Boolean},ignoreErrors:{},initialSessionCode:{},loadRecentSessionOnMount:{type:Boolean},maxWidth:{},miniPadding:{},nimbusSize:{},onCustomTabChange:{type:Function},placeholder:{},prompts:{},renderMode:{},requestOptions:{},resources:{},shortcutLimit:{},shortcuts:{},showCompressionIcon:{type:Boolean},showHistoryIcon:{type:Boolean},showMoreIcon:{type:Boolean},showNewChatIcon:{type:Boolean},teleportTo:{},title:{},url:{},useAgentName:{type:Boolean},beforeNimbusClick:{type:Function},shortcutFilter:{type:Function},resizeProps:{},size:{},timezone:{}},xGt),emits:[`show`,`close`,`dragging`,`resizing`,`drag-stop`,`resize-stop`,`send-message`,`receive-start`,`receive-text`,`receive-end`,`stop`,`shortcut-click`,`session-initialized`,`sdk-error`,`transfer-messages`,`share-messages`,`confirm-share`,`agent-action`,`new-chat`,`new-chat-created`,`history-click`,`auto-generate-name`,`help-click`,`rename`,`share`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.useAttrs)(),{chatHelper:s,componentManager:l,modelSelection:u,sessionBusinessManager:d,shareBusinessManager:f,shortcutManager:p,forwarders:m,forwardToManager:h,chatBotRef:g,draggableContainerRef:_,panelVisible:v,nimbusMinimized:y,normalizedUrl:b,agentName:x,currentSession:S,isCompressed:C,isWelcomeState:w,handleError:T,reportSdkError:E,ensureSessionReady:D,updateAgentInfo:O}=pGt({props:i,emit:a}),k=(0,t.computed)(()=>u.selectedLlmCode.value),{show:A,hide:j,handleShow:M,handleClose:N,handleNimbusClick:P,handleDragging:F,handleResizing:I,handleDragStop:L,handleResizeStop:R,handleToggleCompression:ee,handleCompressionChange:z,handleExecutionPanelChange:B,handleToggleAside:V,handleAsideCollapsedUpdate:te,asideCollapsed:ne,sendMessage:re,handleReceiveStart:ie,handleReceiveText:ae,handleReceiveEnd:H,handleStop:oe,stopGeneration:se,setCiteText:ce,focusInput:le,selectShortcut:ue,sendShortcut:de,getChatHelper:fe,updatePosition:pe,updateSize:me,updatePositionAndSize:he,handleShortcutClick:ge}=_Gt({componentManager:l,chatBotRef:g,forwarders:m,forwardToManager:h,beforeNimbusClick:i.beforeNimbusClick,ensureSessionReady:D}),{sessionName:_e,hasPermission:ve,hasSessionContents:ye,autoGenerateLoading:be,handleNewChat:xe,handleNewChatCreated:Se,handleHistoryClick:Ce,handleHistorySessionSwitch:we,handleHistorySessionDelete:Te,handleHistorySessionRename:Ee,handleAutoGenerateName:De,handleHelpClick:Oe,handleRename:ke,handleSessionRenamed:Ae,handleSessionSwitched:je,addNewSession:Me,switchToSession:Ne,updateSessionName:Pe}=vGt({chatHelper:s,sessionBusinessManager:d,chatBotRef:g,forwarders:m,reportSdkError:E,currentSession:S}),{isShareLoading:Fe,handleShare:Ie,handleCancelShare:Le,handleConfirmShare:Re}=yGt({shareBusinessManager:f,chatBotRef:g,emit:(e,t,n)=>a(e,t,n),forwarders:m,reportSdkError:E}),{aiSelectionVisible:ze,filteredPopupShortcuts:Be,handleSelectionChange:Ve,handleAiSelectionShortcut:He}=mGt({shortcutManager:p,chatBotRef:g,forwardToManager:h,show:A,props:i}),Ue=e=>{ye.value=!0,m.sendMessage(e)};return n({show:A,handleShow:M,handleClose:N,hide:j,sendMessage:re,selectShortcut:ue,sendShortcut:de,getChatHelper:fe,stopGeneration:se,addNewSession:Me,switchToSession:Ne,updateSessionName:Pe,updatePosition:pe,updateSize:me,updatePositionAndSize:he,setCiteText:ce,focusInput:le,updateAgentInfo:O}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:i.teleportTo},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`ai-blueking-v2`,i.extCls,(0,t.unref)(o).class])},[(0,t.createCommentVNode)(` 可拖拽容器 `),(0,t.createVNode)((0,t.unref)(FGt),{ref_key:`draggableContainerRef`,ref:_,"compressed-padding":i.miniPadding,"default-height":i.defaultHeight,"default-width":i.defaultWidth,"default-x":i.defaultLeft,"default-y":i.defaultTop,"drag-handle":`.drag-handle`,draggable:i.draggable,"max-width":i.maxWidth,"max-width-percent":80,visible:(0,t.unref)(v),onCompressionChange:(0,t.unref)(z),onDragStop:(0,t.unref)(L),onDragging:(0,t.unref)(F),onResizeStop:(0,t.unref)(R),onResizing:(0,t.unref)(I)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`ai-blueking-panel`,{"has-messages":!(0,t.unref)(w)}])},[(0,t.createCommentVNode)(` 独立的 Header 组件 `),i.hideHeader?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createBlock)(DWt,{key:0,"agent-name":(0,t.unref)(x),"aside-collapsed":(0,t.unref)(ne),"auto-generate-loading":(0,t.unref)(be),"chat-helper":(0,t.unref)(s),draggable:i.draggable,"dropdown-menu-config":i.dropdownMenuConfig,"enable-chat-session":i.enableChatSession,"has-permission":(0,t.unref)(ve),"has-session-contents":(0,t.unref)(ye),"is-compression-height":(0,t.unref)(C),"render-mode":i.renderMode,"selected-llm-code":k.value,"session-business-manager":(0,t.unref)(d),"session-name":(0,t.unref)(_e),"show-compression-icon":i.showCompressionIcon,"show-history-icon":i.showHistoryIcon,"show-more-icon":i.showMoreIcon,"show-new-chat-icon":i.showNewChatIcon,title:i.title,onAutoGenerateName:(0,t.unref)(De),onClose:(0,t.unref)(N),onHelpClick:(0,t.unref)(Oe),onHistoryClick:(0,t.unref)(Ce),onHistorySessionDelete:(0,t.unref)(Te),onHistorySessionRename:(0,t.unref)(Ee),onHistorySessionSwitch:(0,t.unref)(we),onNewChat:(0,t.unref)(xe),onNewChatCreated:(0,t.unref)(Se),onRename:(0,t.unref)(ke),onShare:(0,t.unref)(Ie),onToggleAside:(0,t.unref)(V),onToggleCompression:(0,t.unref)(ee)},(0,t.createSlots)({_:2},[e.$slots.headerLeft?{name:`headerLeft`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`headerLeft`,{},void 0,!0)]),key:`0`}:void 0]),1032,`agent-name.aside-collapsed.auto-generate-loading.chat-helper.draggable.dropdown-menu-config.enable-chat-session.has-permission.has-session-contents.is-compression-height.render-mode.selected-llm-code.session-business-manager.session-name.show-compression-icon.show-history-icon.show-more-icon.show-new-chat-icon.title.onAutoGenerateName.onClose.onHelpClick.onHistoryClick.onHistorySessionDelete.onHistorySessionRename.onHistorySessionSwitch.onNewChat.onNewChatCreated.onRename.onShare.onToggleAside.onToggleCompression`.split(`.`))),(0,t.createCommentVNode)(` ChatBot 核心组件(仅聊天区域) `),(0,t.createVNode)(aGt,{ref_key:`chatBotRef`,ref:g,"always-create-new-session":i.alwaysCreateNewSession,"aside-collapsed":(0,t.unref)(ne),"auto-load":i.loadRecentSessionOnMount,"chat-helper":(0,t.unref)(s),"enable-model-select":i.enableModelSelect,"error-toast":!1,"execution-tab-visible":i.executionTabVisible,"get-side-render-component":i.getSideRenderComponent,"get-side-tab-render-component":i.getSideTabRenderComponent,"hello-text":i.helloText,"message-tools":i.messageTools,"model-selection-manager":(0,t.unref)(u),models:i.models,"on-custom-tab-change":i.onCustomTabChange,placeholder:i.placeholder,prompts:i.prompts,"render-mode":i.renderMode,"request-options":i.requestOptions,"resize-props":i.resizeProps,resources:i.resources,"session-code":i.initialSessionCode,"share-loading":(0,t.unref)(Fe),shortcuts:i.shortcuts,size:i.size,timezone:i.timezone,style:(0,t.normalizeStyle)({height:i.hideHeader?`100%`:`calc(100% - 48px)`}),"update-tools":i.updateTools,url:(0,t.unref)(b),"use-agent-name":i.useAgentName,onAgentAction:n[0]||=(e,t)=>a(`agent-action`,e,t),onCancelShare:(0,t.unref)(Le),onConfirmShare:n[1]||=(e,n)=>(0,t.unref)(Re)(e,n),onError:n[2]||=e=>(0,t.unref)(T)(e),onExecutionPanelChange:(0,t.unref)(B),onReceiveEnd:(0,t.unref)(H),onReceiveStart:(0,t.unref)(ie),onReceiveText:(0,t.unref)(ae),onRename:(0,t.unref)(Ae),onRequestShare:(0,t.unref)(Ie),onSendMessage:n[3]||=e=>Ue(e),onSessionSwitched:n[4]||=e=>(0,t.unref)(je)(e),onShortcutClick:(0,t.unref)(ge),onStop:(0,t.unref)(oe),"onUpdate:asideCollapsed":(0,t.unref)(te)},(0,t.createSlots)({_:2},[e.$slots.welcome?{name:`welcome`,fn:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`welcome`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)),void 0,!0)]),key:`0`}:void 0,e.$slots.codeHeader?{name:`codeHeader`,fn:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`codeHeader`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)),void 0,!0)]),key:`1`}:void 0,e.$slots.message?{name:`message`,fn:(0,t.withCtx)(({message:n,messageToolsStatus:r,onInterruptResume:i})=>[(0,t.renderSlot)(e.$slots,`message`,{message:n,messageToolsStatus:r,onInterruptResume:i},void 0,!0)]),key:`2`}:void 0]),1032,`always-create-new-session.aside-collapsed.auto-load.chat-helper.enable-model-select.execution-tab-visible.get-side-render-component.get-side-tab-render-component.hello-text.message-tools.model-selection-manager.models.on-custom-tab-change.placeholder.prompts.render-mode.request-options.resize-props.resources.session-code.share-loading.shortcuts.size.timezone.style.update-tools.url.use-agent-name.onCancelShare.onExecutionPanelChange.onReceiveEnd.onReceiveStart.onReceiveText.onRename.onRequestShare.onShortcutClick.onStop.onUpdate:asideCollapsed`.split(`.`))],2)]),_:3},8,[`compressed-padding`,`default-height`,`default-width`,`default-x`,`default-y`,`draggable`,`max-width`,`visible`,`onCompressionChange`,`onDragStop`,`onDragging`,`onResizeStop`,`onResizing`]),(0,t.createCommentVNode)(` Nimbus 悬浮球 `),i.hideNimbus?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createBlock)(RGt,{key:0,"is-minimize":(0,t.unref)(y),"onUpdate:isMinimize":n[5]||=e=>(0,t.isRef)(y)?y.value=e:null,"is-panel-show":(0,t.unref)(v),"onUpdate:isPanelShow":n[6]||=e=>(0,t.isRef)(v)?v.value=e:null,"default-minimize":i.defaultMinimize,size:i.nimbusSize,onClick:(0,t.unref)(P)},null,8,[`is-minimize`,`is-panel-show`,`default-minimize`,`size`,`onClick`])),(0,t.createCommentVNode)(` 划词选择弹窗(使用 chat-x 的 AiSelection 组件) `),i.enablePopup?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(iSe),{key:1,visible:(0,t.unref)(ze),"onUpdate:visible":n[7]||=e=>(0,t.isRef)(ze)?ze.value=e:null,"exclude-selectors":[`.draggable-container-wrapper`],"max-shortcut-count":i.shortcutLimit,shortcuts:(0,t.unref)(Be),onSelectShortcut:(0,t.unref)(He),onSelectionChange:(0,t.unref)(Ve)},null,8,[`visible`,`max-shortcut-count`,`shortcuts`,`onSelectShortcut`,`onSelectionChange`])):(0,t.createCommentVNode)(`v-if`,!0)],2)],8,[`to`]))}}),[[`__scopeId`,`data-v-af633e66`]]),BGt=[`close`,`show`,`stop`,`shortcut-click`,`send-message`,`receive-start`,`receive-end`,`receive-text`,`session-initialized`,`drag-stop`,`resize-stop`,`dragging`,`resizing`,`transfer-messages`,`share-messages`,`confirm-share`,`agent-action`,`sdk-error`,`new-chat`,`new-chat-created`,`history-click`,`auto-generate-name`,`help-click`,`rename`,`share`],VGt=[`show`,`handleShow`,`handleClose`,`hide`,`sendMessage`,`stopGeneration`,`addNewSession`,`switchToSession`,`updateSessionName`,`updatePosition`,`updateSize`,`updatePositionAndSize`,`setCiteText`,`focusInput`,`getChatHelper`,`selectShortcut`,`sendShortcut`],HGt=oGt(zGt,{name:`AIBluekingV2`,props:{extCls:{type:String,default:``},shortcuts:{type:Array,default:()=>[]},enablePopup:{type:Boolean,default:!0},url:{type:String,default:``},prompts:{type:Array,default:()=>[]},teleportTo:{type:String,default:`body`},title:{type:String,default:``},helloText:{type:String,default:()=>xl(`你好,我是小鲸`)},useAgentName:{type:Boolean,default:!1},requestOptions:{type:Object,default:()=>({})},defaultMinimize:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1},hideNimbus:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},defaultWidth:{type:Number,default:400},defaultHeight:{type:Number,default:void 0},defaultLeft:{type:Number,default:void 0},defaultTop:{type:Number,default:0},disabledInput:{type:Boolean,default:!1},showCompressionIcon:{type:Boolean,default:!0},showMoreIcon:{type:Boolean,default:!0},showHistoryIcon:{type:Boolean,default:!0},showNewChatIcon:{type:Boolean,default:!0},defaultChatInputPosition:{type:String,default:void 0},maxWidth:{type:[Number,String],default:1e3},initialSessionCode:{type:String,default:``},autoSwitchToInitialSession:{type:Boolean,default:!1},alwaysCreateNewSession:{type:Boolean,default:!1},loadRecentSessionOnMount:{type:Boolean,default:!0},shortcutLimit:{type:Number,default:3},shortcutFilter:{type:Function,default:void 0},placeholder:{type:String,default:void 0},enableChatSession:{type:Boolean,default:!0},nimbusSize:{type:String,default:`normal`},miniPadding:{type:Number,default:0},dropdownMenuConfig:{type:Object,default:()=>({showRename:!0,showAutoGenerate:!0,showShare:!0})},resources:{type:Array,default:void 0},messageTools:{type:Array,default:void 0},updateTools:{type:Array,default:void 0},hideDefaultTrigger:{type:Boolean,default:!1},beforeNimbusClick:{type:Function,default:void 0},getSideRenderComponent:{type:Function,default:void 0},getSideTabRenderComponent:{type:Function,default:void 0},onCustomTabChange:{type:Function,default:void 0},executionTabVisible:{type:Boolean,default:!0},resizeProps:{type:Object,default:void 0},size:{type:String,default:void 0},timezone:{type:String,default:void 0}},emitNames:[...BGt],exposeKeys:[...VGt],slots:[`codeHeader`,`headerLeft`,`message`,`welcome`],deepWatchProps:[`requestOptions`,`shortcuts`,`beforeNimbusClick`],methods:{show(){return console.warn(`AIBluekingV2: show method not ready`),Promise.resolve()},handleShow(){return console.warn(`AIBluekingV2: handleShow method not ready`),Promise.resolve()},handleClose(){console.warn(`AIBluekingV2: handleClose method not ready`)},hide(){console.warn(`AIBluekingV2: hide method not ready`)},sendMessage(){return console.warn(`AIBluekingV2: sendMessage method not ready`),Promise.resolve()},stopGeneration(){console.warn(`AIBluekingV2: stopGeneration method not ready`)},addNewSession(){return console.warn(`AIBluekingV2: addNewSession method not ready`),Promise.resolve()},switchToSession(){return console.warn(`AIBluekingV2: switchToSession method not ready`),Promise.resolve()},updateSessionName(){return console.warn(`AIBluekingV2: updateSessionName method not ready`),Promise.resolve()},updatePosition(){console.warn(`AIBluekingV2: updatePosition method not ready`)},updateSize(){console.warn(`AIBluekingV2: updateSize method not ready`)},updatePositionAndSize(){console.warn(`AIBluekingV2: updatePositionAndSize method not ready`)},setCiteText(){console.warn(`AIBluekingV2: setCiteText method not ready`)},focusInput(){console.warn(`AIBluekingV2: focusInput method not ready`)},getChatHelper(){return console.warn(`AIBluekingV2: getChatHelper method not ready`),null},selectShortcut(){console.warn(`AIBluekingV2: selectShortcut method not ready`)},sendShortcut(){return console.warn(`AIBluekingV2: sendShortcut method not ready`),Promise.resolve()}}}),UGt=[`send-message`,`error`,`stop`,`receive-start`,`receive-end`,`receive-text`,`shortcut-click`,`session-switched`,`agent-info-loaded`,`request-share`,`confirm-share`,`cancel-share`,`execution-panel-change`,`update:asideCollapsed`,`feedback`,`agent-action`,`rename`],WGt=[`sendMessage`,`stopGeneration`,`focusInput`,`setCiteText`,`switchSession`,`selectShortcut`,`sendShortcut`,`enterShareMode`,`exitShareMode`,`getChatHelper`,`currentSession`,`isGenerating`,`messages`,`isReady`,`whenReady`];e.ChatBotV2=oGt(aGt,{name:`ChatBotV2`,props:{chatHelper:{type:Object,default:void 0},url:{type:String,default:``},height:{type:[Number,String],default:void 0},maxWidth:{type:[Number,String],default:void 0},extCls:{type:String,default:``},helloText:{type:String,default:void 0},useAgentName:{type:Boolean,default:!1},placeholder:{type:String,default:void 0},shortcuts:{type:Array,default:()=>[]},prompts:{type:Array,default:()=>[]},resources:{type:Array,default:()=>[]},requestOptions:{type:Object,default:()=>({})},messageToolsTippyOptions:{type:Object,default:void 0},messageTools:{type:Array,default:void 0},updateTools:{type:Array,default:void 0},enableSelection:{type:Boolean,default:!1},shareLoading:{type:Boolean,default:!1},autoLoad:{type:Boolean,default:!0},alwaysCreateNewSession:{type:Boolean,default:!1},sessionCode:{type:String,default:void 0},resizeProps:{type:Object,default:void 0},size:{type:String,default:void 0},timezone:{type:String,default:void 0},getSideRenderComponent:{type:Function,default:void 0},getSideTabRenderComponent:{type:Function,default:void 0},onCustomTabChange:{type:Function,default:void 0},executionTabVisible:{type:Boolean,default:!0}},emitNames:[...UGt],exposeKeys:[...WGt],slots:[`codeHeader`,`message`,`welcome`],deepWatchProps:[`requestOptions`,`shortcuts`,`beforeNimbusClick`]}),e.default=HGt,Object.defineProperty(e,`h`,{enumerable:!0,get:function(){return t.h}})});
|
|
3915
|
+
`)),n.onAgentAction?.(e,t)),b=async(e,t)=>{n.onUserAction?.(e,t)},x=async(e,t,r)=>{n.onUserInputConfirm?.(e,t,r)},S=async(e,t)=>{n.onUserShortcutConfirm?.(e,t)};return(r,l)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`messageContainerRef`,ref:o,class:`ai-message-container`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(h.value,(o,s)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{id:o.uid,key:s,class:`message-group`,"data-message-group-id":o.uid,style:(0,t.normalizeStyle)({backgroundColor:o.checked?`#f5f7fa`:`transparent`}),onMouseenter:e=>g(o),onMouseleave:e=>_(o,e)},[(0,t.renderSlot)(r.$slots,`group`,(0,t.mergeProps)({ref_for:!0},{group:o}),()=>[e.enableSelection&&o.type!==(0,t.unref)(Ol).Loading?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ds),{key:0,class:(0,t.normalizeClass)([`message-group-checkbox`,{"is-user-group":o.type===(0,t.unref)(Ol).User}]),"model-value":o.checked,"onUpdate:modelValue":e=>v(o,e)},null,8,[`class`,`model-value`,`onUpdate:modelValue`])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`message-group-messages`,{"message-group-enabled-selection":e.renderMode===(0,t.unref)(Ml).Share||e.enableSelection&&o.type!==(0,t.unref)(Ol).Loading}]),style:(0,t.normalizeStyle)({width:e.enableSelection&&o.type!==(0,t.unref)(Ol).Loading?`calc(100% - 16px)`:`100%`})},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.messages,(a,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:o,class:`ai-message-item`,"data-message-id":i(a)},[(0,t.renderSlot)(r.$slots,`default`,(0,t.mergeProps)({ref_for:!0},{message:a,messageToolsStatus:e.messageToolsStatus,onInterruptResume:n.onInterruptResume}),()=>[((0,t.openBlock)(),(0,t.createBlock)(z9,{key:o,message:a,"message-tools":e.userMessageTools,"message-tools-status":e.messageToolsStatus,"on-action":e=>b(e,a),"on-input-confirm":(e,t)=>x(a,e,t),"on-interrupt-resume":n.onInterruptResume,"on-shortcut-confirm":e=>S(a,e),"tippy-options":e.messageToolsTippyOptions},(0,t.createSlots)({_:2},[r.$slots.answeredQuestion?{name:`answeredQuestion`,fn:(0,t.withCtx)(e=>[(0,t.renderSlot)(r.$slots,`answeredQuestion`,(0,t.mergeProps)({ref_for:!0},e))]),key:`0`}:void 0]),1032,[`message`,`message-tools`,`message-tools-status`,`on-action`,`on-input-confirm`,`on-interrupt-resume`,`on-shortcut-confirm`,`tippy-options`]))])],8,GUt))),128)),e.renderMode!==(0,t.unref)(Ml).Share&&!(e.enableSelection&&o.type!==(0,t.unref)(Ol).Loading)&&!o.pause&&o.type===(0,t.unref)(Ol).Assistant&&e.messageToolsStatus!==(0,t.unref)(x9).Hidden?((0,t.openBlock)(),(0,t.createBlock)(OVt,{key:0,"message-tools":p.value,"message-tools-status":e.messageToolsStatus,"on-action":e=>y(e,o.messages),style:(0,t.normalizeStyle)({visibility:o.isHover?`visible`:`hidden`}),"tippy-options":n.messageToolsTippyOptions,"update-tools":m.value,onFeedback:(e,t,r)=>n.onAgentFeedback?.(e,o.messages,t,r)},{append:(0,t.withCtx)(()=>[(0,t.createVNode)(uVt,{"created-at":a(o.messages)},null,8,[`created-at`])]),_:2},1032,[`message-tools`,`message-tools-status`,`on-action`,`style`,`tippy-options`,`update-tools`,`onFeedback`])):(0,t.createCommentVNode)(`v-if`,!0)],6)])],44,WUt))),128)),(0,t.createElementVNode)(`div`,{ref_key:`messageContainerBottomRef`,ref:s,class:`message-container-bottom`,tabindex:`0`},null,512),(0,t.createElementVNode)(`div`,KUt,[(0,t.withDirectives)((0,t.createVNode)(jye,{loading:e.messageStatus===(0,t.unref)(kl).StopLoading,title:e.messageStatus===(0,t.unref)(kl).StopLoading?(0,t.unref)(wl)(`正在停止`):(0,t.unref)(wl)(`停止生成`),onClick:l[0]||=e=>r.$emit(`stopStreaming`)},{icon:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Jve))]),_:1},8,[`loading`,`title`]),[[t.vShow,e.renderMode!==(0,t.unref)(Ml).Share&&(e.messageStatus===(0,t.unref)(kl).Streaming||e.messageStatus===(0,t.unref)(kl).StopLoading||e.messageStatus===(0,t.unref)(kl).Fetching||e.messageStatus===(0,t.unref)(kl).Pending)]]),(0,t.withDirectives)((0,t.createVNode)(jye,{title:(0,t.unref)(wl)(`返回底部`),onClick:l[1]||=()=>(0,t.unref)(u)(`smooth`)},{icon:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(gye))]),_:1},8,[`title`]),[[t.vShow,(0,t.unref)(d)]])])],512))}}),JUt={class:`ai-execution-summary`},YUt={key:0,class:`ai-execution-summary-header`},XUt={class:`ai-execution-summary-content`},ZUt=[`onMouseenter`],QUt={class:`content-item-header`},$Ut={class:`content-item-title`},eWt={class:`content-item-messages`},tWt={key:0,class:`timeline-line`},nWt={key:1,class:`ai-execution-summary-content-empty`},rWt={class:`ai-execution-summary-content-empty-text`},iWt=(0,t.defineComponent)({__name:`execution-summary`,props:{messageGroups:{}},emits:[`locateMessageGroup`,`updateKeyword`],setup(e,{emit:n}){let r=n,i=od(),{keyword:a}=OCe(),o=(0,t.shallowRef)(void 0),s=e=>{if(!e)return``;let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`},l=e=>{r(`locateMessageGroup`,e.uid,e)},u=()=>{a.value=``,r(`updateKeyword`,``)};return(n,d)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,JUt,[e.messageGroups.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,YUt,[(0,t.createVNode)((0,t.unref)(is),{modelValue:(0,t.unref)(a),"onUpdate:modelValue":[d[0]||=e=>(0,t.isRef)(a)?a.value=e:null,d[1]||=e=>r(`updateKeyword`,e)],class:`ai-execution-summary-header-input`,clearable:``,placeholder:(0,t.unref)(wl)(`搜索 关键字`)},null,8,[`modelValue`,`placeholder`])])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,XUt,[e.messageGroups.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e.messageGroups,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.uid,class:`ai-execution-summary-content-item`,onMouseenter:e=>o.value=n.uid,onMouseleave:d[2]||=e=>o.value=void 0},[(0,t.createElementVNode)(`div`,QUt,[d[3]||=(0,t.createElementVNode)(`span`,{class:`timeline-dot`},null,-1),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,$Ut,[(0,t.createTextVNode)((0,t.toDisplayString)(typeof n.userMessageTitle==`number`?s(n.userMessageTitle):n.userMessageTitle),1)])),[[(0,t.unref)(sd),{...(0,t.unref)(i)}]]),(0,t.withDirectives)((0,t.createVNode)((0,t.unref)(Ko),{class:`content-item-locate`,text:``,theme:`primary`,onClick:e=>l(n)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`在对话中定位`)),1)]),_:1},8,[`onClick`]),[[t.vShow,o.value===n.uid]])]),(0,t.createElementVNode)(`div`,eWt,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(n.messages,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(z9,{key:n,message:e},null,8,[`message`]))),128))]),r<e.messageGroups.length-1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,tWt)):(0,t.createCommentVNode)(`v-if`,!0)],40,ZUt))),128)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,nWt,[(0,t.createVNode)((0,t.unref)(hc),{class:`empty-exception`,scene:`part`,type:`empty`}),(0,t.createElementVNode)(`div`,rWt,[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(a)?(0,t.unref)(wl)(`搜索结果为空`):(0,t.unref)(wl)(`暂无数据`))+` `,1),(0,t.unref)(a)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ko),{key:0,text:``,theme:`primary`,onClick:u},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`清空搜索`)),1)]),_:1})):(0,t.createCommentVNode)(`v-if`,!0)])]))])]))}}),aWt={class:`ai-selection-footer`},oWt={class:`ai-selection-footer-left`},sWt={class:`select-all-text`},cWt={class:`ai-selection-footer-right`},lWt=(0,t.defineComponent)({__name:`selection-footer`,props:{isAllSelected:{type:Boolean},loading:{type:Boolean},selectedCount:{}},emits:[`cancel`,`confirm`,`toggle-all`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,aWt,[(0,t.createElementVNode)(`div`,oWt,[(0,t.createVNode)((0,t.unref)(ds),{"model-value":e.isAllSelected,"onUpdate:modelValue":i[0]||=e=>r(`toggle-all`,e)},null,8,[`model-value`]),(0,t.createElementVNode)(`span`,sWt,(0,t.toDisplayString)((0,t.unref)(wl)(`全选`)),1)]),(0,t.createElementVNode)(`div`,cWt,[(0,t.createVNode)((0,t.unref)(Ko),{disabled:e.loading,onClick:i[1]||=e=>r(`cancel`)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`取消`)),1)]),_:1},8,[`disabled`]),(0,t.createVNode)((0,t.unref)(Ko),{disabled:e.selectedCount===0,loading:e.loading,theme:`primary`,onClick:i[2]||=e=>r(`confirm`)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`确定`)),1)]),_:1},8,[`disabled`,`loading`])])]))}}),uWt=[`data-ai-size`],dWt={key:0,class:`ai-chat-container-loading`},fWt={class:`screen-wrapper`},pWt={key:1,class:`ai-welcome-content`},mWt={class:`ai-welcome-title`},hWt={key:0,class:`ai-welcome-remark`},gWt=(0,t.defineComponent)({__name:`chat-container`,props:(0,t.mergeModels)({asideCollapsed:{type:Boolean,default:void 0},chatLoading:{type:Boolean},commonTippyOptions:{},executionTabVisible:{type:Boolean,default:!0},getSideRenderComponent:{},getSideTabRenderComponent:{},onArtifactClick:{},onCustomTabChange:{},openingRemark:{},resizeProps:{},size:{default:`small`},timezone:{},welcomeTitle:{},accept:{},defaultUploadFiles:{},inputMaxHeight:{},menuGroupItemLimit:{},menuSources:{},messageStatus:{},models:{},modelValue:{},onSendMessage:{},onStopSending:{},onUpload:{},placeholder:{},sendDisabledTip:{},shortcutId:{},shortcuts:{},supportUpload:{type:Boolean},tippyOptions:{},messages:{},messageTools:{},messageToolsStatus:{},onAgentAction:{},onAgentFeedback:{},onInterruptResume:{},onUserAction:{},renderMode:{},updateTools:{},userMessageTools:{},onUserInputConfirm:{},onUserShortcutConfirm:{}},{renderMode:{required:!1,default:Ml.Chat},renderModeModifiers:{},selectedShortcut:{required:!1},selectedShortcutModifiers:{},cite:{required:!1,default:``},citeModifiers:{},selectedModel:{required:!1},selectedModelModifiers:{}}),emits:(0,t.mergeModels)([`selectShortcut`,`deleteShortcut`,`deleteFile`,`update:modelValue`,`modelChange`,`stopStreaming`,`shortcutClose`,`shortcutSubmit`,`confirmShare`,`collapseChange`,`update:asideCollapsed`],[`update:renderMode`,`update:selectedShortcut`,`update:cite`,`update:selectedModel`]),setup(e,{expose:n,emit:r}){let i=bhe.TabPanel,a=e,o=(0,t.useModel)(e,`renderMode`),s=(0,t.useTemplateRef)(`fullScreenRef`),{isFullScreen:l,enter:u,exit:d}=kSe(s);kCe({renderMode:o});let f=(0,t.computed)(()=>({collapsible:!1,immediate:!0,min:400,...a.resizeProps,placement:`right`})),p=(0,t.computed)(()=>a.getSideRenderComponent?.(t.h,T.value.data?.props??{})??T.value.data?.component),m=(0,t.computed)(()=>{let e=a.menuSources??[];return e.some(e=>e.type===`artifact`)?e:[...e,...QSe(a.messages)]}),h=(0,t.useTemplateRef)(`chatInputRef`);PSe({insertMention:e=>h.value?.insertMention?.(e)}),jSe({menuSources:m,size:(0,t.computed)(()=>a.size??`small`),supportUpload:(0,t.computed)(()=>a.supportUpload??!1),timezone:(0,t.computed)(()=>a.timezone)}),(0,t.watch)(()=>a.size??`small`,e=>{typeof document<`u`&&(document.body.dataset.aiSize=e)},{immediate:!0});let g=(0,t.useModel)(e,`selectedShortcut`),_=(0,t.useModel)(e,`cite`),v=(0,t.useModel)(e,`selectedModel`),y=r,b=(0,t.shallowRef)(!0),x=(0,t.computed)({get:()=>a.asideCollapsed??b.value,set:e=>{a.asideCollapsed===void 0&&(b.value=e),y(`update:asideCollapsed`,e)}}),S=(0,t.computed)(()=>l.value&&s.value?{...a.commonTippyOptions,appendTo:s.value}:{...a.commonTippyOptions});jCe({tippyOptions:S});let{displayTabs:C,tabs:w,selectedTab:T,isCollapse:E,addCustomTab:D,ensureCustomTab:O,removeCustomTab:k,selectCustomTab:A,resetCustomTab:j}=DSe({collapsed:x,executionTabVisible:()=>a.executionTabVisible,onTabChange:async e=>{if(e.name===`file-artifact`)return;let t=T.value.data?.props||{loading:!0,data:{}};T.value.data={...T.value.data,props:t};let n=await a.onCustomTabChange?.(e);T.value.data={...T.value.data,props:{...t,loading:!1,data:n}}}}),M={closable:!1,label:wl(`文件产物`),name:_Se,order:-1};O(M);let N=(0,t.shallowRef)(``),P=(0,t.ref)([]),F=(0,t.shallowRef)(),I=()=>{let e=a.resizeProps?.initialDivide;return typeof e==`number`?e:400},L=(0,t.shallowRef)(I()),R=(0,t.shallowRef)(I()),ee=(0,t.shallowRef)(!1),z=(0,t.computed)(()=>`calc(100% - ${L.value}px)`),B=(0,t.computed)(()=>`${R.value}px`),{messageGroups:V,executionGroups:te,sessionArtifacts:ne,isShareMode:re,isAllSelected:ie,onToggleShareAll:ae,onCancelShare:H,onConfirmShare:oe,pendingApprovalTipText:se,activeUserQuestionInterrupt:ce}=wCe({keyword:N,messages:(0,t.computed)(()=>a.messages),renderMode:(0,t.computed)(()=>o.value),selectedUserMessages:P}),le=(0,t.computed)(()=>{let e=new Map(ne.value.map(e=>[e.outputId,e]));for(let t of h.value?.uploadedArtifacts??[])e.set(t.outputId,t);return[...e.values()]}),{activeArtifactId:ue,setActiveArtifactId:de}=ySe({getOnArtifactClick:()=>a.onArtifactClick,onOpen:()=>{D(M)}});(0,t.watch)(le,e=>{if(!e.length){de(``);return}e.some(e=>e.outputId===ue.value)||de(e[0].outputId)},{immediate:!0}),(0,t.watch)(E,e=>{e?(N.value=``,L.value=0):L.value=R.value,y(`collapseChange`,e,L.value)});let fe=(0,t.computed)(()=>a.messageStatus===kl.StopLoading?kl.StopLoading:V.value?.some(e=>e.messages.some(e=>e.id===`__loading__`))?kl.Fetching:a.messageStatus),pe=()=>{g.value=null,y(`shortcutClose`)},me=e=>{y(`shortcutSubmit`,e)},he=()=>{y(`deleteShortcut`)},ge=e=>{y(`selectShortcut`,e)},_e=(e,t)=>{y(`update:modelValue`,e,t)},ve=async(e,t)=>{let n=ce.value;return a.onSendMessage?.(e,t,n?{payload:xBt(n),interrupt:n}:void 0)},ye=e=>{if(!e)return;let t=document.getElementById(e);if(!t){let t=V.value.find(t=>t.messages.some(t=>t.uid===e));t&&document.getElementById(t.uid)?.scrollIntoView({behavior:`smooth`});return}t.scrollIntoView({behavior:`smooth`})},be=e=>{if(!(e instanceof HTMLElement))return;let t=e.getBoundingClientRect();t.bottom<0||t.top>window.innerHeight||e.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`nearest`})},xe=e=>e===`execution`?B_e:e===`file-artifact`?W_e:U_e,Se=e=>{A(w.value.find(t=>t.name===e))},Ce=e=>{N.value=e},we=async(e,t)=>{if(e.id===`share`||e.triggerSelection){F.value=e,re.value=!0;return}return a.onAgentAction?.(e,t)},Te=()=>{y(`confirmShare`,oe(),F.value),(0,t.nextTick)(()=>{re.value=!1,P.value=[],F.value=void 0})},Ee=()=>{H(),F.value=void 0},De=e=>{ee.value=!0,L.value=e,R.value=e},Oe=()=>{ee.value=!1};return(0,t.onUnmounted)(()=>{j(),typeof document<`u`&&delete document.body.dataset.aiSize}),n({selectedTab:T,addCustomTab:D,removeCustomTab:k,selectCustomTab:A,enterShareMode:()=>{re.value=!0},exitShareMode:()=>{Ee()}}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`ai-chat-container`,"data-ai-size":e.size,style:(0,t.normalizeStyle)({"--resize-main-width":z.value,"--resize-aside-width":B.value})},[e.chatLoading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dWt,[(0,t.createVNode)(Fzt)])):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(ahe),(0,t.mergeProps)({key:1,class:[`ai-chat-container-resize-layout`,{"ai-is-collapse":(0,t.unref)(E)||(0,t.unref)(C).length===0,"ai-is-welcome":!e.messages?.length,"is-resizing":ee.value}]},f.value,{onAfterResize:Oe,onResizing:De}),{aside:(0,t.withCtx)(()=>[(0,t.createVNode)(t.Transition,{name:`ai-aside-content`},{default:(0,t.withCtx)(()=>[!(0,t.unref)(E)&&(0,t.unref)(C).length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`fullScreenRef`,ref:s,class:`ai-full-screen-wrapper`},[(0,t.createVNode)((0,t.unref)(bhe),{active:(0,t.unref)(T).name,class:`ai-chat-container-tab`,"label-height":40,type:`unborder-card`,onChange:Se},{setting:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,fWt,[(0,t.createVNode)(cd,{class:`screen-btn`,"tippy-options":{...S.value,content:(0,t.unref)(l)?(0,t.unref)(wl)(`退出全屏`):(0,t.unref)(wl)(`全屏`)}},{default:(0,t.withCtx)(()=>[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(vye),{key:1,onClick:(0,t.unref)(d)},null,8,[`onClick`])):((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(_ye),{key:0,onClick:(0,t.unref)(u)},null,8,[`onClick`]))]),_:1},8,[`tippy-options`])])]),default:(0,t.withCtx)(()=>[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(C),n=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(i),{key:n.name,class:`ai-chat-container-tab-panel`,label:()=>(0,t.h)(`div`,{class:`ai-execution-summary-label`,onVnodeMounted:e=>{(0,t.unref)(T).name===n.name&&be(e.el)}},e.getSideTabRenderComponent?.(t.h,n,{removeCustomTab:(0,t.unref)(k)})??[(0,t.h)(xe(n.name),{class:`ai-execution-summary-icon`}),(0,t.withDirectives)((0,t.h)(`span`,{class:`ai-execution-summary-label-text`},n.label??``),[[(0,t.unref)(sd),{...S.value,text:n.label??``}]]),n.closable!==!1&&n.name!==(0,t.unref)(`execution`)?(0,t.h)((0,t.unref)(zl),{class:`ai-execution-close-icon`,onClick:()=>{(0,t.unref)(k)(n.name)}}):null]),name:n.name},null,8,[`label`,`name`]))),128))]),_:1},8,[`active`]),(0,t.unref)(T)?.name===(0,t.unref)(`execution`)&&e.executionTabVisible!==!1?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.unref)(E)?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createBlock)(iWt,{key:0,"message-groups":(0,t.unref)(te),style:{height:`calc(100% - 40px)`},onLocateMessageGroup:ye,onUpdateKeyword:Ce},null,8,[`message-groups`]))],64)):(0,t.unref)(T)?.name===(0,t.unref)(`file-artifact`)?((0,t.openBlock)(),(0,t.createBlock)(vBt,{key:1,"active-id":(0,t.unref)(ue),artifacts:le.value,style:{height:`calc(100% - 40px)`},onSelect:(0,t.unref)(de)},null,8,[`active-id`,`artifacts`,`onSelect`])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.unref)(T)&&(0,t.unref)(T).name!==(0,t.unref)(`file-artifact`)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:(0,t.unref)(T).name,class:`ai-chat-container-message-slot`},[((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(p.value),(0,t.mergeProps)({key:(0,t.unref)(T).name},(0,t.unref)(T)?.data?.props),{locateButton:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(Ko),{class:`ai-locate-button`,size:`small`,text:``,theme:`primary`,onClick:r[0]||=e=>ye((0,t.unref)(T)?.data?.messageUid)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(wl)(`在对话中定位`)),1)]),_:1})]),_:1},16))])):(0,t.createCommentVNode)(`v-if`,!0)],512)):(0,t.createCommentVNode)(`v-if`,!0)]),_:1})]),main:(0,t.withCtx)(()=>[e.messages?.length?(0,t.renderSlot)(n.$slots,`default`,(0,t.normalizeProps)((0,t.mergeProps)({key:0},{messages:e.messages,messageStatus:e.messageStatus,messageGroups:(0,t.unref)(V),selectedUserMessages:P.value,messageToolsStatus:e.messageToolsStatus,isShareMode:(0,t.unref)(re),commonTippyOptions:S.value,handleAgentAction:we,onAgentFeedback:e.onAgentFeedback,onInterruptResume:e.onInterruptResume,onUserAction:e.onUserAction,onUserInputConfirm:e.onUserInputConfirm,onUserShortcutConfirm:e.onUserShortcutConfirm})),()=>[e.messages?.length?((0,t.openBlock)(),(0,t.createBlock)(qUt,{key:0,"selected-user-messages":P.value,"onUpdate:selectedUserMessages":r[1]||=e=>P.value=e,"enable-selection":(0,t.unref)(re),"message-groups":(0,t.unref)(V),"message-status":fe.value,"message-tools":e.messageTools,"message-tools-status":e.messageToolsStatus,"message-tools-tippy-options":S.value,messages:e.messages,"on-agent-action":we,"on-agent-feedback":e.onAgentFeedback,"on-interrupt-resume":e.onInterruptResume,"on-user-action":e.onUserAction,"on-user-input-confirm":e.onUserInputConfirm,"on-user-shortcut-confirm":e.onUserShortcutConfirm,"render-mode":o.value,"update-tools":e.updateTools,"user-message-tools":e.userMessageTools,onStopStreaming:r[2]||=e=>y(`stopStreaming`)},{group:(0,t.withCtx)(({group:e})=>[(0,t.renderSlot)(n.$slots,`group`,(0,t.normalizeProps)((0,t.guardReactiveProps)({group:e})))]),default:(0,t.withCtx)(({message:e,messageToolsStatus:r,onInterruptResume:i})=>[(0,t.renderSlot)(n.$slots,`message`,(0,t.normalizeProps)((0,t.guardReactiveProps)({message:e,messageToolsStatus:r,onInterruptResume:i})))]),_:3},8,[`selected-user-messages`,`enable-selection`,`message-groups`,`message-status`,`message-tools`,`message-tools-status`,`message-tools-tippy-options`,`messages`,`on-agent-feedback`,`on-interrupt-resume`,`on-user-action`,`on-user-input-confirm`,`on-user-shortcut-confirm`,`render-mode`,`update-tools`,`user-message-tools`])):(0,t.createCommentVNode)(`v-if`,!0)]):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pWt,[(0,t.renderSlot)(n.$slots,`welcome`,(0,t.normalizeProps)((0,t.guardReactiveProps)({openingRemark:e.openingRemark,welcomeTitle:e.welcomeTitle})),()=>[(0,t.createVNode)((0,t.unref)(k_e)),(0,t.createElementVNode)(`h2`,mWt,(0,t.toDisplayString)(e.welcomeTitle??(0,t.unref)(wl)(`你好,我是小鲸`)),1),e.openingRemark?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hWt,[(0,t.createVNode)(J7,{content:e.openingRemark},null,8,[`content`])])):(0,t.createCommentVNode)(`v-if`,!0)])])),o.value===(0,t.unref)(Ml).Share?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.unref)(re)?((0,t.openBlock)(),(0,t.createBlock)(lWt,{key:0,"is-all-selected":(0,t.unref)(ie),loading:!1,"selected-count":P.value.length,onCancel:Ee,onConfirm:Te,onToggleAll:(0,t.unref)(ae)},null,8,[`is-all-selected`,`selected-count`,`onToggleAll`])):g.value?.components?.length?((0,t.openBlock)(),(0,t.createBlock)(hSe,(0,t.mergeProps)({key:1},g.value,{class:{"is-welcome-overlay":!e.messages?.length},onClose:pe,onSubmit:me}),null,16,[`class`])):((0,t.openBlock)(),(0,t.createBlock)(Czt,{key:2,ref_key:`chatInputRef`,ref:h,cite:_.value,"onUpdate:cite":r[3]||=e=>_.value=e,"selected-model":v.value,"onUpdate:selectedModel":r[4]||=e=>v.value=e,"menu-sources":m.value,"message-status":fe.value,"model-value":e.modelValue,models:e.models,"on-send-message":ve,"on-stop-sending":e.onStopSending,"on-upload":e.onUpload,placeholder:e.placeholder,"send-disabled-tip":(0,t.unref)(se),"shortcut-id":g.value?.id,shortcuts:e.shortcuts,"support-upload":e.supportUpload,"tippy-options":S.value,onDeleteFile:r[5]||=e=>y(`deleteFile`,e),onDeleteShortcut:he,onModelChange:r[6]||=e=>y(`modelChange`,e),onSelectShortcut:ge,"onUpdate:modelValue":_e},{interrupt:(0,t.withCtx)(()=>[(0,t.unref)(ce)?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(eVt),{key:0,interrupt:(0,t.unref)(ce),"on-resume":e.onInterruptResume},{question:(0,t.withCtx)(({question:e,qIndex:r,answer:i,setAnswer:a,confirm:o})=>[(0,t.renderSlot)(n.$slots,`interruptQuestion`,(0,t.normalizeProps)((0,t.guardReactiveProps)({question:e,qIndex:r,answer:i,setAnswer:a,confirm:o})))]),_:3},8,[`interrupt`,`on-resume`])):(0,t.createCommentVNode)(`v-if`,!0),(0,t.unref)(se)?((0,t.openBlock)(),(0,t.createBlock)(Ezt,{key:1,content:(0,t.unref)(se)},null,8,[`content`])):(0,t.createCommentVNode)(`v-if`,!0)]),_:3},8,[`cite`,`selected-model`,`menu-sources`,`message-status`,`model-value`,`models`,`on-stop-sending`,`on-upload`,`placeholder`,`send-disabled-tip`,`shortcut-id`,`shortcuts`,`support-upload`,`tippy-options`]))],64))]),_:3},16,[`class`]))],12,uWt))}}),_Wt=`data:image/png;base64,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`,vWt={class:`left-section`},yWt={class:`logo`},bWt=[`src`],xWt={key:0,class:`rename-tooltip`},SWt={class:`rename-content`},CWt={key:0,class:`tippy-dropdown-menu`},wWt={key:1,class:`bkai-icon bkai-auto-refresh-line`},TWt={class:`right-section`},EWt={key:4,"aria-hidden":`true`,class:`header-toolbar-divider`},DWt=w((0,t.defineComponent)({__name:`index`,props:{agentName:{default:``},asideCollapsed:{type:Boolean,default:!0},autoGenerateLoading:{type:Boolean},draggable:{type:Boolean,default:!0},enableChatSession:{type:Boolean,default:!0},hasPermission:{type:Boolean,default:!0},hasSessionContents:{type:Boolean},isCompressionHeight:{type:Boolean,default:!1},renderMode:{default:Ml.Chat},selectedLlmCode:{default:void 0},sessionBusinessManager:{default:void 0},sessionName:{default:``},showAsideToggle:{type:Boolean,default:!0},showCompressionIcon:{type:Boolean,default:!0},showHistoryIcon:{type:Boolean,default:!0},showMoreIcon:{type:Boolean,default:!0},showNewChatIcon:{type:Boolean,default:!0},title:{default:``},chatGroup:{default:()=>({enabled:!1,staff:[],username:``})},dropdownMenuConfig:{default:()=>({showRename:!0,showAutoGenerate:!0,showShare:!1})}},emits:[`auto-generate-name`,`close`,`help-click`,`history-click`,`history-session-delete`,`history-session-rename`,`history-session-switch`,`new-chat`,`new-chat-created`,`rename`,`share`,`toggle-aside`,`toggle-compression`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.defineComponent)({name:`AsideToggleIcon`,setup(){return()=>(0,t.cloneVNode)(Oye)}}),s=Che,l=(0,t.ref)(null),u=(0,t.ref)(null),d=(0,t.useTemplateRef)(`moreMenuTippyRef`),f=(0,t.ref)(!1),p=(0,t.ref)(``),m=(0,t.ref)(null),h=(0,t.ref)(!1),g=()=>document.querySelector(`.ai-blueking-panel`)||document.body,_=null,v=()=>{!u.value||!i.sessionBusinessManager||(_=l_e({triggerRef:u,sessionBusinessManager:i.sessionBusinessManager,onSessionSwitch:e=>a(`history-session-switch`,e),onSessionDelete:e=>a(`history-session-delete`,e),onSessionRename:(e,t)=>a(`history-session-rename`,e,t)}))},y=(0,t.computed)(()=>i.hasPermission?i.enableChatSession?i.title||`${i.agentName||``}-${i.sessionName||``}`:i.agentName:xl(`无智能体使用权限`)),b=(0,t.computed)(()=>i.isCompressionHeight?`bkai-morenchicun`:`bkai-yasuo`),x=(0,t.computed)(()=>i.isCompressionHeight?xl(`恢复默认尺寸`):xl(`缩小高度`)),S=(0,t.computed)(()=>i.hasPermission),C=e=>S.value?e:xl(`暂无使用权限`),w=()=>({cursor:S.value?`pointer`:`not-allowed`}),T=(0,t.ref)(!1),E=async()=>{if(!T.value){T.value=!0;try{if(i.sessionBusinessManager)try{let e=await i.sessionBusinessManager.createNewSession({model:i.selectedLlmCode});e&&a(`new-chat-created`,{sessionCode:e.sessionCode,sessionName:e.sessionName,createdAt:e.createdAt})}catch(e){console.error(`Failed to create new session:`,e),Cc({theme:`error`,message:xl(`创建会话失败`)})}a(`new-chat`)}finally{T.value=!1}}},D=e=>{e.stopPropagation(),i.sessionBusinessManager?(_||v(),_&&_.handleTriggerClick(e)):a(`history-click`,e)},O=()=>{a(`help-click`)},k=e=>{e.stopPropagation(),_&&_.isVisible()&&_.hide(),d.value&&(h.value?d.value.hide():d.value.show())},A=()=>{d.value?.hide(),N()},j=()=>{!i.hasSessionContents||i.autoGenerateLoading||a(`auto-generate-name`)},M=()=>{i.hasSessionContents&&(d.value?.hide(),a(`share`))},N=()=>{document.removeEventListener(`click`,L),p.value=i.sessionName||``,f.value=!0,setTimeout(()=>{document.addEventListener(`click`,L)},100),setTimeout(()=>{if(m.value)try{let e=m.value;e&&typeof e.focus==`function`&&e.focus();let t=e.$el?.querySelector(`input`);t&&typeof t.select==`function`&&t.select()}catch(e){console.warn(`Failed to focus rename input:`,e)}},100)},P=()=>{let e=p.value.trim();if(!e){F();return}a(`rename`,e),f.value=!1,p.value=``},F=()=>{f.value=!1,p.value=``},I=(e,t)=>{p.value=e,t.key===`Enter`?P():t.key===`Escape`&&F()},L=e=>{if(!f.value)return;let t=e.target,n=document.querySelector(`.rename-tooltip`);n&&!n.contains(t)&&F()};return(0,t.watch)(()=>i.autoGenerateLoading,(e,t)=>{t&&!e&&h.value&&d.value?.hide()}),(0,t.onMounted)(()=>{i.sessionBusinessManager&&v(),document.addEventListener(`click`,L)}),(0,t.onBeforeUnmount)(()=>{_&&=(_.destroy(),null),document.removeEventListener(`click`,L)}),n({headerRef:l,historyIconRef:u}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`headerRef`,ref:l,class:(0,t.normalizeClass)([`ai-header drag-handle`,{draggable:i.draggable,"is-aside-expanded":!i.asideCollapsed}])},[(0,t.createElementVNode)(`div`,vWt,[(0,t.createElementVNode)(`div`,yWt,[(0,t.createElementVNode)(`img`,{alt:`logo`,src:(0,t.unref)(_Wt)},null,8,bWt)]),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`title`,{"title-with-tooltip":f.value}])},[(0,t.createTextVNode)((0,t.toDisplayString)(y.value)+` `,1),(0,t.createCommentVNode)(` 重命名 tooltip 直接绑定在 title 上 `),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xWt,[(0,t.createElementVNode)(`div`,SWt,[(0,t.createVNode)((0,t.unref)(is),{ref_key:`renameInputRef`,ref:m,modelValue:p.value,"onUpdate:modelValue":r[0]||=e=>p.value=e,class:`rename-input`,placeholder:(0,t.unref)(xl)(`请输入新的会话名称`),onKeyup:I},null,8,[`modelValue`,`placeholder`]),(0,t.createElementVNode)(`div`,{class:`rename-buttons`},[(0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-check-1 rename-btn confirm-btn`,onClick:P}),(0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-close rename-btn cancel-btn`,onClick:F})])])])):(0,t.createCommentVNode)(`v-if`,!0)],2),(0,t.createCommentVNode)(` 更多图标下拉菜单 - 使用 vue-tippy `),i.showMoreIcon&&S.value?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Wu),{key:0,ref_key:`moreMenuTippyRef`,ref:d,"append-to":g,arrow:!1,interactive:``,offset:[0,4],placement:`bottom-start`,theme:`ai-blueking-light more-menu-light light`,trigger:`manual`,onHidden:r[1]||=e=>h.value=!1,onShown:r[2]||=e=>h.value=!0},{content:(0,t.withCtx)(()=>[h.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,CWt,[i.dropdownMenuConfig?.showRename?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`tippy-menu-item`,onClick:A},[r[8]||=(0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-bianji`},null,-1),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(xl)(`重命名`)),1)])):(0,t.createCommentVNode)(`v-if`,!0),i.dropdownMenuConfig?.showAutoGenerate?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)([`tippy-menu-item`,{disabled:!i.hasSessionContents||i.autoGenerateLoading}]),onClick:j},[i.autoGenerateLoading?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Ro),{key:0,mode:`spin`,size:`mini`,theme:`primary`})):((0,t.openBlock)(),(0,t.createElementBlock)(`i`,wWt)),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(xl)(`自动生成命名`)),1)],2)),[[(0,t.unref)(Ku),{content:i.hasSessionContents?``:(0,t.unref)(xl)(`请先发起会话`),theme:`ai-blueking-tooltip`,arrow:!0,delay:[300,0],appendTo:g}]]):(0,t.createCommentVNode)(`v-if`,!0),i.dropdownMenuConfig?.showShare&&i.renderMode!==(0,t.unref)(Ml).Test?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,class:(0,t.normalizeClass)([`tippy-menu-item`,{disabled:!i.hasSessionContents}]),onClick:M},[r[9]||=(0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-fenxiang`},null,-1),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(xl)(`分享会话`)),1)],2)),[[(0,t.unref)(Ku),{content:i.hasSessionContents?``:(0,t.unref)(xl)(`请先发起会话`),theme:`ai-blueking-tooltip`,arrow:!0,delay:[300,0],appendTo:g}]]):(0,t.createCommentVNode)(`v-if`,!0)])):(0,t.createCommentVNode)(`v-if`,!0)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,{class:`bkai-icon bkai-more`,onClick:k})]),_:1},512)):(0,t.createCommentVNode)(`v-if`,!0)]),(0,t.renderSlot)(n.$slots,`headerLeft`,{},void 0,!0),(0,t.createElementVNode)(`div`,TWt,[(0,t.createCommentVNode)(` 新增会话按钮 `),i.showNewChatIcon&&e.enableChatSession!==!1?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:0,class:(0,t.normalizeClass)([`bkai-icon`,`bkai-xinzengliaotian`,{disabled:!S.value||T.value||!e.hasSessionContents}]),style:(0,t.normalizeStyle)(w()),onClick:r[3]||=t=>S.value&&!T.value&&e.hasSessionContents?E():void 0},null,6)),[[(0,t.unref)(s),{content:T.value?(0,t.unref)(xl)(`正在创建会话...`):e.hasSessionContents?C((0,t.unref)(xl)(`新增会话`)):(0,t.unref)(xl)(`当前已是新会话`),boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createCommentVNode)(` 历史会话按钮 `),i.showHistoryIcon&&e.enableChatSession!==!1?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:1,ref_key:`historyIconRef`,ref:u,class:(0,t.normalizeClass)([`bkai-icon`,`bkai-history`,{disabled:!S.value}]),style:(0,t.normalizeStyle)(w()),onClick:r[4]||=e=>S.value?D(e):void 0},null,6)),[[(0,t.unref)(s),{content:C((0,t.unref)(xl)(`历史会话`)),boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0),e.chatGroup?.enabled?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:2,class:`bkai-icon bkai-zhushou`,onClick:O},null,512)),[[(0,t.unref)(s),{content:(0,t.unref)(xl)(`转人工`),boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0),i.showCompressionIcon?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:3,class:(0,t.normalizeClass)([`bkai-icon`,b.value]),onClick:r[5]||=e=>a(`toggle-compression`)},null,2)),[[(0,t.unref)(s),{content:x.value,boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0),(0,t.withDirectives)((0,t.createElementVNode)(`i`,{class:`bkai-icon bkai-close-line-2`,onClick:r[6]||=e=>a(`close`)},null,512),[[(0,t.unref)(s),{content:(0,t.unref)(xl)(`关闭`),boundary:`parent`}]]),(0,t.createCommentVNode)(` 设计稿:关闭与侧栏展开之间有竖线分隔 `),i.showAsideToggle?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,EWt)):(0,t.createCommentVNode)(`v-if`,!0),i.showAsideToggle?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:5,class:`bkai-icon aside-toggle`,onClick:r[7]||=(0,t.withModifiers)(e=>a(`toggle-aside`),[`stop`])},[(0,t.createVNode)((0,t.unref)(o))])),[[(0,t.unref)(s),{content:i.asideCollapsed?(0,t.unref)(xl)(`展开侧栏`):(0,t.unref)(xl)(`收起侧栏`),boundary:`parent`}]]):(0,t.createCommentVNode)(`v-if`,!0)])],2))}}),[[`__scopeId`,`data-v-03aace06`]]);function OWt(e){let t=bl(e);fetch(t,{method:`GET`,credentials:`include`}).catch(()=>{})}async function kWt(e,t={}){let{enableModelSelect:n=!0}=t,r=[e.agent.getAgentInfo(),e.session.getSessions()];n&&typeof e.agent.getLlms==`function`&&r.push(e.agent.getLlms().catch(e=>{console.error(`[runAgentBootstrap] Failed to load models:`,e)})),await Promise.all(r);let i=e.agent.info.value?.saasUrl;i&&OWt(i)}var AWt=class extends Error{constructor(e=`当前没有可用模型,无法创建会话`){super(e),this.name=`ModelUnavailableError`}},B9=class{_isLoading;_models;_selectedLlmCode;_selectedModelName;_selectedModelSupportsVision;agentModule;config;loadPromise=null;pendingPersist=new Map;sessionModule;defaultModelCode(){let e=this._models.value;return(e.find(e=>e.property?.default)??e[0])?.llm_code}hasValidSelection(){let e=this._selectedLlmCode.value;return!!e&&this._models.value.some(t=>t.llm_code===e)}isSessionPending(){return this.sessionModule!=null&&this.sessionModule.current?.value==null}constructor(e,n=null,r={}){this.agentModule=e,this.sessionModule=n,this.config=r,this._models=(0,t.ref)([]),this._selectedLlmCode=(0,t.ref)(void 0),this._isLoading=(0,t.ref)(!1),this._selectedModelName=(0,t.computed)(()=>{let e=this._selectedLlmCode.value;return e?this._models.value.find(t=>t.llm_code===e)?.llm_name??``:``}),this._selectedModelSupportsVision=(0,t.computed)(()=>{let e=this._selectedLlmCode.value;return e?!!this._models.value.find(t=>t.llm_code===e)?.property?.support_vision:!1}),this.enabled&&this.sessionModule&&(0,t.watch)(()=>this.sessionModule.current?.value?.sessionCode,()=>{this.applySessionModel(this.sessionModule.current?.value?.model)})}get enabled(){return this.config.enabled!==!1}get isLoading(){return this._isLoading}get models(){return this._models}get selectedLlmCode(){return this._selectedLlmCode}get selectedModelName(){return this._selectedModelName}get selectedModelSupportsVision(){return this._selectedModelSupportsVision}applySessionModel(e){let t=this._models.value;if(t.length===0){this._selectedLlmCode.value=void 0;return}if(!this.isSessionPending()){if(e&&t.some(t=>t.llm_code===e)){this._selectedLlmCode.value=e;return}this.hasValidSelection()||(this._selectedLlmCode.value=this.defaultModelCode())}}ensureLoaded(){return!this.enabled||this._models.value.length>0?Promise.resolve():(this.loadPromise||=this.loadModels().finally(()=>{this.loadPromise=null}),this.loadPromise)}async loadModels(e={}){this._isLoading.value=!0;try{let t=this.agentModule?.models?.value;if(!e.force&&Array.isArray(t)&&t.length>0)this._models.value=[...t];else if(typeof this.agentModule?.getLlms==`function`){let e=await this.agentModule.getLlms();this._models.value=Array.isArray(e)?e:[]}else this._models.value=[];this.applySessionModel(this.sessionModule?.current?.value?.model)}catch(e){console.error(`[ModelSelectionManager] Failed to load models:`,e),this._models.value=[],this._selectedLlmCode.value=void 0}finally{this._isLoading.value=!1}}async persistSessionModel(e,t){let n=t??this.sessionModule?.current?.value;if(!n?.sessionCode||!e||n.model===e)return;let{sessionCode:r}=n,i=this.pendingPersist.get(r);if(i?.llmCode===e)return i.promise;let a=Promise.resolve(this.sessionModule.updateSession({...n,model:e})).then(()=>void 0).finally(()=>{this.pendingPersist.get(r)?.promise===a&&this.pendingPersist.delete(r)});return this.pendingPersist.set(r,{llmCode:e,promise:a}),a}resolveModelForSession(e){if(!this.enabled)return e;let t=this._models.value;if(t.length===0)throw new AWt;return e&&t.some(t=>t.llm_code===e)?e:this.hasValidSelection()?this._selectedLlmCode.value:this.defaultModelCode()}setModels(e){this._models.value=e,this.applySessionModel(this.sessionModule?.current?.value?.model)}setSelectedModel(e){this._selectedLlmCode.value=e?.llm_code}setSelectedModelByName(e){if(!e){this._selectedLlmCode.value=void 0;return}this._selectedLlmCode.value=this._models.value.find(t=>t.llm_name===e)?.llm_code}},jWt=class{_isGenerating;_isStopLoading;agentModule;config;eventEmitter;messageModule;modelSelection;sessionModule;persistSelection(e){this.modelSelection.persistSessionModel(e).catch(e=>{console.error(`[ChatBusinessManager] Failed to persist session model:`,e),this.emit(`chat-error`,{action:`persistSessionModel`,error:e})})}resolveChatModel(e){return(e??this.modelSelection.selectedLlmCode.value)||void 0}autoRenameSessionIfNeeded(e){let t=this.sessionModule;if(!t||this.messageModule.list.value.length!==1)return;let n=t.renameSession(e);n&&n.then(n=>{let r=t.list.value.find(t=>t.sessionCode===e)??(t.current?.value?.sessionCode===e?t.current.value:null),i=n?.sessionName??r?.sessionName;i&&this.config.onSessionRenamed?.(i,e)}).catch(e=>{console.error(`[ChatBusinessManager] Auto rename session failed:`,e)})}emit(e,t){this.eventEmitter?.emit(e,t)}constructor(e,n,r=null,i=null,a={},o){this.agentModule=e,this.messageModule=n,this.sessionModule=r,this.eventEmitter=i,this.config=a,this.modelSelection=o??new B9(e,r),this._isGenerating=(0,t.ref)(!1),this._isStopLoading=(0,t.ref)(!1)}get isGenerating(){return this._isGenerating}get isStopLoading(){return this._isStopLoading}get isMessagesLoading(){return this.messageModule.isListLoading}get models(){return this.modelSelection.models}get isModelsLoading(){return this.modelSelection.isLoading}get selectedLlmCode(){return this.modelSelection.selectedLlmCode}get selectedModelName(){return this.modelSelection.selectedModelName}get selectedModelSupportsVision(){return this.modelSelection.selectedModelSupportsVision}get messages(){return this.messageModule.list}async ensureModelsLoaded(){return this.modelSelection.ensureLoaded()}async loadModels(e={}){return this.modelSelection.loadModels(e)}setModels(e){this.modelSelection.setModels(e)}setSelectedModelByName(e){this.modelSelection.setSelectedModelByName(e),this.persistSelection(this.modelSelection.selectedLlmCode.value)}setSelectedModel(e){this.modelSelection.setSelectedModel(e),this.persistSelection(this.modelSelection.selectedLlmCode.value)}get openingRemark(){return this.config.openingRemark||``}get predefinedQuestions(){return this.config.predefinedQuestions||[]}async batchDeleteMessages(e){try{await this.messageModule.deleteMessages(e);let t=e.map(e=>e.id).filter(Boolean);this.emit(`messages-batch-deleted`,{messageIds:t})}catch(e){throw console.error(`Failed to batch delete messages:`,e),this.emit(`chat-error`,{action:`batch-delete-messages`,error:e}),e}}async deleteMessage(e){try{await this.messageModule.deleteMessages([e]),this.emit(`message-deleted`,{messageId:e.id})}catch(e){throw console.error(`Failed to delete message:`,e),this.emit(`chat-error`,{action:`delete-message`,error:e}),e}}handleStreamEnd(){this._isGenerating.value=!1,this.emit(`receive-end`,{})}handleStreamError(e){this._isGenerating.value=!1,this.emit(`receive-error`,{error:e})}handleStreamStart(){this._isGenerating.value=!0,this.emit(`receive-start`,{})}async regenerateFromAIMessages(e,t){try{if(!e||e.length===0)throw Error(`No AI messages provided`);let n=this.messages.value,r=yl(n,e[0]);if(!r)throw Error(`No user message found before AI messages`);let i=r.id;if(i===void 0)throw Error(`User message has no id`);await this.regenerateMessage(String(i),t)}catch(e){throw console.error(`Failed to regenerate from AI messages:`,e),this.emit(`chat-error`,{action:`regenerate`,error:e}),e}}async regenerateMessage(e,t){try{let n=this.messages.value,r=n.findIndex(t=>String(t.id)===e);if(r===-1)throw Error(`Message not found: ${e}`);let i=n[r];if(i.role!==$c.User)throw Error(`Can only regenerate from user messages`);let a=n.slice(r),o=typeof i.content==`string`?i.content:JSON.stringify(i.content),s=i.property;this._isGenerating.value=!0;let l=this.messageModule.deleteMessages(a);this.agentModule.chat(o,t,void 0,void 0,s,this.resolveChatModel()),this.emit(`chat-regenerate`,{messageId:e}),l.catch(e=>{console.error(`[regenerateMessage] Delete API error:`,e)})}catch(e){throw console.error(`Failed to regenerate message:`,e),this._isGenerating.value=!1,this.emit(`chat-error`,{action:`regenerate`,error:e}),e}}async resendMessageWithProperty(e,t,n,r){try{let i=this.messages.value,a=i.findIndex(t=>String(t.id)===e);if(a===-1)throw Error(`Message not found: ${e}`);if(i[a].role!==$c.User)throw Error(`Can only resend user messages`);let o=i.slice(a);this._isGenerating.value=!0;let s=this.messageModule.deleteMessages(o);this.agentModule.chat(n,t,void 0,void 0,r,this.resolveChatModel()),this.emit(`chat-resend`,{messageId:e}),s.catch(e=>{console.error(`[resendMessageWithProperty] Delete API error:`,e)})}catch(e){throw console.error(`Failed to resend message with property:`,e),this._isGenerating.value=!1,this.emit(`chat-error`,{action:`resend`,error:e}),e}}async retryMessage(e){try{console.warn(`retryMessage not implemented yet`),this.emit(`chat-retry`,{messageId:e})}catch(e){throw console.error(`Failed to retry message:`,e),this.emit(`chat-error`,{action:`retry`,error:e}),e}}async sendMessage(e,t,n={}){try{if(!t)throw Error(`No active session. Please create or select a session first.`);this._isGenerating.value=!0,this.emit(`send-message`,{content:e}),await this.agentModule.chat(e,t,void 0,void 0,n.property,this.resolveChatModel(n.model)),this.autoRenameSessionIfNeeded(t)}catch(e){throw console.error(`Failed to send message:`,e),this._isGenerating.value=!1,this.emit(`chat-error`,{action:`send`,error:e}),e}}async stopGeneration(){let e=this.sessionModule?.current?.value?.sessionCode??``;this._isStopLoading.value=!0;try{await this.agentModule.stopChat(e),this._isGenerating.value=!1,this.emit(`stop`,{})}catch(e){throw console.error(`Failed to stop generation:`,e),this.emit(`chat-error`,{action:`stop`,error:e}),e}finally{this._isStopLoading.value=!1}}},MWt=class{agentModule;config;eventEmitter;messageModule;modelSelection;sessionModule;emit(e,t){this.eventEmitter?.emit(e,t)}async resolveSessionModel(e){return await this.modelSelection.ensureLoaded(),this.modelSelection.resolveModelForSession(e)}constructor(e,t=null,n=null,r={},i=null,a){this.sessionModule=e,this.agentModule=t,this.eventEmitter=n,this.config=r,this.messageModule=i,this.modelSelection=a??new B9(t,e,{enabled:!1})}get currentSession(){return this.sessionModule.current}get isCreateLoading(){return this.sessionModule.isCreateLoading}get isCurrentLoading(){return this.sessionModule.isCurrentLoading}get isDeleteLoading(){return this.sessionModule.isDeleteLoading}get isListLoading(){return this.sessionModule.isListLoading}get isLoadingMore(){return this.sessionModule.isLoadingMore}get isUpdateLoading(){return this.sessionModule.isUpdateLoading}get hasMoreSessions(){return this.sessionModule.hasMore}get sessionCount(){return this.sessionModule.count}get sessionList(){return this.sessionModule.list}async createNewSession(e){let t=this.currentSession.value;if(t?.sessionCode&&this.isCurrentSessionEmpty(t))return null;await this.loadSessions();let n=this.sessionList.value;if(n.length>0){let r=n[0];if(r.sessionCode===t?.sessionCode?this.isCurrentSessionEmpty(r):this.isSessionEmpty(r))return await this.modelSelection.persistSessionModel(await this.resolveSessionModel(e?.model),r),await this.switchSession(r.sessionCode,{loadMessages:!1}),null}return await this.createSession({name:`新会话`,sessionCode:this.generateSessionCode(),model:e?.model}),this.sessionModule.current.value}generateSessionCode(){return`new_session_${Date.now()}`}async createSession(e={}){if(this.config.enableChatSession===!1)throw Error(`Chat session is disabled`);try{let t=await this.resolveSessionModel(e.model),n={sessionName:e.name||`新会话`,sessionCode:e.sessionCode||`session_${Date.now()}`,isTemporary:e.isTemporary||!1,...t?{model:t}:{},sessionProperty:{labels:e.labels}};await this.sessionModule.createSession(n);let r=this.agentModule?.info?.value;r&&this.agentModule?.handleRole(r,n.sessionCode),this.emit(`session-created`,{session:this.sessionModule.current.value})}catch(e){throw console.error(`Failed to create session:`,e),this.emit(`session-error`,{action:`create`,error:e}),e}}async deleteSession(e){try{await this.sessionModule.deleteSession(e),this.emit(`session-deleted`,{sessionCode:e})}catch(e){throw console.error(`Failed to delete session:`,e),this.emit(`session-error`,{action:`delete`,error:e}),e}}async getSession(e){try{await this.sessionModule.getSession(e)}catch(e){throw console.error(`Failed to get session:`,e),this.emit(`session-error`,{action:`get`,error:e}),e}}isSessionEmpty(e){let t=this.findSession(e.sessionCode)?.sessionContentCount??e.sessionContentCount;return t==null?!1:t===0}isCurrentSessionEmpty(e){return this.messageModule&&Lge(this.messageModule.list.value)?!1:this.isSessionEmpty(e)}findSession(e){return this.sessionList.value.find(t=>t.sessionCode===e)}async loadRecentSession(e){try{if(this.currentSession.value?.sessionCode)return;e?.skipLoadSessions||await this.loadSessions();let t=this.sessionList.value;if(this.config.initialSessionCode){let e=this.findSession(this.config.initialSessionCode);await this.switchSession(this.config.initialSessionCode,{loadMessages:e?!this.isSessionEmpty(e):!0});return}if(t.length>0){let n=t[0],r=(n.sessionContentCount??0)>0,i=e?.alwaysCreateNewSession??this.config.alwaysCreateNewSession??!1;r||i?await this.createSession({name:`新会话`,sessionCode:this.generateSessionCode()}):await this.switchSession(n.sessionCode,{loadMessages:!1});return}await this.createSession({name:`新会话`,sessionCode:this.generateSessionCode()})}catch(e){throw console.error(`Failed to load recent session:`,e),e}}async loadSessions(){try{await this.sessionModule.getSessions(),this.emit(`sessions-loaded`,{sessions:this.sessionList.value})}catch(e){throw console.error(`Failed to load sessions:`,e),this.emit(`session-error`,{action:`load`,error:e}),e}}async loadMoreSessions(){try{await this.sessionModule.loadMoreSessions()}catch(e){throw console.error(`Failed to load more sessions:`,e),this.emit(`session-error`,{action:`loadMore`,error:e}),e}}async switchSession(e,t){try{await this.sessionModule.chooseSession(e,t),this.emit(`session-switched`,{session:this.sessionModule.current.value})}catch(e){throw console.error(`Failed to switch session:`,e),this.emit(`session-error`,{action:`switch`,error:e}),e}}async updateSessionName(e,t){try{let n=this.sessionList.value.find(t=>t.sessionCode===e);if(!n)throw Error(`Session not found: ${e}`);await this.sessionModule.updateSession({...n,sessionName:t}),this.emit(`session-updated`,{session:this.sessionModule.current.value})}catch(e){throw console.error(`Failed to update session name:`,e),this.emit(`session-error`,{action:`update`,error:e}),e}}},NWt=class{messageModule;sessionModule;constructor(e,t){this.messageModule=e,this.sessionModule=t}async shareMessages(e){if(e.length===0)throw Error(`No messages to share`);let t=this.sessionModule.current?.value?.sessionCode;if(!t)throw Error(`No active session`);let n=await this.messageModule.shareMessages(t,e);if(!n)throw Error(`Share failed: no result returned`);return{shareUrl:`${n.share_page}share-page/${n.share_token}`,userMessageIds:e.map(e=>String(e.id))}}},PWt=class{_agentShortcuts;_effectiveShortcuts;_propsShortcuts;eventEmitter;emit(e,t){this.eventEmitter?.emit(e,t)}constructor(e=null,n=[]){this._propsShortcuts=(0,t.ref)(n),this._agentShortcuts=(0,t.ref)([]),this.eventEmitter=e,this._effectiveShortcuts=(0,t.computed)(()=>this._propsShortcuts.value.length>0?this._propsShortcuts.value:this._agentShortcuts.value.length>0?this._agentShortcuts.value:[])}get count(){return this._effectiveShortcuts.value.length}get effectiveShortcuts(){return this._effectiveShortcuts}get hasShortcuts(){return this._effectiveShortcuts.value.length>0}get shortcuts(){return this._effectiveShortcuts}addShortcut(e){this._propsShortcuts.value.push(e)}clear(){this._propsShortcuts.value=[],this._agentShortcuts.value=[]}filterByTextLength(e,t){return!e||e.length>t?[]:this._effectiveShortcuts.value}filterShortcuts(e,t){return t?this._effectiveShortcuts.value.filter(n=>t(n,e)):this._effectiveShortcuts.value}getShortcutById(e){return this._effectiveShortcuts.value.find(t=>t.id===e)}handleShortcutClick(e,t,n=`main`){this.emit(`shortcut-click`,{shortcut:e,selectedText:t,source:n})}limitShortcuts(e){return this._effectiveShortcuts.value.slice(0,e)}removeShortcut(e){this._propsShortcuts.value=this._propsShortcuts.value.filter(t=>t.id!==e)}setAgentShortcuts(e){this._agentShortcuts.value=e}setShortcuts(e){this._propsShortcuts.value=e}},FWt=class{_isCompressed;_isDraggingOrResizing;_nimbusMinimized;_panelVisible;_positionAndSize;cleanupFunctions;config;containerRef=null;debugMode;listeners;onceListeners;constructor(e={}){this.config=e,this.listeners=new Map,this.onceListeners=new Map,this.debugMode=e.debug??!1,this.cleanupFunctions=[],this._panelVisible=(0,t.ref)(e.initialPanelVisible??!1),this._nimbusMinimized=(0,t.ref)(e.initialNimbusMinimized??!1),this._isDraggingOrResizing=(0,t.ref)(!1),this._isCompressed=(0,t.ref)(!1),this._positionAndSize=(0,t.ref)({x:0,y:0,width:400,height:window.innerHeight})}get container(){return{updatePosition:this.updatePosition.bind(this),updateSize:this.updateSize.bind(this),updatePositionAndSize:this.updatePositionAndSize.bind(this),toggleCompression:this.toggleCompression.bind(this),expandForSidePanel:this.expandForSidePanel.bind(this),collapseSidePanel:this.collapseSidePanel.bind(this),abortSidePanelSequence:this.abortSidePanelSequence.bind(this),positionAndSize:(0,t.computed)(()=>this.containerRef?.positionAndSize?.value??this._positionAndSize.value),isCompressed:(0,t.computed)(()=>this._isCompressed.value),isSidePanelExpanded:(0,t.computed)(()=>this.containerRef?.isSidePanelExpanded?.value??!1)}}get isCompressed(){return this._isCompressed}get isDraggingOrResizing(){return this._isDraggingOrResizing}get nimbus(){return{minimize:this.minimizeNimbus.bind(this),restore:this.restoreNimbus.bind(this),toggle:this.toggleNimbus.bind(this),isMinimized:(0,t.computed)(()=>this._nimbusMinimized.value)}}get nimbusMinimized(){return this._nimbusMinimized}get panel(){return{show:this.showPanel.bind(this),hide:this.hidePanel.bind(this),toggle:this.togglePanel.bind(this),isVisible:(0,t.computed)(()=>this._panelVisible.value)}}get panelVisible(){return this._panelVisible}get state(){return{panelVisible:this._panelVisible,nimbusMinimized:this._nimbusMinimized,isDraggingOrResizing:this._isDraggingOrResizing,positionAndSize:this._positionAndSize}}abortSidePanelSequence(){this.containerRef?.abortSidePanelSequence?.()}collapseSidePanel(e){return this.containerRef?.collapseSidePanel?this.containerRef.collapseSidePanel(e):(e?.onBeforeSizeChange?.(),Promise.resolve())}destroy(){this.listeners.clear(),this.onceListeners.clear(),this.cleanupFunctions.forEach(e=>e()),this.cleanupFunctions=[],this.debugMode&&console.debug(`[ComponentManager] Destroyed`)}emit(e,t){this.debugMode&&console.debug(`[ComponentManager] Emitting "${e}"`,t);let n=this.listeners.get(e);n&&n.forEach(n=>{try{n(t)}catch(t){console.error(`[ComponentManager] Error in listener for "${e}":`,t)}});let r=this.onceListeners.get(e);if(r&&r.size>0){let n=Array.from(r);this.onceListeners.delete(e),n.forEach(n=>{try{n(t)}catch(t){console.error(`[ComponentManager] Error in once listener for "${e}":`,t)}})}}emitInternal(e,t){this.emit(e,t)}expandForSidePanel(e,t){return this.containerRef?.expandForSidePanel?this.containerRef.expandForSidePanel(e,t):(t?.onBeforeSizeChange?.(),Promise.resolve())}getConfig(){return this.config}getRegisteredEvents(){let e=new Set;return this.listeners.forEach((t,n)=>e.add(n)),this.onceListeners.forEach((t,n)=>e.add(n)),Array.from(e)}handleDragging(e){this._isDraggingOrResizing.value=!0,this._positionAndSize.value=e,this.emit(`dragging`,e)}handleDragStop(e){this._isDraggingOrResizing.value=!1,this._positionAndSize.value=e,this.emit(`drag-stop`,e)}handleNimbusClick(){this.emit(`nimbus-click`,{}),this.showPanel()}handlePopupClick(){this.emit(`popup-click`,{}),this.showPanel()}handlePopupShortcutClick(e){this.emit(`popup-shortcut-click`,{shortcut:e}),this.emit(`shortcut-click`,{shortcut:e,source:`popup`})}handleResizeStop(e){this._isDraggingOrResizing.value=!1,this._positionAndSize.value=e,this.emit(`resize-stop`,e)}handleResizing(e){this._isDraggingOrResizing.value=!0,this._positionAndSize.value=e,this.emit(`resizing`,e)}handleShortcutClick(e,t){this.emit(`shortcut-click`,{shortcut:e,source:t})}hasListeners(e){return this.listenerCount(e)>0}hidePanel(){this._panelVisible.value=!1,this.emit(`panel-hide`,{})}listenerCount(e){return(this.listeners.get(e)?.size??0)+(this.onceListeners.get(e)?.size??0)}minimizeNimbus(){this._nimbusMinimized.value=!0,this.emit(`nimbus-minimize`,{})}off(e,t){t?(this.listeners.get(e)?.delete(t),this.onceListeners.get(e)?.delete(t),this.debugMode&&console.debug(`[ComponentManager] Unsubscribed from "${e}", remaining: ${this.listenerCount(e)}`)):(this.listeners.delete(e),this.onceListeners.delete(e),this.debugMode&&console.debug(`[ComponentManager] Removed all listeners for "${e}"`))}on(e,t){return this.listeners.has(e)||this.listeners.set(e,new Set),this.listeners.get(e).add(t),this.debugMode&&console.debug(`[ComponentManager] Subscribed to "${e}", total: ${this.listenerCount(e)}`),()=>{this.off(e,t)}}once(e,t){return this.onceListeners.has(e)||this.onceListeners.set(e,new Set),this.onceListeners.get(e).add(t),this.debugMode&&console.debug(`[ComponentManager] Subscribed once to "${e}"`),()=>{this.onceListeners.get(e)?.delete(t)}}restoreNimbus(){this._nimbusMinimized.value=!1,this.emit(`nimbus-restore`,{})}setCompressed(e){this._isCompressed.value=e}setContainerRef(e){this.containerRef=e,e?.isCompressed&&(this._isCompressed.value=e.isCompressed.value)}setDebugMode(e){this.debugMode=e}setDraggingOrResizing(e){this._isDraggingOrResizing.value=e}showPanel(e){this._panelVisible.value=!0,this.emit(`panel-show`,{sessionCode:e})}toggleCompression(){this.containerRef?this.containerRef.toggleCompression():this._isCompressed.value=!this._isCompressed.value}toggleNimbus(){this._nimbusMinimized.value?this.restoreNimbus():this.minimizeNimbus()}togglePanel(){this._panelVisible.value?this.hidePanel():this.showPanel()}updatePosition(e,t){this._positionAndSize.value={...this._positionAndSize.value,x:e,y:t}}updatePositionAndSize(e,t,n,r){this._positionAndSize.value={x:e,y:t,width:n,height:r}}updateSize(e,t){this._positionAndSize.value={...this._positionAndSize.value,width:e,height:t}}};function IWt(e){return new FWt(e)}var LWt={"panel-show":`show`,"panel-hide":`close`,"panel-toggle":null,"nimbus-click":null,"nimbus-minimize":null,"nimbus-restore":null,"popup-click":null,"popup-shortcut-click":null,dragging:`dragging`,resizing:`resizing`,"drag-stop":`drag-stop`,"resize-stop":`resize-stop`,"compression-toggle":null,"side-panel-expand":null,"side-panel-collapse":null,"send-message":`send-message`,"receive-start":`receive-start`,"receive-text":`receive-text`,"receive-end":`receive-end`,"receive-error":null,stop:`stop`,"chat-regenerate":null,"chat-retry":null,"message-deleted":null,"messages-batch-deleted":null,"session-created":null,"session-switched":null,"session-deleted":null,"session-updated":null,"sessions-loaded":null,"session-initialized":`session-initialized`,"session-error":null,"shortcut-click":`shortcut-click`,"chat-error":null,"sdk-error":`sdk-error`,"new-chat":`new-chat`,"new-chat-created":`new-chat-created`,"history-click":`history-click`,"auto-generate-name":`auto-generate-name`,"help-click":`help-click`,rename:`rename`,share:`share`,close:`close`,"toggle-compression":null,"transfer-messages":`transfer-messages`,"share-messages":`share-messages`,"agent-info-loaded":null,error:null};function RWt(e,t){switch(e){case`send-message`:return[t.content];case`rename`:return[t.newName,t.sessionCode];case`history-click`:return[t.event];case`dragging`:case`resizing`:case`drag-stop`:case`resize-stop`:case`shortcut-click`:case`session-initialized`:case`sdk-error`:case`transfer-messages`:case`share-messages`:case`new-chat-created`:return[t];case`panel-show`:case`panel-hide`:case`receive-start`:case`receive-text`:case`receive-end`:case`stop`:case`new-chat`:case`auto-generate-name`:case`help-click`:case`share`:case`close`:return[];default:return[t]}}var zWt=class extends Error{constructor(){super(`[ChatBot] Initialization was superseded by a newer init`),this.name=`ChatBotInitStaleError`}};function BWt(e){let{props:n,emit:r,reportError:i,managerErrorBridge:a}=e,o=(0,t.shallowRef)(null),s=(0,t.shallowRef)(null),l=(0,t.shallowRef)(null),u=(0,t.shallowRef)(null),d=(0,t.ref)(!1),f=(0,t.ref)(!n.chatHelper),p=(0,t.ref)(null),m=(0,t.computed)(()=>d.value),h=()=>n.chatHelper?!n.chatHelper.agent||!n.chatHelper.session||!n.chatHelper.message?{valid:!1,error:`[ChatBot] Invalid chatHelper: missing required modules (agent, session, message)`}:{valid:!0}:n.url?{valid:!0}:{valid:!1,error:`[ChatBot] Neither chatHelper nor url provided. Component requires at least one.`},g=()=>{let e=h();if(!e.valid)return console.error(e.error),p.value=Error(e.error),null;if(n.chatHelper)return n.chatHelper;let a=new ll({onStart:()=>{r(`receive-start`)},onMessage:e=>{r(`receive-text`)},onDone:()=>{r(`receive-end`)},onError:e=>{i(e,`Stream error`)}}),o=Mge({requestData:Pge(bl(n.url),()=>(0,t.toValue)(n.requestOptions)),protocol:a});return a.injectMessageModule(o.message),o},_=e=>{if(e)try{e.agent.abortChat(),e.agent.clearLongPollTimer?.()}catch{}},v=0,y=null,b=null,x=null,S=e=>{x&&=(e?x.reject(e):x.resolve(),null),y=null},C=e=>{if(e!==v)throw new zWt},w=async e=>{if(n.enableModelSelect!==!1){if(n.models?.length){e.setModels(n.models);return}await e.ensureLoaded()}},T=async e=>{let t=o.value;d.value=!1,p.value=null,f.value=!n.chatHelper,_(t),C(e),o.value=null,s.value=null,l.value=null,u.value=null;let m=g();if(!m)throw p.value??Error(`[ChatBot] Failed to create chatHelper`);let h=n.modelSelectionManager??new B9(m.agent,m.session,{enabled:n.enableModelSelect!==!1}),v=new MWt(m.session,m.agent,a,{enableChatSession:!0,autoSwitchToInitialSession:!!n.sessionCode,loadRecentSessionOnMount:n.autoLoad,initialSessionCode:n.sessionCode,alwaysCreateNewSession:n.alwaysCreateNewSession},m.message,h),y=new jWt(m.agent,m.message,m.session,a,{openingRemark:n.helloText,predefinedQuestions:n.prompts?.length?n.prompts:void 0,placeholder:n.placeholder,onSessionRenamed:(e,t)=>r(`rename`,e,t)},h),b=new PWt(null,n.shortcuts||[]);o.value=m,s.value=v,l.value=y,u.value=b;try{f.value?(await kWt(m,{enableModelSelect:n.enableModelSelect!==!1&&!n.models?.length}),C(e),await w(h),C(e),await v.loadRecentSession({skipLoadSessions:!0}),C(e)):await w(h),C(e),d.value=!0,r(`agent-info-loaded`,m)}catch(t){throw C(e),p.value=i(t,`Failed to initialize ChatBot`),t}},E=()=>{S(new zWt),b=null;let e=++v;y=new Promise((t,n)=>{x={resolve:t,reject:n},T(e).then(()=>{x&&=(b=Promise.resolve(),x.resolve(),null)}).catch(e=>{x&&=(x.reject(zge(e)),null)}).finally(()=>{e===v&&(y=null)})}),y.catch(()=>{})};return(0,t.watch)([()=>n.url,()=>n.chatHelper],()=>E(),{immediate:!0}),(0,t.onBeforeUnmount)(()=>{S(),_(o.value)}),{chatHelper:o,isStandaloneMode:f,isInitialized:d,isReady:m,initError:p,whenReady:()=>d.value?(b||=Promise.resolve(),b):p.value?Promise.reject(p.value):y||Promise.resolve(),chatBusinessManager:l,sessionBusinessManager:s,shortcutManager:u}}var VWt=[{id:`rebuild`,hidden:!0}],HWt=[{id:`delete`,hidden:!0}],UWt=[{id:`edit`,hidden:!0},{id:`delete`,hidden:!0}];function V9(e,t,n){return e?[...n,...t??[]]:t}function WWt(e){let{props:n,chatHelper:r,chatBusinessManager:i,sessionBusinessManager:a,shortcutManager:o,isStandaloneMode:s,isInitialized:l}=e,u=(0,t.computed)(()=>i.value?.isStopLoading.value?kl.StopLoading:((n.chatHelper||r.value)?.agent)?.isChatting?.value?kl.Streaming:kl.Complete),d=(0,t.computed)(()=>u.value===kl.Streaming?x9.Disabled:void 0),f=(0,t.computed)(()=>((n.chatHelper||r.value)?.agent)?.info.value?.agentType===`claw`),p=(0,t.computed)(()=>V9(f.value,n.messageTools,VWt)),m=(0,t.computed)(()=>V9(f.value,n.updateTools,HWt)),h=(0,t.computed)(()=>V9(f.value,void 0,UWt)),g=(0,t.computed)(()=>i.value?.messages.value??[]),_=(0,t.computed)(()=>i.value?.isMessagesLoading.value??!1),v=(0,t.computed)(()=>i.value?.isGenerating.value??!1),y=(0,t.computed)(()=>a.value?.currentSession.value??null),b=(0,t.computed)(()=>s.value&&!l.value?!1:!_.value&&g.value.length===0),x=(0,t.computed)(()=>r.value?.agent.info.value?.conversationSettings?.openingRemark||``),S=(0,t.computed)(()=>n.resources?.length?n.resources:r.value?.agent.info.value?.resources??[]),C=(0,t.computed)(()=>n.prompts?.length?n.prompts:r.value?.agent.info.value?.conversationSettings?.predefinedQuestions??[]),w=(0,t.computed)(()=>n.skills?.length?n.skills:(r.value?.agent.info.value?.relatedSkills??[]).map(e=>({skill_name:e.skill_name,skill_code:e.skill_code,description:e.description,icon:e.icon})));return{messageStatus:u,messageToolsStatus:d,effectiveMessageTools:p,effectiveUpdateTools:m,effectiveUserMessageTools:h,messages:g,isMessagesLoading:_,isGenerating:v,currentSession:y,isWelcomeState:b,openingRemark:x,effectiveMenuSources:(0,t.computed)(()=>Mhe({skills:w.value,resources:S.value,prompts:C.value})),effectiveSupportUpload:(0,t.computed)(()=>!0),chatbotStyle:(0,t.computed)(()=>({height:typeof n.height==`number`?`${n.height}px`:n.height,maxWidth:typeof n.maxWidth==`number`?`${n.maxWidth}px`:n.maxWidth})),filteredShortcuts:(0,t.computed)(()=>o.value?.shortcuts.value??[])}}var GWt=new Set([`chat-error`,`receive-error`,`session-error`]);function KWt(e,n={}){let r=new WeakSet,i=(i,a)=>{let o=zge(i);return r.has(o)?o:(r.add(o),console.error(a?`[ChatBot] ${a}:`:`[ChatBot] error:`,i),e(`error`,o),(0,t.toValue)(n.errorToast)!==!1&&Cc({message:o.message||xl(`请求失败`),theme:`error`}),o)};return{managerErrorBridge:{emit:(e,t)=>{GWt.has(e)&&i(t?.error)}},reportError:i}}var qWt={[Al.ApprovalCancel]:nl.ApprovalCancel,[Al.FlowNodeRetry]:nl.FlowNodeRetry,[Al.FlowNodeSkip]:nl.FlowNodeSkip};function JWt(e){return`operation`in e}function YWt(e){return`interruptId`in e&&`reason`in e&&e.reason===El.UserQuestion}function XWt(e){return e===`cancelled`?ol.Cancelled:ol.Resolved}function ZWt(e){let t=e?.session.current?.value?.sessionCode;if(!t)throw Error(`[ChatBot] Cannot resume interrupt: no active session`);return t}function QWt(e){return{interruptId:e.interruptId,status:XWt(e.status),payload:e.payload}}function $Wt(e){let{chatHelper:t,reportError:n}=e,r=async e=>{let n=t.value;if(!n)throw Error(`[ChatBot] Cannot resume interrupt: chatHelper not initialized`);if(!JWt(e))throw Error(`[ChatBot] Unsupported interrupt resume payload`);let r=ZWt(n);if(e.operation===Al.ApprovalRefresh){n.agent.pollResumeSession(r);return}let i=qWt[e.operation];if(!i)throw Error(`[ChatBot] Unsupported interrupt resume operation: ${e.operation}`);let a=n.agent;if(e.operation===Al.ApprovalCancel){await a.userOperationStreamRequest(r,i,{interrupt_id:e.payload.interrupt_id});return}(e.operation===Al.FlowNodeRetry||e.operation===Al.FlowNodeSkip)&&await a.userOperationStreamRequest(r,i,{node_id:e.payload.node_id,task_id:String(e.payload.task_id)})},i=async(e,n)=>{let r=t.value;if(!r)throw Error(`[ChatBot] Cannot resume interrupt: chatHelper not initialized`);let i=ZWt(r);await r.agent.streamRequest({sessionCode:i,resume:QWt(e),...n?{input:n}:{}})};return{handleInterruptResume:async(e,t)=>{try{if(JWt(e)){await r(e);return}if(YWt(e)){await i(e);return}throw Error(`[ChatBot] Unsupported interrupt resume payload`)}catch(e){n(e,`Failed to handle interrupt resume`)}},resumeUserQuestionWithInput:async(e,t)=>{try{if(!t.payload||!YWt(t.payload))throw Error(`[ChatBot] Invalid user question resume options`);let n=typeof e==`string`?e.trim():``;if(!n)throw Error(`[ChatBot] User question free text input is empty`);await i(t.payload,n)}catch(e){n(e,`Failed to resume user question with input`)}}}}function eGt(e){let{emit:n,chatHelper:r,chatBusinessManager:i,getRequestOptions:a,reportError:o,resumeUserQuestionWithInput:s,selectedShortcut:l}=e,u=(0,t.shallowRef)([[]]),d=(0,t.shallowRef)(``);(0,t.watch)(()=>r.value?.session.current?.value?.sessionCode,(e,t)=>{t&&t!==e&&(d.value=``)});let f=e=>{u.value=e},p=new Set,m=e=>{if(e){if(`path`in e&&e.path)return e.path;if(`id`in e&&e.id)return e.id}},h=async(e,t)=>{try{await r.value.session.deletePvFile(e,t)}catch(e){o(e,`Failed to delete uploaded file`)}},g=(e,t,n)=>{t.forEach((t,r)=>{if(!p.has(t))return;p.delete(t);let i=m(n[r]);i&&h(e,i)})},_=async(e,t={})=>{if(!i.value||!r.value)throw Error(`[ChatBot] Cannot send message: chatBusinessManager not initialized`);let o=r.value.session.current?.value?.sessionCode;if(!o)throw Error(`[ChatBot] Cannot send message: no active session`);u.value=[[]],d.value=``,n(`send-message`,typeof e==`string`?e:``);let s=vl(t.property,a);await i.value.sendMessage(e,o,{...t,...s?{property:s}:{}})},v=async e=>{let t=r.value?.session.current?.value?.sessionCode;if(!t)throw Error(`[ChatBot] Cannot upload: no active session`);try{let n=await r.value.session.uploadFiles(t,e);if(!n?.length)throw Error(`[ChatBot] Upload failed: empty response`);return g(t,e,n),n}catch(t){throw e.forEach(e=>p.delete(e)),t}},y=async e=>{let t=r.value?.session.current?.value?.sessionCode;if(!t)throw Error(`[ChatBot] Cannot resolve artifact URL: no active session`);let n=await r.value.session.getPvFileDownloadUrl(t,e.outputId);return{download_url:n?.download_url,preview_url:n?.preview_url}},b=async e=>{let t=e.outputId||e.id;if(e.file&&!t){p.add(e.file);return}e.file&&p.delete(e.file);let n=r.value?.session.current?.value?.sessionCode;!t||!n||await h(n,t)},x=async(e,t,n)=>{try{if(n?.payload&&s){u.value=[[]],d.value=``,await s(e,n);return}let r={};d.value&&(r.cite=d.value),l.value&&(r.command=l.value.id);let i=The(t),a={...Object.keys(r).length?{extra:r}:{},...i?{docSchema:i}:{}};await _(e,Object.keys(a).length?{property:a}:{})}catch(e){o(e,`Failed to send message`)}},S=async()=>{await C()},C=async()=>{if(!i.value){console.error(`[ChatBot] Cannot stop generation: chatBusinessManager not initialized`);return}try{await i.value.stopGeneration(),n(`stop`)}catch(e){o(e,`Failed to stop generation`)}};return{userInput:u,cite:d,handleUpdateModelValue:f,doSendMessage:_,handleSendMessage:x,handleArtifactClick:y,handleDeleteFile:b,handleUpload:v,handleStopSending:S,stopGeneration:C}}var tGt=e=>!e||e.id===`share`;function nGt(e){let{emit:t,chatHelper:n,isStandaloneMode:r}=e,i=async e=>{if(!(!n.value||e.length===0))try{await Hge((await new NWt(n.value.message,n.value.session).shareMessages(e)).shareUrl),Cc({message:`分享链接已复制到剪贴板`,theme:`success`})}catch(e){console.error(`[ChatBot] Failed to share messages:`,e),Cc({message:`分享失败,请重试`,theme:`error`})}};return{handleConfirmShare:async(e,n)=>{r.value&&tGt(n)&&await i(e),t(`confirm-share`,e,n)}}}function rGt(e){let{props:n,emit:r,shortcutManager:i,doSendMessage:a,reportError:o,selectedShortcut:s}=e,l=(0,t.computed)(()=>i.value?.effectiveShortcuts.value??[]),u=(e,t)=>{let n=e,r;if(r=n.enable_fill_back&&n.fill_back_component_key?n.fill_back_component_key:n.components?.find(e=>e.fillBack)?.key,r&&t){let e=n.components?.map(e=>e.key===r?{...e,default:t}:{...e,default:e.default??void 0});s.value={...n,components:e,formModel:{...n.formModel,[r]:t}}}else s.value={...n,formModel:{...n.formModel}}},d=(e,t)=>{let n=e.components||[];return{extra:{cite:{type:`structured`,title:e.alias||e.name,data:n.map(e=>({key:e.name||e.key,value:String(t[e.key]??``)}))},command:e.id,context:n.map(e=>({[e.key]:t[e.key],context_type:e.type,__label:e.name||e.key,__key:e.key,__value:t[e.key]}))}}},f=e=>{let t=e.property?.extra;return t?.shortcut?t.shortcut:t?.command?l.value.find(e=>e.id===t.command)??null:null},p=(e,t)=>{u(e,t),r(`shortcut-click`,{shortcut:e,source:`main`})},m=()=>{s.value=null};return(0,t.watch)(()=>n.shortcuts,e=>{i.value?.setShortcuts(e||[])},{immediate:!0}),(0,t.watch)(()=>e.chatHelper.value?.agent.info.value?.conversationSettings?.commands,e=>{e&&i.value?.setAgentShortcuts(e)},{immediate:!0}),{effectiveShortcuts:l,selectShortcutWithText:u,buildShortcutProperty:d,getShortcutFromMessage:f,handleSelectShortcut:p,handleCloseShortcut:m,handleShortcutSubmit:async e=>{if(!s.value){console.error(`[ChatBot] No selected shortcut`);return}let t=d(s.value,e),n=s.value.name,r=s.value;m();try{await a(n,{property:t})}catch(e){s.value=r,o(e,`Failed to submit shortcut`)}},sendShortcutDirectly:async(e,t)=>{let n=e,r={...n.formModel},i=n.components||[];for(let e of i)e.key in r||(r[e.key]=e.default??``);let s;s=n.enable_fill_back&&n.fill_back_component_key?n.fill_back_component_key:i.find(e=>e.fillBack)?.key,s&&t&&(r[s]=t);let l=d(n,r),u=n.name;try{await a(u,{property:l})}catch(e){o(e,`Failed to send shortcut directly`)}}}}function iGt(e){let{emit:t,chatHelper:n,chatBusinessManager:r,cite:i,focusInput:a,getShortcutFromMessage:o,buildShortcutProperty:s,getRequestOptions:l,reportError:u,stopGeneration:d}=e,f=async e=>{if(!r.value||!n.value){console.error(`[ChatBot] Cannot delete messages: chatBusinessManager not initialized`);return}try{let t=r.value.messages.value,i=yl(t,e[0]);if(!i){console.error(`[ChatBot] No user message found before AI messages`);return}let a=[i,...e];await n.value.message.deleteMessages(a)}catch(e){u(e,`Failed to delete messages`)}},p=async e=>{if(!r.value||!n.value){console.error(`[ChatBot] Cannot regenerate: chatBusinessManager not initialized`);return}let t=n.value.session.current?.value?.sessionCode;if(!t){console.error(`[ChatBot] Cannot regenerate: no active session`);return}try{await r.value.regenerateFromAIMessages(e,t)}catch(e){u(e,`Failed to regenerate`)}},m=async e=>{if(!r.value||!n.value){console.error(`[ChatBot] Cannot delete message: chatHelper not initialized`);return}try{let t=r.value.messages.value,i=t.findIndex(t=>t===e);if(i===-1){console.error(`[ChatBot] User message not found in messages list`);return}let a=[];for(let e=i+1;e<t.length;e++){let n=t[e];if(n.role===Ol.User)break;a.push(n)}let o=[e,...a];await n.value.message.deleteMessages(o)}catch(e){u(e,`Failed to delete user message`)}};return{handleAgentAction:async(e,r)=>{if(e.id===`cite`){i.value=r.filter(e=>e.role!==Ol.Reasoning).map(e=>typeof e.content==`string`?e.content:JSON.stringify(e.content||``)).join(`
|
|
3916
|
+
`),a();return}if(e.id===`rebuild`){await p(r);return}if(e.id===`delete`){await f(r);return}if(e.id===`like`||e.id===`unlike`){let t=e.id===`like`?5:0;try{return await n.value?.session.getSessionFeedbackReasons(t)||[]}catch(e){return console.error(`[ChatBot] Failed to get feedback reasons:`,e),[]}}t(`agent-action`,e,r)},handleAgentFeedback:async(e,i,a,o)=>{if(!n.value){console.error(`[ChatBot] Cannot submit feedback: chatHelper not initialized`);return}let s=n.value.session.current?.value?.sessionCode;if(!s){console.error(`[ChatBot] Cannot submit feedback: no active session`);return}let l=Rge(r.value?.messages.value||[],i[0]);if(l===void 0){console.error(`[ChatBot] Cannot submit feedback: no user message found`);return}let d=e.id===`like`?5:0;try{await n.value.session.postSessionFeedback({sessionCode:s,sessionContentIds:[l],rate:d,labels:a,comment:o}),t(`feedback`,e,i[0],a,o)}catch(e){u(e,`Failed to submit feedback`)}},handleUserAction:async(e,t)=>{if(e.id===`delete`){await m(t);return}if(e.id===`cite`){i.value=typeof t.content==`string`?t.content:JSON.stringify(t.content||``),a();return}console.log(`handleUserAction`,e,t)},handleUserInputConfirm:async(e,t,i)=>{if(!n.value){console.error(`[ChatBot] Cannot edit message: chatHelper not initialized`);return}let a=n.value.session.current?.value?.sessionCode;if(!a){console.error(`[ChatBot] Cannot edit message: no active session`);return}let o=e.id;if(o===void 0){console.error(`[ChatBot] Cannot edit message: message has no id`);return}try{let n=e.property,s=The(i),u=vl(s?{...n,docSchema:s}:n,l);await r.value?.resendMessageWithProperty(String(o),a,typeof t==`string`?t:``,u)}catch(e){u(e,`Failed to edit and resend message`)}},handleUserShortcutConfirm:async(e,t)=>{if(!r.value||!n.value){console.error(`[ChatBot] Cannot edit shortcut message: chatHelper not initialized`);return}let i=n.value.session.current?.value?.sessionCode;if(!i){console.error(`[ChatBot] Cannot edit shortcut message: no active session`);return}let a=e.id;if(a===void 0){console.error(`[ChatBot] Cannot edit shortcut message: message has no id`);return}try{let n=o(e);if(!n){console.error(`[ChatBot] Cannot edit shortcut message: shortcut not found`);return}let u=vl(s(n,t),l),d=String(t.input??``);await r.value.resendMessageWithProperty(String(a),i,d,u)}catch(e){u(e,`Failed to edit shortcut message`)}},handleStopStreaming:d}}var aGt=(0,t.defineComponent)({__name:`chat-bot`,props:{alwaysCreateNewSession:{type:Boolean},asideCollapsed:{type:Boolean,default:void 0},autoLoad:{type:Boolean,default:!0},chatHelper:{default:void 0},enableModelSelect:{type:Boolean,default:!0},enableSelection:{type:Boolean,default:!1},errorToast:{type:Boolean,default:!0},executionTabVisible:{type:Boolean,default:!0},extCls:{},getSideRenderComponent:{},getSideTabRenderComponent:{},height:{},helloText:{},maxWidth:{},messageTools:{},messageToolsTippyOptions:{},models:{default:void 0},modelSelectionManager:{default:void 0},onCustomTabChange:{},placeholder:{},prompts:{},renderMode:{default:Ml.Chat},requestOptions:{},resources:{default:()=>[]},sessionCode:{},shareLoading:{type:Boolean,default:!1},shortcuts:{default:()=>[]},size:{},timezone:{},skills:{},updateTools:{},url:{default:``},useAgentName:{type:Boolean,default:!1},resizeProps:{}},emits:[`agent-action`,`agent-info-loaded`,`cancel-share`,`confirm-share`,`error`,`execution-panel-change`,`feedback`,`receive-end`,`receive-start`,`receive-text`,`rename`,`request-share`,`send-message`,`session-switched`,`shortcut-click`,`stop`,`update:asideCollapsed`],setup(e,{expose:n,emit:r}){let i=e,a={initialDivide:560,min:400},o=(0,t.computed)(()=>({...a,...i.resizeProps})),s=r,l=(0,t.useSlots)(),u=(0,t.ref)(!0),d=(0,t.computed)({get:()=>i.asideCollapsed??u.value,set:e=>{i.asideCollapsed===void 0&&(u.value=e),s(`update:asideCollapsed`,e)}}),f=(0,t.ref)(),p=(0,t.ref)(),m=(0,t.ref)(),h=(0,t.computed)(()=>({...i.messageToolsTippyOptions,appendTo:i.messageToolsTippyOptions?.appendTo??(()=>f.value??document.body)})),g=(0,t.ref)(null),_=(0,t.computed)({get:()=>i.renderMode??Ml.Chat,set:()=>{}}),v=(0,t.computed)(()=>O.value?.selectedLlmCode.value),y=()=>{m.value?.focus?.()},{reportError:b,managerErrorBridge:x}=KWt(s,{errorToast:()=>i.errorToast}),{chatHelper:S,isStandaloneMode:C,isInitialized:w,isReady:T,initError:E,whenReady:D,chatBusinessManager:O,sessionBusinessManager:k,shortcutManager:A}=BWt({props:i,emit:s,reportError:b,managerErrorBridge:x}),{handleInterruptResume:j,resumeUserQuestionWithInput:M}=$Wt({chatHelper:S,reportError:b}),{userInput:N,cite:P,handleUpdateModelValue:F,doSendMessage:I,handleSendMessage:L,handleUpload:R,handleDeleteFile:ee,handleArtifactClick:z,handleStopSending:B,stopGeneration:V}=eGt({emit:s,chatHelper:S,chatBusinessManager:O,getRequestOptions:()=>i.requestOptions,reportError:b,resumeUserQuestionWithInput:M,selectedShortcut:g}),{handleSelectShortcut:te,handleCloseShortcut:ne,handleShortcutSubmit:re,selectShortcutWithText:ie,getShortcutFromMessage:ae,buildShortcutProperty:H,sendShortcutDirectly:oe}=rGt({props:i,emit:s,chatHelper:S,shortcutManager:A,doSendMessage:I,reportError:b,selectedShortcut:g}),{messageStatus:se,messageToolsStatus:ce,effectiveMessageTools:le,effectiveUpdateTools:ue,effectiveUserMessageTools:de,messages:fe,isMessagesLoading:pe,isGenerating:me,currentSession:he,isWelcomeState:ge,openingRemark:_e,effectiveMenuSources:ve,effectiveSupportUpload:ye,chatbotStyle:be,filteredShortcuts:xe}=WWt({props:i,chatHelper:S,chatBusinessManager:O,sessionBusinessManager:k,shortcutManager:A,isStandaloneMode:C,isInitialized:w}),{handleAgentAction:Se,handleAgentFeedback:Ce,handleUserAction:we,handleUserInputConfirm:Te,handleUserShortcutConfirm:Ee,handleStopStreaming:De}=iGt({emit:s,chatHelper:S,chatBusinessManager:O,cite:P,focusInput:y,getShortcutFromMessage:ae,buildShortcutProperty:H,getRequestOptions:()=>i.requestOptions,reportError:b,stopGeneration:V}),Oe=(0,t.computed)(()=>!w.value||pe.value),ke=(0,t.computed)(()=>{if(i.useAgentName)return S.value?.agent.info.value?.agentName||void 0}),Ae=(0,t.computed)(()=>{if(i.enableModelSelect===!1)return;let e=O.value?.models.value??[];return e.length>0?e:void 0}),je=(0,t.computed)({get:()=>O.value?.selectedModelName.value??``,set:e=>{O.value?.setSelectedModelByName(e)}}),Me=e=>{O.value?.setSelectedModel(e)};(0,t.watch)(()=>i.models,e=>{i.enableModelSelect===!1||!O.value||e?.length&&O.value.setModels(e)});let{handleConfirmShare:Ne}=nGt({emit:s,chatHelper:S,isStandaloneMode:C}),Pe=(e,t)=>{s(`execution-panel-change`,e,t)},Fe=async e=>{if(i.onCustomTabChange)return i.onCustomTabChange(e);let t=e.data?.props;if(t?.task_id!=null&&t?.node_id)return S.value?.message.getFlowAgentTaskNodeInfo(t.task_id,t.node_id)};return n({sendMessage:e=>L(e,[[]]),stopGeneration:V,switchSession:async e=>{if(!k.value){console.error(`[ChatBot] Cannot switch session: sessionBusinessManager not initialized`);return}try{await k.value.switchSession(e),s(`session-switched`,k.value.currentSession.value)}catch(e){b(e,`Failed to switch session`)}},messages:fe,currentSession:he,isGenerating:me,get isReady(){return T.value},whenReady:D,getChatHelper:()=>S.value,setCiteText:e=>{P.value=e},focusInput:y,enterShareMode:()=>p.value?.enterShareMode(),exitShareMode:()=>p.value?.exitShareMode(),selectShortcut:(e,t)=>{ie(e,t)},sendShortcut:(e,t)=>oe(e,t),updateAgentInfo:async()=>{let e=S.value;if(!e)return null;try{await e.agent.getAgentInfo();let t=e.agent.info.value??null;return t?.conversationSettings?.commands&&A.value?.setAgentShortcuts(t.conversationSettings.commands),t}catch(e){return b(e,`Failed to update agentInfo`),null}},selectedLlmCode:v}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:f,class:(0,t.normalizeClass)([`ai-chatbot`,i.extCls,{"welcome-state":(0,t.unref)(ge)}]),style:(0,t.normalizeStyle)((0,t.unref)(be))},[(0,t.createVNode)((0,t.unref)(gWt),{ref_key:`chatContainerRef`,ref:p,"aside-collapsed":d.value,"onUpdate:asideCollapsed":n[0]||=e=>d.value=e,cite:(0,t.unref)(P),"onUpdate:cite":n[1]||=e=>(0,t.isRef)(P)?P.value=e:null,"render-mode":_.value,"onUpdate:renderMode":n[2]||=e=>_.value=e,"selected-model":je.value,"onUpdate:selectedModel":n[3]||=e=>je.value=e,"selected-shortcut":g.value,"onUpdate:selectedShortcut":n[4]||=e=>g.value=e,"chat-loading":Oe.value,"common-tippy-options":h.value,"execution-tab-visible":i.executionTabVisible,"get-side-render-component":i.getSideRenderComponent,"get-side-tab-render-component":i.getSideTabRenderComponent,"message-status":(0,t.unref)(se),"message-tools":(0,t.unref)(le),"message-tools-status":(0,t.unref)(ce),"menu-sources":(0,t.unref)(ve),messages:(0,t.unref)(fe),"model-value":(0,t.unref)(N),models:Ae.value,"on-agent-action":(0,t.unref)(Se),"on-agent-feedback":(0,t.unref)(Ce),"on-artifact-click":(0,t.unref)(z),"on-custom-tab-change":Fe,"on-interrupt-resume":(0,t.unref)(j),"on-send-message":(0,t.unref)(L),"on-stop-sending":(0,t.unref)(B),"on-upload":(0,t.unref)(R),"on-user-action":(0,t.unref)(we),"on-user-input-confirm":(0,t.unref)(Te),"on-user-shortcut-confirm":(0,t.unref)(Ee),"opening-remark":(0,t.unref)(_e),placeholder:i.placeholder,"resize-props":o.value,"shortcut-id":g.value?.id,shortcuts:(0,t.unref)(xe),size:i.size,timezone:i.timezone,"support-upload":(0,t.unref)(ye),"update-tools":(0,t.unref)(ue),"user-message-tools":(0,t.unref)(de),"welcome-title":ke.value,onCollapseChange:Pe,onConfirmShare:(0,t.unref)(Ne),onDeleteFile:(0,t.unref)(ee),onDeleteShortcut:(0,t.unref)(ne),onModelChange:Me,onSelectShortcut:(0,t.unref)(te),onShortcutClose:(0,t.unref)(ne),onShortcutSubmit:(0,t.unref)(re),onStopStreaming:(0,t.unref)(De),"onUpdate:modelValue":(0,t.unref)(F)},(0,t.createSlots)({message:(0,t.withCtx)(({message:n,messageToolsStatus:r,onInterruptResume:i})=>[(0,t.createCommentVNode)(` 消费方提供了 #message slot 时,优先使用消费方的渲染 `),(0,t.unref)(l).message?(0,t.renderSlot)(e.$slots,`message`,{key:0,message:n,messageToolsStatus:r,onInterruptResume:i}):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 否则使用默认的 MessageRender `),(0,t.createVNode)((0,t.unref)(z9),{message:n,"message-tools":(0,t.unref)(de),"message-tools-status":r,"on-action":e=>(0,t.unref)(we)(e,n),"on-input-confirm":(e,r)=>(0,t.unref)(Te)(n,e,r),"on-interrupt-resume":i,"on-shortcut-confirm":e=>(0,t.unref)(Ee)(n,e),"tippy-options":h.value},(0,t.createSlots)({_:2},[e.$slots.codeHeader?{name:`codeHeader`,fn:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`codeHeader`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)))]),key:`0`}:void 0]),1032,[`message`,`message-tools`,`message-tools-status`,`on-action`,`on-input-confirm`,`on-interrupt-resume`,`on-shortcut-confirm`,`tippy-options`])],2112))]),_:2},[e.$slots.welcome?{name:`welcome`,fn:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`welcome`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)))]),key:`0`}:void 0]),1032,`aside-collapsed.cite.render-mode.selected-model.selected-shortcut.chat-loading.common-tippy-options.execution-tab-visible.get-side-render-component.get-side-tab-render-component.message-status.message-tools.message-tools-status.menu-sources.messages.model-value.models.on-agent-action.on-agent-feedback.on-artifact-click.on-interrupt-resume.on-send-message.on-stop-sending.on-upload.on-user-action.on-user-input-confirm.on-user-shortcut-confirm.opening-remark.placeholder.resize-props.shortcut-id.shortcuts.size.timezone.support-upload.update-tools.user-message-tools.welcome-title.onConfirmShare.onDeleteFile.onDeleteShortcut.onSelectShortcut.onShortcutClose.onShortcutSubmit.onStopStreaming.onUpdate:modelValue`.split(`.`))],6))}});function oGt(e,n){let{name:r,props:i,emitNames:a,exposeKeys:o,slots:s=[],deepWatchProps:l=[],methods:u={}}=n,d=Object.keys(i);return{name:r,render(e){return e(`div`,{style:{width:`100%`,height:`100%`}})},props:i,data(){return{app:null,componentInstance:null,unWatchStack:[]}},created(){let n=this.$emit.bind(this),r=this,i=()=>(0,t.createApp)({setup(){return()=>{let i={};for(let e of d)i[e]=r[e];let o={};for(let e of s){let t=r.$scopedSlots?.[e];t!==void 0&&(o[e]=e=>t(e))}let l=Object.keys(o).length>0?o:void 0;return(0,t.h)(oie,{prefix:lGt()},{default:()=>(0,t.h)(e,{...r.$attrs,...i,...cGt(n,a),ref:e=>{r.componentInstance=e}},l)})}}});r.app=i();for(let e of l)r.unWatchStack.push(r.$watch(e,()=>{r.app&&(r.app.unmount(),r.app=i(),r.app.mount(r.$el))},{deep:!0}))},mounted(){let e=this;e.app?.mount(e.$el),e.$nextTick(()=>{let t=e.componentInstance;if(t)for(let n of o){let r=t[n];typeof r==`function`?e[n]=r.bind(t):e[n]=r}})},beforeDestroy(){let e=this;e.unWatchStack.forEach(e=>e?.()),e.unWatchStack=[],e.app&&=(e.app.unmount(),null),e.componentInstance=null},methods:u}}function sGt(e){return`on`+e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function cGt(e,t){let n={};for(let r of t)n[sGt(r)]=(...t)=>{e(r,...t)};return n}function lGt(){return`ai-bk`}var H9=function(e){return e.ERROR=`error`,e.IDLE=`idle`,e.LOADING_AGENT=`loading_agent`,e.READY=`ready`,e}({});function uGt(e){let{url:n,requestOptions:r,autoInit:i=!0,protocolCallbacks:a,enableModelSelect:o=!0}=e,s=(0,t.toValue)(n);if(!s)throw Error(`[useChatBootstrap] url is required`);let l=(0,t.ref)(H9.IDLE),u=(0,t.ref)(null),d=(0,t.ref)(!1),f=new Map,p=new ll({onStart:()=>{a?.onStart?.()},onMessage:e=>{a?.onMessage?.(e)},onDone:()=>{a?.onDone?.()},onError:e=>{a?.onError?.(e)}}),m=Mge({requestData:Pge(s,r),protocol:p});p.injectMessageModule(m.message);let h=(0,t.computed)(()=>l.value===H9.LOADING_AGENT),g=(0,t.computed)(()=>l.value===H9.READY),_=(0,t.computed)(()=>m.agent.info.value??null),v=(0,t.computed)(()=>_.value?.agentName??``),y=(0,t.computed)(()=>m.session.current.value??null),b=(0,t.computed)(()=>m.session.list.value??[]),x=null,S=0,C=async e=>{u.value=null;try{if(l.value=H9.LOADING_AGENT,await kWt(m,{enableModelSelect:o}),e!==S)return;l.value=H9.READY,d.value=!0}catch(t){if(e!==S)return;throw console.error(`[useChatBootstrap] Initialization failed:`,t),u.value=t,l.value=H9.ERROR,t}},w=async()=>{if(d.value)return;if(x)return x;let e=S;return x=C(e).finally(()=>{e===S&&(x=null)}),x},T=()=>{S+=1,l.value=H9.IDLE,u.value=null,d.value=!1,x=null},E=async()=>{T(),await w()},D=async e=>{T();let t=m.http;t?.updateConfig?t.updateConfig({urlPrefix:e}):console.warn(`[useChatBootstrap] chatHelper.http.updateConfig is not implemented yet, URL change may not take effect`),await w()};return(0,t.watch)(()=>(0,t.toValue)(n),(e,t)=>{e&&e!==t&&t&&D(e).catch(()=>{})}),i&&Promise.resolve().then(()=>{w().catch(()=>{})}),{chatHelper:m,protocol:p,phase:l,isInitializing:h,isReady:g,error:u,agentInfo:_,agentName:v,currentSession:y,sessionList:b,initialize:w,retry:E,updateConfig:D,registerExtension:(e,t)=>{f.set(e,t)},getExtension:e=>f.get(e)}}function dGt(e){return{sendMessage:t=>e(`send-message`,{content:t}),receiveStart:()=>e(`receive-start`,{}),receiveText:()=>e(`receive-text`,{}),receiveEnd:()=>e(`receive-end`,{}),stop:()=>e(`stop`,{}),newChat:()=>e(`new-chat`,{}),newChatCreated:t=>e(`new-chat-created`,{session:t}),historyClick:t=>e(`history-click`,{event:t}),autoGenerateName:()=>e(`auto-generate-name`,{}),helpClick:()=>e(`help-click`,{}),rename:(t,n)=>e(`rename`,{newName:t,sessionCode:n}),share:()=>e(`share`,{}),transferMessages:t=>e(`transfer-messages`,{messageIds:t}),shareMessages:t=>e(`share-messages`,{messageIds:t})}}function fGt(e){let{componentManager:n,emit:r,debug:i=!1}=e,a=[],o=()=>{for(let[e,t]of Object.entries(LWt)){if(t===null)continue;let o=n.on(e,n=>{let a=RWt(e,n);i&&console.debug(`[useEventBridge] ${e} -> ${t}`,a),r(t,...a)});a.push(o)}},s=(e,t)=>{i&&console.debug(`[useEventBridge] Forwarding to manager: ${e}`,t),n.emit(e,t)},l=(e,...t)=>{i&&console.debug(`[useEventBridge] Direct emit: ${e}`,t),r(e,...t)},u=()=>{a.forEach(e=>e()),a.length=0};return o(),(0,t.onUnmounted)(()=>{u()}),{forwardToManager:s,emitDirect:l,cleanup:u}}function pGt(e){let{props:n,emit:r}=e,i=(0,t.ref)(),a=(0,t.ref)(),o=(0,t.computed)(()=>bl(n.url??``)),s=IWt({initialPanelVisible:!1,initialNimbusMinimized:n.defaultMinimize,enablePopup:n.enablePopup,enableNimbus:!n.hideNimbus,enableDraggable:n.draggable}),l=s.panelVisible,u=s.nimbusMinimized,{forwardToManager:d}=fGt({componentManager:s,emit:r}),f=dGt(d),p=new WeakSet,m=null,h=null,g=()=>{m&&=(clearTimeout(m.timer),null)},_=e=>{let{apiName:t,error:r,action:i,source:a,shouldToast:o=!0}=e,l=r instanceof Error?r.message:String(r),u=r instanceof Error?r:null;u&&p.has(u)||(u&&p.add(u),a!==`http`&&u&&m?.error===u&&g(),console.error(`[AIBlueking] ${t} error:`,r),o&&n.errorToast!==!1&&Cc({message:l||xl(`请求失败`),theme:`error`}),s.emitInternal(`sdk-error`,{apiName:t,action:i,source:a,code:-1,message:l,data:r}))},v=e=>{g();let t=h??(S.value?`chat`:`init`);m={error:e,timer:setTimeout(()=>{m=null,_({apiName:t,error:e,source:`http`})},0)}},y=async(e,t)=>{let n=h;h=e;try{return await t()}finally{h=n}},b=e=>{_({apiName:`chat`,error:e,source:`business`})},{chatHelper:x,isReady:S,error:C,agentInfo:w,agentName:T,currentSession:E,initialize:D}=uGt({url:o,requestOptions:()=>(0,t.toValue)(n.requestOptions),autoInit:!0,enableModelSelect:n.enableModelSelect!==!1,protocolCallbacks:{onStart:()=>{f.receiveStart()},onMessage:()=>{f.receiveText()},onDone:()=>{f.receiveEnd()},onError:e=>{_({apiName:`chat`,error:e,source:`protocol`})}}}),O=x;O.onError?.(e=>{v(e)},{ignoreErrors:n.ignoreErrors});let k=new B9(O.agent,O.session,{enabled:n.enableModelSelect!==!1}),A=async()=>{if(n.enableModelSelect!==!1){if(n.models?.length){k.setModels(n.models);return}await k.ensureLoaded()}},j=new MWt(O.session,O.agent,null,{enableChatSession:n.enableChatSession,initialSessionCode:n.initialSessionCode,alwaysCreateNewSession:n.alwaysCreateNewSession},O.message,k),M=new NWt(O.message,O.session),N=new PWt(null,n.shortcuts||[]),P=null,F=()=>n.loadRecentSessionOnMount?(P||=A().then(()=>j.loadRecentSession({skipLoadSessions:!0})).finally(()=>{P=null}),P):Promise.resolve(),I=async()=>{await y(`init`,async()=>{await D(),await F()})},L=(0,t.computed)(()=>s.isCompressed.value),R=(0,t.computed)(()=>T.value),ee=(0,t.computed)(()=>O.message.list.value.length===0);(0,t.watch)(()=>C.value,e=>{e&&(g(),_({apiName:`init`,error:e,source:`http`}))});let z=e=>{e.conversationSettings?.commands&&N.setAgentShortcuts(e.conversationSettings.commands)},B=async()=>{try{await O.agent.getAgentInfo();let e=w.value;return e&&z(e),e}catch(e){return _({apiName:`getAgentInfo`,error:e,source:`http`}),null}};(0,t.watch)(()=>S.value,async e=>{if(e&&w.value&&(z(w.value),w.value.conversationSettings&&d(`session-initialized`,{openingRemark:w.value.conversationSettings.openingRemark||``,predefinedQuestions:w.value.conversationSettings.predefinedQuestions||[]}),n.loadRecentSessionOnMount))try{await F()}catch(e){_({apiName:`session`,action:`loadRecentSession`,error:e,source:`business`})}},{immediate:!0}),(0,t.watch)(()=>n.shortcuts,e=>{N.setShortcuts(e||[])},{immediate:!0});let V=e=>{Kge(e)&&(e.preventDefault(),l.value?s.hidePanel():s.showPanel())};return(0,t.onMounted)(async()=>{i.value&&s.setContainerRef(i.value),window.addEventListener(`keydown`,V)}),(0,t.onBeforeUnmount)(()=>{g(),window.removeEventListener(`keydown`,V),s.destroy()}),{chatHelper:O,componentManager:s,modelSelection:k,sessionBusinessManager:j,shareBusinessManager:M,shortcutManager:N,forwarders:f,forwardToManager:d,chatBotRef:a,draggableContainerRef:i,panelVisible:l,nimbusMinimized:u,normalizedUrl:o,agentInfo:w,agentName:R,currentSession:E,isCompressed:L,isWelcomeState:ee,handleError:b,reportSdkError:_,ensureSessionReady:I,updateAgentInfo:B}}function mGt(e){let{shortcutManager:n,chatBotRef:r,forwardToManager:i,show:a,props:o}=e,s=(0,t.ref)(!1),l=(0,t.ref)(``);return{aiSelectionVisible:s,selectedText:l,filteredPopupShortcuts:(0,t.computed)(()=>{let e=n.effectiveShortcuts.value;return typeof o.shortcutFilter==`function`&&l.value?e.filter(e=>o.shortcutFilter?.(e,l.value)):e}),handleSelectionChange:e=>{l.value=e},handleAiSelectionShortcut:async(e,t)=>{s.value=!1,await a(),r.value&&(e.components?.length?r.value.selectShortcut(e,t):(r.value.selectShortcut(e),r.value.setCiteText(t),r.value.focusInput())),i(`shortcut-click`,{shortcut:e,source:`popup`})}}}function hGt(e,n=!1){let r=window.innerHeight-48-40,i=window.innerWidth-48-16,a=(0,t.ref)(i),o=(0,t.ref)(r),s=(0,t.ref)(0),l=(0,t.ref)(n),u=(0,t.ref)(!1),d=(0,t.ref)(!1),f=0,p=e=>{e?a.value=window.innerWidth-12:a.value=i},m=(e,t)=>{o.value=t,s.value=t-r},h=()=>{(0,t.nextTick)(()=>{o.value=window.innerHeight-48-40+s.value,l.value?a.value=window.innerWidth-12:a.value=window.innerWidth-48-16})};return(0,t.onMounted)(()=>{window.addEventListener(`resize`,h),h()}),(0,t.onUnmounted)(()=>{window.removeEventListener(`resize`,h)}),{nimbusWidth:48,nimbusHeight:48,nimbusLeft:a,nimbusTop:o,isMinimize:l,isHovering:u,isDragging:d,handleNimbusDragging:m,handleNimbusMinimize:p,handleClick:()=>{if(d.value){d.value=!1;return}e(`click`)},handleMinimize:()=>{l.value=!l.value,e(`minimize`,l.value),l.value?a.value=window.innerWidth-12:a.value=window.innerWidth-60},handleDragging:(e,t)=>{a.value=e,o.value=t},handleMouseEnter:()=>{u.value=!0},handleMouseLeave:()=>{u.value=!1},handleMouseDown:()=>{f=Date.now(),d.value=!1},handleMouseUp:()=>{Date.now()-f>200&&(d.value=!0)}}}var gGt=560;function _Gt(e){let{componentManager:n,chatBotRef:r,forwarders:i,forwardToManager:a,beforeNimbusClick:o,ensureSessionReady:s}=e,l=(0,t.ref)(!0),u=gGt,d=async e=>{n.showPanel(e),s&&await s(),e&&r.value&&await r.value.switchSession(e)},f=async e=>{await d(e)},p=()=>{l.value=!0,n.abortSidePanelSequence(),n.hidePanel()},m=()=>{p()},h=async()=>{if(o&&await o()===!1){n.emit(`nimbus-click`,{});return}n.handleNimbusClick()},g=e=>{n.handleDragging(e)},_=e=>{n.handleResizing(e)},v=e=>{n.handleDragStop(e)},y=e=>{n.handleResizeStop(e)},b=()=>{n.container.toggleCompression()},x=e=>{n.setCompressed(e)},S=(e,t)=>{u=Math.max(gGt,t??u)},C=async()=>{l.value&&=(await n.expandForSidePanel(u,{onBeforeSizeChange:()=>{l.value=!1}}),!1)},w=async()=>{l.value||=(await n.collapseSidePanel({onBeforeSizeChange:()=>{l.value=!0}}),!0)};return{show:d,handleShow:f,hide:p,handleClose:m,handleNimbusClick:h,handleDragging:g,handleResizing:_,handleDragStop:v,handleResizeStop:y,handleToggleCompression:b,handleCompressionChange:x,handleExecutionPanelChange:S,handleToggleAside:async()=>{l.value?await C():await w()},handleAsideCollapsedUpdate:async e=>{e!==l.value&&(e?await w():await C())},asideCollapsed:l,sendMessage:async e=>{r.value&&await r.value.sendMessage(e)},handleReceiveStart:()=>{i.receiveStart()},handleReceiveText:()=>{i.receiveText()},handleReceiveEnd:()=>{i.receiveEnd()},handleStop:()=>{i.stop()},stopGeneration:()=>{r.value&&r.value.stopGeneration()},updatePosition:(e,t)=>{n.container.updatePosition(e,t)},updateSize:(e,t)=>{n.container.updateSize(e,t)},updatePositionAndSize:(e,t,r,i)=>{n.container.updatePositionAndSize(e,t,r,i)},setCiteText:e=>{r.value&&r.value.setCiteText(e)},focusInput:()=>{r.value&&r.value.focusInput()},selectShortcut:(e,t)=>{r.value&&r.value.selectShortcut(e,t)},sendShortcut:(e,t)=>r.value?r.value.sendShortcut(e,t):Promise.resolve(),getChatHelper:()=>r.value?r.value.getChatHelper():null,handleShortcutClick:e=>{a(`shortcut-click`,e)}}}function vGt(e){let{chatHelper:n,sessionBusinessManager:r,chatBotRef:i,forwarders:a,reportSdkError:o,currentSession:s}=e,l=(0,t.ref)(``),u=(0,t.ref)(!0),d=(0,t.ref)(!1),f=(0,t.ref)(!1),p=()=>Lge(n.message.list.value);return(0,t.watch)(()=>s.value,e=>{e&&(l.value=e.sessionName||``,d.value=(e.sessionContentCount??0)>0||p())},{immediate:!0}),(0,t.watch)(()=>n.message.list.value.length,()=>{d.value=p()}),{sessionName:l,hasPermission:u,hasSessionContents:d,autoGenerateLoading:f,handleNewChat:async()=>{i.value?.exitShareMode(),i.value?.setCiteText(``),a.newChat()},handleNewChatCreated:e=>{a.newChatCreated(e)},handleHistoryClick:e=>{a.historyClick(e)},handleHistorySessionSwitch:async e=>{try{i.value?.exitShareMode(),await r.switchSession(e)}catch(e){console.error(`[AIBlueking] Failed to switch history session:`,e),o({apiName:`session`,action:`historySwitch`,error:e,source:`business`})}},handleHistorySessionDelete:async e=>{try{await r.deleteSession(e)}catch(e){console.error(`[AIBlueking] Failed to delete history session:`,e),o({apiName:`session`,action:`historyDelete`,error:e,source:`business`})}},handleHistorySessionRename:async(e,t)=>{try{await r.updateSessionName(e,t)}catch(e){console.error(`[AIBlueking] Failed to rename history session:`,e),o({apiName:`session`,action:`historyRename`,error:e,source:`business`})}},handleAutoGenerateName:async()=>{let e=n.session.current?.value?.sessionCode;if(!e){console.error(`[AIBlueking] Cannot auto-generate name: no active session`);return}f.value=!0;try{await n.session.renameSession(e);let t=n.session.list.value.find(t=>t.sessionCode===e);t&&(l.value=t.sessionName||``)}catch(e){console.error(`[AIBlueking] Failed to auto-generate session name:`,e),o({apiName:`session`,action:`autoGenerateName`,error:e,source:`business`})}finally{f.value=!1}a.autoGenerateName()},handleHelpClick:()=>{a.helpClick()},handleRename:async e=>{let t=n.session.current?.value;if(!t){console.error(`[AIBlueking] Cannot rename: no active session`);return}try{await n.session.updateSession({...t,sessionName:e}),l.value=e}catch(e){console.error(`[AIBlueking] Failed to rename session:`,e),o({apiName:`session`,action:`rename`,error:e,source:`business`})}a.rename(e,t.sessionCode)},handleSessionRenamed:(e,t)=>{s.value?.sessionCode===t&&(l.value=e),a.rename(e,t)},handleSessionSwitched:e=>{e&&(l.value=e.sessionName||``,d.value=(e.sessionContentCount??0)>0||p())},addNewSession:async e=>{e?await r.createSession(e):await r.createNewSession()},switchToSession:async e=>{i.value&&await i.value.switchSession(e)},updateSessionName:async(e,t)=>{try{await r.updateSessionName(e,t),l.value=t}catch(e){console.error(`[AIBlueking] Failed to update session name:`,e),o({apiName:`session`,action:`updateSessionName`,error:e,source:`business`})}}}}function yGt(e){let{shareBusinessManager:n,chatBotRef:r,emit:i,forwarders:a,reportSdkError:o}=e,s=(0,t.ref)(!1);return{isShareLoading:s,handleShare:()=>{r.value?.enterShareMode(),a.share()},handleCancelShare:()=>{r.value?.exitShareMode()},handleConfirmShare:async(e,t)=>{if(!tGt(t)){r.value?.exitShareMode(),i(`confirm-share`,e,t);return}s.value=!0;try{let{shareUrl:o,userMessageIds:s}=await n.shareMessages(e);await Hge(o),Cc({message:xl(`分享链接已复制到剪贴板`),theme:`success`}),r.value?.exitShareMode(),a.shareMessages(s),i(`confirm-share`,e,t)}catch(e){console.error(`[AIBlueking] Failed to share messages:`,e),o({apiName:`share`,action:`confirmShare`,error:e,source:`business`})}finally{s.value=!1}}}}function bGt(e={}){let n=(0,t.ref)([]),r=(t,r,i={})=>{try{let a=typeof t==`string`?document.querySelector(t):t;if(!a)return console.warn(`Tooltip target not found: ${t}`),null;let o=(0,y.default)(a,{content:r,placement:`top`,arrow:!0,delay:[300,0],theme:`ai-blueking-tooltip`,...e,...i});return n.value.push(o),o}catch(e){return console.error(`Failed to create tooltip:`,e),null}},i=(e,t,n={})=>{let i=document.querySelectorAll(e),a=[];return i.forEach(e=>{let i=r(e,t,n);i&&a.push(i)}),a},a=e=>{let t=[];return e.forEach(({element:e,content:n,options:i})=>{let a=r(e,n,i);a&&t.push(a)}),t},o=()=>{n.value.forEach(e=>{e.destroy()}),n.value=[]};return(0,t.onBeforeUnmount)(()=>{o()}),{instances:n,createTooltip:r,createTooltipsForSelector:i,createMultipleTooltips:a,destroyAll:o,updateContent:(e,t)=>{e.setContent(t)},destroyInstance:e=>{e.destroy()}}}var xGt={url:``,title:``,extCls:``,hideNimbus:!1,hideHeader:!1,enablePopup:!0,draggable:!0,enableChatSession:!0,enableModelSelect:!0,executionTabVisible:!0,renderMode:Ml.Chat,defaultWidth:400,defaultHeight:void 0,defaultTop:0,defaultLeft:void 0,maxWidth:1e3,miniPadding:0,nimbusSize:`normal`,defaultMinimize:!1,shortcuts:()=>[],shortcutLimit:3,shortcutFilter:void 0,hideDefaultTrigger:!1,requestOptions:()=>({}),teleportTo:`body`,placeholder:void 0,helloText:xl(`你好,我是小鲸`),useAgentName:!1,disabledInput:!1,showHistoryIcon:!0,showNewChatIcon:!0,showCompressionIcon:!0,showMoreIcon:!0,initialSessionCode:``,autoSwitchToInitialSession:!1,alwaysCreateNewSession:!1,loadRecentSessionOnMount:!0,prompts:()=>[],dropdownMenuConfig:()=>({showRename:!0,showAutoGenerate:!0,showShare:!0}),defaultChatInputPosition:void 0,errorToast:!0,ignoreErrors:()=>[]};function SGt(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Function]`}function U9(e,t,n,r=1){let[i,a]=typeof r==`number`?[r,r]:r;return[Math.round(t/i/e[0])*e[0],Math.round(n/a/e[1])*e[1]]}function W9(e,t,n){return e-t-n}function G9(e,t,n){return e-t-n}function K9(e,t,n){return t!==null&&e<t?t:n!==null&&n<e?n:e}function CGt(e,t,n){let r=e,i=[`matches`,`webkitMatchesSelector`,`mozMatchesSelector`,`msMatchesSelector`,`oMatchesSelector`].find(e=>SGt(r[e]));if(!SGt(r[i]))return!1;do{if(r[i](t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function wGt(e){let t=window.getComputedStyle(e);return[parseFloat(t.getPropertyValue(`width`),10),parseFloat(t.getPropertyValue(`height`),10)]}function q9(e,t,n){e&&(e.attachEvent?e.attachEvent(`on`+t,n):e.addEventListener?e.addEventListener(t,n,!0):e[`on`+t]=n)}function J9(e,t,n){e&&(e.detachEvent?e.detachEvent(`on`+t,n):e.removeEventListener?e.removeEventListener(t,n,!0):e[`on`+t]=null)}var TGt=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},Y9={mouse:{start:`mousedown`,move:`mousemove`,stop:`mouseup`},touch:{start:`touchstart`,move:`touchmove`,stop:`touchend`}},EGt={userSelect:`none`,MozUserSelect:`none`,WebkitUserSelect:`none`,MsUserSelect:`none`},DGt={userSelect:`auto`,MozUserSelect:`auto`,WebkitUserSelect:`auto`,MsUserSelect:`auto`},X9=Y9.mouse,OGt={replace:!0,name:`vue-draggable-resizable`,props:{className:{type:String,default:`vdr`},classNameDraggable:{type:String,default:`draggable`},classNameResizable:{type:String,default:`resizable`},classNameDragging:{type:String,default:`dragging`},classNameResizing:{type:String,default:`resizing`},classNameActive:{type:String,default:`active`},classNameHandle:{type:String,default:`handle`},disableUserSelect:{type:Boolean,default:!0},enableNativeDrag:{type:Boolean,default:!1},preventDeactivation:{type:Boolean,default:!1},active:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},lockAspectRatio:{type:Boolean,default:!1},w:{type:[Number,String],default:200,validator:e=>typeof e==`number`?e>0:e===`auto`},h:{type:[Number,String],default:200,validator:e=>typeof e==`number`?e>0:e===`auto`},minWidth:{type:Number,default:0,validator:e=>e>=0},minHeight:{type:Number,default:0,validator:e=>e>=0},maxWidth:{type:Number,default:null,validator:e=>e>=0},maxHeight:{type:Number,default:null,validator:e=>e>=0},x:{type:Number,default:0},y:{type:Number,default:0},z:{type:[String,Number],default:`auto`,validator:e=>typeof e==`string`?e===`auto`:e>=0},handles:{type:Array,default:()=>[`tl`,`tm`,`tr`,`mr`,`br`,`bm`,`bl`,`ml`],validator:e=>{let t=new Set([`tl`,`tm`,`tr`,`mr`,`br`,`bm`,`bl`,`ml`]);return new Set(e.filter(e=>t.has(e))).size===e.length}},dragHandle:{type:String,default:null},dragCancel:{type:String,default:null},axis:{type:String,default:`both`,validator:e=>[`x`,`y`,`both`].includes(e)},grid:{type:Array,default:()=>[1,1]},parent:{type:Boolean,default:!1},scale:{type:[Number,Array],default:1,validator:e=>typeof e==`number`?e>0:e.length===2&&e[0]>0&&e[1]>0},onDragStart:{type:Function,default:()=>!0},onDrag:{type:Function,default:()=>!0},onResizeStart:{type:Function,default:()=>!0},onResize:{type:Function,default:()=>!0}},data:function(){return{left:this.x,top:this.y,right:null,bottom:null,width:null,height:null,widthTouched:!1,heightTouched:!1,aspectFactor:null,parentWidth:null,parentHeight:null,handle:null,enabled:this.active,resizing:!1,dragging:!1,dragEnable:!1,resizeEnable:!1,zIndex:this.z}},created:function(){this.maxWidth&&this.minWidth>this.maxWidth&&console.warn(`[Vdr warn]: Invalid prop: minWidth cannot be greater than maxWidth`),this.maxHeight&&this.minHeight>this.maxHeight&&console.warn(`[Vdr warn]: Invalid prop: minHeight cannot be greater than maxHeight`),this.resetBoundsAndMouseState()},mounted:function(){this.enableNativeDrag||(this.$el.ondragstart=()=>!1);let[e,t]=this.getParentSize();this.parentWidth=e,this.parentHeight=t;let[n,r]=wGt(this.$el);this.aspectFactor=(this.w===`auto`?n:this.w)/(this.h===`auto`?r:this.h),this.width=this.w===`auto`?n:this.w,this.height=this.h===`auto`?r:this.h,this.right=this.parentWidth-this.width-this.left,this.bottom=this.parentHeight-this.height-this.top,this.active&&this.$emit(`activated`),q9(document.documentElement,`mousedown`,this.deselect),q9(document.documentElement,`touchend touchcancel`,this.deselect),q9(window,`resize`,this.checkParentSize)},beforeUnmount:function(){J9(document.documentElement,`mousedown`,this.deselect),J9(document.documentElement,`touchstart`,this.handleUp),J9(document.documentElement,`mousemove`,this.move),J9(document.documentElement,`touchmove`,this.move),J9(document.documentElement,`mouseup`,this.handleUp),J9(document.documentElement,`touchend touchcancel`,this.deselect),J9(window,`resize`,this.checkParentSize)},methods:{resetBoundsAndMouseState(){this.mouseClickPosition={mouseX:0,mouseY:0,x:0,y:0,w:0,h:0},this.bounds={minLeft:null,maxLeft:null,minRight:null,maxRight:null,minTop:null,maxTop:null,minBottom:null,maxBottom:null}},checkParentSize(){if(this.parent){let[e,t]=this.getParentSize();this.parentWidth=e,this.parentHeight=t,this.right=this.parentWidth-this.width-this.left,this.bottom=this.parentHeight-this.height-this.top}},getParentSize(){if(this.parent){let e=window.getComputedStyle(this.$el.parentNode,null);return[parseInt(e.getPropertyValue(`width`),10),parseInt(e.getPropertyValue(`height`),10)]}return[null,null]},elementTouchDown(e){X9=Y9.touch,this.elementDown(e)},elementMouseDown(e){X9=Y9.mouse,this.elementDown(e)},elementDown(e){if(e instanceof MouseEvent&&e.button!==0)return;let t=e.target||e.srcElement;if(this.$el.contains(t)){if(this.onDragStart(e)===!1)return;if(this.dragHandle&&!CGt(t,this.dragHandle,this.$el)||this.dragCancel&&CGt(t,this.dragCancel,this.$el)){this.dragging=!1;return}this.enabled||(this.enabled=!0,this.$emit(`activated`),this.$emit(`update:active`,!0)),this.draggable&&(this.dragEnable=!0),this.mouseClickPosition.mouseX=e.touches?e.touches[0].pageX:e.pageX,this.mouseClickPosition.mouseY=e.touches?e.touches[0].pageY:e.pageY,this.mouseClickPosition.left=this.left,this.mouseClickPosition.right=this.right,this.mouseClickPosition.top=this.top,this.mouseClickPosition.bottom=this.bottom,this.parent&&(this.bounds=this.calcDragLimits()),q9(document.documentElement,X9.move,this.move),q9(document.documentElement,X9.stop,this.handleUp)}},calcDragLimits(){return{minLeft:this.left%this.grid[0],maxLeft:Math.floor((this.parentWidth-this.width-this.left)/this.grid[0])*this.grid[0]+this.left,minRight:this.right%this.grid[0],maxRight:Math.floor((this.parentWidth-this.width-this.right)/this.grid[0])*this.grid[0]+this.right,minTop:this.top%this.grid[1],maxTop:Math.floor((this.parentHeight-this.height-this.top)/this.grid[1])*this.grid[1]+this.top,minBottom:this.bottom%this.grid[1],maxBottom:Math.floor((this.parentHeight-this.height-this.bottom)/this.grid[1])*this.grid[1]+this.bottom}},deselect(e){let t=e.target||e.srcElement,n=RegExp(this.className+`-([trmbl]{2})`,``);!this.$el.contains(t)&&!n.test(t.className)&&(this.enabled&&!this.preventDeactivation&&(this.enabled=!1,this.$emit(`deactivated`),this.$emit(`update:active`,!1)),J9(document.documentElement,X9.move,this.handleResize)),this.resetBoundsAndMouseState()},handleTouchDown(e,t){X9=Y9.touch,this.handleDown(e,t)},handleDown(e,t){t instanceof MouseEvent&&t.which!==1||this.onResizeStart(e,t)!==!1&&(t.stopPropagation&&t.stopPropagation(),this.lockAspectRatio&&!e.includes(`m`)?this.handle=`m`+e.substring(1):this.handle=e,this.resizeEnable=!0,this.mouseClickPosition.mouseX=t.touches?t.touches[0].pageX:t.pageX,this.mouseClickPosition.mouseY=t.touches?t.touches[0].pageY:t.pageY,this.mouseClickPosition.left=this.left,this.mouseClickPosition.right=this.right,this.mouseClickPosition.top=this.top,this.mouseClickPosition.bottom=this.bottom,this.bounds=this.calcResizeLimits(),q9(document.documentElement,X9.move,this.handleResize),q9(document.documentElement,X9.stop,this.handleUp))},calcResizeLimits(){let e=this.minW,t=this.minH,n=this.maxW,r=this.maxH,i=this.aspectFactor,[a,o]=this.grid,s=this.width,l=this.height,u=this.left,d=this.top,f=this.right,p=this.bottom;this.lockAspectRatio&&(e/t>i?t=e/i:e=i*t,n&&r?(n=Math.min(n,i*r),r=Math.min(r,n/i)):n?r=n/i:r&&(n=i*r)),n-=n%a,r-=r%o;let m={minLeft:null,maxLeft:null,minTop:null,maxTop:null,minRight:null,maxRight:null,minBottom:null,maxBottom:null};return this.parent?(m.minLeft=u%a,m.maxLeft=u+Math.floor((s-e)/a)*a,m.minTop=d%o,m.maxTop=d+Math.floor((l-t)/o)*o,m.minRight=f%a,m.maxRight=f+Math.floor((s-e)/a)*a,m.minBottom=p%o,m.maxBottom=p+Math.floor((l-t)/o)*o,n&&(m.minLeft=Math.max(m.minLeft,this.parentWidth-f-n),m.minRight=Math.max(m.minRight,this.parentWidth-u-n)),r&&(m.minTop=Math.max(m.minTop,this.parentHeight-p-r),m.minBottom=Math.max(m.minBottom,this.parentHeight-d-r)),this.lockAspectRatio&&(m.minLeft=Math.max(m.minLeft,u-d*i),m.minTop=Math.max(m.minTop,d-u/i),m.minRight=Math.max(m.minRight,f-p*i),m.minBottom=Math.max(m.minBottom,p-f/i))):(m.minLeft=null,m.maxLeft=u+Math.floor((s-e)/a)*a,m.minTop=null,m.maxTop=d+Math.floor((l-t)/o)*o,m.minRight=null,m.maxRight=f+Math.floor((s-e)/a)*a,m.minBottom=null,m.maxBottom=p+Math.floor((l-t)/o)*o,n&&(m.minLeft=-(f+n),m.minRight=-(u+n)),r&&(m.minTop=-(p+r),m.minBottom=-(d+r)),this.lockAspectRatio&&n&&r&&(m.minLeft=Math.min(m.minLeft,-(f+n)),m.minTop=Math.min(m.minTop,-(r+p)),m.minRight=Math.min(m.minRight,-u-n),m.minBottom=Math.min(m.minBottom,-d-r))),m},move(e){this.resizing?this.handleResize(e):this.dragEnable&&this.handleDrag(e)},handleDrag(e){let t=this.axis,n=this.grid,r=this.bounds,i=this.mouseClickPosition,[a,o]=U9(n,t&&t!==`y`?i.mouseX-(e.touches?e.touches[0].pageX:e.pageX):0,t&&t!==`x`?i.mouseY-(e.touches?e.touches[0].pageY:e.pageY):0,this.scale),s=K9(i.left-a,r.minLeft,r.maxLeft),l=K9(i.top-o,r.minTop,r.maxTop);if(this.onDrag(s,l)===!1)return;let u=K9(i.right+a,r.minRight,r.maxRight),d=K9(i.bottom+o,r.minBottom,r.maxBottom);this.left=s,this.top=l,this.right=u,this.bottom=d,this.$emit(`dragging`,this.left,this.top),this.dragging=!0},moveHorizontally(e){let[t,n]=U9(this.grid,e,this.top,1),r=K9(t,this.bounds.minLeft,this.bounds.maxLeft);this.left=r,this.right=this.parentWidth-this.width-r},moveVertically(e){let[t,n]=U9(this.grid,this.left,e,1),r=K9(n,this.bounds.minTop,this.bounds.maxTop);this.top=r,this.bottom=this.parentHeight-this.height-r},handleResize(e){let t=this.left,n=this.top,r=this.right,i=this.bottom,a=this.mouseClickPosition,o=this.aspectFactor,s=a.mouseX-(e.touches?e.touches[0].pageX:e.pageX),l=a.mouseY-(e.touches?e.touches[0].pageY:e.pageY);!this.widthTouched&&s&&(this.widthTouched=!0),!this.heightTouched&&l&&(this.heightTouched=!0);let[u,d]=U9(this.grid,s,l,this.scale);this.handle.includes(`b`)?(i=K9(a.bottom+d,this.bounds.minBottom,this.bounds.maxBottom),this.lockAspectRatio&&this.resizingOnY&&(r=this.right-(this.bottom-i)*o)):this.handle.includes(`t`)&&(n=K9(a.top-d,this.bounds.minTop,this.bounds.maxTop),this.lockAspectRatio&&this.resizingOnY&&(t=this.left-(this.top-n)*o)),this.handle.includes(`r`)?(r=K9(a.right+u,this.bounds.minRight,this.bounds.maxRight),this.lockAspectRatio&&this.resizingOnX&&(i=this.bottom-(this.right-r)/o)):this.handle.includes(`l`)&&(t=K9(a.left-u,this.bounds.minLeft,this.bounds.maxLeft),this.lockAspectRatio&&this.resizingOnX&&(n=this.top-(this.left-t)/o));let f=W9(this.parentWidth,t,r),p=G9(this.parentHeight,n,i);this.onResize(this.handle,t,n,f,p)!==!1&&(this.left=t,this.top=n,this.right=r,this.bottom=i,this.width=f,this.height=p,this.$emit(`resizing`,this.left,this.top,this.width,this.height),this.resizing=!0)},changeWidth(e){let[t,n]=U9(this.grid,e,0,1),r=K9(this.parentWidth-t-this.left,this.bounds.minRight,this.bounds.maxRight),i=this.bottom;this.lockAspectRatio&&(i=this.bottom-(this.right-r)/this.aspectFactor);let a=W9(this.parentWidth,this.left,r),o=G9(this.parentHeight,this.top,i);this.right=r,this.bottom=i,this.width=a,this.height=o},changeHeight(e){let[t,n]=U9(this.grid,0,e,1),r=K9(this.parentHeight-n-this.top,this.bounds.minBottom,this.bounds.maxBottom),i=this.right;this.lockAspectRatio&&(i=this.right-(this.bottom-r)*this.aspectFactor);let a=W9(this.parentWidth,this.left,i),o=G9(this.parentHeight,this.top,r);this.right=i,this.bottom=r,this.width=a,this.height=o},handleUp(e){this.handle=null,this.resetBoundsAndMouseState(),this.dragEnable=!1,this.resizeEnable=!1,this.resizing&&(this.resizing=!1,this.$emit(`resizeStop`,this.left,this.top,this.width,this.height)),this.dragging&&(this.dragging=!1,this.$emit(`dragStop`,this.left,this.top)),J9(document.documentElement,X9.move,this.handleResize)}},computed:{style(){return{transform:`translate(${this.left}px, ${this.top}px)`,width:this.computedWidth,height:this.computedHeight,zIndex:this.zIndex,...this.dragging&&this.disableUserSelect?EGt:DGt}},actualHandles(){return this.resizable?this.handles:[]},computedWidth(){return this.w===`auto`&&!this.widthTouched?`auto`:this.width+`px`},computedHeight(){return this.h===`auto`&&!this.heightTouched?`auto`:this.height+`px`},minW(){return this.minWidth},minH(){return this.minHeight},maxW(){return this.maxWidth},maxH(){return this.maxHeight},resizingOnX(){return!!this.handle&&(this.handle.includes(`l`)||this.handle.includes(`r`))},resizingOnY(){return!!this.handle&&(this.handle.includes(`t`)||this.handle.includes(`b`))},isCornerHandle(){return!!this.handle&&[`tl`,`tr`,`br`,`bl`].includes(this.handle)}},watch:{active(e){this.enabled=e,e?this.$emit(`activated`):this.$emit(`deactivated`)},z(e){(e>=0||e===`auto`)&&(this.zIndex=e)},x(e){this.resizing||this.dragging||(this.parent&&(this.bounds=this.calcDragLimits()),this.moveHorizontally(e))},y(e){this.resizing||this.dragging||(this.parent&&(this.bounds=this.calcDragLimits()),this.moveVertically(e))},lockAspectRatio(e){e?this.aspectFactor=this.width/this.height:this.aspectFactor=void 0},w(e){this.resizing||this.dragging||(this.parent&&(this.bounds=this.calcResizeLimits()),this.changeWidth(e))},h(e){this.resizing||this.dragging||(this.parent&&(this.bounds=this.calcResizeLimits()),this.changeHeight(e))}}},kGt=[`onMousedown`,`onTouchstart`];function AGt(e,n,r,i,a,o){return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{style:(0,t.normalizeStyle)(o.style),class:(0,t.normalizeClass)([{[r.classNameActive]:e.enabled,[r.classNameDragging]:e.dragging,[r.classNameResizing]:e.resizing,[r.classNameDraggable]:r.draggable,[r.classNameResizable]:r.resizable},r.className]),onMousedown:n[0]||=(...e)=>o.elementMouseDown&&o.elementMouseDown(...e),onTouchstart:n[1]||=(...e)=>o.elementTouchDown&&o.elementTouchDown(...e)},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(o.actualHandles,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([r.classNameHandle,r.classNameHandle+`-`+n]),style:(0,t.normalizeStyle)({display:e.enabled?`block`:`none`}),onMousedown:(0,t.withModifiers)(e=>o.handleDown(n,e),[`stop`,`prevent`]),onTouchstart:(0,t.withModifiers)(e=>o.handleTouchDown(n,e),[`stop`,`prevent`])},[(0,t.renderSlot)(e.$slots,n)],46,kGt))),128)),(0,t.renderSlot)(e.$slots,`default`)],38)}var Z9=TGt(OGt,[[`render`,AGt]]);function Q9(e){Q9.installed||(Q9.installed=!0,e.component(`VueDraggableResizable`,Z9))}var jGt={install:Q9},$9=null;typeof window<`u`?$9=window.Vue:typeof global<`u`&&($9=global.Vue),$9&&$9.use(jGt);var MGt=3;function NGt(e={},n){let r=e.initWidth||400,i=e.minWidth||400,a=e.minHeight||400,o=e.maxWidthPercent||40,s=e.compressedHeight||800,l=e.compressedPadding===void 0?0:e.compressedPadding,u=(0,t.ref)(e.defaultLeft===void 0?window.innerWidth-r:e.defaultLeft),d=(0,t.ref)(e.defaultTop===void 0?0:e.defaultTop),f=(0,t.ref)(e.defaultHeight===void 0?window.innerHeight-(e.defaultTop===void 0?0:e.defaultTop):e.defaultHeight),p=(0,t.ref)(r),m=(0,t.ref)(d.value),h=(0,t.ref)(u.value),g=(0,t.ref)(p.value),_=(0,t.ref)(f.value),v=(0,t.ref)(Math.max(window.innerWidth*(o/100),g.value)),y=(0,t.ref)(!1),b=(0,t.ref)(0),x=null,S=null,C=0,w=0,T=!1,E=null,D=(0,t.ref)(!1),O=e=>{let t=window.innerWidth,n={...e};return n.width>t&&(n.width=t),n.x+n.width>t&&(n.x=t-n.width),n.x<0&&(n.x=0),n},k=()=>({x:h.value,y:m.value,width:g.value,height:_.value}),A=(e,t)=>{D.value&&(E!==null&&Math.abs(e-E.x)<=MGt&&Math.abs(t-E.width)<=MGt||(x=null,T=!1))},j=(e,t)=>{h.value=e,m.value=t,b.value=e-(window.innerWidth-g.value),A(e,g.value),n?.onDragging?.(k())},M=(e,t,r,i)=>{h.value=e,m.value=t,g.value=Math.min(r,v.value),_.value=i,A(e,g.value),n?.onResizing?.(k())},N=(e,t)=>{h.value=e,m.value=t,b.value=e-(window.innerWidth-g.value),A(e,g.value),S=D.value?k():null,n?.onDragStop?.(k())},P=(e,t,r,i)=>{h.value=e,m.value=t,g.value=Math.min(r,v.value),_.value=i,A(e,g.value),S=D.value?k():null,n?.onResizeStop?.(k())},F=()=>{v.value=Math.max(window.innerWidth*(o/100),g.value),(0,t.nextTick)(()=>{if(y.value)h.value=window.innerWidth-g.value-l,m.value=window.innerHeight-s-l;else{let e=window.innerWidth-g.value-b.value;h.value=Math.max(0,e),setTimeout(()=>{_.value=window.innerHeight-m.value},0)}g.value>v.value&&(g.value=v.value)})},I=()=>{y.value?(m.value=d.value,(0,t.nextTick)(()=>{_.value=f.value,h.value=u.value,g.value=p.value})):(m.value=window.innerHeight-s-l,h.value=u.value-l,g.value=r,_.value=s),y.value=!y.value},L=(e,t)=>{h.value=e,m.value=t,b.value=e-(window.innerWidth-g.value)},R=(e,t)=>{g.value=Math.max(i,Math.min(e,v.value)),_.value=Math.max(a,t)},ee=(e,t,n,r)=>{L(e,t),R(n,r)},z=()=>{b.value=h.value-(window.innerWidth-g.value)},B=async(e,n,r,i,a=`expand`)=>{let o=n.x!==e.x,s=n.width!==e.width,l=async()=>{o&&(L(n.x,n.y),await(0,t.nextTick)())},u=async()=>{i?.onBeforeSizeChange?.(),s&&(R(n.width,n.height),await(0,t.nextTick)())};try{if(a===`expand`){if(await l(),r!==w)return;await u();return}if(await u(),r!==w)return;await l()}finally{z(),E=k()}};return(0,t.onMounted)(()=>{window.addEventListener(`resize`,F)}),(0,t.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,F)}),{minWidth:i,minHeight:a,maxWidth:v,top:m,left:h,width:g,height:_,isCompressed:y,isSidePanelExpanded:D,handleDragging:j,handleResizing:M,handleDragStop:N,handleResizeStop:P,toggleCompression:I,updatePosition:L,updateSize:R,updatePositionAndSize:ee,expandForSidePanel:async(e,t)=>{if(D.value)return;let n=k();x={...n},D.value=!0;let r=++w,a=window.innerWidth,o=i+e;if(n.width>=o){C=0,T=!1,S={...n},E={...n},t?.onBeforeSizeChange?.();return}let s=S?.width??n.width+e;s=Math.min(s,v.value,a),s=Math.max(s,o,i);let l=Math.max(0,s-n.width),u=a-(n.x+n.width),d=Math.max(0,l-u),f=Math.max(0,n.x-d);s=Math.min(s,a-f),C=Math.max(0,s-n.width);let p=O({x:f,y:n.y,width:s,height:n.height});T=p.x!==n.x,await B(n,p,r,t,`expand`),r===w&&(S=k())},collapseSidePanel:async e=>{if(!D.value)return;let t=k();S={...t},D.value=!1;let n=++w,r=x,a=T&&r!==null,o=r?.width??Math.max(i,t.width-C),s=O({x:a&&r?r.x:t.x,y:t.y,width:o,height:t.height});T=!1,await B(t,s,n,e,`collapse`)},abortSidePanelSequence:()=>{w+=1,D.value=!1,T=!1,x&&(L(x.x,x.y),R(x.width,x.height)),z(),E=k()}}}var PGt={class:`draggable-container-content`},FGt=w((0,t.defineComponent)({__name:`draggable-container`,props:{className:{default:``},compressedHeight:{default:800},compressedPadding:{default:0},defaultHeight:{default:void 0},defaultWidth:{default:400},defaultX:{default:void 0},defaultY:{default:0},draggable:{type:Boolean,default:!0},dragHandle:{default:`.drag-handle`},maxWidth:{default:void 0},maxWidthPercent:{default:80},minHeight:{default:400},minWidth:{default:400},resizable:{type:Boolean,default:!0},teleportTo:{default:`body`},visible:{type:Boolean,default:!1}},emits:[`dragging`,`resizing`,`drag-stop`,`resize-stop`,`compression-change`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(!1),{minWidth:s,minHeight:l,maxWidth:u,top:d,left:f,width:p,height:m,isCompressed:h,isSidePanelExpanded:g,handleDragging:_,handleResizing:v,handleDragStop:y,handleResizeStop:b,toggleCompression:x,updatePosition:S,updateSize:C,updatePositionAndSize:w,expandForSidePanel:T,collapseSidePanel:E,abortSidePanelSequence:D}=NGt({initWidth:i.defaultWidth,minWidth:i.minWidth,minHeight:i.minHeight,maxWidthPercent:i.maxWidthPercent,compressedHeight:i.compressedHeight,defaultHeight:i.defaultHeight,defaultTop:i.defaultY,defaultLeft:i.defaultX,compressedPadding:i.compressedPadding},{onDragStop:e=>a(`drag-stop`,e),onResizeStop:e=>a(`resize-stop`,e),onDragging:e=>a(`dragging`,e),onResizing:e=>a(`resizing`,e)}),O=(0,t.computed)(()=>({"--draggable-max-width":typeof i.maxWidth==`number`?`${i.maxWidth}px`:i.maxWidth??`${u.value}px`})),k=(0,t.computed)(()=>({x:f.value,y:d.value,width:p.value,height:m.value})),A=()=>{document.querySelectorAll(`iframe`).forEach(e=>{e.style.pointerEvents=`none`})},j=()=>{document.querySelectorAll(`iframe`).forEach(e=>{e.style.pointerEvents=``})},M=(e,t)=>{o.value||(o.value=!0,A()),_(e,t)},N=(e,t,n,r)=>{o.value||(o.value=!0,A()),v(e,t,n,r)},P=(e,t)=>{y(e,t),o.value=!1,j()},F=(e,t,n,r)=>{b(e,t,n,r),o.value=!1,j()};return(0,t.watch)(h,e=>{a(`compression-change`,e)}),n({updatePosition:S,updateSize:C,updatePositionAndSize:w,toggleCompression:x,expandForSidePanel:T,collapseSidePanel:E,abortSidePanelSequence:D,positionAndSize:k,isCompressed:h,isSidePanelExpanded:g}),(e,n)=>(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Z9),{ref:`draggableRef`,active:i.visible,class:(0,t.normalizeClass)([`draggable-container-wrapper`,i.className,{"is-dragging-or-resizing":o.value}]),"class-name":`draggable-container-inner`,"drag-handle":i.dragHandle,draggable:i.draggable,h:(0,t.unref)(m),"max-width":(0,t.unref)(u),"min-height":(0,t.unref)(l),"min-width":(0,t.unref)(s),parent:!0,"prevent-deactivation":!0,resizable:i.resizable,style:(0,t.normalizeStyle)(O.value),w:(0,t.unref)(p),x:(0,t.unref)(f),y:(0,t.unref)(d),onDragStop:P,onDragging:M,onResizeStop:F,onResizing:N},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,PGt,[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)])]),_:3},8,[`active`,`class`,`drag-handle`,`draggable`,`h`,`max-width`,`min-height`,`min-width`,`resizable`,`style`,`w`,`x`,`y`])),[[t.vShow,i.visible]])}}),[[`__scopeId`,`data-v-7417a71b`]]),IGt={class:`nimbus-bkai-wrapper`},LGt=[`width`,`height`,`src`],RGt=w((0,t.defineComponent)({name:`NimbusButton`,__name:`nimbus`,props:{isPanelShow:{type:Boolean},isMinimize:{type:Boolean},size:{default:`normal`}},emits:[`click`,`minimize`,`update:isMinimize`],setup(e,{emit:n}){(0,t.useCssVars)(e=>({v05a8b16e:`${o.value.container}px`,v4e1cf4ca:`${o.value.wrapper}px`,v5ab0c513:`${o.value.mini.right}px`,v40c13a80:`${o.value.mini.size}px`,v0d35a9ef:`${o.value.mini.fontSize}px`}));let r=e,i=n,a={small:{container:40,wrapper:32,img:24,mini:{size:14,fontSize:10,right:-4}},normal:{container:48,wrapper:40,img:32,mini:{size:16,fontSize:12,right:-6}},large:{container:56,wrapper:48,img:40,mini:{size:18,fontSize:14,right:-6}}},o=(0,t.computed)(()=>a[r.size]),s=(0,t.ref)(null),l=(0,t.ref)(null),{nimbusLeft:u,nimbusTop:d,isMinimize:f,handleClick:p,handleMinimize:m,handleDragging:h,handleMouseEnter:g,handleMouseLeave:_,handleMouseDown:v,handleMouseUp:y}=hGt(i,r.isMinimize);(0,t.watch)(f,e=>{i(`update:isMinimize`,e)});let b=(0,t.computed)(()=>f.value?xl(`恢复默认大小`):xl(`最小化,将缩成锚点`)),{createTooltip:x,destroyAll:S}=bGt({theme:`ai-blueking`,delay:[0,0]}),C=()=>{(0,t.nextTick)(()=>{w()})},w=()=>{S(),s.value&&!f.value&&x(s.value,Wge(),{placement:`left`}),l.value&&x(l.value,b.value,{placement:`top`})};return(0,t.watch)(()=>f.value,()=>{(0,t.nextTick)(()=>{w()})}),(0,t.onMounted)(()=>{(0,t.nextTick)(()=>{w()}),window.addEventListener(`resize`,C)}),(0,t.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,C)}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(Z9),{active:!e.isPanelShow,axis:`y`,draggable:!0,h:o.value.container,parent:!0,"prevent-deactivation":!0,resizable:!1,w:o.value.container,x:(0,t.unref)(u),y:(0,t.unref)(d),onDragging:(0,t.unref)(h)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{ref_key:`nimbusContainerRef`,ref:s,class:(0,t.normalizeClass)([`nimbus-container`,{"is-minimize":(0,t.unref)(f)}]),onClick:r[1]||=(...e)=>(0,t.unref)(p)&&(0,t.unref)(p)(...e),onMousedown:r[2]||=(...e)=>(0,t.unref)(v)&&(0,t.unref)(v)(...e),onMouseenter:r[3]||=(...e)=>(0,t.unref)(g)&&(0,t.unref)(g)(...e),onMouseleave:r[4]||=(...e)=>(0,t.unref)(_)&&(0,t.unref)(_)(...e),onMouseup:r[5]||=(...e)=>(0,t.unref)(y)&&(0,t.unref)(y)(...e)},[(0,t.createElementVNode)(`div`,IGt,[(0,t.createElementVNode)(`img`,{width:o.value.img,height:o.value.img,src:(0,t.unref)(_Wt),alt:`nimbus`},null,8,LGt)]),(0,t.createElementVNode)(`i`,{ref_key:`minimizeButtonRef`,ref:l,class:(0,t.normalizeClass)([`nimbus-mini bkai-icon`,(0,t.unref)(f)?`bkai-yinyong`:`bkai-minus-line`]),onClick:r[0]||=(0,t.withModifiers)((...e)=>(0,t.unref)(m)&&(0,t.unref)(m)(...e),[`stop`])},null,2)],34)]),_:1},8,[`active`,`h`,`w`,`x`,`y`,`onDragging`]))}}),[[`__scopeId`,`data-v-26b6f3ea`]]),zGt=w((0,t.defineComponent)({inheritAttrs:!1,__name:`ai-blueking`,props:(0,t.mergeDefaults)({alwaysCreateNewSession:{type:Boolean},autoSwitchToInitialSession:{type:Boolean},defaultChatInputPosition:{},defaultHeight:{},defaultLeft:{},defaultMinimize:{type:Boolean},defaultTop:{},defaultWidth:{},disabledInput:{type:Boolean},draggable:{type:Boolean},dropdownMenuConfig:{},enableChatSession:{type:Boolean},enableModelSelect:{type:Boolean},models:{},enablePopup:{type:Boolean},errorToast:{type:Boolean},executionTabVisible:{type:Boolean},extCls:{},getSideRenderComponent:{type:Function},getSideTabRenderComponent:{type:Function},helloText:{},messageTools:{},updateTools:{},hideDefaultTrigger:{type:Boolean},hideHeader:{type:Boolean},hideNimbus:{type:Boolean},ignoreErrors:{},initialSessionCode:{},loadRecentSessionOnMount:{type:Boolean},maxWidth:{},miniPadding:{},nimbusSize:{},onCustomTabChange:{type:Function},placeholder:{},prompts:{},renderMode:{},requestOptions:{},resources:{},shortcutLimit:{},shortcuts:{},showCompressionIcon:{type:Boolean},showHistoryIcon:{type:Boolean},showMoreIcon:{type:Boolean},showNewChatIcon:{type:Boolean},teleportTo:{},title:{},url:{},useAgentName:{type:Boolean},beforeNimbusClick:{type:Function},shortcutFilter:{type:Function},resizeProps:{},size:{},timezone:{}},xGt),emits:[`show`,`close`,`dragging`,`resizing`,`drag-stop`,`resize-stop`,`send-message`,`receive-start`,`receive-text`,`receive-end`,`stop`,`shortcut-click`,`session-initialized`,`sdk-error`,`transfer-messages`,`share-messages`,`confirm-share`,`agent-action`,`new-chat`,`new-chat-created`,`history-click`,`auto-generate-name`,`help-click`,`rename`,`share`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.useAttrs)(),{chatHelper:s,componentManager:l,modelSelection:u,sessionBusinessManager:d,shareBusinessManager:f,shortcutManager:p,forwarders:m,forwardToManager:h,chatBotRef:g,draggableContainerRef:_,panelVisible:v,nimbusMinimized:y,normalizedUrl:b,agentName:x,currentSession:S,isCompressed:C,isWelcomeState:w,handleError:T,reportSdkError:E,ensureSessionReady:D,updateAgentInfo:O}=pGt({props:i,emit:a}),k=(0,t.computed)(()=>u.selectedLlmCode.value),{show:A,hide:j,handleShow:M,handleClose:N,handleNimbusClick:P,handleDragging:F,handleResizing:I,handleDragStop:L,handleResizeStop:R,handleToggleCompression:ee,handleCompressionChange:z,handleExecutionPanelChange:B,handleToggleAside:V,handleAsideCollapsedUpdate:te,asideCollapsed:ne,sendMessage:re,handleReceiveStart:ie,handleReceiveText:ae,handleReceiveEnd:H,handleStop:oe,stopGeneration:se,setCiteText:ce,focusInput:le,selectShortcut:ue,sendShortcut:de,getChatHelper:fe,updatePosition:pe,updateSize:me,updatePositionAndSize:he,handleShortcutClick:ge}=_Gt({componentManager:l,chatBotRef:g,forwarders:m,forwardToManager:h,beforeNimbusClick:i.beforeNimbusClick,ensureSessionReady:D}),{sessionName:_e,hasPermission:ve,hasSessionContents:ye,autoGenerateLoading:be,handleNewChat:xe,handleNewChatCreated:Se,handleHistoryClick:Ce,handleHistorySessionSwitch:we,handleHistorySessionDelete:Te,handleHistorySessionRename:Ee,handleAutoGenerateName:De,handleHelpClick:Oe,handleRename:ke,handleSessionRenamed:Ae,handleSessionSwitched:je,addNewSession:Me,switchToSession:Ne,updateSessionName:Pe}=vGt({chatHelper:s,sessionBusinessManager:d,chatBotRef:g,forwarders:m,reportSdkError:E,currentSession:S}),{isShareLoading:Fe,handleShare:Ie,handleCancelShare:Le,handleConfirmShare:Re}=yGt({shareBusinessManager:f,chatBotRef:g,emit:(e,t,n)=>a(e,t,n),forwarders:m,reportSdkError:E}),{aiSelectionVisible:ze,filteredPopupShortcuts:Be,handleSelectionChange:Ve,handleAiSelectionShortcut:He}=mGt({shortcutManager:p,chatBotRef:g,forwardToManager:h,show:A,props:i}),Ue=e=>{ye.value=!0,m.sendMessage(e)};return n({show:A,handleShow:M,handleClose:N,hide:j,sendMessage:re,selectShortcut:ue,sendShortcut:de,getChatHelper:fe,stopGeneration:se,addNewSession:Me,switchToSession:Ne,updateSessionName:Pe,updatePosition:pe,updateSize:me,updatePositionAndSize:he,setCiteText:ce,focusInput:le,updateAgentInfo:O}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:i.teleportTo},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`ai-blueking-v2`,i.extCls,(0,t.unref)(o).class])},[(0,t.createCommentVNode)(` 可拖拽容器 `),(0,t.createVNode)((0,t.unref)(FGt),{ref_key:`draggableContainerRef`,ref:_,"compressed-padding":i.miniPadding,"default-height":i.defaultHeight,"default-width":i.defaultWidth,"default-x":i.defaultLeft,"default-y":i.defaultTop,"drag-handle":`.drag-handle`,draggable:i.draggable,"max-width":i.maxWidth,"max-width-percent":80,visible:(0,t.unref)(v),onCompressionChange:(0,t.unref)(z),onDragStop:(0,t.unref)(L),onDragging:(0,t.unref)(F),onResizeStop:(0,t.unref)(R),onResizing:(0,t.unref)(I)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`ai-blueking-panel`,{"has-messages":!(0,t.unref)(w)}])},[(0,t.createCommentVNode)(` 独立的 Header 组件 `),i.hideHeader?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createBlock)(DWt,{key:0,"agent-name":(0,t.unref)(x),"aside-collapsed":(0,t.unref)(ne),"auto-generate-loading":(0,t.unref)(be),"chat-helper":(0,t.unref)(s),draggable:i.draggable,"dropdown-menu-config":i.dropdownMenuConfig,"enable-chat-session":i.enableChatSession,"has-permission":(0,t.unref)(ve),"has-session-contents":(0,t.unref)(ye),"is-compression-height":(0,t.unref)(C),"render-mode":i.renderMode,"selected-llm-code":k.value,"session-business-manager":(0,t.unref)(d),"session-name":(0,t.unref)(_e),"show-compression-icon":i.showCompressionIcon,"show-history-icon":i.showHistoryIcon,"show-more-icon":i.showMoreIcon,"show-new-chat-icon":i.showNewChatIcon,title:i.title,onAutoGenerateName:(0,t.unref)(De),onClose:(0,t.unref)(N),onHelpClick:(0,t.unref)(Oe),onHistoryClick:(0,t.unref)(Ce),onHistorySessionDelete:(0,t.unref)(Te),onHistorySessionRename:(0,t.unref)(Ee),onHistorySessionSwitch:(0,t.unref)(we),onNewChat:(0,t.unref)(xe),onNewChatCreated:(0,t.unref)(Se),onRename:(0,t.unref)(ke),onShare:(0,t.unref)(Ie),onToggleAside:(0,t.unref)(V),onToggleCompression:(0,t.unref)(ee)},(0,t.createSlots)({_:2},[e.$slots.headerLeft?{name:`headerLeft`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`headerLeft`,{},void 0,!0)]),key:`0`}:void 0]),1032,`agent-name.aside-collapsed.auto-generate-loading.chat-helper.draggable.dropdown-menu-config.enable-chat-session.has-permission.has-session-contents.is-compression-height.render-mode.selected-llm-code.session-business-manager.session-name.show-compression-icon.show-history-icon.show-more-icon.show-new-chat-icon.title.onAutoGenerateName.onClose.onHelpClick.onHistoryClick.onHistorySessionDelete.onHistorySessionRename.onHistorySessionSwitch.onNewChat.onNewChatCreated.onRename.onShare.onToggleAside.onToggleCompression`.split(`.`))),(0,t.createCommentVNode)(` ChatBot 核心组件(仅聊天区域) `),(0,t.createVNode)(aGt,{ref_key:`chatBotRef`,ref:g,"always-create-new-session":i.alwaysCreateNewSession,"aside-collapsed":(0,t.unref)(ne),"auto-load":i.loadRecentSessionOnMount,"chat-helper":(0,t.unref)(s),"enable-model-select":i.enableModelSelect,"error-toast":!1,"execution-tab-visible":i.executionTabVisible,"get-side-render-component":i.getSideRenderComponent,"get-side-tab-render-component":i.getSideTabRenderComponent,"hello-text":i.helloText,"message-tools":i.messageTools,"model-selection-manager":(0,t.unref)(u),models:i.models,"on-custom-tab-change":i.onCustomTabChange,placeholder:i.placeholder,prompts:i.prompts,"render-mode":i.renderMode,"request-options":i.requestOptions,"resize-props":i.resizeProps,resources:i.resources,"session-code":i.initialSessionCode,"share-loading":(0,t.unref)(Fe),shortcuts:i.shortcuts,size:i.size,timezone:i.timezone,style:(0,t.normalizeStyle)({height:i.hideHeader?`100%`:`calc(100% - 48px)`}),"update-tools":i.updateTools,url:(0,t.unref)(b),"use-agent-name":i.useAgentName,onAgentAction:n[0]||=(e,t)=>a(`agent-action`,e,t),onCancelShare:(0,t.unref)(Le),onConfirmShare:n[1]||=(e,n)=>(0,t.unref)(Re)(e,n),onError:n[2]||=e=>(0,t.unref)(T)(e),onExecutionPanelChange:(0,t.unref)(B),onReceiveEnd:(0,t.unref)(H),onReceiveStart:(0,t.unref)(ie),onReceiveText:(0,t.unref)(ae),onRename:(0,t.unref)(Ae),onRequestShare:(0,t.unref)(Ie),onSendMessage:n[3]||=e=>Ue(e),onSessionSwitched:n[4]||=e=>(0,t.unref)(je)(e),onShortcutClick:(0,t.unref)(ge),onStop:(0,t.unref)(oe),"onUpdate:asideCollapsed":(0,t.unref)(te)},(0,t.createSlots)({_:2},[e.$slots.welcome?{name:`welcome`,fn:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`welcome`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)),void 0,!0)]),key:`0`}:void 0,e.$slots.codeHeader?{name:`codeHeader`,fn:(0,t.withCtx)(n=>[(0,t.renderSlot)(e.$slots,`codeHeader`,(0,t.normalizeProps)((0,t.guardReactiveProps)(n)),void 0,!0)]),key:`1`}:void 0,e.$slots.message?{name:`message`,fn:(0,t.withCtx)(({message:n,messageToolsStatus:r,onInterruptResume:i})=>[(0,t.renderSlot)(e.$slots,`message`,{message:n,messageToolsStatus:r,onInterruptResume:i},void 0,!0)]),key:`2`}:void 0]),1032,`always-create-new-session.aside-collapsed.auto-load.chat-helper.enable-model-select.execution-tab-visible.get-side-render-component.get-side-tab-render-component.hello-text.message-tools.model-selection-manager.models.on-custom-tab-change.placeholder.prompts.render-mode.request-options.resize-props.resources.session-code.share-loading.shortcuts.size.timezone.style.update-tools.url.use-agent-name.onCancelShare.onExecutionPanelChange.onReceiveEnd.onReceiveStart.onReceiveText.onRename.onRequestShare.onShortcutClick.onStop.onUpdate:asideCollapsed`.split(`.`))],2)]),_:3},8,[`compressed-padding`,`default-height`,`default-width`,`default-x`,`default-y`,`draggable`,`max-width`,`visible`,`onCompressionChange`,`onDragStop`,`onDragging`,`onResizeStop`,`onResizing`]),(0,t.createCommentVNode)(` Nimbus 悬浮球 `),i.hideNimbus?(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createBlock)(RGt,{key:0,"is-minimize":(0,t.unref)(y),"onUpdate:isMinimize":n[5]||=e=>(0,t.isRef)(y)?y.value=e:null,"is-panel-show":(0,t.unref)(v),"onUpdate:isPanelShow":n[6]||=e=>(0,t.isRef)(v)?v.value=e:null,"default-minimize":i.defaultMinimize,size:i.nimbusSize,onClick:(0,t.unref)(P)},null,8,[`is-minimize`,`is-panel-show`,`default-minimize`,`size`,`onClick`])),(0,t.createCommentVNode)(` 划词选择弹窗(使用 chat-x 的 AiSelection 组件) `),i.enablePopup?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(iSe),{key:1,visible:(0,t.unref)(ze),"onUpdate:visible":n[7]||=e=>(0,t.isRef)(ze)?ze.value=e:null,"exclude-selectors":[`.draggable-container-wrapper`],"max-shortcut-count":i.shortcutLimit,shortcuts:(0,t.unref)(Be),onSelectShortcut:(0,t.unref)(He),onSelectionChange:(0,t.unref)(Ve)},null,8,[`visible`,`max-shortcut-count`,`shortcuts`,`onSelectShortcut`,`onSelectionChange`])):(0,t.createCommentVNode)(`v-if`,!0)],2)],8,[`to`]))}}),[[`__scopeId`,`data-v-af633e66`]]),BGt=[`close`,`show`,`stop`,`shortcut-click`,`send-message`,`receive-start`,`receive-end`,`receive-text`,`session-initialized`,`drag-stop`,`resize-stop`,`dragging`,`resizing`,`transfer-messages`,`share-messages`,`confirm-share`,`agent-action`,`sdk-error`,`new-chat`,`new-chat-created`,`history-click`,`auto-generate-name`,`help-click`,`rename`,`share`],VGt=[`show`,`handleShow`,`handleClose`,`hide`,`sendMessage`,`stopGeneration`,`addNewSession`,`switchToSession`,`updateSessionName`,`updatePosition`,`updateSize`,`updatePositionAndSize`,`setCiteText`,`focusInput`,`getChatHelper`,`selectShortcut`,`sendShortcut`],HGt=oGt(zGt,{name:`AIBluekingV2`,props:{extCls:{type:String,default:``},shortcuts:{type:Array,default:()=>[]},enablePopup:{type:Boolean,default:!0},url:{type:String,default:``},prompts:{type:Array,default:()=>[]},teleportTo:{type:String,default:`body`},title:{type:String,default:``},helloText:{type:String,default:()=>xl(`你好,我是小鲸`)},useAgentName:{type:Boolean,default:!1},requestOptions:{type:Object,default:()=>({})},defaultMinimize:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1},hideNimbus:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},defaultWidth:{type:Number,default:400},defaultHeight:{type:Number,default:void 0},defaultLeft:{type:Number,default:void 0},defaultTop:{type:Number,default:0},disabledInput:{type:Boolean,default:!1},showCompressionIcon:{type:Boolean,default:!0},showMoreIcon:{type:Boolean,default:!0},showHistoryIcon:{type:Boolean,default:!0},showNewChatIcon:{type:Boolean,default:!0},defaultChatInputPosition:{type:String,default:void 0},maxWidth:{type:[Number,String],default:1e3},initialSessionCode:{type:String,default:``},autoSwitchToInitialSession:{type:Boolean,default:!1},alwaysCreateNewSession:{type:Boolean,default:!1},loadRecentSessionOnMount:{type:Boolean,default:!0},shortcutLimit:{type:Number,default:3},shortcutFilter:{type:Function,default:void 0},placeholder:{type:String,default:void 0},enableChatSession:{type:Boolean,default:!0},nimbusSize:{type:String,default:`normal`},miniPadding:{type:Number,default:0},dropdownMenuConfig:{type:Object,default:()=>({showRename:!0,showAutoGenerate:!0,showShare:!0})},resources:{type:Array,default:void 0},messageTools:{type:Array,default:void 0},updateTools:{type:Array,default:void 0},hideDefaultTrigger:{type:Boolean,default:!1},beforeNimbusClick:{type:Function,default:void 0},getSideRenderComponent:{type:Function,default:void 0},getSideTabRenderComponent:{type:Function,default:void 0},onCustomTabChange:{type:Function,default:void 0},executionTabVisible:{type:Boolean,default:!0},resizeProps:{type:Object,default:void 0},size:{type:String,default:void 0},timezone:{type:String,default:void 0}},emitNames:[...BGt],exposeKeys:[...VGt],slots:[`codeHeader`,`headerLeft`,`message`,`welcome`],deepWatchProps:[`requestOptions`,`shortcuts`,`beforeNimbusClick`],methods:{show(){return console.warn(`AIBluekingV2: show method not ready`),Promise.resolve()},handleShow(){return console.warn(`AIBluekingV2: handleShow method not ready`),Promise.resolve()},handleClose(){console.warn(`AIBluekingV2: handleClose method not ready`)},hide(){console.warn(`AIBluekingV2: hide method not ready`)},sendMessage(){return console.warn(`AIBluekingV2: sendMessage method not ready`),Promise.resolve()},stopGeneration(){console.warn(`AIBluekingV2: stopGeneration method not ready`)},addNewSession(){return console.warn(`AIBluekingV2: addNewSession method not ready`),Promise.resolve()},switchToSession(){return console.warn(`AIBluekingV2: switchToSession method not ready`),Promise.resolve()},updateSessionName(){return console.warn(`AIBluekingV2: updateSessionName method not ready`),Promise.resolve()},updatePosition(){console.warn(`AIBluekingV2: updatePosition method not ready`)},updateSize(){console.warn(`AIBluekingV2: updateSize method not ready`)},updatePositionAndSize(){console.warn(`AIBluekingV2: updatePositionAndSize method not ready`)},setCiteText(){console.warn(`AIBluekingV2: setCiteText method not ready`)},focusInput(){console.warn(`AIBluekingV2: focusInput method not ready`)},getChatHelper(){return console.warn(`AIBluekingV2: getChatHelper method not ready`),null},selectShortcut(){console.warn(`AIBluekingV2: selectShortcut method not ready`)},sendShortcut(){return console.warn(`AIBluekingV2: sendShortcut method not ready`),Promise.resolve()}}}),UGt=[`send-message`,`error`,`stop`,`receive-start`,`receive-end`,`receive-text`,`shortcut-click`,`session-switched`,`agent-info-loaded`,`request-share`,`confirm-share`,`cancel-share`,`execution-panel-change`,`update:asideCollapsed`,`feedback`,`agent-action`,`rename`],WGt=[`sendMessage`,`stopGeneration`,`focusInput`,`setCiteText`,`switchSession`,`selectShortcut`,`sendShortcut`,`enterShareMode`,`exitShareMode`,`getChatHelper`,`currentSession`,`isGenerating`,`messages`,`isReady`,`whenReady`];e.ChatBotV2=oGt(aGt,{name:`ChatBotV2`,props:{chatHelper:{type:Object,default:void 0},url:{type:String,default:``},height:{type:[Number,String],default:void 0},maxWidth:{type:[Number,String],default:void 0},extCls:{type:String,default:``},helloText:{type:String,default:void 0},useAgentName:{type:Boolean,default:!1},placeholder:{type:String,default:void 0},shortcuts:{type:Array,default:()=>[]},prompts:{type:Array,default:()=>[]},resources:{type:Array,default:()=>[]},requestOptions:{type:Object,default:()=>({})},messageToolsTippyOptions:{type:Object,default:void 0},messageTools:{type:Array,default:void 0},updateTools:{type:Array,default:void 0},enableSelection:{type:Boolean,default:!1},shareLoading:{type:Boolean,default:!1},autoLoad:{type:Boolean,default:!0},alwaysCreateNewSession:{type:Boolean,default:!1},sessionCode:{type:String,default:void 0},resizeProps:{type:Object,default:void 0},size:{type:String,default:void 0},timezone:{type:String,default:void 0},getSideRenderComponent:{type:Function,default:void 0},getSideTabRenderComponent:{type:Function,default:void 0},onCustomTabChange:{type:Function,default:void 0},executionTabVisible:{type:Boolean,default:!0}},emitNames:[...UGt],exposeKeys:[...WGt],slots:[`codeHeader`,`message`,`welcome`],deepWatchProps:[`requestOptions`,`shortcuts`,`beforeNimbusClick`]}),e.default=HGt,Object.defineProperty(e,`h`,{enumerable:!0,get:function(){return t.h}})});
|