netstar-ai-chat 1.2.0 → 1.2.2

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.
@@ -77,7 +77,7 @@ export declare class Langchain_py_AIMessage_V3 extends EventEmitter implements E
77
77
  supportsHistory(): boolean;
78
78
  private buildRequestHeaders;
79
79
  private checkAndHandleInterrupt;
80
- /** 将当前 blocks 推送到 ChatPanel */
80
+ /** 将当前 blocks 推送到 ChatPanel(子智能体流式中增量同步 subAgentBlocks) */
81
81
  private emitBlocksUpdate;
82
82
  private emitInterruptFromEntries;
83
83
  /** 将 subAccumulator 写入对应 task block */
package/dist/index.cjs CHANGED
@@ -337,15 +337,15 @@ summary tabindex target title type usemap value width wmode wrap onCopy onCut on
337
337
  onLoadstart onPause onPlay onPlaying onProgress onRatechange onSeeked onSeeking onStalled onSuspend onTimeupdate onVolumechange onWaiting onLoad onError`.split(/[\s\n]+/),YP=`aria-`,XP=`data-`;function ZP(e,t){return e.indexOf(t)===0}function QP(e,t=!1){let n;n=t===!1?{aria:!0,data:!0,attr:!0}:t===!0?{aria:!0}:{...t};let r={};return Object.keys(e).forEach(t=>{(n.aria&&(t===`role`||ZP(t,YP))||n.data&&ZP(t,XP)||n.attr&&(JP.includes(t)||JP.includes(t.toLowerCase())))&&(r[t]=e[t])}),r}function $P(e){let[t,n]=lO(e.value.length),r=(0,a.computed)(()=>e.value.slice(0,(0,a.unref)(t))),i=(0,a.computed)(()=>{let e=(0,a.unref)(r)[(0,a.unref)(r).length-1];return e?e.key:null});return(0,a.watch)(e,()=>{if(n(e.value.length),!((0,a.unref)(r).length&&(0,a.unref)(r).every((t,n)=>t.key===e.value[n]?.key))){if((0,a.unref)(r).length===0)n(1);else for(let t=0;t<(0,a.unref)(r).length;t+=1)if((0,a.unref)(r)[t].key!==e.value[t]?.key){n(t);break}}},{immediate:!0,deep:!0}),[r,qP(e=>{e===(0,a.unref)(i)&&n((0,a.unref)(t)+1)})]}function eF(e,t){let n=(e,n)=>typeof t.value==`function`?t.value(e,n):t&&t.value?.[e.role]||{};return(0,a.computed)(()=>(e.value||[]).map((e,t)=>{let r=e.key??`preset_${t}`;return{...n(e,t),...e,key:r}}))}var tF=1,nF=JD((0,a.defineComponent)({name:`AXBubbleList`,inheritAttrs:!1,__name:`BubbleList`,props:(0,a.mergeDefaults)({prefixCls:{type:String,required:!1},rootClassName:{type:String,required:!1},items:{type:Array,required:!1},autoScroll:{type:Boolean,required:!1},roles:{required:!1},onScroll:{type:Function,required:!1}},{autoScroll:!0}),setup(e,{expose:t}){let n=qD(e,[`prefixCls`,`rootClassName`,`items`,`autoScroll`,`roles`,`onScroll`]);(0,a.toRef)(e,`roles`),(0,a.toRef)(e,`items`),(0,a.toRef)(e,`prefixCls`);let r=(0,a.useAttrs)(),i=(0,a.useSlots)(),o=(0,a.computed)(()=>QP((0,a.mergeProps)(n,r),{attr:!0,aria:!0})),s=(0,a.ref)(e.items),c=(0,a.ref)(e.roles);(0,a.watch)(()=>e.items,()=>{s.value=e.items}),(0,a.watch)(()=>e.roles,()=>{c.value=e.roles});let l=(0,a.ref)(null),u=(0,a.ref)({}),{getPrefixCls:d}=KD(),f=d(`bubble`,e.prefixCls),p=`${f}-list`,[m,h,g]=BP(f),[_,v]=lO(!1);(0,a.watchPostEffect)(()=>{v(!0),(0,a.onWatcherCleanup)(()=>{v(!1)})});let[y,b]=$P(eF(s,c)),[x,S]=lO(!0),[C,w]=lO(0),T=t=>{var n;let r=t.target;S(r.scrollHeight-Math.abs(r.scrollTop)-r.clientHeight<=tF),(n=e.onScroll)==null||n.call(e,t)};(0,a.watch)([C,l,x],()=>{e.autoScroll&&(0,a.unref)(l)&&(0,a.unref)(x)&&(0,a.nextTick)(()=>{(0,a.unref)(l).scrollTo({top:(0,a.unref)(l).scrollHeight})})}),(0,a.watch)(()=>(0,a.unref)(y).length,()=>{if(e.autoScroll){let e=(0,a.unref)(y)[(0,a.unref)(y).length-2]?.key,t=(0,a.unref)(u)[e];if(t){let{nativeElement:e}=t,{top:n=0,bottom:r=0}=e?.getBoundingClientRect()??{},{top:i,bottom:o}=(0,a.unref)(l).getBoundingClientRect();n<o&&r>i&&(w((0,a.unref)(C)+1),S(!0))}}});let E=qP(()=>{e.autoScroll&&w((0,a.unref)(C)+1)}),D=(0,a.computed)(()=>({onUpdate:E}));return t({nativeElement:l,scrollTo:({key:e,offset:t,behavior:n=`smooth`,block:r})=>{if(typeof t==`number`)(0,a.unref)(l).scrollTo({top:t,behavior:n});else if(e!==void 0){let t=(0,a.unref)(u)[e];if(t){let i=(0,a.unref)(y).findIndex(t=>t.key===e);S(i===(0,a.unref)(y).length-1),t.nativeElement.scrollIntoView({behavior:n,block:r})}}}}),()=>m((0,a.createVNode)(GP,{value:D.value},{default:()=>[(0,a.createVNode)(`div`,(0,a.mergeProps)(o.value,{class:$(p,e.rootClassName,h.value,g,{[`${p}-reach-end`]:x.value}),ref:l,onScroll:T}),[(0,a.renderList)((0,a.unref)(y),({key:e,onTypingComplete:t,...n})=>(0,a.createVNode)(KP,(0,a.mergeProps)(n,{avatar:i.avatar?()=>i.avatar?.call(i,{item:{key:e,...n}}):n.avatar,header:i.header?.call(i,{item:{key:e,...n}})??n.header,footer:i.footer?.call(i,{item:{key:e,...n}})??n.footer,loadingRender:i.loading?()=>i.loading({item:{key:e,...n}}):n.loadingRender,content:i.message?.call(i,{item:{key:e,...n}})??n.content,key:e,_key:e,ref:t=>{t?u.value[e]=t:delete u.value[e]},typing:_.value?n.typing:!1,onTypingComplete:()=>{t?.(),b(e)}}),null))])]}))}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/bubble/BubbleList.vue`]]),rF=JD((0,a.defineComponent)({name:`AXConversationsItem`,__name:`ConversationsItem`,props:{info:{type:Object,required:!0},prefixCls:{type:String,required:!1},direction:{required:!1},menu:{type:Object,required:!1},active:{type:Boolean,required:!1},onClick:{type:Function,required:!1}},setup(e,{expose:t}){t();let n=qD(e,[`prefixCls`,`info`,`class`,`direction`,`onClick`,`active`,`menu`]);(0,a.toRef)(e,`class`);let r=(0,a.computed)(()=>QP(n,{aria:!0,data:!0,attr:!0})),i=e=>{e.stopPropagation()},o=(0,a.computed)(()=>e.info.disabled),[s,c]=lO(!1),[l,u]=lO(!1),d=(0,a.computed)(()=>$(e.class,`${e.prefixCls}-item`,{[`${e.prefixCls}-item-active`]:e.active&&!o.value},{[`${e.prefixCls}-item-disabled`]:o.value})),f=()=>{!o.value&&e.onClick&&e.onClick(e.info)},p=e=>{e&&u(!e)},m=(0,a.computed)(()=>e.menu?.trigger),h=(0,a.computed)(()=>{let{trigger:t,...n}=e.menu||{};return n}),g=(0,a.computed)(()=>h.value?.getPopupContainer),_=t=>{let n=(0,a.createVNode)(Rj,{onClick:i,class:`${e.prefixCls}-menu-icon`},null);return m.value?typeof m.value==`function`?m.value(t,{originNode:n}):m.value:n};return()=>(0,a.createVNode)(Dp,{title:e.info.label,open:s.value&&l.value,onOpenChange:u,placement:e.direction===`rtl`?`left`:`right`},{default:()=>[(0,a.createVNode)(`li`,(0,a.mergeProps)(r.value,{class:d.value,onClick:f}),[e.info.icon&&(0,a.createVNode)(`div`,{class:`${e.prefixCls}-icon`},[e.info.icon]),(0,a.createVNode)(zT.Text,{class:`${e.prefixCls}-label`,ellipsis:{onEllipsis:c}},{default:()=>[e.info.label]}),!o.value&&e.menu&&(0,a.createVNode)(hx,{placement:e.direction===`rtl`?`bottomLeft`:`bottomRight`,trigger:[`click`],disabled:o.value,onOpenChange:p,getPopupContainer:g.value},{default:()=>_(e.info),overlay:()=>(0,a.createVNode)(wg,h.value,null)})])]})}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/conversations/ConversationsItem.vue`]]),iF=Symbol(`GroupTitleContext`),aF=(0,a.shallowRef)(),oF=e=>{(0,a.provide)(iF,e),(0,a.watch)(e,()=>{aF.value=(0,a.unref)(e),(0,a.triggerRef)(aF)},{immediate:!0,deep:!0})},sF=()=>(0,a.inject)(iF,(0,a.computed)(()=>aF.value||{})),cF=(0,a.defineComponent)({props:{value:ZD()},setup(e,{slots:t}){return oF((0,a.computed)(()=>e.value)),()=>t.default?.call(t)}}),lF=JD((0,a.defineComponent)({name:`AXConversationsGroupTitle`,__name:`GroupTitle`,setup(e,{expose:t}){t();let n=(0,a.useSlots)(),r=sF(),i=(0,a.computed)(()=>n.default?.call(n));return()=>(0,a.createVNode)(`div`,{class:$(`${r.value.prefixCls}-group-title`)},[i.value&&(0,a.createVNode)(zT.Text,null,{default:()=>[i.value]})])}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/conversations/GroupTitle.vue`]]);function uF(e,t){let{defaultValue:n,value:r=(0,a.ref)()}=t||{},i=typeof e==`function`?e():e;r.value!==void 0&&(i=(0,a.unref)(r)),n!==void 0&&(i=typeof n==`function`?n():n);let o=(0,a.ref)(i),s=(0,a.ref)(i);(0,a.watchEffect)(()=>{let e=r.value===void 0?o.value:r.value;t.postState&&(e=t.postState(e)),s.value=e});function c(e){let n=s.value;o.value=e,(0,a.toRaw)(s.value)!==e&&t.onChange&&t.onChange(e,n)}return(0,a.watch)(r,()=>{o.value=r.value}),[s,c]}var dF=`__ungrouped`,fF=(e,t=[])=>{let n=(0,a.computed)(()=>{if(!(0,a.toValue)(e))return{enableGroup:!1,sort:void 0,title:void 0};let t={sort:void 0,title:void 0};return typeof(0,a.toValue)(e)==`object`&&(t={...t,...(0,a.toValue)(e)}),{enableGroup:!0,sort:t.sort,title:t.title}});return(0,a.computed)(()=>{if(!n.value.enableGroup)return{groupList:[{name:dF,data:(0,a.toValue)(t),title:void 0}],enableGroup:n.value.enableGroup};let e=(0,a.toValue)(t).reduce((e,t)=>{let n=t.group||dF;return e[n]||(e[n]=[]),e[n].push(t),e},{});return{groupList:(n.value.sort?Object.keys(e).sort(n.value.sort):Object.keys(e)).map(t=>({name:t===dF?void 0:t,title:n.value.title,data:e[t]})),enableGroup:n.value.enableGroup}})},pF=e=>{let{componentCls:t}=e;return{[t]:{display:`flex`,flexDirection:`column`,gap:e.paddingXXS,overflowY:`auto`,padding:e.paddingSM,[`&${t}-rtl`]:{direction:`rtl`},[`& ${t}-list`]:{display:`flex`,gap:e.paddingXXS,flexDirection:`column`,paddingLeft:0,[`& ${t}-item`]:{paddingInlineStart:e.paddingXL},[`& ${t}-label`]:{color:e.colorTextDescription}},[`& ${t}-item`]:{display:`flex`,height:e.controlHeightLG,minHeight:e.controlHeightLG,gap:e.paddingXS,padding:`0 ${_N(e.paddingXS)}`,alignItems:`center`,borderRadius:e.borderRadiusLG,cursor:`pointer`,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,"&:hover":{backgroundColor:e.colorBgTextHover},"&-active":{backgroundColor:e.colorBgTextHover,[`& ${t}-label, ${t}-menu-icon`]:{color:e.colorText}},"&-disabled":{cursor:`not-allowed`,[`& ${t}-label`]:{color:e.colorTextDisabled}},"&:hover, &-active":{[`& ${t}-menu-icon`]:{opacity:1}}},[`& ${t}-label`]:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,color:e.colorText},[`& ${t}-menu-icon`]:{opacity:0,fontSize:e.fontSizeXL},[`& ${t}-group-title`]:{display:`flex`,alignItems:`center`,height:e.controlHeightLG,minHeight:e.controlHeightLG,padding:`0 ${_N(e.paddingXS)}`}}}},mF=jP(`Conversations`,e=>pF(wN(e,{})),()=>({})),hF=JD((0,a.defineComponent)({name:`AXConversations`,__name:`Conversations`,props:(0,a.mergeDefaults)({items:{type:Array,required:!1},activeKey:{type:String,required:!1},defaultActiveKey:{type:String,required:!1},onActiveChange:{type:Function,required:!1},menu:{type:Function,skipCheck:!0,required:!1},groupable:{required:!1},styles:{type:Object,required:!1},classNames:{type:Object,required:!1},prefixCls:{type:String,required:!1},rootClassName:{type:String,required:!1}},{styles:()=>({}),classNames:()=>({})}),setup(e,{expose:t}){t();let n=qD(e,[`prefixCls`,`rootClassName`,`items`,`activeKey`,`defaultActiveKey`,`onActiveChange`,`menu`,`styles`,`classNames`,`groupable`,`class`,`style`]);(0,a.toRef)(e,`class`),(0,a.toRef)(e,`activeKey`),(0,a.toRef)(e,`prefixCls`);let r=(0,a.ref)(e.activeKey),i=(0,a.computed)(()=>QP(n,{attr:!0,aria:!0,data:!0})),[o,s]=uF(e.defaultActiveKey,{value:r});(0,a.watch)(()=>e.activeKey,()=>{r.value=e.activeKey});let c=fF(()=>e.groupable,()=>e.items),{getPrefixCls:l,direction:u}=KD(),d=(0,a.computed)(()=>l(`conversations`,e.prefixCls)),f=cO(`conversations`),[p,m,h]=mF(d),g=(0,a.computed)(()=>$(d.value,f.value.className,e.class,e.rootClassName,m.value,h,{[`${d.value}-rtl`]:u.value===`rtl`})),_=t=>{s(t.key),e.onActiveChange&&e.onActiveChange(t.key)};return()=>p((0,a.createVNode)(`ul`,(0,a.mergeProps)(i.value,{style:{...typeof f.value.style==`object`?f.value.style:{},...typeof e.style==`object`?e.style:{}},class:g.value}),[c.value.groupList.map((t,n)=>{let r=t.data.map((t,n)=>(0,a.createVNode)(rF,{key:t.key||`key-${n}`,info:t,prefixCls:d.value,direction:u.value,class:$(e.classNames.item,f.value.classNames.item),style:{...f.value.styles.item,...e.styles.item},menu:typeof e.menu==`function`?e.menu(t):e.menu,active:o.value===t.key,onClick:_},null));return c.value.enableGroup?(0,a.createVNode)(`li`,{key:t.name||`key-${n}`},[(0,a.createVNode)(cF,{value:{prefixCls:d.value}},{default:()=>[t.title?.call(t,t.name,{components:{GroupTitle:lF}})||(0,a.createVNode)(lF,{key:t.name},{default:()=>[t.name]})]}),(0,a.createVNode)(`ul`,{class:`${d.value}-list`},[r])]):r})]))}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/conversations/Conversations.vue`]]),gF=Symbol(`SenderHeaderContext`),_F=(0,a.shallowRef)(),vF=e=>{(0,a.provide)(gF,e),(0,a.watch)(e,()=>{_F.value=(0,a.unref)(e),(0,a.triggerRef)(_F)},{immediate:!0,deep:!0})},yF=()=>(0,a.inject)(gF,(0,a.computed)(()=>_F.value||{})),bF=(0,a.defineComponent)({props:{value:ZD()},setup(e,{slots:t}){return vF((0,a.computed)(()=>e.value)),()=>t.default?.call(t)}}),xF=Symbol(`ActionButtonContext`),SF=(0,a.shallowRef)(),CF=e=>{(0,a.provide)(xF,e),(0,a.watch)(e,()=>{SF.value=(0,a.unref)(e),(0,a.triggerRef)(SF)},{immediate:!0,deep:!0})},wF=()=>(0,a.inject)(xF,(0,a.computed)(()=>SF.value||{})),TF=(0,a.defineComponent)({props:{value:ZD()},setup(e,{slots:t}){return CF((0,a.computed)(()=>e.value)),()=>t.default?.call(t)}}),EF=JD((0,a.defineComponent)({name:`AXSenderActionButton`,__name:`index`,props:{action:{type:String,required:!0},prefixCls:{type:String,required:!1},type:{type:null,required:!1,default:`text`},htmlType:{type:null,required:!1},shape:{type:null,required:!1},size:{type:null,required:!1},loading:{type:[Boolean,Object],required:!1},disabled:{type:Boolean,required:!1,default:void 0},ghost:{type:Boolean,required:!1},block:{type:Boolean,required:!1},danger:{type:Boolean,required:!1},icon:{type:null,required:!1},href:{type:String,required:!1},target:{type:String,required:!1},title:{type:String,required:!1},onClick:{type:null,required:!1},onMousedown:{type:null,required:!1},audioIcon:{type:[null,Object],required:!1},audioDisabledIcon:{type:[null,Object],required:!1},audioRecordingIcon:{type:[null,Object],required:!1}},setup(e,{expose:t}){t();let n=qD(e,[`action`,`type`,`disabled`,`onClick`]);(0,a.toRef)(e,`disabled`);let r=(0,a.useSlots)(),i=wF(),o=(0,a.computed)(()=>{let t=i.value.disabled,n=i.value?.[`${e.action}Disabled`];return e.disabled??t??n}),s=(0,a.computed)(()=>i.value.prefixCls);return()=>(0,a.createVNode)(th,(0,a.mergeProps)({type:e.type},n,{onClick:t=>{var n,r;o.value||((r=(n=i.value)?.[e.action])==null||r.call(n),e.onClick&&!Array.isArray(e.onClick)&&e.onClick(t))},class:$(s.value,{[`${s.value}-disabled`]:o.value})}),{icon:()=>r.default()})}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/sender/components/ActionButton/index.vue`]]),DF=JD((0,a.defineComponent)({name:`AXSenderClearButton`,__name:`ClearButton`,props:(0,a.mergeDefaults)({prefixCls:{type:null,required:!1},type:{type:null,required:!1},htmlType:{type:null,required:!1},shape:{type:null,required:!1},size:{type:null,required:!1},loading:{type:null,required:!1},disabled:{type:null,required:!1},ghost:{type:null,required:!1},block:{type:null,required:!1},danger:{type:null,required:!1},icon:{type:null,required:!1},href:{type:null,required:!1},target:{type:null,required:!1},title:{type:null,required:!1},onClick:{type:null,required:!1},onMousedown:{type:null,required:!1},audioIcon:{required:!1},audioDisabledIcon:{required:!1},audioRecordingIcon:{required:!1}},{disabled:void 0}),setup(e,{expose:t}){t();let n=qD(e,[`disabled`]);return()=>(0,a.createVNode)(EF,(0,a.mergeProps)({disabled:e.disabled},n,{action:`onClear`}),{default:()=>[(0,a.createVNode)(Ej,null,null)]})}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/sender/components/ClearButton.vue`]]),OF=JD((0,a.defineComponent)({name:`AXSenderStopLoading`,__name:`StopLoading`,props:{className:{type:String,required:!0}},setup(e,{expose:t}){t();let n=e;return()=>(0,a.createVNode)(`svg`,{color:`currentColor`,viewBox:`0 0 1000 1000`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,class:n.className},[(0,a.createVNode)(`title`,null,[(0,a.createTextVNode)(`Stop Loading`)]),(0,a.createVNode)(`rect`,{fill:`currentColor`,height:`250`,rx:`24`,ry:`24`,width:`250`,x:`375`,y:`375`},null),(0,a.createVNode)(`circle`,{cx:`500`,cy:`500`,fill:`none`,r:`450`,stroke:`currentColor`,"stroke-width":`100`,opacity:`0.45`},null),(0,a.createVNode)(`circle`,{cx:`500`,cy:`500`,fill:`none`,r:`450`,stroke:`currentColor`,"stroke-width":`100`,"stroke-dasharray":`600 9999999`},[(0,a.createVNode)(`animateTransform`,{attributeName:`transform`,dur:`1s`,from:`0 500 500`,repeatCount:`indefinite`,to:`360 500 500`,type:`rotate`},null)])])}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/sender/StopLoading.vue`]]),kF=JD((0,a.defineComponent)({name:`AXSenderLoadingButton`,__name:`LoadingButton`,props:(0,a.mergeDefaults)({prefixCls:{type:null,required:!1},type:{type:null,required:!1},htmlType:{type:null,required:!1},shape:{type:null,required:!1},size:{type:null,required:!1},loading:{type:null,required:!1},disabled:{type:null,required:!1},ghost:{type:null,required:!1},block:{type:null,required:!1},danger:{type:null,required:!1},icon:{type:null,required:!1},href:{type:null,required:!1},target:{type:null,required:!1},title:{type:null,required:!1},onClick:{type:null,required:!1},onMousedown:{type:null,required:!1},audioIcon:{required:!1},audioDisabledIcon:{required:!1},audioRecordingIcon:{required:!1}},{type:`primary`,shape:`circle`,icon:void 0,disabled:void 0}),setup(e,{expose:t}){t();let n=qD(e,[`type`,`shape`,`icon`,`disabled`]),r=wF(),{token:i}=UD.useToken();return()=>(0,a.createVNode)(EF,(0,a.mergeProps)({type:e.type,disabled:e.disabled,shape:e.shape,icon:e.icon},n,{style:{backgroundColor:`transparent`,color:i.value.colorPrimary},class:$(`${r.value.prefixCls}-loading-button`),action:`onCancel`}),{default:()=>[(0,a.createVNode)(OF,{className:`${r.value.prefixCls}-loading-icon`},null)]})}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/sender/components/LoadingButton.vue`]]),AF=JD((0,a.defineComponent)({name:`AXSenderLoadingButton`,__name:`SendButton`,props:(0,a.mergeDefaults)({prefixCls:{type:null,required:!1},type:{type:null,required:!1},htmlType:{type:null,required:!1},shape:{type:null,required:!1},size:{type:null,required:!1},loading:{type:null,required:!1},disabled:{type:null,required:!1},ghost:{type:null,required:!1},block:{type:null,required:!1},danger:{type:null,required:!1},icon:{type:null,required:!1},href:{type:null,required:!1},target:{type:null,required:!1},title:{type:null,required:!1},onClick:{type:null,required:!1},onMousedown:{type:null,required:!1},audioIcon:{required:!1},audioDisabledIcon:{required:!1},audioRecordingIcon:{required:!1}},{type:`primary`,shape:`circle`,disabled:void 0}),setup(e,{expose:t}){t();let n=qD(e,[`type`,`shape`,`disabled`]);return()=>(0,a.createVNode)(EF,(0,a.mergeProps)({type:e.type,shape:e.shape,disabled:e.disabled},n,{action:`onSend`}),{default:()=>[(0,a.createVNode)(mj,null,null)]})}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/sender/components/SendButton.vue`]]),jF=1e3,MF=4,NF=140,PF=250,FF=500,IF=.8,LF=JD((0,a.defineComponent)({name:`AXSenderRecordingIcon`,__name:`RecordingIcon`,props:{className:{type:String,required:!1},audioIcon:{type:null,required:!1},audioDisabledIcon:{type:null,required:!1},audioRecordingIcon:{type:null,required:!1}},setup(e,{expose:t}){t();let n=NF/2;return()=>(0,a.createVNode)(`svg`,{color:`currentColor`,viewBox:`0 0 ${jF} ${jF}`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`,class:e.className},[(0,a.createVNode)(`title`,null,[(0,a.createTextVNode)(`Speech Recording`)]),Array.from({length:MF}).map((e,t)=>{let r=t*286.66666666666663,i=jF/2-PF/2,o=jF/2-FF/2;return(0,a.createVNode)(`rect`,{fill:`currentColor`,rx:n,ry:n,height:PF,width:NF,x:r,y:i,key:t},[(0,a.createVNode)(`animate`,{attributeName:`height`,values:`${PF}; ${FF}; ${PF}`,keyTimes:`0; 0.5; 1`,dur:`${IF}s`,begin:`${IF/MF*t}s`,repeatCount:`indefinite`},null),(0,a.createVNode)(`animate`,{attributeName:`y`,values:`${i}; ${o}; ${i}`,keyTimes:`0; 0.5; 1`,dur:`${IF}s`,begin:`${IF/MF*t}s`,repeatCount:`indefinite`},null)])})])}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/sender/components/SpeechButton/RecordingIcon.vue`]]),RF=JD((0,a.defineComponent)({name:`AXSenderSpeechButton`,__name:`index`,props:(0,a.mergeDefaults)({prefixCls:{type:null,required:!1},type:{type:null,required:!1},htmlType:{type:null,required:!1},shape:{type:null,required:!1},size:{type:null,required:!1},loading:{type:null,required:!1},disabled:{type:null,required:!1},ghost:{type:null,required:!1},block:{type:null,required:!1},danger:{type:null,required:!1},icon:{type:null,required:!1},href:{type:null,required:!1},target:{type:null,required:!1},title:{type:null,required:!1},onClick:{type:null,required:!1},onMousedown:{type:null,required:!1},audioIcon:{required:!1},audioDisabledIcon:{required:!1},audioRecordingIcon:{required:!1}},{type:`text`,disabled:void 0,audioIcon:()=>(0,a.createVNode)(Sj,null,null),audioDisabledIcon:()=>(0,a.createVNode)(vj,null,null),audioRecordingIcon:void 0}),setup(e,{expose:t}){t();let n=qD(e,[`type`,`disabled`,`audioIcon`,`audioDisabledIcon`,`audioRecordingIcon`]),r=wF(),{token:i}=UD.useToken(),o=(0,a.computed)(()=>r.value.speechRecording),s=(0,a.computed)(()=>r.value.prefixCls),c=(0,a.computed)(()=>{let t;return t=o.value?e.audioRecordingIcon?e.audioRecordingIcon:(0,a.createVNode)(LF,{className:`${s.value}-recording-icon`},null):r.value.onSpeechDisabled?e.audioDisabledIcon:e.audioIcon,t});return()=>(0,a.createVNode)(EF,(0,a.mergeProps)({type:e.type,disabled:e.disabled},n,{style:{display:`flex`,justifyContent:`center`,alignItems:`center`,color:i.value.colorPrimary},action:`onSpeech`}),{default:()=>[c.value]})}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/sender/components/SpeechButton/index.vue`]]),zF=JD((0,a.defineComponent)({name:`AXTransitionCollapse`,__name:`TransitionCollapse`,props:{prefixCls:{type:String,required:!1,default:`ax`}},setup(e,{expose:t}){t();let n=e,r=(0,a.useSlots)(),i=(0,a.computed)(()=>n.prefixCls+`-transition-collapse`),o={beforeEnter(e){e.dataset||={},e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.maxHeight=`0`,e.style.paddingTop=`0`,e.style.paddingBottom=`0`},enter(e){e.dataset.oldOverflow=e.style.overflow,e.scrollHeight===0?(e.style.maxHeight=`${e.dataset.oldMaxHeight||`999`}px`,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom):(e.style.maxHeight=`${e.scrollHeight}px`,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom),e.style.overflow=`hidden`},afterEnter(e){e.style.maxHeight=``,e.style.overflow=e.dataset.oldOverflow},beforeLeave(e){e.dataset||={},e.dataset.oldMaxHeight=e.scrollHeight,e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.overflow=`hidden`,e.style.maxHeight=`${e.scrollHeight}px`},leave(e){e.scrollHeight!==0&&(e.style.maxHeight=`0`,e.style.paddingTop=`0`,e.style.paddingBottom=`0`)},afterLeave(e){e.style.maxHeight=``,e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom}};return()=>(0,a.createVNode)(a.Transition,{name:i.value,onBeforeEnter:o.beforeEnter,onEnter:o.enter,onAfterEnter:o.afterEnter,onBeforeLeave:o.beforeLeave,onLeave:o.leave,onAfterLeave:o.afterLeave},{default:()=>[r.default?.call(r)]})}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/transition-collapse/TransitionCollapse.vue`]]),BF=e=>{let{componentCls:t}=e,n=`${t}-transition-collapse`;return{[t]:{[n]:{"&-enter-active":{transition:[`max-height`,`padding-top`,`padding-bottom`].map(t=>`${t} ${e.motionDurationSlow} ${e.motionEaseInOut}`).join(`,`)},"&-leave-active":{transition:[`max-height`,`padding-top`,`padding-bottom`].map(t=>`${t} ${e.motionDurationSlow} ${e.motionEaseInOut}`).join(`,`)}}}}},VF=e=>{let{componentCls:t,calc:n}=e,r=`${t}-header`;return{[t]:{[r]:{borderBottomWidth:e.lineWidth,borderBottomStyle:`solid`,borderBottomColor:e.colorBorder,"&-header":{background:e.colorFillAlter,fontSize:e.fontSize,lineHeight:e.lineHeight,paddingBlock:n(e.paddingSM).sub(e.lineWidthBold).equal(),paddingInlineStart:e.padding,paddingInlineEnd:e.paddingXS,display:`flex`,borderRadius:{_skip_check_:!0,value:n(e.borderRadius).mul(2).equal()},borderBottomRightRadius:0,borderBottomLeftRadius:0,[`${r}-title`]:{flex:`auto`}},"&-content":{padding:e.padding},"&-motion":{transition:[`height`,`border`].map(t=>`${t} ${e.motionDurationSlow}`).join(`,`),overflow:`hidden`,"&-enter-start, &-leave-active":{borderBottomColor:`transparent`},"&-hidden":{display:`none`}}}}}},HF=e=>{let{componentCls:t,padding:n,paddingSM:r,paddingXS:i,paddingXXS:a,lineWidth:o,lineWidthBold:s,calc:c}=e;return{[t]:{position:`relative`,width:`100%`,boxSizing:`border-box`,boxShadow:`${e.boxShadowTertiary}`,transition:`background ${e.motionDurationSlow}`,borderRadius:{_skip_check_:!0,value:c(e.borderRadius).mul(2).equal()},borderColor:e.colorBorder,borderWidth:0,borderStyle:`solid`,"&:after":{content:`""`,position:`absolute`,inset:0,pointerEvents:`none`,transition:`border-color ${e.motionDurationSlow}`,borderRadius:{_skip_check_:!0,value:`inherit`},borderStyle:`inherit`,borderColor:`inherit`,borderWidth:o},"&:focus-within":{boxShadow:`${e.boxShadowSecondary}`,borderColor:e.colorPrimary,"&:after":{borderWidth:s}},"&-disabled":{background:e.colorBgContainerDisabled},[`&${t}-rtl`]:{direction:`rtl`},[`${t}-content`]:{display:`flex`,gap:i,width:`100%`,paddingBlock:r,paddingInlineStart:n,paddingInlineEnd:r,boxSizing:`border-box`,alignItems:`flex-end`},[`${t}-prefix`]:{flex:`none`},[`${t}-input`]:{padding:0,borderRadius:0,flex:`auto`,alignSelf:`center`,minHeight:`auto`},[`${t}-actions-list`]:{flex:`none`,display:`flex`,"&-presets":{gap:e.paddingXS}},[`${t}-actions-btn`]:{"&-disabled":{opacity:.45},"&-loading-button":{padding:0,border:0},"&-loading-icon":{height:e.controlHeight,width:e.controlHeight,verticalAlign:`top`},"&-recording-icon":{height:`1.2em`,width:`1.2em`,verticalAlign:`top`}},[`${t}-footer`]:{paddingInlineStart:n,paddingInlineEnd:r,paddingBlockEnd:r,paddingBlockStart:a,boxSizing:`border-box`}}}},UF=jP(`Sender`,e=>{let{paddingXS:t,calc:n}=e,r=wN(e,{SenderContentMaxWidth:`calc(100% - ${_N(n(t).add(32).equal())})`});return[HF(r),VF(r),BF(r)]},()=>({})),WF;!WF&&typeof window<`u`&&(WF=window.SpeechRecognition||window.webkitSpeechRecognition);function GF(e,t){let n=e,r=(0,a.computed)(()=>{let e=(0,a.toValue)(t);return typeof e==`object`?{controlledRecording:e.recording,onControlledRecordingChange:e.onRecordingChange,speechInControlled:typeof e.recording==`boolean`}:{controlledRecording:void 0,onControlledRecordingChange:void 0,speechInControlled:!1}}),i=(0,a.computed)(()=>r.value.controlledRecording),o=(0,a.computed)(()=>r.value.onControlledRecordingChange),s=(0,a.computed)(()=>r.value.speechInControlled),c=(0,a.ref)(null);(0,a.watchEffect)(()=>{if(typeof navigator<`u`&&`permissions`in navigator){let e=null;navigator.permissions.query({name:`microphone`}).then(t=>{c.value=t.state,t.onchange=function(){c.value=this.state},e=t}),(0,a.onWatcherCleanup)(()=>{e&&(e.onchange=null)})}});let l=(0,a.computed)(()=>WF&&c.value!==`denied`),u=(0,a.ref)(null),[d,f]=uF(!1,{value:i}),p=(0,a.ref)(!1),m=()=>{if(l.value&&!u.value){let e=new WF;e.onstart=()=>{f(!0)},e.onend=()=>{f(!1)},e.onresult=e=>{if(!p.value){let t=e.results?.[0]?.[0]?.transcript;n(t)}p.value=!1},u.value=e}};return{speechPermission:l,triggerSpeech:e=>{var t,n,r;e&&!d.value||(p.value=e,s.value?(t=o.value)==null||t.call(o,!d.value):(m(),u.value&&(d.value?(u.value.stop(),(n=o.value)==null||n.call(o,!1)):(u.value.start(),(r=o.value)==null||r.call(o,!0)))))},recording:d}}function KF(e,t){for(var n=e,r=0;r<t.length;r+=1){if(n==null)return;n=n[t[r]]}return n}var qF=JD((0,a.defineComponent)({name:`AXSender`,__name:`Sender`,props:(0,a.mergeDefaults)({onKeyPress:{type:Function,required:!1},onFocus:{type:null,required:!1},onBlur:{type:null,required:!1},prefixCls:{type:String,required:!1},defaultValue:{type:String,required:!1},value:{type:String,required:!1},loading:{type:Boolean,required:!1},placeholder:{type:null,required:!1},readOnly:{type:Boolean,required:!1},submitType:{type:[String,Boolean],required:!1},disabled:{type:Boolean,required:!1},sendDisabled:{type:Boolean,required:!1},onSubmit:{type:Function,required:!1},onChange:{type:Function,required:!1},onCancel:{required:!1},onKeyDown:{type:Function,required:!1},onPaste:{type:Function,required:!1},onPasteFile:{type:Function,required:!1},components:{type:Object,required:!1},styles:{type:Object,required:!1},rootClassName:{type:String,required:!1},classNames:{type:Object,required:!1},style:{required:!1},className:{type:String,required:!1},actions:{type:[Function,Boolean],skipCheck:!0,required:!1},allowSpeech:{required:!1},prefix:{type:Function,skipCheck:!0,required:!1},footer:{type:Function,skipCheck:!0,required:!1},header:{type:Function,skipCheck:!0,required:!1},autoSize:{required:!1}},{styles:()=>({}),classNames:()=>({}),submitType:`enter`,actions:void 0,disabled:void 0,autoSize:()=>({maxRows:8})}),emits:[`update:value`],setup(e,{expose:t,emit:n}){let r=qD(e,`prefixCls.styles.classNames.className.rootClassName.style.defaultValue.value.placeholder.readOnly.submitType.onSubmit.sendDisabled.loading.components.onCancel.onChange.actions.onKeyPress.onKeyDown.disabled.allowSpeech.prefix.footer.header.onPaste.onPasteFile.autoSize`.split(`.`));(0,a.toRef)(e,`prefixCls`);function i(e,t,n){return KF(e,t)||n}let o={SendButton:AF,ClearButton:DF,LoadingButton:kF,SpeechButton:RF},s=n,c=(0,a.useSlots)(),{direction:l,getPrefixCls:u}=KD(),d=(0,a.computed)(()=>u(`sender`,e.prefixCls)),f=(0,a.ref)(null),p=(0,a.ref)(null),m=cO(`sender`),h=(0,a.computed)(()=>`${d.value}-input`),[g,_,v]=UF(d.value),y=(0,a.computed)(()=>$(d.value,m.value.className,e.className,e.rootClassName,_.value,v,{[`${d.value}-rtl`]:l.value===`rtl`,[`${d.value}-disabled`]:e.disabled})),b=(0,a.computed)(()=>`${d.value}-actions-btn`),x=(0,a.computed)(()=>`${d.value}-actions-list`),S=(0,a.ref)(e.value??e.defaultValue??``),C=e=>{S.value=e};(0,a.watch)(()=>e.value,()=>{C(e.value)});let w=(t,n)=>{C(t),s(`update:value`,t),e.onChange&&e.onChange(t,n)},{speechPermission:T,triggerSpeech:E,recording:D}=GF(e=>{w(`${S.value} ${e}`)},()=>e.allowSpeech),O=i(e.components,[`input`],uS.TextArea),k=(0,a.computed)(()=>QP(r,{attr:!0,aria:!0,data:!0})),A=(0,a.computed)(()=>({...k.value,ref:p})),j=()=>{(e.sendDisabled===void 0?S.value&&!e.loading:!e.sendDisabled)&&e.onSubmit&&e.onSubmit(S.value)},M=()=>{w(``)},N=(0,a.ref)(!1),P=()=>{N.value=!0},F=()=>{N.value=!1},I=t=>{let n=t.key===`Enter`&&!N.value;switch(e.submitType){case`enter`:n&&!t.shiftKey&&(t.preventDefault(),j());break;case`shiftEnter`:n&&t.shiftKey&&(t.preventDefault(),j());break}e.onKeyPress&&e.onKeyPress(t)},L=t=>{var n;let r=t.clipboardData?.files;r!=null&&r.length&&e.onPasteFile&&(e.onPasteFile(r[0],r),t.preventDefault()),(n=e.onPaste)==null||n.call(e,t)},R=e=>{var t;e.target!==f.value?.querySelector(`.${h.value}`)&&e.preventDefault(),(t=p.value)==null||t.focus()},ee=(0,a.computed)(()=>{let t=(0,a.createVNode)(PD,{class:`${x.value}-presets`},{default:()=>[e.allowSpeech&&(0,a.createVNode)(RF,typeof e.allowSpeech==`object`?{audioIcon:e.allowSpeech.audioIcon,audioDisabledIcon:e.allowSpeech.audioDisabledIcon,audioRecordingIcon:e.allowSpeech.audioRecordingIcon}:{},null),e.loading?(0,a.createVNode)(kF,null,null):(0,a.createVNode)(AF,null,null)]}),n={components:o};return c.actions?t=c.actions({ori:t,info:n}):typeof e.actions==`function`?t=e.actions(t,n):(e.actions||e.actions===!1)&&(t=e.actions),t}),te=(0,a.computed)(()=>({prefixCls:b.value,onSend:j,onSendDisabled:e.sendDisabled===void 0?!S.value:e.sendDisabled,onClear:M,onClearDisabled:!S.value,onCancel:e.onCancel,onCancelDisabled:!e.loading,onSpeech:()=>E(!1),onSpeechDisabled:!T.value,speechRecording:D.value,disabled:e.disabled})),ne=(0,a.computed)(()=>{let t=null,n={components:o};return c.footer?t=c.footer({info:n}):typeof e.footer==`function`?t=e.footer({components:o}):e.footer&&(t=e.footer),t}),z=(0,a.computed)(()=>c.header?c.header():typeof e.header==`function`?e.header():e.header),re=(0,a.computed)(()=>c.prefix?c.prefix():typeof e.prefix==`function`?e.prefix():e.prefix);return t({nativeElement:f.value,focus:e=>p.value?.focus(e),blur:()=>p.value?.blur()}),()=>g((0,a.createVNode)(`div`,{ref:f,class:y.value,style:{...m.value.style,...e.style}},[z.value&&(0,a.createVNode)(bF,{value:{prefixCls:d.value}},{default:()=>[z.value]}),(0,a.createVNode)(TF,{value:te.value},{default:()=>[(0,a.createVNode)(`div`,{class:`${d.value}-content`,onMousedown:R},[re.value&&(0,a.createVNode)(`div`,{class:$(`${d.value}-prefix`,m.value.classNames.prefix,e.classNames.prefix),style:{...m.value.styles.prefix,...e.styles.prefix}},[re.value]),(0,a.createVNode)(O,(0,a.mergeProps)(A.value,{disabled:e.disabled,style:{...m.value.styles.input,...e.styles.input},class:$(h.value,m.value.classNames.input,e.classNames.input),autoSize:e.autoSize,value:S.value,onChange:e=>{w(e.target.value,e),E(!0)},onPressEnter:I,onCompositionstart:P,onCompositionend:F,onKeydown:e.onKeyDown,placeholder:e.placeholder,onPaste:L,bordered:!1,readOnly:e.readOnly}),null),ee.value&&(0,a.createVNode)(`div`,{class:$(x.value,m.value.classNames.actions,e.classNames.actions),style:{...m.value.styles.actions,...e.styles.actions}},[ee.value])]),ne.value&&(0,a.createVNode)(`div`,{class:$(`${d.value}-footer`,m.value.classNames.footer,e.classNames.footer),style:{...m.value.styles.footer,...e.styles.footer}},[ne.value])]})]))}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/sender/Sender.vue`]]),JF=JD((0,a.defineComponent)({name:`AXSenderHeader`,inheritAttrs:!1,__name:`SenderHeader`,props:(0,a.mergeDefaults)({forceRender:{type:Boolean,required:!1},open:{type:Boolean,required:!1},onOpenChange:{type:Function,required:!1},title:{required:!1},children:{required:!1},className:{type:String,required:!1},style:{required:!1},classNames:{type:Object,required:!1},styles:{type:Object,required:!1},closable:{type:Boolean,required:!1}},{classNames:()=>({}),styles:()=>({})}),setup(e,{expose:t}){t(),(0,a.toRef)(e,`classNames`);let n=(0,a.useSlots)(),r=yF(),i=(0,a.computed)(()=>`${r.value.prefixCls}-header`),o=(0,a.useAttrs)();return()=>(0,a.createVNode)(zF,{prefixCls:r.value.prefixCls},{default:()=>[e.open||e.forceRender?(0,a.withDirectives)((0,a.createVNode)(`div`,(0,a.mergeProps)(o,{class:$(i.value,e.className),style:{...e.style}}),[(e.closable!==!1||e.title)&&(0,a.createVNode)(`div`,{class:$(`${i.value}-header`,e.classNames.header),style:{...e.styles.header}},[(0,a.createVNode)(`div`,{class:`${i.value}-title`},[e.title]),e.closable!==!1&&(0,a.createVNode)(`div`,{class:`${i.value}-close`},[(0,a.createVNode)(th,{type:`text`,icon:(0,a.createVNode)(Pj,null,null),size:`small`,onClick:()=>{var t;(t=e.onOpenChange)==null||t.call(e,!e.open)}},null)])]),n.default&&(0,a.createVNode)(`div`,{class:$(`${i.value}-content`,e.classNames.content),style:{...e.styles.content}},[n.default?.call(n)])]),[[a.vShow,e.open]]):null]})}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/sender/SenderHeader.vue`]]),YF=Object.assign(qF,{Header:JF});YF.install=function(e){return e.component(YF.name,YF),e.component(JF.name,JF),e};var XF=Symbol(`AttachmentContext`),ZF=(0,a.shallowRef)(),QF=e=>{(0,a.provide)(XF,e),(0,a.watch)(e,()=>{ZF.value=(0,a.unref)(e),(0,a.triggerRef)(ZF)},{immediate:!0,deep:!0})},$F=()=>(0,a.inject)(XF,(0,a.computed)(()=>ZF.value||{})),eI=(0,a.defineComponent)({inheritAttrs:!1,props:{value:ZD()},setup(e,{slots:t}){return QF((0,a.computed)(()=>e.value)),()=>t.default?.call(t)}}),tI=JD((0,a.defineComponent)({name:`AXAttachmentsPlaceholderUploader`,__name:`PlaceholderUploader`,props:(0,a.mergeDefaults)({prefixCls:{type:String,required:!0},placeholder:{required:!1},upload:{required:!1},className:{type:String,required:!1},style:{required:!1}},{placeholder:()=>({})}),setup(e,{expose:t}){let n=`${e.prefixCls}-placeholder`,r=(0,a.computed)(()=>e.placeholder||{}),i=(0,a.useTemplateRef)(`upload-dragger`),o=$F(),[s,c]=lO(!1),l=()=>{c(!0)},u=e=>{e.currentTarget.contains(e.relatedTarget)||c(!1)},d=()=>{c(!1)};t({nativeElement:(0,a.computed)(()=>i.value?.$el)});let f=e=>Array.isArray(e)&&e.every(a.isVNode),p=(0,a.computed)(()=>(0,a.isVNode)(e.placeholder)||f(e.placeholder)?e.placeholder:(0,a.createVNode)(PD,{align:`center`,justify:`center`,vertical:!0,class:`${n}-inner`},{default:()=>[(0,a.createVNode)(zT.Text,{class:`${n}-icon`},{default:()=>[r.value.icon]}),(0,a.createVNode)(zT.Title,{class:`${n}-title`,level:5},{default:()=>[r.value.title]}),(0,a.createVNode)(zT.Text,{class:`${n}-description`,type:`secondary`},{default:()=>[r.value.description]})]}));return()=>(0,a.createVNode)(`div`,{class:$(n,{[`${n}-drag-in`]:s.value,[`${n}-disabled`]:o.value.disabled},e.className),onDragenter:l,onDragleave:u,onDrop:d,"aria-hidden":o.value.disabled,style:e.style},[(0,a.createVNode)(qE.Dragger,(0,a.mergeProps)(e.upload,{showUploadList:!1,ref:`upload-dragger`,style:{padding:0,border:0,background:`transparent`}}),{default:()=>[p.value]})])}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/attachments/PlaceholderUploader.vue`]]),nI=JD((0,a.defineComponent)({name:`AXAttachmentsDropArea`,__name:`DropArea`,props:{prefixCls:{type:String,required:!0},className:{type:String,required:!0},getDropContainer:{type:Function,skipCheck:!0,required:!1},children:{required:!1}},setup(e,{expose:t}){t();let n=$F(),[r,i]=lO(),[o,s]=lO(null);(0,a.onMounted)(()=>{i(e.getDropContainer?.call(e))}),(0,a.watch)(()=>(0,a.toValue)(e.getDropContainer),()=>{let t=e.getDropContainer?.call(e);r.value!==t&&i(t)}),(0,a.watch)(()=>!!r.value,()=>{if(r.value){let e=()=>{s(!0)},t=e=>{e.preventDefault()},n=e=>{e.relatedTarget||s(!1)},r=e=>{s(!1),e.preventDefault()};document.addEventListener(`dragenter`,e),document.addEventListener(`dragover`,t),document.addEventListener(`dragleave`,n),document.addEventListener(`drop`,r),(0,a.onWatcherCleanup)(()=>{document.removeEventListener(`dragenter`,e),document.removeEventListener(`dragover`,t),document.removeEventListener(`dragleave`,n),document.removeEventListener(`drop`,r)})}});let c=(0,a.computed)(()=>e.getDropContainer&&r.value&&!n.value.disabled),l=`${e.prefixCls}-drop-area`;return()=>c.value?(0,a.createVNode)(a.Teleport,{to:r.value},{default:()=>[(0,a.createVNode)(`div`,{class:$(l,e.className,{[`${l}-on-body`]:r.value.tagName===`BODY`}),style:{display:o.value?`block`:`none`}},[e.children])]}):null}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/attachments/DropArea.vue`]]),rI=JD((0,a.defineComponent)({name:`AXAttachmentsSilentUploader`,__name:`SilentUploader`,props:{children:{required:!0},upload:{required:!0},rootClassName:{type:String,required:!1}},setup(e,{expose:t}){let n=(0,a.useTemplateRef)(`upload`);return t({nativeElement:(0,a.computed)(()=>n.value?.$el)}),()=>(0,a.createVNode)(qE,(0,a.mergeProps)(e.upload,{showUploadList:!1,ref:`upload`}),{default:()=>[e.children]})}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/attachments/SilentUploader.vue`]]),iI={},aI={width:`1em`,height:`1em`,viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`};function oI(e,t){return(0,a.openBlock)(),(0,a.createElementBlock)(`svg`,aI,t[0]||=[(0,a.createElementVNode)(`title`,null,`audio`,-1),(0,a.createElementVNode)(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},[(0,a.createElementVNode)(`path`,{d:`M14.1178571,4.0125 C14.225,4.11964286 14.2857143,4.26428571 14.2857143,4.41607143 L14.2857143,15.4285714 C14.2857143,15.7446429 14.0303571,16 13.7142857,16 L2.28571429,16 C1.96964286,16 1.71428571,15.7446429 1.71428571,15.4285714 L1.71428571,0.571428571 C1.71428571,0.255357143 1.96964286,0 2.28571429,0 L9.86964286,0 C10.0214286,0 10.1678571,0.0607142857 10.275,0.167857143 L14.1178571,4.0125 Z M10.7315824,7.11216117 C10.7428131,7.15148751 10.7485063,7.19218979 10.7485063,7.23309113 L10.7485063,8.07742614 C10.7484199,8.27364959 10.6183424,8.44607275 10.4296853,8.50003683 L8.32984514,9.09986306 L8.32984514,11.7071803 C8.32986605,12.5367078 7.67249692,13.217028 6.84345686,13.2454634 L6.79068592,13.2463395 C6.12766108,13.2463395 5.53916361,12.8217001 5.33010655,12.1924966 C5.1210495,11.563293 5.33842118,10.8709227 5.86959669,10.4741173 C6.40077221,10.0773119 7.12636292,10.0652587 7.67042486,10.4442027 L7.67020842,7.74937024 L7.68449368,7.74937024 C7.72405122,7.59919041 7.83988806,7.48101083 7.98924584,7.4384546 L10.1880418,6.81004755 C10.42156,6.74340323 10.6648954,6.87865515 10.7315824,7.11216117 Z M9.60714286,1.31785714 L12.9678571,4.67857143 L9.60714286,4.67857143 L9.60714286,1.31785714 Z`,fill:`currentColor`})],-1)])}var sI=JD(iI,[[`render`,oI],[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/attachments/FileList/AudioIcon.vue`]]),cI={},lI={width:`1em`,height:`1em`,viewBox:`0 0 16 16`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,xmlnsXlink:`http://www.w3.org/1999/xlink`};function uI(e,t){return(0,a.openBlock)(),(0,a.createElementBlock)(`svg`,lI,t[0]||=[(0,a.createElementVNode)(`title`,null,`video`,-1),(0,a.createElementVNode)(`g`,{stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},[(0,a.createElementVNode)(`path`,{d:`M14.1178571,4.0125 C14.225,4.11964286 14.2857143,4.26428571 14.2857143,4.41607143 L14.2857143,15.4285714 C14.2857143,15.7446429 14.0303571,16 13.7142857,16 L2.28571429,16 C1.96964286,16 1.71428571,15.7446429 1.71428571,15.4285714 L1.71428571,0.571428571 C1.71428571,0.255357143 1.96964286,0 2.28571429,0 L9.86964286,0 C10.0214286,0 10.1678571,0.0607142857 10.275,0.167857143 L14.1178571,4.0125 Z M12.9678571,4.67857143 L9.60714286,1.31785714 L9.60714286,4.67857143 L12.9678571,4.67857143 Z M10.5379461,10.3101106 L6.68957555,13.0059749 C6.59910784,13.0693494 6.47439406,13.0473861 6.41101953,12.9569184 C6.3874624,12.9232903 6.37482581,12.8832269 6.37482581,12.8421686 L6.37482581,7.45043999 C6.37482581,7.33998304 6.46436886,7.25043999 6.57482581,7.25043999 C6.61588409,7.25043999 6.65594753,7.26307658 6.68957555,7.28663371 L10.5379461,9.98249803 C10.6284138,10.0458726 10.6503772,10.1705863 10.5870027,10.2610541 C10.5736331,10.2801392 10.5570312,10.2967411 10.5379461,10.3101106 Z`,fill:`currentColor`})],-1)])}var dI=JD(cI,[[`render`,uI],[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/attachments/FileList/VideoIcon.vue`]]),fI=e=>e.indexOf(`image/`)===0;function pI(e){return new Promise(t=>{if(!e||!e.type||!fI(e.type)){t(``);return}let n=new Image;if(n.onload=()=>{let{width:e,height:r}=n,i=e/r,a=i>1?200:200*i,o=i>1?200/i:200,s=document.createElement(`canvas`);s.width=a,s.height=o,s.style.cssText=`position: fixed; left: 0; top: 0; width: ${a}px; height: ${o}px; z-index: 9999; display: none;`,document.body.appendChild(s),s.getContext(`2d`).drawImage(n,0,0,a,o);let c=s.toDataURL();document.body.removeChild(s),window.URL.revokeObjectURL(n.src),t(c)},n.crossOrigin=`anonymous`,e.type.startsWith(`image/svg+xml`)){let t=new FileReader;t.onload=()=>{t.result&&typeof t.result==`string`&&(n.src=t.result)},t.readAsDataURL(e)}else if(e.type.startsWith(`image/gif`)){let n=new FileReader;n.onload=()=>{n.result&&t(n.result)},n.readAsDataURL(e)}else n.src=window.URL.createObjectURL(e)})}function mI(e,t){return t.has(e.substring(1).toLowerCase())}var hI=e=>{let{componentCls:t,antCls:n,calc:r}=e,i=`${t}-list-card`,a=r(e.fontSize).mul(e.lineHeight).mul(2).add(e.paddingSM).add(e.paddingSM).equal();return{[i]:{borderRadius:e.borderRadius,position:`relative`,background:e.colorFillContent,borderWidth:e.lineWidth,borderStyle:`solid`,borderColor:`transparent`,flex:`none`,[`${i}-name,${i}-desc`]:{display:`flex`,flexWrap:`nowrap`,maxWidth:`100%`},[`${i}-ellipsis-prefix`]:{flex:`0 1 auto`,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},[`${i}-ellipsis-suffix`]:{flex:`none`},"&-type-overview":{padding:r(e.paddingSM).sub(e.lineWidth).equal(),paddingInlineStart:r(e.padding).add(e.lineWidth).equal(),display:`flex`,flexWrap:`nowrap`,gap:e.paddingXS,alignItems:`flex-start`,width:236,[`${i}-icon`]:{fontSize:r(e.fontSizeLG).mul(2).equal(),lineHeight:1,paddingTop:r(e.paddingXXS).mul(1.5).equal(),flex:`none`},[`${i}-content`]:{flex:`auto`,minWidth:0,display:`flex`,flexDirection:`column`,alignItems:`stretch`},[`${i}-desc`]:{color:e.colorTextTertiary}},"&-type-preview":{width:a,height:a,lineHeight:1,display:`flex`,alignItems:`center`,[`&:not(${i}-status-error)`]:{border:0},[`${n}-image`]:{width:`100%`,height:`100%`,borderRadius:`inherit`,position:`relative`,overflow:`hidden`,img:{height:`100%`,objectFit:`cover`,borderRadius:`inherit`}},[`${i}-img-mask`]:{position:`absolute`,inset:0,display:`flex`,justifyContent:`center`,alignItems:`center`,background:`rgba(0, 0, 0, ${e.opacityLoading})`,borderRadius:`inherit`},[`&${i}-status-error`]:{borderRadius:`inherit`,[`img, ${i}-img-mask`]:{borderRadius:r(e.borderRadius).sub(e.lineWidth).equal()},[`${i}-desc`]:{paddingInline:e.paddingXXS}},[`${i}-progress`]:{}},[`${i}-remove`]:{position:`absolute`,top:0,insetInlineEnd:0,border:0,padding:e.paddingXXS,background:`transparent`,lineHeight:1,transform:`translate(50%, -50%)`,fontSize:e.fontSize,cursor:`pointer`,opacity:e.opacityLoading,display:`none`,"&:dir(rtl)":{transform:`translate(-50%, -50%)`},"&:hover":{opacity:1},"&:active":{opacity:e.opacityLoading}},[`&:hover ${i}-remove`]:{display:`block`},"&-status-error":{borderColor:e.colorError,[`${i}-desc`]:{color:e.colorError}},"&-motion":{overflow:`hidden`,transition:[`opacity`,`width`,`margin`,`padding`].map(t=>`${t} ${e.motionDurationSlow}`).join(`,`),[`${i}-remove`]:{display:`none !important`},"&-appear-start":{width:0,transition:`none`},"&-leave-active":{opacity:0,width:0,paddingInline:0,borderInlineWidth:0,marginInlineEnd:r(e.paddingSM).mul(-1).equal()}}}}},gI={"&, *":{boxSizing:`border-box`}},_I=e=>{let{componentCls:t,calc:n,antCls:r}=e,i=`${t}-drop-area`,a=`${t}-placeholder`;return{[i]:{position:`absolute`,inset:0,zIndex:e.zIndexPopupBase,...gI,"&-on-body":{position:`fixed`,inset:0},"&-hide-placement":{[`${a}-inner`]:{display:`none`}},[a]:{padding:0}},"&":{[a]:{height:`100%`,borderRadius:e.borderRadius,borderWidth:e.lineWidthBold,borderStyle:`dashed`,borderColor:`transparent`,padding:e.padding,position:`relative`,backdropFilter:`blur(10px)`,...gI,[`${r}-upload-wrapper ${r}-upload${r}-upload-btn`]:{padding:0},[`&${a}-drag-in`]:{borderColor:e.colorPrimaryHover},[`&${a}-disabled`]:{opacity:.25,pointerEvents:`none`},[`${a}-inner`]:{gap:n(e.paddingXXS).div(2).equal()},[`${a}-icon`]:{fontSize:e.fontSizeHeading2,lineHeight:1},[`${a}-title${a}-title`]:{margin:0,fontSize:e.fontSize,lineHeight:e.lineHeight},[`${a}-description`]:{}}}}},vI=e=>{let{componentCls:t,calc:n}=e,r=`${t}-list`,i=n(e.fontSize).mul(e.lineHeight).mul(2).add(e.paddingSM).add(e.paddingSM).equal();return{[t]:{position:`relative`,width:`100%`,...gI,[r]:{display:`flex`,flexWrap:`wrap`,gap:e.paddingSM,fontSize:e.fontSize,lineHeight:e.lineHeight,color:e.colorText,paddingBlock:e.paddingSM,paddingInline:e.padding,width:`100%`,background:e.colorBgContainer,scrollbarWidth:`none`,"-ms-overflow-style":`none`,"&::-webkit-scrollbar":{display:`none`},"&-overflow-scrollX, &-overflow-scrollY":{"&:before, &:after":{content:`""`,position:`absolute`,opacity:0,transition:`opacity ${e.motionDurationSlow}`,zIndex:1}},"&-overflow-ping-start:before":{opacity:1},"&-overflow-ping-end:after":{opacity:1},"&-overflow-scrollX":{overflowX:`auto`,overflowY:`hidden`,flexWrap:`nowrap`,"&:before, &:after":{insetBlock:0,width:8},"&:before":{insetInlineStart:0,background:`linear-gradient(to right, rgba(0,0,0,0.06), rgba(0,0,0,0));`},"&:after":{insetInlineEnd:0,background:`linear-gradient(to left, rgba(0,0,0,0.06), rgba(0,0,0,0));`},"&:dir(rtl)":{"&:before":{background:`linear-gradient(to left, rgba(0,0,0,0.06), rgba(0,0,0,0));`},"&:after":{background:`linear-gradient(to right, rgba(0,0,0,0.06), rgba(0,0,0,0));`}}},"&-overflow-scrollY":{overflowX:`hidden`,overflowY:`auto`,maxHeight:n(i).mul(3).equal(),"&:before, &:after":{insetInline:0,height:8},"&:before":{insetBlockStart:0,background:`linear-gradient(to bottom, rgba(0,0,0,0.06), rgba(0,0,0,0));`},"&:after":{insetBlockEnd:0,background:`linear-gradient(to top, rgba(0,0,0,0.06), rgba(0,0,0,0));`}},"&-upload-btn":{width:i,height:i,fontSize:e.fontSizeHeading2,color:`#999`},"&-prev-btn, &-next-btn":{position:`absolute`,top:`50%`,transform:`translateY(-50%)`,boxShadow:e.boxShadowTertiary,opacity:0,pointerEvents:`none`},"&-prev-btn":{left:{_skip_check_:!0,value:e.padding}},"&-next-btn":{right:{_skip_check_:!0,value:e.padding}},"&:dir(ltr)":{[`&${r}-overflow-ping-start ${r}-prev-btn`]:{opacity:1,pointerEvents:`auto`},[`&${r}-overflow-ping-end ${r}-next-btn`]:{opacity:1,pointerEvents:`auto`}},"&:dir(rtl)":{[`&${r}-overflow-ping-end ${r}-prev-btn`]:{opacity:1,pointerEvents:`auto`},[`&${r}-overflow-ping-start ${r}-next-btn`]:{opacity:1,pointerEvents:`auto`}}}}}},yI=jP(`Attachments`,e=>{let t=wN(e,{});return[_I(t),vI(t),hI(t)]},e=>{let{colorBgContainer:t}=e;return{colorBgPlaceholderHover:new LM(t).setA(.85).toRgbString()}}),bI=new Set([`png`,`jpg`,`jpeg`,`gif`,`bmp`,`webp`,`svg`]),xI=new Set([`mp3`,`wav`,`flac`,`ape`,`aac`,`ogg`]),SI=new Set([`mp4`,`avi`,`mov`,`wmv`,`flv`,`mkv`]),CI=new Set([`md`,`mdx`]),wI=new Set([`zip`,`rar`,`7z`,`tar`,`gz`]),TI=new Set([`xlsx`,`xls`]),EI=new Set([`ppt`,`pptx`]),DI=new Set([`doc`,`docx`]),OI=new Set([`pdf`]),kI=`\xA0`,AI=`#8c8c8c`,jI=JD((0,a.defineComponent)({name:`AXAttachmentsFileListCard`,__name:`FileListCard`,props:{prefixCls:{type:String,required:!1},item:{type:Object,required:!0},onRemove:{type:Function,required:!1},className:{type:String,required:!1},style:{required:!1},imageProps:{required:!1},icon:{required:!1},type:{type:String,required:!1}},setup(e,{expose:t}){(0,a.toRef)(e,`prefixCls`);let n=[{key:`default`,icon:(0,a.createVNode)(cM,null,null),color:AI,ext:new Set([])},{key:`excel`,icon:(0,a.createVNode)(Hj,null,null),color:`#22b35e`,ext:TI},{key:`image`,icon:(0,a.createVNode)(Kj,null,null),color:AI,ext:bI},{key:`markdown`,icon:(0,a.createVNode)(Xj,null,null),color:AI,ext:CI},{key:`pdf`,icon:(0,a.createVNode)(eM,null,null),color:`#ff4d4f`,ext:OI},{key:`ppt`,icon:(0,a.createVNode)(iM,null,null),color:`#ff6e31`,ext:EI},{key:`word`,icon:(0,a.createVNode)(fM,null,null),color:`#1677ff`,ext:DI},{key:`zip`,icon:(0,a.createVNode)(gM,null,null),color:`#fab714`,ext:wI},{key:`video`,icon:(0,a.createVNode)(dI,null,null),color:`#ff4d4f`,ext:SI},{key:`audio`,icon:(0,a.createVNode)(sI,null,null),color:`#8c8c8c`,ext:xI}];function r(e){let t=e,n=[`B`,`KB`,`MB`,`GB`,`TB`,`PB`,`EB`],r=0;for(;t>=1024&&r<n.length-1;)t/=1024,r++;return`${t.toFixed(0)} ${n[r]}`}let i=$F(),o=(0,a.computed)(()=>i.value.disabled),s=(0,a.computed)(()=>e.item.name),c=(0,a.computed)(()=>e.item.size),l=(0,a.computed)(()=>e.item.percent),u=(0,a.computed)(()=>e.item.status||`done`),d=(0,a.computed)(()=>e.item.description),{getPrefixCls:f}=KD(),p=(0,a.computed)(()=>f(`attachment`,e.prefixCls)),m=`${p.value}-list-card`,[h,g,_]=yI(p),v=(0,a.useTemplateRef)(`file-list-card-container`),y=(0,a.computed)(()=>{let e=s.value||``,t=e.match(/^(.*)\.[^.]+$/);return{namePrefix:t?t[1]:e,nameSuffix:t?e.slice(t[1].length):``}}),b=(0,a.computed)(()=>mI(y.value.nameSuffix,bI)),x=(0,a.computed)(()=>d.value?d.value:u.value===`uploading`?`${l.value||0}%`:u.value===`error`?e.item.response||kI:c.value?r(c.value):kI),S=(0,a.computed)(()=>{if(e.icon)if(typeof e.icon==`string`){let t=n.find(t=>t.key===e.icon);if(t)return{icon:t.icon,color:t.color}}else return{icon:e.icon,color:void 0};for(let{ext:e,icon:t,color:r}of n)if(mI(y.value.nameSuffix,e))return{icon:t,iconColor:r};return{icon:(0,a.createVNode)(cM,{key:`defaultIcon`},null),iconColor:AI}}),[C,w]=lO();(0,a.watch)(()=>e.item.originFileObj,()=>{if(e.item.originFileObj){let t=!0;pI(e.item.originFileObj).then(e=>{t&&w(e)}),(0,a.onWatcherCleanup)(()=>{t=!1})}w(void 0)},{immediate:!0});let T=(0,a.computed)(()=>e.item.thumbUrl||e.item.url||C.value),E=(0,a.computed)(()=>e.type===`image`||e.type!==`file`&&b.value&&(e.item.originFileObj||T.value)),D=(0,a.computed)(()=>E.value?(0,a.createVNode)(a.Fragment,null,[T.value&&(0,a.createVNode)(SC,(0,a.mergeProps)(e.imageProps,{alt:`preview`,src:T.value}),null),u.value!==`done`&&(0,a.createVNode)(`div`,{class:`${m}-img-mask`},[u.value===`uploading`&&l.value!==void 0&&(0,a.createVNode)(Fw,{percent:l.value,prefixCls:m},null),u.value===`error`&&(0,a.createVNode)(`div`,{class:`${m}-desc`},[(0,a.createVNode)(`div`,{class:`${m}-ellipsis-prefix`},[x.value])])])]):(0,a.createVNode)(a.Fragment,null,[(0,a.createVNode)(`div`,{class:`${m}-icon`,style:{color:S.value.iconColor}},[S.value.icon]),(0,a.createVNode)(`div`,{class:`${m}-content`},[(0,a.createVNode)(`div`,{class:`${m}-name`},[(0,a.createVNode)(`div`,{class:`${m}-ellipsis-prefix`},[y.value.namePrefix??kI]),(0,a.createVNode)(`div`,{class:`${m}-ellipsis-suffix`},[y.value.nameSuffix])]),(0,a.createVNode)(`div`,{class:`${m}-desc`},[(0,a.createVNode)(`div`,{class:`${m}-ellipsis-prefix`},[x.value])])])]));return t({nativeElement:v}),()=>h((0,a.createVNode)(`div`,{class:$(m,{[`${m}-status-${u.value}`]:u.value,[`${m}-type-preview`]:E.value,[`${m}-type-overview`]:!E.value},e.className,g.value,_),style:e.style,ref:`file-list-card-container`},[D.value,!o.value&&e.onRemove&&(0,a.createVNode)(`button`,{type:`button`,class:`${m}-remove`,onClick:()=>{e.onRemove(e.item)}},[(0,a.createVNode)(Aj,null,null)])]))}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/attachments/FileList/FileListCard.vue`]]);function MI(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!(0,a.isVNode)(e)}var NI=1,PI=JD((0,a.defineComponent)({name:`AXAttachmentsFileList`,__name:`FileList`,props:{prefixCls:{type:String,required:!0},items:{type:Array,required:!0},onRemove:{type:Function,required:!0},overflow:{type:String,required:!1},upload:{type:Object,required:!0},imageProps:{type:Object,required:!1},listClassName:{type:String,required:!1},listStyle:{type:Object,required:!1},itemClassName:{type:String,required:!1},itemStyle:{type:Object,required:!1},uploadClassName:{type:String,required:!1},uploadStyle:{type:Object,required:!1}},setup(e,{expose:t}){t();let n=(0,a.computed)(()=>`${e.prefixCls}-list`),r=(0,a.useTemplateRef)(`file-list-container`),[i,o]=lO(!1),s=$F();(0,a.watchEffect)(()=>{o(!0),(0,a.onWatcherCleanup)(()=>{o(!1)})});let[c,l]=lO(!1),[u,d]=lO(!1),f=()=>{let t=r.value;t&&(e.overflow===`scrollX`?(l(Math.abs(t.scrollLeft)>=NI),d(t.scrollWidth-t.clientWidth-Math.abs(t.scrollLeft)>=NI)):e.overflow===`scrollY`&&(l(t.scrollTop!==0),d(t.scrollHeight-t.clientHeight!==t.scrollTop)))};(0,a.watch)([()=>e.overflow,()=>e.items.length],()=>{(0,a.nextTick)(()=>{f()})},{immediate:!0});let p=e=>{let t=r.value;t&&t.scrollTo({left:t.scrollLeft+e*t.clientWidth,behavior:`smooth`})},m=()=>{p(-1)},h=()=>{p(1)},g=(e,t)=>{let n=e.classList.contains(`ant-attachment-list-card-type-preview`)?[{width:`0px`},{width:`64px`}]:[{width:`0px`},{width:`236px`}],r=e.animate(n,{duration:300,easing:`ease`,fill:`forwards`});r.onfinish=()=>t()},_=(e,t)=>{let n=e.classList.contains(`ant-attachment-list-card-type-preview`)?[{opacity:1,width:`64px`,marginRight:`0px`},{opacity:0,width:`0px`,marginRight:`-10px`}]:[{opacity:1,width:`236px`,marginRight:`0px`},{opacity:0,width:`0px`,marginRight:`-10px`,paddingRight:`0px`,paddingLeft:`0px`}],r=e.animate(n,{duration:300,easing:`ease`,fill:`forwards`});r.onfinish=()=>t()};return()=>{let t;return(0,a.createVNode)(`div`,{class:$(n.value,{[`${n.value}-overflow-${e.overflow}`]:e.overflow,[`${n.value}-overflow-ping-start`]:c.value,[`${n.value}-overflow-ping-end`]:u.value},e.listClassName),ref:`file-list-container`,onScroll:f,style:e.listStyle},[(0,a.createVNode)(a.TransitionGroup,{onEnter:g,onLeave:_,css:!1},MI(t=e.items.map(t=>(0,a.createVNode)(jI,{key:t.uid,prefixCls:e.prefixCls,item:t,onRemove:e.onRemove,className:$(e.itemClassName),imageProps:e.imageProps,style:{...e.itemStyle}},null)))?t:{default:()=>[t]}),!s.value.disabled&&(0,a.createVNode)(rI,{upload:e.upload,children:(0,a.createVNode)(th,{class:$(e.uploadClassName,`${n.value}-upload-btn`),style:e.uploadStyle,type:`dashed`},{default:()=>[(0,a.createVNode)(wM,{class:`${n.value}-upload-btn-icon`},null)]})},null),e.overflow===`scrollX`&&(0,a.createVNode)(a.Fragment,null,[(0,a.createVNode)(th,{size:`small`,shape:`circle`,class:`${n.value}-prev-btn`,icon:(0,a.createVNode)(bM,null,null),onClick:m},null),(0,a.createVNode)(th,{size:`small`,shape:`circle`,class:`${n.value}-next-btn`,icon:(0,a.createVNode)(OM,null,null),onClick:h},null)])])}}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/attachments/FileList/FileList.vue`]]),FI=JD((0,a.defineComponent)({name:`AXAttachments`,__name:`Attachments`,props:(0,a.mergeDefaults)({capture:{type:null,required:!1},type:{type:null,required:!1},name:{type:null,required:!1},defaultFileList:{type:null,required:!1},action:{type:null,required:!1},directory:{type:null,required:!1},data:{type:null,required:!1},method:{type:null,required:!1},headers:{type:null,required:!1},showUploadList:{type:null,required:!1},multiple:{type:null,required:!1},accept:{type:null,required:!1},beforeUpload:{type:null,required:!1},onChange:{type:Function,required:!1},"onUpdate:fileList":{type:null,required:!1},onDrop:{type:null,required:!1},listType:{type:null,required:!1},onPreview:{type:null,required:!1},onDownload:{type:null,required:!1},onReject:{type:null,required:!1},onRemove:{type:null,required:!1},remove:{type:null,required:!1},supportServerRender:{type:null,required:!1},disabled:{type:Boolean,required:!1},prefixCls:{type:String,required:!1},customRequest:{type:null,required:!1},withCredentials:{type:null,required:!1},openFileDialogOnClick:{type:null,required:!1},locale:{type:null,required:!1},id:{type:null,required:!1},previewFile:{type:null,required:!1},transformFile:{type:null,required:!1},iconRender:{type:null,required:!1},isImageUrl:{type:null,required:!1},progress:{type:null,required:!1},itemRender:{type:null,required:!1},maxCount:{type:null,required:!1},height:{type:null,required:!1},removeIcon:{type:null,required:!1},downloadIcon:{type:null,required:!1},previewIcon:{type:null,required:!1},rootClassName:{type:String,required:!1},rootStyle:{required:!1},style:{required:!1},className:{type:String,required:!1},classNames:{type:Object,required:!1},styles:{type:Object,required:!1},children:{required:!1},placeholder:{type:Function,skipCheck:!0,required:!1},getDropContainer:{type:Function,skipCheck:!0,required:!1},items:{type:Array,required:!1},overflow:{required:!1},imageProps:{required:!1}},{items:()=>[],classNames:()=>({}),styles:()=>({})}),setup(e,{expose:t}){let n=qD(e,[`prefixCls`,`rootClassName`,`rootStyle`,`className`,`style`,`items`,`children`,`getDropContainer`,`placeholder`,`onChange`,`onRemove`,`overflow`,`imageProps`,`disabled`,`classNames`,`styles`]);(0,a.toRef)(e,`prefixCls`);let r=(0,a.useSlots)(),{getPrefixCls:i,direction:o}=KD(),s=i(`attachment`,e.prefixCls),c=cO(`attachments`),l=(0,a.computed)(()=>c.value.classNames),u=(0,a.computed)(()=>c.value.styles),d=(0,a.useTemplateRef)(`attachments-container`),f=(0,a.useTemplateRef)(`placeholder-uploader`),[p,m,h]=yI(s),g=(0,a.computed)(()=>$(m.value,h)),[_,v]=lO(e.items);(0,a.watch)(()=>e.items,()=>{v(e.items)});let y=t=>{var n;v(t.fileList),(n=e.onChange)==null||n.call(e,t)},b=(0,a.computed)(()=>({...n,fileList:_.value,onChange:y})),x=t=>Promise.resolve(typeof e.onRemove==`function`?e.onRemove(t):e.onRemove).then(e=>{if(e===!1)return;let n=_.value.filter(e=>e.uid!==t.uid);y({file:{...t,status:`removed`},fileList:n})}),S=(t,n)=>(0,a.createVNode)(tI,{placeholder:r.placeholder?r.placeholder({type:t}):typeof e.placeholder==`function`?e.placeholder(t):e.placeholder,upload:b.value,prefixCls:s,className:$(l.value.placeholder,e.classNames.placeholder),style:{...u.value.placeholder,...e.styles.placeholder,...n?.style},ref:t===`inline`?`placeholder-uploader`:void 0},null),C=(0,a.computed)(()=>_.value.length>0);return t({nativeElement:d.value,upload:e=>{var t,n;let r=((t=f.value)==null?void 0:(n=t.nativeElement).querySelector)?.call(n,`input[type="file"]`);if(!r)return;let i=new DataTransfer;try{if(`length`in e&&e.length>=1)for(let t=0;t<e.length;t++)i.items.add(e[t]);else i.items.add(e);r.files=i.files,r.dispatchEvent(new Event(`change`,{bubbles:!0}))}catch(e){console.error(`upload failed`,e)}}}),()=>p((0,a.createVNode)(eI,{value:{disabled:e.disabled}},{default:()=>[e.children?(0,a.createVNode)(a.Fragment,null,[(0,a.createVNode)(rI,{upload:b.value,rootClassName:e.rootClassName,ref:`attachments-upload`,children:e.children},null),(0,a.createVNode)(nI,{getDropContainer:e.getDropContainer,prefixCls:s,className:$(g.value,e.rootClassName),children:S(`drop`)},null)]):(0,a.createVNode)(`div`,{class:$(s,g.value,{[`${s}-rtl`]:o.value===`rtl`},e.className,e.rootClassName),style:{...e.rootStyle,...e.style},dir:o.value||`ltr`,ref:`attachments-container`},[(0,a.createVNode)(PI,{prefixCls:s,items:_.value,onRemove:x,overflow:e.overflow,upload:b.value,listClassName:$(l.value.list,e.classNames.list),listStyle:{...u.value.list,...e.styles.list,...!C.value&&{display:`none`}},uploadClassName:$(l.value.upload,e.classNames.upload),uploadStyle:{...u.value.upload,...e.styles.upload},itemClassName:$(l.value.item,e.classNames.item),itemStyle:{...u.value.item,...e.styles.item},imageProps:e.imageProps},null),S(`inline`,C.value?{style:{display:`none`}}:{}),(0,a.createVNode)(nI,{getDropContainer:e.getDropContainer||(()=>d.value),prefixCls:s,className:g.value,children:S(`drop`)},null)])]}))}}),[[`__file`,`/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/attachments/Attachments.vue`]]),II=Object.assign(FI,{FileCard:jI});II.install=function(e){return e.component(II.name,II),e.component(jI.name,jI),e};function LI(e){let t=e.split(`
338
338
  `),n=`message`,r=``;for(let e of t)e.startsWith(`event:`)?n=e.slice(6).trim():e.startsWith(`data:`)&&(r=e.slice(5).trim());if(!r)return null;try{return{event:n,data:JSON.parse(r)}}catch{return{event:n,data:r}}}async function RI(e){try{let t=await e.text(),n=JSON.parse(t);return typeof n?.message==`string`?n.message:typeof n?.error==`string`?n.error:t||`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}function zI(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}var BI=class extends o{constructor({endpoint:e,historyEndpoint:t=`http://localhost:800/history`,resumeEndpoint:n,user:r,app:i,initialUserContexts:a=[],mode:o=`astream`,resumeMode:s=`langgraph`,requestHeaders:c={},prepareRequestBody:l}){super(),this.mode=`astream`,this.resumeMode=`langgraph`,this.abortController=null,this.activeToolCalls=new Map,this.conversationId=``,this.currentToolCallId=``,this.initialUserContexts=[],this.inThinkBlock=!1,this.pendingInterruptId=``,this.pendingToolCallArgs=new Map,this.prepareRequestBody=null,this.replyParts=[],this.requestHeaders={},this.resumeEndpoint=void 0,this.endpoint=e,this.historyEndpoint=t,this.user=r,this.app=i,this.mode=o,this.resumeMode=s,this.resumeEndpoint=n,this.requestHeaders={...c},this.prepareRequestBody=l??null,this.setInitialUserContexts(a)}addInitialUserContext(e){let t=e.trim();t&&this.initialUserContexts.push(t)}async ask(e,t){let n=new AbortController;this.abortController=n,this.activeToolCalls.clear(),this.pendingToolCallArgs.clear(),this.pendingInterruptId=``,this.replyParts=[],this.inThinkBlock=!1;let r=this.initialUserContexts.length>0?`${this.initialUserContexts.join(`
339
339
 
340
- `)}\n\n${e}`:e;try{let e=this.buildRequestHeaders(),i={prompt:r,conversation_id:this.conversationId||null,stream_mode:(this.mode,`messages,updates`),user:this.user,app:this.app,attachments:t};this.prepareRequestBody&&(i=this.prepareRequestBody(i));let a=await fetch(this.endpoint,{method:`POST`,headers:e,body:JSON.stringify(i),signal:n.signal});if(!a.ok)throw Error(await RI(a));let o=a.headers.get(`x-conversation-id`);if(o&&this.updateConversationId(o),await this.processSseStream(a,this.replyParts))return}catch(e){if(n.signal.aborted)return;throw Error(zI(e))}finally{this.abortController===n&&(this.abortController=null)}}clearInitialUserContexts(){this.initialUserContexts=[]}async deleteConversation(e){if(!this.historyEndpoint)throw Error(`未配置 historyEndpoint`);try{let t=new URL(`${this.historyEndpoint}/threads/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n=await fetch(t.toString(),{method:`DELETE`});if(n.status===404)throw Error(`未找到会话: ${e}`);if(!n.ok)throw Error(await RI(n))}catch(e){throw Error(zI(e))}}getApp(){return this.app}async getConversationDetail(e,t){if(!this.historyEndpoint)return[];this.updateConversationId(e);let n;try{let t=new URL(`${this.historyEndpoint}/conversations/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let r=await fetch(t.toString());if(r.status===404)return[];if(!r.ok)throw Error(await RI(r));n=await r.json()}catch(e){throw Error(zI(e))}let r=[],i=new Map,a=[];for(let t of n.messages??[])switch(t.type??t.role??``){case`ai`:{if(Array.isArray(t.tool_calls)&&t.tool_calls.length>0){let e=Date.now();for(let n of t.tool_calls)n.id&&(i.set(n.id,{toolName:n.name,args:n.args,startedAt:e}),a.push({toolCallId:n.id,toolName:n.name,title:n.name,status:`running`,stepNumber:0,startedAt:e,inputPreview:n.args?JSON.stringify(n.args).slice(0,200):void 0}))}let n=u(t.content);if(n){let t={key:`hist-${e}-a${r.length}`,role:`ai`,content:n};a.length>0&&(t.toolTimeline=a,t.segments=[...a.map(e=>({type:`tool`,toolCallId:e.toolCallId})),{type:`text`,start:0,end:-1}],a=[],i.clear()),r.push(t)}break}case`human`:r.push({key:`hist-${e}-u${r.length}`,role:`user`,content:u(t.content)});break;case`tool`:{let e=t.tool_call_id??``,n=e?i.get(e):void 0,r=a.find(t=>t.toolCallId===e);if(r){let a=u(t.content);r.status=t.status===`error`?`error`:`success`,r.resultPreview=a.slice(0,500),n&&(r.durationMs=Date.now()-n.startedAt,i.delete(e))}break}}return r}getConversationId(){return this.conversationId}getUser(){return this.user}async listConversations(e){if(!this.historyEndpoint)return{items:[],hasMore:!1};let t=new URL(`${this.historyEndpoint}/conversations`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n;try{let e=await fetch(t.toString());if(!e.ok)throw Error(await RI(e));n=await e.json()}catch(e){throw Error(zI(e))}return{items:n.map(e=>{let t=e.created_at?new Date(e.created_at).getTime():void 0;return{id:e.conversation_id,title:e.title||t?.toString()||`未命名会话`,createdAt:t&&!Number.isNaN(t)?t:void 0}}),hasMore:!1}}offConversationChange(e){this.off(`conversationChange`,e)}offInterrupt(e){this.off(`interrupt`,e)}onConversationChange(e){this.on(`conversationChange`,e)}onInterrupt(e){this.on(`interrupt`,e)}reset(){this.stop(),this.activeToolCalls.clear(),this.pendingToolCallArgs.clear(),this.pendingInterruptId=``,this.updateConversationId(``)}async resume(e){this.abortController||=new AbortController;let t=this.abortController,n,r;this.resumeMode===`create_agent`?(n=e.map(e=>({type:e.decision,...e.message==null?{}:{message:e.message}})),r={decisions:n,conversation_id:this.conversationId}):r={decisions:e,conversation_id:this.conversationId,...this.pendingInterruptId?{interrupt_id:this.pendingInterruptId}:{}},this.pendingInterruptId=``,this.emit(`replyChange`,``,this.replyParts.join(``));try{let e=this.buildRequestHeaders();this.conversationId&&(e[`x-conversation-id`]=this.conversationId);let n=await fetch(`${this.resumeEndpoint||this.endpoint}`,{method:`POST`,headers:e,body:JSON.stringify(r),signal:t.signal});if(!n.ok)throw Error(await RI(n));let i=n.headers.get(`x-conversation-id`);i&&this.updateConversationId(i),await this.processSseStream(n,this.replyParts)}catch(e){if(t.signal.aborted)return;throw Error(zI(e))}finally{this.abortController===t&&(this.abortController=null)}}setInitialUserContexts(e){this.initialUserContexts=e.map(e=>e.trim()).filter(Boolean)}setPrepareRequestBody(e){this.prepareRequestBody=e}setRequestHeaders(e){this.requestHeaders={...this.requestHeaders,...e}}setUser(e){this.user=e}stop(){this.abortController&&(this.abortController.abort(),this.abortController=null,this.emit(`stop`))}supportsHistory(){return!!this.historyEndpoint}buildRequestHeaders(){let e={"Content-Type":`application/json`,...this.requestHeaders};return this.user&&(e[`x-user`]=this.user),this.app&&(e[`x-app`]=this.app),e}checkAndHandleInterrupt(e){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__);for(let t of Object.values(e))if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__)}return!1}emitInterruptFromEntries(e){let t=e[0],n=typeof t.id==`string`?t.id:``;if(!n)return!1;this.pendingInterruptId=n;let r=t.value,i=Array.isArray(r?.action_requests)?r.action_requests:[],a=Array.isArray(r?.review_configs)?r.review_configs:[];return this.emit(`interrupt`,{interrupt_id:n,action_requests:i.map(e=>({name:typeof e.name==`string`?e.name:``,args:e.args&&typeof e.args==`object`?e.args:{},description:typeof e.description==`string`?e.description:``})),review_configs:a.map(e=>({action_name:typeof e.action_name==`string`?e.action_name:``,allowed_decisions:Array.isArray(e.allowed_decisions)?e.allowed_decisions:[]}))}),!0}emitToolCallEvent(e){this.emit(`toolCall`,e)}handleAstreamEventsData(e,t){let n=typeof e.event==`string`?e.event:``,r=typeof e.run_id==`string`?e.run_id:``,i=e.data&&typeof e.data==`object`?e.data:{};if(n===`on_chat_model_stream`){let e=i.chunk&&typeof i.chunk==`object`?i.chunk:{},n=e.kwargs&&typeof e.kwargs==`object`?e.kwargs:{};return this.processAIMessageKwargs(n,t,r)}if(n===`on_tool_end`){let e=i.output;if(this.activeToolCalls.has(r)){let t=this.activeToolCalls.get(r),n=Date.now();this.emitToolCallEvent({toolCallId:r,toolName:t.toolName,title:t.title,status:`success`,output:e,stepNumber:0,durationMs:n-t.startedAt,timestamp:t.startedAt}),this.activeToolCalls.delete(r),this.pendingToolCallArgs.delete(r)}return!1}return!1}handleSsePacket(e,t){let n=e.data||{};if(e.event===`start`){let e=typeof n.thread_id==`string`?n.thread_id:``;return e&&this.updateConversationId(e),!1}if(e.event===`messages`){if((typeof n.mode==`string`?n.mode:``)===`messages`){if(this.mode===`astream_events`&&n.data&&typeof n.data==`object`&&!Array.isArray(n.data))return this.handleAstreamEventsData(n.data,t);if(this.isV2StreamPart(n.data))return this.handleV2StreamPart(n.data,t);let e=(Array.isArray(n.data)?n.data:[])[0];return e?this.processAIMessageKwargs(e.kwargs,t):!1}return!1}if(e.event===`updates`)return this.checkAndHandleInterrupt(n.data);if(e.event===`error`){let e=typeof n.message==`string`&&n.message?n.message:`流式请求失败`;throw Error(e)}return!1}handleV2StreamPart(e,t){if(e.type===`messages`){let n=(Array.isArray(e.data)?e.data:[])[0];if(!n)return!1;let r=n.kwargs;return this.processAIMessageKwargs(r,t)}return e.type===`updates`||e.type===`interrupts`?this.checkAndHandleInterrupt(e.data):!1}isV2StreamPart(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.type==`string`&&Array.isArray(t.ns)&&`data`in t}processAIMessageKwargs(e,t,n=``){if((typeof e.type==`string`?e.type:``)===`tool`){let t=typeof e.tool_call_id==`string`?e.tool_call_id:``,n=typeof e.content==`string`?e.content:``;if(t&&this.activeToolCalls.has(t)){let e=this.activeToolCalls.get(t),r=Date.now();this.emitToolCallEvent({toolCallId:t,toolName:e.toolName,title:e.title,status:`success`,output:n,stepNumber:0,durationMs:r-e.startedAt,timestamp:e.startedAt}),this.activeToolCalls.delete(t),this.pendingToolCallArgs.delete(t)}return!1}let r=Array.isArray(e.tool_call_chunks)?e.tool_call_chunks:[];if(r.length>0){for(let e of r){let t=e,r=typeof t.name==`string`?t.name:``,i=typeof t.args==`string`?t.args:``;if(r){let e=(typeof t.id==`string`&&t.id?t.id:n)||``;this.currentToolCallId=e;let a=Date.now();this.activeToolCalls.set(e,{toolName:r,title:r,startedAt:a}),this.pendingToolCallArgs.set(e,i),this.emitToolCallEvent({toolCallId:e,toolName:r,title:r,status:`running`,input:i,stepNumber:0,timestamp:a})}else if(this.currentToolCallId){let e=this.currentToolCallId,t=this.pendingToolCallArgs.get(e)||``;this.pendingToolCallArgs.set(e,t+i);let n=this.activeToolCalls.get(e)?.toolName??`tool_call`;this.emitToolCallEvent({toolCallId:e,toolName:n,title:n,status:`running`,input:this.pendingToolCallArgs.get(e)||``,stepNumber:0,timestamp:Date.now()})}}return!1}if((e.response_metadata&&typeof e.response_metadata==`object`?e.response_metadata:{}).finish_reason===`tool_calls`&&this.activeToolCalls.size>0){for(let[e,t]of this.activeToolCalls)this.emitToolCallEvent({toolCallId:e,toolName:t.toolName,title:t.title??t.toolName,status:`success`,input:this.pendingToolCallArgs.get(e)||``,stepNumber:0,timestamp:t.startedAt});return!1}let i=e.additional_kwargs&&typeof e.additional_kwargs==`object`?e.additional_kwargs:{},a=typeof i.reasoning_content==`string`?i.reasoning_content:``;if(a)return this.inThinkBlock||(this.inThinkBlock=!0,t.push(`<think>`),this.emit(`replyChange`,`<think>`,t.join(``))),t.push(a),this.emit(`replyChange`,a,t.join(``)),!1;let o=typeof e.content==`string`?e.content:``;return o&&(this.inThinkBlock&&(this.inThinkBlock=!1,t.push(`</think>`),this.emit(`replyChange`,`</think>`,t.join(``))),t.push(o),this.emit(`replyChange`,o,t.join(``))),!1}async processSseStream(e,t){if(!e.body)throw Error(`当前浏览器不支持读取流式响应`);let n=e.body.getReader(),r=new TextDecoder,i=``;try{for(;;){let{value:e,done:a}=await n.read();if(a)break;i+=r.decode(e,{stream:!0});let o=i.split(`
340
+ `)}\n\n${e}`:e;try{let e=this.buildRequestHeaders(),i={prompt:r,conversation_id:this.conversationId||null,stream_mode:(this.mode,`messages,updates`),user:this.user,app:this.app,attachments:t};this.prepareRequestBody&&(i=this.prepareRequestBody(i));let a=await fetch(this.endpoint,{method:`POST`,headers:e,body:JSON.stringify(i),signal:n.signal});if(!a.ok)throw Error(await RI(a));let o=a.headers.get(`x-conversation-id`);if(o&&this.updateConversationId(o),await this.processSseStream(a,this.replyParts))return}catch(e){if(n.signal.aborted)return;throw Error(zI(e))}finally{this.abortController===n&&(this.abortController=null)}}clearInitialUserContexts(){this.initialUserContexts=[]}async deleteConversation(e){if(!this.historyEndpoint)throw Error(`未配置 historyEndpoint`);try{let t=new URL(`${this.historyEndpoint}/threads/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n=await fetch(t.toString(),{method:`DELETE`});if(n.status===404)throw Error(`未找到会话: ${e}`);if(!n.ok)throw Error(await RI(n))}catch(e){throw Error(zI(e))}}getApp(){return this.app}async getConversationDetail(e,t){if(!this.historyEndpoint)return[];this.updateConversationId(e);let n;try{let t=new URL(`${this.historyEndpoint}/conversations/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let r=await fetch(t.toString());if(r.status===404)return[];if(!r.ok)throw Error(await RI(r));n=await r.json()}catch(e){throw Error(zI(e))}let r=[],i=new Map,a=[];for(let t of n.messages??[])switch(t.type??t.role??``){case`ai`:{if(Array.isArray(t.tool_calls)&&t.tool_calls.length>0){let e=Date.now();for(let n of t.tool_calls)n.id&&(i.set(n.id,{toolName:n.name,args:n.args,startedAt:e}),a.push({toolCallId:n.id,toolName:n.name,title:n.name,status:`running`,stepNumber:0,startedAt:e,inputPreview:n.args?JSON.stringify(n.args).slice(0,200):void 0}))}let n=u(t.content);if(n){let t={key:`hist-${e}-a${r.length}`,role:`ai`,content:n};a.length>0&&(t.toolTimeline=a,t.segments=[...a.map(e=>({type:`tool`,toolCallId:e.toolCallId})),{type:`text`,start:0,end:-1}],a=[],i.clear()),r.push(t)}break}case`human`:r.push({key:`hist-${e}-u${r.length}`,role:`user`,content:u(t.content)});break;case`tool`:{let e=t.tool_call_id??``,n=e?i.get(e):void 0,r=a.find(t=>t.toolCallId===e);if(r){let a=u(t.content);r.status=t.status===`error`?`error`:`success`,r.resultPreview=a.slice(0,500),n&&(r.durationMs=Date.now()-n.startedAt,i.delete(e))}break}}return r}getConversationId(){return this.conversationId}getUser(){return this.user}async listConversations(e){if(!this.historyEndpoint)return{items:[],hasMore:!1};let t=new URL(`${this.historyEndpoint}/conversations`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n;try{let e=await fetch(t.toString());if(!e.ok)throw Error(await RI(e));n=await e.json()}catch(e){throw Error(zI(e))}return{items:n.map(e=>{let t=e.created_at?new Date(e.created_at).getTime():void 0;return{id:e.conversation_id,title:e.title||t?.toString()||`未命名会话`,createdAt:t&&!Number.isNaN(t)?t:void 0}}),hasMore:!1}}offConversationChange(e){this.off(`conversationChange`,e)}offInterrupt(e){this.off(`interrupt`,e)}onConversationChange(e){this.on(`conversationChange`,e)}onInterrupt(e){this.on(`interrupt`,e)}reset(){this.stop(),this.activeToolCalls.clear(),this.pendingToolCallArgs.clear(),this.pendingInterruptId=``,this.updateConversationId(``)}async resume(e){this.abortController||=new AbortController;let t=this.abortController,n,r;this.resumeMode===`create_agent`?(n=e.map(e=>({type:e.decision,...e.message==null?{}:{message:e.message}})),r={decisions:n,conversation_id:this.conversationId}):r={decisions:e,conversation_id:this.conversationId,...this.pendingInterruptId?{interrupt_id:this.pendingInterruptId}:{}},this.pendingInterruptId=``,this.emit(`replyChange`,``,this.replyParts.join(``));try{let e=this.buildRequestHeaders();this.conversationId&&(e[`x-conversation-id`]=this.conversationId);let n=await fetch(`${this.resumeEndpoint||this.endpoint}`,{method:`POST`,headers:e,body:JSON.stringify(r),signal:t.signal});if(!n.ok)throw Error(await RI(n));let i=n.headers.get(`x-conversation-id`);i&&this.updateConversationId(i),await this.processSseStream(n,this.replyParts)}catch(e){if(t.signal.aborted)return;throw Error(zI(e))}finally{this.abortController===t&&(this.abortController=null)}}setInitialUserContexts(e){this.initialUserContexts=e.map(e=>e.trim()).filter(Boolean)}setPrepareRequestBody(e){this.prepareRequestBody=e}setRequestHeaders(e){this.requestHeaders={...this.requestHeaders,...e}}setUser(e){this.user=e}stop(){this.abortController&&(this.abortController.abort(),this.abortController=null,this.emit(`stop`))}supportsHistory(){return!!this.historyEndpoint}buildRequestHeaders(){let e={"Content-Type":`application/json`,...this.requestHeaders};return this.user&&(e[`x-user`]=this.user),this.app&&(e[`x-app`]=this.app),e}checkAndHandleInterrupt(e){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__);for(let t of Object.values(e))if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__)}return!1}emitInterruptFromEntries(e){let t=e[0],n=typeof t.id==`string`?t.id:``;if(!n)return!1;this.pendingInterruptId=n;let r=t.value,i=Array.isArray(r?.action_requests)?r.action_requests:[],a=Array.isArray(r?.review_configs)?r.review_configs:[];return this.emit(`interrupt`,{interrupt_id:n,action_requests:i.map(e=>({name:typeof e.name==`string`?e.name:``,args:e.args&&typeof e.args==`object`?e.args:{},description:typeof e.description==`string`?e.description:``})),review_configs:a.map(e=>({action_name:typeof e.action_name==`string`?e.action_name:``,allowed_decisions:Array.isArray(e.allowed_decisions)?e.allowed_decisions:[]}))}),!0}emitToolCallEvent(e){this.emit(`toolCall`,e)}handleAstreamEventsData(e,t){let n=typeof e.event==`string`?e.event:``,r=typeof e.run_id==`string`?e.run_id:``,i=e.data&&typeof e.data==`object`?e.data:{};if(n===`on_chat_model_stream`){let e=i.chunk&&typeof i.chunk==`object`?i.chunk:{},n=e.kwargs&&typeof e.kwargs==`object`?e.kwargs:{};return this.processAIMessageKwargs(n,t,r)}if(n===`on_tool_end`){let e=i.output;if(this.activeToolCalls.has(r)){let t=this.activeToolCalls.get(r),n=Date.now();this.emitToolCallEvent({toolCallId:r,toolName:t.toolName,title:t.title,status:`success`,output:e,stepNumber:0,durationMs:n-t.startedAt,timestamp:t.startedAt}),this.activeToolCalls.delete(r),this.pendingToolCallArgs.delete(r)}return!1}return!1}handleSsePacket(e,t){let n=e.data||{};if(e.event===`start`){let e=typeof n.thread_id==`string`?n.thread_id:``;return e&&this.updateConversationId(e),!1}if(e.event===`messages`){if((typeof n.mode==`string`?n.mode:``)===`messages`){if(this.mode===`astream_events`&&n.data&&typeof n.data==`object`&&!Array.isArray(n.data))return this.handleAstreamEventsData(n.data,t);if(this.isV2StreamPart(n.data))return this.handleV2StreamPart(n.data,t);let e=(Array.isArray(n.data)?n.data:[])[0];return e?this.processAIMessageKwargs(e.kwargs,t):!1}return!1}if(e.event===`updates`)return this.emit(`updates`,n.data),this.checkAndHandleInterrupt(n.data);if(e.event===`error`){let e=typeof n.message==`string`&&n.message?n.message:`流式请求失败`;throw Error(e)}return!1}handleV2StreamPart(e,t){if(e.type===`messages`){let n=(Array.isArray(e.data)?e.data:[])[0];if(!n)return!1;let r=n.kwargs;return this.processAIMessageKwargs(r,t)}return e.type===`updates`||e.type===`interrupts`?this.checkAndHandleInterrupt(e.data):!1}isV2StreamPart(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.type==`string`&&Array.isArray(t.ns)&&`data`in t}processAIMessageKwargs(e,t,n=``){if((typeof e.type==`string`?e.type:``)===`tool`){let t=typeof e.tool_call_id==`string`?e.tool_call_id:``,n=typeof e.content==`string`?e.content:``;if(t&&this.activeToolCalls.has(t)){let e=this.activeToolCalls.get(t),r=Date.now();this.emitToolCallEvent({toolCallId:t,toolName:e.toolName,title:e.title,status:`success`,output:n,stepNumber:0,durationMs:r-e.startedAt,timestamp:e.startedAt}),this.activeToolCalls.delete(t),this.pendingToolCallArgs.delete(t)}return!1}let r=Array.isArray(e.tool_call_chunks)?e.tool_call_chunks:[];if(r.length>0){for(let e of r){let t=e,r=typeof t.name==`string`?t.name:``,i=typeof t.args==`string`?t.args:``;if(r){let e=(typeof t.id==`string`&&t.id?t.id:n)||``;this.currentToolCallId=e;let a=Date.now();this.activeToolCalls.set(e,{toolName:r,title:r,startedAt:a}),this.pendingToolCallArgs.set(e,i),this.emitToolCallEvent({toolCallId:e,toolName:r,title:r,status:`running`,input:i,stepNumber:0,timestamp:a})}else if(this.currentToolCallId){let e=this.currentToolCallId,t=this.pendingToolCallArgs.get(e)||``;this.pendingToolCallArgs.set(e,t+i);let n=this.activeToolCalls.get(e)?.toolName??`tool_call`;this.emitToolCallEvent({toolCallId:e,toolName:n,title:n,status:`running`,input:this.pendingToolCallArgs.get(e)||``,stepNumber:0,timestamp:Date.now()})}}return!1}if((e.response_metadata&&typeof e.response_metadata==`object`?e.response_metadata:{}).finish_reason===`tool_calls`&&this.activeToolCalls.size>0){for(let[e,t]of this.activeToolCalls)this.emitToolCallEvent({toolCallId:e,toolName:t.toolName,title:t.title??t.toolName,status:`success`,input:this.pendingToolCallArgs.get(e)||``,stepNumber:0,timestamp:t.startedAt});return!1}let i=e.additional_kwargs&&typeof e.additional_kwargs==`object`?e.additional_kwargs:{},a=typeof i.reasoning_content==`string`?i.reasoning_content:``;if(a)return this.inThinkBlock||(this.inThinkBlock=!0,t.push(`<think>`),this.emit(`replyChange`,`<think>`,t.join(``))),t.push(a),this.emit(`replyChange`,a,t.join(``)),!1;let o=typeof e.content==`string`?e.content:``;return o&&(this.inThinkBlock&&(this.inThinkBlock=!1,t.push(`</think>`),this.emit(`replyChange`,`</think>`,t.join(``))),t.push(o),this.emit(`replyChange`,o,t.join(``))),!1}async processSseStream(e,t){if(!e.body)throw Error(`当前浏览器不支持读取流式响应`);let n=e.body.getReader(),r=new TextDecoder,i=``;try{for(;;){let{value:e,done:a}=await n.read();if(a)break;i+=r.decode(e,{stream:!0});let o=i.split(`
341
341
 
342
- `);i=o.pop()||``;for(let e of o){if(!e.trim())continue;let n=LI(e);if(n&&this.handleSsePacket(n,t))return!0}}if(i.trim()){let e=LI(i);if(e&&this.handleSsePacket(e,t))return!0}}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return!1;throw e}finally{try{n.cancel()}catch{}}return!1}updateConversationId(e){this.conversationId!==e&&(this.conversationId=e,this.emit(`conversationChange`,e))}},VI={class:`agent-picker-wrap`},HI={class:`agent-menu-item`},UI={class:`agent-menu-label`},WI={class:`agent-menu-add`},GI=(0,a.defineComponent)({__name:`AgentPicker`,props:{builtInAgents:{},disabled:{type:Boolean,default:!1},storageKey:{default:`chat_panel_agent`},value:{default:``}},emits:[`update:value`,`update:agents`],setup(e,{emit:t}){let n=e,r=t,i=`${n.storageKey}_configs`,o=`${n.storageKey}_selected`,s=(0,a.ref)([]),c=new Map,l=(0,a.ref)(!1),u=(0,a.ref)(null),d=(0,a.ref)(!1),f=(0,a.ref)(),p=[{value:`langchain_py`,label:`Langchain Py(SSE 流式)`},{value:`dify_sdk`,label:`Dify SDK`}],m=[{value:`astream`,label:`astream`},{value:`astream_events`,label:`astream_events`}],h=[{value:`langgraph`,label:`langgraph`},{value:`create_agent`,label:`create_agent`}];function g(){return{label:``,type:`langchain_py`,endpoint:``,historyEndpoint:``,user:``,app:``,mode:void 0,resumeMode:void 0,resumeEndpoint:``,apiKey:``,apiBaseUrl:``}}let _=(0,a.reactive)(g()),v=(0,a.computed)(()=>({label:[{required:!0,message:`请输入名称`,trigger:`blur`}],type:[{required:!0,message:`请选择类型`,trigger:`change`}],..._.type===`langchain_py`?{endpoint:[{required:!0,message:`请输入接口地址`,trigger:`blur`}]}:{apiKey:[{required:!0,message:`请输入 API Key`,trigger:`blur`}]}}));function y(){try{let e=localStorage.getItem(i);s.value=e?JSON.parse(e):[]}catch{s.value=[]}}function b(){localStorage.setItem(i,JSON.stringify(s.value))}function x(e){let t=`custom_${e.id}`;if(c.has(t))return c.get(t);let n=e.type===`langchain_py`?(0,a.markRaw)(new BI({endpoint:e.endpoint,historyEndpoint:e.historyEndpoint||void 0,user:e.user||void 0,app:e.app||void 0,mode:e.mode,resumeMode:e.resumeMode,resumeEndpoint:e.resumeEndpoint||void 0})):(0,a.markRaw)(new GD({apiKey:e.apiKey,apiBaseUrl:e.apiBaseUrl||void 0,user:e.user||void 0}));return c.set(t,n),n}let S=(0,a.computed)(()=>s.value.map(e=>({key:`custom_${e.id}`,label:e.label,agent:x(e)}))),C=(0,a.computed)(()=>[...n.builtInAgents,...S.value]),w=(0,a.computed)(()=>[...n.builtInAgents.map(e=>({value:e.key,label:e.label,isBuiltIn:!0})),...s.value.map(e=>({value:`custom_${e.id}`,label:e.label,isBuiltIn:!1}))]);function T(){r(`update:agents`,C.value)}function E(){u.value=null,Object.assign(_,g()),l.value=!0}function D(e){let t=e.replace(/^custom_/,``),n=s.value.find(e=>e.id===t);n&&(u.value=t,Object.assign(_,{label:n.label,type:n.type,endpoint:n.endpoint??``,historyEndpoint:n.historyEndpoint??``,user:n.user??``,app:n.app??``,mode:n.mode,resumeMode:n.resumeMode,resumeEndpoint:n.resumeEndpoint??``,apiKey:n.apiKey??``,apiBaseUrl:n.apiBaseUrl??``}),l.value=!0)}function O(){l.value=!1,u.value=null,Object.assign(_,g())}async function k(){try{await f.value?.validate()}catch{return}d.value=!0;try{let e=!!u.value,t=e?u.value:`${Date.now()}${Math.random().toString(36).slice(2,6)}`,n={id:t,label:_.label.trim(),type:_.type,..._.type===`langchain_py`?{endpoint:_.endpoint.trim(),historyEndpoint:_.historyEndpoint.trim()||void 0,user:_.user.trim()||void 0,app:_.app.trim()||void 0,mode:_.mode,resumeMode:_.resumeMode,resumeEndpoint:_.resumeEndpoint.trim()||void 0}:{apiKey:_.apiKey.trim(),apiBaseUrl:_.apiBaseUrl.trim()||void 0,user:_.user.trim()||void 0}};e?(s.value=s.value.map(e=>e.id===t?n:e),c.delete(`custom_${t}`)):s.value=[...s.value,n],b(),T(),l.value=!1,u.value=null,Object.assign(_,g()),bb.success(e?`智能体已更新`:`智能体已添加`)}finally{d.value=!1}}function A(e){let t=e.replace(/^custom_/,``);if(s.value=s.value.filter(e=>e.id!==t),b(),c.delete(e),T(),n.value===e){let e=n.builtInAgents[0]?.key||``;localStorage.setItem(o,e),r(`update:value`,e)}bb.success(`已删除`)}let j=(0,a.computed)(()=>w.value.find(e=>e.value===n.value)?.label||`选择智能体`);function M({key:e}){let t=String(e??``);if(t===`__add__`){E();return}localStorage.setItem(o,t),r(`update:value`,t)}return(0,a.onMounted)(()=>{y(),T();let e=localStorage.getItem(o);e&&e!==n.value&&[...n.builtInAgents.map(e=>e.key),...s.value.map(e=>`custom_${e.id}`)].includes(e)&&r(`update:value`,e)}),(t,n)=>{let r=(0,a.resolveComponent)(`ASelect`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,VI,[(0,a.createVNode)((0,a.unref)(hx),{trigger:[`click`],disabled:e.disabled},{overlay:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(wg),{class:`agent-picker-menu`,onClick:M},{default:(0,a.withCtx)(()=>[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(w.value,t=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Kh),{key:t.value,class:(0,a.normalizeClass)({"is-active":t.value===e.value})},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,HI,[(0,a.createElementVNode)(`span`,UI,(0,a.toDisplayString)(t.label),1),t.isBuiltIn?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)((0,a.unref)(xT),{class:`agent-menu-edit`,onClick:(0,a.withModifiers)(e=>D(String(t.value)),[`stop`])},null,8,[`onClick`]),(0,a.createVNode)((0,a.unref)(zw),{class:`agent-menu-del`,onClick:(0,a.withModifiers)(e=>A(String(t.value)),[`stop`])},null,8,[`onClick`])],64))])]),_:2},1032,[`class`]))),128)),(0,a.createVNode)((0,a.unref)(sg)),(0,a.createVNode)((0,a.unref)(Kh),{key:`__add__`},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,WI,[(0,a.createVNode)((0,a.unref)(Kg)),n[13]||=(0,a.createTextVNode)(` 新增智能体`,-1)])]),_:1})]),_:1})]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,{class:(0,a.normalizeClass)([`agent-picker-label`,{"agent-picker-label--disabled":e.disabled}])},[(0,a.createTextVNode)((0,a.toDisplayString)(j.value)+` `,1),(0,a.createVNode)((0,a.unref)(fu),{class:`agent-picker-arrow`})],2)]),_:1},8,[`disabled`]),(0,a.createVNode)((0,a.unref)(JC),{open:l.value,"onUpdate:open":n[12]||=e=>l.value=e,title:u.value?`编辑智能体`:`新增智能体`,footer:null,"destroy-on-close":!0,"z-index":1e4,width:`480px`,onCancel:O},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(Cy),{ref_key:`formRef`,ref:f,model:_,rules:v.value,layout:`vertical`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(my),{label:`名称`,name:`label`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.label,"onUpdate:value":n[0]||=e=>_.label=e,placeholder:`智能体显示名称`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`类型`,name:`type`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{value:_.type,"onUpdate:value":n[1]||=e=>_.type=e,style:{width:`100%`},options:p},null,8,[`value`])]),_:1}),_.type===`langchain_py`?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)((0,a.unref)(my),{label:`Endpoint(流式接口地址)`,name:`endpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.endpoint,"onUpdate:value":n[2]||=e=>_.endpoint=e,placeholder:`http://10.0.0.1:8000/ai/chat/stream`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`History Endpoint(历史接口地址)`,name:`historyEndpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.historyEndpoint,"onUpdate:value":n[3]||=e=>_.historyEndpoint=e,placeholder:`http://10.0.0.1:8000/history(可选)`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`User(用户标识)`,name:`user`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.user,"onUpdate:value":n[4]||=e=>_.user=e,placeholder:`可选,用于历史记录隔离`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`App(应用标识)`,name:`app`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.app,"onUpdate:value":n[5]||=e=>_.app=e,placeholder:`可选,用于历史记录隔离`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`Mode(流式模式)`,name:`mode`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{value:_.mode,"onUpdate:value":n[6]||=e=>_.mode=e,style:{width:`100%`},"allow-clear":``,placeholder:`默认 astream`,options:m},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`Resume Mode(恢复模式)`,name:`resumeMode`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{value:_.resumeMode,"onUpdate:value":n[7]||=e=>_.resumeMode=e,style:{width:`100%`},"allow-clear":``,placeholder:`默认 langgraph`,options:h},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`Resume Endpoint(恢复接口地址)`,name:`resumeEndpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.resumeEndpoint,"onUpdate:value":n[8]||=e=>_.resumeEndpoint=e,placeholder:`http://10.0.0.1:8000/ai/resume(可选,默认同 Endpoint)`,"allow-clear":``},null,8,[`value`])]),_:1})],64)):(0,a.createCommentVNode)(``,!0),_.type===`dify_sdk`?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createVNode)((0,a.unref)(my),{label:`API Key`,name:`apiKey`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(lS),{value:_.apiKey,"onUpdate:value":n[9]||=e=>_.apiKey=e,placeholder:`sk-...`,autocomplete:`off`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`API Base URL`,name:`apiBaseUrl`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.apiBaseUrl,"onUpdate:value":n[10]||=e=>_.apiBaseUrl=e,placeholder:`https://rag.netstar-soft.com(可选)`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`User(用户标识)`,name:`user`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.user,"onUpdate:value":n[11]||=e=>_.user=e,placeholder:`可选`,"allow-clear":``},null,8,[`value`])]),_:1})],64)):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(my),{style:{"margin-top":`8px`,"margin-bottom":`0`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(tw),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(th),{type:`primary`,loading:d.value,onClick:k},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(u.value?`保存修改`:`确认添加`),1)]),_:1},8,[`loading`]),(0,a.createVNode)((0,a.unref)(th),{onClick:O},{default:(0,a.withCtx)(()=>[...n[14]||=[(0,a.createTextVNode)(`取消`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model`,`rules`])]),_:1},8,[`open`,`title`])])}}}),KI=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},qI=KI(GI,[[`__scopeId`,`data-v-69e639be`]]),JI=(0,a.defineComponent)({__name:`CodeBlockNode`,props:{codeBlockComponents:{},node:{},isDark:{type:Boolean},loading:{type:Boolean},stream:{type:Boolean},darkTheme:{},lightTheme:{},isShowPreview:{type:Boolean},monacoOptions:{},enableFontSizeControl:{type:Boolean},minWidth:{},maxWidth:{},themes:{},showHeader:{type:Boolean},showCopyButton:{type:Boolean},showExpandButton:{type:Boolean},showPreviewButton:{type:Boolean},showCollapseButton:{type:Boolean},showFontSizeButtons:{type:Boolean},showTooltips:{type:Boolean},customId:{}},setup(e){let t=e,n={},r=e=>String(e??``).trim().split(`:`)[0].toLowerCase(),o=(0,a.computed)(()=>{let e=t.node.language,o=r(e);return(0,a.toRaw)((e?t.codeBlockComponents?.[e]:void 0)||t.codeBlockComponents?.[o]||n[o])||i.S});return(e,n)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(o.value),(0,a.normalizeProps)((0,a.guardReactiveProps)(t)),null,16))}}),YI={class:`think-node__layout`},XI={class:`think-node__header`},ZI={class:`think-node__header-main`},QI={class:`think-node__prefix`},$I=1,eL=240,tL=KI((0,a.defineComponent)({__name:`ThinkNode`,props:{node:{}},setup(e){let t=e,n=(0,a.ref)(!1),r=(0,a.ref)(),i=(0,a.ref)(!1),o=(0,a.computed)(()=>t.node?.content??t.node?.code??``),s=(0,a.computed)(()=>!!t.node?.loading),c=(0,a.computed)(()=>o.value?o.value:s.value?`正在整理思路...`:`暂无思考内容`),l=(0,a.computed)(()=>!!o.value&&(i.value||n.value));function u(){let e=r.value;if(!e)return;let t=globalThis.getComputedStyle?.(e),n=Number.parseFloat(t?.lineHeight??``);Number.isFinite(n)||(n=(Number.parseFloat(t?.fontSize??``)||14)*1.6);let a=n*$I+1;i.value=e.scrollHeight>a}return(0,a.watch)([o,n],async()=>{await(0,a.nextTick)(),u()},{immediate:!0}),(0,a.onMounted)(()=>{globalThis.addEventListener?.(`resize`,u),(0,a.nextTick)(()=>{u()})}),(0,a.onBeforeUnmount)(()=>{globalThis.removeEventListener?.(`resize`,u)}),(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{class:(0,a.normalizeClass)([`think-node`,{"is-thinking":s.value,"is-expanded":n.value}])},[(0,a.createElementVNode)(`div`,YI,[(0,a.createElementVNode)(`div`,XI,[(0,a.createElementVNode)(`div`,ZI,[(0,a.createElementVNode)(`span`,QI,[s.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,class:`think-node__prefix-icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(ZE),{key:1,class:`think-node__prefix-icon`})),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(s.value?`思考中:`:`思考:`),1)]),n.value?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`contentRef`,ref:r,class:(0,a.normalizeClass)([`think-node__content think-node__content--inline is-collapsed`,{"is-overflowing":i.value}])},(0,a.toDisplayString)(c.value),3))]),l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,type:`button`,class:`think-node__toggle`,onClick:t[0]||=e=>n.value=!n.value},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(n.value?`收起`:`展开`),1),((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.value?(0,a.unref)(EC):(0,a.unref)(fu)),{class:`think-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)]),n.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`contentRef`,ref:r,class:`think-node__content is-expanded`,style:(0,a.normalizeStyle)({maxHeight:`${eL}px`})},(0,a.toDisplayString)(c.value),5)):(0,a.createCommentVNode)(``,!0)])],2))}}),[[`__scopeId`,`data-v-5a2f210e`]]),nL=(0,a.defineComponent)({__name:`StreamMarkdown`,props:{codeBlockComponents:{},codeBlockProps:{},content:{},customComponents:{},customHtmlTags:{},final:{type:Boolean}},setup(e){let t=e,n=`stream-markdown-${globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}`;(0,a.watch)((0,a.computed)(()=>({code_block:JI,think:tL,...t.customComponents})),e=>{i.p(n,e)},{immediate:!0}),(0,a.onBeforeUnmount)(()=>{i.i(n)});let r=(0,a.computed)(()=>({...t.codeBlockProps,...t.codeBlockComponents?{codeBlockComponents:t.codeBlockComponents}:{}})),o=(0,a.computed)(()=>[...new Set([`think`,...t.customHtmlTags??[]].map(e=>String(e??``).trim()).filter(Boolean))]);return(t,s)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(i.x),{content:e.content,final:e.final??!0,"custom-id":n,"custom-html-tags":o.value,"code-block-props":r.value},null,8,[`content`,`final`,`custom-html-tags`,`code-block-props`]))}}),rL=[`role`,`tabindex`],iL={class:`tool-call-node__prefix`},aL={class:`tool-call-node__title`},oL={key:0,class:`tool-call-node__waiting-badge`},sL={key:1,class:`tool-call-node__result-badge is-approved`},cL={key:2,class:`tool-call-node__result-badge is-rejected`},lL={key:0,class:`tool-call-node__toggle`},uL={key:0,class:`tool-call-node__detail`},dL={key:0,class:`tool-call-node__line`},fL={class:`tool-call-node__value tool-call-node__value--overflow`},pL={key:1,class:`tool-call-node__line`},mL={class:`tool-call-node__label`},hL={class:`tool-call-node__value tool-call-node__value--overflow`},gL={key:2,class:`tool-call-node__approval`},_L={key:0,class:`tool-call-node__approval-desc`},vL={key:1,class:`tool-call-node__approval-args`},yL={class:`tool-call-node__approval-code`},bL={class:`tool-call-node__approval-actions`},xL=[`disabled`],SL=[`disabled`],CL=[`disabled`],wL={key:2,class:`tool-call-node__approval-edit`},TL=[`disabled`],EL={class:`tool-call-node__approval-edit-actions`},DL=[`disabled`],OL=[`disabled`],kL=KI((0,a.defineComponent)({__name:`ToolCallNode`,props:{expanded:{type:Boolean},resolving:{type:Boolean},tool:{}},emits:[`approve`,`edit`,`reject`,`toggle`],setup(e,{emit:t}){let n=t,r=e,i=t,o=(0,a.ref)(!1),s=(0,a.ref)(``),c=(0,a.ref)(null),l=(0,a.computed)(()=>r.tool.approvalConfig),u=(0,a.computed)(()=>r.tool.status===`waiting`&&l.value!=null);(0,a.watch)(u,e=>{e&&!r.expanded&&i(`toggle`)},{immediate:!0});let d=(0,a.computed)(()=>l.value?Object.keys(l.value.args).length>0:!1),f=(0,a.computed)(()=>l.value?JSON.stringify(l.value.args,null,2):``),p=(0,a.computed)(()=>!!(r.tool.input!=null||r.tool.output!=null||r.tool.error)),m=(0,a.computed)(()=>{let e=r.tool.input;if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}),h=(0,a.computed)(()=>{if(r.tool.status===`error`)return r.tool.error||``;let e=r.tool.output;if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}});(0,a.watch)(()=>l.value?.editContent,e=>{s.value=e||``},{immediate:!0});function g(){c.value=`approved`,i(`approve`,r.tool.toolName)}function _(){c.value=`rejected`,i(`reject`,r.tool.toolName)}function v(){c.value=`approved`,i(`edit`,r.tool.toolName,s.value),o.value=!1}return(t,i)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`tool-call-node`,`is-${r.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:(0,a.normalizeClass)([`tool-call-node__header`,{"tool-call-node__header--clickable":p.value||u.value}]),role:p.value||u.value?`button`:void 0,tabindex:p.value||u.value?0:void 0,onClick:i[0]||=e=>(p.value||u.value)&&n(`toggle`),onKeydown:[i[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>(p.value||u.value)&&n(`toggle`),[`prevent`]),[`enter`]),i[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>(p.value||u.value)&&n(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,iL,[r.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):r.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:1,class:`tool-call-node__prefix-icon`})):r.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Af),{key:2,class:`tool-call-node__prefix-icon`})):u.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(mx),{key:3,class:`tool-call-node__prefix-icon is-waiting`})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`span`,aL,[(0,a.createTextVNode)((0,a.toDisplayString)(r.tool.title||r.tool.toolName||`工具调用`)+` `,1),u.value&&!c.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,oL,`待审批`)):c.value===`approved`?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,sL,[(0,a.createVNode)((0,a.unref)(vf),{style:{"margin-right":`2px`}}),i[6]||=(0,a.createTextVNode)(`已批准 `,-1)])):c.value===`rejected`?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,cL,[(0,a.createVNode)((0,a.unref)(Af),{style:{"margin-right":`2px`}}),i[7]||=(0,a.createTextVNode)(`已拒绝 `,-1)])):(0,a.createCommentVNode)(``,!0)])]),p.value||u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,lL,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.expanded?(0,a.unref)(EC):(0,a.unref)(fu)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,rL),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,uL,[m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,dL,[i[8]||=(0,a.createElementVNode)(`span`,{class:`tool-call-node__label`},`入参:`,-1),(0,a.createVNode)((0,a.unref)(Dp),{placement:`topLeft`,"overlay-inner-style":{maxWidth:`480px`,maxHeight:`320px`,overflowY:`auto`,fontSize:`12px`,fontFamily:`monospace`,whiteSpace:`pre-wrap`,wordBreak:`break-all`}},{title:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(m.value),1)]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,fL,(0,a.toDisplayString)(m.value),1)]),_:1})])):(0,a.createCommentVNode)(``,!0),h.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,pL,[(0,a.createElementVNode)(`span`,mL,(0,a.toDisplayString)(r.tool.status===`error`?`错误:`:`结果:`),1),(0,a.createVNode)((0,a.unref)(Dp),{placement:`topLeft`,"overlay-inner-style":{maxWidth:`480px`,maxHeight:`320px`,overflowY:`auto`,fontSize:`12px`,fontFamily:`monospace`,whiteSpace:`pre-wrap`,wordBreak:`break-all`}},{title:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(h.value),1)]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,hL,(0,a.toDisplayString)(h.value),1)]),_:1})])):(0,a.createCommentVNode)(``,!0),u.value&&l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,gL,[(0,a.createVNode)(a.Transition,{name:`approval-result`},{default:(0,a.withCtx)(()=>[c.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,class:(0,a.normalizeClass)([`tool-call-node__approval-result`,[`is-${c.value}`]])},[c.value===`approved`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:0,class:`approval-result-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Af),{key:1,class:`approval-result-icon`})),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(c.value===`approved`?`已批准,继续执行中…`:`已拒绝,操作已取消`),1)],2)):(0,a.createCommentVNode)(``,!0)]),_:1}),c.value?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[l.value.description?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,_L,(0,a.toDisplayString)(l.value.description),1)):(0,a.createCommentVNode)(``,!0),d.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,vL,[i[9]||=(0,a.createElementVNode)(`span`,{class:`tool-call-node__label`},`参数:`,-1),(0,a.createElementVNode)(`code`,yL,(0,a.toDisplayString)(f.value),1)])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`div`,bL,[(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-approve`,disabled:e.resolving,onClick:(0,a.withModifiers)(g,[`stop`])},[(0,a.createVNode)((0,a.unref)(vf),{style:{"margin-right":`4px`}}),i[10]||=(0,a.createTextVNode)(` 批准 `,-1)],8,xL),l.value.allowedDecisions.includes(`edit`)?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,class:`tool-call-node__btn tool-call-node__btn-edit`,disabled:e.resolving,onClick:i[3]||=(0,a.withModifiers)(e=>o.value=!o.value,[`stop`])},` 修改后批准 `,8,SL)):(0,a.createCommentVNode)(``,!0),l.value.allowedDecisions.includes(`reject`)?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:1,class:`tool-call-node__btn tool-call-node__btn-reject`,disabled:e.resolving,onClick:(0,a.withModifiers)(_,[`stop`])},[(0,a.createVNode)((0,a.unref)(Af),{style:{"margin-right":`4px`}}),i[11]||=(0,a.createTextVNode)(` 拒绝 `,-1)],8,CL)):(0,a.createCommentVNode)(``,!0)]),o.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,wL,[(0,a.withDirectives)((0,a.createElementVNode)(`textarea`,{"onUpdate:modelValue":i[4]||=e=>s.value=e,class:`tool-call-node__textarea`,disabled:e.resolving,placeholder:`编辑内容...`,rows:`4`},null,8,TL),[[a.vModelText,s.value]]),(0,a.createElementVNode)(`div`,EL,[(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-approve`,disabled:e.resolving,onClick:(0,a.withModifiers)(v,[`stop`])},` 提交修改 `,8,DL),(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-cancel`,disabled:e.resolving,onClick:i[5]||=(0,a.withModifiers)(e=>o.value=!1,[`stop`])},` 取消 `,8,OL)])])):(0,a.createCommentVNode)(``,!0)],64))])):(0,a.createCommentVNode)(``,!0)])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-a4e5e40d`]]),AL={class:`sub-agent-node__prefix`},jL={class:`sub-agent-node__name`},ML={key:0,class:`sub-agent-node__body`},NL={class:`think-node__layout`},PL={class:`think-node__header`},FL={class:`think-node__header-main`},IL={class:`think-node__prefix`},LL={key:0,class:`think-node__content think-node__content--inline is-collapsed is-overflowing`},RL=[`onClick`],zL={class:`think-node__toggle-icon`},BL={key:0,class:`think-node__content is-expanded`},VL={key:0,class:`sub-agent-node__tools`},HL={key:1,class:`sub-agent-node__content`},UL=KI((0,a.defineComponent)({__name:`SubAgentNode`,props:{blocks:{},expanded:{type:Boolean},tool:{}},emits:[`toggle`],setup(e,{emit:t}){let n=e,r=(0,a.computed)(()=>{if(!n.blocks?.length)return[];let e=[],t={type:`reply`,blocks:[]};for(let r of n.blocks)r.type===`reasoning`||r.type===`tool_call`?(t.type!==`thinking`&&(t.blocks.length>0&&e.push(t),t={type:`thinking`,blocks:[]}),t.blocks.push(r)):(t.type!==`reply`&&(t.blocks.length>0&&e.push(t),t={type:`reply`,blocks:[]}),t.blocks.push(r));return t.blocks.length>0&&e.push(t),e}),i=(0,a.reactive)({});function o(e){i[e]=!i[e]}let s=(0,a.ref)({});function c(e){s.value={...s.value,[e]:!s.value[e]}}function l(e){let t=e;return{toolCallId:t.toolCallId,toolName:t.toolName,title:t.toolName,status:`success`,input:t.input,output:t.output,durationMs:t.durationMs,startedAt:t.startedAt||0}}return(n,u)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`sub-agent-node`,`is-${e.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:`sub-agent-node__header`,role:`button`,tabindex:`0`,onClick:u[0]||=e=>t(`toggle`),onKeydown:[u[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`enter`]),u[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,AL,[e.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,class:`sub-agent-node__icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:1,class:`sub-agent-node__icon`})),(0,a.createElementVNode)(`span`,jL,(0,a.toDisplayString)(e.tool.title||e.tool.toolName),1),u[3]||=(0,a.createElementVNode)(`span`,{class:`sub-agent-node__badge`},`子代理`,-1)]),((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.expanded?(0,a.unref)(EC):(0,a.unref)(fu)),{class:`sub-agent-node__chevron`}))],32),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,ML,[e.blocks?.length?((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:0},(0,a.renderList)(r.value,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:t},[e.type===`thinking`?((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{key:0,class:(0,a.normalizeClass)([`think-node`,{"is-expanded":i[t]!==!1}])},[(0,a.createElementVNode)(`div`,NL,[(0,a.createElementVNode)(`div`,PL,[(0,a.createElementVNode)(`div`,FL,[(0,a.createElementVNode)(`span`,IL,[(0,a.createVNode)((0,a.unref)(ZE),{class:`think-node__prefix-icon`}),u[4]||=(0,a.createElementVNode)(`span`,null,`思考:`,-1)]),i[t]===!1?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,LL,(0,a.toDisplayString)(e.blocks.filter(e=>e.type===`reasoning`).map(e=>e.text).join(` `)),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`button`,{type:`button`,class:`think-node__toggle`,onClick:e=>o(t)},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(i[t]===!1?`展开`:`收起`),1),(0,a.createElementVNode)(`span`,zL,(0,a.toDisplayString)(i[t]===!1?`▼`:`▲`),1)],8,RL)]),i[t]===!1?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,BL,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.blocks,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:t},[e.type===`reasoning`?((0,a.openBlock)(),(0,a.createBlock)(nL,{key:0,content:e.text},null,8,[`content`])):e.type===`tool_call`?((0,a.openBlock)(),(0,a.createBlock)(kL,{key:1,tool:l(e),expanded:!!s.value[e.toolCallId],onToggle:t=>c(e.toolCallId)},null,8,[`tool`,`expanded`,`onToggle`])):(0,a.createCommentVNode)(``,!0)],64))),128))]))])],2)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(e.blocks,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)(nL,{key:t,content:e.text},null,8,[`content`]))),128))],64))),128)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[e.tool.subAgentTools?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,VL,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.tool.subAgentTools,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)(kL,{key:e.toolCallId,tool:e,expanded:s.value[e.toolCallId]||!1,"step-number":t,onToggle:t=>c(e.toolCallId)},null,8,[`tool`,`expanded`,`step-number`,`onToggle`]))),128))])):(0,a.createCommentVNode)(``,!0),e.tool.subAgentContent?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,HL,[(0,a.createVNode)(nL,{content:e.tool.subAgentContent},null,8,[`content`])])):(0,a.createCommentVNode)(``,!0)],64))])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-526ce89d`]]),WL={key:0,class:`msg-renderer__loading`},GL={class:`think-node__layout`},KL={class:`think-node__header`},qL={class:`think-node__header-main`},JL={class:`think-node__prefix`},YL={key:0,class:`think-node__content think-node__content--inline is-collapsed is-overflowing`},XL=[`onClick`],ZL={class:`think-node__toggle-icon`},QL={key:0,class:`think-node__content is-expanded`},$L={key:1,class:`msg-renderer__attachments`},eR=KI((0,a.defineComponent)({__name:`MessageRenderer`,props:{customComponents:{},customHtmlTags:{},expandedTools:{default:()=>({})},interruptResolving:{type:Boolean},message:{},toolRenderers:{default:()=>({})}},emits:[`approve`,`edit`,`reject`,`toggleExpand`],setup(e,{emit:t}){let n=e,r=t;function i(e){return e===`write_todos`?`top`:`timeline`}function o(e,t){return e?.find(e=>e.toolCallId===t)}function s(e,t){return i(o(e.toolTimeline,t)?.toolName)===`timeline`}function c(e){return!e.segments||e.segments.length===0?e.content?[{type:`text`,text:e.content}]:[]:e.segments.map(t=>t.type===`tool`||t.type===`attachment`?t:{type:`text`,text:e.content.slice(t.start,t.end===-1?void 0:t.end)})}let l=(0,a.computed)(()=>Array.isArray(n.message.blocks)&&n.message.blocks.length>0),u=(0,a.computed)(()=>{if(!l.value)return[];let e=n.message.blocks,t=[],r={type:`reply`,blocks:[]};for(let n of e)n.type===`reasoning`||n.type===`tool_call`?(r.type!==`thinking`&&(r.blocks.length>0&&t.push(r),r={type:`thinking`,blocks:[]}),r.blocks.push(n)):(r.type!==`reply`&&(r.blocks.length>0&&t.push(r),r={type:`reply`,blocks:[]}),r.blocks.push(n));return r.blocks.length>0&&t.push(r),t}),d=(0,a.reactive)({});function f(e){d[e]=!d[e]}let p=(0,a.computed)(()=>c(n.message)),m=(0,a.computed)(()=>n.message.loading&&!n.message.content);function h(e){let t=o(n.message.toolTimeline,e);return t?.toolName?n.toolRenderers?.[t.toolName]??kL:kL}function g(e,t){r(`approve`,e,t)}function _(e,t){r(`reject`,e,t)}function v(e,t,n){r(`edit`,e,t,n)}function y(e){r(`toggleExpand`,e)}function b(e){let t=e;return{toolCallId:t.toolCallId,toolName:t.toolName,title:t.subAgentType||t.toolName,status:`success`,input:t.input,output:t.output,durationMs:t.durationMs,startedAt:t.startedAt,subAgentContent:t.subAgentContent,subAgentBlocks:t.subAgentBlocks,subAgentTools:t.subAgentTools}}function x(e){return e.subAgentType!=null}return(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,null,[m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,WL,[(0,a.createVNode)((0,a.unref)(gu),{style:{fontSize:`16px`,color:`var(--primary-color, var(--primary))`,marginRight:`8px`}}),n[0]||=(0,a.createElementVNode)(`span`,{class:`msg-renderer__loading-text`},`AI 正在思考...`,-1)])):(0,a.createCommentVNode)(``,!0),l.value?((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(u.value,(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:r},[t.type===`thinking`?((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{key:0,class:(0,a.normalizeClass)([`think-node`,{"is-expanded":d[r]!==!1}])},[(0,a.createElementVNode)(`div`,GL,[(0,a.createElementVNode)(`div`,KL,[(0,a.createElementVNode)(`div`,qL,[(0,a.createElementVNode)(`span`,JL,[(0,a.createVNode)((0,a.unref)(ZE),{class:`think-node__prefix-icon`}),n[1]||=(0,a.createElementVNode)(`span`,null,`思考:`,-1)]),d[r]===!1?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,YL,(0,a.toDisplayString)(t.blocks.filter(e=>e.type===`reasoning`).map(e=>e.text).join(` `)),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`button`,{type:`button`,class:`think-node__toggle`,onClick:e=>f(r)},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(d[r]===!1?`展开`:`收起`),1),(0,a.createElementVNode)(`span`,ZL,(0,a.toDisplayString)(d[r]===!1?`▼`:`▲`),1)],8,XL)]),d[r]===!1?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,QL,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(t.blocks,(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:n},[t.type===`reasoning`?((0,a.openBlock)(),(0,a.createBlock)(nL,{key:0,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`])):t.type===`tool_call`&&!x(t)?((0,a.openBlock)(),(0,a.createBlock)(kL,{key:1,tool:b(t),expanded:!!e.expandedTools[t.toolCallId],resolving:e.interruptResolving,onToggle:e=>y(t.toolCallId),onApprove:e=>g(t.toolCallId,e),onReject:e=>_(t.toolCallId,e),onEdit:(e,n)=>v(t.toolCallId,e,n)},null,8,[`tool`,`expanded`,`resolving`,`onToggle`,`onApprove`,`onReject`,`onEdit`])):t.type===`tool_call`?((0,a.openBlock)(),(0,a.createBlock)(UL,{key:2,tool:b(t),blocks:t.subAgentBlocks,expanded:!!e.expandedTools[t.toolCallId],onToggle:e=>y(t.toolCallId)},null,8,[`tool`,`blocks`,`expanded`,`onToggle`])):(0,a.createCommentVNode)(``,!0)],64))),128))]))])],2)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(t.blocks,(t,n)=>((0,a.openBlock)(),(0,a.createBlock)(nL,{key:n,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`]))),128))],64))),128)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:2},(0,a.renderList)(p.value,(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:n},[t.type===`tool`&&s(e.message,t.toolCallId)?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(h(t.toolCallId)),{key:0,tool:o(e.message.toolTimeline,t.toolCallId),expanded:e.expandedTools[t.toolCallId]===!0,"step-number":o(e.message.toolTimeline,t.toolCallId)?.stepNumber,resolving:e.interruptResolving,onToggle:e=>y(t.toolCallId),onApprove:e=>g(t.toolCallId,e),onReject:e=>_(t.toolCallId,e),onEdit:(e,n)=>v(t.toolCallId,e,n)},null,40,[`tool`,`expanded`,`step-number`,`resolving`,`onToggle`,`onApprove`,`onReject`,`onEdit`])):t.type===`attachment`&&t.attachments?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,$L,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(t.attachments,e=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(II).FileCard,{key:e.id,item:{uid:e.id,name:e.name,size:e.size,type:e.type,url:e.url,thumbUrl:e.url,status:`done`}},null,8,[`item`]))),128))])):t.type===`text`&&t.text?((0,a.openBlock)(),(0,a.createBlock)(nL,{key:2,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`])):(0,a.createCommentVNode)(``,!0)],64))),128))],64))}}),[[`__scopeId`,`data-v-8ed3e6de`]]),tR=class extends Error{constructor(e,t){super(`${e} at position ${t}`),this.position=t}},nR=32,rR=10,iR=9,aR=13,oR=160,sR=6158,cR=8192,lR=8203,uR=8239,dR=8287,fR=12288,pR=65279;function mR(e){return/^[0-9A-Fa-f]$/.test(e)}function hR(e){return e>=`0`&&e<=`9`}function gR(e){return e>=` `}function _R(e){return`,:[]/{}()
342
+ `);i=o.pop()||``;for(let e of o){if(!e.trim())continue;let n=LI(e);if(n&&this.handleSsePacket(n,t))return!0}}if(i.trim()){let e=LI(i);if(e&&this.handleSsePacket(e,t))return!0}}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return!1;throw e}finally{try{n.cancel()}catch{}}return!1}updateConversationId(e){this.conversationId!==e&&(this.conversationId=e,this.emit(`conversationChange`,e))}},VI={class:`agent-picker-wrap`},HI={class:`agent-menu-item`},UI={class:`agent-menu-label`},WI={class:`agent-menu-add`},GI=(0,a.defineComponent)({__name:`AgentPicker`,props:{builtInAgents:{},disabled:{type:Boolean,default:!1},storageKey:{default:`chat_panel_agent`},value:{default:``}},emits:[`update:value`,`update:agents`],setup(e,{emit:t}){let n=e,r=t,i=`${n.storageKey}_configs`,o=`${n.storageKey}_selected`,s=(0,a.ref)([]),c=new Map,l=(0,a.ref)(!1),u=(0,a.ref)(null),d=(0,a.ref)(!1),f=(0,a.ref)(),p=[{value:`langchain_py`,label:`Langchain Py(SSE 流式)`},{value:`dify_sdk`,label:`Dify SDK`}],m=[{value:`astream`,label:`astream`},{value:`astream_events`,label:`astream_events`}],h=[{value:`langgraph`,label:`langgraph`},{value:`create_agent`,label:`create_agent`}];function g(){return{label:``,type:`langchain_py`,endpoint:``,historyEndpoint:``,user:``,app:``,mode:void 0,resumeMode:void 0,resumeEndpoint:``,apiKey:``,apiBaseUrl:``}}let _=(0,a.reactive)(g()),v=(0,a.computed)(()=>({label:[{required:!0,message:`请输入名称`,trigger:`blur`}],type:[{required:!0,message:`请选择类型`,trigger:`change`}],..._.type===`langchain_py`?{endpoint:[{required:!0,message:`请输入接口地址`,trigger:`blur`}]}:{apiKey:[{required:!0,message:`请输入 API Key`,trigger:`blur`}]}}));function y(){try{let e=localStorage.getItem(i);s.value=e?JSON.parse(e):[]}catch{s.value=[]}}function b(){localStorage.setItem(i,JSON.stringify(s.value))}function x(e){let t=`custom_${e.id}`;if(c.has(t))return c.get(t);let n=e.type===`langchain_py`?(0,a.markRaw)(new BI({endpoint:e.endpoint,historyEndpoint:e.historyEndpoint||void 0,user:e.user||void 0,app:e.app||void 0,mode:e.mode,resumeMode:e.resumeMode,resumeEndpoint:e.resumeEndpoint||void 0})):(0,a.markRaw)(new GD({apiKey:e.apiKey,apiBaseUrl:e.apiBaseUrl||void 0,user:e.user||void 0}));return c.set(t,n),n}let S=(0,a.computed)(()=>s.value.map(e=>({key:`custom_${e.id}`,label:e.label,agent:x(e)}))),C=(0,a.computed)(()=>[...n.builtInAgents,...S.value]),w=(0,a.computed)(()=>[...n.builtInAgents.map(e=>({value:e.key,label:e.label,isBuiltIn:!0})),...s.value.map(e=>({value:`custom_${e.id}`,label:e.label,isBuiltIn:!1}))]);function T(){r(`update:agents`,C.value)}function E(){u.value=null,Object.assign(_,g()),l.value=!0}function D(e){let t=e.replace(/^custom_/,``),n=s.value.find(e=>e.id===t);n&&(u.value=t,Object.assign(_,{label:n.label,type:n.type,endpoint:n.endpoint??``,historyEndpoint:n.historyEndpoint??``,user:n.user??``,app:n.app??``,mode:n.mode,resumeMode:n.resumeMode,resumeEndpoint:n.resumeEndpoint??``,apiKey:n.apiKey??``,apiBaseUrl:n.apiBaseUrl??``}),l.value=!0)}function O(){l.value=!1,u.value=null,Object.assign(_,g())}async function k(){try{await f.value?.validate()}catch{return}d.value=!0;try{let e=!!u.value,t=e?u.value:`${Date.now()}${Math.random().toString(36).slice(2,6)}`,n={id:t,label:_.label.trim(),type:_.type,..._.type===`langchain_py`?{endpoint:_.endpoint.trim(),historyEndpoint:_.historyEndpoint.trim()||void 0,user:_.user.trim()||void 0,app:_.app.trim()||void 0,mode:_.mode,resumeMode:_.resumeMode,resumeEndpoint:_.resumeEndpoint.trim()||void 0}:{apiKey:_.apiKey.trim(),apiBaseUrl:_.apiBaseUrl.trim()||void 0,user:_.user.trim()||void 0}};e?(s.value=s.value.map(e=>e.id===t?n:e),c.delete(`custom_${t}`)):s.value=[...s.value,n],b(),T(),l.value=!1,u.value=null,Object.assign(_,g()),bb.success(e?`智能体已更新`:`智能体已添加`)}finally{d.value=!1}}function A(e){let t=e.replace(/^custom_/,``);if(s.value=s.value.filter(e=>e.id!==t),b(),c.delete(e),T(),n.value===e){let e=n.builtInAgents[0]?.key||``;localStorage.setItem(o,e),r(`update:value`,e)}bb.success(`已删除`)}let j=(0,a.computed)(()=>w.value.find(e=>e.value===n.value)?.label||`选择智能体`);function M({key:e}){let t=String(e??``);if(t===`__add__`){E();return}localStorage.setItem(o,t),r(`update:value`,t)}return(0,a.onMounted)(()=>{y(),T();let e=localStorage.getItem(o);e&&e!==n.value&&[...n.builtInAgents.map(e=>e.key),...s.value.map(e=>`custom_${e.id}`)].includes(e)&&r(`update:value`,e)}),(t,n)=>{let r=(0,a.resolveComponent)(`ASelect`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,VI,[(0,a.createVNode)((0,a.unref)(hx),{trigger:[`click`],disabled:e.disabled},{overlay:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(wg),{class:`agent-picker-menu`,onClick:M},{default:(0,a.withCtx)(()=>[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(w.value,t=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Kh),{key:t.value,class:(0,a.normalizeClass)({"is-active":t.value===e.value})},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,HI,[(0,a.createElementVNode)(`span`,UI,(0,a.toDisplayString)(t.label),1),t.isBuiltIn?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)((0,a.unref)(xT),{class:`agent-menu-edit`,onClick:(0,a.withModifiers)(e=>D(String(t.value)),[`stop`])},null,8,[`onClick`]),(0,a.createVNode)((0,a.unref)(zw),{class:`agent-menu-del`,onClick:(0,a.withModifiers)(e=>A(String(t.value)),[`stop`])},null,8,[`onClick`])],64))])]),_:2},1032,[`class`]))),128)),(0,a.createVNode)((0,a.unref)(sg)),(0,a.createVNode)((0,a.unref)(Kh),{key:`__add__`},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,WI,[(0,a.createVNode)((0,a.unref)(Kg)),n[13]||=(0,a.createTextVNode)(` 新增智能体`,-1)])]),_:1})]),_:1})]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,{class:(0,a.normalizeClass)([`agent-picker-label`,{"agent-picker-label--disabled":e.disabled}])},[(0,a.createTextVNode)((0,a.toDisplayString)(j.value)+` `,1),(0,a.createVNode)((0,a.unref)(fu),{class:`agent-picker-arrow`})],2)]),_:1},8,[`disabled`]),(0,a.createVNode)((0,a.unref)(JC),{open:l.value,"onUpdate:open":n[12]||=e=>l.value=e,title:u.value?`编辑智能体`:`新增智能体`,footer:null,"destroy-on-close":!0,"z-index":1e4,width:`480px`,onCancel:O},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(Cy),{ref_key:`formRef`,ref:f,model:_,rules:v.value,layout:`vertical`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(my),{label:`名称`,name:`label`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.label,"onUpdate:value":n[0]||=e=>_.label=e,placeholder:`智能体显示名称`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`类型`,name:`type`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{value:_.type,"onUpdate:value":n[1]||=e=>_.type=e,style:{width:`100%`},options:p},null,8,[`value`])]),_:1}),_.type===`langchain_py`?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)((0,a.unref)(my),{label:`Endpoint(流式接口地址)`,name:`endpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.endpoint,"onUpdate:value":n[2]||=e=>_.endpoint=e,placeholder:`http://10.0.0.1:8000/ai/chat/stream`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`History Endpoint(历史接口地址)`,name:`historyEndpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.historyEndpoint,"onUpdate:value":n[3]||=e=>_.historyEndpoint=e,placeholder:`http://10.0.0.1:8000/history(可选)`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`User(用户标识)`,name:`user`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.user,"onUpdate:value":n[4]||=e=>_.user=e,placeholder:`可选,用于历史记录隔离`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`App(应用标识)`,name:`app`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.app,"onUpdate:value":n[5]||=e=>_.app=e,placeholder:`可选,用于历史记录隔离`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`Mode(流式模式)`,name:`mode`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{value:_.mode,"onUpdate:value":n[6]||=e=>_.mode=e,style:{width:`100%`},"allow-clear":``,placeholder:`默认 astream`,options:m},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`Resume Mode(恢复模式)`,name:`resumeMode`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(r,{value:_.resumeMode,"onUpdate:value":n[7]||=e=>_.resumeMode=e,style:{width:`100%`},"allow-clear":``,placeholder:`默认 langgraph`,options:h},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`Resume Endpoint(恢复接口地址)`,name:`resumeEndpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.resumeEndpoint,"onUpdate:value":n[8]||=e=>_.resumeEndpoint=e,placeholder:`http://10.0.0.1:8000/ai/resume(可选,默认同 Endpoint)`,"allow-clear":``},null,8,[`value`])]),_:1})],64)):(0,a.createCommentVNode)(``,!0),_.type===`dify_sdk`?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createVNode)((0,a.unref)(my),{label:`API Key`,name:`apiKey`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(lS),{value:_.apiKey,"onUpdate:value":n[9]||=e=>_.apiKey=e,placeholder:`sk-...`,autocomplete:`off`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`API Base URL`,name:`apiBaseUrl`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.apiBaseUrl,"onUpdate:value":n[10]||=e=>_.apiBaseUrl=e,placeholder:`https://rag.netstar-soft.com(可选)`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(my),{label:`User(用户标识)`,name:`user`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(uS),{value:_.user,"onUpdate:value":n[11]||=e=>_.user=e,placeholder:`可选`,"allow-clear":``},null,8,[`value`])]),_:1})],64)):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(my),{style:{"margin-top":`8px`,"margin-bottom":`0`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(tw),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(th),{type:`primary`,loading:d.value,onClick:k},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(u.value?`保存修改`:`确认添加`),1)]),_:1},8,[`loading`]),(0,a.createVNode)((0,a.unref)(th),{onClick:O},{default:(0,a.withCtx)(()=>[...n[14]||=[(0,a.createTextVNode)(`取消`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model`,`rules`])]),_:1},8,[`open`,`title`])])}}}),KI=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},qI=KI(GI,[[`__scopeId`,`data-v-69e639be`]]),JI=(0,a.defineComponent)({__name:`CodeBlockNode`,props:{codeBlockComponents:{},node:{},isDark:{type:Boolean},loading:{type:Boolean},stream:{type:Boolean},darkTheme:{},lightTheme:{},isShowPreview:{type:Boolean},monacoOptions:{},enableFontSizeControl:{type:Boolean},minWidth:{},maxWidth:{},themes:{},showHeader:{type:Boolean},showCopyButton:{type:Boolean},showExpandButton:{type:Boolean},showPreviewButton:{type:Boolean},showCollapseButton:{type:Boolean},showFontSizeButtons:{type:Boolean},showTooltips:{type:Boolean},customId:{}},setup(e){let t=e,n={},r=e=>String(e??``).trim().split(`:`)[0].toLowerCase(),o=(0,a.computed)(()=>{let e=t.node.language,o=r(e);return(0,a.toRaw)((e?t.codeBlockComponents?.[e]:void 0)||t.codeBlockComponents?.[o]||n[o])||i.S});return(e,n)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(o.value),(0,a.normalizeProps)((0,a.guardReactiveProps)(t)),null,16))}}),YI={class:`think-node__layout`},XI={class:`think-node__header`},ZI={class:`think-node__header-main`},QI={class:`think-node__prefix`},$I=1,eL=240,tL=KI((0,a.defineComponent)({__name:`ThinkNode`,props:{node:{}},setup(e){let t=e,n=(0,a.ref)(!1),r=(0,a.ref)(),i=(0,a.ref)(!1),o=(0,a.computed)(()=>t.node?.content??t.node?.code??``),s=(0,a.computed)(()=>!!t.node?.loading),c=(0,a.computed)(()=>o.value?o.value:s.value?`正在整理思路...`:`暂无思考内容`),l=(0,a.computed)(()=>!!o.value&&(i.value||n.value));function u(){let e=r.value;if(!e)return;let t=globalThis.getComputedStyle?.(e),n=Number.parseFloat(t?.lineHeight??``);Number.isFinite(n)||(n=(Number.parseFloat(t?.fontSize??``)||14)*1.6);let a=n*$I+1;i.value=e.scrollHeight>a}return(0,a.watch)([o,n],async()=>{await(0,a.nextTick)(),u()},{immediate:!0}),(0,a.onMounted)(()=>{globalThis.addEventListener?.(`resize`,u),(0,a.nextTick)(()=>{u()})}),(0,a.onBeforeUnmount)(()=>{globalThis.removeEventListener?.(`resize`,u)}),(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{class:(0,a.normalizeClass)([`think-node`,{"is-thinking":s.value,"is-expanded":n.value}])},[(0,a.createElementVNode)(`div`,YI,[(0,a.createElementVNode)(`div`,XI,[(0,a.createElementVNode)(`div`,ZI,[(0,a.createElementVNode)(`span`,QI,[s.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,class:`think-node__prefix-icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(ZE),{key:1,class:`think-node__prefix-icon`})),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(s.value?`思考中:`:`思考:`),1)]),n.value?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`contentRef`,ref:r,class:(0,a.normalizeClass)([`think-node__content think-node__content--inline is-collapsed`,{"is-overflowing":i.value}])},(0,a.toDisplayString)(c.value),3))]),l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,type:`button`,class:`think-node__toggle`,onClick:t[0]||=e=>n.value=!n.value},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(n.value?`收起`:`展开`),1),((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.value?(0,a.unref)(EC):(0,a.unref)(fu)),{class:`think-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)]),n.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`contentRef`,ref:r,class:`think-node__content is-expanded`,style:(0,a.normalizeStyle)({maxHeight:`${eL}px`})},(0,a.toDisplayString)(c.value),5)):(0,a.createCommentVNode)(``,!0)])],2))}}),[[`__scopeId`,`data-v-5a2f210e`]]),nL=(0,a.defineComponent)({__name:`StreamMarkdown`,props:{codeBlockComponents:{},codeBlockProps:{},content:{},customComponents:{},customHtmlTags:{},final:{type:Boolean}},setup(e){let t=e,n=`stream-markdown-${globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}`;(0,a.watch)((0,a.computed)(()=>({code_block:JI,think:tL,...t.customComponents})),e=>{i.p(n,e)},{immediate:!0}),(0,a.onBeforeUnmount)(()=>{i.i(n)});let r=(0,a.computed)(()=>({...t.codeBlockProps,...t.codeBlockComponents?{codeBlockComponents:t.codeBlockComponents}:{}})),o=(0,a.computed)(()=>[...new Set([`think`,...t.customHtmlTags??[]].map(e=>String(e??``).trim()).filter(Boolean))]);return(t,s)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(i.x),{content:e.content,final:e.final??!0,"custom-id":n,"custom-html-tags":o.value,"code-block-props":r.value},null,8,[`content`,`final`,`custom-html-tags`,`code-block-props`]))}}),rL=[`role`,`tabindex`],iL={class:`tool-call-node__prefix`},aL={class:`tool-call-node__title`},oL={key:0,class:`tool-call-node__waiting-badge`},sL={key:1,class:`tool-call-node__result-badge is-approved`},cL={key:2,class:`tool-call-node__result-badge is-rejected`},lL={key:0,class:`tool-call-node__toggle`},uL={key:0,class:`tool-call-node__detail`},dL={key:0,class:`tool-call-node__line`},fL={class:`tool-call-node__value tool-call-node__value--overflow`},pL={key:1,class:`tool-call-node__line`},mL={class:`tool-call-node__label`},hL={class:`tool-call-node__value tool-call-node__value--overflow`},gL={key:2,class:`tool-call-node__approval`},_L={key:0,class:`tool-call-node__approval-desc`},vL={key:1,class:`tool-call-node__approval-args`},yL={class:`tool-call-node__approval-code`},bL={class:`tool-call-node__approval-actions`},xL=[`disabled`],SL=[`disabled`],CL=[`disabled`],wL={key:2,class:`tool-call-node__approval-edit`},TL=[`disabled`],EL={class:`tool-call-node__approval-edit-actions`},DL=[`disabled`],OL=[`disabled`],kL=KI((0,a.defineComponent)({__name:`ToolCallNode`,props:{expanded:{type:Boolean},resolving:{type:Boolean},tool:{}},emits:[`approve`,`edit`,`reject`,`toggle`],setup(e,{emit:t}){let n=t,r=e,i=t,o=(0,a.ref)(!1),s=(0,a.ref)(``),c=(0,a.ref)(null),l=(0,a.computed)(()=>r.tool.approvalConfig),u=(0,a.computed)(()=>r.tool.status===`waiting`&&l.value!=null);(0,a.watch)(u,e=>{e&&!r.expanded&&i(`toggle`)},{immediate:!0});let d=(0,a.computed)(()=>l.value?Object.keys(l.value.args).length>0:!1),f=(0,a.computed)(()=>l.value?JSON.stringify(l.value.args,null,2):``),p=(0,a.computed)(()=>!!(r.tool.input!=null||r.tool.output!=null||r.tool.error)),m=(0,a.computed)(()=>{let e=r.tool.input;if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}),h=(0,a.computed)(()=>{if(r.tool.status===`error`)return r.tool.error||``;let e=r.tool.output;if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}});(0,a.watch)(()=>l.value?.editContent,e=>{s.value=e||``},{immediate:!0});function g(){c.value=`approved`,i(`approve`,r.tool.toolName)}function _(){c.value=`rejected`,i(`reject`,r.tool.toolName)}function v(){c.value=`approved`,i(`edit`,r.tool.toolName,s.value),o.value=!1}return(t,i)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`tool-call-node`,`is-${r.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:(0,a.normalizeClass)([`tool-call-node__header`,{"tool-call-node__header--clickable":p.value||u.value}]),role:p.value||u.value?`button`:void 0,tabindex:p.value||u.value?0:void 0,onClick:i[0]||=e=>(p.value||u.value)&&n(`toggle`),onKeydown:[i[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>(p.value||u.value)&&n(`toggle`),[`prevent`]),[`enter`]),i[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>(p.value||u.value)&&n(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,iL,[r.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):r.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:1,class:`tool-call-node__prefix-icon`})):r.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Af),{key:2,class:`tool-call-node__prefix-icon`})):u.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(mx),{key:3,class:`tool-call-node__prefix-icon is-waiting`})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`span`,aL,[(0,a.createTextVNode)((0,a.toDisplayString)(r.tool.title||r.tool.toolName||`工具调用`)+` `,1),u.value&&!c.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,oL,`待审批`)):c.value===`approved`?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,sL,[(0,a.createVNode)((0,a.unref)(vf),{style:{"margin-right":`2px`}}),i[6]||=(0,a.createTextVNode)(`已批准 `,-1)])):c.value===`rejected`?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,cL,[(0,a.createVNode)((0,a.unref)(Af),{style:{"margin-right":`2px`}}),i[7]||=(0,a.createTextVNode)(`已拒绝 `,-1)])):(0,a.createCommentVNode)(``,!0)])]),p.value||u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,lL,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.expanded?(0,a.unref)(EC):(0,a.unref)(fu)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,rL),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,uL,[m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,dL,[i[8]||=(0,a.createElementVNode)(`span`,{class:`tool-call-node__label`},`入参:`,-1),(0,a.createVNode)((0,a.unref)(Dp),{placement:`topLeft`,"overlay-inner-style":{maxWidth:`480px`,maxHeight:`320px`,overflowY:`auto`,fontSize:`12px`,fontFamily:`monospace`,whiteSpace:`pre-wrap`,wordBreak:`break-all`}},{title:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(m.value),1)]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,fL,(0,a.toDisplayString)(m.value),1)]),_:1})])):(0,a.createCommentVNode)(``,!0),h.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,pL,[(0,a.createElementVNode)(`span`,mL,(0,a.toDisplayString)(r.tool.status===`error`?`错误:`:`结果:`),1),(0,a.createVNode)((0,a.unref)(Dp),{placement:`topLeft`,"overlay-inner-style":{maxWidth:`480px`,maxHeight:`320px`,overflowY:`auto`,fontSize:`12px`,fontFamily:`monospace`,whiteSpace:`pre-wrap`,wordBreak:`break-all`}},{title:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(h.value),1)]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,hL,(0,a.toDisplayString)(h.value),1)]),_:1})])):(0,a.createCommentVNode)(``,!0),u.value&&l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,gL,[(0,a.createVNode)(a.Transition,{name:`approval-result`},{default:(0,a.withCtx)(()=>[c.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,class:(0,a.normalizeClass)([`tool-call-node__approval-result`,[`is-${c.value}`]])},[c.value===`approved`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:0,class:`approval-result-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Af),{key:1,class:`approval-result-icon`})),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(c.value===`approved`?`已批准,继续执行中…`:`已拒绝,操作已取消`),1)],2)):(0,a.createCommentVNode)(``,!0)]),_:1}),c.value?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[l.value.description?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,_L,(0,a.toDisplayString)(l.value.description),1)):(0,a.createCommentVNode)(``,!0),d.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,vL,[i[9]||=(0,a.createElementVNode)(`span`,{class:`tool-call-node__label`},`参数:`,-1),(0,a.createElementVNode)(`code`,yL,(0,a.toDisplayString)(f.value),1)])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`div`,bL,[(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-approve`,disabled:e.resolving,onClick:(0,a.withModifiers)(g,[`stop`])},[(0,a.createVNode)((0,a.unref)(vf),{style:{"margin-right":`4px`}}),i[10]||=(0,a.createTextVNode)(` 批准 `,-1)],8,xL),l.value.allowedDecisions.includes(`edit`)?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,class:`tool-call-node__btn tool-call-node__btn-edit`,disabled:e.resolving,onClick:i[3]||=(0,a.withModifiers)(e=>o.value=!o.value,[`stop`])},` 修改后批准 `,8,SL)):(0,a.createCommentVNode)(``,!0),l.value.allowedDecisions.includes(`reject`)?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:1,class:`tool-call-node__btn tool-call-node__btn-reject`,disabled:e.resolving,onClick:(0,a.withModifiers)(_,[`stop`])},[(0,a.createVNode)((0,a.unref)(Af),{style:{"margin-right":`4px`}}),i[11]||=(0,a.createTextVNode)(` 拒绝 `,-1)],8,CL)):(0,a.createCommentVNode)(``,!0)]),o.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,wL,[(0,a.withDirectives)((0,a.createElementVNode)(`textarea`,{"onUpdate:modelValue":i[4]||=e=>s.value=e,class:`tool-call-node__textarea`,disabled:e.resolving,placeholder:`编辑内容...`,rows:`4`},null,8,TL),[[a.vModelText,s.value]]),(0,a.createElementVNode)(`div`,EL,[(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-approve`,disabled:e.resolving,onClick:(0,a.withModifiers)(v,[`stop`])},` 提交修改 `,8,DL),(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-cancel`,disabled:e.resolving,onClick:i[5]||=(0,a.withModifiers)(e=>o.value=!1,[`stop`])},` 取消 `,8,OL)])])):(0,a.createCommentVNode)(``,!0)],64))])):(0,a.createCommentVNode)(``,!0)])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-c4d46f41`]]),AL={class:`sub-agent-node__prefix`},jL={class:`sub-agent-node__name`},ML={key:0,class:`sub-agent-node__body`},NL={class:`think-node__layout`},PL={class:`think-node__header`},FL={class:`think-node__header-main`},IL={class:`think-node__prefix`},LL={key:0,class:`think-node__content think-node__content--inline is-collapsed is-overflowing`},RL=[`onClick`],zL={class:`think-node__toggle-icon`},BL={key:0,class:`think-node__content is-expanded`},VL={key:0,class:`sub-agent-node__tools`},HL={key:1,class:`sub-agent-node__content`},UL=KI((0,a.defineComponent)({__name:`SubAgentNode`,props:{blocks:{},expanded:{type:Boolean},tool:{}},emits:[`toggle`],setup(e,{emit:t}){let n=e,r=(0,a.computed)(()=>{if(!n.blocks?.length)return[];let e=[],t={type:`reply`,blocks:[]};for(let r of n.blocks)r.type===`reasoning`||r.type===`tool_call`?(t.type!==`thinking`&&(t.blocks.length>0&&e.push(t),t={type:`thinking`,blocks:[]}),t.blocks.push(r)):(t.type!==`reply`&&(t.blocks.length>0&&e.push(t),t={type:`reply`,blocks:[]}),t.blocks.push(r));return t.blocks.length>0&&e.push(t),e}),i=(0,a.reactive)({});function o(e){i[e]=!i[e]}let s=(0,a.ref)({});function c(e){s.value={...s.value,[e]:!s.value[e]}}function l(e){let t=e;return{toolCallId:t.toolCallId,toolName:t.toolName,title:t.toolName,status:`success`,input:t.input,output:t.output,durationMs:t.durationMs,startedAt:t.startedAt||0}}return(n,u)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`sub-agent-node`,`is-${e.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:`sub-agent-node__header`,role:`button`,tabindex:`0`,onClick:u[0]||=e=>t(`toggle`),onKeydown:[u[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`enter`]),u[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,AL,[e.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,class:`sub-agent-node__icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:1,class:`sub-agent-node__icon`})),(0,a.createElementVNode)(`span`,jL,(0,a.toDisplayString)(e.tool.title||e.tool.toolName),1),u[3]||=(0,a.createElementVNode)(`span`,{class:`sub-agent-node__badge`},`子代理`,-1)]),((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.expanded?(0,a.unref)(EC):(0,a.unref)(fu)),{class:`sub-agent-node__chevron`}))],32),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,ML,[e.blocks?.length?((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:0},(0,a.renderList)(r.value,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:t},[e.type===`thinking`?((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{key:0,class:(0,a.normalizeClass)([`think-node`,{"is-expanded":i[t]!==!1}])},[(0,a.createElementVNode)(`div`,NL,[(0,a.createElementVNode)(`div`,PL,[(0,a.createElementVNode)(`div`,FL,[(0,a.createElementVNode)(`span`,IL,[(0,a.createVNode)((0,a.unref)(ZE),{class:`think-node__prefix-icon`}),u[4]||=(0,a.createElementVNode)(`span`,null,`思考:`,-1)]),i[t]===!1?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,LL,(0,a.toDisplayString)(e.blocks.filter(e=>e.type===`reasoning`).map(e=>e.text).join(` `)),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`button`,{type:`button`,class:`think-node__toggle`,onClick:e=>o(t)},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(i[t]===!1?`展开`:`收起`),1),(0,a.createElementVNode)(`span`,zL,(0,a.toDisplayString)(i[t]===!1?`▼`:`▲`),1)],8,RL)]),i[t]===!1?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,BL,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.blocks,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:t},[e.type===`reasoning`?((0,a.openBlock)(),(0,a.createBlock)(nL,{key:0,content:e.text},null,8,[`content`])):e.type===`tool_call`?((0,a.openBlock)(),(0,a.createBlock)(kL,{key:1,tool:l(e),expanded:!!s.value[e.toolCallId],onToggle:t=>c(e.toolCallId)},null,8,[`tool`,`expanded`,`onToggle`])):(0,a.createCommentVNode)(``,!0)],64))),128))]))])],2)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(e.blocks,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)(nL,{key:t,content:e.text},null,8,[`content`]))),128))],64))),128)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[e.tool.subAgentTools?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,VL,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.tool.subAgentTools,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)(kL,{key:e.toolCallId,tool:e,expanded:s.value[e.toolCallId]||!1,"step-number":t,onToggle:t=>c(e.toolCallId)},null,8,[`tool`,`expanded`,`step-number`,`onToggle`]))),128))])):(0,a.createCommentVNode)(``,!0),e.tool.subAgentContent?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,HL,[(0,a.createVNode)(nL,{content:e.tool.subAgentContent},null,8,[`content`])])):(0,a.createCommentVNode)(``,!0)],64))])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-526ce89d`]]),WL={key:0,class:`msg-renderer__loading`},GL={class:`think-node__layout`},KL={class:`think-node__header`},qL={class:`think-node__header-main`},JL={class:`think-node__prefix`},YL={key:0,class:`think-node__content think-node__content--inline is-collapsed is-overflowing`},XL=[`onClick`],ZL={class:`think-node__toggle-icon`},QL={key:0,class:`think-node__content is-expanded`},$L={key:1,class:`msg-renderer__attachments`},eR=KI((0,a.defineComponent)({__name:`MessageRenderer`,props:{customComponents:{},customHtmlTags:{},expandedTools:{default:()=>({})},interruptResolving:{type:Boolean},message:{},toolRenderers:{default:()=>({})}},emits:[`approve`,`edit`,`reject`,`toggleExpand`],setup(e,{emit:t}){let n=e,r=t;function i(e){return e===`write_todos`?`top`:`timeline`}function o(e,t){return e?.find(e=>e.toolCallId===t)}function s(e,t){return i(o(e.toolTimeline,t)?.toolName)===`timeline`}function c(e){return!e.segments||e.segments.length===0?e.content?[{type:`text`,text:e.content}]:[]:e.segments.map(t=>t.type===`tool`||t.type===`attachment`?t:{type:`text`,text:e.content.slice(t.start,t.end===-1?void 0:t.end)})}let l=(0,a.computed)(()=>Array.isArray(n.message.blocks)&&n.message.blocks.length>0),u=(0,a.computed)(()=>{if(!l.value)return[];let e=n.message.blocks,t=[],r={type:`reply`,blocks:[]};for(let n of e)n.type===`reasoning`||n.type===`tool_call`?(r.type!==`thinking`&&(r.blocks.length>0&&t.push(r),r={type:`thinking`,blocks:[]}),r.blocks.push(n)):(r.type!==`reply`&&(r.blocks.length>0&&t.push(r),r={type:`reply`,blocks:[]}),r.blocks.push(n));return r.blocks.length>0&&t.push(r),t}),d=(0,a.reactive)({});function f(e){d[e]=!d[e]}let p=(0,a.computed)(()=>c(n.message)),m=(0,a.computed)(()=>n.message.loading&&!n.message.content);function h(e){let t=o(n.message.toolTimeline,e);return t?.toolName?n.toolRenderers?.[t.toolName]??kL:kL}function g(e,t){r(`approve`,e,t)}function _(e,t){r(`reject`,e,t)}function v(e,t,n){r(`edit`,e,t,n)}function y(e){r(`toggleExpand`,e)}function b(e){let t=e;return{toolCallId:t.toolCallId,toolName:t.toolName,title:t.subAgentType||t.toolName,status:`success`,input:t.input,output:t.output,durationMs:t.durationMs,startedAt:t.startedAt,subAgentContent:t.subAgentContent,subAgentBlocks:t.subAgentBlocks,subAgentTools:t.subAgentTools}}function x(e){return e.subAgentType!=null}return(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,null,[m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,WL,[(0,a.createVNode)((0,a.unref)(gu),{style:{fontSize:`16px`,color:`var(--primary-color, var(--primary))`,marginRight:`8px`}}),n[0]||=(0,a.createElementVNode)(`span`,{class:`msg-renderer__loading-text`},`AI 正在思考...`,-1)])):(0,a.createCommentVNode)(``,!0),l.value?((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(u.value,(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:r},[t.type===`thinking`?((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{key:0,class:(0,a.normalizeClass)([`think-node`,{"is-expanded":d[r]!==!1}])},[(0,a.createElementVNode)(`div`,GL,[(0,a.createElementVNode)(`div`,KL,[(0,a.createElementVNode)(`div`,qL,[(0,a.createElementVNode)(`span`,JL,[(0,a.createVNode)((0,a.unref)(ZE),{class:`think-node__prefix-icon`}),n[1]||=(0,a.createElementVNode)(`span`,null,`思考:`,-1)]),d[r]===!1?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,YL,(0,a.toDisplayString)(t.blocks.filter(e=>e.type===`reasoning`).map(e=>e.text).join(` `)),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`button`,{type:`button`,class:`think-node__toggle`,onClick:e=>f(r)},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(d[r]===!1?`展开`:`收起`),1),(0,a.createElementVNode)(`span`,ZL,(0,a.toDisplayString)(d[r]===!1?`▼`:`▲`),1)],8,XL)]),d[r]===!1?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,QL,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(t.blocks,(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:n},[t.type===`reasoning`?((0,a.openBlock)(),(0,a.createBlock)(nL,{key:0,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`])):t.type===`tool_call`&&!x(t)?((0,a.openBlock)(),(0,a.createBlock)(kL,{key:1,tool:b(t),expanded:!!e.expandedTools[t.toolCallId],resolving:e.interruptResolving,onToggle:e=>y(t.toolCallId),onApprove:e=>g(t.toolCallId,e),onReject:e=>_(t.toolCallId,e),onEdit:(e,n)=>v(t.toolCallId,e,n)},null,8,[`tool`,`expanded`,`resolving`,`onToggle`,`onApprove`,`onReject`,`onEdit`])):t.type===`tool_call`?((0,a.openBlock)(),(0,a.createBlock)(UL,{key:2,tool:b(t),blocks:t.subAgentBlocks,expanded:!!e.expandedTools[t.toolCallId],onToggle:e=>y(t.toolCallId)},null,8,[`tool`,`blocks`,`expanded`,`onToggle`])):(0,a.createCommentVNode)(``,!0)],64))),128))]))])],2)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(t.blocks,(t,n)=>((0,a.openBlock)(),(0,a.createBlock)(nL,{key:n,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`]))),128))],64))),128)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:2},(0,a.renderList)(p.value,(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:n},[t.type===`tool`&&s(e.message,t.toolCallId)?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(h(t.toolCallId)),{key:0,tool:o(e.message.toolTimeline,t.toolCallId),expanded:e.expandedTools[t.toolCallId]===!0,"step-number":o(e.message.toolTimeline,t.toolCallId)?.stepNumber,resolving:e.interruptResolving,onToggle:e=>y(t.toolCallId),onApprove:e=>g(t.toolCallId,e),onReject:e=>_(t.toolCallId,e),onEdit:(e,n)=>v(t.toolCallId,e,n)},null,40,[`tool`,`expanded`,`step-number`,`resolving`,`onToggle`,`onApprove`,`onReject`,`onEdit`])):t.type===`attachment`&&t.attachments?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,$L,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(t.attachments,e=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(II).FileCard,{key:e.id,item:{uid:e.id,name:e.name,size:e.size,type:e.type,url:e.url,thumbUrl:e.url,status:`done`}},null,8,[`item`]))),128))])):t.type===`text`&&t.text?((0,a.openBlock)(),(0,a.createBlock)(nL,{key:2,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`])):(0,a.createCommentVNode)(``,!0)],64))),128))],64))}}),[[`__scopeId`,`data-v-4bb03a95`]]),tR=class extends Error{constructor(e,t){super(`${e} at position ${t}`),this.position=t}},nR=32,rR=10,iR=9,aR=13,oR=160,sR=6158,cR=8192,lR=8203,uR=8239,dR=8287,fR=12288,pR=65279;function mR(e){return/^[0-9A-Fa-f]$/.test(e)}function hR(e){return e>=`0`&&e<=`9`}function gR(e){return e>=` `}function _R(e){return`,:[]/{}()
343
343
  +`.includes(e)}function vR(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`_`||e===`$`}function yR(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`_`||e===`$`||e>=`0`&&e<=`9`}var bR=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,xR=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function SR(e){return`,[]/{}
344
344
  +`.includes(e)}function CR(e){return kR(e)||wR.test(e)}var wR=/^[[{\w-]$/;function TR(e){return e===`
345
345
  `||e===`\r`||e===` `||e===`\b`||e===`\f`}function ER(e,t){let n=e.charCodeAt(t);return n===nR||n===rR||n===iR||n===aR}function DR(e,t){let n=e.charCodeAt(t);return n===nR||n===iR||n===aR}function OR(e,t){let n=e.charCodeAt(t);return n===oR||n===sR||n>=cR&&n<=lR||n===uR||n===dR||n===fR||n===pR}function kR(e){return AR(e)||MR(e)}function AR(e){return e===`"`||e===`“`||e===`”`}function jR(e){return e===`"`}function MR(e){return e===`'`||e===`‘`||e===`’`||e==="`"||e===`´`}function NR(e){return e===`'`}function PR(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=e.lastIndexOf(t);return r===-1?e:e.substring(0,r)+(n?``:e.substring(r+1))}function FR(e,t){let n=e.length;if(!ER(e,n-1))return e+t;for(;ER(e,n-1);)n--;return e.substring(0,n)+t+e.substring(n)}function IR(e,t,n){return e.substring(0,t)+e.substring(t+n)}function LR(e){return/[,\n][ \t\r]*$/.test(e)}var RR={"&quot;":`"`,"&amp;":`&`,"&lt;":`<`,"&gt;":`>`,"&apos;":`'`};function zR(e){if(e.charAt(0)!==`&`)return null;let t=e.indexOf(`;`);if(t===-1)return null;let n=e.substring(0,t+1),r=RR[n];if(r!==void 0)return{char:r,length:n.length};if(e.charAt(1)===`#`){let r=e.substring(2,t),i=r.charAt(0)===`x`||r.charAt(0)===`X`,a=i?r.substring(1):r;if(a.length>0){let e=Number.parseInt(a,i?16:10);if(!Number.isNaN(e)&&e>=0&&e<=1114111)return{char:String.fromCodePoint(e),length:n.length}}}return null}function BR(e){return e!==null&&e.char===`"`}function VR(e){return e!==null&&e.char===`'`}function HR(e,t){let n=0;for(let r=0;r<e.length;r++)e.charAt(r)===t&&n++;return n}function UR(e,t){switch(t){case`)`:return HR(e,`(`)>HR(e,`)`);case`]`:return HR(e,`[`)>HR(e,`]`);case`}`:return HR(e,`{`)>HR(e,`}`);default:return!1}}var WR={"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`},GR={'"':`"`,"\\":`\\`,"/":`/`,b:`\b`,f:`\f`,n:`
346
346
  `,r:`\r`,t:` `};function KR(e){let t=0,n=``;c(["```","[```","{```"]),i()||k(),c(["```","```]","```}"]);let r=u(`,`);for(r&&a(),CR(e[t])&&LR(n)?(r||(n=FR(n,`,`)),g()):r&&(n=PR(n,`,`));e[t]===`}`||e[t]===`]`;)t++,a();if(t>=e.length)return n;O();function i(){a();let e=m()||h()||_()||y()||b()||S(!1)||C();return a(),e}function a(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,n=t,r=o(e);do r=s(),r&&=o(e);while(r);return t>n}function o(r){let i=r?ER:DR,a=``;for(;;)if(i(e,t))a+=e[t],t++;else if(OR(e,t))a+=` `,t++;else break;return a.length>0?(n+=a,!0):!1}function s(){if(e[t]===`/`&&e[t+1]===`*`){for(;t<e.length&&!qR(e,t);)t++;return t+=2,!0}if(e[t]===`/`&&e[t+1]===`/`){for(;t<e.length&&e[t]!==`
347
347
  `;)t++;return!0}return!1}function c(n){if(l(n)){if(vR(e[t]))for(;t<e.length&&yR(e[t]);)t++;return a(),!0}return!1}function l(n){o(!0);for(let r of n){let n=t+r.length;if(e.slice(t,n)===r)return t=n,!0}return!1}function u(r){return e[t]===r?(n+=e[t],t++,!0):!1}function d(n){return e[t]===n?(t++,!0):!1}function f(){return d(`\\`)}function p(){return a(),e[t]===`.`&&e[t+1]===`.`&&e[t+2]===`.`?(t+=3,a(),d(`,`),!0):!1}function m(){if(e[t]===`{`){n+=`{`,t++,a(),d(`,`)&&a();let r=!0;for(;t<e.length&&e[t]!==`}`;){let o;if(r?o=!0:(o=u(`,`),o||(n=FR(n,`,`)),a()),p(),!(_()||S(!0))){e[t]===`}`||e[t]===`{`||e[t]===`]`||e[t]===`[`||e[t]===void 0?r||(n=PR(n,`,`)):A();break}a();let s=u(`:`),c=t>=e.length;s||(CR(e[t])||c?n=FR(n,`:`):j()),i()||(s||c?n+=`null`:j()),r=!1}return e[t]===`}`?(n+=`}`,t++):n=FR(n,`}`),!0}return!1}function h(){if(e[t]===`[`){n+=`[`,t++,a(),d(`,`)&&a();let r=!0;for(;t<e.length&&e[t]!==`]`;){if(r||u(`,`)||(n=FR(n,`,`)),p(),!i()){r||(n=PR(n,`,`));break}r=!1}return e[t]===`]`?(n+=`]`,t++):n=FR(n,`]`),!0}return!1}function g(){let e=!0,t=!0;for(;t;)e?e=!1:u(`,`)||(n=FR(n,`,`)),t=i();t||(n=PR(n,`,`)),n=`[\n${n}\n]`}function _(){let r=arguments.length>0&&arguments[0]!==void 0&&arguments[0],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,o=e[t]===`\\`;o&&(t++,kR(e[t])||O());let s=e[t]===`&`?zR(e.slice(t,t+12)):null,c=BR(s)||VR(s);if(kR(e[t])||c){let l=jR(e[t])?jR:NR(e[t])?NR:MR(e[t])?MR:AR,u=t,d=n.length,p=`"`;for(t+=c&&s?s.length:1;;){if(t>=e.length){let i=w(t-1);return!r&&_R(e.charAt(i))?(t=u,n=n.substring(0,d),_(!0)):(p=FR(p,`"`),n+=p,!0)}if(t===i)return p=FR(p,`"`),n+=p,!0;let m=c&&e[t]===`&`?zR(e.slice(t,t+12)):null;if(m&&s?m.char===s.char:l(e[t])){let i=t,o=p.length;if(p+=`"`,t+=m?m.length:1,n+=p,a(!1),r||t>=e.length||_R(e[t])&&!UR(p,e[t])||kR(e[t])&&!T(t)||hR(e[t]))return v(),!0;e[t]===`\\`&&O();let s=w(i-1),c=e.charAt(s);if(c===`,`)return t=u,n=n.substring(0,d),_(!1,s);if(_R(c))return t=u,n=n.substring(0,d),_(!0);n=n.substring(0,d),t=i+(m?m.length:1),p=`${p.substring(0,o)}\\${p.substring(o)}`}else if(r&&SR(e[t])){if(e[t-1]===`:`&&bR.test(e.substring(u+1,t+2)))for(;t<e.length&&xR.test(e[t]);)p+=e[t],t++;return p=FR(p,`"`),n+=p,v(),!0}else if(m){let e=m.char;e===`"`?p+=`\\"`:TR(e)?p+=WR[e]:p+=e,t+=m.length}else if(e[t]===`\\`){let n=e.charAt(t+1);if(GR[n]!==void 0)p+=e.slice(t,t+2),t+=2;else if(n===`u`){let n=2;for(;n<6&&mR(e[t+n]);)n++;n===6?(p+=e.slice(t,t+6),t+=6):t+n>=e.length?t=e.length:M()}else n===`
348
- `?(p+=`\\n`,t+=2):(p+=n,t+=2)}else{let n=e.charAt(t);n===`"`&&e[t-1]!==`\\`?(p+=`\\${n}`,t++):TR(n)?(p+=WR[n],t++):(gR(n)||D(n),p+=n,t++)}o&&f()}}return!1}function v(){let r=!1;for(a();e[t]===`+`;){r=!0,t++,a(),n=PR(n,`"`,!0);let e=n.length;n=_()?IR(n,e,1):FR(n,`"`)}return r}function y(){let r=t,i=``,a=!1;for(e[t]===`-`&&(i+=e[t],t++,!hR(e[t])&&E()&&(i+=`0`)),e[t]===`0`&&hR(e[t+1])&&(a=!0);hR(e[t]);)i+=e[t],t++;if(e[t]===`.`)for((i===``||i===`-`)&&(i+=`0`),i+=e[t],t++,hR(e[t])||(i+=`0`);hR(e[t]);)i+=e[t],t++;if(t>r){if(e[t]===`e`||e[t]===`E`)for(i===`-`&&(a=!0),i+=e[t],t++,(e[t]===`-`||e[t]===`+`)&&(i+=e[t],t++),hR(e[t])||(i+=`0`);hR(e[t]);)i+=e[t],t++;return E()?(n+=a?`"${e.substring(r,t)}"`:i,!0):(t=r,!1)}return!1}function b(){return x(`true`,`true`)||x(`false`,`false`)||x(`null`,`null`)||x(`True`,`true`)||x(`False`,`false`)||x(`None`,`null`)}function x(r,i){return e.slice(t,t+r.length)===r&&!yR(e[t+r.length])?(n+=i,t+=r.length,!0):!1}function S(r){let a=t;if(vR(e[t])){for(;t<e.length&&yR(e[t]);)t++;let n=t;for(;ER(e,n);)n++;if(e[n]===`(`)return t=n+1,i(),e[t]===`)`&&(t++,e[t]===`;`&&t++),!0}for(;t<e.length&&!SR(e[t])&&!kR(e[t])&&(!r||e[t]!==`:`);)t++;if(e[t-1]===`:`&&bR.test(e.substring(a,t+2)))for(;t<e.length&&xR.test(e[t]);)t++;if(t>a){for(;ER(e,t-1)&&t>0;)t--;let r=e.slice(a,t);return n+=r===`undefined`?`null`:JSON.stringify(r),e[t]===`"`&&t++,!0}}function C(){if(e[t]===`/`){let r=t;for(t++;t<e.length&&(e[t]!==`/`||e[t-1]===`\\`);)t++;return t++,n+=JSON.stringify(e.substring(r,t)),!0}}function w(t){let n=t;for(;n>0&&ER(e,n);)n--;return n}function T(t){let n=t+1;for(;n<e.length&&ER(e,n);)n++;return n>=e.length||_R(e[n])}function E(){return t>=e.length||_R(e[t])||ER(e,t)}function D(e){throw new tR(`Invalid character ${JSON.stringify(e)}`,t)}function O(){throw new tR(`Unexpected character ${JSON.stringify(e[t])}`,t)}function k(){throw new tR(`Unexpected end of json string`,e.length)}function A(){throw new tR(`Object key expected`,t)}function j(){throw new tR(`Colon expected`,t)}function M(){throw new tR(`Invalid unicode character "${e.slice(t,t+6)}"`,t)}}function qR(e,t){return e[t]===`*`&&e[t+1]===`/`}var JR=[`role`,`tabindex`],YR={class:`tool-call-node__prefix`},XR={class:`tool-call-node__title`},ZR={key:0,class:`tool-call-node__toggle`},QR={key:0,class:`smdr__body`},$R={key:0,class:`smdr__error`},ez={class:`smdr__tabs`},tz=[`onClick`],nz={class:`smdr__content`},rz=KI((0,a.defineComponent)({__name:`SaveModuleDocsRenderer`,props:{tool:{},expanded:{type:Boolean},stepNumber:{},resolving:{type:Boolean}},emits:[`toggle`,`approve`,`reject`,`edit`],setup(e,{emit:t}){let n=e,r=(0,a.computed)(()=>{let e=n.tool.input;if(!e)return{};if(typeof e==`object`)return e;if(typeof e==`string`)try{return JSON.parse(KR(e))}catch{return{}}return{}}),i=[{key:`requirement_docs`,label:`需求文档`},{key:`technical_docs`,label:`技术文档`},{key:`changelog_docs`,label:`变更日志`}],o=(0,a.computed)(()=>i.filter(e=>{let t=r.value[e.key];return typeof t==`string`&&t.trim().length>0}).map(e=>({key:e.key,label:e.label,content:r.value[e.key]}))),s=(0,a.computed)(()=>o.value.length>0||n.tool.status===`error`),c=(0,a.computed)(()=>{let e=r.value.model_name;return e?`存储文档:${e}`:n.tool.title||`存储模块文档`}),l=(0,a.ref)(o.value[0]?.key??``);return(0,a.watch)(()=>o.value[0]?.key,e=>{e&&!o.value.find(e=>e.key===l.value)&&(l.value=e)},{immediate:!0}),(e,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`tool-call-node`,`is-${n.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:(0,a.normalizeClass)([`tool-call-node__header`,{"tool-call-node__header--clickable":s.value}]),role:s.value?`button`:void 0,tabindex:s.value?0:void 0,onClick:r[0]||=e=>s.value&&t(`toggle`),onKeydown:[r[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>s.value&&t(`toggle`),[`prevent`]),[`enter`]),r[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>s.value&&t(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,YR,[n.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):n.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:1,class:`tool-call-node__prefix-icon`})):n.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Af),{key:2,class:`tool-call-node__prefix-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(mx),{key:3,class:`tool-call-node__prefix-icon is-waiting`})),(0,a.createElementVNode)(`span`,XR,(0,a.toDisplayString)(c.value),1)]),s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,ZR,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.expanded?(0,a.unref)(EC):(0,a.unref)(fu)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,JR),n.expanded&&s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,QR,[n.tool.status===`error`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,$R,(0,a.toDisplayString)(n.tool.error||`执行失败`),1)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createElementVNode)(`div`,ez,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(o.value,e=>((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:e.key,class:(0,a.normalizeClass)([`smdr__tab`,{"smdr__tab--active":l.value===e.key}]),onClick:t=>l.value=e.key},(0,a.toDisplayString)(e.label),11,tz))),128))]),(0,a.createElementVNode)(`div`,nz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(o.value,e=>(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createBlock)(nL,{key:e.key,content:e.content},null,8,[`content`])),[[a.vShow,l.value===e.key]])),128))])],64))])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-d1dff106`]]),iz={save_module_docs_tool:rz},az={class:`todos-top-panel`},oz={class:`todos-top-panel__header`},sz={class:`todos-top-panel__meta`},cz={class:`todos-top-panel__list`},lz={class:`todos-top-panel__text`},uz=KI((0,a.defineComponent)({__name:`WriteTodosTopPanel`,props:{todos:{}},setup(e){let t=e,n=(0,a.computed)(()=>t.todos.filter(e=>r(e.status)===`completed`).length);function r(e){let t=String(e||``).toLowerCase();return t===`completed`||t===`done`||t===`success`?`completed`:t===`in_progress`||t===`running`||t===`doing`?`in_progress`:t===`cancelled`||t===`canceled`||t===`rejected`||t===`blocked`?`cancelled`:`pending`}return(t,i)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,az,[(0,a.createElementVNode)(`header`,oz,[i[0]||=(0,a.createElementVNode)(`span`,{class:`todos-top-panel__title`},`任务清单`,-1),(0,a.createElementVNode)(`span`,sz,[(0,a.createVNode)((0,a.unref)(vf),{class:`todos-top-panel__meta-icon`}),(0,a.createTextVNode)(` `+(0,a.toDisplayString)(n.value)+`/`+(0,a.toDisplayString)(e.todos.length)+` 已完成 `,1)])]),(0,a.createElementVNode)(`ul`,cz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.todos,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`li`,{key:e.id||`${t}-${e.title}`,class:`todos-top-panel__item`},[(0,a.createElementVNode)(`span`,{class:(0,a.normalizeClass)([`todos-top-panel__status`,`is-${r(e.status)}`])},[r(e.status)===`completed`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:0})):r(e.status)===`in_progress`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(pD),{key:1,class:`is-rotating`})):r(e.status)===`cancelled`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(lD),{key:2})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(mx),{key:3}))],2),(0,a.createElementVNode)(`span`,lz,(0,a.toDisplayString)(e.title),1)]))),128))])]))}}),[[`__scopeId`,`data-v-d03a50e5`]]),dz={class:`chat-panel`},fz={class:`chat-header`},pz={class:`header-meta`},mz={class:`conv-heading`},hz={key:0,class:`conv-subheading`},gz={class:`header-actions`},_z={class:`chat-body`},vz={key:0,class:`empty-state`},yz={key:0,class:`empty-sub`},bz={key:1,class:`messages-wrapper`},xz={class:`input-footer`},Sz={class:`input-panel`},Cz={class:`sender-footer`},wz={class:`sender-footer__left`},Tz={class:`sender-footer__right`},Ez=KI((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agentPickerStorageKey:{default:`chat_panel_agent`},agents:{},customComponents:{},customHtmlTags:{},defaultToolRenderers:{default:()=>iz},emptyHint:{default:``},initialMessages:{default:()=>[]},modelValue:{default:``},onAgentEvent:{},roles:{},sessionKey:{default:``},subtitle:{default:``},title:{default:`对话助手`}},emits:[`update:modelValue`,`update:agentKey`,`submit`,`cancel`,`reset`,`agentChange`,`update:agents`],setup(e,{expose:t,emit:n}){let r=e,i=n,o=(0,a.ref)({});function s(e){o.value={...o.value,[e]:!o.value[e]}}function c(e){return e.map(e=>({...e,toolTimeline:e.toolTimeline?.map(e=>({...e})),segments:e.segments?.map(e=>({...e}))}))}let l=(0,a.ref)(r.modelValue||``),u=(0,a.ref)(!1),d=(0,a.ref)(c(r.initialMessages)),f=(0,a.ref)(``),p=(0,a.ref)(r.agentKey||r.agents[0]?.key||``),m=(0,a.ref)(),h=(0,a.ref)(!1),g=(0,a.computed)(()=>_.value.filter(e=>e.status!==`error`).map(e=>({id:e.uid,name:e.name,size:e.size||0,type:e.type||`application/octet-stream`,url:e.url||e.thumbUrl}))),_=(0,a.ref)([]);async function v(e){_.value=e.fileList;for(let t of e.fileList){if(t.url&&!t.url.startsWith(`blob:`))continue;let e=t.originFileObj;if(!e||!M.value?.agent.uploadFile)continue;let n=_.value.findIndex(e=>e.uid===t.uid);n!==-1&&(_.value[n]={..._.value[n],status:`uploading`});try{let n=await M.value.agent.uploadFile(e),r=_.value.findIndex(e=>e.uid===t.uid);r!==-1&&(_.value[r]={..._.value[r],uid:n.id,url:n.url,thumbUrl:n.url,status:`done`})}catch{let e=_.value.findIndex(e=>e.uid===t.uid);e!==-1&&(_.value[e]={..._.value[e],status:`error`})}}}function y(e,t){if(!P.value)return;let n=[...t];if(n.length===0)return;h.value=!0;let r=n.map((e,t)=>({uid:`paste-${Date.now()}-${t}-${Math.random().toString(36).slice(2,8)}`,name:e.name,status:`uploading`,originFileObj:e,type:e.type,size:e.size}));v({file:r[r.length-1],fileList:[..._.value,...r]})}function b(e){return e===`drop`?{title:`释放文件`}:{icon:(0,a.h)(tD),title:`上传文件`,description:`点击或拖拽文件到此区域上传`}}let x=(0,a.ref)([...r.agents]),S=new Map;function C(e){return{replyChange:(t,n)=>{r.onAgentEvent?.({event:`replyChange`,agentKey:e.key,args:[t,n]}),he(t,n)},stop:()=>{r.onAgentEvent?.({event:`stop`,agentKey:e.key,args:[]}),ve()},toolCall:t=>{r.onAgentEvent?.({event:`toolCall`,agentKey:e.key,args:[t]}),ye(t)},interrupt:t=>{r.onAgentEvent?.({event:`interrupt`,agentKey:e.key,args:[t]}),be(t)}}}function w(e){if(S.has(e.key))return;let t=C(e);S.set(e.key,t),e.agent.on(`replyChange`,t.replyChange),e.agent.on(`stop`,t.stop),e.agent.on(`toolCall`,t.toolCall),e.agent.on(`thinkingChange`,ge),e.agent.on(`blocksUpdate`,_e);let n=e.agent;typeof n.onInterrupt==`function`&&n.onInterrupt(t.interrupt)}function T(e){let t=S.get(e.key);if(!t)return;e.agent.off(`replyChange`,t.replyChange),e.agent.off(`stop`,t.stop),e.agent.off(`toolCall`,t.toolCall),e.agent.off(`thinkingChange`,ge),e.agent.off(`blocksUpdate`,_e);let n=e.agent;typeof n.offInterrupt==`function`&&n.offInterrupt(t.interrupt),S.delete(e.key)}function E(e){let t=x.value;t.forEach(t=>{e.find(e=>e.key===t.key)||T(t)}),e.forEach(e=>{t.find(t=>t.key===e.key)||w(e)}),x.value=e,i(`update:agents`,e),e.find(e=>e.key===p.value)||(p.value=e[0]?.key||``,i(`update:agentKey`,p.value))}let D=(0,a.ref)(null),O=(0,a.ref)(!1),k=(0,a.ref)({}),A=(0,a.ref)(null),j=(0,a.computed)(()=>d.value),M=(0,a.computed)(()=>x.value.find(e=>e.key===p.value)||x.value[0]||null),N=(0,a.computed)(()=>M.value?.label||`未选择`),P=(0,a.computed)(()=>typeof M.value?.agent.uploadFile==`function`),F=(0,a.computed)(()=>({...r.defaultToolRenderers,...M.value?.toolRenderers})),I=(0,a.computed)(()=>ld(r.emptyHint)?`当前 Agent:${N.value},输入问题后按 Enter 发送`:r.emptyHint);(0,a.watch)(()=>r.modelValue,e=>{l.value=e||``}),(0,a.watch)(()=>r.agentKey,e=>{e&&(p.value=e)}),(0,a.watch)(()=>r.sessionKey,()=>{f.value=``,u.value=!1,o.value={},d.value=c(r.initialMessages),A.value=null},{immediate:!0});function L(e){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function R(e,t){let n=d.value.findIndex(t=>t.key===e);n!==-1&&(d.value[n]={...d.value[n],...t})}function ee(e,t,n){let r=[...e],i=t;if(r.length===0)r.push({type:`text`,start:0,end:i});else for(let e=r.length-1;e>=0;e--){let t=r[e];if(t.type===`text`&&t.end===-1){r[e]={...t,end:i};break}}return r.push({type:`tool`,toolCallId:n},{type:`text`,start:i,end:-1}),r}function te(e,t){let n=d.value.findIndex(t=>t.key===e);if(n===-1)return;let r=d.value[n];if(r.role!==`ai`)return;let i=[...r.toolTimeline??[]],a=i.findIndex(e=>e.toolCallId===t.toolCallId),o=r.segments?[...r.segments]:[];if(a===-1&&(o=ee(o,r.content.length,t.toolCallId)),a===-1)i.push({toolCallId:t.toolCallId,toolName:t.toolName,title:t.title,status:t.status,input:t.input,output:t.output,error:t.error,stepNumber:t.stepNumber,startedAt:t.timestamp,durationMs:t.durationMs,approvalConfig:t.approvalConfig?{interruptId:t.approvalConfig.interruptId,description:t.approvalConfig.description,args:t.input??{},allowedDecisions:t.approvalConfig.allowedDecisions,editContent:``}:void 0});else{let e=i[a];i[a]={...e,toolName:t.toolName||e.toolName,title:t.title??e.title,status:t.status,input:t.input??e.input,output:t.output??e.output,error:t.error??e.error,stepNumber:t.stepNumber??e.stepNumber,durationMs:t.durationMs??e.durationMs,approvalConfig:t.approvalConfig&&!e.approvalConfig?{interruptId:t.approvalConfig.interruptId,description:t.approvalConfig.description,args:t.input??{},allowedDecisions:t.approvalConfig.allowedDecisions,editContent:``}:e.approvalConfig}}d.value[n]={...r,toolTimeline:i,segments:o,loading:!1}}function ne(e){let t=e.trim();if(!t)return e;try{return JSON.parse(t)}catch{return e}}function z(e,t){if(typeof e==`string`)return{title:e,status:`pending`};if(!e||typeof e!=`object`)return{title:`Todo ${t+1}`,status:`pending`};let n=e,r=typeof n.title==`string`&&n.title||typeof n.content==`string`&&n.content||typeof n.text==`string`&&n.text||typeof n.task==`string`&&n.task||`Todo ${t+1}`,i=typeof n.status==`string`&&n.status||typeof n.state==`string`&&n.state||(typeof n.done==`boolean`&&n.done?`completed`:`pending`);return{id:typeof n.id==`string`?n.id:void 0,title:r,status:String(i)}}function re(e){if(typeof e!=`string`)return[];let t=e.trim();if(!t)return[];let n=ne(t);if(typeof n==`string`)return[];if(Array.isArray(n))return n.map((e,t)=>z(e,t));if(n&&typeof n==`object`){let e=n.todos;if(Array.isArray(e))return e.map((e,t)=>z(e,t))}return[]}function B(e){let t=re(e.input),n=t.length>0?t:re(e.output);if(n.length===0)return null;let r=n.filter(e=>String(e.title||``).trim().length>0);return r.length===0?null:{todos:r}}(0,a.watch)((0,a.computed)(()=>{for(let e=d.value.length-1;e>=0;e--){let t=d.value[e].toolTimeline;if(t?.length)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.toolName!==`write_todos`)continue;let r=B(n);if(r)return r}}return null}),e=>{e?.todos?.length&&(A.value=e)},{immediate:!0});function ie(e,t){let n=(t||``).trim();if(n)return n;let r=d.value.find(e=>e.key===f.value)?.toolTimeline?.find(t=>t.toolCallId===e);return r?.toolName?r.toolName:D.value?.review_configs.length===1?D.value.review_configs[0].action_name:``}function ae(e,t){let n=d.value.findIndex(t=>t.key===e);if(n===-1)return;let r=d.value[n];if(r.role!==`ai`)return;let i=[...r.toolTimeline??[]],a=r.segments?[...r.segments]:[],o=Date.now();t.review_configs.forEach((e,n)=>{let s=e.action_name;if(!s)return;let c=t.action_requests.find(e=>e.name===s),l={interruptId:t.interrupt_id,description:c?.description||``,args:c?.args??{},allowedDecisions:e.allowed_decisions,editContent:typeof c?.args?.content==`string`?String(c.args.content):``},u=-1;for(let e=i.length-1;e>=0;e--){let t=i[e];if(t.toolName===s&&t.status===`running`){u=e;break}}if(u!==-1){let e=i[u];i[u]={...e,status:`waiting`,approvalConfig:l};return}let d=`interrupt-${t.interrupt_id}-${n}`;i.push({toolCallId:d,toolName:s,title:s,status:`waiting`,stepNumber:i.length,startedAt:o,approvalConfig:l});let f=r.content.length;a=ee(a,f,d)}),d.value[n]={...r,toolTimeline:i,segments:a,loading:!1}}function oe(e,t){let n=ie(e,t);n&&xe([{action_name:n,decision:`approve`}])}function se(e,t){let n=ie(e,t);n&&xe([{action_name:n,decision:`reject`}])}function ce(e,t,n){let r=ie(e,t);r&&xe([{action_name:r,decision:`edit`,edited_content:n||``}])}function le(e=!1){f.value=``,l.value=``,o.value={},D.value=null,O.value=!1,k.value={},A.value=null,_.value=[],i(`update:modelValue`,``),u.value=!1,d.value=[],(e?x.value.map(e=>e.agent):M.value?[M.value.agent]:[]).forEach(e=>{e.stop(),e.reset()})}function ue(e){l.value=e,i(`update:modelValue`,e)}async function de(e){let t=(e??l.value).trim();if(!t||u.value||!M.value)return;let n=L(`user`),r=L(`ai`);f.value=r,D.value=null,O.value=!1,k.value={};let a={key:n,role:`user`,content:t};g.value.length>0&&(a.segments=[{type:`attachment`,attachments:g.value},{type:`text`,start:0,end:-1}]),d.value.push(a,{key:r,role:`ai`,content:``,loading:!0,toolTimeline:[]}),l.value=``,i(`update:modelValue`,``),u.value=!0,i(`submit`,t,p.value);try{await M.value.agent.ask(t,g.value.length>0?g.value:void 0);let e=d.value.findIndex(e=>e.key===r);e!==-1&&d.value[e].loading&&(d.value[e]={...d.value[e],content:d.value[e].content||`未收到响应,请重试`,loading:!1})}catch(e){let t=e instanceof Error?e.message:`请求失败`,n=d.value.find(e=>e.key===r)?.content||``;R(r,{content:n?`${n}\n\n请求失败:${t}`:`请求失败:${t}`,loading:!1})}finally{u.value=!1,D.value||(f.value=``)}_.value=[]}function fe(){if(!u.value||!M.value)return;let e=f.value;e&&R(e,{loading:!1}),f.value=``,u.value=!1,M.value.agent.stop(),i(`cancel`)}function pe(){le(),i(`reset`)}function me(e){!e||e===p.value||(p.value=e,i(`update:agentKey`,e),le(!0),i(`agentChange`,e))}let he=(e,t)=>{let n=f.value;n&&R(n,{content:t,loading:!1})};function ge(e,t){let n=f.value;n&&R(n,{thinkingContent:t,loading:!1})}function _e(e){let t=f.value;t&&R(t,{blocks:[...e]})}let ve=()=>{let e=f.value;if(!e)return;let t=d.value.findIndex(t=>t.key===e);t!==-1&&d.value[t].loading&&(d.value[t]={...d.value[t],content:d.value[t].content||`已停止`,loading:!1})},ye=e=>{let t=f.value;t&&te(t,e)},be=e=>{let t=f.value;if(!t)return;D.value=e;let n={};for(let t of e.action_requests)n[t.name]=typeof t.args.content==`string`?t.args.content:``;k.value=n,ae(t,e),R(t,{loading:!1})};async function xe(e){if(!M.value||O.value)return;let t=f.value;O.value=!0,D.value=null,t&&R(t,{loading:!1});try{await M.value.agent.resume(e),t&&R(t,{loading:!1})}catch(e){let n=e instanceof Error?e.message:`恢复失败`;t&&R(t,{content:`${d.value.find(e=>e.key===t)?.content||``}\n\n操作恢复失败:${n}`,loading:!1})}finally{O.value=!1,D.value||(f.value=``)}}return r.agents.forEach(w),t({handleReset:pe,sendMessage:de,stop}),(0,a.onBeforeUnmount)(()=>{f.value=``,u.value&&M.value&&M.value.agent.stop(),x.value.forEach(T),g.value.forEach(e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)})}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,dz,[(0,a.createElementVNode)(`header`,fz,[(0,a.createElementVNode)(`div`,pz,[(0,a.createElementVNode)(`h2`,mz,(0,a.toDisplayString)(e.title),1),e.subtitle?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,hz,(0,a.toDisplayString)(e.subtitle),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`div`,gz,[(0,a.renderSlot)(t.$slots,`header-actions`,(0,a.normalizeProps)((0,a.guardReactiveProps)({handleReset:pe})),()=>[(0,a.createVNode)((0,a.unref)(th),{type:`primary`,size:`small`,disabled:u.value,onClick:pe},{default:(0,a.withCtx)(()=>[...n[3]||=[(0,a.createTextVNode)(` 新会话 `,-1)]]),_:1},8,[`disabled`])],!0)])]),A.value?((0,a.openBlock)(),(0,a.createBlock)(uz,{key:0,todos:A.value.todos},null,8,[`todos`])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,_z,[j.value.length===0?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,vz,[(0,a.createVNode)((0,a.unref)(aD),{class:`empty-icon`}),n[4]||=(0,a.createElementVNode)(`p`,{class:`empty-title`},`开始你的对话`,-1),I.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,yz,(0,a.toDisplayString)(I.value),1)):(0,a.createCommentVNode)(``,!0)])):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,bz,[(0,a.createVNode)((0,a.unref)(nF),{items:j.value,roles:e.roles,style:{width:`100%`},"auto-scroll":!0},{message:(0,a.withCtx)(r=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(r)),()=>[(0,a.createVNode)(eR,{message:r.item,"expanded-tools":o.value,"tool-renderers":F.value,"interrupt-resolving":O.value,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents,onToggleExpand:s,onApprove:oe,onReject:se,onEdit:n[0]||=(e,t,n)=>ce(e,t,n)},null,8,[`message`,`expanded-tools`,`tool-renderers`,`interrupt-resolving`,`custom-html-tags`,`custom-components`])],!0)]),_:3},8,[`items`,`roles`])]))]),(0,a.createElementVNode)(`footer`,xz,[(0,a.createElementVNode)(`div`,Sz,[(0,a.createVNode)((0,a.unref)(YF),{ref_key:`senderRef`,ref:m,value:l.value,placeholder:`输入问题,Enter 发送`,"submit-type":`enter`,loading:u.value,actions:!1,"onUpdate:value":ue,onSubmit:de,onCancel:fe,onPasteFile:y},(0,a.createSlots)({footer:(0,a.withCtx)(({info:e})=>[(0,a.createElementVNode)(`div`,Cz,[(0,a.createElementVNode)(`div`,wz,[(0,a.createVNode)(qI,{value:p.value,"built-in-agents":r.agents,disabled:u.value,"storage-key":r.agentPickerStorageKey,"onUpdate:value":me,"onUpdate:agents":E},null,8,[`value`,`built-in-agents`,`disabled`,`storage-key`]),P.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)($p),{key:0,dot:g.value.length>0&&!h.value},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(iE),{onClick:n[2]||=e=>h.value=!h.value})]),_:1},8,[`dot`])):(0,a.createCommentVNode)(``,!0),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(M.value?.footerControls,e=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.component),(0,a.mergeProps)({key:e.key,agent:M.value?.agent,"agent-option":M.value,disabled:u.value},{ref_for:!0},e.props),null,16,[`agent`,`agent-option`,`disabled`]))),128))]),(0,a.createElementVNode)(`div`,Tz,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(u.value?e.components.LoadingButton:e.components.SendButton),{type:`primary`}))])])]),_:2},[P.value?{name:`header`,fn:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(YF).Header,{styles:{content:{padding:0}},open:h.value,onOpenChange:n[1]||=e=>h.value=e,"force-render":``},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(II),{"before-upload":()=>!1,items:_.value,placeholder:b,"get-drop-container":()=>m.value?.$el,onChange:v},null,8,[`items`,`get-drop-container`])]),_:1},8,[`open`])]),key:`0`}:void 0]),1032,[`value`,`loading`])])])]))}}),[[`__scopeId`,`data-v-7d1dc6c2`]]),Dz={class:`agent-chat`},Oz={class:`agent-chat__sidebar-header`},kz={key:0,class:`agent-chat__state-tip`},Az={key:1,class:`agent-chat__state-tip agent-chat__state-tip--error`},jz={class:`agent-chat__main`},Mz={key:0,class:`agent-chat__toolbar`},Nz=KI((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agents:{},emptyHint:{default:`从左侧选择历史会话,或直接开始新的对话`},hideHistory:{type:Boolean},onAgentEvent:{},roles:{},title:{default:``}},emits:[`update:agentKey`],setup(e,{expose:t,emit:n,slots:r}){let i=e,o=n,s=(0,a.ref)([...i.agents]),c=(0,a.ref)(i.agentKey||i.agents[0]?.key||``),l=(0,a.computed)(()=>s.value.find(e=>e.key===c.value)??s.value[0]),u=(0,a.computed)(()=>i.hideHistory===void 0?l.value?.agent.supportsHistory?.()??!1:!i.hideHistory);(0,a.watch)(()=>i.agentKey,e=>{e&&e!==c.value&&E(e)});let d=(0,a.ref)(!1),f=(0,a.ref)(``),p=(0,a.ref)(!1),m=(0,a.ref)(``),h=(0,a.ref)([]),g=(0,a.ref)(``),_=(0,a.ref)(``),v=(0,a.ref)([]),y=(0,a.ref)(`session:new:${Date.now()}`),b=(0,a.ref)(!1),x=(0,a.computed)(()=>h.value.map(e=>({key:e.id,label:e.title||`新对话`}))),S=(0,a.computed)(()=>{let e=f.value.trim().toLowerCase();return e?x.value.filter(t=>t.label.toLowerCase().includes(e)):x.value});async function C(){if(l.value){p.value=!0,m.value=``;try{let e=await l.value.agent.listConversations();h.value=e.items}catch(e){m.value=e instanceof Error?e.message:`加载失败`}finally{p.value=!1}}}(0,a.onMounted)(()=>{u.value&&C()});function w(e){!e||e===c.value||E(e)}function T(e){if(s.value=e,!e.find(e=>e.key===c.value)){let t=e[0]?.key||``;t&&(c.value=t,o(`update:agentKey`,t))}}function E(e){l.value?.agent.stop(),l.value?.agent.reset(),c.value=e,o(`update:agentKey`,e),k(),u.value&&C()}function D(){return l.value?.agent}function O(){return c.value}function k(){g.value=``,_.value=``,v.value=[],y.value=`session:new:${Date.now()}`}function A(){d.value=!1,l.value?.agent.stop(),l.value?.agent.reset(),k()}async function j(e){if(e===g.value)return;d.value=!1,g.value=e;let t=h.value.find(t=>t.id===e);_.value=t?.title||`历史会话`,l.value?.agent.stop(),b.value=!0;try{let t=await l.value?.agent.getConversationDetail(e);v.value=t??[]}catch{v.value=[]}finally{b.value=!1}y.value=`session:${c.value}:${e}`}let M=(0,a.computed)(()=>i.title||_.value||l.value?.label||`AI 助手`),N=(0,a.computed)(()=>b.value?`正在加载历史消息…`:g.value?`已载入历史会话`:``),P=(0,a.h)(Pp,{size:32,style:{background:`#1677ff`,flexShrink:`0`}},()=>`AI`),F=(0,a.h)(Pp,{size:32,style:{background:`#22c55e`,flexShrink:`0`}},()=>`我`),I={ai:{placement:`start`,avatar:P,styles:{content:{background:`#fff`,border:`1px solid #e5e7eb`,borderBottomLeftRadius:`4px`,borderRadius:`12px`,color:`#1f2937`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}},user:{placement:`end`,avatar:F,styles:{content:{background:`#1677ff`,borderBottomRightRadius:`4px`,borderRadius:`12px`,color:`#fff`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}}},L=(0,a.computed)(()=>i.roles??I),R=(0,a.ref)();return t({reloadConversations:C,newChat:A,getCurrentAgentRuntime:D,getCurrentAgentKey:O,getActiveConversationId:()=>g.value,getHistoryMessages:()=>v.value,getConversations:()=>h.value,loadConversation:j,sendMessage:e=>R.value?.sendMessage(e),stop:()=>R.value?.stop()}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Dz,[u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`aside`,{key:0,class:(0,a.normalizeClass)([`agent-chat__sidebar`,{"is-open":d.value}])},[(0,a.createElementVNode)(`button`,{class:`agent-chat__close-btn`,"aria-label":`关闭侧边栏`,onClick:n[0]||=e=>d.value=!1},[(0,a.createVNode)((0,a.unref)(wu))]),(0,a.createElementVNode)(`div`,Oz,[n[5]||=(0,a.createElementVNode)(`span`,{class:`agent-chat__sidebar-title`},`历史会话`,-1),(0,a.createVNode)((0,a.unref)(th),{type:`text`,class:`agent-chat__new-btn`,disabled:p.value,onClick:A},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(Kg))]),default:(0,a.withCtx)(()=>[n[4]||=(0,a.createTextVNode)(` 新建 `,-1)]),_:1},8,[`disabled`])]),(0,a.createVNode)((0,a.unref)(uS),{value:f.value,"onUpdate:value":n[1]||=e=>f.value=e,placeholder:`搜索对话…`,"allow-clear":``,class:`agent-chat__search`},{prefix:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(Mu),{style:{color:`#94a3b8`}})]),_:1},8,[`value`]),p.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,kz,[(0,a.createVNode)((0,a.unref)(gu),{style:{"margin-right":`6px`}}),n[6]||=(0,a.createTextVNode)(`加载中… `,-1)])):m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Az,[(0,a.createVNode)((0,a.unref)(_D),{style:{"margin-right":`6px`}}),(0,a.createTextVNode)((0,a.toDisplayString)(m.value)+` `,1),(0,a.createVNode)((0,a.unref)(th),{size:`small`,type:`link`,onClick:C},{default:(0,a.withCtx)(()=>[...n[7]||=[(0,a.createTextVNode)(`重试`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(hF),{"active-key":g.value,items:S.value,class:`agent-chat__conv-list`,"on-active-change":j},null,8,[`active-key`,`items`])],2)):(0,a.createCommentVNode)(``,!0),d.value&&u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:1,class:`agent-chat__mask`,onClick:n[2]||=e=>d.value=!1})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,jz,[u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Mz,[(0,a.createVNode)((0,a.unref)(th),{class:`agent-chat__history-btn`,onClick:n[3]||=e=>d.value=!0},{default:(0,a.withCtx)(()=>[...n[8]||=[(0,a.createTextVNode)(` 历史会话`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)(Ez,{ref_key:`chatPanelRef`,ref:R,"agent-key":c.value,agents:i.agents,roles:L.value,"session-key":y.value,"initial-messages":v.value,title:M.value,subtitle:N.value,"empty-hint":e.emptyHint,"on-agent-event":i.onAgentEvent,class:`agent-chat__panel`,"onUpdate:agentKey":w,"onUpdate:agents":T,onReset:A},(0,a.createSlots)({_:2},[r[`header-actions`]?{name:`header-actions`,fn:(0,a.withCtx)(e=>[(0,a.renderSlot)(t.$slots,`header-actions`,(0,a.normalizeProps)((0,a.guardReactiveProps)(e)),void 0,!0)]),key:`0`}:void 0,r.message?{name:`message`,fn:(0,a.withCtx)(e=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(e)),void 0,!0)]),key:`1`}:void 0]),1032,[`agent-key`,`agents`,`roles`,`session-key`,`initial-messages`,`title`,`subtitle`,`empty-hint`,`on-agent-event`])])]))}}),[[`__scopeId`,`data-v-2041f5e6`]]);async function Pz(e){try{let t=await e.text(),n=JSON.parse(t);return typeof n?.message==`string`?n.message:typeof n?.error==`string`?n.error:t||`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}function Fz(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function Iz(e){if(!e.startsWith(`data:`))return null;let t=e.slice(5).trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}function Lz(e){let t=e.toLowerCase();return t.includes(`think`)||t.includes(`reasoning`)||t.includes(`思考`)}var Rz=class{constructor(){this.blocks=[],this.reasoningBuf=``,this.replyBuf=``}addReasoning(e){this.reasoningBuf+=e}addReply(e){this.flushReasoningBuf(),this.replyBuf+=e}addToolCall(e){return this.blocks.some(t=>t.type===`tool_call`&&t.toolCallId===e.toolCallId)?!1:(this.flushReasoningBuf(),this.blocks.push(e),!0)}findToolCallBlock(e){return this.blocks.find(t=>t.type===`tool_call`&&t.toolCallId===e)}finish(){this.flushReasoningBuf(),this.flushReplyBuf()}flushReplyBuf(){this.replyBuf&&=(this.blocks.push({type:`text`,text:this.replyBuf}),``)}reset(){this.blocks=[],this.reasoningBuf=``,this.replyBuf=``}flushReasoningBuf(){this.reasoningBuf&&=(this.blocks.push({type:`reasoning`,text:this.reasoningBuf}),``)}},zz=class extends o{constructor({endpoint:e,historyEndpoint:t,resumeEndpoint:n,user:r,app:i,initialUserContexts:a=[],requestHeaders:o={},prepareRequestBody:s}){super(),this.abortController=null,this.activeSubAgentCallId=``,this.conversationId=``,this.initialUserContexts=[],this.mainAccumulator=new Rz,this.pendingTaskArgs=new Map,this.prepareRequestBody=null,this.replyParts=[],this.requestHeaders={},this.resumeEndpoint=void 0,this.subAccumulator=null,this.thinkingParts=[],this.endpoint=e,this.historyEndpoint=t,this.user=r,this.app=i,this.resumeEndpoint=n,this.requestHeaders={...o},this.prepareRequestBody=s??null,this.setInitialUserContexts(a)}addInitialUserContext(e){let t=e.trim();t&&this.initialUserContexts.push(t)}async ask(e,t){let n=new AbortController;this.abortController=n,this.replyParts=[],this.thinkingParts=[],this.activeSubAgentCallId=``,this.pendingTaskArgs.clear(),this.mainAccumulator.reset(),this.subAccumulator=null;let r=this.initialUserContexts.length>0?`${this.initialUserContexts.join(`
348
+ `?(p+=`\\n`,t+=2):(p+=n,t+=2)}else{let n=e.charAt(t);n===`"`&&e[t-1]!==`\\`?(p+=`\\${n}`,t++):TR(n)?(p+=WR[n],t++):(gR(n)||D(n),p+=n,t++)}o&&f()}}return!1}function v(){let r=!1;for(a();e[t]===`+`;){r=!0,t++,a(),n=PR(n,`"`,!0);let e=n.length;n=_()?IR(n,e,1):FR(n,`"`)}return r}function y(){let r=t,i=``,a=!1;for(e[t]===`-`&&(i+=e[t],t++,!hR(e[t])&&E()&&(i+=`0`)),e[t]===`0`&&hR(e[t+1])&&(a=!0);hR(e[t]);)i+=e[t],t++;if(e[t]===`.`)for((i===``||i===`-`)&&(i+=`0`),i+=e[t],t++,hR(e[t])||(i+=`0`);hR(e[t]);)i+=e[t],t++;if(t>r){if(e[t]===`e`||e[t]===`E`)for(i===`-`&&(a=!0),i+=e[t],t++,(e[t]===`-`||e[t]===`+`)&&(i+=e[t],t++),hR(e[t])||(i+=`0`);hR(e[t]);)i+=e[t],t++;return E()?(n+=a?`"${e.substring(r,t)}"`:i,!0):(t=r,!1)}return!1}function b(){return x(`true`,`true`)||x(`false`,`false`)||x(`null`,`null`)||x(`True`,`true`)||x(`False`,`false`)||x(`None`,`null`)}function x(r,i){return e.slice(t,t+r.length)===r&&!yR(e[t+r.length])?(n+=i,t+=r.length,!0):!1}function S(r){let a=t;if(vR(e[t])){for(;t<e.length&&yR(e[t]);)t++;let n=t;for(;ER(e,n);)n++;if(e[n]===`(`)return t=n+1,i(),e[t]===`)`&&(t++,e[t]===`;`&&t++),!0}for(;t<e.length&&!SR(e[t])&&!kR(e[t])&&(!r||e[t]!==`:`);)t++;if(e[t-1]===`:`&&bR.test(e.substring(a,t+2)))for(;t<e.length&&xR.test(e[t]);)t++;if(t>a){for(;ER(e,t-1)&&t>0;)t--;let r=e.slice(a,t);return n+=r===`undefined`?`null`:JSON.stringify(r),e[t]===`"`&&t++,!0}}function C(){if(e[t]===`/`){let r=t;for(t++;t<e.length&&(e[t]!==`/`||e[t-1]===`\\`);)t++;return t++,n+=JSON.stringify(e.substring(r,t)),!0}}function w(t){let n=t;for(;n>0&&ER(e,n);)n--;return n}function T(t){let n=t+1;for(;n<e.length&&ER(e,n);)n++;return n>=e.length||_R(e[n])}function E(){return t>=e.length||_R(e[t])||ER(e,t)}function D(e){throw new tR(`Invalid character ${JSON.stringify(e)}`,t)}function O(){throw new tR(`Unexpected character ${JSON.stringify(e[t])}`,t)}function k(){throw new tR(`Unexpected end of json string`,e.length)}function A(){throw new tR(`Object key expected`,t)}function j(){throw new tR(`Colon expected`,t)}function M(){throw new tR(`Invalid unicode character "${e.slice(t,t+6)}"`,t)}}function qR(e,t){return e[t]===`*`&&e[t+1]===`/`}var JR=[`role`,`tabindex`],YR={class:`tool-call-node__prefix`},XR={class:`tool-call-node__title`},ZR={key:0,class:`tool-call-node__toggle`},QR={key:0,class:`smdr__body`},$R={key:0,class:`smdr__error`},ez={class:`smdr__tabs`},tz=[`onClick`],nz={class:`smdr__content`},rz=KI((0,a.defineComponent)({__name:`SaveModuleDocsRenderer`,props:{tool:{},expanded:{type:Boolean},stepNumber:{},resolving:{type:Boolean}},emits:[`toggle`,`approve`,`reject`,`edit`],setup(e,{emit:t}){let n=e,r=(0,a.computed)(()=>{let e=n.tool.input;if(!e)return{};if(typeof e==`object`)return e;if(typeof e==`string`)try{return JSON.parse(KR(e))}catch{return{}}return{}}),i=[{key:`requirement_docs`,label:`需求文档`},{key:`technical_docs`,label:`技术文档`},{key:`changelog_docs`,label:`变更日志`}],o=(0,a.computed)(()=>i.filter(e=>{let t=r.value[e.key];return typeof t==`string`&&t.trim().length>0}).map(e=>({key:e.key,label:e.label,content:r.value[e.key]}))),s=(0,a.computed)(()=>o.value.length>0||n.tool.status===`error`),c=(0,a.computed)(()=>{let e=r.value.model_name;return e?`存储文档:${e}`:n.tool.title||`存储模块文档`}),l=(0,a.ref)(o.value[0]?.key??``);return(0,a.watch)(()=>o.value[0]?.key,e=>{e&&!o.value.find(e=>e.key===l.value)&&(l.value=e)},{immediate:!0}),(e,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`tool-call-node`,`is-${n.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:(0,a.normalizeClass)([`tool-call-node__header`,{"tool-call-node__header--clickable":s.value}]),role:s.value?`button`:void 0,tabindex:s.value?0:void 0,onClick:r[0]||=e=>s.value&&t(`toggle`),onKeydown:[r[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>s.value&&t(`toggle`),[`prevent`]),[`enter`]),r[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>s.value&&t(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,YR,[n.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):n.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:1,class:`tool-call-node__prefix-icon`})):n.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Af),{key:2,class:`tool-call-node__prefix-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(mx),{key:3,class:`tool-call-node__prefix-icon is-waiting`})),(0,a.createElementVNode)(`span`,XR,(0,a.toDisplayString)(c.value),1)]),s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,ZR,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.expanded?(0,a.unref)(EC):(0,a.unref)(fu)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,JR),n.expanded&&s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,QR,[n.tool.status===`error`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,$R,(0,a.toDisplayString)(n.tool.error||`执行失败`),1)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createElementVNode)(`div`,ez,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(o.value,e=>((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:e.key,class:(0,a.normalizeClass)([`smdr__tab`,{"smdr__tab--active":l.value===e.key}]),onClick:t=>l.value=e.key},(0,a.toDisplayString)(e.label),11,tz))),128))]),(0,a.createElementVNode)(`div`,nz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(o.value,e=>(0,a.withDirectives)(((0,a.openBlock)(),(0,a.createBlock)(nL,{key:e.key,content:e.content},null,8,[`content`])),[[a.vShow,l.value===e.key]])),128))])],64))])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-d1dff106`]]),iz={save_module_docs_tool:rz},az={class:`todos-top-panel`},oz={class:`todos-top-panel__header`},sz={class:`todos-top-panel__meta`},cz={class:`todos-top-panel__list`},lz={class:`todos-top-panel__text`},uz=KI((0,a.defineComponent)({__name:`WriteTodosTopPanel`,props:{todos:{}},setup(e){let t=e,n=(0,a.computed)(()=>t.todos.filter(e=>r(e.status)===`completed`).length);function r(e){let t=String(e||``).toLowerCase();return t===`completed`||t===`done`||t===`success`?`completed`:t===`in_progress`||t===`running`||t===`doing`?`in_progress`:t===`cancelled`||t===`canceled`||t===`rejected`||t===`blocked`?`cancelled`:`pending`}return(t,i)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,az,[(0,a.createElementVNode)(`header`,oz,[i[0]||=(0,a.createElementVNode)(`span`,{class:`todos-top-panel__title`},`任务清单`,-1),(0,a.createElementVNode)(`span`,sz,[(0,a.createVNode)((0,a.unref)(vf),{class:`todos-top-panel__meta-icon`}),(0,a.createTextVNode)(` `+(0,a.toDisplayString)(n.value)+`/`+(0,a.toDisplayString)(e.todos.length)+` 已完成 `,1)])]),(0,a.createElementVNode)(`ul`,cz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.todos,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`li`,{key:e.id||`${t}-${e.title}`,class:`todos-top-panel__item`},[(0,a.createElementVNode)(`span`,{class:(0,a.normalizeClass)([`todos-top-panel__status`,`is-${r(e.status)}`])},[r(e.status)===`completed`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(vf),{key:0})):r(e.status)===`in_progress`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(pD),{key:1,class:`is-rotating`})):r(e.status)===`cancelled`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(lD),{key:2})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(mx),{key:3}))],2),(0,a.createElementVNode)(`span`,lz,(0,a.toDisplayString)(e.title),1)]))),128))])]))}}),[[`__scopeId`,`data-v-d03a50e5`]]),dz={class:`chat-panel`},fz={class:`chat-header`},pz={class:`header-meta`},mz={class:`conv-heading`},hz={key:0,class:`conv-subheading`},gz={class:`header-actions`},_z={class:`chat-body`},vz={key:0,class:`empty-state`},yz={key:0,class:`empty-sub`},bz={key:1,class:`messages-wrapper`},xz={class:`input-footer`},Sz={class:`input-panel`},Cz={class:`sender-footer`},wz={class:`sender-footer__left`},Tz={class:`sender-footer__right`},Ez=KI((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agentPickerStorageKey:{default:`chat_panel_agent`},agents:{},customComponents:{},customHtmlTags:{},defaultToolRenderers:{default:()=>iz},emptyHint:{default:``},initialMessages:{default:()=>[]},modelValue:{default:``},onAgentEvent:{},roles:{},sessionKey:{default:``},subtitle:{default:``},title:{default:`对话助手`}},emits:[`update:modelValue`,`update:agentKey`,`submit`,`cancel`,`reset`,`agentChange`,`update:agents`],setup(e,{expose:t,emit:n}){let r=e,i=n,o=(0,a.ref)({});function s(e){o.value={...o.value,[e]:!o.value[e]}}function c(e){return e.map(e=>({...e,toolTimeline:e.toolTimeline?.map(e=>({...e})),segments:e.segments?.map(e=>({...e}))}))}let l=(0,a.ref)(r.modelValue||``),u=(0,a.ref)(!1),d=(0,a.ref)(c(r.initialMessages)),f=(0,a.ref)(``),p=(0,a.ref)(r.agentKey||r.agents[0]?.key||``),m=(0,a.ref)(),h=(0,a.ref)(!1),g=(0,a.computed)(()=>_.value.filter(e=>e.status!==`error`).map(e=>({id:e.uid,name:e.name,size:e.size||0,type:e.type||`application/octet-stream`,url:e.url||e.thumbUrl}))),_=(0,a.ref)([]);async function v(e){_.value=e.fileList;for(let t of e.fileList){if(t.url&&!t.url.startsWith(`blob:`))continue;let e=t.originFileObj;if(!e||!M.value?.agent.uploadFile)continue;let n=_.value.findIndex(e=>e.uid===t.uid);n!==-1&&(_.value[n]={..._.value[n],status:`uploading`});try{let n=await M.value.agent.uploadFile(e),r=_.value.findIndex(e=>e.uid===t.uid);r!==-1&&(_.value[r]={..._.value[r],uid:n.id,url:n.url,thumbUrl:n.url,status:`done`})}catch{let e=_.value.findIndex(e=>e.uid===t.uid);e!==-1&&(_.value[e]={..._.value[e],status:`error`})}}}function y(e,t){if(!P.value)return;let n=[...t];if(n.length===0)return;h.value=!0;let r=n.map((e,t)=>({uid:`paste-${Date.now()}-${t}-${Math.random().toString(36).slice(2,8)}`,name:e.name,status:`uploading`,originFileObj:e,type:e.type,size:e.size}));v({file:r[r.length-1],fileList:[..._.value,...r]})}function b(e){return e===`drop`?{title:`释放文件`}:{icon:(0,a.h)(tD),title:`上传文件`,description:`点击或拖拽文件到此区域上传`}}let x=(0,a.ref)([...r.agents]),S=new Map;function C(e){return{replyChange:(t,n)=>{r.onAgentEvent?.({event:`replyChange`,agentKey:e.key,args:[t,n]}),he(t,n)},stop:()=>{r.onAgentEvent?.({event:`stop`,agentKey:e.key,args:[]}),ve()},toolCall:t=>{r.onAgentEvent?.({event:`toolCall`,agentKey:e.key,args:[t]}),ye(t)},interrupt:t=>{r.onAgentEvent?.({event:`interrupt`,agentKey:e.key,args:[t]}),be(t)}}}function w(e){if(S.has(e.key))return;let t=C(e);S.set(e.key,t),e.agent.on(`replyChange`,t.replyChange),e.agent.on(`stop`,t.stop),e.agent.on(`toolCall`,t.toolCall),e.agent.on(`thinkingChange`,ge),e.agent.on(`blocksUpdate`,_e);let n=e.agent;typeof n.onInterrupt==`function`&&n.onInterrupt(t.interrupt)}function T(e){let t=S.get(e.key);if(!t)return;e.agent.off(`replyChange`,t.replyChange),e.agent.off(`stop`,t.stop),e.agent.off(`toolCall`,t.toolCall),e.agent.off(`thinkingChange`,ge),e.agent.off(`blocksUpdate`,_e);let n=e.agent;typeof n.offInterrupt==`function`&&n.offInterrupt(t.interrupt),S.delete(e.key)}function E(e){let t=x.value;t.forEach(t=>{e.find(e=>e.key===t.key)||T(t)}),e.forEach(e=>{t.find(t=>t.key===e.key)||w(e)}),x.value=e,i(`update:agents`,e),e.find(e=>e.key===p.value)||(p.value=e[0]?.key||``,i(`update:agentKey`,p.value))}let D=(0,a.ref)(null),O=(0,a.ref)(!1),k=(0,a.ref)({}),A=(0,a.ref)(null),j=(0,a.computed)(()=>d.value),M=(0,a.computed)(()=>x.value.find(e=>e.key===p.value)||x.value[0]||null),N=(0,a.computed)(()=>M.value?.label||`未选择`),P=(0,a.computed)(()=>typeof M.value?.agent.uploadFile==`function`),F=(0,a.computed)(()=>({...r.defaultToolRenderers,...M.value?.toolRenderers})),I=(0,a.computed)(()=>ld(r.emptyHint)?`当前 Agent:${N.value},输入问题后按 Enter 发送`:r.emptyHint);(0,a.watch)(()=>r.modelValue,e=>{l.value=e||``}),(0,a.watch)(()=>r.agentKey,e=>{e&&(p.value=e)}),(0,a.watch)(()=>r.sessionKey,()=>{f.value=``,u.value=!1,o.value={},d.value=c(r.initialMessages),A.value=null},{immediate:!0});function L(e){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function R(e,t){let n=d.value.findIndex(t=>t.key===e);n!==-1&&(d.value[n]={...d.value[n],...t})}function ee(e,t,n){let r=[...e],i=t;if(r.length===0)r.push({type:`text`,start:0,end:i});else for(let e=r.length-1;e>=0;e--){let t=r[e];if(t.type===`text`&&t.end===-1){r[e]={...t,end:i};break}}return r.push({type:`tool`,toolCallId:n},{type:`text`,start:i,end:-1}),r}function te(e,t){let n=d.value.findIndex(t=>t.key===e);if(n===-1)return;let r=d.value[n];if(r.role!==`ai`)return;let i=[...r.toolTimeline??[]],a=i.findIndex(e=>e.toolCallId===t.toolCallId),o=r.segments?[...r.segments]:[];if(a===-1&&(o=ee(o,r.content.length,t.toolCallId)),a===-1)i.push({toolCallId:t.toolCallId,toolName:t.toolName,title:t.title,status:t.status,input:t.input,output:t.output,error:t.error,stepNumber:t.stepNumber,startedAt:t.timestamp,durationMs:t.durationMs,approvalConfig:t.approvalConfig?{interruptId:t.approvalConfig.interruptId,description:t.approvalConfig.description,args:t.input??{},allowedDecisions:t.approvalConfig.allowedDecisions,editContent:``}:void 0});else{let e=i[a];i[a]={...e,toolName:t.toolName||e.toolName,title:t.title??e.title,status:t.status,input:t.input??e.input,output:t.output??e.output,error:t.error??e.error,stepNumber:t.stepNumber??e.stepNumber,durationMs:t.durationMs??e.durationMs,approvalConfig:t.approvalConfig&&!e.approvalConfig?{interruptId:t.approvalConfig.interruptId,description:t.approvalConfig.description,args:t.input??{},allowedDecisions:t.approvalConfig.allowedDecisions,editContent:``}:e.approvalConfig}}d.value[n]={...r,toolTimeline:i,segments:o,loading:!1}}function ne(e){let t=e.trim();if(!t)return e;try{return JSON.parse(t)}catch{return e}}function z(e,t){if(typeof e==`string`)return{title:e,status:`pending`};if(!e||typeof e!=`object`)return{title:`Todo ${t+1}`,status:`pending`};let n=e,r=typeof n.title==`string`&&n.title||typeof n.content==`string`&&n.content||typeof n.text==`string`&&n.text||typeof n.task==`string`&&n.task||`Todo ${t+1}`,i=typeof n.status==`string`&&n.status||typeof n.state==`string`&&n.state||(typeof n.done==`boolean`&&n.done?`completed`:`pending`);return{id:typeof n.id==`string`?n.id:void 0,title:r,status:String(i)}}function re(e){if(typeof e!=`string`)return[];let t=e.trim();if(!t)return[];let n=ne(t);if(typeof n==`string`)return[];if(Array.isArray(n))return n.map((e,t)=>z(e,t));if(n&&typeof n==`object`){let e=n.todos;if(Array.isArray(e))return e.map((e,t)=>z(e,t))}return[]}function B(e){let t=re(e.input),n=t.length>0?t:re(e.output);if(n.length===0)return null;let r=n.filter(e=>String(e.title||``).trim().length>0);return r.length===0?null:{todos:r}}(0,a.watch)((0,a.computed)(()=>{for(let e=d.value.length-1;e>=0;e--){let t=d.value[e].toolTimeline;if(t?.length)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.toolName!==`write_todos`)continue;let r=B(n);if(r)return r}}return null}),e=>{e?.todos?.length&&(A.value=e)},{immediate:!0});function ie(e,t){let n=(t||``).trim();if(n)return n;let r=d.value.find(e=>e.key===f.value)?.toolTimeline?.find(t=>t.toolCallId===e);return r?.toolName?r.toolName:D.value?.review_configs.length===1?D.value.review_configs[0].action_name:``}function ae(e,t){let n=d.value.findIndex(t=>t.key===e);if(n===-1)return;let r=d.value[n];if(r.role!==`ai`)return;let i=[...r.toolTimeline??[]],a=r.segments?[...r.segments]:[],o=Date.now();t.review_configs.forEach((e,n)=>{let s=e.action_name;if(!s)return;let c=t.action_requests.find(e=>e.name===s),l={interruptId:t.interrupt_id,description:c?.description||``,args:c?.args??{},allowedDecisions:e.allowed_decisions,editContent:typeof c?.args?.content==`string`?String(c.args.content):``},u=-1;for(let e=i.length-1;e>=0;e--){let t=i[e];if(t.toolName===s&&t.status===`running`){u=e;break}}if(u!==-1){let e=i[u];i[u]={...e,status:`waiting`,approvalConfig:l};return}let d=`interrupt-${t.interrupt_id}-${n}`;i.push({toolCallId:d,toolName:s,title:s,status:`waiting`,stepNumber:i.length,startedAt:o,approvalConfig:l});let f=r.content.length;a=ee(a,f,d)}),d.value[n]={...r,toolTimeline:i,segments:a,loading:!1}}function oe(e,t){let n=ie(e,t);n&&xe([{action_name:n,decision:`approve`}])}function se(e,t){let n=ie(e,t);n&&xe([{action_name:n,decision:`reject`}])}function ce(e,t,n){let r=ie(e,t);r&&xe([{action_name:r,decision:`edit`,edited_content:n||``}])}function le(e=!1){f.value=``,l.value=``,o.value={},D.value=null,O.value=!1,k.value={},A.value=null,_.value=[],i(`update:modelValue`,``),u.value=!1,d.value=[],(e?x.value.map(e=>e.agent):M.value?[M.value.agent]:[]).forEach(e=>{e.stop(),e.reset()})}function ue(e){l.value=e,i(`update:modelValue`,e)}async function de(e){let t=(e??l.value).trim();if(!t||u.value||!M.value)return;let n=L(`user`),r=L(`ai`);f.value=r,D.value=null,O.value=!1,k.value={};let a={key:n,role:`user`,content:t};g.value.length>0&&(a.segments=[{type:`attachment`,attachments:g.value},{type:`text`,start:0,end:-1}]),d.value.push(a,{key:r,role:`ai`,content:``,loading:!0,toolTimeline:[]}),l.value=``,i(`update:modelValue`,``),u.value=!0,i(`submit`,t,p.value);try{await M.value.agent.ask(t,g.value.length>0?g.value:void 0);let e=d.value.findIndex(e=>e.key===r);e!==-1&&d.value[e].loading&&(d.value[e]={...d.value[e],content:d.value[e].content||`未收到响应,请重试`,loading:!1})}catch(e){let t=e instanceof Error?e.message:`请求失败`,n=d.value.find(e=>e.key===r)?.content||``;R(r,{content:n?`${n}\n\n请求失败:${t}`:`请求失败:${t}`,loading:!1})}finally{u.value=!1,D.value||(f.value=``)}_.value=[]}function fe(){if(!u.value||!M.value)return;let e=f.value;e&&R(e,{loading:!1}),f.value=``,u.value=!1,M.value.agent.stop(),i(`cancel`)}function pe(){le(),i(`reset`)}function me(e){!e||e===p.value||(p.value=e,i(`update:agentKey`,e),le(!0),i(`agentChange`,e))}let he=(e,t)=>{let n=f.value;n&&R(n,{content:t,loading:!1})};function ge(e,t){let n=f.value;n&&R(n,{thinkingContent:t,loading:!1})}function _e(e){let t=f.value;t&&R(t,{blocks:[...e]})}let ve=()=>{let e=f.value;if(!e)return;let t=d.value.findIndex(t=>t.key===e);t!==-1&&d.value[t].loading&&(d.value[t]={...d.value[t],content:d.value[t].content||`已停止`,loading:!1})},ye=e=>{let t=f.value;t&&te(t,e)},be=e=>{let t=f.value;if(!t)return;D.value=e;let n={};for(let t of e.action_requests)n[t.name]=typeof t.args.content==`string`?t.args.content:``;k.value=n,ae(t,e),R(t,{loading:!1})};async function xe(e){if(!M.value||O.value)return;let t=f.value;O.value=!0,D.value=null,t&&R(t,{loading:!1});try{await M.value.agent.resume(e),t&&R(t,{loading:!1})}catch(e){let n=e instanceof Error?e.message:`恢复失败`;t&&R(t,{content:`${d.value.find(e=>e.key===t)?.content||``}\n\n操作恢复失败:${n}`,loading:!1})}finally{O.value=!1,D.value||(f.value=``)}}return r.agents.forEach(w),t({handleReset:pe,sendMessage:de,stop}),(0,a.onBeforeUnmount)(()=>{f.value=``,u.value&&M.value&&M.value.agent.stop(),x.value.forEach(T),g.value.forEach(e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)})}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,dz,[(0,a.createElementVNode)(`header`,fz,[(0,a.createElementVNode)(`div`,pz,[(0,a.createElementVNode)(`h2`,mz,(0,a.toDisplayString)(e.title),1),e.subtitle?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,hz,(0,a.toDisplayString)(e.subtitle),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`div`,gz,[(0,a.renderSlot)(t.$slots,`header-actions`,(0,a.normalizeProps)((0,a.guardReactiveProps)({handleReset:pe})),()=>[(0,a.createVNode)((0,a.unref)(th),{type:`primary`,size:`small`,disabled:u.value,onClick:pe},{default:(0,a.withCtx)(()=>[...n[3]||=[(0,a.createTextVNode)(` 新会话 `,-1)]]),_:1},8,[`disabled`])],!0)])]),A.value?((0,a.openBlock)(),(0,a.createBlock)(uz,{key:0,todos:A.value.todos},null,8,[`todos`])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,_z,[j.value.length===0?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,vz,[(0,a.createVNode)((0,a.unref)(aD),{class:`empty-icon`}),n[4]||=(0,a.createElementVNode)(`p`,{class:`empty-title`},`开始你的对话`,-1),I.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,yz,(0,a.toDisplayString)(I.value),1)):(0,a.createCommentVNode)(``,!0)])):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,bz,[(0,a.createVNode)((0,a.unref)(nF),{items:j.value,roles:e.roles,style:{width:`100%`},"auto-scroll":!0},{message:(0,a.withCtx)(r=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(r)),()=>[(0,a.createVNode)(eR,{message:r.item,"expanded-tools":o.value,"tool-renderers":F.value,"interrupt-resolving":O.value,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents,onToggleExpand:s,onApprove:oe,onReject:se,onEdit:n[0]||=(e,t,n)=>ce(e,t,n)},null,8,[`message`,`expanded-tools`,`tool-renderers`,`interrupt-resolving`,`custom-html-tags`,`custom-components`])],!0)]),_:3},8,[`items`,`roles`])]))]),(0,a.createElementVNode)(`footer`,xz,[(0,a.createElementVNode)(`div`,Sz,[(0,a.createVNode)((0,a.unref)(YF),{ref_key:`senderRef`,ref:m,value:l.value,placeholder:`输入问题,Enter 发送`,"submit-type":`enter`,loading:u.value,actions:!1,"onUpdate:value":ue,onSubmit:de,onCancel:fe,onPasteFile:y},(0,a.createSlots)({footer:(0,a.withCtx)(({info:e})=>[(0,a.createElementVNode)(`div`,Cz,[(0,a.createElementVNode)(`div`,wz,[(0,a.createVNode)(qI,{value:p.value,"built-in-agents":r.agents,disabled:u.value,"storage-key":r.agentPickerStorageKey,"onUpdate:value":me,"onUpdate:agents":E},null,8,[`value`,`built-in-agents`,`disabled`,`storage-key`]),P.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)($p),{key:0,dot:g.value.length>0&&!h.value},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(iE),{onClick:n[2]||=e=>h.value=!h.value})]),_:1},8,[`dot`])):(0,a.createCommentVNode)(``,!0),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(M.value?.footerControls,e=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.component),(0,a.mergeProps)({key:e.key,agent:M.value?.agent,"agent-option":M.value,disabled:u.value},{ref_for:!0},e.props),null,16,[`agent`,`agent-option`,`disabled`]))),128))]),(0,a.createElementVNode)(`div`,Tz,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(u.value?e.components.LoadingButton:e.components.SendButton),{type:`primary`}))])])]),_:2},[P.value?{name:`header`,fn:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(YF).Header,{styles:{content:{padding:0}},open:h.value,onOpenChange:n[1]||=e=>h.value=e,"force-render":``},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(II),{"before-upload":()=>!1,items:_.value,placeholder:b,"get-drop-container":()=>m.value?.$el,onChange:v},null,8,[`items`,`get-drop-container`])]),_:1},8,[`open`])]),key:`0`}:void 0]),1032,[`value`,`loading`])])])]))}}),[[`__scopeId`,`data-v-7d1dc6c2`]]),Dz={class:`agent-chat`},Oz={class:`agent-chat__sidebar-header`},kz={key:0,class:`agent-chat__state-tip`},Az={key:1,class:`agent-chat__state-tip agent-chat__state-tip--error`},jz={class:`agent-chat__main`},Mz={key:0,class:`agent-chat__toolbar`},Nz=KI((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agents:{},emptyHint:{default:`从左侧选择历史会话,或直接开始新的对话`},hideHistory:{type:Boolean},onAgentEvent:{},roles:{},title:{default:``}},emits:[`update:agentKey`],setup(e,{expose:t,emit:n,slots:r}){let i=e,o=n,s=(0,a.ref)([...i.agents]),c=(0,a.ref)(i.agentKey||i.agents[0]?.key||``),l=(0,a.computed)(()=>s.value.find(e=>e.key===c.value)??s.value[0]),u=(0,a.computed)(()=>i.hideHistory===void 0?l.value?.agent.supportsHistory?.()??!1:!i.hideHistory);(0,a.watch)(()=>i.agentKey,e=>{e&&e!==c.value&&E(e)});let d=(0,a.ref)(!1),f=(0,a.ref)(``),p=(0,a.ref)(!1),m=(0,a.ref)(``),h=(0,a.ref)([]),g=(0,a.ref)(``),_=(0,a.ref)(``),v=(0,a.ref)([]),y=(0,a.ref)(`session:new:${Date.now()}`),b=(0,a.ref)(!1),x=(0,a.computed)(()=>h.value.map(e=>({key:e.id,label:e.title||`新对话`}))),S=(0,a.computed)(()=>{let e=f.value.trim().toLowerCase();return e?x.value.filter(t=>t.label.toLowerCase().includes(e)):x.value});async function C(){if(l.value){p.value=!0,m.value=``;try{let e=await l.value.agent.listConversations();h.value=e.items}catch(e){m.value=e instanceof Error?e.message:`加载失败`}finally{p.value=!1}}}(0,a.onMounted)(()=>{u.value&&C()});function w(e){!e||e===c.value||E(e)}function T(e){if(s.value=e,!e.find(e=>e.key===c.value)){let t=e[0]?.key||``;t&&(c.value=t,o(`update:agentKey`,t))}}function E(e){l.value?.agent.stop(),l.value?.agent.reset(),c.value=e,o(`update:agentKey`,e),k(),u.value&&C()}function D(){return l.value?.agent}function O(){return c.value}function k(){g.value=``,_.value=``,v.value=[],y.value=`session:new:${Date.now()}`}function A(){d.value=!1,l.value?.agent.stop(),l.value?.agent.reset(),k()}async function j(e){if(e===g.value)return;d.value=!1,g.value=e;let t=h.value.find(t=>t.id===e);_.value=t?.title||`历史会话`,l.value?.agent.stop(),b.value=!0;try{let t=await l.value?.agent.getConversationDetail(e);v.value=t??[]}catch{v.value=[]}finally{b.value=!1}y.value=`session:${c.value}:${e}`}let M=(0,a.computed)(()=>i.title||_.value||l.value?.label||`AI 助手`),N=(0,a.computed)(()=>b.value?`正在加载历史消息…`:g.value?`已载入历史会话`:``),P=(0,a.h)(Pp,{size:32,style:{background:`#1677ff`,flexShrink:`0`}},()=>`AI`),F=(0,a.h)(Pp,{size:32,style:{background:`#22c55e`,flexShrink:`0`}},()=>`我`),I={ai:{placement:`start`,avatar:P,styles:{content:{background:`#fff`,border:`1px solid #e5e7eb`,borderBottomLeftRadius:`4px`,borderRadius:`12px`,color:`#1f2937`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}},user:{placement:`end`,avatar:F,styles:{content:{background:`#1677ff`,borderBottomRightRadius:`4px`,borderRadius:`12px`,color:`#fff`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}}},L=(0,a.computed)(()=>i.roles??I),R=(0,a.ref)();return t({reloadConversations:C,newChat:A,getCurrentAgentRuntime:D,getCurrentAgentKey:O,getActiveConversationId:()=>g.value,getHistoryMessages:()=>v.value,getConversations:()=>h.value,loadConversation:j,sendMessage:e=>R.value?.sendMessage(e),stop:()=>R.value?.stop()}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Dz,[u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`aside`,{key:0,class:(0,a.normalizeClass)([`agent-chat__sidebar`,{"is-open":d.value}])},[(0,a.createElementVNode)(`button`,{class:`agent-chat__close-btn`,"aria-label":`关闭侧边栏`,onClick:n[0]||=e=>d.value=!1},[(0,a.createVNode)((0,a.unref)(wu))]),(0,a.createElementVNode)(`div`,Oz,[n[5]||=(0,a.createElementVNode)(`span`,{class:`agent-chat__sidebar-title`},`历史会话`,-1),(0,a.createVNode)((0,a.unref)(th),{type:`text`,class:`agent-chat__new-btn`,disabled:p.value,onClick:A},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(Kg))]),default:(0,a.withCtx)(()=>[n[4]||=(0,a.createTextVNode)(` 新建 `,-1)]),_:1},8,[`disabled`])]),(0,a.createVNode)((0,a.unref)(uS),{value:f.value,"onUpdate:value":n[1]||=e=>f.value=e,placeholder:`搜索对话…`,"allow-clear":``,class:`agent-chat__search`},{prefix:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(Mu),{style:{color:`#94a3b8`}})]),_:1},8,[`value`]),p.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,kz,[(0,a.createVNode)((0,a.unref)(gu),{style:{"margin-right":`6px`}}),n[6]||=(0,a.createTextVNode)(`加载中… `,-1)])):m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Az,[(0,a.createVNode)((0,a.unref)(_D),{style:{"margin-right":`6px`}}),(0,a.createTextVNode)((0,a.toDisplayString)(m.value)+` `,1),(0,a.createVNode)((0,a.unref)(th),{size:`small`,type:`link`,onClick:C},{default:(0,a.withCtx)(()=>[...n[7]||=[(0,a.createTextVNode)(`重试`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(hF),{"active-key":g.value,items:S.value,class:`agent-chat__conv-list`,"on-active-change":j},null,8,[`active-key`,`items`])],2)):(0,a.createCommentVNode)(``,!0),d.value&&u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:1,class:`agent-chat__mask`,onClick:n[2]||=e=>d.value=!1})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,jz,[u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Mz,[(0,a.createVNode)((0,a.unref)(th),{class:`agent-chat__history-btn`,onClick:n[3]||=e=>d.value=!0},{default:(0,a.withCtx)(()=>[...n[8]||=[(0,a.createTextVNode)(` 历史会话`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)(Ez,{ref_key:`chatPanelRef`,ref:R,"agent-key":c.value,agents:i.agents,roles:L.value,"session-key":y.value,"initial-messages":v.value,title:M.value,subtitle:N.value,"empty-hint":e.emptyHint,"on-agent-event":i.onAgentEvent,class:`agent-chat__panel`,"onUpdate:agentKey":w,"onUpdate:agents":T,onReset:A},(0,a.createSlots)({_:2},[r[`header-actions`]?{name:`header-actions`,fn:(0,a.withCtx)(e=>[(0,a.renderSlot)(t.$slots,`header-actions`,(0,a.normalizeProps)((0,a.guardReactiveProps)(e)),void 0,!0)]),key:`0`}:void 0,r.message?{name:`message`,fn:(0,a.withCtx)(e=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(e)),void 0,!0)]),key:`1`}:void 0]),1032,[`agent-key`,`agents`,`roles`,`session-key`,`initial-messages`,`title`,`subtitle`,`empty-hint`,`on-agent-event`])])]))}}),[[`__scopeId`,`data-v-2041f5e6`]]);async function Pz(e){try{let t=await e.text(),n=JSON.parse(t);return typeof n?.message==`string`?n.message:typeof n?.error==`string`?n.error:t||`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}function Fz(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function Iz(e){if(!e.startsWith(`data:`))return null;let t=e.slice(5).trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}function Lz(e){let t=e.toLowerCase();return t.includes(`think`)||t.includes(`reasoning`)||t.includes(`思考`)}var Rz=class{constructor(){this.blocks=[]}addReasoning(e){let t=this.blocks[this.blocks.length-1];if(t&&t.type===`reasoning`){t.text+=e;return}this.blocks.push({type:`reasoning`,text:e})}addReply(e){let t=this.blocks[this.blocks.length-1];if(t&&t.type===`text`){t.text+=e;return}this.blocks.push({type:`text`,text:e})}addToolCall(e){return this.blocks.some(t=>t.type===`tool_call`&&t.toolCallId===e.toolCallId)?!1:(this.blocks.push(e),!0)}findToolCallBlock(e){return this.blocks.find(t=>t.type===`tool_call`&&t.toolCallId===e)}finish(){}reset(){this.blocks=[]}},zz=class extends o{constructor({endpoint:e,historyEndpoint:t,resumeEndpoint:n,user:r,app:i,initialUserContexts:a=[],requestHeaders:o={},prepareRequestBody:s}){super(),this.abortController=null,this.activeSubAgentCallId=``,this.conversationId=``,this.initialUserContexts=[],this.mainAccumulator=new Rz,this.pendingTaskArgs=new Map,this.prepareRequestBody=null,this.replyParts=[],this.requestHeaders={},this.resumeEndpoint=void 0,this.subAccumulator=null,this.thinkingParts=[],this.endpoint=e,this.historyEndpoint=t,this.user=r,this.app=i,this.resumeEndpoint=n,this.requestHeaders={...o},this.prepareRequestBody=s??null,this.setInitialUserContexts(a)}addInitialUserContext(e){let t=e.trim();t&&this.initialUserContexts.push(t)}async ask(e,t){let n=new AbortController;this.abortController=n,this.replyParts=[],this.thinkingParts=[],this.activeSubAgentCallId=``,this.pendingTaskArgs.clear(),this.mainAccumulator.reset(),this.subAccumulator=null;let r=this.initialUserContexts.length>0?`${this.initialUserContexts.join(`
349
349
 
350
- `)}\n\n${e}`:e;try{let e=this.buildRequestHeaders(),i={prompt:r,conversation_id:this.conversationId||null,user:this.user,app:this.app,attachments:t};this.prepareRequestBody&&(i=this.prepareRequestBody(i));let a=await fetch(this.endpoint,{method:`POST`,headers:e,body:JSON.stringify(i),signal:n.signal});if(!a.ok)throw Error(await Pz(a));let o=a.headers.get(`x-conversation-id`);o&&this.updateConversationId(o),await this.processSseStream(a)}catch(e){if(n.signal.aborted)return;throw Error(Fz(e))}finally{this.abortController===n&&(this.abortController=null)}}clearInitialUserContexts(){this.initialUserContexts=[]}async deleteConversation(e){if(!this.historyEndpoint)throw Error(`未配置 historyEndpoint`);try{let t=new URL(`${this.historyEndpoint}/threads/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n=await fetch(t.toString(),{method:`DELETE`});if(n.status===404)throw Error(`未找到会话: ${e}`);if(!n.ok)throw Error(await Pz(n))}catch(e){throw Error(Fz(e))}}getApp(){return this.app}async getConversationDetail(e,t){if(!this.historyEndpoint)return[];this.updateConversationId(e);let n;try{let t=new URL(`${this.historyEndpoint}/conversations/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let r=await fetch(t.toString());if(r.status===404)return[];if(!r.ok)throw Error(await Pz(r));n=await r.json()}catch(e){throw Error(Fz(e))}let r=[];for(let t of n.messages??[]){let n=t.type??t.role??``,i=u(t.content);if(i){if(n===`human`)r.push({key:`hist-${e}-u${r.length}`,role:`user`,content:i});else if(n===`ai`){let n=Lz(t.node??``);r.push({key:`hist-${e}-a${r.length}`,role:`ai`,content:n?``:i,thinkingContent:n?i:void 0})}}}return r}getConversationId(){return this.conversationId}getUser(){return this.user}async listConversations(e){if(!this.historyEndpoint)return{items:[],hasMore:!1};let t=new URL(`${this.historyEndpoint}/conversations`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n;try{let e=await fetch(t.toString());if(!e.ok)throw Error(await Pz(e));n=await e.json()}catch(e){throw Error(Fz(e))}return{items:n.map(e=>{let t=e.created_at?new Date(e.created_at).getTime():void 0;return{id:e.conversation_id,title:e.title||t?.toString()||`未命名会话`,createdAt:t&&!Number.isNaN(t)?t:void 0}}),hasMore:!1}}offConversationChange(e){this.off(`conversationChange`,e)}offInterrupt(e){this.off(`interrupt`,e)}onConversationChange(e){this.on(`conversationChange`,e)}onInterrupt(e){this.on(`interrupt`,e)}reset(){this.stop(),this.updateConversationId(``),this.replyParts=[],this.thinkingParts=[],this.activeSubAgentCallId=``,this.pendingTaskArgs.clear(),this.mainAccumulator.reset(),this.subAccumulator=null}async resume(e){this.abortController||=new AbortController;let t=this.abortController,n={decisions:e,conversation_id:this.conversationId};this.emit(`replyChange`,``,this.replyParts.join(``));try{let e=this.buildRequestHeaders();this.conversationId&&(e[`x-conversation-id`]=this.conversationId);let r=await fetch(this.resumeEndpoint||this.endpoint,{method:`POST`,headers:e,body:JSON.stringify(n),signal:t.signal});if(!r.ok)throw Error(await Pz(r));let i=r.headers.get(`x-conversation-id`);i&&this.updateConversationId(i),await this.processSseStream(r)}catch(e){if(t.signal.aborted)return;throw Error(Fz(e))}finally{this.abortController===t&&(this.abortController=null)}}setInitialUserContexts(e){this.initialUserContexts=e.map(e=>e.trim()).filter(Boolean)}setPrepareRequestBody(e){this.prepareRequestBody=e}setRequestHeaders(e){this.requestHeaders={...this.requestHeaders,...e}}setUser(e){this.user=e}stop(){this.abortController&&(this.abortController.abort(),this.abortController=null,this.emit(`stop`))}supportsHistory(){return!!this.historyEndpoint}buildRequestHeaders(){let e={"Content-Type":`application/json`,...this.requestHeaders};return this.user&&(e[`x-user`]=this.user),this.app&&(e[`x-app`]=this.app),e}checkAndHandleInterrupt(e){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__);for(let t of Object.values(e))if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__)}return!1}emitBlocksUpdate(){this.emit(`blocksUpdate`,[...this.mainAccumulator.blocks])}emitInterruptFromEntries(e){let t=e[0],n=typeof t.id==`string`?t.id:``;if(!n)return!1;let r=t.value,i=Array.isArray(r?.action_requests)?r.action_requests:[],a=Array.isArray(r?.review_configs)?r.review_configs:[];return this.emit(`interrupt`,{interrupt_id:n,action_requests:i.map(e=>({name:typeof e.name==`string`?e.name:``,args:e.args&&typeof e.args==`object`?e.args:{},description:typeof e.description==`string`?e.description:``})),review_configs:a.map(e=>({action_name:typeof e.action_name==`string`?e.action_name:``,allowed_decisions:Array.isArray(e.allowed_decisions)?e.allowed_decisions:[]}))}),!0}flushSubAccumulator(){if(!this.activeSubAgentCallId||!this.subAccumulator)return;this.subAccumulator.finish();let e=this.mainAccumulator.findToolCallBlock(this.activeSubAgentCallId);e&&(e.subAgentBlocks=[...this.subAccumulator.blocks]),this.subAccumulator=null,this.emitBlocksUpdate()}handleDonePacket(e){}handleFinalPacket(e){let t=Date.now();if(Array.isArray(e.tool_calls)&&e.tool_calls.length>0){let n=this.subAccumulator||this.mainAccumulator;for(let r=0;r<e.tool_calls.length;r++){let i=e.tool_calls[r],a=i.name||`unknown`,o=i.id||`${e.message_id}-tc-${r}`;this.emit(`toolCall`,{toolCallId:o,toolName:a,title:a,status:`success`,input:i.args,stepNumber:r,timestamp:t});let s=n.findToolCallBlock(o);if(s)s.durationMs=Date.now()-t,i.args&&(s.input=i.args);else{let e={type:`tool_call`,toolCallId:o,toolName:a,input:i.args,startedAt:t};n.addToolCall(e)}}this.emitBlocksUpdate();return}if((this.subAccumulator||this.mainAccumulator).finish(),this.replyParts.length===0&&Array.isArray(e.content)){let t=e.content.filter(e=>e.type===`text`).map(e=>e.text??``).join(``);t&&(this.replyParts.push(t),this.mainAccumulator.addReply(t),this.mainAccumulator.flushReplyBuf(),this.emit(`replyChange`,t,this.replyParts.join(``)))}this.emitBlocksUpdate(),this.checkAndHandleInterrupt(e)}handleMessagePacket(e){let t=typeof e.content==`string`?e.content:``;if(t){if(e.subagent&&this.activeSubAgentCallId){this.subAccumulator||=new Rz,this.subAccumulator.addReply(t),this.replyParts.push(t),this.emit(`replyChange`,t,this.replyParts.join(``)),this.emitBlocksUpdate();return}this.syncToMain(),this.mainAccumulator.addReply(t),this.replyParts.push(t),this.emit(`replyChange`,t,this.replyParts.join(``))}}handleReasoningPacket(e){let t=typeof e.content==`string`?e.content:``;if(t){if(e.subagent&&this.activeSubAgentCallId){this.subAccumulator||=new Rz,this.subAccumulator.addReasoning(t),this.thinkingParts.push(t),this.emit(`thinkingChange`,t,this.thinkingParts.join(``)),this.emitBlocksUpdate();return}this.syncToMain(),this.mainAccumulator.addReasoning(t),this.thinkingParts.push(t),this.emit(`thinkingChange`,t,this.thinkingParts.join(``))}}handleSseLine(e){let t=Iz(e);if(!t)return;let n=typeof t.thread_id==`string`?t.thread_id:``;if(n){this.updateConversationId(n);return}switch(typeof t.type==`string`?t.type:``){case`done`:this.handleDonePacket(t);break;case`final`:this.handleFinalPacket(t);break;case`message`:this.handleMessagePacket(t);break;case`reasoning`:this.handleReasoningPacket(t);break;case`tool_call`:this.handleToolCallPacket(t);break}}handleToolCallPacket(e){let t=e.data;if(!t||t.type!==`tool_call_chunk`)return;let n=t.name||`unknown`,r=t.id,i=Date.now();if(n!==`task`){if(t.index!==0)return;let e;try{e=JSON.parse(t.args||`{}`)}catch{e={raw:t.args}}(this.subAccumulator||this.mainAccumulator).addToolCall({type:`tool_call`,toolCallId:r,toolName:n,input:e,startedAt:i}),this.emitBlocksUpdate();return}let a=this.pendingTaskArgs.get(r)||``;if(this.pendingTaskArgs.set(r,a+(t.args||``)),t.index!==0)return;let o=this.pendingTaskArgs.get(r)||t.args||`{}`,s;try{s=JSON.parse(o)}catch{s={raw:o}}let c=typeof s?.subagent_type==`string`?s.subagent_type:n;this.flushSubAccumulator(),this.activeSubAgentCallId=r;let l=this.mainAccumulator.findToolCallBlock(r);if(l){l.subAgentType=String(c),l.input=s,l.subAgentContent??=``,this.emitBlocksUpdate();return}let u={type:`tool_call`,toolCallId:r,toolName:n,input:s,subAgentType:String(c),startedAt:i};this.mainAccumulator.addToolCall(u),this.emit(`toolCall`,{toolCallId:r,toolName:n,title:String(c),status:`running`,input:s,timestamp:i}),this.subAccumulator=new Rz,this.emitBlocksUpdate()}async processSseStream(e){if(!e.body)throw Error(`当前浏览器不支持读取流式响应`);let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{value:e,done:i}=await t.read();if(i)break;r+=n.decode(e,{stream:!0});let a=r.split(`
350
+ `)}\n\n${e}`:e;try{let e=this.buildRequestHeaders(),i={prompt:r,conversation_id:this.conversationId||null,user:this.user,app:this.app,attachments:t};this.prepareRequestBody&&(i=this.prepareRequestBody(i));let a=await fetch(this.endpoint,{method:`POST`,headers:e,body:JSON.stringify(i),signal:n.signal});if(!a.ok)throw Error(await Pz(a));let o=a.headers.get(`x-conversation-id`);o&&this.updateConversationId(o),await this.processSseStream(a)}catch(e){if(n.signal.aborted)return;throw Error(Fz(e))}finally{this.abortController===n&&(this.abortController=null)}}clearInitialUserContexts(){this.initialUserContexts=[]}async deleteConversation(e){if(!this.historyEndpoint)throw Error(`未配置 historyEndpoint`);try{let t=new URL(`${this.historyEndpoint}/threads/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n=await fetch(t.toString(),{method:`DELETE`});if(n.status===404)throw Error(`未找到会话: ${e}`);if(!n.ok)throw Error(await Pz(n))}catch(e){throw Error(Fz(e))}}getApp(){return this.app}async getConversationDetail(e,t){if(!this.historyEndpoint)return[];this.updateConversationId(e);let n;try{let t=new URL(`${this.historyEndpoint}/conversations/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let r=await fetch(t.toString());if(r.status===404)return[];if(!r.ok)throw Error(await Pz(r));n=await r.json()}catch(e){throw Error(Fz(e))}let r=[];for(let t of n.messages??[]){let n=t.type??t.role??``,i=u(t.content);if(i){if(n===`human`)r.push({key:`hist-${e}-u${r.length}`,role:`user`,content:i});else if(n===`ai`){let n=Lz(t.node??``);r.push({key:`hist-${e}-a${r.length}`,role:`ai`,content:n?``:i,thinkingContent:n?i:void 0})}}}return r}getConversationId(){return this.conversationId}getUser(){return this.user}async listConversations(e){if(!this.historyEndpoint)return{items:[],hasMore:!1};let t=new URL(`${this.historyEndpoint}/conversations`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n;try{let e=await fetch(t.toString());if(!e.ok)throw Error(await Pz(e));n=await e.json()}catch(e){throw Error(Fz(e))}return{items:n.map(e=>{let t=e.created_at?new Date(e.created_at).getTime():void 0;return{id:e.conversation_id,title:e.title||t?.toString()||`未命名会话`,createdAt:t&&!Number.isNaN(t)?t:void 0}}),hasMore:!1}}offConversationChange(e){this.off(`conversationChange`,e)}offInterrupt(e){this.off(`interrupt`,e)}onConversationChange(e){this.on(`conversationChange`,e)}onInterrupt(e){this.on(`interrupt`,e)}reset(){this.stop(),this.updateConversationId(``),this.replyParts=[],this.thinkingParts=[],this.activeSubAgentCallId=``,this.pendingTaskArgs.clear(),this.mainAccumulator.reset(),this.subAccumulator=null}async resume(e){this.abortController||=new AbortController;let t=this.abortController,n={decisions:e,conversation_id:this.conversationId};this.emit(`replyChange`,``,this.replyParts.join(``));try{let e=this.buildRequestHeaders();this.conversationId&&(e[`x-conversation-id`]=this.conversationId);let r=await fetch(this.resumeEndpoint||this.endpoint,{method:`POST`,headers:e,body:JSON.stringify(n),signal:t.signal});if(!r.ok)throw Error(await Pz(r));let i=r.headers.get(`x-conversation-id`);i&&this.updateConversationId(i),await this.processSseStream(r)}catch(e){if(t.signal.aborted)return;throw Error(Fz(e))}finally{this.abortController===t&&(this.abortController=null)}}setInitialUserContexts(e){this.initialUserContexts=e.map(e=>e.trim()).filter(Boolean)}setPrepareRequestBody(e){this.prepareRequestBody=e}setRequestHeaders(e){this.requestHeaders={...this.requestHeaders,...e}}setUser(e){this.user=e}stop(){this.abortController&&(this.abortController.abort(),this.abortController=null,this.emit(`stop`))}supportsHistory(){return!!this.historyEndpoint}buildRequestHeaders(){let e={"Content-Type":`application/json`,...this.requestHeaders};return this.user&&(e[`x-user`]=this.user),this.app&&(e[`x-app`]=this.app),e}checkAndHandleInterrupt(e){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__);for(let t of Object.values(e))if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__)}return!1}emitBlocksUpdate(){if(this.activeSubAgentCallId&&this.subAccumulator){let e=this.mainAccumulator.findToolCallBlock(this.activeSubAgentCallId);e&&(e.subAgentBlocks=[...this.subAccumulator.blocks])}this.emit(`blocksUpdate`,[...this.mainAccumulator.blocks])}emitInterruptFromEntries(e){let t=e[0],n=typeof t.id==`string`?t.id:``;if(!n)return!1;let r=t.value,i=Array.isArray(r?.action_requests)?r.action_requests:[],a=Array.isArray(r?.review_configs)?r.review_configs:[];return this.emit(`interrupt`,{interrupt_id:n,action_requests:i.map(e=>({name:typeof e.name==`string`?e.name:``,args:e.args&&typeof e.args==`object`?e.args:{},description:typeof e.description==`string`?e.description:``})),review_configs:a.map(e=>({action_name:typeof e.action_name==`string`?e.action_name:``,allowed_decisions:Array.isArray(e.allowed_decisions)?e.allowed_decisions:[]}))}),!0}flushSubAccumulator(){if(!this.activeSubAgentCallId||!this.subAccumulator)return;this.subAccumulator.finish();let e=this.mainAccumulator.findToolCallBlock(this.activeSubAgentCallId);e&&(e.subAgentBlocks=[...this.subAccumulator.blocks]),this.subAccumulator=null,this.emitBlocksUpdate()}handleDonePacket(e){}handleFinalPacket(e){let t=Date.now();if(Array.isArray(e.tool_calls)&&e.tool_calls.length>0){let n=this.subAccumulator||this.mainAccumulator;for(let r=0;r<e.tool_calls.length;r++){let i=e.tool_calls[r],a=i.name||`unknown`,o=i.id||`${e.message_id}-tc-${r}`;this.emit(`toolCall`,{toolCallId:o,toolName:a,title:a,status:`success`,input:i.args,stepNumber:r,timestamp:t});let s=n.findToolCallBlock(o);if(s)s.durationMs=Date.now()-t,i.args&&(s.input=i.args);else{let e={type:`tool_call`,toolCallId:o,toolName:a,input:i.args,startedAt:t};n.addToolCall(e)}}this.emitBlocksUpdate();return}if((this.subAccumulator||this.mainAccumulator).finish(),this.replyParts.length===0&&Array.isArray(e.content)){let t=e.content.filter(e=>e.type===`text`).map(e=>e.text??``).join(``);t&&(this.replyParts.push(t),this.mainAccumulator.addReply(t),this.emit(`replyChange`,t,this.replyParts.join(``)))}this.emitBlocksUpdate(),this.checkAndHandleInterrupt(e)}handleMessagePacket(e){let t=typeof e.content==`string`?e.content:``;if(t){if(e.subagent&&this.activeSubAgentCallId){this.subAccumulator||=new Rz,this.subAccumulator.addReply(t),this.replyParts.push(t),this.emit(`replyChange`,t,this.replyParts.join(``)),this.emitBlocksUpdate();return}this.syncToMain(),this.mainAccumulator.addReply(t),this.replyParts.push(t),this.emit(`replyChange`,t,this.replyParts.join(``)),this.emitBlocksUpdate()}}handleReasoningPacket(e){let t=typeof e.content==`string`?e.content:``;if(t){if(e.subagent&&this.activeSubAgentCallId){this.subAccumulator||=new Rz,this.subAccumulator.addReasoning(t),this.thinkingParts.push(t),this.emit(`thinkingChange`,t,this.thinkingParts.join(``)),this.emitBlocksUpdate();return}this.syncToMain(),this.mainAccumulator.addReasoning(t),this.thinkingParts.push(t),this.emit(`thinkingChange`,t,this.thinkingParts.join(``)),this.emitBlocksUpdate()}}handleSseLine(e){let t=Iz(e);if(!t)return;let n=typeof t.thread_id==`string`?t.thread_id:``;if(n){this.updateConversationId(n);return}switch(typeof t.type==`string`?t.type:``){case`done`:this.handleDonePacket(t);break;case`final`:this.handleFinalPacket(t);break;case`message`:this.handleMessagePacket(t);break;case`reasoning`:this.handleReasoningPacket(t);break;case`tool_call`:this.handleToolCallPacket(t);break}}handleToolCallPacket(e){let t=e.data;if(!t||t.type!==`tool_call_chunk`)return;let n=t.name||`unknown`,r=t.id,i=Date.now();if(n!==`task`){if(t.index!==0)return;let e;try{e=JSON.parse(t.args||`{}`)}catch{e={raw:t.args}}(this.subAccumulator||this.mainAccumulator).addToolCall({type:`tool_call`,toolCallId:r,toolName:n,input:e,startedAt:i}),this.emitBlocksUpdate();return}let a=this.pendingTaskArgs.get(r)||``;if(this.pendingTaskArgs.set(r,a+(t.args||``)),t.index!==0)return;let o=this.pendingTaskArgs.get(r)||t.args||`{}`,s;try{s=JSON.parse(o)}catch{s={raw:o}}let c=typeof s?.subagent_type==`string`?s.subagent_type:n;this.flushSubAccumulator(),this.activeSubAgentCallId=r;let l=this.mainAccumulator.findToolCallBlock(r);if(l){l.subAgentType=String(c),l.input=s,l.subAgentContent??=``,this.emitBlocksUpdate();return}let u={type:`tool_call`,toolCallId:r,toolName:n,input:s,subAgentType:String(c),startedAt:i};this.mainAccumulator.addToolCall(u),this.emit(`toolCall`,{toolCallId:r,toolName:n,title:String(c),status:`running`,input:s,timestamp:i}),this.subAccumulator=new Rz,this.emitBlocksUpdate()}async processSseStream(e){if(!e.body)throw Error(`当前浏览器不支持读取流式响应`);let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{value:e,done:i}=await t.read();if(i)break;r+=n.decode(e,{stream:!0});let a=r.split(`
351
351
  `);r=a.pop()||``;for(let e of a){let t=e.trim();t&&this.handleSseLine(t)}}r.trim()&&this.handleSseLine(r.trim())}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;throw e}finally{try{t.cancel()}catch{}}}syncToMain(){this.flushSubAccumulator()}updateConversationId(e){this.conversationId!==e&&(this.conversationId=e,this.emit(`conversationChange`,e))}};exports.AI_SDK_AIMessage=l,exports.AI_SDK_Save_AIMessage=_,exports.AgentChat=Nz,exports.AgentPicker=qI,exports.ChatPanel=Ez,exports.Dify_SDK_AIMessage=GD,exports.Langchain_py_AIMessage=BI,exports.Langchain_py_AIMessage_V3=zz,exports.SaveModuleDocsRenderer=rz,exports.StreamMarkdown=nL,exports.SubAgentNode=UL,exports.ToolCallNode=kL,exports.WriteTodosTopPanel=uz,exports.convertConversationDetail=b,exports.convertHistoryRecord=y,exports.defaultToolRenderers=iz,exports.extractTextContent=u,exports.parseOpenAIAssistantToolCalls=p,exports.parseToolCallInput=d,exports.toInputPreview=f;
package/dist/index.mjs CHANGED
@@ -30513,7 +30513,7 @@ var DR = class extends at {
30513
30513
  }
30514
30514
  return !1;
30515
30515
  }
30516
- if (e.event === "updates") return this.checkAndHandleInterrupt(n.data);
30516
+ if (e.event === "updates") return this.emit("updates", n.data), this.checkAndHandleInterrupt(n.data);
30517
30517
  if (e.event === "error") {
30518
30518
  let e = typeof n.message == "string" && n.message ? n.message : "流式请求失败";
30519
30519
  throw Error(e);
@@ -31366,7 +31366,7 @@ var DR = class extends at {
31366
31366
  ], 64))])) : F("", !0)
31367
31367
  ])) : F("", !0)], 2));
31368
31368
  }
31369
- }), [["__scopeId", "data-v-a4e5e40d"]]), _z = { class: "sub-agent-node__prefix" }, vz = { class: "sub-agent-node__name" }, yz = {
31369
+ }), [["__scopeId", "data-v-c4d46f41"]]), _z = { class: "sub-agent-node__prefix" }, vz = { class: "sub-agent-node__name" }, yz = {
31370
31370
  key: 0,
31371
31371
  class: "sub-agent-node__body"
31372
31372
  }, bz = { class: "think-node__layout" }, xz = { class: "think-node__header" }, Sz = { class: "think-node__header-main" }, Cz = { class: "think-node__prefix" }, wz = {
@@ -31679,7 +31679,7 @@ var DR = class extends at {
31679
31679
  "custom-components"
31680
31680
  ])) : F("", !0)], 64))), 128))], 64));
31681
31681
  }
31682
- }), [["__scopeId", "data-v-8ed3e6de"]]), Hz = class extends Error {
31682
+ }), [["__scopeId", "data-v-4bb03a95"]]), Hz = class extends Error {
31683
31683
  constructor(e, t) {
31684
31684
  super(`${e} at position ${t}`), this.position = t;
31685
31685
  }
@@ -33082,37 +33082,39 @@ function wV(e) {
33082
33082
  }
33083
33083
  var TV = class {
33084
33084
  constructor() {
33085
- this.blocks = [], this.reasoningBuf = "", this.replyBuf = "";
33085
+ this.blocks = [];
33086
33086
  }
33087
33087
  addReasoning(e) {
33088
- this.reasoningBuf += e;
33088
+ let t = this.blocks[this.blocks.length - 1];
33089
+ if (t && t.type === "reasoning") {
33090
+ t.text += e;
33091
+ return;
33092
+ }
33093
+ this.blocks.push({
33094
+ type: "reasoning",
33095
+ text: e
33096
+ });
33089
33097
  }
33090
33098
  addReply(e) {
33091
- this.flushReasoningBuf(), this.replyBuf += e;
33099
+ let t = this.blocks[this.blocks.length - 1];
33100
+ if (t && t.type === "text") {
33101
+ t.text += e;
33102
+ return;
33103
+ }
33104
+ this.blocks.push({
33105
+ type: "text",
33106
+ text: e
33107
+ });
33092
33108
  }
33093
33109
  addToolCall(e) {
33094
- return this.blocks.some((t) => t.type === "tool_call" && t.toolCallId === e.toolCallId) ? !1 : (this.flushReasoningBuf(), this.blocks.push(e), !0);
33110
+ return this.blocks.some((t) => t.type === "tool_call" && t.toolCallId === e.toolCallId) ? !1 : (this.blocks.push(e), !0);
33095
33111
  }
33096
33112
  findToolCallBlock(e) {
33097
33113
  return this.blocks.find((t) => t.type === "tool_call" && t.toolCallId === e);
33098
33114
  }
33099
- finish() {
33100
- this.flushReasoningBuf(), this.flushReplyBuf();
33101
- }
33102
- flushReplyBuf() {
33103
- this.replyBuf &&= (this.blocks.push({
33104
- type: "text",
33105
- text: this.replyBuf
33106
- }), "");
33107
- }
33115
+ finish() {}
33108
33116
  reset() {
33109
- this.blocks = [], this.reasoningBuf = "", this.replyBuf = "";
33110
- }
33111
- flushReasoningBuf() {
33112
- this.reasoningBuf &&= (this.blocks.push({
33113
- type: "reasoning",
33114
- text: this.reasoningBuf
33115
- }), "");
33117
+ this.blocks = [];
33116
33118
  }
33117
33119
  }, EV = class extends at {
33118
33120
  constructor({ endpoint: e, historyEndpoint: t, resumeEndpoint: n, user: r, app: i, initialUserContexts: a = [], requestHeaders: o = {}, prepareRequestBody: s }) {
@@ -33317,6 +33319,10 @@ var TV = class {
33317
33319
  return !1;
33318
33320
  }
33319
33321
  emitBlocksUpdate() {
33322
+ if (this.activeSubAgentCallId && this.subAccumulator) {
33323
+ let e = this.mainAccumulator.findToolCallBlock(this.activeSubAgentCallId);
33324
+ e && (e.subAgentBlocks = [...this.subAccumulator.blocks]);
33325
+ }
33320
33326
  this.emit("blocksUpdate", [...this.mainAccumulator.blocks]);
33321
33327
  }
33322
33328
  emitInterruptFromEntries(e) {
@@ -33376,7 +33382,7 @@ var TV = class {
33376
33382
  }
33377
33383
  if ((this.subAccumulator || this.mainAccumulator).finish(), this.replyParts.length === 0 && Array.isArray(e.content)) {
33378
33384
  let t = e.content.filter((e) => e.type === "text").map((e) => e.text ?? "").join("");
33379
- t && (this.replyParts.push(t), this.mainAccumulator.addReply(t), this.mainAccumulator.flushReplyBuf(), this.emit("replyChange", t, this.replyParts.join("")));
33385
+ t && (this.replyParts.push(t), this.mainAccumulator.addReply(t), this.emit("replyChange", t, this.replyParts.join("")));
33380
33386
  }
33381
33387
  this.emitBlocksUpdate(), this.checkAndHandleInterrupt(e);
33382
33388
  }
@@ -33387,7 +33393,7 @@ var TV = class {
33387
33393
  this.subAccumulator ||= new TV(), this.subAccumulator.addReply(t), this.replyParts.push(t), this.emit("replyChange", t, this.replyParts.join("")), this.emitBlocksUpdate();
33388
33394
  return;
33389
33395
  }
33390
- this.syncToMain(), this.mainAccumulator.addReply(t), this.replyParts.push(t), this.emit("replyChange", t, this.replyParts.join(""));
33396
+ this.syncToMain(), this.mainAccumulator.addReply(t), this.replyParts.push(t), this.emit("replyChange", t, this.replyParts.join("")), this.emitBlocksUpdate();
33391
33397
  }
33392
33398
  }
33393
33399
  handleReasoningPacket(e) {
@@ -33397,7 +33403,7 @@ var TV = class {
33397
33403
  this.subAccumulator ||= new TV(), this.subAccumulator.addReasoning(t), this.thinkingParts.push(t), this.emit("thinkingChange", t, this.thinkingParts.join("")), this.emitBlocksUpdate();
33398
33404
  return;
33399
33405
  }
33400
- this.syncToMain(), this.mainAccumulator.addReasoning(t), this.thinkingParts.push(t), this.emit("thinkingChange", t, this.thinkingParts.join(""));
33406
+ this.syncToMain(), this.mainAccumulator.addReasoning(t), this.thinkingParts.push(t), this.emit("thinkingChange", t, this.thinkingParts.join("")), this.emitBlocksUpdate();
33401
33407
  }
33402
33408
  }
33403
33409
  handleSseLine(e) {
package/dist/style.css CHANGED
@@ -1,2 +1,2 @@
1
- .agent-picker-wrap[data-v-69e639be]{align-items:center;display:inline-flex}.agent-picker-label[data-v-69e639be]{color:var(--text-color,#262626);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:4px;padding:2px 4px;font-size:13px;line-height:1;transition:background .15s;display:inline-flex}.agent-picker-label[data-v-69e639be]:hover{background:var(--bg-color-secondary,#f5f5f5)}.agent-picker-label--disabled[data-v-69e639be]{cursor:not-allowed;opacity:.5}.agent-picker-label--disabled[data-v-69e639be]:hover{background:0 0}.agent-picker-arrow[data-v-69e639be]{color:var(--text-color-secondary,#8c8c8c);font-size:10px;transition:transform .15s}.agent-picker-menu[data-v-69e639be]{min-width:180px;max-width:280px}.agent-menu-item[data-v-69e639be]{justify-content:space-between;align-items:center;gap:6px;width:100%;display:flex}.agent-menu-label[data-v-69e639be]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.is-active .agent-menu-label[data-v-69e639be]{color:var(--primary-color,#1677ff);font-weight:600}.agent-menu-edit[data-v-69e639be]{color:var(--primary-color,#1677ff);border-radius:2px;flex-shrink:0;padding:2px 4px;font-size:12px;transition:background .15s}.agent-menu-edit[data-v-69e639be]:hover{background:var(--primary-color-bg,#e6f4ff)}.agent-menu-del[data-v-69e639be]{color:var(--error-color,#ff4d4f);border-radius:2px;flex-shrink:0;padding:2px 4px;font-size:12px;transition:background .15s}.agent-menu-del[data-v-69e639be]:hover{background:var(--error-color-bg,#fff2f0)}.agent-menu-add[data-v-69e639be]{color:var(--primary-color,#1677ff)}.think-node[data-v-5a2f210e]{margin:6px 0}.think-node__layout[data-v-5a2f210e]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-5a2f210e]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-5a2f210e]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-5a2f210e]{flex:none;align-items:center;gap:6px;padding-top:1px;display:inline-flex}.think-node__prefix-icon[data-v-5a2f210e]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node.is-thinking .think-node__prefix[data-v-5a2f210e],.think-node.is-thinking .think-node__toggle[data-v-5a2f210e]{color:var(--primary-color,#1677ff)}.think-node__prefix-icon.is-spinning[data-v-5a2f210e]{animation:1s linear infinite think-node-spin-5a2f210e}.think-node__content[data-v-5a2f210e]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;position:relative}.think-node__content--inline[data-v-5a2f210e]{flex:1}.think-node__content.is-collapsed[data-v-5a2f210e]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-5a2f210e]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-5a2f210e]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;margin-top:2px;padding:8px 10px 8px 28px;overflow-y:auto}.think-node__toggle[data-v-5a2f210e]{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:4px;min-height:20px;padding:2px 6px;font-size:12px;line-height:1;transition:background-color .2s,color .2s;display:inline-flex}.think-node__toggle[data-v-5a2f210e]:hover{background:color-mix(in srgb, var(--primary-color,#1677ff) 8%, transparent);color:color-mix(in srgb, var(--primary-color,#1677ff) 86%, #000)}.think-node__toggle[data-v-5a2f210e]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 20%, transparent);outline-offset:2px;border-radius:4px}.think-node__toggle-icon[data-v-5a2f210e]{font-size:12px}@keyframes think-node-spin-5a2f210e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.blockquote[data-v-6d8bbd17]{border-left:.25rem solid var(--blockquote-border-color,#e2e8f0);quotes:"“" "”" "‘" "’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em;font-style:italic;font-weight:500}.blockquote[data-v-6d8bbd17] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.checkbox-node[data-v-8dc6c46f]{vertical-align:middle;margin-right:.5rem}.checkbox-input[data-v-8dc6c46f]{cursor:default;margin:0}.definition-list[data-v-f88691d6]{margin:0 0 1rem}.definition-term[data-v-f88691d6]{margin-top:.5rem;font-weight:600}.definition-desc[data-v-f88691d6]{margin-bottom:.5rem;margin-left:1rem}.definition-list[data-v-f88691d6] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.emoji-node[data-v-de55dc97]{display:inline-block}.footnote-reference[data-v-01af0fee]{font-size:.75em;line-height:0}.footnote-link[data-v-01af0fee]{color:#0366d6;text-decoration:none}.footnote-link[data-v-01af0fee]:hover{text-decoration:underline}.html-inline-node[data-v-71cd1a9f]{display:inline}.html-inline-node--loading[data-v-71cd1a9f]{opacity:.85}code[data-v-ffb68151]{color:hsl(var(--foreground));background-color:hsl(var(--secondary));border:1px solid hsl(var(--border) / .9)}.inline-code-stream-delta[data-v-ffb68151]{animation-duration:var(--stream-update-fade-duration,var(--typewriter-fade-duration,.9s));animation-timing-function:var(--stream-update-fade-ease,var(--typewriter-fade-ease,ease-out));will-change:opacity;animation-fill-mode:both}.inline-code-stream-delta--a[data-v-ffb68151]{animation-name:inline-code-stream-update-fade-a-ffb68151}.inline-code-stream-delta--b[data-v-ffb68151]{animation-name:inline-code-stream-update-fade-b-ffb68151}@keyframes inline-code-stream-update-fade-a-ffb68151{0%{opacity:0}to{opacity:1}}@keyframes inline-code-stream-update-fade-b-ffb68151{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.inline-code-stream-delta[data-v-ffb68151]{animation:none!important}}.tooltip-enter-from[data-v-d524cc01]{opacity:0;transform:translateY(-6px)scale(.98)}.tooltip-enter-to[data-v-d524cc01],.tooltip-leave-from[data-v-d524cc01]{opacity:1;transform:translateY(0)scale(1)}.tooltip-leave-to[data-v-d524cc01]{opacity:0;transform:translateY(-6px)scale(.98)}.tooltip-enter-active[data-v-d524cc01],.tooltip-leave-active[data-v-d524cc01]{transition:opacity .12s linear}.tooltip-element[data-v-d524cc01]{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1)}.image-node__img[data-v-03adbc6f],.placeholder-layer[data-v-03adbc6f]{max-width:24rem}.image-node__img--inline[data-v-03adbc6f]{vertical-align:middle;display:inline-block;-o-object-fit:initial!important;object-fit:initial!important;width:auto!important;height:auto!important;min-height:0!important}.placeholder-layer--inline[data-v-03adbc6f]{min-height:auto!important}.image-node__error--inline[data-v-03adbc6f]{vertical-align:middle;display:inline-flex}.img-switch-enter-active[data-v-03adbc6f],.img-switch-leave-active[data-v-03adbc6f]{transition:opacity .22s,transform .22s}.img-switch-enter-from[data-v-03adbc6f],.img-switch-leave-to[data-v-03adbc6f]{opacity:0;transform:translateY(6px)}.img-switch-enter-to[data-v-03adbc6f],.img-switch-leave-from[data-v-03adbc6f]{opacity:1;transform:translateY(0)}.placeholder-layer[data-v-03adbc6f]{will-change:transform,opacity}@media (prefers-reduced-motion:reduce){.spinner[data-v-03adbc6f]{animation:none!important}.img-switch-enter-active[data-v-03adbc6f],.img-switch-leave-active[data-v-03adbc6f]{transition:none!important}}.text-node[data-v-03641323]{font-weight:inherit;vertical-align:baseline;display:inline}.text-node-center[data-v-03641323]{justify-content:center;width:100%;display:inline-flex}.text-node-stream-delta[data-v-03641323]{animation-duration:var(--stream-update-fade-duration,var(--typewriter-fade-duration,.9s));animation-timing-function:var(--stream-update-fade-ease,var(--typewriter-fade-ease,ease-out));will-change:opacity;animation-fill-mode:both}.text-node-stream-delta--a[data-v-03641323]{animation-name:text-node-stream-update-fade-a-03641323}.text-node-stream-delta--b[data-v-03641323]{animation-name:text-node-stream-update-fade-b-03641323}@keyframes text-node-stream-update-fade-a-03641323{0%{opacity:0}to{opacity:1}}@keyframes text-node-stream-update-fade-b-03641323{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.text-node-stream-delta[data-v-03641323]{animation:none!important}}.superscript-node[data-v-6dc1e3ba]{vertical-align:super;font-size:.8em}.subscript-node[data-v-69de9b81]{vertical-align:sub;font-size:.8em}.strong-node[data-v-af3ce037]{font-weight:700}.strikethrough-node[data-v-904d5bd1]{text-decoration:line-through}.link-node[data-v-a4831c9e]{color:var(--link-color,#0366d6);text-decoration:none}.link-node[data-v-a4831c9e]:hover{text-underline-offset:.2rem;text-decoration:underline}.link-loading .link-text-wrapper[data-v-a4831c9e]{position:relative}.link-loading[data-v-a4831c9e]{color:var(--link-color,#0366d6)}.link-loading .link-text[data-v-a4831c9e]{z-index:2;position:relative}.link-loading-indicator[data-v-a4831c9e]{height:var(--underline-height,2px);left:0;right:0;bottom:var(--underline-bottom,-3px);will-change:opacity;opacity:var(--underline-rest-opacity,.18);animation:underlinePulse-a4831c9e var(--underline-duration,1.6s) var(--underline-timing,ease-in-out) var(--underline-iteration,infinite);background:currentColor;border-radius:999px;position:absolute}@keyframes underlinePulse-a4831c9e{0%,to{opacity:var(--underline-rest-opacity,.18)}50%{opacity:var(--underline-opacity,.35)}}@media (prefers-reduced-motion:reduce){.link-loading-indicator[data-v-a4831c9e]{opacity:var(--underline-rest-opacity,.18);animation:none}}.insert-node[data-v-ab1ec9bc]{text-decoration:underline}.highlight-node[data-v-38e31bf6]{background-color:#ff0;padding:0 .2rem}.emphasis-node[data-v-8264674d]{font-style:italic}.footnote-anchor[data-v-4756ce0d]{margin-left:.5rem}.markstream-vue [class*=footnote-] .markdown-renderer,.markstream-vue .flex-1 .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.hard-break[data-v-50c58f70]{display:block}.heading-node[data-v-ffb7cf51]{font-weight:500;line-height:1.25}hr+.heading-node[data-v-ffb7cf51]{margin-top:0}.heading-1[data-v-ffb7cf51]{margin-top:0;margin-bottom:.888889em;font-size:2.25rem;font-weight:800;line-height:1.11111}.heading-2[data-v-ffb7cf51]{margin-top:2rem;margin-bottom:1rem;font-size:1.5rem;font-weight:700;line-height:1.33333}.heading-3[data-v-ffb7cf51]{margin-top:1.6em;margin-bottom:.6em;font-size:1.25rem;font-weight:600;line-height:1.66667}.heading-4[data-v-ffb7cf51]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}.heading-5[data-v-ffb7cf51],.heading-6[data-v-ffb7cf51]{margin:0;font-size:1rem;line-height:1.5rem}ol>.list-item[data-v-ce59e808]::marker{color:var(--list-item-counter-marker,#64748b);line-height:1.6}ul>.list-item[data-v-ce59e808]::marker{color:var(--list-item-marker,#cbd5e1)}.list-item[data-v-ce59e808] .markdown-renderer{content-visibility:visible;contain-intrinsic-size:0px 0px;contain:none}.list-node[data-v-8e81cbc8]{margin-top:1.25rem;margin-bottom:1.25rem;padding-left:1.625em}.list-decimal[data-v-8e81cbc8]{list-style-type:decimal}.list-disc[data-v-8e81cbc8]{list-style-type:disc}@media not all and (width>=1024px){.list-disc[data-v-8e81cbc8]{margin-top:1.33333em;margin-bottom:1.33333em;padding-left:1.55556em}}.html-block-node__raw[data-v-b7cace40]{white-space:pre-wrap;overflow-wrap:anywhere;opacity:.85}.html-block-node__placeholder[data-v-b7cace40]{flex-direction:column;gap:.35rem;padding:.5rem 0;display:flex}.html-block-node__placeholder-bar[data-v-b7cace40]{background-image:linear-gradient(90deg,#94a3b859,#94a3b81a,#94a3b859);background-size:200% 100%;border-radius:9999px;height:.8rem;animation:1.2s infinite html-block-node-shimmer-b7cace40;display:block}@keyframes html-block-node-shimmer-b7cace40{0%{background-position:0 0}to{background-position:200% 0}}.paragraph-node[data-v-944f1fd5]{margin:1.25em 0}li .paragraph-node[data-v-944f1fd5]{margin:0}.markstream-vue pre[class^=language-],.markstream-vue pre[class*=\ language-]{white-space:pre;tab-size:2;font-variant-ligatures:none;contain:content;backface-visibility:hidden;-webkit-font-smoothing:antialiased;overflow:auto;transform:translateZ(0)}.markstream-vue pre[class^=language-]>code,.markstream-vue pre[class*=\ language-]>code{display:block}.markstream-vue pre[class^=language-]:focus,.markstream-vue pre[class*=\ language-]:focus{outline:2px solid var(--vmdr-focus,#3b82f6);outline-offset:2px}.table-node-wrapper[data-v-369096fa]{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-gutter:stable;max-width:100%;position:relative;overflow-x:auto}.table-node[data-v-369096fa]{table-layout:fixed;border-collapse:collapse;width:100%}.table-node[data-v-369096fa] th,.table-node[data-v-369096fa] td{white-space:normal;overflow-wrap:break-word;word-break:normal}.table-node--loading tbody td[data-v-369096fa]{position:relative;overflow:hidden}.table-node--loading tbody td[data-v-369096fa]>*{visibility:hidden}.table-node--loading tbody td[data-v-369096fa]:after{content:"";will-change:background-position;background:linear-gradient(90deg,#94a3b829 25%,#94a3b847,#94a3b829 75%) 0 0/200% 100%;border-radius:.25rem;animation:1.2s linear infinite table-node-shimmer-369096fa;position:absolute;inset:0}.table-node__loading[data-v-369096fa]{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.table-node__spinner[data-v-369096fa]{will-change:transform;border:2px solid #5e687940;border-top-color:#5e6879cc;border-radius:9999px;width:2.5rem;height:2.5rem}.table-node-fade-enter-active[data-v-369096fa],.table-node-fade-leave-active[data-v-369096fa]{transition:opacity .18s}.table-node-fade-enter-from[data-v-369096fa],.table-node-fade-leave-to[data-v-369096fa]{opacity:0}[data-v-369096fa] .table-node .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px;display:contents}[data-v-369096fa] .table-node .markdown-renderer .node-slot,[data-v-369096fa] .table-node .markdown-renderer .node-content,[data-v-369096fa] .table-node .markdown-renderer .node-space{display:contents}[data-v-369096fa] .table-node .text-node,[data-v-369096fa] .table-node code{white-space:inherit;overflow-wrap:inherit;word-break:inherit;max-width:none}@keyframes table-node-shimmer-369096fa{0%{background-position:0 0}50%{background-position:100% 0}to{background-position:200% 0}}.hr+.table-node-wrapper[data-v-369096fa],.hr+.table-node-wrapper .table-node[data-v-369096fa]{margin-top:0}.sr-only[data-v-369096fa]{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hr-node[data-v-639cbad9]{border-top-width:1px;border-color:var(--hr-border-color,#e2e8f0);margin-top:3rem;margin-bottom:3rem}.vmr-container[data-v-a88d22ce]{border-width:1px 1px 1px 4px;border-radius:.5rem;margin-top:1rem;margin-bottom:1rem;padding:1rem}.code-block-container[data-v-2e273ed5]{contain:content}.code-block-content[data-v-2e273ed5]{max-height:min(70vh,500px);font-family:var(--vscode-editor-font-family,"Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);line-height:var(--vscode-editor-line-height,1.5);transition:max-height .3s;overflow:auto}.code-block-render[data-v-2e273ed5]{min-height:1px}[data-v-2e273ed5] .code-block-render pre,[data-v-2e273ed5] .code-block-content .shiki{font-family:inherit;font-size:inherit;line-height:inherit}[data-v-2e273ed5] .code-block-content .shiki-fallback{color:inherit;white-space:pre;font-family:inherit;font-size:inherit;line-height:inherit;background:0 0;margin:0;padding:1rem}.code-fallback-plain[data-v-2e273ed5]{white-space:pre;color:inherit;font-size:inherit;line-height:inherit;background:0 0;font-family:inherit;overflow:auto}[data-v-2e273ed5] .code-block-content pre{padding:1rem}.code-action-btn[data-v-2e273ed5]{cursor:pointer;opacity:.7;transition:opacity .2s}.code-action-btn[data-v-2e273ed5]:hover{opacity:1}.code-action-btn[data-v-2e273ed5]:disabled{opacity:.3;cursor:not-allowed}.code-loading-placeholder[data-v-2e273ed5]{min-height:120px;padding:1rem}.loading-skeleton[data-v-2e273ed5]{flex-direction:column;gap:.75rem;display:flex}.skeleton-line[data-v-2e273ed5]{background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%) 0 0/400% 100%;border-radius:.25rem;height:1rem;animation:1.2s ease-in-out infinite code-skeleton-shimmer-2e273ed5}.code-block-container.is-dark .skeleton-line[data-v-2e273ed5]{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%) 0 0/400% 100%}.skeleton-line.short[data-v-2e273ed5]{width:60%}@keyframes code-skeleton-shimmer-2e273ed5{0%{background-position:100% 0}to{background-position:0 0}}.markdown-renderer[data-v-7e76e4d7]{contain:layout;content-visibility:auto;contain-intrinsic-size:800px 600px;position:relative}.markdown-renderer.virtualized[data-v-7e76e4d7]{content-visibility:visible;contain-intrinsic-size:auto}.height-estimation-probes[data-v-7e76e4d7]{visibility:hidden;pointer-events:none;z-index:-1;position:absolute;top:0;left:-100000px;overflow:hidden}.node-slot[data-v-7e76e4d7],.node-content[data-v-7e76e4d7]{width:100%}.node-placeholder[data-v-7e76e4d7]{background-image:linear-gradient(90deg,#94a3b82e,#94a3b80d,#94a3b82e);background-size:200% 100%;border-radius:.5rem;width:100%;min-height:1rem;margin:.25rem 0;animation:1.1s ease-in-out infinite node-placeholder-shimmer-7e76e4d7}.node-placeholder[data-v-7e76e4d7]:first-child{margin-top:0}@keyframes node-placeholder-shimmer-7e76e4d7{0%{background-position:200% 0}to{background-position:-200% 0}}.node-spacer[data-v-7e76e4d7]{width:100%}.unknown-node[data-v-7e76e4d7]{color:#6a737d;margin:1rem 0;font-style:italic}.markstream-vue .typewriter-enter-from{opacity:0}.markstream-vue .typewriter-enter-active{transition:opacity var(--typewriter-fade-duration,.9s) var(--typewriter-fade-ease,ease-out);will-change:opacity}.markstream-vue .typewriter-enter-to{opacity:1}.admonition[data-v-ee240a2a]{--admonition-bg:#f8f8f8;--admonition-border:#eaecef;--admonition-header-bg:#00000008;--admonition-text:#111827;--admonition-muted:#374151;--admonition-note-color:#448aff;--admonition-tip-color:#00bfa5;--admonition-warning-color:#ff9100;--admonition-danger-color:#ff5252;border-left:4px solid var(--admonition-border);background-color:var(--admonition-bg);color:var(--admonition-text);border-radius:4px;margin:1rem 0;padding:0;overflow:hidden}.admonition-header[data-v-ee240a2a]{background-color:var(--admonition-header-bg);color:var(--admonition-muted);align-items:center;padding:.5rem 1rem;font-weight:600;display:flex}.admonition-icon[data-v-ee240a2a]{color:inherit;margin-right:.5rem}.admonition-content[data-v-ee240a2a]{color:var(--admonition-text);padding:.5rem 1rem 1rem}.admonition-note[data-v-ee240a2a]{border-left-color:var(--admonition-note-color)}.admonition-note .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff0f}.admonition-info[data-v-ee240a2a]{border-left-color:var(--admonition-note-color)}.admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff0f}.admonition-tip[data-v-ee240a2a]{border-left-color:var(--admonition-tip-color)}.admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa50f}.admonition-warning[data-v-ee240a2a]{border-left-color:var(--admonition-warning-color)}.admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91000f}.admonition-danger[data-v-ee240a2a]{border-left-color:var(--admonition-danger-color)}.admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52520f}.admonition-error[data-v-ee240a2a]{border-left-color:var(--admonition-danger-color)}.admonition-error .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52520f}.admonition-caution[data-v-ee240a2a]{border-left-color:var(--admonition-warning-color)}.admonition-caution .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91000f}.admonition-content[data-v-ee240a2a] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.admonition-toggle[data-v-ee240a2a]{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:.25rem .5rem;font-size:.9rem}.admonition-toggle[data-v-ee240a2a]:focus{outline-offset:2px;outline:2px solid #00000014}.admonition.is-dark[data-v-ee240a2a]{--admonition-bg:#0b1220;--admonition-border:#ffffff0f;--admonition-header-bg:#ffffff08;--admonition-text:#e6eef8;--admonition-muted:#cbd5e1}.admonition.is-dark .admonition-note .admonition-header[data-v-ee240a2a],.admonition.is-dark .admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff1f}.admonition.is-dark .admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa51f}.admonition.is-dark .admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91001f}.admonition.is-dark .admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52521f}@media (prefers-color-scheme:dark){.admonition[data-v-ee240a2a]{--admonition-bg:#0b1220;--admonition-border:#ffffff0f;--admonition-header-bg:#ffffff08;--admonition-text:#e6eef8;--admonition-muted:#cbd5e1}.admonition-note .admonition-header[data-v-ee240a2a],.admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff1f}.admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa51f}.admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91001f}.admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52521f}}:where(.markstream-vue) button{appearance:none;font:inherit;color:inherit;background:0 0;border:0}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.markstream-vue .sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markstream-vue .pointer-events-none{pointer-events:none}.markstream-vue .\!visible{visibility:visible!important}.markstream-vue .visible{visibility:visible}.markstream-vue .collapse{visibility:collapse}.markstream-vue .static{position:static}.markstream-vue .fixed{position:fixed}.markstream-vue .absolute{position:absolute}.markstream-vue .relative{position:relative}.markstream-vue .inset-0{inset:0}.markstream-vue .right-2{right:.5rem}.markstream-vue .right-6{right:1.5rem}.markstream-vue .top-2{top:.5rem}.markstream-vue .top-6{top:1.5rem}.markstream-vue .z-10{z-index:10}.markstream-vue .z-50{z-index:50}.markstream-vue .z-\[9999\]{z-index:9999}.markstream-vue .m-0{margin:0}.markstream-vue .mx-0\.5{margin-left:.125rem;margin-right:.125rem}.markstream-vue .my-0{margin-top:0;margin-bottom:0}.markstream-vue .my-2{margin-top:.5rem;margin-bottom:.5rem}.markstream-vue .my-4{margin-top:1rem;margin-bottom:1rem}.markstream-vue .my-5{margin-top:1.25rem;margin-bottom:1.25rem}.markstream-vue .my-8{margin-top:2rem;margin-bottom:2rem}.markstream-vue .mb-2{margin-bottom:.5rem}.markstream-vue .mb-4{margin-bottom:1rem}.markstream-vue .mb-\[calc\(3\/5\*1em\)\]{margin-bottom:.6em}.markstream-vue .mb-\[calc\(8\/9\*1em\)\]{margin-bottom:.888889em}.markstream-vue .mr-2{margin-right:.5rem}.markstream-vue .mt-0{margin-top:0}.markstream-vue .mt-2{margin-top:.5rem}.markstream-vue .mt-6{margin-top:1.5rem}.markstream-vue .mt-8{margin-top:2rem}.markstream-vue .mt-\[calc\(8\/5\*1em\)\]{margin-top:1.6em}.markstream-vue .block{display:block}.markstream-vue .inline-block{display:inline-block}.markstream-vue .inline{display:inline}.markstream-vue .flex{display:flex}.markstream-vue .inline-flex{display:inline-flex}.markstream-vue .table{display:table}.markstream-vue .grid{display:grid}.markstream-vue .contents{display:contents}.markstream-vue .list-item{display:list-item}.markstream-vue .hidden{display:none}.markstream-vue .h-3{height:.75rem}.markstream-vue .h-4{height:1rem}.markstream-vue .h-auto{height:auto}.markstream-vue .h-full{height:100%}.markstream-vue .max-h-full{max-height:100%}.markstream-vue .min-h-\[360px\]{min-height:360px}.markstream-vue .min-h-\[40px\]{min-height:40px}.markstream-vue .min-h-full{min-height:100%}.markstream-vue .w-2\/3{width:66.6667%}.markstream-vue .w-3{width:.75rem}.markstream-vue .w-4{width:1rem}.markstream-vue .w-4\/5{width:80%}.markstream-vue .w-full{width:100%}.markstream-vue .max-w-full{max-width:100%}.markstream-vue .flex-1{flex:1}.markstream-vue .flex-shrink{flex-shrink:1}.markstream-vue .flex-shrink-0{flex-shrink:0}.markstream-vue .shrink{flex-shrink:1}.markstream-vue .border-collapse{border-collapse:collapse}.markstream-vue .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.markstream-vue .animate-spin{animation:1s linear infinite spin}.markstream-vue .cursor-grab{cursor:grab}.markstream-vue .cursor-grabbing{cursor:grabbing}.markstream-vue .cursor-not-allowed{cursor:not-allowed}.markstream-vue .cursor-pointer{cursor:pointer}.markstream-vue .resize{resize:both}.markstream-vue .list-decimal{list-style-type:decimal}.markstream-vue .list-disc{list-style-type:disc}.markstream-vue .flex-wrap{flex-wrap:wrap}.markstream-vue .items-center{align-items:center}.markstream-vue .items-baseline{align-items:baseline}.markstream-vue .justify-center{justify-content:center}.markstream-vue .justify-between{justify-content:space-between}.markstream-vue .gap-1\.5{gap:.375rem}.markstream-vue .gap-2{gap:.5rem}.markstream-vue .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.markstream-vue .gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.markstream-vue .overflow-hidden{overflow:hidden}.markstream-vue .overflow-x-auto{overflow-x:auto}.markstream-vue .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.markstream-vue .whitespace-normal{white-space:normal}.markstream-vue .whitespace-nowrap{white-space:nowrap}.markstream-vue .whitespace-pre-wrap{white-space:pre-wrap}.markstream-vue .break-words{overflow-wrap:break-word}.markstream-vue .rounded{border-radius:.25rem}.markstream-vue .rounded-full{border-radius:9999px}.markstream-vue .rounded-lg{border-radius:.5rem}.markstream-vue .rounded-md{border-radius:.375rem}.markstream-vue .border{border-width:1px}.markstream-vue .border-2{border-width:2px}.markstream-vue .border-b{border-bottom-width:1px}.markstream-vue .border-t{border-top-width:1px}.markstream-vue .border-solid{border-style:solid}.markstream-vue .border-\[\#eaecef\]{--tw-border-opacity:1;border-color:rgb(234 236 239/var(--tw-border-opacity,1))}.markstream-vue .border-\[var\(--hr-border-color\,\#e2e8f0\)\]{border-color:var(--hr-border-color,#e2e8f0)}.markstream-vue .border-\[var\(--table-border\,\#cbd5e1\)\]{border-color:var(--table-border,#cbd5e1)}.markstream-vue .border-current{border-color:currentColor}.markstream-vue .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.markstream-vue .border-gray-400\/5{border-color:#9ca3af0d}.markstream-vue .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.markstream-vue .border-gray-700\/30{border-color:#3741514d}.markstream-vue .border-t-transparent{border-top-color:#0000}.markstream-vue .bg-\[hsl\(var\(--muted\)\)\]{background-color:hsl(var(--muted))}.markstream-vue .bg-\[hsl\(var\(--secondary\)\)\]{background-color:hsl(var(--secondary))}.markstream-vue .bg-black\/70{background-color:#000000b3}.markstream-vue .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.markstream-vue .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.markstream-vue .p-0{padding:0}.markstream-vue .p-0\.5{padding:.125rem}.markstream-vue .p-2{padding:.5rem}.markstream-vue .p-4{padding:1rem}.markstream-vue .p-\[calc\(4\/7\*1em\)\]{padding:.571429em}.markstream-vue .px-1{padding-left:.25rem;padding-right:.25rem}.markstream-vue .px-1\.5{padding-left:.375rem;padding-right:.375rem}.markstream-vue .px-2{padding-left:.5rem;padding-right:.5rem}.markstream-vue .px-2\.5{padding-left:.625rem;padding-right:.625rem}.markstream-vue .px-3{padding-left:.75rem;padding-right:.75rem}.markstream-vue .px-4{padding-left:1rem;padding-right:1rem}.markstream-vue .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.markstream-vue .py-1{padding-top:.25rem;padding-bottom:.25rem}.markstream-vue .py-2{padding-top:.5rem;padding-bottom:.5rem}.markstream-vue .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.markstream-vue .py-4{padding-top:1rem;padding-bottom:1rem}.markstream-vue .pb-3{padding-bottom:.75rem}.markstream-vue .pl-1\.5{padding-left:.375rem}.markstream-vue .pl-\[calc\(13\/8\*1em\)\]{padding-left:1.625em}.markstream-vue .pt-2{padding-top:.5rem}.markstream-vue .text-left{text-align:left}.markstream-vue .text-center{text-align:center}.markstream-vue .text-right{text-align:right}.markstream-vue .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.markstream-vue .text-2xl{font-size:1.5rem;line-height:2rem}.markstream-vue .text-4xl{font-size:2.25rem;line-height:2.5rem}.markstream-vue .text-\[85\%\]{font-size:85%}.markstream-vue .text-base{font-size:1rem;line-height:1.5rem}.markstream-vue .text-sm{font-size:.875rem;line-height:1.25rem}.markstream-vue .text-xl{font-size:1.25rem;line-height:1.75rem}.markstream-vue .text-xs{font-size:.75rem;line-height:1rem}.markstream-vue .font-medium{font-weight:500}.markstream-vue .font-semibold{font-weight:600}.markstream-vue .uppercase{text-transform:uppercase}.markstream-vue .lowercase{text-transform:lowercase}.markstream-vue .italic{font-style:italic}.markstream-vue .leading-\[calc\(10\/9\*1\)\]{line-height:1.11111}.markstream-vue .leading-\[calc\(4\/3\*1\)\]{line-height:1.33333}.markstream-vue .leading-\[calc\(5\/3\*1\)\]{line-height:1.66667}.markstream-vue .leading-\[normal\]{line-height:normal}.markstream-vue .leading-relaxed{line-height:1.625}.markstream-vue .text-\[\#0366d6\]{--tw-text-opacity:1;color:rgb(3 102 214/var(--tw-text-opacity,1))}.markstream-vue .text-\[hsl\(var\(--muted-foreground\)\)\]{color:hsl(var(--muted-foreground))}.markstream-vue .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.markstream-vue .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.markstream-vue .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.markstream-vue .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.markstream-vue .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.markstream-vue .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.markstream-vue .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.markstream-vue .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.markstream-vue .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.markstream-vue .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.markstream-vue .underline{text-decoration-line:underline}.markstream-vue .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.markstream-vue .opacity-0{opacity:0}.markstream-vue .opacity-100{opacity:1}.markstream-vue .opacity-50{opacity:.5}.markstream-vue .shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .outline{outline-style:solid}.markstream-vue .blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-vue .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-vue .backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-vue .backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-vue .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-\[height\]{transition-property:height;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .duration-100{transition-duration:.1s}.markstream-vue .duration-150{transition-duration:.15s}.markstream-vue .duration-200{transition-duration:.2s}.markstream-vue .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.markstream-vue{--border:214.3 31.8% 91.4%;--background:0 0% 100%;--foreground:222.2 84% 4.9%;--secondary:210 40% 96%;--muted:210 40% 96%;--muted-foreground:215.4 16.3% 46.9%}.dark .markstream-vue,.markstream-vue.dark{--border:217.2 32.6% 17.5%;--background:222.2 84% 4.9%;--foreground:210 40% 98%;--secondary:217.2 32.6% 17.5%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%}body>div[id^=dmermaid-]{pointer-events:none;width:0;height:0;position:fixed;top:0;left:0;overflow:hidden}.markstream-vue .before\:content-\[\'\'\]:before,.markstream-vue .after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.markstream-vue .hover\:bg-\[hsl\(var\(--secondary\)\)\]:hover{background-color:hsl(var(--secondary))}.markstream-vue .hover\:bg-\[var\(--vscode-editor-selectionBackground\)\]:hover{background-color:var(--vscode-editor-selectionBackground)}.markstream-vue .hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.markstream-vue .hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.markstream-vue .hover\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.markstream-vue .hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.markstream-vue .hover\:underline:hover{text-decoration-line:underline}@media not all and (width>=1024px){.markstream-vue .max-lg\:my-\[calc\(4\/3\*1em\)\]{margin-top:1.33333em;margin-bottom:1.33333em}.markstream-vue .max-lg\:pl-\[calc\(14\/9\*1em\)\]{padding-left:1.55556em}}.math-inline-wrapper[data-v-d4b863b7]{display:inline-block;position:relative}.math-inline[data-v-d4b863b7]{vertical-align:middle;display:inline-block}.math-inline--fallback[data-v-d4b863b7]{white-space:pre-wrap}.math-inline__loading[data-v-d4b863b7]{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.math-inline__spinner[data-v-d4b863b7]{will-change:transform;border:2px solid #5e687940;border-top-color:#5e6879cc;border-radius:9999px;width:1rem;height:1rem}.table-node-fade-enter-active[data-v-d4b863b7],.table-node-fade-leave-active[data-v-d4b863b7]{transition:opacity .18s}.table-node-fade-enter-from[data-v-d4b863b7],.table-node-fade-leave-to[data-v-d4b863b7]{opacity:0}.sr-only[data-v-d4b863b7]{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.math-loading-overlay[data-v-f19e21a0]{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;min-height:40px;display:flex;position:absolute;inset:0}.math-loading-spinner[data-v-f19e21a0]{border:2px solid #0000001a;border-top-color:#0009;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite math-spin-f19e21a0}@keyframes math-spin-f19e21a0{to{transform:rotate(360deg)}}.math-rendering[data-v-f19e21a0]{opacity:.3;transition:opacity .2s}.math-block__fallback[data-v-f19e21a0]{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.math-fade-enter-active[data-v-f19e21a0],.math-fade-leave-active[data-v-f19e21a0]{transition:opacity .3s}.math-fade-enter-from[data-v-f19e21a0],.math-fade-leave-to[data-v-f19e21a0]{opacity:0}@media (prefers-color-scheme:dark){.math-loading-overlay[data-v-f19e21a0]{background-color:#0009}.math-loading-spinner[data-v-f19e21a0]{border-color:#fffc #fff3 #fff3}}.html-preview-frame__backdrop[data-v-296dd89d]{z-index:50;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.html-preview-frame__backdrop--dark[data-v-296dd89d]{background-color:#0f172acc}.html-preview-frame[data-v-296dd89d]{background-color:#fff;border-radius:.5rem;flex-direction:column;width:80vw;max-width:960px;height:70vh;display:flex;overflow:hidden;box-shadow:0 10px 40px #00000040}.html-preview-frame--dark[data-v-296dd89d]{color:#e5e7eb;background-color:#020617;box-shadow:0 10px 40px #0009}.html-preview-frame__header[data-v-296dd89d]{border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.html-preview-frame--dark .html-preview-frame__header[data-v-296dd89d]{border-bottom-color:#94a3b859}.html-preview-frame__title[data-v-296dd89d]{letter-spacing:.02em;text-transform:uppercase;opacity:.85;align-items:center;gap:.4rem;font-size:.75rem;font-weight:500;display:inline-flex}.html-preview-frame__dot[data-v-296dd89d]{background-color:#22c55e;border-radius:999px;width:.5rem;height:.5rem}.html-preview-frame--dark .html-preview-frame__dot[data-v-296dd89d]{background-color:#4ade80}.html-preview-frame__label[data-v-296dd89d]{white-space:nowrap}.html-preview-frame__close[data-v-296dd89d]{cursor:pointer;background:0 0;border:none;font-size:1.25rem;line-height:1}.html-preview-frame__close--dark[data-v-296dd89d]{color:#e5e7eb}.html-preview-frame__iframe[data-v-296dd89d]{border:none;width:100%;height:100%;display:block}@media (width<=640px){.html-preview-frame[data-v-296dd89d]{border-radius:0;width:100vw;height:80vh}}.code-block-container[data-v-1a55f98f]{contain:content;content-visibility:auto;contain-intrinsic-size:320px 180px;--markstream-code-fallback-bg:#fff;--markstream-code-fallback-fg:#111827;--markstream-code-border-color:#e5e7eb;--vscode-editor-selectionBackground:var(--markstream-code-fallback-selection-bg);--markstream-code-fallback-selection-bg:#0000000f;--markstream-diff-frame-border:#cbd5e18f;--markstream-diff-frame-shadow:0 16px 40px -32px #0f172a2e;--markstream-diff-shell-fg:#0f172a;--markstream-diff-shell-muted:#64748b;--markstream-diff-shell-border:#94a3b82e;--markstream-diff-shell-shadow:0 30px 70px -48px #0f172a6b;--markstream-diff-shell-bg:radial-gradient(circle at top center, #ffffffe6, transparent 55%), linear-gradient(180deg, #fffdfa 0%, #fbfcfe 100%);--markstream-diff-header-border:#e2e8f0eb;--markstream-diff-stage-bg:radial-gradient(circle at top center, #fffffff2, transparent 60%), linear-gradient(180deg, #fcfdff 0%, #f6f8fb 100%);--markstream-diff-editor-bg:#fff;--markstream-diff-editor-fg:#435266;--markstream-diff-unchanged-fg:lab(36.247% .0071872 -.000424832);--markstream-diff-unchanged-bg:lab(95.9989% .0180531 -.0010643);--markstream-diff-unchanged-divider:#fffffff0;--markstream-diff-focus:#0ea5e96b;--markstream-diff-widget-shadow:#0f172a42;--markstream-diff-action-hover:#0f172a0f;--markstream-diff-panel-bg:linear-gradient(180deg, #fff 0%, #fbfcfe 100%);--markstream-diff-panel-bg-soft:#fff;--markstream-diff-panel-bg-strong:#fff;--markstream-diff-panel-border:#e2e8f04d;--markstream-diff-pane-divider:#e2e8f06b;--markstream-diff-gutter-bg:transparent;--markstream-diff-gutter-guide:transparent;--markstream-diff-gutter-gap:16px;--markstream-diff-line-number:#525252e0;--markstream-diff-line-number-active:#525252e0;--markstream-diff-added-fg:#14b8a6;--markstream-diff-removed-fg:#ff3658;--markstream-diff-added-line:#e8f9f5fa;--markstream-diff-removed-line:#fff1f1fa;--markstream-diff-added-inline:#c5f5dbf5;--markstream-diff-removed-inline:#ffd7d9eb;--markstream-diff-added-inline-border:transparent;--markstream-diff-removed-inline-border:transparent;--markstream-diff-added-gutter:linear-gradient(90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width,4px), #14b8a614 var(--stream-monaco-gutter-marker-width,4px) 100%);--markstream-diff-removed-gutter:repeating-linear-gradient(180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px) left / var(--stream-monaco-gutter-marker-width,4px) 100% no-repeat, linear-gradient(90deg, #ff365814 0 100%);--markstream-diff-added-line-fill:#e7f8f4f5;--markstream-diff-removed-line-fill:#fff1f1fa;container-type:inline-size}.code-block-container.is-dark[data-v-1a55f98f]{--markstream-code-fallback-bg:#111827;--markstream-code-fallback-fg:#e5e7eb;--markstream-code-border-color:#3741514d;--markstream-code-fallback-selection-bg:#ffffff14;--markstream-diff-frame-border:#52525b8f;--markstream-diff-frame-shadow:0 18px 40px -30px #000000d6;--markstream-diff-shell-fg:#e2e8f0;--markstream-diff-shell-muted:#94a3b8;--markstream-diff-shell-border:#52525b8f;--markstream-diff-shell-shadow:0 34px 80px -52px #000000b8;--markstream-diff-shell-bg:#0a0a0bfc;--markstream-diff-header-border:#3f3f46d1;--markstream-diff-stage-bg:#0a0a0bfc;--markstream-diff-editor-bg:#0c0c0efc;--markstream-diff-editor-fg:#b6c2d3;--markstream-diff-unchanged-fg:#cbd5e1;--markstream-diff-unchanged-bg:#18181beb;--markstream-diff-unchanged-divider:#ffffff2e;--markstream-diff-focus:#60a5fa6b;--markstream-diff-widget-shadow:#000000b8;--markstream-diff-action-hover:#ffffff14;--markstream-diff-panel-bg:#0a0a0bfc;--markstream-diff-panel-bg-soft:#0a0a0bfc;--markstream-diff-panel-bg-strong:#0a0a0bfc;--markstream-diff-panel-border:#52525b4d;--markstream-diff-pane-divider:#52525b57;--markstream-diff-gutter-bg:linear-gradient(180deg, #0d0d0ff0 0%, #09090afa 100%);--markstream-diff-gutter-guide:#a1a1aa14;--markstream-diff-gutter-gap:16px;--markstream-diff-line-number:#a1a1aaad;--markstream-diff-line-number-active:#e4e4e7d1;--markstream-diff-added-fg:#5eead4;--markstream-diff-removed-fg:#fda4af;--markstream-diff-added-line:#0d94882e;--markstream-diff-removed-line:#e11d482e;--markstream-diff-added-inline:#2dd4bf3d;--markstream-diff-removed-inline:#fb71853d;--markstream-diff-added-inline-border:transparent;--markstream-diff-removed-inline-border:transparent;--markstream-diff-added-gutter:linear-gradient(90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width,4px), #5eead433 var(--stream-monaco-gutter-marker-width,4px) 100%);--markstream-diff-removed-gutter:repeating-linear-gradient(180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px) left / var(--stream-monaco-gutter-marker-width,4px) 100% no-repeat, linear-gradient(90deg, #fda4af2e 0 100%);--markstream-diff-added-line-fill:linear-gradient(90deg, #0f766e61 0%, #0d948847 100%);--markstream-diff-removed-line-fill:linear-gradient(90deg, #9f123961 0%, #e11d4847 100%)}.code-editor-container[data-v-1a55f98f]{transition:height .18s,max-height .18s}.code-block-header[data-v-1a55f98f]{gap:16px}.code-header-main[data-v-1a55f98f]{flex:auto;align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.code-header-copy[data-v-1a55f98f]{gap:2px;min-width:0;display:grid}.code-header-actions[data-v-1a55f98f]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.code-header-title[data-v-1a55f98f]{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;font-size:14px;font-weight:650;overflow:hidden}.code-header-caption[data-v-1a55f98f]{text-overflow:ellipsis;white-space:nowrap;color:color-mix(in srgb,var(--vscode-editor-foreground,currentColor) 62%,transparent);font-size:12px;overflow:hidden}.code-editor-layer[data-v-1a55f98f]{min-width:0;display:grid}.code-editor-layer>.code-editor-container[data-v-1a55f98f],[data-v-1a55f98f] .code-editor-layer>pre.code-pre-fallback{grid-area:1/1}.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .monaco-editor-background,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .lines-content{background:var(--vscode-editor-background,var(--markstream-code-fallback-bg))!important}.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-lines,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-line,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-line span,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .line-numbers{color:var(--vscode-editor-foreground,var(--markstream-code-fallback-fg))!important}.code-block-container.is-diff .code-block-header[data-v-1a55f98f]{color:var(--markstream-diff-shell-fg);border-bottom-color:var(--markstream-diff-header-border);background:0 0;padding:18px 20px 14px}.code-block-container.is-diff[data-v-1a55f98f]{background:var(--markstream-diff-shell-bg);box-shadow:var(--markstream-diff-shell-shadow);border-color:var(--markstream-diff-shell-border);--vscode-editor-selectionBackground:var(--markstream-diff-action-hover)}.code-block-container.is-diff .code-header-caption[data-v-1a55f98f]{color:var(--markstream-diff-shell-muted)}.code-block-container.is-diff .code-editor-layer[data-v-1a55f98f]{background:var(--markstream-diff-stage-bg);--vscode-editor-background:var(--markstream-diff-editor-bg);--vscode-editor-foreground:var(--markstream-diff-editor-fg);--vscode-diffEditor-unchangedRegionForeground:var(--markstream-diff-unchanged-fg);--vscode-diffEditor-unchangedRegionBackground:var(--markstream-diff-unchanged-bg);--vscode-focusBorder:var(--markstream-diff-focus);--vscode-widget-shadow:var(--markstream-diff-widget-shadow);--vscode-editor-selectionBackground:color-mix(in srgb, var(--markstream-diff-editor-bg) 90%, var(--markstream-diff-editor-fg) 10%);--stream-monaco-editor-bg:var(--markstream-diff-editor-bg);--stream-monaco-editor-fg:var(--markstream-diff-editor-fg);--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg);--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg);--stream-monaco-frame-radius:18px;--stream-monaco-fixed-editor-bg:var(--markstream-diff-panel-bg-strong);--stream-monaco-frame-border:var(--markstream-diff-frame-border);--stream-monaco-frame-shadow:var(--markstream-diff-frame-shadow);--stream-monaco-panel-bg:var(--markstream-diff-panel-bg);--stream-monaco-panel-bg-soft:var(--markstream-diff-panel-bg-soft);--stream-monaco-panel-bg-strong:var(--markstream-diff-panel-bg-strong);--stream-monaco-panel-border:var(--markstream-diff-panel-border);--stream-monaco-pane-divider:var(--markstream-diff-pane-divider);--stream-monaco-gutter-bg:var(--markstream-diff-gutter-bg);--stream-monaco-gutter-guide:var(--markstream-diff-gutter-guide);--stream-monaco-gutter-marker-width:4px;--stream-monaco-gutter-gap:var(--markstream-diff-gutter-gap);--stream-monaco-line-number:var(--markstream-diff-line-number);--stream-monaco-line-number-active:var(--markstream-diff-line-number-active);--stream-monaco-line-number-left:calc(var(--stream-monaco-gutter-marker-width) + var(--stream-monaco-gutter-gap));--stream-monaco-line-number-width:36px;--stream-monaco-line-number-align:center;--stream-monaco-original-margin-width:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2) + var(--stream-monaco-line-number-width));--stream-monaco-original-scrollable-left:var(--stream-monaco-original-margin-width);--stream-monaco-original-scrollable-width:calc(100% - var(--stream-monaco-original-margin-width));--stream-monaco-modified-margin-width:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2) + var(--stream-monaco-line-number-width));--stream-monaco-modified-scrollable-left:var(--stream-monaco-modified-margin-width);--stream-monaco-modified-scrollable-width:calc(100% - var(--stream-monaco-modified-margin-width));--stream-monaco-added-fg:var(--markstream-diff-added-fg);--stream-monaco-removed-fg:var(--markstream-diff-removed-fg);--stream-monaco-added-line:var(--markstream-diff-added-line);--stream-monaco-removed-line:var(--markstream-diff-removed-line);--stream-monaco-added-inline:var(--markstream-diff-added-inline);--stream-monaco-removed-inline:var(--markstream-diff-removed-inline);--stream-monaco-added-outline:transparent;--stream-monaco-removed-outline:transparent;--stream-monaco-added-inline-border:var(--markstream-diff-added-inline-border);--stream-monaco-removed-inline-border:var(--markstream-diff-removed-inline-border);--stream-monaco-added-line-shadow:none;--stream-monaco-removed-line-shadow:none;--stream-monaco-added-gutter:var(--markstream-diff-added-gutter);--stream-monaco-removed-gutter:var(--markstream-diff-removed-gutter);--stream-monaco-added-line-fill:var(--markstream-diff-added-line-fill);--stream-monaco-removed-line-fill:var(--markstream-diff-removed-line-fill);padding:4px 4px 8px}.code-block-container.is-diff.is-dark .code-editor-layer[data-v-1a55f98f]{background:var(--markstream-diff-stage-bg)}.code-editor-container.is-hidden[data-v-1a55f98f]{opacity:0;pointer-events:none}[data-v-1a55f98f] pre.code-pre-fallback{padding:var(--markstream-code-padding-y,8px) var(--markstream-code-padding-x,12px);padding-left:var(--markstream-code-padding-left,52px);color:var(--vscode-editor-foreground,inherit);font-size:var(--vscode-editor-font-size,12px);font-weight:400;font-family:var(--markstream-code-font-family,ui-monospace, SFMono-Regular, SF Mono, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace);background:0 0;margin:0}[data-v-1a55f98f] pre.code-pre-fallback>code{font-size:inherit;font-weight:inherit;line-height:inherit}[data-v-1a55f98f] pre.code-pre-fallback.is-wrap{white-space:pre-wrap;overflow-wrap:anywhere}.code-block-container.is-rendering .code-height-placeholder[data-v-1a55f98f]{background:linear-gradient(90deg,#0000000a 25%,#00000014 37%,#0000000a 63%);min-height:120px;animation:1.2s ease-in-out infinite code-skeleton-shimmer-1a55f98f}.code-loading-placeholder[data-v-1a55f98f]{min-height:120px;padding:1rem}.loading-skeleton[data-v-1a55f98f]{flex-direction:column;gap:.75rem;display:flex}.skeleton-line[data-v-1a55f98f]{background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%) 0 0/400% 100%;border-radius:.25rem;height:1rem;animation:1.2s ease-in-out infinite code-skeleton-shimmer-1a55f98f}.code-block-container.is-dark .skeleton-line[data-v-1a55f98f]{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%) 0 0/400% 100%}.skeleton-line.short[data-v-1a55f98f]{width:60%}@keyframes code-skeleton-shimmer-1a55f98f{0%{background-position:100% 0}to{background-position:0 0}}.code-action-btn[data-v-1a55f98f]{border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;min-width:2rem;min-height:2rem;padding:.5rem;font-family:inherit;line-height:1;display:inline-flex}.code-block-container.is-diff .icon-slot[data-v-1a55f98f]{width:28px;height:28px;color:var(--markstream-diff-added-fg);padding:5px;box-shadow:inset 0 1px #ffffffb3}.code-block-container.is-diff.is-dark .icon-slot[data-v-1a55f98f]{box-shadow:inset 0 1px #ffffff14,0 12px 28px -20px #38bdf873}.code-diff-stats[data-v-1a55f98f]{letter-spacing:.02em;font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin-right:4px;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.code-diff-stat[data-v-1a55f98f]{align-items:center;display:inline-flex}.code-diff-stat.removed[data-v-1a55f98f]{color:var(--vscode-diffEditor-removedTextForeground,var(--markstream-diff-removed-fg))}.code-diff-stat.added[data-v-1a55f98f]{color:var(--vscode-diffEditor-insertedTextForeground,var(--markstream-diff-added-fg))}.code-block-container.is-dark .code-diff-stat[data-v-1a55f98f]{border:1px solid #0000;border-radius:999px;padding:3px 9px;line-height:1;box-shadow:inset 0 1px #ffffff0d}.code-block-container.is-dark .code-diff-stat.removed[data-v-1a55f98f]{color:#fb7185;background:#9f123929;border-color:#fb718533}.code-block-container.is-dark .code-diff-stat.added[data-v-1a55f98f]{color:#2dd4bf;background:#0f766e29;border-color:#2dd4bf38}.code-action-btn[data-v-1a55f98f]:active{transform:scale(.98)}.code-action-btn[data-v-1a55f98f]:disabled{opacity:.5;cursor:not-allowed}.code-action-btn[data-v-1a55f98f]:disabled:hover{background-color:#0000}.icon-slot[data-v-1a55f98f]{justify-content:center;align-items:center;display:inline-flex}.icon-slot[data-v-1a55f98f] svg,.icon-slot[data-v-1a55f98f] img{width:100%;height:100%;display:block}@container (width<=640px){.code-block-container.is-diff .code-block-header[data-v-1a55f98f]{padding:16px 16px 12px}.code-block-container.is-diff .code-editor-layer[data-v-1a55f98f]{padding:4px 4px 8px}.code-diff-stats[data-v-1a55f98f]{gap:6px;font-size:12px}}[data-v-1a55f98f] .monaco-diff-editor .diffOverview{background-color:var(--vscode-editor-background)}[data-v-1a55f98f] .stream-monaco-diff-root .monaco-diff-editor .diffOverview,[data-v-1a55f98f] .stream-monaco-diff-root .decorationsOverviewRuler{opacity:0!important;pointer-events:none!important;background:0 0!important;border:0!important;width:0!important;min-width:0!important;max-width:0!important;display:none!important;overflow:hidden!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-diff-editor{box-shadow:none!important;border:0!important;border-radius:0!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-clickable)>:not(a){visibility:hidden!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines-compact .text{opacity:0!important}[data-v-1a55f98f] .stream-monaco-diff-root{--stream-monaco-gutter-gap:var(--markstream-diff-gutter-gap)!important;--stream-monaco-line-number:var(--markstream-diff-line-number)!important;--stream-monaco-line-number-active:var(--markstream-diff-line-number-active)!important;--stream-monaco-added-fg:var(--markstream-diff-added-fg)!important;--stream-monaco-removed-fg:var(--markstream-diff-removed-fg)!important;--stream-monaco-added-line:var(--markstream-diff-added-line)!important;--stream-monaco-removed-line:var(--markstream-diff-removed-line)!important;--stream-monaco-added-inline:var(--markstream-diff-added-inline)!important;--stream-monaco-removed-inline:var(--markstream-diff-removed-inline)!important;--stream-monaco-added-inline-border:var(--markstream-diff-added-inline-border)!important;--stream-monaco-removed-inline-border:var(--markstream-diff-removed-inline-border)!important;--stream-monaco-added-line-fill:var(--markstream-diff-added-line-fill)!important;--stream-monaco-removed-line-fill:var(--markstream-diff-removed-line-fill)!important;--stream-monaco-added-gutter:var(--markstream-diff-added-gutter)!important;--stream-monaco-removed-gutter:var(--markstream-diff-removed-gutter)!important;--stream-monaco-added-line-shadow:none!important;--stream-monaco-removed-line-shadow:none!important;--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg)!important;--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-unchanged-bridge-source),[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg)!important;--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg)!important;background:var(--stream-monaco-unchanged-bg)!important;color:var(--stream-monaco-unchanged-fg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{right:calc(var(--stream-monaco-gutter-marker-width) - var(--stream-monaco-unchanged-rail-width) / 2 + (var(--stream-monaco-gutter-gap) * 2))!important;width:auto!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important;color:var(--markstream-diff-unchanged-fg)!important;padding-left:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important;padding-right:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge.stream-monaco-diff-unchanged-bridge-line-info .stream-monaco-unchanged-rail,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail{border-right-color:var(--markstream-diff-unchanged-divider)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal{border-bottom-color:#0000!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-both .stream-monaco-unchanged-reveal:first-child{border-bottom-color:var(--markstream-diff-unchanged-divider)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-top-only .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-bottom-only .stream-monaco-unchanged-reveal{border-bottom:0!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-meta,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-count,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-metadata-label,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{color:var(--markstream-diff-unchanged-fg)!important}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.original .diff-hidden-lines .center{justify-content:center;align-items:center}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.original .diff-hidden-lines .center>div:first-child{align-items:center;min-width:100%;display:flex;justify-content:center!important;width:100%!important}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.modified .diff-hidden-lines .center>div:first-child{display:none!important}[data-v-1a55f98f] .markstream-inline-fold-proxy{appearance:none;box-shadow:none;color:var(--vscode-diffEditor-unchangedRegionForeground,currentColor);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;display:inline-flex}[data-v-1a55f98f] .markstream-inline-fold-proxy:hover,[data-v-1a55f98f] .markstream-inline-fold-proxy:focus-visible{color:var(--vscode-editorLink-activeForeground,var(--vscode-diffEditor-unchangedRegionForeground,currentColor))}[data-v-1a55f98f] .markstream-inline-fold-proxy:focus-visible{outline:1px solid var(--vscode-focusBorder,currentColor);outline-offset:1px}[data-v-1a55f98f] .markstream-inline-fold-proxy .codicon{color:inherit;width:16px;height:16px;font-size:16px;line-height:16px}._mermaid[data-v-6eade7e5]{content-visibility:auto;contain:content;contain-intrinsic-size:360px 240px;font-family:inherit}._mermaid[data-v-6eade7e5] svg{width:100%;height:auto;display:block}.fullscreen[data-v-6eade7e5]{width:100%;height:100%!important;max-height:100%!important}.mermaid-action-btn[data-v-6eade7e5]{font-family:inherit}.mermaid-action-btn[data-v-6eade7e5]:active{transform:scale(.98)}.mermaid-dialog-enter-from[data-v-6eade7e5],.mermaid-dialog-leave-to[data-v-6eade7e5]{opacity:0}.mermaid-dialog-enter-active[data-v-6eade7e5],.mermaid-dialog-leave-active[data-v-6eade7e5]{transition:opacity .2s}.mermaid-dialog-enter-from .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-to .dialog-panel[data-v-6eade7e5]{opacity:.98;transform:translateY(8px)scale(.98)}.mermaid-dialog-enter-to .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-from .dialog-panel[data-v-6eade7e5]{opacity:1;transform:translateY(0)scale(1)}.mermaid-dialog-enter-active .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-active .dialog-panel[data-v-6eade7e5]{transition:transform .2s,opacity .2s}.infographic-action-btn[data-v-e17a4388]{font-family:inherit}.infographic-action-btn[data-v-e17a4388]:active{transform:scale(.98)}.fullscreen[data-v-e17a4388]{width:100%;height:100%!important;max-height:100%!important}.infographic-dialog-enter-from[data-v-e17a4388],.infographic-dialog-leave-to[data-v-e17a4388]{opacity:0}.infographic-dialog-enter-active[data-v-e17a4388],.infographic-dialog-leave-active[data-v-e17a4388]{transition:opacity .2s}.infographic-dialog-enter-from .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-to .dialog-panel[data-v-e17a4388]{opacity:.98;transform:translateY(8px)scale(.98)}.infographic-dialog-enter-to .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-from .dialog-panel[data-v-e17a4388]{opacity:1;transform:translateY(0)scale(1)}.infographic-dialog-enter-active .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-active .dialog-panel[data-v-e17a4388]{transition:transform .2s,opacity .2s}.d2-block-body[data-v-90ebc4d2]{position:relative}.d2-source[data-v-90ebc4d2]{font-family:var(--vscode-editor-font-family,"Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}.d2-code[data-v-90ebc4d2]{white-space:pre;font-size:.875rem;line-height:1.5}.d2-render[data-v-90ebc4d2]{overflow:auto}.d2-svg[data-v-90ebc4d2] svg.markstream-d2-root-svg{width:100%;max-width:100%;height:auto;display:block}.mode-btn[data-v-90ebc4d2]{opacity:.7;transition:opacity .2s}.mode-btn.is-active[data-v-90ebc4d2]{opacity:1;font-weight:600}.d2-action-btn[data-v-90ebc4d2]{opacity:.7;transition:opacity .2s}.d2-action-btn[data-v-90ebc4d2]:hover{opacity:1}.d2-action-btn[data-v-90ebc4d2]:disabled{opacity:.3;cursor:not-allowed}.d2-error[data-v-90ebc4d2]{color:#dc2626}.tool-call-node[data-v-a4e5e40d]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-a4e5e40d]{background:#f5f6f7;border:1px solid #e5e7eb;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:28px;padding:4px 10px;transition:background-color .2s,border-color .2s;display:flex}.tool-call-node__header--clickable[data-v-a4e5e40d]{cursor:pointer}.tool-call-node__header--clickable[data-v-a4e5e40d]:hover{background:#eff1f3;border-color:#d8dde3}.tool-call-node__header--clickable[data-v-a4e5e40d]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 24%, transparent);outline-offset:2px}.tool-call-node__prefix[data-v-a4e5e40d]{align-items:center;gap:6px;min-width:0;display:inline-flex}.tool-call-node__title[data-v-a4e5e40d]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tool-call-node__prefix-icon[data-v-a4e5e40d]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.tool-call-node__prefix-icon.is-spinning[data-v-a4e5e40d]{animation:1s linear infinite tool-spin-a4e5e40d}.tool-call-node.is-running .tool-call-node__prefix[data-v-a4e5e40d],.tool-call-node.is-running .tool-call-node__toggle[data-v-a4e5e40d]{color:var(--primary-color,#1677ff)}.tool-call-node.is-running .tool-call-node__header[data-v-a4e5e40d]{background:#f2f5fa;border-color:#d6deea}.tool-call-node.is-success .tool-call-node__prefix[data-v-a4e5e40d],.tool-call-node.is-success .tool-call-node__toggle[data-v-a4e5e40d]{color:#8f98a3}.tool-call-node.is-success .tool-call-node__header[data-v-a4e5e40d]{background:#f3f5f7;border-color:#dde2e7}.tool-call-node.is-error .tool-call-node__prefix[data-v-a4e5e40d],.tool-call-node.is-error .tool-call-node__toggle[data-v-a4e5e40d]{color:var(--error-color,#ff4d4f)}.tool-call-node.is-error .tool-call-node__header[data-v-a4e5e40d]{background:#faf1f1;border-color:#edd7d8}.tool-call-node__toggle[data-v-a4e5e40d]{color:inherit;opacity:0;flex-shrink:0;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;transition:opacity .15s;display:inline-flex}.tool-call-node__header--clickable:hover .tool-call-node__toggle[data-v-a4e5e40d],.tool-call-node__header--clickable:focus-visible .tool-call-node__toggle[data-v-a4e5e40d]{opacity:1}.tool-call-node__toggle-icon[data-v-a4e5e40d]{font-size:12px}.tool-call-node__detail[data-v-a4e5e40d]{background:#fbfdff;border:1px solid #edf2fa;border-radius:12px;margin-top:6px;padding:10px 12px}.tool-call-node__line[data-v-a4e5e40d]{align-items:flex-start;gap:4px;margin:0;font-size:12px;line-height:1.6;display:flex}.tool-call-node__label[data-v-a4e5e40d]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-shrink:0}.tool-call-node__value[data-v-a4e5e40d]{color:var(--text-color,var(--text));word-break:break-all}.tool-call-node__value--overflow[data-v-a4e5e40d]{-webkit-line-clamp:2;cursor:help;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@keyframes tool-spin-a4e5e40d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__approval[data-v-a4e5e40d]{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border:1px solid #e8f0fe;border-radius:10px;margin-top:10px;padding:12px 14px}.tool-call-node__approval-desc[data-v-a4e5e40d]{color:#5a6474;margin-bottom:8px;font-size:12px;line-height:1.6}.tool-call-node__approval-args[data-v-a4e5e40d]{align-items:flex-start;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.tool-call-node__approval-code[data-v-a4e5e40d]{color:#3a5080;white-space:pre-wrap;word-break:break-all;background:#f0f4fc;border:1px solid #dee6f5;border-radius:6px;flex:1;max-height:120px;padding:6px 8px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;display:block;overflow-y:auto}.tool-call-node__approval-actions[data-v-a4e5e40d]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-call-node__btn[data-v-a4e5e40d]{cursor:pointer;border:1px solid #0000;border-radius:6px;outline:none;justify-content:center;align-items:center;padding:5px 14px;font-size:12px;font-weight:500;line-height:1.4;transition:all .2s;display:inline-flex}.tool-call-node__btn[data-v-a4e5e40d]:disabled{opacity:.55;cursor:not-allowed}.tool-call-node__btn-approve[data-v-a4e5e40d]{color:#fff;background:#1677ff;border-color:#1677ff}.tool-call-node__btn-approve[data-v-a4e5e40d]:not(:disabled):hover{background:#4096ff;border-color:#4096ff}.tool-call-node__btn-approve[data-v-a4e5e40d]:not(:disabled):active{background:#0958d9;border-color:#0958d9}.tool-call-node__btn-reject[data-v-a4e5e40d]{color:#cf1322;background:#fff1f0;border-color:#ffccc7}.tool-call-node__btn-reject[data-v-a4e5e40d]:not(:disabled):hover{color:#fff;background:#ff4d4f;border-color:#ff4d4f}.tool-call-node__btn-reject[data-v-a4e5e40d]:not(:disabled):active{color:#fff;background:#a8071a;border-color:#a8071a}.tool-call-node__btn-edit[data-v-a4e5e40d]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-edit[data-v-a4e5e40d]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__btn-cancel[data-v-a4e5e40d]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-cancel[data-v-a4e5e40d]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__approval-edit[data-v-a4e5e40d]{margin-top:8px}.tool-call-node__textarea[data-v-a4e5e40d]{resize:vertical;box-sizing:border-box;border:1px solid #d9d9d9;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-family:monospace;font-size:12px}.tool-call-node__textarea[data-v-a4e5e40d]:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1f}.tool-call-node__approval-edit-actions[data-v-a4e5e40d]{align-items:center;gap:8px;margin-top:8px;display:flex}.tool-call-node__approval-result[data-v-a4e5e40d]{border-radius:6px;align-items:center;gap:6px;padding:8px 10px;font-size:12px;font-weight:500;display:flex}.tool-call-node__approval-result.is-approved[data-v-a4e5e40d]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__approval-result.is-rejected[data-v-a4e5e40d]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.approval-result-icon[data-v-a4e5e40d]{font-size:14px}.approval-result-enter-active[data-v-a4e5e40d],.approval-result-leave-active[data-v-a4e5e40d]{transition:all .25s}.approval-result-enter-from[data-v-a4e5e40d],.approval-result-leave-to[data-v-a4e5e40d]{opacity:0;transform:translateY(-4px)}.tool-call-node__waiting-badge[data-v-a4e5e40d]{color:#d46b08;white-space:nowrap;background:#fff7e6;border:1px solid #ffd591;border-radius:4px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.tool-call-node__result-badge[data-v-a4e5e40d]{white-space:nowrap;border-radius:4px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.tool-call-node__result-badge.is-approved[data-v-a4e5e40d]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__result-badge.is-rejected[data-v-a4e5e40d]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.sub-agent-node[data-v-526ce89d]{border:1px solid var(--border-color-split,#e5e7eb);background:#f9fafb;border-radius:6px;margin:4px 0;overflow:hidden}.sub-agent-node__header[data-v-526ce89d]{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f3f4f6;justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;transition:background .15s;display:flex}.sub-agent-node__header[data-v-526ce89d]:hover{background:#e9eaec}.sub-agent-node__prefix[data-v-526ce89d]{align-items:center;gap:6px;display:flex}.sub-agent-node__icon[data-v-526ce89d]{color:#6b7280;font-size:14px}.sub-agent-node__icon.is-spinning[data-v-526ce89d]{animation:1s linear infinite sub-spin-526ce89d}@keyframes sub-spin-526ce89d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sub-agent-node__name[data-v-526ce89d]{font-size:13px;font-weight:500}.sub-agent-node__badge[data-v-526ce89d]{color:#4338ca;background:#e0e7ff;border:1px solid #c7d2fe;border-radius:4px;align-items:center;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.sub-agent-node__chevron[data-v-526ce89d]{color:#9ca3af;font-size:12px}.sub-agent-node__body[data-v-526ce89d]{padding:8px 12px 10px}.sub-agent-node__tools[data-v-526ce89d]{margin-bottom:8px}.sub-agent-node__content[data-v-526ce89d]{font-size:13px}.think-node[data-v-526ce89d]{margin:4px 0}.think-node__layout[data-v-526ce89d]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-526ce89d]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-526ce89d]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-526ce89d]{flex:none;align-items:center;gap:6px;display:inline-flex}.think-node__prefix-icon[data-v-526ce89d]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node__content[data-v-526ce89d]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;position:relative}.think-node__content--inline[data-v-526ce89d]{flex:1}.think-node__content.is-collapsed[data-v-526ce89d]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-526ce89d]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-526ce89d]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;max-height:240px;margin-top:2px;padding:8px 10px 8px 28px;overflow-y:auto}.think-node__toggle[data-v-526ce89d]{color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;display:inline-flex}.think-node__toggle-icon[data-v-526ce89d]{font-size:10px}.msg-renderer__loading[data-v-8ed3e6de]{align-items:center;min-height:28px;display:flex}.msg-renderer__loading-text[data-v-8ed3e6de]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));font-size:14px}.msg-renderer__attachments[data-v-8ed3e6de]{flex-wrap:wrap;gap:8px;margin-top:1.25em;display:flex}.think-node[data-v-8ed3e6de]{margin:6px 0}.think-node__layout[data-v-8ed3e6de]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-8ed3e6de]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-8ed3e6de]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-8ed3e6de]{flex:none;align-items:center;gap:6px;padding-top:1px;display:inline-flex}.think-node__prefix-icon[data-v-8ed3e6de]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node__content[data-v-8ed3e6de]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;position:relative}.think-node__content--inline[data-v-8ed3e6de]{flex:1}.think-node__content.is-collapsed[data-v-8ed3e6de]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-8ed3e6de]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-8ed3e6de]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;max-height:240px;margin-top:2px;padding:8px 10px 8px 28px;overflow-y:auto}.think-node__toggle[data-v-8ed3e6de]{color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;display:inline-flex}.think-node__toggle-icon[data-v-8ed3e6de]{font-size:10px}.tool-call-node[data-v-d1dff106]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-d1dff106]{background:#f5f6f7;border:1px solid #e5e7eb;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:28px;padding:4px 10px;transition:background-color .2s,border-color .2s;display:flex}.tool-call-node__header--clickable[data-v-d1dff106]{cursor:pointer}.tool-call-node__header--clickable[data-v-d1dff106]:hover{background:#ebecee}.tool-call-node__prefix[data-v-d1dff106]{align-items:center;gap:6px;min-width:0;display:flex}.tool-call-node__prefix-icon[data-v-d1dff106]{flex-shrink:0;font-size:14px}.tool-call-node__prefix-icon.is-spinning[data-v-d1dff106]{animation:1s linear infinite spin-d1dff106}@keyframes spin-d1dff106{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__title[data-v-d1dff106]{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tool-call-node__toggle[data-v-d1dff106]{flex-shrink:0}.tool-call-node__toggle-icon[data-v-d1dff106]{color:#9ca3af;font-size:12px}.smdr__body[data-v-d1dff106]{border:1px solid #e5e7eb;border-radius:8px;margin-top:8px;overflow:hidden}.smdr__error[data-v-d1dff106]{color:#ef4444;background:#fef2f2;padding:12px}.smdr__tabs[data-v-d1dff106]{background:#f9fafb;border-bottom:1px solid #e5e7eb;gap:0;display:flex;overflow-x:auto}.smdr__tab[data-v-d1dff106]{cursor:pointer;color:#6b7280;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:12px;transition:color .15s,border-color .15s}.smdr__tab[data-v-d1dff106]:hover{color:#374151}.smdr__tab--active[data-v-d1dff106]{color:var(--primary-color,#1677ff);border-bottom-color:var(--primary-color,#1677ff)}.smdr__content[data-v-d1dff106]{max-height:400px;padding:10px 12px;overflow-y:auto}.todos-top-panel[data-v-d03a50e5]{background:linear-gradient(#f9fbff 0%,#f3f8ff 100%);border:1px solid #d7e6ff;border-radius:12px;margin:0 20px 12px;padding:12px 14px}.todos-top-panel__header[data-v-d03a50e5]{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.todos-top-panel__title[data-v-d03a50e5]{color:#1f2d3d;font-size:13px;font-weight:600}.todos-top-panel__meta[data-v-d03a50e5]{color:#4e6796;align-items:center;gap:4px;font-size:12px;display:inline-flex}.todos-top-panel__meta-icon[data-v-d03a50e5]{font-size:12px}.todos-top-panel__list[data-v-d03a50e5]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.todos-top-panel__item[data-v-d03a50e5]{align-items:flex-start;gap:8px;display:flex}.todos-top-panel__status[data-v-d03a50e5]{flex-shrink:0;align-items:center;margin-top:1px;font-size:14px;display:flex}.todos-top-panel__status.is-pending[data-v-d03a50e5]{color:#9ca3af}.todos-top-panel__status.is-in_progress[data-v-d03a50e5]{color:#1677ff}.todos-top-panel__status.is-completed[data-v-d03a50e5]{color:#22c55e}.todos-top-panel__status.is-cancelled[data-v-d03a50e5]{color:#ef4444}.todos-top-panel__status .is-rotating[data-v-d03a50e5]{animation:1s linear infinite spin-d03a50e5}@keyframes spin-d03a50e5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.todos-top-panel__text[data-v-d03a50e5]{color:#374151;font-size:13px;line-height:1.5}.chat-panel[data-v-7d1dc6c2]{background:#fff;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.chat-header[data-v-7d1dc6c2]{border-bottom:1px solid var(--border-color-split,var(--border));flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.header-meta[data-v-7d1dc6c2]{flex-direction:column;gap:4px;min-width:0;display:flex}.header-actions[data-v-7d1dc6c2]{flex-shrink:0;align-items:center;gap:12px;display:flex}.conv-heading[data-v-7d1dc6c2]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600;line-height:1.4}.conv-subheading[data-v-7d1dc6c2]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:0;font-size:13px;line-height:1.5}.chat-body[data-v-7d1dc6c2]{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.empty-state[data-v-7d1dc6c2]{height:100%;color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.empty-icon[data-v-7d1dc6c2]{color:var(--primary-color,var(--primary));font-size:32px}.empty-title[data-v-7d1dc6c2]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600}.empty-sub[data-v-7d1dc6c2]{margin:0;font-size:13px}.messages-wrapper[data-v-7d1dc6c2]{flex:1;width:100%;min-height:0;display:flex}.input-footer[data-v-7d1dc6c2]{border-top:1px solid var(--border-color-split,var(--border));flex-shrink:0;padding:12px 16px 16px}.input-panel[data-v-7d1dc6c2]{width:100%}.sender-footer[data-v-7d1dc6c2]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.sender-footer__left[data-v-7d1dc6c2]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sender-footer__right[data-v-7d1dc6c2]{flex-shrink:0;align-items:center;gap:4px;display:flex}.agent-chat[data-v-2041f5e6]{background:var(--component-background,#fff);width:100%;height:100%;display:flex;position:relative;overflow:hidden}.agent-chat__sidebar[data-v-2041f5e6]{background:var(--bg-elevated,#f8fafc);border-right:1px solid var(--border-color-split,var(--border));flex-direction:column;flex-shrink:0;gap:10px;width:260px;min-width:260px;height:100%;padding:16px 12px;display:flex;overflow:hidden}.agent-chat__close-btn[data-v-2041f5e6]{display:none}.agent-chat__sidebar-header[data-v-2041f5e6]{justify-content:space-between;align-items:center;display:flex}.agent-chat__sidebar-title[data-v-2041f5e6]{color:var(--text-color,var(--text));font-size:13px;font-weight:600}.agent-chat__new-btn[data-v-2041f5e6]{height:26px;padding:0 6px;font-size:12px}.agent-chat__agent-select[data-v-2041f5e6]{width:100%}.agent-chat__search[data-v-2041f5e6]{border-radius:8px!important}.agent-chat__state-tip[data-v-2041f5e6]{color:var(--text-color-secondary,var(--text-muted));align-items:center;padding:4px 8px;font-size:12px;display:flex}.agent-chat__state-tip--error[data-v-2041f5e6]{color:#f87171}.agent-chat__conv-list[data-v-2041f5e6]{flex:1;overflow:hidden auto}.agent-chat__conv-list[data-v-2041f5e6]::-webkit-scrollbar{width:3px}.agent-chat__conv-list[data-v-2041f5e6]::-webkit-scrollbar-thumb{background:#00000014;border-radius:99px}.agent-chat__main[data-v-2041f5e6]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.agent-chat__toolbar[data-v-2041f5e6]{flex-shrink:0;padding:10px 12px 0;display:none}.agent-chat__history-btn[data-v-2041f5e6]{border-radius:999px;font-size:13px}.agent-chat__panel[data-v-2041f5e6]{flex:1;min-height:0}.agent-chat__mask[data-v-2041f5e6]{display:none}@media (width<=768px){.agent-chat__sidebar[data-v-2041f5e6]{z-index:100;border-right:none;width:260px;height:100dvh;transition:left .25s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:-260px;box-shadow:4px 0 24px #0000002e}.agent-chat__sidebar.is-open[data-v-2041f5e6]{left:0}.agent-chat__close-btn[data-v-2041f5e6]{width:28px;height:28px;color:var(--text-color,var(--text));cursor:pointer;z-index:1;background:#0000000f;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;top:12px;right:12px}.agent-chat__toolbar[data-v-2041f5e6]{display:block}.agent-chat__mask[data-v-2041f5e6]{z-index:90;background:#0f172a66;display:block;position:fixed;inset:0}}
1
+ .agent-picker-wrap[data-v-69e639be]{align-items:center;display:inline-flex}.agent-picker-label[data-v-69e639be]{color:var(--text-color,#262626);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:4px;padding:2px 4px;font-size:13px;line-height:1;transition:background .15s;display:inline-flex}.agent-picker-label[data-v-69e639be]:hover{background:var(--bg-color-secondary,#f5f5f5)}.agent-picker-label--disabled[data-v-69e639be]{cursor:not-allowed;opacity:.5}.agent-picker-label--disabled[data-v-69e639be]:hover{background:0 0}.agent-picker-arrow[data-v-69e639be]{color:var(--text-color-secondary,#8c8c8c);font-size:10px;transition:transform .15s}.agent-picker-menu[data-v-69e639be]{min-width:180px;max-width:280px}.agent-menu-item[data-v-69e639be]{justify-content:space-between;align-items:center;gap:6px;width:100%;display:flex}.agent-menu-label[data-v-69e639be]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.is-active .agent-menu-label[data-v-69e639be]{color:var(--primary-color,#1677ff);font-weight:600}.agent-menu-edit[data-v-69e639be]{color:var(--primary-color,#1677ff);border-radius:2px;flex-shrink:0;padding:2px 4px;font-size:12px;transition:background .15s}.agent-menu-edit[data-v-69e639be]:hover{background:var(--primary-color-bg,#e6f4ff)}.agent-menu-del[data-v-69e639be]{color:var(--error-color,#ff4d4f);border-radius:2px;flex-shrink:0;padding:2px 4px;font-size:12px;transition:background .15s}.agent-menu-del[data-v-69e639be]:hover{background:var(--error-color-bg,#fff2f0)}.agent-menu-add[data-v-69e639be]{color:var(--primary-color,#1677ff)}.think-node[data-v-5a2f210e]{margin:6px 0}.think-node__layout[data-v-5a2f210e]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-5a2f210e]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-5a2f210e]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-5a2f210e]{flex:none;align-items:center;gap:6px;padding-top:1px;display:inline-flex}.think-node__prefix-icon[data-v-5a2f210e]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node.is-thinking .think-node__prefix[data-v-5a2f210e],.think-node.is-thinking .think-node__toggle[data-v-5a2f210e]{color:var(--primary-color,#1677ff)}.think-node__prefix-icon.is-spinning[data-v-5a2f210e]{animation:1s linear infinite think-node-spin-5a2f210e}.think-node__content[data-v-5a2f210e]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;position:relative}.think-node__content--inline[data-v-5a2f210e]{flex:1}.think-node__content.is-collapsed[data-v-5a2f210e]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-5a2f210e]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-5a2f210e]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;margin-top:2px;padding:8px 10px 8px 28px;overflow-y:auto}.think-node__toggle[data-v-5a2f210e]{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:4px;min-height:20px;padding:2px 6px;font-size:12px;line-height:1;transition:background-color .2s,color .2s;display:inline-flex}.think-node__toggle[data-v-5a2f210e]:hover{background:color-mix(in srgb, var(--primary-color,#1677ff) 8%, transparent);color:color-mix(in srgb, var(--primary-color,#1677ff) 86%, #000)}.think-node__toggle[data-v-5a2f210e]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 20%, transparent);outline-offset:2px;border-radius:4px}.think-node__toggle-icon[data-v-5a2f210e]{font-size:12px}@keyframes think-node-spin-5a2f210e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.blockquote[data-v-6d8bbd17]{border-left:.25rem solid var(--blockquote-border-color,#e2e8f0);quotes:"“" "”" "‘" "’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em;font-style:italic;font-weight:500}.blockquote[data-v-6d8bbd17] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.checkbox-node[data-v-8dc6c46f]{vertical-align:middle;margin-right:.5rem}.checkbox-input[data-v-8dc6c46f]{cursor:default;margin:0}.definition-list[data-v-f88691d6]{margin:0 0 1rem}.definition-term[data-v-f88691d6]{margin-top:.5rem;font-weight:600}.definition-desc[data-v-f88691d6]{margin-bottom:.5rem;margin-left:1rem}.definition-list[data-v-f88691d6] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.emoji-node[data-v-de55dc97]{display:inline-block}.footnote-reference[data-v-01af0fee]{font-size:.75em;line-height:0}.footnote-link[data-v-01af0fee]{color:#0366d6;text-decoration:none}.footnote-link[data-v-01af0fee]:hover{text-decoration:underline}.html-inline-node[data-v-71cd1a9f]{display:inline}.html-inline-node--loading[data-v-71cd1a9f]{opacity:.85}code[data-v-ffb68151]{color:hsl(var(--foreground));background-color:hsl(var(--secondary));border:1px solid hsl(var(--border) / .9)}.inline-code-stream-delta[data-v-ffb68151]{animation-duration:var(--stream-update-fade-duration,var(--typewriter-fade-duration,.9s));animation-timing-function:var(--stream-update-fade-ease,var(--typewriter-fade-ease,ease-out));will-change:opacity;animation-fill-mode:both}.inline-code-stream-delta--a[data-v-ffb68151]{animation-name:inline-code-stream-update-fade-a-ffb68151}.inline-code-stream-delta--b[data-v-ffb68151]{animation-name:inline-code-stream-update-fade-b-ffb68151}@keyframes inline-code-stream-update-fade-a-ffb68151{0%{opacity:0}to{opacity:1}}@keyframes inline-code-stream-update-fade-b-ffb68151{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.inline-code-stream-delta[data-v-ffb68151]{animation:none!important}}.tooltip-enter-from[data-v-d524cc01]{opacity:0;transform:translateY(-6px)scale(.98)}.tooltip-enter-to[data-v-d524cc01],.tooltip-leave-from[data-v-d524cc01]{opacity:1;transform:translateY(0)scale(1)}.tooltip-leave-to[data-v-d524cc01]{opacity:0;transform:translateY(-6px)scale(.98)}.tooltip-enter-active[data-v-d524cc01],.tooltip-leave-active[data-v-d524cc01]{transition:opacity .12s linear}.tooltip-element[data-v-d524cc01]{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1)}.image-node__img[data-v-03adbc6f],.placeholder-layer[data-v-03adbc6f]{max-width:24rem}.image-node__img--inline[data-v-03adbc6f]{vertical-align:middle;display:inline-block;-o-object-fit:initial!important;object-fit:initial!important;width:auto!important;height:auto!important;min-height:0!important}.placeholder-layer--inline[data-v-03adbc6f]{min-height:auto!important}.image-node__error--inline[data-v-03adbc6f]{vertical-align:middle;display:inline-flex}.img-switch-enter-active[data-v-03adbc6f],.img-switch-leave-active[data-v-03adbc6f]{transition:opacity .22s,transform .22s}.img-switch-enter-from[data-v-03adbc6f],.img-switch-leave-to[data-v-03adbc6f]{opacity:0;transform:translateY(6px)}.img-switch-enter-to[data-v-03adbc6f],.img-switch-leave-from[data-v-03adbc6f]{opacity:1;transform:translateY(0)}.placeholder-layer[data-v-03adbc6f]{will-change:transform,opacity}@media (prefers-reduced-motion:reduce){.spinner[data-v-03adbc6f]{animation:none!important}.img-switch-enter-active[data-v-03adbc6f],.img-switch-leave-active[data-v-03adbc6f]{transition:none!important}}.text-node[data-v-03641323]{font-weight:inherit;vertical-align:baseline;display:inline}.text-node-center[data-v-03641323]{justify-content:center;width:100%;display:inline-flex}.text-node-stream-delta[data-v-03641323]{animation-duration:var(--stream-update-fade-duration,var(--typewriter-fade-duration,.9s));animation-timing-function:var(--stream-update-fade-ease,var(--typewriter-fade-ease,ease-out));will-change:opacity;animation-fill-mode:both}.text-node-stream-delta--a[data-v-03641323]{animation-name:text-node-stream-update-fade-a-03641323}.text-node-stream-delta--b[data-v-03641323]{animation-name:text-node-stream-update-fade-b-03641323}@keyframes text-node-stream-update-fade-a-03641323{0%{opacity:0}to{opacity:1}}@keyframes text-node-stream-update-fade-b-03641323{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.text-node-stream-delta[data-v-03641323]{animation:none!important}}.superscript-node[data-v-6dc1e3ba]{vertical-align:super;font-size:.8em}.subscript-node[data-v-69de9b81]{vertical-align:sub;font-size:.8em}.strong-node[data-v-af3ce037]{font-weight:700}.strikethrough-node[data-v-904d5bd1]{text-decoration:line-through}.link-node[data-v-a4831c9e]{color:var(--link-color,#0366d6);text-decoration:none}.link-node[data-v-a4831c9e]:hover{text-underline-offset:.2rem;text-decoration:underline}.link-loading .link-text-wrapper[data-v-a4831c9e]{position:relative}.link-loading[data-v-a4831c9e]{color:var(--link-color,#0366d6)}.link-loading .link-text[data-v-a4831c9e]{z-index:2;position:relative}.link-loading-indicator[data-v-a4831c9e]{height:var(--underline-height,2px);left:0;right:0;bottom:var(--underline-bottom,-3px);will-change:opacity;opacity:var(--underline-rest-opacity,.18);animation:underlinePulse-a4831c9e var(--underline-duration,1.6s) var(--underline-timing,ease-in-out) var(--underline-iteration,infinite);background:currentColor;border-radius:999px;position:absolute}@keyframes underlinePulse-a4831c9e{0%,to{opacity:var(--underline-rest-opacity,.18)}50%{opacity:var(--underline-opacity,.35)}}@media (prefers-reduced-motion:reduce){.link-loading-indicator[data-v-a4831c9e]{opacity:var(--underline-rest-opacity,.18);animation:none}}.insert-node[data-v-ab1ec9bc]{text-decoration:underline}.highlight-node[data-v-38e31bf6]{background-color:#ff0;padding:0 .2rem}.emphasis-node[data-v-8264674d]{font-style:italic}.footnote-anchor[data-v-4756ce0d]{margin-left:.5rem}.markstream-vue [class*=footnote-] .markdown-renderer,.markstream-vue .flex-1 .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.hard-break[data-v-50c58f70]{display:block}.heading-node[data-v-ffb7cf51]{font-weight:500;line-height:1.25}hr+.heading-node[data-v-ffb7cf51]{margin-top:0}.heading-1[data-v-ffb7cf51]{margin-top:0;margin-bottom:.888889em;font-size:2.25rem;font-weight:800;line-height:1.11111}.heading-2[data-v-ffb7cf51]{margin-top:2rem;margin-bottom:1rem;font-size:1.5rem;font-weight:700;line-height:1.33333}.heading-3[data-v-ffb7cf51]{margin-top:1.6em;margin-bottom:.6em;font-size:1.25rem;font-weight:600;line-height:1.66667}.heading-4[data-v-ffb7cf51]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}.heading-5[data-v-ffb7cf51],.heading-6[data-v-ffb7cf51]{margin:0;font-size:1rem;line-height:1.5rem}ol>.list-item[data-v-ce59e808]::marker{color:var(--list-item-counter-marker,#64748b);line-height:1.6}ul>.list-item[data-v-ce59e808]::marker{color:var(--list-item-marker,#cbd5e1)}.list-item[data-v-ce59e808] .markdown-renderer{content-visibility:visible;contain-intrinsic-size:0px 0px;contain:none}.list-node[data-v-8e81cbc8]{margin-top:1.25rem;margin-bottom:1.25rem;padding-left:1.625em}.list-decimal[data-v-8e81cbc8]{list-style-type:decimal}.list-disc[data-v-8e81cbc8]{list-style-type:disc}@media not all and (width>=1024px){.list-disc[data-v-8e81cbc8]{margin-top:1.33333em;margin-bottom:1.33333em;padding-left:1.55556em}}.html-block-node__raw[data-v-b7cace40]{white-space:pre-wrap;overflow-wrap:anywhere;opacity:.85}.html-block-node__placeholder[data-v-b7cace40]{flex-direction:column;gap:.35rem;padding:.5rem 0;display:flex}.html-block-node__placeholder-bar[data-v-b7cace40]{background-image:linear-gradient(90deg,#94a3b859,#94a3b81a,#94a3b859);background-size:200% 100%;border-radius:9999px;height:.8rem;animation:1.2s infinite html-block-node-shimmer-b7cace40;display:block}@keyframes html-block-node-shimmer-b7cace40{0%{background-position:0 0}to{background-position:200% 0}}.paragraph-node[data-v-944f1fd5]{margin:1.25em 0}li .paragraph-node[data-v-944f1fd5]{margin:0}.markstream-vue pre[class^=language-],.markstream-vue pre[class*=\ language-]{white-space:pre;tab-size:2;font-variant-ligatures:none;contain:content;backface-visibility:hidden;-webkit-font-smoothing:antialiased;overflow:auto;transform:translateZ(0)}.markstream-vue pre[class^=language-]>code,.markstream-vue pre[class*=\ language-]>code{display:block}.markstream-vue pre[class^=language-]:focus,.markstream-vue pre[class*=\ language-]:focus{outline:2px solid var(--vmdr-focus,#3b82f6);outline-offset:2px}.table-node-wrapper[data-v-369096fa]{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-gutter:stable;max-width:100%;position:relative;overflow-x:auto}.table-node[data-v-369096fa]{table-layout:fixed;border-collapse:collapse;width:100%}.table-node[data-v-369096fa] th,.table-node[data-v-369096fa] td{white-space:normal;overflow-wrap:break-word;word-break:normal}.table-node--loading tbody td[data-v-369096fa]{position:relative;overflow:hidden}.table-node--loading tbody td[data-v-369096fa]>*{visibility:hidden}.table-node--loading tbody td[data-v-369096fa]:after{content:"";will-change:background-position;background:linear-gradient(90deg,#94a3b829 25%,#94a3b847,#94a3b829 75%) 0 0/200% 100%;border-radius:.25rem;animation:1.2s linear infinite table-node-shimmer-369096fa;position:absolute;inset:0}.table-node__loading[data-v-369096fa]{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.table-node__spinner[data-v-369096fa]{will-change:transform;border:2px solid #5e687940;border-top-color:#5e6879cc;border-radius:9999px;width:2.5rem;height:2.5rem}.table-node-fade-enter-active[data-v-369096fa],.table-node-fade-leave-active[data-v-369096fa]{transition:opacity .18s}.table-node-fade-enter-from[data-v-369096fa],.table-node-fade-leave-to[data-v-369096fa]{opacity:0}[data-v-369096fa] .table-node .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px;display:contents}[data-v-369096fa] .table-node .markdown-renderer .node-slot,[data-v-369096fa] .table-node .markdown-renderer .node-content,[data-v-369096fa] .table-node .markdown-renderer .node-space{display:contents}[data-v-369096fa] .table-node .text-node,[data-v-369096fa] .table-node code{white-space:inherit;overflow-wrap:inherit;word-break:inherit;max-width:none}@keyframes table-node-shimmer-369096fa{0%{background-position:0 0}50%{background-position:100% 0}to{background-position:200% 0}}.hr+.table-node-wrapper[data-v-369096fa],.hr+.table-node-wrapper .table-node[data-v-369096fa]{margin-top:0}.sr-only[data-v-369096fa]{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hr-node[data-v-639cbad9]{border-top-width:1px;border-color:var(--hr-border-color,#e2e8f0);margin-top:3rem;margin-bottom:3rem}.vmr-container[data-v-a88d22ce]{border-width:1px 1px 1px 4px;border-radius:.5rem;margin-top:1rem;margin-bottom:1rem;padding:1rem}.code-block-container[data-v-2e273ed5]{contain:content}.code-block-content[data-v-2e273ed5]{max-height:min(70vh,500px);font-family:var(--vscode-editor-font-family,"Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);line-height:var(--vscode-editor-line-height,1.5);transition:max-height .3s;overflow:auto}.code-block-render[data-v-2e273ed5]{min-height:1px}[data-v-2e273ed5] .code-block-render pre,[data-v-2e273ed5] .code-block-content .shiki{font-family:inherit;font-size:inherit;line-height:inherit}[data-v-2e273ed5] .code-block-content .shiki-fallback{color:inherit;white-space:pre;font-family:inherit;font-size:inherit;line-height:inherit;background:0 0;margin:0;padding:1rem}.code-fallback-plain[data-v-2e273ed5]{white-space:pre;color:inherit;font-size:inherit;line-height:inherit;background:0 0;font-family:inherit;overflow:auto}[data-v-2e273ed5] .code-block-content pre{padding:1rem}.code-action-btn[data-v-2e273ed5]{cursor:pointer;opacity:.7;transition:opacity .2s}.code-action-btn[data-v-2e273ed5]:hover{opacity:1}.code-action-btn[data-v-2e273ed5]:disabled{opacity:.3;cursor:not-allowed}.code-loading-placeholder[data-v-2e273ed5]{min-height:120px;padding:1rem}.loading-skeleton[data-v-2e273ed5]{flex-direction:column;gap:.75rem;display:flex}.skeleton-line[data-v-2e273ed5]{background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%) 0 0/400% 100%;border-radius:.25rem;height:1rem;animation:1.2s ease-in-out infinite code-skeleton-shimmer-2e273ed5}.code-block-container.is-dark .skeleton-line[data-v-2e273ed5]{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%) 0 0/400% 100%}.skeleton-line.short[data-v-2e273ed5]{width:60%}@keyframes code-skeleton-shimmer-2e273ed5{0%{background-position:100% 0}to{background-position:0 0}}.markdown-renderer[data-v-7e76e4d7]{contain:layout;content-visibility:auto;contain-intrinsic-size:800px 600px;position:relative}.markdown-renderer.virtualized[data-v-7e76e4d7]{content-visibility:visible;contain-intrinsic-size:auto}.height-estimation-probes[data-v-7e76e4d7]{visibility:hidden;pointer-events:none;z-index:-1;position:absolute;top:0;left:-100000px;overflow:hidden}.node-slot[data-v-7e76e4d7],.node-content[data-v-7e76e4d7]{width:100%}.node-placeholder[data-v-7e76e4d7]{background-image:linear-gradient(90deg,#94a3b82e,#94a3b80d,#94a3b82e);background-size:200% 100%;border-radius:.5rem;width:100%;min-height:1rem;margin:.25rem 0;animation:1.1s ease-in-out infinite node-placeholder-shimmer-7e76e4d7}.node-placeholder[data-v-7e76e4d7]:first-child{margin-top:0}@keyframes node-placeholder-shimmer-7e76e4d7{0%{background-position:200% 0}to{background-position:-200% 0}}.node-spacer[data-v-7e76e4d7]{width:100%}.unknown-node[data-v-7e76e4d7]{color:#6a737d;margin:1rem 0;font-style:italic}.markstream-vue .typewriter-enter-from{opacity:0}.markstream-vue .typewriter-enter-active{transition:opacity var(--typewriter-fade-duration,.9s) var(--typewriter-fade-ease,ease-out);will-change:opacity}.markstream-vue .typewriter-enter-to{opacity:1}.admonition[data-v-ee240a2a]{--admonition-bg:#f8f8f8;--admonition-border:#eaecef;--admonition-header-bg:#00000008;--admonition-text:#111827;--admonition-muted:#374151;--admonition-note-color:#448aff;--admonition-tip-color:#00bfa5;--admonition-warning-color:#ff9100;--admonition-danger-color:#ff5252;border-left:4px solid var(--admonition-border);background-color:var(--admonition-bg);color:var(--admonition-text);border-radius:4px;margin:1rem 0;padding:0;overflow:hidden}.admonition-header[data-v-ee240a2a]{background-color:var(--admonition-header-bg);color:var(--admonition-muted);align-items:center;padding:.5rem 1rem;font-weight:600;display:flex}.admonition-icon[data-v-ee240a2a]{color:inherit;margin-right:.5rem}.admonition-content[data-v-ee240a2a]{color:var(--admonition-text);padding:.5rem 1rem 1rem}.admonition-note[data-v-ee240a2a]{border-left-color:var(--admonition-note-color)}.admonition-note .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff0f}.admonition-info[data-v-ee240a2a]{border-left-color:var(--admonition-note-color)}.admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff0f}.admonition-tip[data-v-ee240a2a]{border-left-color:var(--admonition-tip-color)}.admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa50f}.admonition-warning[data-v-ee240a2a]{border-left-color:var(--admonition-warning-color)}.admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91000f}.admonition-danger[data-v-ee240a2a]{border-left-color:var(--admonition-danger-color)}.admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52520f}.admonition-error[data-v-ee240a2a]{border-left-color:var(--admonition-danger-color)}.admonition-error .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52520f}.admonition-caution[data-v-ee240a2a]{border-left-color:var(--admonition-warning-color)}.admonition-caution .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91000f}.admonition-content[data-v-ee240a2a] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.admonition-toggle[data-v-ee240a2a]{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:.25rem .5rem;font-size:.9rem}.admonition-toggle[data-v-ee240a2a]:focus{outline-offset:2px;outline:2px solid #00000014}.admonition.is-dark[data-v-ee240a2a]{--admonition-bg:#0b1220;--admonition-border:#ffffff0f;--admonition-header-bg:#ffffff08;--admonition-text:#e6eef8;--admonition-muted:#cbd5e1}.admonition.is-dark .admonition-note .admonition-header[data-v-ee240a2a],.admonition.is-dark .admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff1f}.admonition.is-dark .admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa51f}.admonition.is-dark .admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91001f}.admonition.is-dark .admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52521f}@media (prefers-color-scheme:dark){.admonition[data-v-ee240a2a]{--admonition-bg:#0b1220;--admonition-border:#ffffff0f;--admonition-header-bg:#ffffff08;--admonition-text:#e6eef8;--admonition-muted:#cbd5e1}.admonition-note .admonition-header[data-v-ee240a2a],.admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff1f}.admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa51f}.admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91001f}.admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52521f}}:where(.markstream-vue) button{appearance:none;font:inherit;color:inherit;background:0 0;border:0}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.markstream-vue .sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markstream-vue .pointer-events-none{pointer-events:none}.markstream-vue .\!visible{visibility:visible!important}.markstream-vue .visible{visibility:visible}.markstream-vue .collapse{visibility:collapse}.markstream-vue .static{position:static}.markstream-vue .fixed{position:fixed}.markstream-vue .absolute{position:absolute}.markstream-vue .relative{position:relative}.markstream-vue .inset-0{inset:0}.markstream-vue .right-2{right:.5rem}.markstream-vue .right-6{right:1.5rem}.markstream-vue .top-2{top:.5rem}.markstream-vue .top-6{top:1.5rem}.markstream-vue .z-10{z-index:10}.markstream-vue .z-50{z-index:50}.markstream-vue .z-\[9999\]{z-index:9999}.markstream-vue .m-0{margin:0}.markstream-vue .mx-0\.5{margin-left:.125rem;margin-right:.125rem}.markstream-vue .my-0{margin-top:0;margin-bottom:0}.markstream-vue .my-2{margin-top:.5rem;margin-bottom:.5rem}.markstream-vue .my-4{margin-top:1rem;margin-bottom:1rem}.markstream-vue .my-5{margin-top:1.25rem;margin-bottom:1.25rem}.markstream-vue .my-8{margin-top:2rem;margin-bottom:2rem}.markstream-vue .mb-2{margin-bottom:.5rem}.markstream-vue .mb-4{margin-bottom:1rem}.markstream-vue .mb-\[calc\(3\/5\*1em\)\]{margin-bottom:.6em}.markstream-vue .mb-\[calc\(8\/9\*1em\)\]{margin-bottom:.888889em}.markstream-vue .mr-2{margin-right:.5rem}.markstream-vue .mt-0{margin-top:0}.markstream-vue .mt-2{margin-top:.5rem}.markstream-vue .mt-6{margin-top:1.5rem}.markstream-vue .mt-8{margin-top:2rem}.markstream-vue .mt-\[calc\(8\/5\*1em\)\]{margin-top:1.6em}.markstream-vue .block{display:block}.markstream-vue .inline-block{display:inline-block}.markstream-vue .inline{display:inline}.markstream-vue .flex{display:flex}.markstream-vue .inline-flex{display:inline-flex}.markstream-vue .table{display:table}.markstream-vue .grid{display:grid}.markstream-vue .contents{display:contents}.markstream-vue .list-item{display:list-item}.markstream-vue .hidden{display:none}.markstream-vue .h-3{height:.75rem}.markstream-vue .h-4{height:1rem}.markstream-vue .h-auto{height:auto}.markstream-vue .h-full{height:100%}.markstream-vue .max-h-full{max-height:100%}.markstream-vue .min-h-\[360px\]{min-height:360px}.markstream-vue .min-h-\[40px\]{min-height:40px}.markstream-vue .min-h-full{min-height:100%}.markstream-vue .w-2\/3{width:66.6667%}.markstream-vue .w-3{width:.75rem}.markstream-vue .w-4{width:1rem}.markstream-vue .w-4\/5{width:80%}.markstream-vue .w-full{width:100%}.markstream-vue .max-w-full{max-width:100%}.markstream-vue .flex-1{flex:1}.markstream-vue .flex-shrink{flex-shrink:1}.markstream-vue .flex-shrink-0{flex-shrink:0}.markstream-vue .shrink{flex-shrink:1}.markstream-vue .border-collapse{border-collapse:collapse}.markstream-vue .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.markstream-vue .animate-spin{animation:1s linear infinite spin}.markstream-vue .cursor-grab{cursor:grab}.markstream-vue .cursor-grabbing{cursor:grabbing}.markstream-vue .cursor-not-allowed{cursor:not-allowed}.markstream-vue .cursor-pointer{cursor:pointer}.markstream-vue .resize{resize:both}.markstream-vue .list-decimal{list-style-type:decimal}.markstream-vue .list-disc{list-style-type:disc}.markstream-vue .flex-wrap{flex-wrap:wrap}.markstream-vue .items-center{align-items:center}.markstream-vue .items-baseline{align-items:baseline}.markstream-vue .justify-center{justify-content:center}.markstream-vue .justify-between{justify-content:space-between}.markstream-vue .gap-1\.5{gap:.375rem}.markstream-vue .gap-2{gap:.5rem}.markstream-vue .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.markstream-vue .gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.markstream-vue .overflow-hidden{overflow:hidden}.markstream-vue .overflow-x-auto{overflow-x:auto}.markstream-vue .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.markstream-vue .whitespace-normal{white-space:normal}.markstream-vue .whitespace-nowrap{white-space:nowrap}.markstream-vue .whitespace-pre-wrap{white-space:pre-wrap}.markstream-vue .break-words{overflow-wrap:break-word}.markstream-vue .rounded{border-radius:.25rem}.markstream-vue .rounded-full{border-radius:9999px}.markstream-vue .rounded-lg{border-radius:.5rem}.markstream-vue .rounded-md{border-radius:.375rem}.markstream-vue .border{border-width:1px}.markstream-vue .border-2{border-width:2px}.markstream-vue .border-b{border-bottom-width:1px}.markstream-vue .border-t{border-top-width:1px}.markstream-vue .border-solid{border-style:solid}.markstream-vue .border-\[\#eaecef\]{--tw-border-opacity:1;border-color:rgb(234 236 239/var(--tw-border-opacity,1))}.markstream-vue .border-\[var\(--hr-border-color\,\#e2e8f0\)\]{border-color:var(--hr-border-color,#e2e8f0)}.markstream-vue .border-\[var\(--table-border\,\#cbd5e1\)\]{border-color:var(--table-border,#cbd5e1)}.markstream-vue .border-current{border-color:currentColor}.markstream-vue .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.markstream-vue .border-gray-400\/5{border-color:#9ca3af0d}.markstream-vue .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.markstream-vue .border-gray-700\/30{border-color:#3741514d}.markstream-vue .border-t-transparent{border-top-color:#0000}.markstream-vue .bg-\[hsl\(var\(--muted\)\)\]{background-color:hsl(var(--muted))}.markstream-vue .bg-\[hsl\(var\(--secondary\)\)\]{background-color:hsl(var(--secondary))}.markstream-vue .bg-black\/70{background-color:#000000b3}.markstream-vue .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.markstream-vue .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.markstream-vue .p-0{padding:0}.markstream-vue .p-0\.5{padding:.125rem}.markstream-vue .p-2{padding:.5rem}.markstream-vue .p-4{padding:1rem}.markstream-vue .p-\[calc\(4\/7\*1em\)\]{padding:.571429em}.markstream-vue .px-1{padding-left:.25rem;padding-right:.25rem}.markstream-vue .px-1\.5{padding-left:.375rem;padding-right:.375rem}.markstream-vue .px-2{padding-left:.5rem;padding-right:.5rem}.markstream-vue .px-2\.5{padding-left:.625rem;padding-right:.625rem}.markstream-vue .px-3{padding-left:.75rem;padding-right:.75rem}.markstream-vue .px-4{padding-left:1rem;padding-right:1rem}.markstream-vue .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.markstream-vue .py-1{padding-top:.25rem;padding-bottom:.25rem}.markstream-vue .py-2{padding-top:.5rem;padding-bottom:.5rem}.markstream-vue .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.markstream-vue .py-4{padding-top:1rem;padding-bottom:1rem}.markstream-vue .pb-3{padding-bottom:.75rem}.markstream-vue .pl-1\.5{padding-left:.375rem}.markstream-vue .pl-\[calc\(13\/8\*1em\)\]{padding-left:1.625em}.markstream-vue .pt-2{padding-top:.5rem}.markstream-vue .text-left{text-align:left}.markstream-vue .text-center{text-align:center}.markstream-vue .text-right{text-align:right}.markstream-vue .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.markstream-vue .text-2xl{font-size:1.5rem;line-height:2rem}.markstream-vue .text-4xl{font-size:2.25rem;line-height:2.5rem}.markstream-vue .text-\[85\%\]{font-size:85%}.markstream-vue .text-base{font-size:1rem;line-height:1.5rem}.markstream-vue .text-sm{font-size:.875rem;line-height:1.25rem}.markstream-vue .text-xl{font-size:1.25rem;line-height:1.75rem}.markstream-vue .text-xs{font-size:.75rem;line-height:1rem}.markstream-vue .font-medium{font-weight:500}.markstream-vue .font-semibold{font-weight:600}.markstream-vue .uppercase{text-transform:uppercase}.markstream-vue .lowercase{text-transform:lowercase}.markstream-vue .italic{font-style:italic}.markstream-vue .leading-\[calc\(10\/9\*1\)\]{line-height:1.11111}.markstream-vue .leading-\[calc\(4\/3\*1\)\]{line-height:1.33333}.markstream-vue .leading-\[calc\(5\/3\*1\)\]{line-height:1.66667}.markstream-vue .leading-\[normal\]{line-height:normal}.markstream-vue .leading-relaxed{line-height:1.625}.markstream-vue .text-\[\#0366d6\]{--tw-text-opacity:1;color:rgb(3 102 214/var(--tw-text-opacity,1))}.markstream-vue .text-\[hsl\(var\(--muted-foreground\)\)\]{color:hsl(var(--muted-foreground))}.markstream-vue .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.markstream-vue .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.markstream-vue .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.markstream-vue .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.markstream-vue .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.markstream-vue .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.markstream-vue .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.markstream-vue .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.markstream-vue .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.markstream-vue .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.markstream-vue .underline{text-decoration-line:underline}.markstream-vue .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.markstream-vue .opacity-0{opacity:0}.markstream-vue .opacity-100{opacity:1}.markstream-vue .opacity-50{opacity:.5}.markstream-vue .shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .outline{outline-style:solid}.markstream-vue .blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-vue .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-vue .backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-vue .backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-vue .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-\[height\]{transition-property:height;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .duration-100{transition-duration:.1s}.markstream-vue .duration-150{transition-duration:.15s}.markstream-vue .duration-200{transition-duration:.2s}.markstream-vue .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.markstream-vue{--border:214.3 31.8% 91.4%;--background:0 0% 100%;--foreground:222.2 84% 4.9%;--secondary:210 40% 96%;--muted:210 40% 96%;--muted-foreground:215.4 16.3% 46.9%}.dark .markstream-vue,.markstream-vue.dark{--border:217.2 32.6% 17.5%;--background:222.2 84% 4.9%;--foreground:210 40% 98%;--secondary:217.2 32.6% 17.5%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%}body>div[id^=dmermaid-]{pointer-events:none;width:0;height:0;position:fixed;top:0;left:0;overflow:hidden}.markstream-vue .before\:content-\[\'\'\]:before,.markstream-vue .after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.markstream-vue .hover\:bg-\[hsl\(var\(--secondary\)\)\]:hover{background-color:hsl(var(--secondary))}.markstream-vue .hover\:bg-\[var\(--vscode-editor-selectionBackground\)\]:hover{background-color:var(--vscode-editor-selectionBackground)}.markstream-vue .hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.markstream-vue .hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.markstream-vue .hover\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.markstream-vue .hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.markstream-vue .hover\:underline:hover{text-decoration-line:underline}@media not all and (width>=1024px){.markstream-vue .max-lg\:my-\[calc\(4\/3\*1em\)\]{margin-top:1.33333em;margin-bottom:1.33333em}.markstream-vue .max-lg\:pl-\[calc\(14\/9\*1em\)\]{padding-left:1.55556em}}.math-inline-wrapper[data-v-d4b863b7]{display:inline-block;position:relative}.math-inline[data-v-d4b863b7]{vertical-align:middle;display:inline-block}.math-inline--fallback[data-v-d4b863b7]{white-space:pre-wrap}.math-inline__loading[data-v-d4b863b7]{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.math-inline__spinner[data-v-d4b863b7]{will-change:transform;border:2px solid #5e687940;border-top-color:#5e6879cc;border-radius:9999px;width:1rem;height:1rem}.table-node-fade-enter-active[data-v-d4b863b7],.table-node-fade-leave-active[data-v-d4b863b7]{transition:opacity .18s}.table-node-fade-enter-from[data-v-d4b863b7],.table-node-fade-leave-to[data-v-d4b863b7]{opacity:0}.sr-only[data-v-d4b863b7]{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.math-loading-overlay[data-v-f19e21a0]{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;min-height:40px;display:flex;position:absolute;inset:0}.math-loading-spinner[data-v-f19e21a0]{border:2px solid #0000001a;border-top-color:#0009;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite math-spin-f19e21a0}@keyframes math-spin-f19e21a0{to{transform:rotate(360deg)}}.math-rendering[data-v-f19e21a0]{opacity:.3;transition:opacity .2s}.math-block__fallback[data-v-f19e21a0]{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.math-fade-enter-active[data-v-f19e21a0],.math-fade-leave-active[data-v-f19e21a0]{transition:opacity .3s}.math-fade-enter-from[data-v-f19e21a0],.math-fade-leave-to[data-v-f19e21a0]{opacity:0}@media (prefers-color-scheme:dark){.math-loading-overlay[data-v-f19e21a0]{background-color:#0009}.math-loading-spinner[data-v-f19e21a0]{border-color:#fffc #fff3 #fff3}}.html-preview-frame__backdrop[data-v-296dd89d]{z-index:50;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.html-preview-frame__backdrop--dark[data-v-296dd89d]{background-color:#0f172acc}.html-preview-frame[data-v-296dd89d]{background-color:#fff;border-radius:.5rem;flex-direction:column;width:80vw;max-width:960px;height:70vh;display:flex;overflow:hidden;box-shadow:0 10px 40px #00000040}.html-preview-frame--dark[data-v-296dd89d]{color:#e5e7eb;background-color:#020617;box-shadow:0 10px 40px #0009}.html-preview-frame__header[data-v-296dd89d]{border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.html-preview-frame--dark .html-preview-frame__header[data-v-296dd89d]{border-bottom-color:#94a3b859}.html-preview-frame__title[data-v-296dd89d]{letter-spacing:.02em;text-transform:uppercase;opacity:.85;align-items:center;gap:.4rem;font-size:.75rem;font-weight:500;display:inline-flex}.html-preview-frame__dot[data-v-296dd89d]{background-color:#22c55e;border-radius:999px;width:.5rem;height:.5rem}.html-preview-frame--dark .html-preview-frame__dot[data-v-296dd89d]{background-color:#4ade80}.html-preview-frame__label[data-v-296dd89d]{white-space:nowrap}.html-preview-frame__close[data-v-296dd89d]{cursor:pointer;background:0 0;border:none;font-size:1.25rem;line-height:1}.html-preview-frame__close--dark[data-v-296dd89d]{color:#e5e7eb}.html-preview-frame__iframe[data-v-296dd89d]{border:none;width:100%;height:100%;display:block}@media (width<=640px){.html-preview-frame[data-v-296dd89d]{border-radius:0;width:100vw;height:80vh}}.code-block-container[data-v-1a55f98f]{contain:content;content-visibility:auto;contain-intrinsic-size:320px 180px;--markstream-code-fallback-bg:#fff;--markstream-code-fallback-fg:#111827;--markstream-code-border-color:#e5e7eb;--vscode-editor-selectionBackground:var(--markstream-code-fallback-selection-bg);--markstream-code-fallback-selection-bg:#0000000f;--markstream-diff-frame-border:#cbd5e18f;--markstream-diff-frame-shadow:0 16px 40px -32px #0f172a2e;--markstream-diff-shell-fg:#0f172a;--markstream-diff-shell-muted:#64748b;--markstream-diff-shell-border:#94a3b82e;--markstream-diff-shell-shadow:0 30px 70px -48px #0f172a6b;--markstream-diff-shell-bg:radial-gradient(circle at top center, #ffffffe6, transparent 55%), linear-gradient(180deg, #fffdfa 0%, #fbfcfe 100%);--markstream-diff-header-border:#e2e8f0eb;--markstream-diff-stage-bg:radial-gradient(circle at top center, #fffffff2, transparent 60%), linear-gradient(180deg, #fcfdff 0%, #f6f8fb 100%);--markstream-diff-editor-bg:#fff;--markstream-diff-editor-fg:#435266;--markstream-diff-unchanged-fg:lab(36.247% .0071872 -.000424832);--markstream-diff-unchanged-bg:lab(95.9989% .0180531 -.0010643);--markstream-diff-unchanged-divider:#fffffff0;--markstream-diff-focus:#0ea5e96b;--markstream-diff-widget-shadow:#0f172a42;--markstream-diff-action-hover:#0f172a0f;--markstream-diff-panel-bg:linear-gradient(180deg, #fff 0%, #fbfcfe 100%);--markstream-diff-panel-bg-soft:#fff;--markstream-diff-panel-bg-strong:#fff;--markstream-diff-panel-border:#e2e8f04d;--markstream-diff-pane-divider:#e2e8f06b;--markstream-diff-gutter-bg:transparent;--markstream-diff-gutter-guide:transparent;--markstream-diff-gutter-gap:16px;--markstream-diff-line-number:#525252e0;--markstream-diff-line-number-active:#525252e0;--markstream-diff-added-fg:#14b8a6;--markstream-diff-removed-fg:#ff3658;--markstream-diff-added-line:#e8f9f5fa;--markstream-diff-removed-line:#fff1f1fa;--markstream-diff-added-inline:#c5f5dbf5;--markstream-diff-removed-inline:#ffd7d9eb;--markstream-diff-added-inline-border:transparent;--markstream-diff-removed-inline-border:transparent;--markstream-diff-added-gutter:linear-gradient(90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width,4px), #14b8a614 var(--stream-monaco-gutter-marker-width,4px) 100%);--markstream-diff-removed-gutter:repeating-linear-gradient(180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px) left / var(--stream-monaco-gutter-marker-width,4px) 100% no-repeat, linear-gradient(90deg, #ff365814 0 100%);--markstream-diff-added-line-fill:#e7f8f4f5;--markstream-diff-removed-line-fill:#fff1f1fa;container-type:inline-size}.code-block-container.is-dark[data-v-1a55f98f]{--markstream-code-fallback-bg:#111827;--markstream-code-fallback-fg:#e5e7eb;--markstream-code-border-color:#3741514d;--markstream-code-fallback-selection-bg:#ffffff14;--markstream-diff-frame-border:#52525b8f;--markstream-diff-frame-shadow:0 18px 40px -30px #000000d6;--markstream-diff-shell-fg:#e2e8f0;--markstream-diff-shell-muted:#94a3b8;--markstream-diff-shell-border:#52525b8f;--markstream-diff-shell-shadow:0 34px 80px -52px #000000b8;--markstream-diff-shell-bg:#0a0a0bfc;--markstream-diff-header-border:#3f3f46d1;--markstream-diff-stage-bg:#0a0a0bfc;--markstream-diff-editor-bg:#0c0c0efc;--markstream-diff-editor-fg:#b6c2d3;--markstream-diff-unchanged-fg:#cbd5e1;--markstream-diff-unchanged-bg:#18181beb;--markstream-diff-unchanged-divider:#ffffff2e;--markstream-diff-focus:#60a5fa6b;--markstream-diff-widget-shadow:#000000b8;--markstream-diff-action-hover:#ffffff14;--markstream-diff-panel-bg:#0a0a0bfc;--markstream-diff-panel-bg-soft:#0a0a0bfc;--markstream-diff-panel-bg-strong:#0a0a0bfc;--markstream-diff-panel-border:#52525b4d;--markstream-diff-pane-divider:#52525b57;--markstream-diff-gutter-bg:linear-gradient(180deg, #0d0d0ff0 0%, #09090afa 100%);--markstream-diff-gutter-guide:#a1a1aa14;--markstream-diff-gutter-gap:16px;--markstream-diff-line-number:#a1a1aaad;--markstream-diff-line-number-active:#e4e4e7d1;--markstream-diff-added-fg:#5eead4;--markstream-diff-removed-fg:#fda4af;--markstream-diff-added-line:#0d94882e;--markstream-diff-removed-line:#e11d482e;--markstream-diff-added-inline:#2dd4bf3d;--markstream-diff-removed-inline:#fb71853d;--markstream-diff-added-inline-border:transparent;--markstream-diff-removed-inline-border:transparent;--markstream-diff-added-gutter:linear-gradient(90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width,4px), #5eead433 var(--stream-monaco-gutter-marker-width,4px) 100%);--markstream-diff-removed-gutter:repeating-linear-gradient(180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px) left / var(--stream-monaco-gutter-marker-width,4px) 100% no-repeat, linear-gradient(90deg, #fda4af2e 0 100%);--markstream-diff-added-line-fill:linear-gradient(90deg, #0f766e61 0%, #0d948847 100%);--markstream-diff-removed-line-fill:linear-gradient(90deg, #9f123961 0%, #e11d4847 100%)}.code-editor-container[data-v-1a55f98f]{transition:height .18s,max-height .18s}.code-block-header[data-v-1a55f98f]{gap:16px}.code-header-main[data-v-1a55f98f]{flex:auto;align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.code-header-copy[data-v-1a55f98f]{gap:2px;min-width:0;display:grid}.code-header-actions[data-v-1a55f98f]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.code-header-title[data-v-1a55f98f]{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;font-size:14px;font-weight:650;overflow:hidden}.code-header-caption[data-v-1a55f98f]{text-overflow:ellipsis;white-space:nowrap;color:color-mix(in srgb,var(--vscode-editor-foreground,currentColor) 62%,transparent);font-size:12px;overflow:hidden}.code-editor-layer[data-v-1a55f98f]{min-width:0;display:grid}.code-editor-layer>.code-editor-container[data-v-1a55f98f],[data-v-1a55f98f] .code-editor-layer>pre.code-pre-fallback{grid-area:1/1}.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .monaco-editor-background,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .lines-content{background:var(--vscode-editor-background,var(--markstream-code-fallback-bg))!important}.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-lines,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-line,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-line span,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .line-numbers{color:var(--vscode-editor-foreground,var(--markstream-code-fallback-fg))!important}.code-block-container.is-diff .code-block-header[data-v-1a55f98f]{color:var(--markstream-diff-shell-fg);border-bottom-color:var(--markstream-diff-header-border);background:0 0;padding:18px 20px 14px}.code-block-container.is-diff[data-v-1a55f98f]{background:var(--markstream-diff-shell-bg);box-shadow:var(--markstream-diff-shell-shadow);border-color:var(--markstream-diff-shell-border);--vscode-editor-selectionBackground:var(--markstream-diff-action-hover)}.code-block-container.is-diff .code-header-caption[data-v-1a55f98f]{color:var(--markstream-diff-shell-muted)}.code-block-container.is-diff .code-editor-layer[data-v-1a55f98f]{background:var(--markstream-diff-stage-bg);--vscode-editor-background:var(--markstream-diff-editor-bg);--vscode-editor-foreground:var(--markstream-diff-editor-fg);--vscode-diffEditor-unchangedRegionForeground:var(--markstream-diff-unchanged-fg);--vscode-diffEditor-unchangedRegionBackground:var(--markstream-diff-unchanged-bg);--vscode-focusBorder:var(--markstream-diff-focus);--vscode-widget-shadow:var(--markstream-diff-widget-shadow);--vscode-editor-selectionBackground:color-mix(in srgb, var(--markstream-diff-editor-bg) 90%, var(--markstream-diff-editor-fg) 10%);--stream-monaco-editor-bg:var(--markstream-diff-editor-bg);--stream-monaco-editor-fg:var(--markstream-diff-editor-fg);--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg);--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg);--stream-monaco-frame-radius:18px;--stream-monaco-fixed-editor-bg:var(--markstream-diff-panel-bg-strong);--stream-monaco-frame-border:var(--markstream-diff-frame-border);--stream-monaco-frame-shadow:var(--markstream-diff-frame-shadow);--stream-monaco-panel-bg:var(--markstream-diff-panel-bg);--stream-monaco-panel-bg-soft:var(--markstream-diff-panel-bg-soft);--stream-monaco-panel-bg-strong:var(--markstream-diff-panel-bg-strong);--stream-monaco-panel-border:var(--markstream-diff-panel-border);--stream-monaco-pane-divider:var(--markstream-diff-pane-divider);--stream-monaco-gutter-bg:var(--markstream-diff-gutter-bg);--stream-monaco-gutter-guide:var(--markstream-diff-gutter-guide);--stream-monaco-gutter-marker-width:4px;--stream-monaco-gutter-gap:var(--markstream-diff-gutter-gap);--stream-monaco-line-number:var(--markstream-diff-line-number);--stream-monaco-line-number-active:var(--markstream-diff-line-number-active);--stream-monaco-line-number-left:calc(var(--stream-monaco-gutter-marker-width) + var(--stream-monaco-gutter-gap));--stream-monaco-line-number-width:36px;--stream-monaco-line-number-align:center;--stream-monaco-original-margin-width:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2) + var(--stream-monaco-line-number-width));--stream-monaco-original-scrollable-left:var(--stream-monaco-original-margin-width);--stream-monaco-original-scrollable-width:calc(100% - var(--stream-monaco-original-margin-width));--stream-monaco-modified-margin-width:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2) + var(--stream-monaco-line-number-width));--stream-monaco-modified-scrollable-left:var(--stream-monaco-modified-margin-width);--stream-monaco-modified-scrollable-width:calc(100% - var(--stream-monaco-modified-margin-width));--stream-monaco-added-fg:var(--markstream-diff-added-fg);--stream-monaco-removed-fg:var(--markstream-diff-removed-fg);--stream-monaco-added-line:var(--markstream-diff-added-line);--stream-monaco-removed-line:var(--markstream-diff-removed-line);--stream-monaco-added-inline:var(--markstream-diff-added-inline);--stream-monaco-removed-inline:var(--markstream-diff-removed-inline);--stream-monaco-added-outline:transparent;--stream-monaco-removed-outline:transparent;--stream-monaco-added-inline-border:var(--markstream-diff-added-inline-border);--stream-monaco-removed-inline-border:var(--markstream-diff-removed-inline-border);--stream-monaco-added-line-shadow:none;--stream-monaco-removed-line-shadow:none;--stream-monaco-added-gutter:var(--markstream-diff-added-gutter);--stream-monaco-removed-gutter:var(--markstream-diff-removed-gutter);--stream-monaco-added-line-fill:var(--markstream-diff-added-line-fill);--stream-monaco-removed-line-fill:var(--markstream-diff-removed-line-fill);padding:4px 4px 8px}.code-block-container.is-diff.is-dark .code-editor-layer[data-v-1a55f98f]{background:var(--markstream-diff-stage-bg)}.code-editor-container.is-hidden[data-v-1a55f98f]{opacity:0;pointer-events:none}[data-v-1a55f98f] pre.code-pre-fallback{padding:var(--markstream-code-padding-y,8px) var(--markstream-code-padding-x,12px);padding-left:var(--markstream-code-padding-left,52px);color:var(--vscode-editor-foreground,inherit);font-size:var(--vscode-editor-font-size,12px);font-weight:400;font-family:var(--markstream-code-font-family,ui-monospace, SFMono-Regular, SF Mono, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace);background:0 0;margin:0}[data-v-1a55f98f] pre.code-pre-fallback>code{font-size:inherit;font-weight:inherit;line-height:inherit}[data-v-1a55f98f] pre.code-pre-fallback.is-wrap{white-space:pre-wrap;overflow-wrap:anywhere}.code-block-container.is-rendering .code-height-placeholder[data-v-1a55f98f]{background:linear-gradient(90deg,#0000000a 25%,#00000014 37%,#0000000a 63%);min-height:120px;animation:1.2s ease-in-out infinite code-skeleton-shimmer-1a55f98f}.code-loading-placeholder[data-v-1a55f98f]{min-height:120px;padding:1rem}.loading-skeleton[data-v-1a55f98f]{flex-direction:column;gap:.75rem;display:flex}.skeleton-line[data-v-1a55f98f]{background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%) 0 0/400% 100%;border-radius:.25rem;height:1rem;animation:1.2s ease-in-out infinite code-skeleton-shimmer-1a55f98f}.code-block-container.is-dark .skeleton-line[data-v-1a55f98f]{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%) 0 0/400% 100%}.skeleton-line.short[data-v-1a55f98f]{width:60%}@keyframes code-skeleton-shimmer-1a55f98f{0%{background-position:100% 0}to{background-position:0 0}}.code-action-btn[data-v-1a55f98f]{border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;min-width:2rem;min-height:2rem;padding:.5rem;font-family:inherit;line-height:1;display:inline-flex}.code-block-container.is-diff .icon-slot[data-v-1a55f98f]{width:28px;height:28px;color:var(--markstream-diff-added-fg);padding:5px;box-shadow:inset 0 1px #ffffffb3}.code-block-container.is-diff.is-dark .icon-slot[data-v-1a55f98f]{box-shadow:inset 0 1px #ffffff14,0 12px 28px -20px #38bdf873}.code-diff-stats[data-v-1a55f98f]{letter-spacing:.02em;font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin-right:4px;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.code-diff-stat[data-v-1a55f98f]{align-items:center;display:inline-flex}.code-diff-stat.removed[data-v-1a55f98f]{color:var(--vscode-diffEditor-removedTextForeground,var(--markstream-diff-removed-fg))}.code-diff-stat.added[data-v-1a55f98f]{color:var(--vscode-diffEditor-insertedTextForeground,var(--markstream-diff-added-fg))}.code-block-container.is-dark .code-diff-stat[data-v-1a55f98f]{border:1px solid #0000;border-radius:999px;padding:3px 9px;line-height:1;box-shadow:inset 0 1px #ffffff0d}.code-block-container.is-dark .code-diff-stat.removed[data-v-1a55f98f]{color:#fb7185;background:#9f123929;border-color:#fb718533}.code-block-container.is-dark .code-diff-stat.added[data-v-1a55f98f]{color:#2dd4bf;background:#0f766e29;border-color:#2dd4bf38}.code-action-btn[data-v-1a55f98f]:active{transform:scale(.98)}.code-action-btn[data-v-1a55f98f]:disabled{opacity:.5;cursor:not-allowed}.code-action-btn[data-v-1a55f98f]:disabled:hover{background-color:#0000}.icon-slot[data-v-1a55f98f]{justify-content:center;align-items:center;display:inline-flex}.icon-slot[data-v-1a55f98f] svg,.icon-slot[data-v-1a55f98f] img{width:100%;height:100%;display:block}@container (width<=640px){.code-block-container.is-diff .code-block-header[data-v-1a55f98f]{padding:16px 16px 12px}.code-block-container.is-diff .code-editor-layer[data-v-1a55f98f]{padding:4px 4px 8px}.code-diff-stats[data-v-1a55f98f]{gap:6px;font-size:12px}}[data-v-1a55f98f] .monaco-diff-editor .diffOverview{background-color:var(--vscode-editor-background)}[data-v-1a55f98f] .stream-monaco-diff-root .monaco-diff-editor .diffOverview,[data-v-1a55f98f] .stream-monaco-diff-root .decorationsOverviewRuler{opacity:0!important;pointer-events:none!important;background:0 0!important;border:0!important;width:0!important;min-width:0!important;max-width:0!important;display:none!important;overflow:hidden!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-diff-editor{box-shadow:none!important;border:0!important;border-radius:0!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-clickable)>:not(a){visibility:hidden!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines-compact .text{opacity:0!important}[data-v-1a55f98f] .stream-monaco-diff-root{--stream-monaco-gutter-gap:var(--markstream-diff-gutter-gap)!important;--stream-monaco-line-number:var(--markstream-diff-line-number)!important;--stream-monaco-line-number-active:var(--markstream-diff-line-number-active)!important;--stream-monaco-added-fg:var(--markstream-diff-added-fg)!important;--stream-monaco-removed-fg:var(--markstream-diff-removed-fg)!important;--stream-monaco-added-line:var(--markstream-diff-added-line)!important;--stream-monaco-removed-line:var(--markstream-diff-removed-line)!important;--stream-monaco-added-inline:var(--markstream-diff-added-inline)!important;--stream-monaco-removed-inline:var(--markstream-diff-removed-inline)!important;--stream-monaco-added-inline-border:var(--markstream-diff-added-inline-border)!important;--stream-monaco-removed-inline-border:var(--markstream-diff-removed-inline-border)!important;--stream-monaco-added-line-fill:var(--markstream-diff-added-line-fill)!important;--stream-monaco-removed-line-fill:var(--markstream-diff-removed-line-fill)!important;--stream-monaco-added-gutter:var(--markstream-diff-added-gutter)!important;--stream-monaco-removed-gutter:var(--markstream-diff-removed-gutter)!important;--stream-monaco-added-line-shadow:none!important;--stream-monaco-removed-line-shadow:none!important;--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg)!important;--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-unchanged-bridge-source),[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg)!important;--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg)!important;background:var(--stream-monaco-unchanged-bg)!important;color:var(--stream-monaco-unchanged-fg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{right:calc(var(--stream-monaco-gutter-marker-width) - var(--stream-monaco-unchanged-rail-width) / 2 + (var(--stream-monaco-gutter-gap) * 2))!important;width:auto!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important;color:var(--markstream-diff-unchanged-fg)!important;padding-left:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important;padding-right:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge.stream-monaco-diff-unchanged-bridge-line-info .stream-monaco-unchanged-rail,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail{border-right-color:var(--markstream-diff-unchanged-divider)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal{border-bottom-color:#0000!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-both .stream-monaco-unchanged-reveal:first-child{border-bottom-color:var(--markstream-diff-unchanged-divider)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-top-only .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-bottom-only .stream-monaco-unchanged-reveal{border-bottom:0!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-meta,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-count,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-metadata-label,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{color:var(--markstream-diff-unchanged-fg)!important}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.original .diff-hidden-lines .center{justify-content:center;align-items:center}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.original .diff-hidden-lines .center>div:first-child{align-items:center;min-width:100%;display:flex;justify-content:center!important;width:100%!important}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.modified .diff-hidden-lines .center>div:first-child{display:none!important}[data-v-1a55f98f] .markstream-inline-fold-proxy{appearance:none;box-shadow:none;color:var(--vscode-diffEditor-unchangedRegionForeground,currentColor);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;display:inline-flex}[data-v-1a55f98f] .markstream-inline-fold-proxy:hover,[data-v-1a55f98f] .markstream-inline-fold-proxy:focus-visible{color:var(--vscode-editorLink-activeForeground,var(--vscode-diffEditor-unchangedRegionForeground,currentColor))}[data-v-1a55f98f] .markstream-inline-fold-proxy:focus-visible{outline:1px solid var(--vscode-focusBorder,currentColor);outline-offset:1px}[data-v-1a55f98f] .markstream-inline-fold-proxy .codicon{color:inherit;width:16px;height:16px;font-size:16px;line-height:16px}._mermaid[data-v-6eade7e5]{content-visibility:auto;contain:content;contain-intrinsic-size:360px 240px;font-family:inherit}._mermaid[data-v-6eade7e5] svg{width:100%;height:auto;display:block}.fullscreen[data-v-6eade7e5]{width:100%;height:100%!important;max-height:100%!important}.mermaid-action-btn[data-v-6eade7e5]{font-family:inherit}.mermaid-action-btn[data-v-6eade7e5]:active{transform:scale(.98)}.mermaid-dialog-enter-from[data-v-6eade7e5],.mermaid-dialog-leave-to[data-v-6eade7e5]{opacity:0}.mermaid-dialog-enter-active[data-v-6eade7e5],.mermaid-dialog-leave-active[data-v-6eade7e5]{transition:opacity .2s}.mermaid-dialog-enter-from .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-to .dialog-panel[data-v-6eade7e5]{opacity:.98;transform:translateY(8px)scale(.98)}.mermaid-dialog-enter-to .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-from .dialog-panel[data-v-6eade7e5]{opacity:1;transform:translateY(0)scale(1)}.mermaid-dialog-enter-active .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-active .dialog-panel[data-v-6eade7e5]{transition:transform .2s,opacity .2s}.infographic-action-btn[data-v-e17a4388]{font-family:inherit}.infographic-action-btn[data-v-e17a4388]:active{transform:scale(.98)}.fullscreen[data-v-e17a4388]{width:100%;height:100%!important;max-height:100%!important}.infographic-dialog-enter-from[data-v-e17a4388],.infographic-dialog-leave-to[data-v-e17a4388]{opacity:0}.infographic-dialog-enter-active[data-v-e17a4388],.infographic-dialog-leave-active[data-v-e17a4388]{transition:opacity .2s}.infographic-dialog-enter-from .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-to .dialog-panel[data-v-e17a4388]{opacity:.98;transform:translateY(8px)scale(.98)}.infographic-dialog-enter-to .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-from .dialog-panel[data-v-e17a4388]{opacity:1;transform:translateY(0)scale(1)}.infographic-dialog-enter-active .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-active .dialog-panel[data-v-e17a4388]{transition:transform .2s,opacity .2s}.d2-block-body[data-v-90ebc4d2]{position:relative}.d2-source[data-v-90ebc4d2]{font-family:var(--vscode-editor-font-family,"Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}.d2-code[data-v-90ebc4d2]{white-space:pre;font-size:.875rem;line-height:1.5}.d2-render[data-v-90ebc4d2]{overflow:auto}.d2-svg[data-v-90ebc4d2] svg.markstream-d2-root-svg{width:100%;max-width:100%;height:auto;display:block}.mode-btn[data-v-90ebc4d2]{opacity:.7;transition:opacity .2s}.mode-btn.is-active[data-v-90ebc4d2]{opacity:1;font-weight:600}.d2-action-btn[data-v-90ebc4d2]{opacity:.7;transition:opacity .2s}.d2-action-btn[data-v-90ebc4d2]:hover{opacity:1}.d2-action-btn[data-v-90ebc4d2]:disabled{opacity:.3;cursor:not-allowed}.d2-error[data-v-90ebc4d2]{color:#dc2626}.tool-call-node[data-v-c4d46f41]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-c4d46f41]{background:#eff1f3;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:28px;padding:4px 10px;transition:background-color .2s,border-color .2s;display:flex}.tool-call-node__header--clickable[data-v-c4d46f41]{cursor:pointer}.tool-call-node__header--clickable[data-v-c4d46f41]:hover{background:#eff1f3;outline:1px solid #d8dde3}.tool-call-node__header--clickable[data-v-c4d46f41]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 24%, transparent);outline-offset:2px}.tool-call-node__prefix[data-v-c4d46f41]{align-items:center;gap:6px;min-width:0;display:inline-flex}.tool-call-node__title[data-v-c4d46f41]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tool-call-node__prefix-icon[data-v-c4d46f41]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.tool-call-node__prefix-icon.is-spinning[data-v-c4d46f41]{animation:1s linear infinite tool-spin-c4d46f41}.tool-call-node.is-running .tool-call-node__prefix[data-v-c4d46f41],.tool-call-node.is-running .tool-call-node__toggle[data-v-c4d46f41]{color:var(--primary-color,#1677ff)}.tool-call-node.is-running .tool-call-node__header[data-v-c4d46f41]{background:#f2f5fa;border-color:#d6deea}.tool-call-node.is-success .tool-call-node__prefix[data-v-c4d46f41],.tool-call-node.is-success .tool-call-node__toggle[data-v-c4d46f41]{color:#8f98a3}.tool-call-node.is-success .tool-call-node__header[data-v-c4d46f41]{background:#f3f5f7;border-color:#dde2e7}.tool-call-node.is-error .tool-call-node__prefix[data-v-c4d46f41],.tool-call-node.is-error .tool-call-node__toggle[data-v-c4d46f41]{color:var(--error-color,#ff4d4f)}.tool-call-node.is-error .tool-call-node__header[data-v-c4d46f41]{background:#faf1f1;border-color:#edd7d8}.tool-call-node__toggle[data-v-c4d46f41]{color:inherit;opacity:0;flex-shrink:0;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;transition:opacity .15s;display:inline-flex}.tool-call-node__header--clickable:hover .tool-call-node__toggle[data-v-c4d46f41],.tool-call-node__header--clickable:focus-visible .tool-call-node__toggle[data-v-c4d46f41]{opacity:1}.tool-call-node__toggle-icon[data-v-c4d46f41]{font-size:12px}.tool-call-node__detail[data-v-c4d46f41]{background:#fbfdff;border:1px solid #edf2fa;border-radius:12px;margin-top:6px;padding:10px 12px}.tool-call-node__line[data-v-c4d46f41]{align-items:flex-start;gap:4px;margin:0;font-size:12px;line-height:1.6;display:flex}.tool-call-node__label[data-v-c4d46f41]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-shrink:0}.tool-call-node__value[data-v-c4d46f41]{color:var(--text-color,var(--text));word-break:break-all}.tool-call-node__value--overflow[data-v-c4d46f41]{-webkit-line-clamp:2;cursor:help;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@keyframes tool-spin-c4d46f41{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__approval[data-v-c4d46f41]{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border:1px solid #e8f0fe;border-radius:10px;margin-top:10px;padding:12px 14px}.tool-call-node__approval-desc[data-v-c4d46f41]{color:#5a6474;margin-bottom:8px;font-size:12px;line-height:1.6}.tool-call-node__approval-args[data-v-c4d46f41]{align-items:flex-start;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.tool-call-node__approval-code[data-v-c4d46f41]{color:#3a5080;white-space:pre-wrap;word-break:break-all;background:#f0f4fc;border:1px solid #dee6f5;border-radius:6px;flex:1;max-height:120px;padding:6px 8px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;display:block;overflow-y:auto}.tool-call-node__approval-actions[data-v-c4d46f41]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-call-node__btn[data-v-c4d46f41]{cursor:pointer;border:1px solid #0000;border-radius:6px;outline:none;justify-content:center;align-items:center;padding:5px 14px;font-size:12px;font-weight:500;line-height:1.4;transition:all .2s;display:inline-flex}.tool-call-node__btn[data-v-c4d46f41]:disabled{opacity:.55;cursor:not-allowed}.tool-call-node__btn-approve[data-v-c4d46f41]{color:#fff;background:#1677ff;border-color:#1677ff}.tool-call-node__btn-approve[data-v-c4d46f41]:not(:disabled):hover{background:#4096ff;border-color:#4096ff}.tool-call-node__btn-approve[data-v-c4d46f41]:not(:disabled):active{background:#0958d9;border-color:#0958d9}.tool-call-node__btn-reject[data-v-c4d46f41]{color:#cf1322;background:#fff1f0;border-color:#ffccc7}.tool-call-node__btn-reject[data-v-c4d46f41]:not(:disabled):hover{color:#fff;background:#ff4d4f;border-color:#ff4d4f}.tool-call-node__btn-reject[data-v-c4d46f41]:not(:disabled):active{color:#fff;background:#a8071a;border-color:#a8071a}.tool-call-node__btn-edit[data-v-c4d46f41]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-edit[data-v-c4d46f41]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__btn-cancel[data-v-c4d46f41]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-cancel[data-v-c4d46f41]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__approval-edit[data-v-c4d46f41]{margin-top:8px}.tool-call-node__textarea[data-v-c4d46f41]{resize:vertical;box-sizing:border-box;border:1px solid #d9d9d9;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-family:monospace;font-size:12px}.tool-call-node__textarea[data-v-c4d46f41]:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1f}.tool-call-node__approval-edit-actions[data-v-c4d46f41]{align-items:center;gap:8px;margin-top:8px;display:flex}.tool-call-node__approval-result[data-v-c4d46f41]{border-radius:6px;align-items:center;gap:6px;padding:8px 10px;font-size:12px;font-weight:500;display:flex}.tool-call-node__approval-result.is-approved[data-v-c4d46f41]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__approval-result.is-rejected[data-v-c4d46f41]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.approval-result-icon[data-v-c4d46f41]{font-size:14px}.approval-result-enter-active[data-v-c4d46f41],.approval-result-leave-active[data-v-c4d46f41]{transition:all .25s}.approval-result-enter-from[data-v-c4d46f41],.approval-result-leave-to[data-v-c4d46f41]{opacity:0;transform:translateY(-4px)}.tool-call-node__waiting-badge[data-v-c4d46f41]{color:#d46b08;white-space:nowrap;background:#fff7e6;border:1px solid #ffd591;border-radius:4px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.tool-call-node__result-badge[data-v-c4d46f41]{white-space:nowrap;border-radius:4px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.tool-call-node__result-badge.is-approved[data-v-c4d46f41]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__result-badge.is-rejected[data-v-c4d46f41]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.sub-agent-node[data-v-526ce89d]{border:1px solid var(--border-color-split,#e5e7eb);background:#f9fafb;border-radius:6px;margin:4px 0;overflow:hidden}.sub-agent-node__header[data-v-526ce89d]{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f3f4f6;justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;transition:background .15s;display:flex}.sub-agent-node__header[data-v-526ce89d]:hover{background:#e9eaec}.sub-agent-node__prefix[data-v-526ce89d]{align-items:center;gap:6px;display:flex}.sub-agent-node__icon[data-v-526ce89d]{color:#6b7280;font-size:14px}.sub-agent-node__icon.is-spinning[data-v-526ce89d]{animation:1s linear infinite sub-spin-526ce89d}@keyframes sub-spin-526ce89d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sub-agent-node__name[data-v-526ce89d]{font-size:13px;font-weight:500}.sub-agent-node__badge[data-v-526ce89d]{color:#4338ca;background:#e0e7ff;border:1px solid #c7d2fe;border-radius:4px;align-items:center;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.sub-agent-node__chevron[data-v-526ce89d]{color:#9ca3af;font-size:12px}.sub-agent-node__body[data-v-526ce89d]{padding:8px 12px 10px}.sub-agent-node__tools[data-v-526ce89d]{margin-bottom:8px}.sub-agent-node__content[data-v-526ce89d]{font-size:13px}.think-node[data-v-526ce89d]{margin:4px 0}.think-node__layout[data-v-526ce89d]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-526ce89d]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-526ce89d]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-526ce89d]{flex:none;align-items:center;gap:6px;display:inline-flex}.think-node__prefix-icon[data-v-526ce89d]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node__content[data-v-526ce89d]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;position:relative}.think-node__content--inline[data-v-526ce89d]{flex:1}.think-node__content.is-collapsed[data-v-526ce89d]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-526ce89d]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-526ce89d]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;max-height:240px;margin-top:2px;padding:8px 10px 8px 28px;overflow-y:auto}.think-node__toggle[data-v-526ce89d]{color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;display:inline-flex}.think-node__toggle-icon[data-v-526ce89d]{font-size:10px}.msg-renderer__loading[data-v-4bb03a95]{align-items:center;min-height:28px;display:flex}.msg-renderer__loading-text[data-v-4bb03a95]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));font-size:14px}.msg-renderer__attachments[data-v-4bb03a95]{flex-wrap:wrap;gap:8px;margin-top:1.25em;display:flex}.think-node[data-v-4bb03a95]{margin:6px 0}.think-node__layout[data-v-4bb03a95]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-4bb03a95]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-4bb03a95]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-4bb03a95]{flex:none;align-items:center;gap:6px;padding-top:1px;display:inline-flex}.think-node__prefix-icon[data-v-4bb03a95]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node__content[data-v-4bb03a95]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;scrollbar-width:none;position:relative}.think-node__content[data-v-4bb03a95]::-webkit-scrollbar{width:0;height:0}.think-node__content--inline[data-v-4bb03a95]{flex:1}.think-node__content.is-collapsed[data-v-4bb03a95]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-4bb03a95]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-4bb03a95]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;max-height:240px;margin-top:2px;padding:8px;overflow-y:auto}.think-node__toggle[data-v-4bb03a95]{color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;display:inline-flex}.think-node__toggle-icon[data-v-4bb03a95]{font-size:10px}.tool-call-node[data-v-d1dff106]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-d1dff106]{background:#f5f6f7;border:1px solid #e5e7eb;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:28px;padding:4px 10px;transition:background-color .2s,border-color .2s;display:flex}.tool-call-node__header--clickable[data-v-d1dff106]{cursor:pointer}.tool-call-node__header--clickable[data-v-d1dff106]:hover{background:#ebecee}.tool-call-node__prefix[data-v-d1dff106]{align-items:center;gap:6px;min-width:0;display:flex}.tool-call-node__prefix-icon[data-v-d1dff106]{flex-shrink:0;font-size:14px}.tool-call-node__prefix-icon.is-spinning[data-v-d1dff106]{animation:1s linear infinite spin-d1dff106}@keyframes spin-d1dff106{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__title[data-v-d1dff106]{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tool-call-node__toggle[data-v-d1dff106]{flex-shrink:0}.tool-call-node__toggle-icon[data-v-d1dff106]{color:#9ca3af;font-size:12px}.smdr__body[data-v-d1dff106]{border:1px solid #e5e7eb;border-radius:8px;margin-top:8px;overflow:hidden}.smdr__error[data-v-d1dff106]{color:#ef4444;background:#fef2f2;padding:12px}.smdr__tabs[data-v-d1dff106]{background:#f9fafb;border-bottom:1px solid #e5e7eb;gap:0;display:flex;overflow-x:auto}.smdr__tab[data-v-d1dff106]{cursor:pointer;color:#6b7280;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:12px;transition:color .15s,border-color .15s}.smdr__tab[data-v-d1dff106]:hover{color:#374151}.smdr__tab--active[data-v-d1dff106]{color:var(--primary-color,#1677ff);border-bottom-color:var(--primary-color,#1677ff)}.smdr__content[data-v-d1dff106]{max-height:400px;padding:10px 12px;overflow-y:auto}.todos-top-panel[data-v-d03a50e5]{background:linear-gradient(#f9fbff 0%,#f3f8ff 100%);border:1px solid #d7e6ff;border-radius:12px;margin:0 20px 12px;padding:12px 14px}.todos-top-panel__header[data-v-d03a50e5]{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.todos-top-panel__title[data-v-d03a50e5]{color:#1f2d3d;font-size:13px;font-weight:600}.todos-top-panel__meta[data-v-d03a50e5]{color:#4e6796;align-items:center;gap:4px;font-size:12px;display:inline-flex}.todos-top-panel__meta-icon[data-v-d03a50e5]{font-size:12px}.todos-top-panel__list[data-v-d03a50e5]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.todos-top-panel__item[data-v-d03a50e5]{align-items:flex-start;gap:8px;display:flex}.todos-top-panel__status[data-v-d03a50e5]{flex-shrink:0;align-items:center;margin-top:1px;font-size:14px;display:flex}.todos-top-panel__status.is-pending[data-v-d03a50e5]{color:#9ca3af}.todos-top-panel__status.is-in_progress[data-v-d03a50e5]{color:#1677ff}.todos-top-panel__status.is-completed[data-v-d03a50e5]{color:#22c55e}.todos-top-panel__status.is-cancelled[data-v-d03a50e5]{color:#ef4444}.todos-top-panel__status .is-rotating[data-v-d03a50e5]{animation:1s linear infinite spin-d03a50e5}@keyframes spin-d03a50e5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.todos-top-panel__text[data-v-d03a50e5]{color:#374151;font-size:13px;line-height:1.5}.chat-panel[data-v-7d1dc6c2]{background:#fff;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.chat-header[data-v-7d1dc6c2]{border-bottom:1px solid var(--border-color-split,var(--border));flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.header-meta[data-v-7d1dc6c2]{flex-direction:column;gap:4px;min-width:0;display:flex}.header-actions[data-v-7d1dc6c2]{flex-shrink:0;align-items:center;gap:12px;display:flex}.conv-heading[data-v-7d1dc6c2]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600;line-height:1.4}.conv-subheading[data-v-7d1dc6c2]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:0;font-size:13px;line-height:1.5}.chat-body[data-v-7d1dc6c2]{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.empty-state[data-v-7d1dc6c2]{height:100%;color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.empty-icon[data-v-7d1dc6c2]{color:var(--primary-color,var(--primary));font-size:32px}.empty-title[data-v-7d1dc6c2]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600}.empty-sub[data-v-7d1dc6c2]{margin:0;font-size:13px}.messages-wrapper[data-v-7d1dc6c2]{flex:1;width:100%;min-height:0;display:flex}.input-footer[data-v-7d1dc6c2]{border-top:1px solid var(--border-color-split,var(--border));flex-shrink:0;padding:12px 16px 16px}.input-panel[data-v-7d1dc6c2]{width:100%}.sender-footer[data-v-7d1dc6c2]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.sender-footer__left[data-v-7d1dc6c2]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sender-footer__right[data-v-7d1dc6c2]{flex-shrink:0;align-items:center;gap:4px;display:flex}.agent-chat[data-v-2041f5e6]{background:var(--component-background,#fff);width:100%;height:100%;display:flex;position:relative;overflow:hidden}.agent-chat__sidebar[data-v-2041f5e6]{background:var(--bg-elevated,#f8fafc);border-right:1px solid var(--border-color-split,var(--border));flex-direction:column;flex-shrink:0;gap:10px;width:260px;min-width:260px;height:100%;padding:16px 12px;display:flex;overflow:hidden}.agent-chat__close-btn[data-v-2041f5e6]{display:none}.agent-chat__sidebar-header[data-v-2041f5e6]{justify-content:space-between;align-items:center;display:flex}.agent-chat__sidebar-title[data-v-2041f5e6]{color:var(--text-color,var(--text));font-size:13px;font-weight:600}.agent-chat__new-btn[data-v-2041f5e6]{height:26px;padding:0 6px;font-size:12px}.agent-chat__agent-select[data-v-2041f5e6]{width:100%}.agent-chat__search[data-v-2041f5e6]{border-radius:8px!important}.agent-chat__state-tip[data-v-2041f5e6]{color:var(--text-color-secondary,var(--text-muted));align-items:center;padding:4px 8px;font-size:12px;display:flex}.agent-chat__state-tip--error[data-v-2041f5e6]{color:#f87171}.agent-chat__conv-list[data-v-2041f5e6]{flex:1;overflow:hidden auto}.agent-chat__conv-list[data-v-2041f5e6]::-webkit-scrollbar{width:3px}.agent-chat__conv-list[data-v-2041f5e6]::-webkit-scrollbar-thumb{background:#00000014;border-radius:99px}.agent-chat__main[data-v-2041f5e6]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.agent-chat__toolbar[data-v-2041f5e6]{flex-shrink:0;padding:10px 12px 0;display:none}.agent-chat__history-btn[data-v-2041f5e6]{border-radius:999px;font-size:13px}.agent-chat__panel[data-v-2041f5e6]{flex:1;min-height:0}.agent-chat__mask[data-v-2041f5e6]{display:none}@media (width<=768px){.agent-chat__sidebar[data-v-2041f5e6]{z-index:100;border-right:none;width:260px;height:100dvh;transition:left .25s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:-260px;box-shadow:4px 0 24px #0000002e}.agent-chat__sidebar.is-open[data-v-2041f5e6]{left:0}.agent-chat__close-btn[data-v-2041f5e6]{width:28px;height:28px;color:var(--text-color,var(--text));cursor:pointer;z-index:1;background:#0000000f;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;top:12px;right:12px}.agent-chat__toolbar[data-v-2041f5e6]{display:block}.agent-chat__mask[data-v-2041f5e6]{z-index:90;background:#0f172a66;display:block;position:fixed;inset:0}}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "netstar-ai-chat",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "AI Chat Panel component for Vue 3 — 可复用的人工智能对话面板组件",
5
5
  "keywords": [
6
6
  "vue",