netstar-ai-chat 1.1.0 → 1.1.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.
@@ -367,6 +367,8 @@ export interface ExtendedAgentRuntime extends AgentRuntime {
367
367
  export interface AgentOption {
368
368
  /** Agent 运行时实例 */
369
369
  agent: AgentRuntime;
370
+ /** Sender footer 中的扩展控件(可选),切换 Agent 时自动替换 */
371
+ footerControls?: FooterControl[];
370
372
  /** 用于唯一标识此 Agent,也作为下拉选项的 value */
371
373
  key: string;
372
374
  /** 下拉选择器中展示的友好名称 */
@@ -382,6 +384,15 @@ export interface AgentOption {
382
384
  */
383
385
  toolRenderers?: ToolRendererMap;
384
386
  }
387
+ /** Sender footer 扩展控件 */
388
+ export interface FooterControl {
389
+ /** Vue 组件定义,ChatPanel 会注入 props: agent, agentOption, disabled, ...props */
390
+ component: import('vue').Component;
391
+ /** 唯一标识(v-for key) */
392
+ key: string;
393
+ /** 透传给组件的额外 props(会与 agent/agentOption/disabled 合并) */
394
+ props?: Record<string, unknown>;
395
+ }
385
396
  /**
386
397
  * 将任意 payload 序列化为截断后的预览字符串。
387
398
  * - `string` → 直接使用
@@ -57,6 +57,8 @@ export declare class Langchain_py_AIMessage extends EventEmitter implements Exte
57
57
  mode: 'astream' | 'astream_events';
58
58
  /** resume 决策格式:'langgraph'(默认)| 'create_agent' */
59
59
  resumeMode: 'create_agent' | 'langgraph';
60
+ /** 文件上传方法,由外部注入 */
61
+ uploadFile?: (file: File) => Promise<AttachmentItem>;
60
62
  private abortController;
61
63
  private activeToolCalls;
62
64
  private readonly app;
package/dist/index.cjs CHANGED
@@ -345,4 +345,4 @@ summary tabindex target title type usemap value width wmode wrap onCopy onCut on
345
345
  `||e===`\r`||e===` `||e===`\b`||e===`\f`}function tR(e,t){let n=e.charCodeAt(t);return n===jL||n===ML||n===NL||n===PL}function nR(e,t){let n=e.charCodeAt(t);return n===jL||n===NL||n===PL}function rR(e,t){let n=e.charCodeAt(t);return n===FL||n===IL||n>=LL&&n<=RL||n===zL||n===BL||n===VL||n===HL}function iR(e){return aR(e)||sR(e)}function aR(e){return e===`"`||e===`“`||e===`”`}function oR(e){return e===`"`}function sR(e){return e===`'`||e===`‘`||e===`’`||e==="`"||e===`´`}function cR(e){return e===`'`}function lR(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=e.lastIndexOf(t);return r===-1?e:e.substring(0,r)+(n?``:e.substring(r+1))}function uR(e,t){let n=e.length;if(!tR(e,n-1))return e+t;for(;tR(e,n-1);)n--;return e.substring(0,n)+t+e.substring(n)}function dR(e,t,n){return e.substring(0,t)+e.substring(t+n)}function fR(e){return/[,\n][ \t\r]*$/.test(e)}function pR(e,t){let n=0;for(let r=0;r<e.length;r++)e.charAt(r)===t&&n++;return n}function mR(e,t){switch(t){case`)`:return pR(e,`(`)>pR(e,`)`);case`]`:return pR(e,`[`)>pR(e,`]`);case`}`:return pR(e,`{`)>pR(e,`}`);default:return!1}}var hR={"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`},gR={'"':`"`,"\\":`\\`,"/":`/`,b:`\b`,f:`\f`,n:`
346
346
  `,r:`\r`,t:` `};function _R(e){let t=0,n=``;c(["```","[```","{```"]),i()||k(),c(["```","```]","```}"]);let r=u(`,`);for(r&&a(),QL(e[t])&&fR(n)?(r||(n=uR(n,`,`)),g()):r&&(n=lR(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?tR:nR,a=``;for(;;)if(i(e,t))a+=e[t],t++;else if(rR(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&&!vR(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(qL(e[t]))for(;t<e.length&&JL(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=uR(n,`,`)),a()),p(),!(_()||S(!0))){e[t]===`}`||e[t]===`{`||e[t]===`]`||e[t]===`[`||e[t]===void 0?r||(n=lR(n,`,`)):A();break}a();let s=u(`:`),c=t>=e.length;s||(QL(e[t])||c?n=uR(n,`:`):j()),i()||(s||c?n+=`null`:j()),r=!1}return e[t]===`}`?(n+=`}`,t++):n=uR(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=uR(n,`,`)),p(),!i()){r||(n=lR(n,`,`));break}r=!1}return e[t]===`]`?(n+=`]`,t++):n=uR(n,`]`),!0}return!1}function g(){let e=!0,t=!0;for(;t;)e?e=!1:u(`,`)||(n=uR(n,`,`)),t=i();t||(n=lR(n,`,`)),n=`[\n${n}\n]`}function _(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,o=e[t]===`\\`;if(o&&=(t++,!0),iR(e[t])){let s=oR(e[t])?oR:cR(e[t])?cR:sR(e[t])?sR:aR,c=t,l=n.length,u=`"`;for(t++;;){if(t>=e.length){let i=w(t-1);return!r&&KL(e.charAt(i))?(t=c,n=n.substring(0,l),_(!0)):(u=uR(u,`"`),n+=u,!0)}if(t===i)return u=uR(u,`"`),n+=u,!0;if(s(e[t])){let i=t,o=u.length;if(u+=`"`,t++,n+=u,a(!1),r||t>=e.length||KL(e[t])&&!mR(u,e[t])||iR(e[t])&&!T(t)||WL(e[t]))return v(),!0;let s=w(i-1),d=e.charAt(s);if(d===`,`)return t=c,n=n.substring(0,l),_(!1,s);if(KL(d))return t=c,n=n.substring(0,l),_(!0);n=n.substring(0,l),t=i+1,u=`${u.substring(0,o)}\\${u.substring(o)}`}else if(r&&ZL(e[t])){if(e[t-1]===`:`&&YL.test(e.substring(c+1,t+2)))for(;t<e.length&&XL.test(e[t]);)u+=e[t],t++;return u=uR(u,`"`),n+=u,v(),!0}else if(e[t]===`\\`){let n=e.charAt(t+1);if(gR[n]!==void 0)u+=e.slice(t,t+2),t+=2;else if(n===`u`){let n=2;for(;n<6&&UL(e[t+n]);)n++;n===6?(u+=e.slice(t,t+6),t+=6):t+n>=e.length?t=e.length:M()}else n===`
348
- `?(u+=`\\n`,t+=2):(u+=n,t+=2)}else{let n=e.charAt(t);n===`"`&&e[t-1]!==`\\`?(u+=`\\${n}`,t++):eR(n)?(u+=hR[n],t++):(GL(n)||D(n),u+=n,t++)}o&&f()}}return!1}function v(){let r=!1;for(a();e[t]===`+`;){r=!0,t++,a(),n=lR(n,`"`,!0);let e=n.length;n=_()?dR(n,e,1):uR(n,`"`)}return r}function y(){let r=t,i=``,a=!1;for(e[t]===`-`&&(i+=e[t],t++,!WL(e[t])&&E()&&(i+=`0`)),e[t]===`0`&&WL(e[t+1])&&(a=!0);WL(e[t]);)i+=e[t],t++;if(e[t]===`.`)for((i===``||i===`-`)&&(i+=`0`),i+=e[t],t++,WL(e[t])||(i+=`0`);WL(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++),WL(e[t])||(i+=`0`);WL(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&&!JL(e[t+r.length])?(n+=i,t+=r.length,!0):!1}function S(r){let a=t;if(qL(e[t])){for(;t<e.length&&JL(e[t]);)t++;let n=t;for(;tR(e,n);)n++;if(e[n]===`(`)return t=n+1,i(),e[t]===`)`&&(t++,e[t]===`;`&&t++),!0}for(;t<e.length&&!ZL(e[t])&&!iR(e[t])&&(!r||e[t]!==`:`);)t++;if(e[t-1]===`:`&&YL.test(e.substring(a,t+2)))for(;t<e.length&&XL.test(e[t]);)t++;if(t>a){for(;tR(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&&tR(e,n);)n--;return n}function T(t){let n=t+1;for(;n<e.length&&tR(e,n);)n++;return n>=e.length||KL(e[n])}function E(){return t>=e.length||KL(e[t])||tR(e,t)}function D(e){throw new AL(`Invalid character ${JSON.stringify(e)}`,t)}function O(){throw new AL(`Unexpected character ${JSON.stringify(e[t])}`,t)}function k(){throw new AL(`Unexpected end of json string`,e.length)}function A(){throw new AL(`Object key expected`,t)}function j(){throw new AL(`Colon expected`,t)}function M(){throw new AL(`Invalid unicode character "${e.slice(t,t+6)}"`,t)}}function vR(e,t){return e[t]===`*`&&e[t+1]===`/`}var yR=[`role`,`tabindex`],bR={class:`tool-call-node__prefix`},xR={class:`tool-call-node__title`},SR={key:0,class:`tool-call-node__toggle`},CR={key:0,class:`smdr__body`},wR={key:0,class:`smdr__error`},TR={class:`smdr__tabs`},ER=[`onClick`],DR={class:`smdr__content`},OR=GI((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(_R(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`,bR,[n.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Ld),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):n.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Qy),{key:1,class:`tool-call-node__prefix-icon`})):n.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(ob),{key:2,class:`tool-call-node__prefix-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(pD),{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`,SR,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.expanded?(0,a.unref)(VD):(0,a.unref)(xD)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,yR),n.expanded&&s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,CR,[n.tool.status===`error`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,wR,(0,a.toDisplayString)(n.tool.error||`执行失败`),1)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createElementVNode)(`div`,TR,[((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,ER))),128))]),(0,a.createElementVNode)(`div`,DR,[((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)(qI,{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-2ab50b51`]]),kR={save_module_docs_tool:OR},AR={class:`todos-top-panel`},jR={class:`todos-top-panel__header`},MR={class:`todos-top-panel__meta`},NR={class:`todos-top-panel__list`},PR={class:`todos-top-panel__text`},FR=GI((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`,AR,[(0,a.createElementVNode)(`header`,jR,[i[0]||=(0,a.createElementVNode)(`span`,{class:`todos-top-panel__title`},`任务清单`,-1),(0,a.createElementVNode)(`span`,MR,[(0,a.createVNode)((0,a.unref)(Qy),{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`,NR,[((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)(Qy),{key:0})):r(e.status)===`in_progress`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(LD),{key:1,class:`is-rotating`})):r(e.status)===`cancelled`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(kD),{key:2})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(pD),{key:3}))],2),(0,a.createElementVNode)(`span`,PR,(0,a.toDisplayString)(e.title),1)]))),128))])]))}}),[[`__scopeId`,`data-v-d03a50e5`]]),IR={class:`chat-panel`},LR={class:`chat-header`},RR={class:`header-meta`},zR={class:`conv-heading`},BR={key:0,class:`conv-subheading`},VR={class:`header-actions`},HR={class:`chat-body`},UR={key:0,class:`empty-state`},WR={key:0,class:`empty-sub`},GR={key:1,class:`messages-wrapper`},KR={key:0,class:`ai-loading`},qR={key:1,style:{display:`flex`,"flex-wrap":`wrap`,gap:`8px`,"margin-bottom":`8px`}},JR={class:`input-footer`},YR={class:`input-panel`},XR={class:`sender-footer`},ZR={class:`sender-footer__left`},QR={class:`sender-footer__right`},$R=GI((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agentPickerStorageKey:{default:`chat_panel_agent`},agents:{},customComponents:{},customHtmlTags:{},defaultToolRenderers:{default:()=>kR},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,{emit:t}){let n=e,r=t,i=(0,a.ref)({});function o(e,t){return`${e}:${t}`}function s(e,t){return!!i.value[o(e,t)]}function c(e,t){let n=o(e,t);i.value={...i.value,[n]:!i.value[n]}}function l(e){return e.map(e=>({...e,toolTimeline:e.toolTimeline?.map(e=>({...e})),segments:e.segments?.map(e=>({...e}))}))}let u=(0,a.ref)(n.modelValue||``),d=(0,a.ref)(!1),f=(0,a.ref)(l(n.initialMessages)),p=(0,a.ref)(``),m=(0,a.ref)(n.agentKey||n.agents[0]?.key||``),h=(0,a.ref)(),g=(0,a.ref)(!1),_=(0,a.ref)([]),v=(0,a.ref)([]);function y(e){v.value=e.fileList,_.value=e.fileList.map(e=>({id:e.uid,name:e.name,size:e.size||e.originFileObj?.size||0,type:e.type||e.originFileObj?.type||`application/octet-stream`,url:e.url||e.thumbUrl||(e.originFileObj?URL.createObjectURL(e.originFileObj):void 0)}))}function b(e){return e===`drop`?{title:`释放文件`}:{icon:(0,a.h)(_D),title:`上传文件`,description:`点击或拖拽文件到此区域上传`}}let x=(0,a.ref)([...n.agents]),S=new Map;function C(e){return{replyChange:(t,r)=>{n.onAgentEvent?.({event:`replyChange`,agentKey:e.key,args:[t,r]}),ve(t,r)},stop:()=>{n.onAgentEvent?.({event:`stop`,agentKey:e.key,args:[]}),ye()},toolCall:t=>{n.onAgentEvent?.({event:`toolCall`,agentKey:e.key,args:[t]}),be(t)},interrupt:t=>{n.onAgentEvent?.({event:`interrupt`,agentKey:e.key,args:[t]}),xe(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);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);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,r(`update:agents`,e),e.find(e=>e.key===m.value)||(m.value=e[0]?.key||``,r(`update:agentKey`,m.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)(()=>f.value);function M(e){return e===`write_todos`?`top`:`timeline`}let N=(0,a.computed)(()=>x.value.find(e=>e.key===m.value)||x.value[0]||null),P=(0,a.computed)(()=>N.value?.label||`未选择`),F=(0,a.computed)(()=>typeof N.value?.agent.uploadFile==`function`);function I(e,t){let r=z(e.toolTimeline,t);if(!r?.toolName)return kL;let i=N.value?.toolRenderers,a=n.defaultToolRenderers;return i?.[r.toolName]??a?.[r.toolName]??kL}let L=(0,a.computed)(()=>Vf(n.emptyHint)?`当前 Agent:${P.value},输入问题后按 Enter 发送`:n.emptyHint);(0,a.watch)(()=>n.modelValue,e=>{u.value=e||``}),(0,a.watch)(()=>n.agentKey,e=>{e&&(m.value=e)}),(0,a.watch)(()=>n.sessionKey,()=>{p.value=``,d.value=!1,i.value={},f.value=l(n.initialMessages),A.value=null},{immediate:!0});function R(e){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function ee(e,t){let n=f.value.findIndex(t=>t.key===e);n!==-1&&(f.value[n]={...f.value[n],...t})}function te(e,t){let n=f.value.findIndex(t=>t.key===e);if(n===-1)return;let r=f.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){let e=r.content.length;if(o.length===0)o=[{type:`text`,start:0,end:e}];else for(let t=o.length-1;t>=0;t--){let n=o[t];if(n.type===`text`&&n.end===-1){o[t]={...n,end:e};break}}o.push({type:`tool`,toolCallId:t.toolCallId},{type:`text`,start:e,end:-1})}if(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}}f.value[n]={...r,toolTimeline:i,segments:o,loading:!1}}function ne(e){let t=e;return!t.segments||t.segments.length===0?t.content?[{type:`text`,text:t.content}]:[]:t.segments.map(e=>e.type===`tool`||e.type===`attachment`?e:{type:`text`,text:t.content.slice(e.start,e.end===-1?void 0:e.end)})}function z(e,t){if(e)return e.find(e=>e.toolCallId===t)}function re(e,t){return M(z(e.toolTimeline,t)?.toolName)===`timeline`}function B(e){let t=e.trim();if(!t)return e;try{return JSON.parse(t)}catch{return e}}function ie(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 ae(e){if(typeof e!=`string`)return[];let t=e.trim();if(!t)return[];let n=B(t);if(typeof n==`string`)return[];if(Array.isArray(n))return n.map((e,t)=>ie(e,t));if(n&&typeof n==`object`){let e=n.todos;if(Array.isArray(e))return e.map((e,t)=>ie(e,t))}return[]}function oe(e){let t=ae(e.input),n=t.length>0?t:ae(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=f.value.length-1;e>=0;e--){let t=f.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=oe(n);if(r)return r}}return null}),e=>{e?.todos?.length&&(A.value=e)},{immediate:!0});function se(e,t){let n=(t||``).trim();if(n)return n;let r=z(f.value.find(e=>e.key===p.value)?.toolTimeline,e);return r?.toolName?r.toolName:D.value?.review_configs.length===1?D.value.review_configs[0].action_name:``}function ce(e,t){let n=f.value.findIndex(t=>t.key===e);if(n===-1)return;let r=f.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){i[u]={...i[u],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;if(a.length===0)a=[{type:`text`,start:0,end:f}];else for(let e=a.length-1;e>=0;e--){let t=a[e];if(t.type===`text`&&t.end===-1){a[e]={...t,end:f};break}}a.push({type:`tool`,toolCallId:d},{type:`text`,start:f,end:-1})}),f.value[n]={...r,toolTimeline:i,segments:a,loading:!1}}function le(e,t){let n=se(e,t);n&&Se([{action_name:n,decision:`approve`}])}function ue(e,t){let n=se(e,t);n&&Se([{action_name:n,decision:`reject`}])}function de(e,t,n){let r=se(e,t);r&&Se([{action_name:r,decision:`edit`,edited_content:n||``}])}function fe(e=!1){p.value=``,u.value=``,i.value={},D.value=null,O.value=!1,k.value={},A.value=null,_.value=[],v.value=[],r(`update:modelValue`,``),d.value=!1,f.value=[],(e?x.value.map(e=>e.agent):N.value?[N.value.agent]:[]).forEach(e=>{e.stop(),e.reset()})}function pe(e){u.value=e,r(`update:modelValue`,e)}async function me(e){let t=(e??u.value).trim();if(!t||d.value||!N.value)return;let n=R(`user`),i=R(`ai`);p.value=i,D.value=null,O.value=!1,k.value={};let a={key:n,role:`user`,content:t};_.value.length>0&&(a.segments=[{type:`attachment`,attachments:_.value},{type:`text`,start:0,end:-1}]),f.value.push(a,{key:i,role:`ai`,content:``,loading:!0,toolTimeline:[]}),u.value=``,r(`update:modelValue`,``),d.value=!0,r(`submit`,t,m.value);try{await N.value.agent.ask(t,_.value.length>0?_.value:void 0);let e=f.value.findIndex(e=>e.key===i);e!==-1&&f.value[e].loading&&(f.value[e]={...f.value[e],content:f.value[e].content||`未收到响应,请重试`,loading:!1})}catch(e){let t=e instanceof Error?e.message:`请求失败`,n=f.value.find(e=>e.key===i)?.content||``;ee(i,{content:n?`${n}\n\n请求失败:${t}`:`请求失败:${t}`,loading:!1})}finally{d.value=!1,D.value||(p.value=``)}_.value=[],v.value=[]}function he(){if(!d.value||!N.value)return;let e=p.value;e&&ee(e,{loading:!1}),p.value=``,d.value=!1,N.value.agent.stop(),r(`cancel`)}function ge(){fe(),r(`reset`)}function _e(e){!e||e===m.value||(m.value=e,r(`update:agentKey`,e),fe(!0),r(`agentChange`,e))}let ve=(e,t)=>{let n=p.value;n&&ee(n,{content:t,loading:!1})},ye=()=>{let e=p.value;if(!e)return;let t=f.value.findIndex(t=>t.key===e);t!==-1&&f.value[t].loading&&(f.value[t]={...f.value[t],content:f.value[t].content||`已停止`,loading:!1})},be=e=>{let t=p.value;t&&te(t,e)},xe=e=>{let t=p.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,ce(t,e),ee(t,{loading:!1})};async function Se(e){if(!N.value||O.value)return;let t=p.value;O.value=!0,D.value=null,t&&ee(t,{loading:!1});try{await N.value.agent.resume(e),t&&ee(t,{loading:!1})}catch(e){let n=e instanceof Error?e.message:`恢复失败`;t&&ee(t,{content:`${f.value.find(e=>e.key===t)?.content||``}\n\n操作恢复失败:${n}`,loading:!1})}finally{O.value=!1,D.value||(p.value=``)}}return n.agents.forEach(w),(0,a.onBeforeUnmount)(()=>{p.value=``,d.value&&N.value&&N.value.agent.stop(),x.value.forEach(T),_.value.forEach(e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)})}),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,IR,[(0,a.createElementVNode)(`header`,LR,[(0,a.createElementVNode)(`div`,RR,[(0,a.createElementVNode)(`h2`,zR,(0,a.toDisplayString)(e.title),1),e.subtitle?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,BR,(0,a.toDisplayString)(e.subtitle),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`div`,VR,[(0,a.renderSlot)(t.$slots,`header-actions`,{},()=>[(0,a.createVNode)((0,a.unref)(cp),{type:`primary`,disabled:d.value,onClick:ge},{default:(0,a.withCtx)(()=>[...r[2]||=[(0,a.createTextVNode)(`新会话`,-1)]]),_:1},8,[`disabled`])],!0)])]),A.value?((0,a.openBlock)(),(0,a.createBlock)(FR,{key:0,todos:A.value.todos},null,8,[`todos`])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,HR,[j.value.length===0?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,UR,[(0,a.createVNode)((0,a.unref)(TD),{class:`empty-icon`}),r[3]||=(0,a.createElementVNode)(`p`,{class:`empty-title`},`开始你的对话`,-1),L.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,WR,(0,a.toDisplayString)(L.value),1)):(0,a.createCommentVNode)(``,!0)])):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,GR,[(0,a.createVNode)((0,a.unref)(nF),{items:j.value,roles:e.roles,style:{width:`100%`},"auto-scroll":!0},{message:(0,a.withCtx)(n=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(n)),()=>[n.item.loading&&!n.item.content?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,KR,[(0,a.createVNode)((0,a.unref)(Ld),{style:{fontSize:`16px`,color:`var(--primary-color, var(--primary))`,marginRight:`8px`}}),r[4]||=(0,a.createElementVNode)(`span`,{class:`loading-text`},`AI 正在思考...`,-1)])):(0,a.createCommentVNode)(``,!0),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(ne(n.item),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:r},[t.type===`tool`&&re(n.item,t.toolCallId)?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(I(n.item,t.toolCallId)),{key:0,tool:z(n.item.toolTimeline,t.toolCallId),expanded:s(String(n.item.key),t.toolCallId),"step-number":z(n.item.toolTimeline,t.toolCallId)?.stepNumber,resolving:O.value,onToggle:e=>c(String(n.item.key),t.toolCallId),onApprove:e=>le(t.toolCallId,e),onReject:e=>ue(t.toolCallId,e),onEdit:(e,n)=>de(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`,qR,[((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)(qI,{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))],!0)]),_:3},8,[`items`,`roles`])]))]),(0,a.createElementVNode)(`footer`,JR,[(0,a.createElementVNode)(`div`,YR,[(0,a.createVNode)((0,a.unref)(YF),{ref_key:`senderRef`,ref:h,value:u.value,placeholder:`输入问题,Enter 发送`,"submit-type":`enter`,loading:d.value,actions:!1,"onUpdate:value":pe,onSubmit:me,onCancel:he},(0,a.createSlots)({footer:(0,a.withCtx)(({info:e})=>[(0,a.createElementVNode)(`div`,XR,[(0,a.createElementVNode)(`div`,ZR,[(0,a.createVNode)(nL,{value:m.value,"built-in-agents":n.agents,disabled:d.value,"storage-key":n.agentPickerStorageKey,"onUpdate:value":_e,"onUpdate:agents":E},null,8,[`value`,`built-in-agents`,`disabled`,`storage-key`]),F.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,dot:_.value.length>0&&!g.value},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(RT),{onClick:r[1]||=e=>g.value=!g.value})]),_:1},8,[`dot`])):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`div`,QR,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(d.value?e.components.LoadingButton:e.components.SendButton),{type:`primary`}))])])]),_:2},[F.value?{name:`header`,fn:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(YF).Header,{title:`附件`,styles:{content:{padding:0}},open:g.value,onOpenChange:r[0]||=e=>g.value=e,"force-render":``},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(II),{"before-upload":()=>!1,items:v.value,placeholder:b,"get-drop-container":()=>h.value?.$el,onChange:y},null,8,[`items`,`get-drop-container`])]),_:1},8,[`open`])]),key:`0`}:void 0]),1032,[`value`,`loading`])])])]))}}),[[`__scopeId`,`data-v-40e24435`]]),ez={class:`agent-chat`},tz={class:`agent-chat__sidebar-header`},nz={key:0,class:`agent-chat__state-tip`},rz={key:1,class:`agent-chat__state-tip agent-chat__state-tip--error`},iz={class:`agent-chat__main`},az={key:0,class:`agent-chat__toolbar`},oz=GI((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}){let r=e,i=n,o=(0,a.ref)([...r.agents]),s=(0,a.ref)(r.agentKey||r.agents[0]?.key||``),c=(0,a.computed)(()=>o.value.find(e=>e.key===s.value)??o.value[0]),l=(0,a.computed)(()=>r.hideHistory===void 0?c.value?.agent.supportsHistory?.()??!1:!r.hideHistory);(0,a.watch)(()=>r.agentKey,e=>{e&&e!==s.value&&T(e)});let u=(0,a.ref)(!1),d=(0,a.ref)(``),f=(0,a.ref)(!1),p=(0,a.ref)(``),m=(0,a.ref)([]),h=(0,a.ref)(``),g=(0,a.ref)(``),_=(0,a.ref)([]),v=(0,a.ref)(`session:new:${Date.now()}`),y=(0,a.ref)(!1),b=(0,a.computed)(()=>m.value.map(e=>({key:e.id,label:e.title||`新对话`}))),x=(0,a.computed)(()=>{let e=d.value.trim().toLowerCase();return e?b.value.filter(t=>t.label.toLowerCase().includes(e)):b.value});async function S(){if(c.value){f.value=!0,p.value=``;try{m.value=(await c.value.agent.listConversations()).items}catch(e){p.value=e instanceof Error?e.message:`加载失败`}finally{f.value=!1}}}(0,a.onMounted)(()=>{l.value&&S()});function C(e){!e||e===s.value||T(e)}function w(e){if(o.value=e,!e.find(e=>e.key===s.value)){let t=e[0]?.key||``;t&&(s.value=t,i(`update:agentKey`,t))}}function T(e){c.value?.agent.stop(),c.value?.agent.reset(),s.value=e,i(`update:agentKey`,e),O(),l.value&&S()}function E(){return c.value?.agent}function D(){return s.value}function O(){h.value=``,g.value=``,_.value=[],v.value=`session:new:${Date.now()}`}function k(){u.value=!1,c.value?.agent.stop(),c.value?.agent.reset(),O()}async function A(e){if(e!==h.value){u.value=!1,h.value=e,g.value=m.value.find(t=>t.id===e)?.title||`历史会话`,c.value?.agent.stop(),y.value=!0;try{_.value=await c.value?.agent.getConversationDetail(e)??[]}catch{_.value=[]}finally{y.value=!1}v.value=`session:${s.value}:${e}`}}let j=(0,a.computed)(()=>r.title||g.value||c.value?.label||`AI 助手`),M=(0,a.computed)(()=>y.value?`正在加载历史消息…`:h.value?`已载入历史会话`:``),N=(0,a.h)(Zl,{size:32,style:{background:`#1677ff`,flexShrink:`0`}},()=>`AI`),P=(0,a.h)(Zl,{size:32,style:{background:`#22c55e`,flexShrink:`0`}},()=>`我`),F={ai:{placement:`start`,avatar:N,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:P,styles:{content:{background:`#1677ff`,borderBottomRightRadius:`4px`,borderRadius:`12px`,color:`#fff`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}}},I=(0,a.computed)(()=>r.roles??F);return t({reloadConversations:S,newChat:k,getCurrentAgentRuntime:E,getCurrentAgentKey:D}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,ez,[l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`aside`,{key:0,class:(0,a.normalizeClass)([`agent-chat__sidebar`,{"is-open":u.value}])},[(0,a.createElementVNode)(`button`,{class:`agent-chat__close-btn`,"aria-label":`关闭侧边栏`,onClick:n[0]||=e=>u.value=!1},[(0,a.createVNode)((0,a.unref)(hy))]),(0,a.createElementVNode)(`div`,tz,[n[5]||=(0,a.createElementVNode)(`span`,{class:`agent-chat__sidebar-title`},`历史会话`,-1),(0,a.createVNode)((0,a.unref)(cp),{type:`text`,class:`agent-chat__new-btn`,disabled:f.value,onClick:k},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(ND))]),default:(0,a.withCtx)(()=>[n[4]||=(0,a.createTextVNode)(` 新建 `,-1)]),_:1},8,[`disabled`])]),(0,a.createVNode)((0,a.unref)(hv),{value:d.value,"onUpdate:value":n[1]||=e=>d.value=e,placeholder:`搜索对话…`,"allow-clear":``,class:`agent-chat__search`},{prefix:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(L_),{style:{color:`#94a3b8`}})]),_:1},8,[`value`]),f.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,nz,[(0,a.createVNode)((0,a.unref)(Ld),{style:{"margin-right":`6px`}}),n[6]||=(0,a.createTextVNode)(`加载中… `,-1)])):p.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,rz,[(0,a.createVNode)((0,a.unref)(GD),{style:{"margin-right":`6px`}}),(0,a.createTextVNode)((0,a.toDisplayString)(p.value)+` `,1),(0,a.createVNode)((0,a.unref)(cp),{size:`small`,type:`link`,onClick:S},{default:(0,a.withCtx)(()=>[...n[7]||=[(0,a.createTextVNode)(`重试`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(hF),{"active-key":h.value,items:x.value,class:`agent-chat__conv-list`,"on-active-change":A},null,8,[`active-key`,`items`])],2)):(0,a.createCommentVNode)(``,!0),u.value&&l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:1,class:`agent-chat__mask`,onClick:n[2]||=e=>u.value=!1})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,iz,[l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,az,[(0,a.createVNode)((0,a.unref)(cp),{class:`agent-chat__history-btn`,onClick:n[3]||=e=>u.value=!0},{default:(0,a.withCtx)(()=>[...n[8]||=[(0,a.createTextVNode)(` 历史会话`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)($R,{"agent-key":s.value,agents:r.agents,roles:I.value,"session-key":v.value,"initial-messages":_.value,title:j.value,subtitle:M.value,"empty-hint":e.emptyHint,"on-agent-event":r.onAgentEvent,class:`agent-chat__panel`,"onUpdate:agentKey":C,"onUpdate:agents":w,onReset:k},null,8,[`agent-key`,`agents`,`roles`,`session-key`,`initial-messages`,`title`,`subtitle`,`empty-hint`,`on-agent-event`])])]))}}),[[`__scopeId`,`data-v-41b9524a`]]),sz={class:`sub-agent-node__prefix`},cz={class:`sub-agent-node__name`},lz={key:0,class:`sub-agent-node__body`},uz={key:0,class:`sub-agent-node__tools`},dz={key:1,class:`sub-agent-node__content`},fz=GI((0,a.defineComponent)({__name:`SubAgentNode`,props:{tool:{},expanded:{type:Boolean}},emits:[`toggle`],setup(e,{emit:t}){let n=(0,a.ref)({});function r(e){n.value={...n.value,[e]:!n.value[e]}}return(i,o)=>((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:o[0]||=e=>t(`toggle`),onKeydown:[o[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`enter`]),o[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,sz,[e.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Ld),{key:0,class:`sub-agent-node__icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Qy),{key:1,class:`sub-agent-node__icon`})),(0,a.createElementVNode)(`span`,cz,(0,a.toDisplayString)(e.tool.title||e.tool.toolName),1),o[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)(VD):(0,a.unref)(xD)),{class:`sub-agent-node__chevron`}))],32),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,lz,[e.tool.subAgentTools?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,uz,[((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:n.value[e.toolCallId]||!1,"step-number":t,onToggle:t=>r(e.toolCallId)},null,8,[`tool`,`expanded`,`step-number`,`onToggle`]))),128))])):(0,a.createCommentVNode)(``,!0),e.tool.subAgentContent?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,dz,[(0,a.createVNode)(qI,{content:e.tool.subAgentContent},null,8,[`content`])])):(0,a.createCommentVNode)(``,!0)])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-9353d527`]]);exports.AI_SDK_AIMessage=l,exports.AI_SDK_Save_AIMessage=_,exports.AgentChat=oz,exports.AgentPicker=nL,exports.ChatPanel=$R,exports.Dify_SDK_AIMessage=aD,exports.Langchain_py_AIMessage=ZI,exports.SaveModuleDocsRenderer=OR,exports.StreamMarkdown=qI,exports.SubAgentNode=fz,exports.ToolCallNode=kL,exports.WriteTodosTopPanel=FR,exports.convertConversationDetail=b,exports.convertHistoryRecord=y,exports.defaultToolRenderers=kR,exports.extractTextContent=u,exports.parseOpenAIAssistantToolCalls=p,exports.parseToolCallInput=d,exports.toInputPreview=f;
348
+ `?(u+=`\\n`,t+=2):(u+=n,t+=2)}else{let n=e.charAt(t);n===`"`&&e[t-1]!==`\\`?(u+=`\\${n}`,t++):eR(n)?(u+=hR[n],t++):(GL(n)||D(n),u+=n,t++)}o&&f()}}return!1}function v(){let r=!1;for(a();e[t]===`+`;){r=!0,t++,a(),n=lR(n,`"`,!0);let e=n.length;n=_()?dR(n,e,1):uR(n,`"`)}return r}function y(){let r=t,i=``,a=!1;for(e[t]===`-`&&(i+=e[t],t++,!WL(e[t])&&E()&&(i+=`0`)),e[t]===`0`&&WL(e[t+1])&&(a=!0);WL(e[t]);)i+=e[t],t++;if(e[t]===`.`)for((i===``||i===`-`)&&(i+=`0`),i+=e[t],t++,WL(e[t])||(i+=`0`);WL(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++),WL(e[t])||(i+=`0`);WL(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&&!JL(e[t+r.length])?(n+=i,t+=r.length,!0):!1}function S(r){let a=t;if(qL(e[t])){for(;t<e.length&&JL(e[t]);)t++;let n=t;for(;tR(e,n);)n++;if(e[n]===`(`)return t=n+1,i(),e[t]===`)`&&(t++,e[t]===`;`&&t++),!0}for(;t<e.length&&!ZL(e[t])&&!iR(e[t])&&(!r||e[t]!==`:`);)t++;if(e[t-1]===`:`&&YL.test(e.substring(a,t+2)))for(;t<e.length&&XL.test(e[t]);)t++;if(t>a){for(;tR(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&&tR(e,n);)n--;return n}function T(t){let n=t+1;for(;n<e.length&&tR(e,n);)n++;return n>=e.length||KL(e[n])}function E(){return t>=e.length||KL(e[t])||tR(e,t)}function D(e){throw new AL(`Invalid character ${JSON.stringify(e)}`,t)}function O(){throw new AL(`Unexpected character ${JSON.stringify(e[t])}`,t)}function k(){throw new AL(`Unexpected end of json string`,e.length)}function A(){throw new AL(`Object key expected`,t)}function j(){throw new AL(`Colon expected`,t)}function M(){throw new AL(`Invalid unicode character "${e.slice(t,t+6)}"`,t)}}function vR(e,t){return e[t]===`*`&&e[t+1]===`/`}var yR=[`role`,`tabindex`],bR={class:`tool-call-node__prefix`},xR={class:`tool-call-node__title`},SR={key:0,class:`tool-call-node__toggle`},CR={key:0,class:`smdr__body`},wR={key:0,class:`smdr__error`},TR={class:`smdr__tabs`},ER=[`onClick`],DR={class:`smdr__content`},OR=GI((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(_R(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`,bR,[n.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Ld),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):n.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Qy),{key:1,class:`tool-call-node__prefix-icon`})):n.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(ob),{key:2,class:`tool-call-node__prefix-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(pD),{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`,SR,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.expanded?(0,a.unref)(VD):(0,a.unref)(xD)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,yR),n.expanded&&s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,CR,[n.tool.status===`error`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,wR,(0,a.toDisplayString)(n.tool.error||`执行失败`),1)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createElementVNode)(`div`,TR,[((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,ER))),128))]),(0,a.createElementVNode)(`div`,DR,[((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)(qI,{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-2ab50b51`]]),kR={save_module_docs_tool:OR},AR={class:`todos-top-panel`},jR={class:`todos-top-panel__header`},MR={class:`todos-top-panel__meta`},NR={class:`todos-top-panel__list`},PR={class:`todos-top-panel__text`},FR=GI((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`,AR,[(0,a.createElementVNode)(`header`,jR,[i[0]||=(0,a.createElementVNode)(`span`,{class:`todos-top-panel__title`},`任务清单`,-1),(0,a.createElementVNode)(`span`,MR,[(0,a.createVNode)((0,a.unref)(Qy),{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`,NR,[((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)(Qy),{key:0})):r(e.status)===`in_progress`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(LD),{key:1,class:`is-rotating`})):r(e.status)===`cancelled`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(kD),{key:2})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(pD),{key:3}))],2),(0,a.createElementVNode)(`span`,PR,(0,a.toDisplayString)(e.title),1)]))),128))])]))}}),[[`__scopeId`,`data-v-d03a50e5`]]),IR={class:`chat-panel`},LR={class:`chat-header`},RR={class:`header-meta`},zR={class:`conv-heading`},BR={key:0,class:`conv-subheading`},VR={class:`header-actions`},HR={class:`chat-body`},UR={key:0,class:`empty-state`},WR={key:0,class:`empty-sub`},GR={key:1,class:`messages-wrapper`},KR={key:0,class:`ai-loading`},qR={key:1,style:{display:`flex`,"flex-wrap":`wrap`,gap:`8px`,"margin-bottom":`8px`}},JR={class:`input-footer`},YR={class:`input-panel`},XR={class:`sender-footer`},ZR={class:`sender-footer__left`},QR={class:`sender-footer__right`},$R=GI((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agentPickerStorageKey:{default:`chat_panel_agent`},agents:{},customComponents:{},customHtmlTags:{},defaultToolRenderers:{default:()=>kR},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,{emit:t}){let n=e,r=t,i=(0,a.ref)({});function o(e,t){return`${e}:${t}`}function s(e,t){return!!i.value[o(e,t)]}function c(e,t){let n=o(e,t);i.value={...i.value,[n]:!i.value[n]}}function l(e){return e.map(e=>({...e,toolTimeline:e.toolTimeline?.map(e=>({...e})),segments:e.segments?.map(e=>({...e}))}))}let u=(0,a.ref)(n.modelValue||``),d=(0,a.ref)(!1),f=(0,a.ref)(l(n.initialMessages)),p=(0,a.ref)(``),m=(0,a.ref)(n.agentKey||n.agents[0]?.key||``),h=(0,a.ref)(),g=(0,a.ref)(!1),_=(0,a.computed)(()=>v.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}))),v=(0,a.ref)([]);async function y(e){v.value=e.fileList;for(let t of e.fileList){if(t.url&&!t.url.startsWith(`blob:`))continue;let e=t.originFileObj;if(!e||!N.value?.agent.uploadFile)continue;let n=v.value.findIndex(e=>e.uid===t.uid);n!==-1&&(v.value[n]={...v.value[n],status:`uploading`});try{let n=await N.value.agent.uploadFile(e),r=v.value.findIndex(e=>e.uid===t.uid);r!==-1&&(v.value[r]={...v.value[r],uid:n.id,url:n.url,thumbUrl:n.url,status:`done`})}catch{let e=v.value.findIndex(e=>e.uid===t.uid);e!==-1&&(v.value[e]={...v.value[e],status:`error`})}}}function b(e){return e===`drop`?{title:`释放文件`}:{icon:(0,a.h)(_D),title:`上传文件`,description:`点击或拖拽文件到此区域上传`}}let x=(0,a.ref)([...n.agents]),S=new Map;function C(e){return{replyChange:(t,r)=>{n.onAgentEvent?.({event:`replyChange`,agentKey:e.key,args:[t,r]}),ve(t,r)},stop:()=>{n.onAgentEvent?.({event:`stop`,agentKey:e.key,args:[]}),ye()},toolCall:t=>{n.onAgentEvent?.({event:`toolCall`,agentKey:e.key,args:[t]}),be(t)},interrupt:t=>{n.onAgentEvent?.({event:`interrupt`,agentKey:e.key,args:[t]}),xe(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);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);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,r(`update:agents`,e),e.find(e=>e.key===m.value)||(m.value=e[0]?.key||``,r(`update:agentKey`,m.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)(()=>f.value);function M(e){return e===`write_todos`?`top`:`timeline`}let N=(0,a.computed)(()=>x.value.find(e=>e.key===m.value)||x.value[0]||null),P=(0,a.computed)(()=>N.value?.label||`未选择`),F=(0,a.computed)(()=>typeof N.value?.agent.uploadFile==`function`);function I(e,t){let r=z(e.toolTimeline,t);if(!r?.toolName)return kL;let i=N.value?.toolRenderers,a=n.defaultToolRenderers;return i?.[r.toolName]??a?.[r.toolName]??kL}let L=(0,a.computed)(()=>Vf(n.emptyHint)?`当前 Agent:${P.value},输入问题后按 Enter 发送`:n.emptyHint);(0,a.watch)(()=>n.modelValue,e=>{u.value=e||``}),(0,a.watch)(()=>n.agentKey,e=>{e&&(m.value=e)}),(0,a.watch)(()=>n.sessionKey,()=>{p.value=``,d.value=!1,i.value={},f.value=l(n.initialMessages),A.value=null},{immediate:!0});function R(e){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function ee(e,t){let n=f.value.findIndex(t=>t.key===e);n!==-1&&(f.value[n]={...f.value[n],...t})}function te(e,t){let n=f.value.findIndex(t=>t.key===e);if(n===-1)return;let r=f.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){let e=r.content.length;if(o.length===0)o=[{type:`text`,start:0,end:e}];else for(let t=o.length-1;t>=0;t--){let n=o[t];if(n.type===`text`&&n.end===-1){o[t]={...n,end:e};break}}o.push({type:`tool`,toolCallId:t.toolCallId},{type:`text`,start:e,end:-1})}if(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}}f.value[n]={...r,toolTimeline:i,segments:o,loading:!1}}function ne(e){let t=e;return!t.segments||t.segments.length===0?t.content?[{type:`text`,text:t.content}]:[]:t.segments.map(e=>e.type===`tool`||e.type===`attachment`?e:{type:`text`,text:t.content.slice(e.start,e.end===-1?void 0:e.end)})}function z(e,t){if(e)return e.find(e=>e.toolCallId===t)}function re(e,t){return M(z(e.toolTimeline,t)?.toolName)===`timeline`}function B(e){let t=e.trim();if(!t)return e;try{return JSON.parse(t)}catch{return e}}function ie(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 ae(e){if(typeof e!=`string`)return[];let t=e.trim();if(!t)return[];let n=B(t);if(typeof n==`string`)return[];if(Array.isArray(n))return n.map((e,t)=>ie(e,t));if(n&&typeof n==`object`){let e=n.todos;if(Array.isArray(e))return e.map((e,t)=>ie(e,t))}return[]}function oe(e){let t=ae(e.input),n=t.length>0?t:ae(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=f.value.length-1;e>=0;e--){let t=f.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=oe(n);if(r)return r}}return null}),e=>{e?.todos?.length&&(A.value=e)},{immediate:!0});function se(e,t){let n=(t||``).trim();if(n)return n;let r=z(f.value.find(e=>e.key===p.value)?.toolTimeline,e);return r?.toolName?r.toolName:D.value?.review_configs.length===1?D.value.review_configs[0].action_name:``}function ce(e,t){let n=f.value.findIndex(t=>t.key===e);if(n===-1)return;let r=f.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){i[u]={...i[u],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;if(a.length===0)a=[{type:`text`,start:0,end:f}];else for(let e=a.length-1;e>=0;e--){let t=a[e];if(t.type===`text`&&t.end===-1){a[e]={...t,end:f};break}}a.push({type:`tool`,toolCallId:d},{type:`text`,start:f,end:-1})}),f.value[n]={...r,toolTimeline:i,segments:a,loading:!1}}function le(e,t){let n=se(e,t);n&&Se([{action_name:n,decision:`approve`}])}function ue(e,t){let n=se(e,t);n&&Se([{action_name:n,decision:`reject`}])}function de(e,t,n){let r=se(e,t);r&&Se([{action_name:r,decision:`edit`,edited_content:n||``}])}function fe(e=!1){p.value=``,u.value=``,i.value={},D.value=null,O.value=!1,k.value={},A.value=null,v.value=[],r(`update:modelValue`,``),d.value=!1,f.value=[],(e?x.value.map(e=>e.agent):N.value?[N.value.agent]:[]).forEach(e=>{e.stop(),e.reset()})}function pe(e){u.value=e,r(`update:modelValue`,e)}async function me(e){let t=(e??u.value).trim();if(!t||d.value||!N.value)return;let n=R(`user`),i=R(`ai`);p.value=i,D.value=null,O.value=!1,k.value={};let a={key:n,role:`user`,content:t};_.value.length>0&&(a.segments=[{type:`attachment`,attachments:_.value},{type:`text`,start:0,end:-1}]),f.value.push(a,{key:i,role:`ai`,content:``,loading:!0,toolTimeline:[]}),u.value=``,r(`update:modelValue`,``),d.value=!0,r(`submit`,t,m.value);try{await N.value.agent.ask(t,_.value.length>0?_.value:void 0);let e=f.value.findIndex(e=>e.key===i);e!==-1&&f.value[e].loading&&(f.value[e]={...f.value[e],content:f.value[e].content||`未收到响应,请重试`,loading:!1})}catch(e){let t=e instanceof Error?e.message:`请求失败`,n=f.value.find(e=>e.key===i)?.content||``;ee(i,{content:n?`${n}\n\n请求失败:${t}`:`请求失败:${t}`,loading:!1})}finally{d.value=!1,D.value||(p.value=``)}v.value=[]}function he(){if(!d.value||!N.value)return;let e=p.value;e&&ee(e,{loading:!1}),p.value=``,d.value=!1,N.value.agent.stop(),r(`cancel`)}function ge(){fe(),r(`reset`)}function _e(e){!e||e===m.value||(m.value=e,r(`update:agentKey`,e),fe(!0),r(`agentChange`,e))}let ve=(e,t)=>{let n=p.value;n&&ee(n,{content:t,loading:!1})},ye=()=>{let e=p.value;if(!e)return;let t=f.value.findIndex(t=>t.key===e);t!==-1&&f.value[t].loading&&(f.value[t]={...f.value[t],content:f.value[t].content||`已停止`,loading:!1})},be=e=>{let t=p.value;t&&te(t,e)},xe=e=>{let t=p.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,ce(t,e),ee(t,{loading:!1})};async function Se(e){if(!N.value||O.value)return;let t=p.value;O.value=!0,D.value=null,t&&ee(t,{loading:!1});try{await N.value.agent.resume(e),t&&ee(t,{loading:!1})}catch(e){let n=e instanceof Error?e.message:`恢复失败`;t&&ee(t,{content:`${f.value.find(e=>e.key===t)?.content||``}\n\n操作恢复失败:${n}`,loading:!1})}finally{O.value=!1,D.value||(p.value=``)}}return n.agents.forEach(w),(0,a.onBeforeUnmount)(()=>{p.value=``,d.value&&N.value&&N.value.agent.stop(),x.value.forEach(T),_.value.forEach(e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)})}),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,IR,[(0,a.createElementVNode)(`header`,LR,[(0,a.createElementVNode)(`div`,RR,[(0,a.createElementVNode)(`h2`,zR,(0,a.toDisplayString)(e.title),1),e.subtitle?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,BR,(0,a.toDisplayString)(e.subtitle),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`div`,VR,[(0,a.renderSlot)(t.$slots,`header-actions`,{},()=>[(0,a.createVNode)((0,a.unref)(cp),{type:`primary`,disabled:d.value,onClick:ge},{default:(0,a.withCtx)(()=>[...r[2]||=[(0,a.createTextVNode)(`新会话`,-1)]]),_:1},8,[`disabled`])],!0)])]),A.value?((0,a.openBlock)(),(0,a.createBlock)(FR,{key:0,todos:A.value.todos},null,8,[`todos`])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,HR,[j.value.length===0?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,UR,[(0,a.createVNode)((0,a.unref)(TD),{class:`empty-icon`}),r[3]||=(0,a.createElementVNode)(`p`,{class:`empty-title`},`开始你的对话`,-1),L.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,WR,(0,a.toDisplayString)(L.value),1)):(0,a.createCommentVNode)(``,!0)])):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,GR,[(0,a.createVNode)((0,a.unref)(nF),{items:j.value,roles:e.roles,style:{width:`100%`},"auto-scroll":!0},{message:(0,a.withCtx)(n=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(n)),()=>[n.item.loading&&!n.item.content?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,KR,[(0,a.createVNode)((0,a.unref)(Ld),{style:{fontSize:`16px`,color:`var(--primary-color, var(--primary))`,marginRight:`8px`}}),r[4]||=(0,a.createElementVNode)(`span`,{class:`loading-text`},`AI 正在思考...`,-1)])):(0,a.createCommentVNode)(``,!0),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(ne(n.item),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:r},[t.type===`tool`&&re(n.item,t.toolCallId)?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(I(n.item,t.toolCallId)),{key:0,tool:z(n.item.toolTimeline,t.toolCallId),expanded:s(String(n.item.key),t.toolCallId),"step-number":z(n.item.toolTimeline,t.toolCallId)?.stepNumber,resolving:O.value,onToggle:e=>c(String(n.item.key),t.toolCallId),onApprove:e=>le(t.toolCallId,e),onReject:e=>ue(t.toolCallId,e),onEdit:(e,n)=>de(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`,qR,[((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)(qI,{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))],!0)]),_:3},8,[`items`,`roles`])]))]),(0,a.createElementVNode)(`footer`,JR,[(0,a.createElementVNode)(`div`,YR,[(0,a.createVNode)((0,a.unref)(YF),{ref_key:`senderRef`,ref:h,value:u.value,placeholder:`输入问题,Enter 发送`,"submit-type":`enter`,loading:d.value,actions:!1,"onUpdate:value":pe,onSubmit:me,onCancel:he},(0,a.createSlots)({footer:(0,a.withCtx)(({info:e})=>[(0,a.createElementVNode)(`div`,XR,[(0,a.createElementVNode)(`div`,ZR,[(0,a.createVNode)(nL,{value:m.value,"built-in-agents":n.agents,disabled:d.value,"storage-key":n.agentPickerStorageKey,"onUpdate:value":_e,"onUpdate:agents":E},null,8,[`value`,`built-in-agents`,`disabled`,`storage-key`]),F.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(gu),{key:0,dot:_.value.length>0&&!g.value},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(RT),{onClick:r[1]||=e=>g.value=!g.value})]),_:1},8,[`dot`])):(0,a.createCommentVNode)(``,!0),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(N.value?.footerControls,e=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.component),(0,a.mergeProps)({key:e.key,agent:N.value?.agent,"agent-option":N.value,disabled:d.value},{ref_for:!0},e.props),null,16,[`agent`,`agent-option`,`disabled`]))),128))]),(0,a.createElementVNode)(`div`,QR,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(d.value?e.components.LoadingButton:e.components.SendButton),{type:`primary`}))])])]),_:2},[F.value?{name:`header`,fn:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(YF).Header,{title:`附件`,styles:{content:{padding:0}},open:g.value,onOpenChange:r[0]||=e=>g.value=e,"force-render":``},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(II),{"before-upload":()=>!1,items:v.value,placeholder:b,"get-drop-container":()=>h.value?.$el,onChange:y},null,8,[`items`,`get-drop-container`])]),_:1},8,[`open`])]),key:`0`}:void 0]),1032,[`value`,`loading`])])])]))}}),[[`__scopeId`,`data-v-c0958447`]]),ez={class:`agent-chat`},tz={class:`agent-chat__sidebar-header`},nz={key:0,class:`agent-chat__state-tip`},rz={key:1,class:`agent-chat__state-tip agent-chat__state-tip--error`},iz={class:`agent-chat__main`},az={key:0,class:`agent-chat__toolbar`},oz=GI((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}){let r=e,i=n,o=(0,a.ref)([...r.agents]),s=(0,a.ref)(r.agentKey||r.agents[0]?.key||``),c=(0,a.computed)(()=>o.value.find(e=>e.key===s.value)??o.value[0]),l=(0,a.computed)(()=>r.hideHistory===void 0?c.value?.agent.supportsHistory?.()??!1:!r.hideHistory);(0,a.watch)(()=>r.agentKey,e=>{e&&e!==s.value&&T(e)});let u=(0,a.ref)(!1),d=(0,a.ref)(``),f=(0,a.ref)(!1),p=(0,a.ref)(``),m=(0,a.ref)([]),h=(0,a.ref)(``),g=(0,a.ref)(``),_=(0,a.ref)([]),v=(0,a.ref)(`session:new:${Date.now()}`),y=(0,a.ref)(!1),b=(0,a.computed)(()=>m.value.map(e=>({key:e.id,label:e.title||`新对话`}))),x=(0,a.computed)(()=>{let e=d.value.trim().toLowerCase();return e?b.value.filter(t=>t.label.toLowerCase().includes(e)):b.value});async function S(){if(c.value){f.value=!0,p.value=``;try{m.value=(await c.value.agent.listConversations()).items}catch(e){p.value=e instanceof Error?e.message:`加载失败`}finally{f.value=!1}}}(0,a.onMounted)(()=>{l.value&&S()});function C(e){!e||e===s.value||T(e)}function w(e){if(o.value=e,!e.find(e=>e.key===s.value)){let t=e[0]?.key||``;t&&(s.value=t,i(`update:agentKey`,t))}}function T(e){c.value?.agent.stop(),c.value?.agent.reset(),s.value=e,i(`update:agentKey`,e),O(),l.value&&S()}function E(){return c.value?.agent}function D(){return s.value}function O(){h.value=``,g.value=``,_.value=[],v.value=`session:new:${Date.now()}`}function k(){u.value=!1,c.value?.agent.stop(),c.value?.agent.reset(),O()}async function A(e){if(e!==h.value){u.value=!1,h.value=e,g.value=m.value.find(t=>t.id===e)?.title||`历史会话`,c.value?.agent.stop(),y.value=!0;try{_.value=await c.value?.agent.getConversationDetail(e)??[]}catch{_.value=[]}finally{y.value=!1}v.value=`session:${s.value}:${e}`}}let j=(0,a.computed)(()=>r.title||g.value||c.value?.label||`AI 助手`),M=(0,a.computed)(()=>y.value?`正在加载历史消息…`:h.value?`已载入历史会话`:``),N=(0,a.h)(Zl,{size:32,style:{background:`#1677ff`,flexShrink:`0`}},()=>`AI`),P=(0,a.h)(Zl,{size:32,style:{background:`#22c55e`,flexShrink:`0`}},()=>`我`),F={ai:{placement:`start`,avatar:N,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:P,styles:{content:{background:`#1677ff`,borderBottomRightRadius:`4px`,borderRadius:`12px`,color:`#fff`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}}},I=(0,a.computed)(()=>r.roles??F);return t({reloadConversations:S,newChat:k,getCurrentAgentRuntime:E,getCurrentAgentKey:D}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,ez,[l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`aside`,{key:0,class:(0,a.normalizeClass)([`agent-chat__sidebar`,{"is-open":u.value}])},[(0,a.createElementVNode)(`button`,{class:`agent-chat__close-btn`,"aria-label":`关闭侧边栏`,onClick:n[0]||=e=>u.value=!1},[(0,a.createVNode)((0,a.unref)(hy))]),(0,a.createElementVNode)(`div`,tz,[n[5]||=(0,a.createElementVNode)(`span`,{class:`agent-chat__sidebar-title`},`历史会话`,-1),(0,a.createVNode)((0,a.unref)(cp),{type:`text`,class:`agent-chat__new-btn`,disabled:f.value,onClick:k},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(ND))]),default:(0,a.withCtx)(()=>[n[4]||=(0,a.createTextVNode)(` 新建 `,-1)]),_:1},8,[`disabled`])]),(0,a.createVNode)((0,a.unref)(hv),{value:d.value,"onUpdate:value":n[1]||=e=>d.value=e,placeholder:`搜索对话…`,"allow-clear":``,class:`agent-chat__search`},{prefix:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(L_),{style:{color:`#94a3b8`}})]),_:1},8,[`value`]),f.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,nz,[(0,a.createVNode)((0,a.unref)(Ld),{style:{"margin-right":`6px`}}),n[6]||=(0,a.createTextVNode)(`加载中… `,-1)])):p.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,rz,[(0,a.createVNode)((0,a.unref)(GD),{style:{"margin-right":`6px`}}),(0,a.createTextVNode)((0,a.toDisplayString)(p.value)+` `,1),(0,a.createVNode)((0,a.unref)(cp),{size:`small`,type:`link`,onClick:S},{default:(0,a.withCtx)(()=>[...n[7]||=[(0,a.createTextVNode)(`重试`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(hF),{"active-key":h.value,items:x.value,class:`agent-chat__conv-list`,"on-active-change":A},null,8,[`active-key`,`items`])],2)):(0,a.createCommentVNode)(``,!0),u.value&&l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:1,class:`agent-chat__mask`,onClick:n[2]||=e=>u.value=!1})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,iz,[l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,az,[(0,a.createVNode)((0,a.unref)(cp),{class:`agent-chat__history-btn`,onClick:n[3]||=e=>u.value=!0},{default:(0,a.withCtx)(()=>[...n[8]||=[(0,a.createTextVNode)(` 历史会话`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)($R,{"agent-key":s.value,agents:r.agents,roles:I.value,"session-key":v.value,"initial-messages":_.value,title:j.value,subtitle:M.value,"empty-hint":e.emptyHint,"on-agent-event":r.onAgentEvent,class:`agent-chat__panel`,"onUpdate:agentKey":C,"onUpdate:agents":w,onReset:k},null,8,[`agent-key`,`agents`,`roles`,`session-key`,`initial-messages`,`title`,`subtitle`,`empty-hint`,`on-agent-event`])])]))}}),[[`__scopeId`,`data-v-41b9524a`]]),sz={class:`sub-agent-node__prefix`},cz={class:`sub-agent-node__name`},lz={key:0,class:`sub-agent-node__body`},uz={key:0,class:`sub-agent-node__tools`},dz={key:1,class:`sub-agent-node__content`},fz=GI((0,a.defineComponent)({__name:`SubAgentNode`,props:{tool:{},expanded:{type:Boolean}},emits:[`toggle`],setup(e,{emit:t}){let n=(0,a.ref)({});function r(e){n.value={...n.value,[e]:!n.value[e]}}return(i,o)=>((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:o[0]||=e=>t(`toggle`),onKeydown:[o[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`enter`]),o[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,sz,[e.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Ld),{key:0,class:`sub-agent-node__icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Qy),{key:1,class:`sub-agent-node__icon`})),(0,a.createElementVNode)(`span`,cz,(0,a.toDisplayString)(e.tool.title||e.tool.toolName),1),o[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)(VD):(0,a.unref)(xD)),{class:`sub-agent-node__chevron`}))],32),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,lz,[e.tool.subAgentTools?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,uz,[((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:n.value[e.toolCallId]||!1,"step-number":t,onToggle:t=>r(e.toolCallId)},null,8,[`tool`,`expanded`,`step-number`,`onToggle`]))),128))])):(0,a.createCommentVNode)(``,!0),e.tool.subAgentContent?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,dz,[(0,a.createVNode)(qI,{content:e.tool.subAgentContent},null,8,[`content`])])):(0,a.createCommentVNode)(``,!0)])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-9353d527`]]);exports.AI_SDK_AIMessage=l,exports.AI_SDK_Save_AIMessage=_,exports.AgentChat=oz,exports.AgentPicker=nL,exports.ChatPanel=$R,exports.Dify_SDK_AIMessage=aD,exports.Langchain_py_AIMessage=ZI,exports.SaveModuleDocsRenderer=OR,exports.StreamMarkdown=qI,exports.SubAgentNode=fz,exports.ToolCallNode=kL,exports.WriteTodosTopPanel=FR,exports.convertConversationDetail=b,exports.convertHistoryRecord=y,exports.defaultToolRenderers=kR,exports.extractTextContent=u,exports.parseOpenAIAssistantToolCalls=p,exports.parseToolCallInput=d,exports.toInputPreview=f;
package/dist/index.mjs CHANGED
@@ -31858,15 +31858,41 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
31858
31858
  segments: e.segments?.map((e) => ({ ...e }))
31859
31859
  }));
31860
31860
  }
31861
- let l = B(n.modelValue || ""), u = B(!1), d = B(c(n.initialMessages)), f = B(""), p = B(n.agentKey || n.agents[0]?.key || ""), m = B(), h = B(!1), g = B([]), _ = B([]);
31862
- function v(e) {
31863
- _.value = e.fileList, g.value = e.fileList.map((e) => ({
31864
- id: e.uid,
31865
- name: e.name,
31866
- size: e.size || e.originFileObj?.size || 0,
31867
- type: e.type || e.originFileObj?.type || "application/octet-stream",
31868
- url: e.url || e.thumbUrl || (e.originFileObj ? URL.createObjectURL(e.originFileObj) : void 0)
31869
- }));
31861
+ let l = B(n.modelValue || ""), u = B(!1), d = B(c(n.initialMessages)), f = B(""), p = B(n.agentKey || n.agents[0]?.key || ""), m = B(), h = B(!1), g = N(() => _.value.filter((e) => e.status !== "error").map((e) => ({
31862
+ id: e.uid,
31863
+ name: e.name,
31864
+ size: e.size || 0,
31865
+ type: e.type || "application/octet-stream",
31866
+ url: e.url || e.thumbUrl
31867
+ }))), _ = B([]);
31868
+ async function v(e) {
31869
+ _.value = e.fileList;
31870
+ for (let t of e.fileList) {
31871
+ if (t.url && !t.url.startsWith("blob:")) continue;
31872
+ let e = t.originFileObj;
31873
+ if (!e || !j.value?.agent.uploadFile) continue;
31874
+ let n = _.value.findIndex((e) => e.uid === t.uid);
31875
+ n !== -1 && (_.value[n] = {
31876
+ ..._.value[n],
31877
+ status: "uploading"
31878
+ });
31879
+ try {
31880
+ let n = await j.value.agent.uploadFile(e), r = _.value.findIndex((e) => e.uid === t.uid);
31881
+ r !== -1 && (_.value[r] = {
31882
+ ..._.value[r],
31883
+ uid: n.id,
31884
+ url: n.url,
31885
+ thumbUrl: n.url,
31886
+ status: "done"
31887
+ });
31888
+ } catch {
31889
+ let e = _.value.findIndex((e) => e.uid === t.uid);
31890
+ e !== -1 && (_.value[e] = {
31891
+ ..._.value[e],
31892
+ status: "error"
31893
+ });
31894
+ }
31895
+ }
31870
31896
  }
31871
31897
  function y(e) {
31872
31898
  return e === "drop" ? { title: "释放文件" } : {
@@ -31883,28 +31909,28 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
31883
31909
  event: "replyChange",
31884
31910
  agentKey: e.key,
31885
31911
  args: [t, r]
31886
- }), Me(t, r);
31912
+ }), Ne(t, r);
31887
31913
  },
31888
31914
  stop: () => {
31889
31915
  n.onAgentEvent?.({
31890
31916
  event: "stop",
31891
31917
  agentKey: e.key,
31892
31918
  args: []
31893
- }), Ne();
31919
+ }), Pe();
31894
31920
  },
31895
31921
  toolCall: (t) => {
31896
31922
  n.onAgentEvent?.({
31897
31923
  event: "toolCall",
31898
31924
  agentKey: e.key,
31899
31925
  args: [t]
31900
- }), Pe(t);
31926
+ }), Fe(t);
31901
31927
  },
31902
31928
  interrupt: (t) => {
31903
31929
  n.onAgentEvent?.({
31904
31930
  event: "interrupt",
31905
31931
  agentKey: e.key,
31906
31932
  args: [t]
31907
- }), Fe(t);
31933
+ }), Ie(t);
31908
31934
  }
31909
31935
  };
31910
31936
  }
@@ -32192,35 +32218,35 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
32192
32218
  }
32193
32219
  function xe(e, t) {
32194
32220
  let n = ye(e, t);
32195
- n && Ie([{
32221
+ n && Le([{
32196
32222
  action_name: n,
32197
32223
  decision: "approve"
32198
32224
  }]);
32199
32225
  }
32200
32226
  function Se(e, t) {
32201
32227
  let n = ye(e, t);
32202
- n && Ie([{
32228
+ n && Le([{
32203
32229
  action_name: n,
32204
32230
  decision: "reject"
32205
32231
  }]);
32206
32232
  }
32207
- function Ce(e, t, n) {
32233
+ function we(e, t, n) {
32208
32234
  let r = ye(e, t);
32209
- r && Ie([{
32235
+ r && Le([{
32210
32236
  action_name: r,
32211
32237
  decision: "edit",
32212
32238
  edited_content: n || ""
32213
32239
  }]);
32214
32240
  }
32215
- function we(e = !1) {
32216
- f.value = "", l.value = "", i.value = {}, E.value = null, D.value = !1, O.value = {}, k.value = null, g.value = [], _.value = [], r("update:modelValue", ""), u.value = !1, d.value = [], (e ? b.value.map((e) => e.agent) : j.value ? [j.value.agent] : []).forEach((e) => {
32241
+ function Te(e = !1) {
32242
+ f.value = "", l.value = "", i.value = {}, E.value = null, D.value = !1, O.value = {}, k.value = null, _.value = [], r("update:modelValue", ""), u.value = !1, d.value = [], (e ? b.value.map((e) => e.agent) : j.value ? [j.value.agent] : []).forEach((e) => {
32217
32243
  e.stop(), e.reset();
32218
32244
  });
32219
32245
  }
32220
- function Te(e) {
32246
+ function De(e) {
32221
32247
  l.value = e, r("update:modelValue", e);
32222
32248
  }
32223
- async function De(e) {
32249
+ async function Oe(e) {
32224
32250
  let t = (e ?? l.value).trim();
32225
32251
  if (!t || u.value || !j.value) return;
32226
32252
  let n = ae("user"), i = ae("ai");
@@ -32261,26 +32287,26 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
32261
32287
  } finally {
32262
32288
  u.value = !1, E.value || (f.value = "");
32263
32289
  }
32264
- g.value = [], _.value = [];
32290
+ _.value = [];
32265
32291
  }
32266
- function Oe() {
32292
+ function Ae() {
32267
32293
  if (!u.value || !j.value) return;
32268
32294
  let e = f.value;
32269
32295
  e && oe(e, { loading: !1 }), f.value = "", u.value = !1, j.value.agent.stop(), r("cancel");
32270
32296
  }
32271
- function Ae() {
32272
- we(), r("reset");
32297
+ function je() {
32298
+ Te(), r("reset");
32273
32299
  }
32274
- function je(e) {
32275
- !e || e === p.value || (p.value = e, r("update:agentKey", e), we(!0), r("agentChange", e));
32300
+ function Me(e) {
32301
+ !e || e === p.value || (p.value = e, r("update:agentKey", e), Te(!0), r("agentChange", e));
32276
32302
  }
32277
- let Me = (e, t) => {
32303
+ let Ne = (e, t) => {
32278
32304
  let n = f.value;
32279
32305
  n && oe(n, {
32280
32306
  content: t,
32281
32307
  loading: !1
32282
32308
  });
32283
- }, Ne = () => {
32309
+ }, Pe = () => {
32284
32310
  let e = f.value;
32285
32311
  if (!e) return;
32286
32312
  let t = d.value.findIndex((t) => t.key === e);
@@ -32289,10 +32315,10 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
32289
32315
  content: d.value[t].content || "已停止",
32290
32316
  loading: !1
32291
32317
  });
32292
- }, Pe = (e) => {
32318
+ }, Fe = (e) => {
32293
32319
  let t = f.value;
32294
32320
  t && se(t, e);
32295
- }, Fe = (e) => {
32321
+ }, Ie = (e) => {
32296
32322
  let t = f.value;
32297
32323
  if (!t) return;
32298
32324
  E.value = e;
@@ -32300,7 +32326,7 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
32300
32326
  for (let t of e.action_requests) n[t.name] = typeof t.args.content == "string" ? t.args.content : "";
32301
32327
  O.value = n, be(t, e), oe(t, { loading: !1 });
32302
32328
  };
32303
- async function Ie(e) {
32329
+ async function Le(e) {
32304
32330
  if (!j.value || D.value) return;
32305
32331
  let t = f.value;
32306
32332
  D.value = !0, E.value = null, t && oe(t, { loading: !1 });
@@ -32324,7 +32350,7 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
32324
32350
  I("header", wB, [I("div", TB, [I("h2", EB, Ue(e.title), 1), e.subtitle ? (z(), F("p", DB, Ue(e.subtitle), 1)) : P("", !0)]), I("div", OB, [ze(t.$slots, "header-actions", {}, () => [L(H(Jm), {
32325
32351
  type: "primary",
32326
32352
  disabled: u.value,
32327
- onClick: Ae
32353
+ onClick: je
32328
32354
  }, {
32329
32355
  default: nt(() => [...r[2] ||= [me("新会话", -1)]]),
32330
32356
  _: 1
@@ -32356,7 +32382,7 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
32356
32382
  onToggle: (e) => s(String(n.item.key), t.toolCallId),
32357
32383
  onApprove: (e) => xe(t.toolCallId, e),
32358
32384
  onReject: (e) => Se(t.toolCallId, e),
32359
- onEdit: (e, n) => Ce(t.toolCallId, e, n)
32385
+ onEdit: (e, n) => we(t.toolCallId, e, n)
32360
32386
  }, null, 40, [
32361
32387
  "tool",
32362
32388
  "expanded",
@@ -32397,29 +32423,42 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
32397
32423
  "submit-type": "enter",
32398
32424
  loading: u.value,
32399
32425
  actions: !1,
32400
- "onUpdate:value": Te,
32401
- onSubmit: De,
32402
- onCancel: Oe
32426
+ "onUpdate:value": De,
32427
+ onSubmit: Oe,
32428
+ onCancel: Ae
32403
32429
  }, pe({
32404
- footer: nt(({ info: e }) => [I("div", LB, [I("div", RB, [L(UR, {
32405
- value: p.value,
32406
- "built-in-agents": n.agents,
32407
- disabled: u.value,
32408
- "storage-key": n.agentPickerStorageKey,
32409
- "onUpdate:value": je,
32410
- "onUpdate:agents": T
32411
- }, null, 8, [
32412
- "value",
32413
- "built-in-agents",
32414
- "disabled",
32415
- "storage-key"
32416
- ]), ne.value ? (z(), fe(H(nf), {
32417
- key: 0,
32418
- dot: g.value.length > 0 && !h.value
32419
- }, {
32420
- default: nt(() => [L(H(wD), { onClick: r[1] ||= (e) => h.value = !h.value })]),
32421
- _: 1
32422
- }, 8, ["dot"])) : P("", !0)]), I("div", zB, [(z(), fe(He(u.value ? e.components.LoadingButton : e.components.SendButton), { type: "primary" }))])])]),
32430
+ footer: nt(({ info: e }) => [I("div", LB, [I("div", RB, [
32431
+ L(UR, {
32432
+ value: p.value,
32433
+ "built-in-agents": n.agents,
32434
+ disabled: u.value,
32435
+ "storage-key": n.agentPickerStorageKey,
32436
+ "onUpdate:value": Me,
32437
+ "onUpdate:agents": T
32438
+ }, null, 8, [
32439
+ "value",
32440
+ "built-in-agents",
32441
+ "disabled",
32442
+ "storage-key"
32443
+ ]),
32444
+ ne.value ? (z(), fe(H(nf), {
32445
+ key: 0,
32446
+ dot: g.value.length > 0 && !h.value
32447
+ }, {
32448
+ default: nt(() => [L(H(wD), { onClick: r[1] ||= (e) => h.value = !h.value })]),
32449
+ _: 1
32450
+ }, 8, ["dot"])) : P("", !0),
32451
+ (z(!0), F(M, null, Re(j.value?.footerControls, (e) => (z(), fe(He(e.component), Ce({
32452
+ key: e.key,
32453
+ agent: j.value?.agent,
32454
+ "agent-option": j.value,
32455
+ disabled: u.value
32456
+ }, { ref_for: !0 }, e.props), null, 16, [
32457
+ "agent",
32458
+ "agent-option",
32459
+ "disabled"
32460
+ ]))), 128))
32461
+ ]), I("div", zB, [(z(), fe(He(u.value ? e.components.LoadingButton : e.components.SendButton), { type: "primary" }))])])]),
32423
32462
  _: 2
32424
32463
  }, [ne.value ? {
32425
32464
  name: "header",
@@ -32443,7 +32482,7 @@ var oB = ["role", "tabindex"], sB = { class: "tool-call-node__prefix" }, cB = {
32443
32482
  } : void 0]), 1032, ["value", "loading"])])])
32444
32483
  ]));
32445
32484
  }
32446
- }), [["__scopeId", "data-v-40e24435"]]), VB = { class: "agent-chat" }, HB = { class: "agent-chat__sidebar-header" }, UB = {
32485
+ }), [["__scopeId", "data-v-c0958447"]]), VB = { class: "agent-chat" }, HB = { class: "agent-chat__sidebar-header" }, UB = {
32447
32486
  key: 0,
32448
32487
  class: "agent-chat__state-tip"
32449
32488
  }, WB = {
package/dist/style.css CHANGED
@@ -1,2 +1,2 @@
1
- .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}.agent-picker-wrap[data-v-0dead560]{align-items:center;display:inline-flex}.agent-picker-label[data-v-0dead560]{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-0dead560]:hover{background:var(--bg-color-secondary,#f5f5f5)}.agent-picker-label--disabled[data-v-0dead560]{cursor:not-allowed;opacity:.5}.agent-picker-label--disabled[data-v-0dead560]:hover{background:0 0}.agent-picker-arrow[data-v-0dead560]{color:var(--text-color-secondary,#8c8c8c);font-size:10px;transition:transform .15s}.agent-picker-menu[data-v-0dead560]{min-width:180px;max-width:280px}.agent-menu-item[data-v-0dead560]{justify-content:space-between;align-items:center;gap:6px;width:100%;display:flex}.agent-menu-label[data-v-0dead560]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.is-active .agent-menu-label[data-v-0dead560]{color:var(--primary-color,#1677ff);font-weight:600}.agent-menu-edit[data-v-0dead560]{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-0dead560]:hover{background:var(--primary-color-bg,#e6f4ff)}.agent-menu-del[data-v-0dead560]{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-0dead560]:hover{background:var(--error-color-bg,#fff2f0)}.agent-menu-add[data-v-0dead560]{color:var(--primary-color,#1677ff)}.tool-call-node[data-v-f2e29458]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-f2e29458]{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-f2e29458]{cursor:pointer}.tool-call-node__header--clickable[data-v-f2e29458]:hover{background:#eff1f3;border-color:#d8dde3}.tool-call-node__header--clickable[data-v-f2e29458]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 24%, transparent);outline-offset:2px}.tool-call-node__prefix[data-v-f2e29458]{align-items:center;gap:6px;min-width:0;display:inline-flex}.tool-call-node__title[data-v-f2e29458]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tool-call-node__prefix-icon[data-v-f2e29458]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.tool-call-node__prefix-icon.is-spinning[data-v-f2e29458]{animation:1s linear infinite tool-spin-f2e29458}.tool-call-node.is-running .tool-call-node__prefix[data-v-f2e29458],.tool-call-node.is-running .tool-call-node__toggle[data-v-f2e29458]{color:var(--primary-color,#1677ff)}.tool-call-node.is-running .tool-call-node__header[data-v-f2e29458]{background:#f2f5fa;border-color:#d6deea}.tool-call-node.is-success .tool-call-node__prefix[data-v-f2e29458],.tool-call-node.is-success .tool-call-node__toggle[data-v-f2e29458]{color:#8f98a3}.tool-call-node.is-success .tool-call-node__header[data-v-f2e29458]{background:#f3f5f7;border-color:#dde2e7}.tool-call-node.is-error .tool-call-node__prefix[data-v-f2e29458],.tool-call-node.is-error .tool-call-node__toggle[data-v-f2e29458]{color:var(--error-color,#ff4d4f)}.tool-call-node.is-error .tool-call-node__header[data-v-f2e29458]{background:#faf1f1;border-color:#edd7d8}.tool-call-node__toggle[data-v-f2e29458]{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-f2e29458],.tool-call-node__header--clickable:focus-visible .tool-call-node__toggle[data-v-f2e29458]{opacity:1}.tool-call-node__toggle-icon[data-v-f2e29458]{font-size:12px}.tool-call-node__detail[data-v-f2e29458]{background:#fbfdff;border:1px solid #edf2fa;border-radius:12px;margin-top:6px;padding:10px 12px}.tool-call-node__line[data-v-f2e29458]{align-items:flex-start;gap:4px;margin:0;font-size:12px;line-height:1.6;display:flex}.tool-call-node__label[data-v-f2e29458]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-shrink:0}.tool-call-node__value[data-v-f2e29458]{color:var(--text-color,var(--text));word-break:break-all}.tool-call-node__value--overflow[data-v-f2e29458]{-webkit-line-clamp:2;cursor:help;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@keyframes tool-spin-f2e29458{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__approval[data-v-f2e29458]{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-f2e29458]{color:#5a6474;margin-bottom:8px;font-size:12px;line-height:1.6}.tool-call-node__approval-args[data-v-f2e29458]{align-items:flex-start;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.tool-call-node__approval-code[data-v-f2e29458]{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-f2e29458]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-call-node__btn[data-v-f2e29458]{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-f2e29458]:disabled{opacity:.55;cursor:not-allowed}.tool-call-node__btn-approve[data-v-f2e29458]{color:#fff;background:#1677ff;border-color:#1677ff}.tool-call-node__btn-approve[data-v-f2e29458]:not(:disabled):hover{background:#4096ff;border-color:#4096ff}.tool-call-node__btn-approve[data-v-f2e29458]:not(:disabled):active{background:#0958d9;border-color:#0958d9}.tool-call-node__btn-reject[data-v-f2e29458]{color:#cf1322;background:#fff1f0;border-color:#ffccc7}.tool-call-node__btn-reject[data-v-f2e29458]:not(:disabled):hover{color:#fff;background:#ff4d4f;border-color:#ff4d4f}.tool-call-node__btn-reject[data-v-f2e29458]:not(:disabled):active{color:#fff;background:#a8071a;border-color:#a8071a}.tool-call-node__btn-edit[data-v-f2e29458]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-edit[data-v-f2e29458]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__btn-cancel[data-v-f2e29458]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-cancel[data-v-f2e29458]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__approval-edit[data-v-f2e29458]{margin-top:8px}.tool-call-node__textarea[data-v-f2e29458]{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-f2e29458]:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1f}.tool-call-node__approval-edit-actions[data-v-f2e29458]{align-items:center;gap:8px;margin-top:8px;display:flex}.tool-call-node__approval-result[data-v-f2e29458]{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-f2e29458]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__approval-result.is-rejected[data-v-f2e29458]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.approval-result-icon[data-v-f2e29458]{font-size:14px}.approval-result-enter-active[data-v-f2e29458],.approval-result-leave-active[data-v-f2e29458]{transition:all .25s}.approval-result-enter-from[data-v-f2e29458],.approval-result-leave-to[data-v-f2e29458]{opacity:0;transform:translateY(-4px)}.tool-call-node__waiting-badge[data-v-f2e29458]{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-f2e29458]{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-f2e29458]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__result-badge.is-rejected[data-v-f2e29458]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.tool-call-node[data-v-2ab50b51]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-2ab50b51]{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-2ab50b51]{cursor:pointer}.tool-call-node__header--clickable[data-v-2ab50b51]:hover{background:#ebecee}.tool-call-node__prefix[data-v-2ab50b51]{align-items:center;gap:6px;min-width:0;display:flex}.tool-call-node__prefix-icon[data-v-2ab50b51]{flex-shrink:0;font-size:14px}.tool-call-node__prefix-icon.is-spinning[data-v-2ab50b51]{animation:1s linear infinite spin-2ab50b51}@keyframes spin-2ab50b51{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__title[data-v-2ab50b51]{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tool-call-node__toggle[data-v-2ab50b51]{flex-shrink:0}.tool-call-node__toggle-icon[data-v-2ab50b51]{color:#9ca3af;font-size:12px}.smdr__body[data-v-2ab50b51]{border:1px solid #e5e7eb;border-radius:8px;margin-top:8px;overflow:hidden}.smdr__error[data-v-2ab50b51]{color:#ef4444;background:#fef2f2;padding:12px}.smdr__tabs[data-v-2ab50b51]{background:#f9fafb;border-bottom:1px solid #e5e7eb;gap:0;display:flex;overflow-x:auto}.smdr__tab[data-v-2ab50b51]{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-2ab50b51]:hover{color:#374151}.smdr__tab--active[data-v-2ab50b51]{color:var(--primary-color,#1677ff);border-bottom-color:var(--primary-color,#1677ff)}.smdr__content[data-v-2ab50b51]{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-40e24435]{background:#fff;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.chat-header[data-v-40e24435]{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-40e24435]{flex-direction:column;gap:4px;min-width:0;display:flex}.header-actions[data-v-40e24435]{flex-shrink:0;align-items:center;gap:12px;display:flex}.conv-heading[data-v-40e24435]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600;line-height:1.4}.conv-subheading[data-v-40e24435]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:0;font-size:13px;line-height:1.5}.chat-body[data-v-40e24435]{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.empty-state[data-v-40e24435]{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-40e24435]{color:var(--primary-color,var(--primary));font-size:32px}.empty-title[data-v-40e24435]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600}.empty-sub[data-v-40e24435]{margin:0;font-size:13px}.messages-wrapper[data-v-40e24435]{flex:1;width:100%;min-height:0;display:flex}.input-footer[data-v-40e24435]{border-top:1px solid var(--border-color-split,var(--border));flex-shrink:0;padding:12px 16px 16px}.input-panel[data-v-40e24435]{width:100%}.ai-loading[data-v-40e24435]{align-items:center;min-height:28px;display:flex}.loading-text[data-v-40e24435]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));font-size:14px}.sender-footer[data-v-40e24435]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.sender-footer__left[data-v-40e24435]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sender-footer__right[data-v-40e24435]{flex-shrink:0;align-items:center;gap:4px;display:flex}.agent-chat[data-v-41b9524a]{background:var(--component-background,#fff);width:100%;height:100%;display:flex;position:relative;overflow:hidden}.agent-chat__sidebar[data-v-41b9524a]{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-41b9524a]{display:none}.agent-chat__sidebar-header[data-v-41b9524a]{justify-content:space-between;align-items:center;display:flex}.agent-chat__sidebar-title[data-v-41b9524a]{color:var(--text-color,var(--text));font-size:13px;font-weight:600}.agent-chat__new-btn[data-v-41b9524a]{height:26px;padding:0 6px;font-size:12px}.agent-chat__agent-select[data-v-41b9524a]{width:100%}.agent-chat__search[data-v-41b9524a]{border-radius:8px!important}.agent-chat__state-tip[data-v-41b9524a]{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-41b9524a]{color:#f87171}.agent-chat__conv-list[data-v-41b9524a]{flex:1;overflow:hidden auto}.agent-chat__conv-list[data-v-41b9524a]::-webkit-scrollbar{width:3px}.agent-chat__conv-list[data-v-41b9524a]::-webkit-scrollbar-thumb{background:#00000014;border-radius:99px}.agent-chat__main[data-v-41b9524a]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.agent-chat__toolbar[data-v-41b9524a]{flex-shrink:0;padding:10px 12px 0;display:none}.agent-chat__history-btn[data-v-41b9524a]{border-radius:999px;font-size:13px}.agent-chat__panel[data-v-41b9524a]{flex:1;min-height:0}.agent-chat__mask[data-v-41b9524a]{display:none}@media (width<=768px){.agent-chat__sidebar[data-v-41b9524a]{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-41b9524a]{left:0}.agent-chat__close-btn[data-v-41b9524a]{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-41b9524a]{display:block}.agent-chat__mask[data-v-41b9524a]{z-index:90;background:#0f172a66;display:block;position:fixed;inset:0}}.sub-agent-node[data-v-9353d527]{border:1px solid var(--border-color-split,#e5e7eb);background:#f9fafb;border-radius:6px;margin:4px 0;overflow:hidden}.sub-agent-node__header[data-v-9353d527]{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-9353d527]:hover{background:#e9eaec}.sub-agent-node__prefix[data-v-9353d527]{align-items:center;gap:6px;display:flex}.sub-agent-node__icon[data-v-9353d527]{color:#6b7280;font-size:14px}.sub-agent-node__icon.is-spinning[data-v-9353d527]{animation:1s linear infinite sub-spin-9353d527}@keyframes sub-spin-9353d527{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sub-agent-node__name[data-v-9353d527]{font-size:13px;font-weight:500}.sub-agent-node__badge[data-v-9353d527]{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-9353d527]{color:#9ca3af;font-size:12px}.sub-agent-node__body[data-v-9353d527]{padding:8px 12px 10px}.sub-agent-node__tools[data-v-9353d527]{margin-bottom:8px}.sub-agent-node__content[data-v-9353d527]{font-size:13px}
1
+ .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}.agent-picker-wrap[data-v-0dead560]{align-items:center;display:inline-flex}.agent-picker-label[data-v-0dead560]{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-0dead560]:hover{background:var(--bg-color-secondary,#f5f5f5)}.agent-picker-label--disabled[data-v-0dead560]{cursor:not-allowed;opacity:.5}.agent-picker-label--disabled[data-v-0dead560]:hover{background:0 0}.agent-picker-arrow[data-v-0dead560]{color:var(--text-color-secondary,#8c8c8c);font-size:10px;transition:transform .15s}.agent-picker-menu[data-v-0dead560]{min-width:180px;max-width:280px}.agent-menu-item[data-v-0dead560]{justify-content:space-between;align-items:center;gap:6px;width:100%;display:flex}.agent-menu-label[data-v-0dead560]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.is-active .agent-menu-label[data-v-0dead560]{color:var(--primary-color,#1677ff);font-weight:600}.agent-menu-edit[data-v-0dead560]{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-0dead560]:hover{background:var(--primary-color-bg,#e6f4ff)}.agent-menu-del[data-v-0dead560]{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-0dead560]:hover{background:var(--error-color-bg,#fff2f0)}.agent-menu-add[data-v-0dead560]{color:var(--primary-color,#1677ff)}.tool-call-node[data-v-f2e29458]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-f2e29458]{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-f2e29458]{cursor:pointer}.tool-call-node__header--clickable[data-v-f2e29458]:hover{background:#eff1f3;border-color:#d8dde3}.tool-call-node__header--clickable[data-v-f2e29458]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 24%, transparent);outline-offset:2px}.tool-call-node__prefix[data-v-f2e29458]{align-items:center;gap:6px;min-width:0;display:inline-flex}.tool-call-node__title[data-v-f2e29458]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tool-call-node__prefix-icon[data-v-f2e29458]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.tool-call-node__prefix-icon.is-spinning[data-v-f2e29458]{animation:1s linear infinite tool-spin-f2e29458}.tool-call-node.is-running .tool-call-node__prefix[data-v-f2e29458],.tool-call-node.is-running .tool-call-node__toggle[data-v-f2e29458]{color:var(--primary-color,#1677ff)}.tool-call-node.is-running .tool-call-node__header[data-v-f2e29458]{background:#f2f5fa;border-color:#d6deea}.tool-call-node.is-success .tool-call-node__prefix[data-v-f2e29458],.tool-call-node.is-success .tool-call-node__toggle[data-v-f2e29458]{color:#8f98a3}.tool-call-node.is-success .tool-call-node__header[data-v-f2e29458]{background:#f3f5f7;border-color:#dde2e7}.tool-call-node.is-error .tool-call-node__prefix[data-v-f2e29458],.tool-call-node.is-error .tool-call-node__toggle[data-v-f2e29458]{color:var(--error-color,#ff4d4f)}.tool-call-node.is-error .tool-call-node__header[data-v-f2e29458]{background:#faf1f1;border-color:#edd7d8}.tool-call-node__toggle[data-v-f2e29458]{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-f2e29458],.tool-call-node__header--clickable:focus-visible .tool-call-node__toggle[data-v-f2e29458]{opacity:1}.tool-call-node__toggle-icon[data-v-f2e29458]{font-size:12px}.tool-call-node__detail[data-v-f2e29458]{background:#fbfdff;border:1px solid #edf2fa;border-radius:12px;margin-top:6px;padding:10px 12px}.tool-call-node__line[data-v-f2e29458]{align-items:flex-start;gap:4px;margin:0;font-size:12px;line-height:1.6;display:flex}.tool-call-node__label[data-v-f2e29458]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-shrink:0}.tool-call-node__value[data-v-f2e29458]{color:var(--text-color,var(--text));word-break:break-all}.tool-call-node__value--overflow[data-v-f2e29458]{-webkit-line-clamp:2;cursor:help;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@keyframes tool-spin-f2e29458{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__approval[data-v-f2e29458]{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-f2e29458]{color:#5a6474;margin-bottom:8px;font-size:12px;line-height:1.6}.tool-call-node__approval-args[data-v-f2e29458]{align-items:flex-start;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.tool-call-node__approval-code[data-v-f2e29458]{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-f2e29458]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-call-node__btn[data-v-f2e29458]{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-f2e29458]:disabled{opacity:.55;cursor:not-allowed}.tool-call-node__btn-approve[data-v-f2e29458]{color:#fff;background:#1677ff;border-color:#1677ff}.tool-call-node__btn-approve[data-v-f2e29458]:not(:disabled):hover{background:#4096ff;border-color:#4096ff}.tool-call-node__btn-approve[data-v-f2e29458]:not(:disabled):active{background:#0958d9;border-color:#0958d9}.tool-call-node__btn-reject[data-v-f2e29458]{color:#cf1322;background:#fff1f0;border-color:#ffccc7}.tool-call-node__btn-reject[data-v-f2e29458]:not(:disabled):hover{color:#fff;background:#ff4d4f;border-color:#ff4d4f}.tool-call-node__btn-reject[data-v-f2e29458]:not(:disabled):active{color:#fff;background:#a8071a;border-color:#a8071a}.tool-call-node__btn-edit[data-v-f2e29458]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-edit[data-v-f2e29458]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__btn-cancel[data-v-f2e29458]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-cancel[data-v-f2e29458]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__approval-edit[data-v-f2e29458]{margin-top:8px}.tool-call-node__textarea[data-v-f2e29458]{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-f2e29458]:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1f}.tool-call-node__approval-edit-actions[data-v-f2e29458]{align-items:center;gap:8px;margin-top:8px;display:flex}.tool-call-node__approval-result[data-v-f2e29458]{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-f2e29458]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__approval-result.is-rejected[data-v-f2e29458]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.approval-result-icon[data-v-f2e29458]{font-size:14px}.approval-result-enter-active[data-v-f2e29458],.approval-result-leave-active[data-v-f2e29458]{transition:all .25s}.approval-result-enter-from[data-v-f2e29458],.approval-result-leave-to[data-v-f2e29458]{opacity:0;transform:translateY(-4px)}.tool-call-node__waiting-badge[data-v-f2e29458]{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-f2e29458]{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-f2e29458]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__result-badge.is-rejected[data-v-f2e29458]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.tool-call-node[data-v-2ab50b51]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-2ab50b51]{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-2ab50b51]{cursor:pointer}.tool-call-node__header--clickable[data-v-2ab50b51]:hover{background:#ebecee}.tool-call-node__prefix[data-v-2ab50b51]{align-items:center;gap:6px;min-width:0;display:flex}.tool-call-node__prefix-icon[data-v-2ab50b51]{flex-shrink:0;font-size:14px}.tool-call-node__prefix-icon.is-spinning[data-v-2ab50b51]{animation:1s linear infinite spin-2ab50b51}@keyframes spin-2ab50b51{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__title[data-v-2ab50b51]{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tool-call-node__toggle[data-v-2ab50b51]{flex-shrink:0}.tool-call-node__toggle-icon[data-v-2ab50b51]{color:#9ca3af;font-size:12px}.smdr__body[data-v-2ab50b51]{border:1px solid #e5e7eb;border-radius:8px;margin-top:8px;overflow:hidden}.smdr__error[data-v-2ab50b51]{color:#ef4444;background:#fef2f2;padding:12px}.smdr__tabs[data-v-2ab50b51]{background:#f9fafb;border-bottom:1px solid #e5e7eb;gap:0;display:flex;overflow-x:auto}.smdr__tab[data-v-2ab50b51]{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-2ab50b51]:hover{color:#374151}.smdr__tab--active[data-v-2ab50b51]{color:var(--primary-color,#1677ff);border-bottom-color:var(--primary-color,#1677ff)}.smdr__content[data-v-2ab50b51]{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-c0958447]{background:#fff;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.chat-header[data-v-c0958447]{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-c0958447]{flex-direction:column;gap:4px;min-width:0;display:flex}.header-actions[data-v-c0958447]{flex-shrink:0;align-items:center;gap:12px;display:flex}.conv-heading[data-v-c0958447]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600;line-height:1.4}.conv-subheading[data-v-c0958447]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:0;font-size:13px;line-height:1.5}.chat-body[data-v-c0958447]{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.empty-state[data-v-c0958447]{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-c0958447]{color:var(--primary-color,var(--primary));font-size:32px}.empty-title[data-v-c0958447]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600}.empty-sub[data-v-c0958447]{margin:0;font-size:13px}.messages-wrapper[data-v-c0958447]{flex:1;width:100%;min-height:0;display:flex}.input-footer[data-v-c0958447]{border-top:1px solid var(--border-color-split,var(--border));flex-shrink:0;padding:12px 16px 16px}.input-panel[data-v-c0958447]{width:100%}.ai-loading[data-v-c0958447]{align-items:center;min-height:28px;display:flex}.loading-text[data-v-c0958447]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));font-size:14px}.sender-footer[data-v-c0958447]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.sender-footer__left[data-v-c0958447]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sender-footer__right[data-v-c0958447]{flex-shrink:0;align-items:center;gap:4px;display:flex}.agent-chat[data-v-41b9524a]{background:var(--component-background,#fff);width:100%;height:100%;display:flex;position:relative;overflow:hidden}.agent-chat__sidebar[data-v-41b9524a]{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-41b9524a]{display:none}.agent-chat__sidebar-header[data-v-41b9524a]{justify-content:space-between;align-items:center;display:flex}.agent-chat__sidebar-title[data-v-41b9524a]{color:var(--text-color,var(--text));font-size:13px;font-weight:600}.agent-chat__new-btn[data-v-41b9524a]{height:26px;padding:0 6px;font-size:12px}.agent-chat__agent-select[data-v-41b9524a]{width:100%}.agent-chat__search[data-v-41b9524a]{border-radius:8px!important}.agent-chat__state-tip[data-v-41b9524a]{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-41b9524a]{color:#f87171}.agent-chat__conv-list[data-v-41b9524a]{flex:1;overflow:hidden auto}.agent-chat__conv-list[data-v-41b9524a]::-webkit-scrollbar{width:3px}.agent-chat__conv-list[data-v-41b9524a]::-webkit-scrollbar-thumb{background:#00000014;border-radius:99px}.agent-chat__main[data-v-41b9524a]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.agent-chat__toolbar[data-v-41b9524a]{flex-shrink:0;padding:10px 12px 0;display:none}.agent-chat__history-btn[data-v-41b9524a]{border-radius:999px;font-size:13px}.agent-chat__panel[data-v-41b9524a]{flex:1;min-height:0}.agent-chat__mask[data-v-41b9524a]{display:none}@media (width<=768px){.agent-chat__sidebar[data-v-41b9524a]{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-41b9524a]{left:0}.agent-chat__close-btn[data-v-41b9524a]{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-41b9524a]{display:block}.agent-chat__mask[data-v-41b9524a]{z-index:90;background:#0f172a66;display:block;position:fixed;inset:0}}.sub-agent-node[data-v-9353d527]{border:1px solid var(--border-color-split,#e5e7eb);background:#f9fafb;border-radius:6px;margin:4px 0;overflow:hidden}.sub-agent-node__header[data-v-9353d527]{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-9353d527]:hover{background:#e9eaec}.sub-agent-node__prefix[data-v-9353d527]{align-items:center;gap:6px;display:flex}.sub-agent-node__icon[data-v-9353d527]{color:#6b7280;font-size:14px}.sub-agent-node__icon.is-spinning[data-v-9353d527]{animation:1s linear infinite sub-spin-9353d527}@keyframes sub-spin-9353d527{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sub-agent-node__name[data-v-9353d527]{font-size:13px;font-weight:500}.sub-agent-node__badge[data-v-9353d527]{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-9353d527]{color:#9ca3af;font-size:12px}.sub-agent-node__body[data-v-9353d527]{padding:8px 12px 10px}.sub-agent-node__tools[data-v-9353d527]{margin-bottom:8px}.sub-agent-node__content[data-v-9353d527]{font-size:13px}
2
2
  /*$vite$:1*/
@@ -206,10 +206,21 @@ export interface ExtendedAgentRuntime extends AgentRuntime {
206
206
  }
207
207
  export interface AgentOption {
208
208
  agent: AgentRuntime;
209
+ /** Sender footer 中的扩展控件(可选),切换 Agent 时自动替换 */
210
+ footerControls?: FooterControl[];
209
211
  key: string;
210
212
  label: string;
211
213
  toolRenderers?: ToolRendererMap;
212
214
  }
215
+ /** Sender footer 扩展控件 */
216
+ export interface FooterControl {
217
+ /** Vue 组件定义,ChatPanel 会注入 props: agent, agentOption, disabled, ...props */
218
+ component: import('vue').Component;
219
+ /** 唯一标识(v-for key) */
220
+ key: string;
221
+ /** 透传给组件的额外 props(会与 agent/agentOption/disabled 合并) */
222
+ props?: Record<string, unknown>;
223
+ }
213
224
  export interface ToolRendererProps {
214
225
  expanded: boolean;
215
226
  resolving?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "netstar-ai-chat",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "AI Chat Panel component for Vue 3 — 可复用的人工智能对话面板组件",
5
5
  "keywords": [
6
6
  "vue",