netstar-ai-chat 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AgentChat/index.vue.d.ts +32 -0
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +44 -18
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { MarkdownCustomComponentMap } from '../StreamMarkdown/type';
|
|
2
|
+
import { ToolRendererMap } from '../types/index';
|
|
1
3
|
import { AgentEventCallback, AgentOption, AgentRuntime } from './AIMessage';
|
|
2
4
|
|
|
3
5
|
declare function loadConversations(): Promise<void>;
|
|
@@ -16,8 +18,16 @@ declare function __VLS_template(): {
|
|
|
16
18
|
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
17
19
|
/** 当前选中 Agent 的 key(v-model:agentKey) */
|
|
18
20
|
agentKey?: string;
|
|
21
|
+
/** AgentPicker localStorage 存储键前缀(用于多实例隔离) */
|
|
22
|
+
agentPickerStorageKey?: string;
|
|
19
23
|
/** 可用 Agent 列表,至少传一个 */
|
|
20
24
|
agents: AgentOption[];
|
|
25
|
+
/** 传给 StreamMarkdown 的自定义组件映射 */
|
|
26
|
+
customComponents?: MarkdownCustomComponentMap;
|
|
27
|
+
/** 传给 StreamMarkdown 的自定义 HTML 标签白名单 */
|
|
28
|
+
customHtmlTags?: readonly string[];
|
|
29
|
+
/** 默认工具渲染 map(全局兜底,对所有 Agent 生效) */
|
|
30
|
+
defaultToolRenderers?: ToolRendererMap;
|
|
21
31
|
/** 空消息时的提示文字 */
|
|
22
32
|
emptyHint?: string;
|
|
23
33
|
/**
|
|
@@ -27,6 +37,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
27
37
|
* - `undefined`(不设置):根据当前 Agent 是否配置了历史接口自动判断
|
|
28
38
|
*/
|
|
29
39
|
hideHistory?: boolean;
|
|
40
|
+
/** 输入框内容 (v-model) */
|
|
41
|
+
modelValue?: string;
|
|
30
42
|
/** 透传当前 Agent 的运行时事件 */
|
|
31
43
|
onAgentEvent?: AgentEventCallback;
|
|
32
44
|
/**
|
|
@@ -171,11 +183,24 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
171
183
|
stop: () => void | undefined;
|
|
172
184
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
173
185
|
"update:agentKey": (key: string) => void;
|
|
186
|
+
"update:modelValue": (value: string) => void;
|
|
187
|
+
submit: (value?: string | undefined, agentKey?: string | undefined) => void;
|
|
188
|
+
cancel: () => void;
|
|
189
|
+
agentChange: (value: string) => void;
|
|
190
|
+
"update:agents": (value: AgentOption[]) => void;
|
|
174
191
|
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
175
192
|
/** 当前选中 Agent 的 key(v-model:agentKey) */
|
|
176
193
|
agentKey?: string;
|
|
194
|
+
/** AgentPicker localStorage 存储键前缀(用于多实例隔离) */
|
|
195
|
+
agentPickerStorageKey?: string;
|
|
177
196
|
/** 可用 Agent 列表,至少传一个 */
|
|
178
197
|
agents: AgentOption[];
|
|
198
|
+
/** 传给 StreamMarkdown 的自定义组件映射 */
|
|
199
|
+
customComponents?: MarkdownCustomComponentMap;
|
|
200
|
+
/** 传给 StreamMarkdown 的自定义 HTML 标签白名单 */
|
|
201
|
+
customHtmlTags?: readonly string[];
|
|
202
|
+
/** 默认工具渲染 map(全局兜底,对所有 Agent 生效) */
|
|
203
|
+
defaultToolRenderers?: ToolRendererMap;
|
|
179
204
|
/** 空消息时的提示文字 */
|
|
180
205
|
emptyHint?: string;
|
|
181
206
|
/**
|
|
@@ -185,6 +210,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
185
210
|
* - `undefined`(不设置):根据当前 Agent 是否配置了历史接口自动判断
|
|
186
211
|
*/
|
|
187
212
|
hideHistory?: boolean;
|
|
213
|
+
/** 输入框内容 (v-model) */
|
|
214
|
+
modelValue?: string;
|
|
188
215
|
/** 透传当前 Agent 的运行时事件 */
|
|
189
216
|
onAgentEvent?: AgentEventCallback;
|
|
190
217
|
/**
|
|
@@ -199,7 +226,12 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
199
226
|
title: string;
|
|
200
227
|
emptyHint: string;
|
|
201
228
|
}>>> & Readonly<{
|
|
229
|
+
"onUpdate:agents"?: ((value: AgentOption[]) => any) | undefined;
|
|
230
|
+
onSubmit?: ((value?: string | undefined, agentKey?: string | undefined) => any) | undefined;
|
|
231
|
+
onCancel?: (() => any) | undefined;
|
|
232
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
202
233
|
"onUpdate:agentKey"?: ((key: string) => any) | undefined;
|
|
234
|
+
onAgentChange?: ((value: string) => any) | undefined;
|
|
203
235
|
}>, {
|
|
204
236
|
title: string;
|
|
205
237
|
agentKey: string;
|
package/dist/index.cjs
CHANGED
|
@@ -359,13 +359,13 @@ summary tabindex target title type usemap value width wmode wrap onCopy onCut on
|
|
|
359
359
|
|
|
360
360
|
`)}\n\n${e}`:e;try{let e=this.buildRequestHeaders(),i={prompt:r,conversation_id:this.conversationId||null,stream_mode:(this.mode,`messages,updates`),user:this.user,app:this.app,attachments:t};this.prepareRequestBody&&(i=this.prepareRequestBody(i));let a=await fetch(this.endpoint,{method:`POST`,headers:e,body:JSON.stringify(i),signal:n.signal});if(!a.ok)throw Error(await MR(a));let o=a.headers.get(`x-conversation-id`);if(o&&this.updateConversationId(o),await this.processSseStream(a,this.replyParts))return}catch(e){if(n.signal.aborted)return;throw Error(NR(e))}finally{this.abortController===n&&(this.abortController=null)}}clearInitialUserContexts(){this.initialUserContexts=[]}async deleteConversation(e){if(!this.historyEndpoint)throw Error(`未配置 historyEndpoint`);try{let t=new URL(`${this.historyEndpoint}/threads/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n=await fetch(t.toString(),{method:`DELETE`});if(n.status===404)throw Error(`未找到会话: ${e}`);if(!n.ok)throw Error(await MR(n))}catch(e){throw Error(NR(e))}}getApp(){return this.app}async getConversationDetail(e,t){if(!this.historyEndpoint)return[];this.updateConversationId(e);let n;try{let t=new URL(`${this.historyEndpoint}/conversations/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let r=await fetch(t.toString());if(r.status===404)return[];if(!r.ok)throw Error(await MR(r));n=await r.json()}catch(e){throw Error(NR(e))}let r=[],i=new Map,a=[];for(let t of n.messages??[])switch(t.type??t.role??``){case`ai`:{if(Array.isArray(t.tool_calls)&&t.tool_calls.length>0){let e=Date.now();for(let n of t.tool_calls)n.id&&(i.set(n.id,{toolName:n.name,args:n.args,startedAt:e}),a.push({toolCallId:n.id,toolName:n.name,title:n.name,status:`running`,stepNumber:0,startedAt:e,inputPreview:n.args?JSON.stringify(n.args).slice(0,200):void 0}))}let n=u(t.content);if(n){let t={key:`hist-${e}-a${r.length}`,role:`ai`,content:n};a.length>0&&(t.toolTimeline=a,t.segments=[...a.map(e=>({type:`tool`,toolCallId:e.toolCallId})),{type:`text`,start:0,end:-1}],a=[],i.clear()),r.push(t)}break}case`human`:r.push({key:`hist-${e}-u${r.length}`,role:`user`,content:u(t.content)});break;case`tool`:{let e=t.tool_call_id??``,n=e?i.get(e):void 0,r=a.find(t=>t.toolCallId===e);if(r){let a=u(t.content);r.status=t.status===`error`?`error`:`success`,r.resultPreview=a.slice(0,500),n&&(r.durationMs=Date.now()-n.startedAt,i.delete(e))}break}}return r}getConversationId(){return this.conversationId}getUser(){return this.user}async listConversations(e){if(!this.historyEndpoint)return{items:[],hasMore:!1};let t=new URL(`${this.historyEndpoint}/conversations`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n;try{let e=await fetch(t.toString());if(!e.ok)throw Error(await MR(e));n=await e.json()}catch(e){throw Error(NR(e))}return{items:n.map(e=>{let t=e.created_at?new Date(e.created_at).getTime():void 0;return{id:e.conversation_id,title:e.title||t?.toString()||`未命名会话`,createdAt:t&&!Number.isNaN(t)?t:void 0}}),hasMore:!1}}offConversationChange(e){this.off(`conversationChange`,e)}offInterrupt(e){this.off(`interrupt`,e)}onConversationChange(e){this.on(`conversationChange`,e)}onInterrupt(e){this.on(`interrupt`,e)}reset(){this.stop(),this.activeToolCalls.clear(),this.pendingToolCallArgs.clear(),this.pendingInterruptId=``,this.updateConversationId(``)}async resume(e){this.abortController||=new AbortController;let t=this.abortController,n,r;this.resumeMode===`create_agent`?(n=e.map(e=>({type:e.decision,...e.message==null?{}:{message:e.message}})),r={decisions:n,conversation_id:this.conversationId}):r={decisions:e,conversation_id:this.conversationId,...this.pendingInterruptId?{interrupt_id:this.pendingInterruptId}:{}},this.pendingInterruptId=``,this.emit(`replyChange`,``,this.replyParts.join(``));try{let e=this.buildRequestHeaders();this.conversationId&&(e[`x-conversation-id`]=this.conversationId);let n=await fetch(`${this.resumeEndpoint||this.endpoint}`,{method:`POST`,headers:e,body:JSON.stringify(r),signal:t.signal});if(!n.ok)throw Error(await MR(n));let i=n.headers.get(`x-conversation-id`);i&&this.updateConversationId(i),await this.processSseStream(n,this.replyParts)}catch(e){if(t.signal.aborted)return;throw Error(NR(e))}finally{this.abortController===t&&(this.abortController=null)}}setInitialUserContexts(e){this.initialUserContexts=e.map(e=>e.trim()).filter(Boolean)}setPrepareRequestBody(e){this.prepareRequestBody=e}setRequestHeaders(e){this.requestHeaders={...this.requestHeaders,...e}}setUser(e){this.user=e}stop(){this.abortController&&(this.abortController.abort(),this.abortController=null,this.emit(`stop`))}supportsHistory(){return!!this.historyEndpoint}buildRequestHeaders(){let e={"Content-Type":`application/json`,...this.requestHeaders};return this.user&&(e[`x-user`]=this.user),this.app&&(e[`x-app`]=this.app),e}checkAndHandleInterrupt(e){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__);for(let t of Object.values(e))if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__)}return!1}emitInterruptFromEntries(e){let t=e[0],n=typeof t.id==`string`?t.id:``;if(!n)return!1;this.pendingInterruptId=n;let r=t.value,i=Array.isArray(r?.action_requests)?r.action_requests:[],a=Array.isArray(r?.review_configs)?r.review_configs:[];return this.emit(`interrupt`,{interrupt_id:n,action_requests:i.map(e=>({name:typeof e.name==`string`?e.name:``,args:e.args&&typeof e.args==`object`?e.args:{},description:typeof e.description==`string`?e.description:``})),review_configs:a.map(e=>({action_name:typeof e.action_name==`string`?e.action_name:``,allowed_decisions:Array.isArray(e.allowed_decisions)?e.allowed_decisions:[]}))}),!0}emitToolCallEvent(e){this.emit(`toolCall`,e)}handleAstreamEventsData(e,t){let n=typeof e.event==`string`?e.event:``,r=typeof e.run_id==`string`?e.run_id:``,i=e.data&&typeof e.data==`object`?e.data:{};if(n===`on_chat_model_stream`){let e=i.chunk&&typeof i.chunk==`object`?i.chunk:{},n=e.kwargs&&typeof e.kwargs==`object`?e.kwargs:{};return this.processAIMessageKwargs(n,t,r)}if(n===`on_tool_end`){let e=i.output;if(this.activeToolCalls.has(r)){let t=this.activeToolCalls.get(r),n=Date.now();this.emitToolCallEvent({toolCallId:r,toolName:t.toolName,title:t.title,status:`success`,output:e,stepNumber:0,durationMs:n-t.startedAt,timestamp:t.startedAt}),this.activeToolCalls.delete(r),this.pendingToolCallArgs.delete(r)}return!1}return!1}handleSsePacket(e,t){let n=e.data||{};if(e.event===`start`){let e=typeof n.thread_id==`string`?n.thread_id:``;return e&&this.updateConversationId(e),!1}if(e.event===`messages`){if((typeof n.mode==`string`?n.mode:``)===`messages`){if(this.mode===`astream_events`&&n.data&&typeof n.data==`object`&&!Array.isArray(n.data))return this.handleAstreamEventsData(n.data,t);if(this.isV2StreamPart(n.data))return this.handleV2StreamPart(n.data,t);let e=(Array.isArray(n.data)?n.data:[])[0];return e?this.processAIMessageKwargs(e.kwargs,t):!1}return!1}if(e.event===`updates`)return this.emit(`updates`,n.data),this.checkAndHandleInterrupt(n.data);if(e.event===`error`){let e=typeof n.message==`string`&&n.message?n.message:`流式请求失败`;throw Error(e)}return!1}handleV2StreamPart(e,t){if(e.type===`messages`){let n=(Array.isArray(e.data)?e.data:[])[0];if(!n)return!1;let r=n.kwargs;return this.processAIMessageKwargs(r,t)}return e.type===`updates`||e.type===`interrupts`?this.checkAndHandleInterrupt(e.data):!1}isV2StreamPart(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.type==`string`&&Array.isArray(t.ns)&&`data`in t}processAIMessageKwargs(e,t,n=``){if((typeof e.type==`string`?e.type:``)===`tool`){let t=typeof e.tool_call_id==`string`?e.tool_call_id:``,n=typeof e.content==`string`?e.content:``;if(t&&this.activeToolCalls.has(t)){let e=this.activeToolCalls.get(t),r=Date.now();this.emitToolCallEvent({toolCallId:t,toolName:e.toolName,title:e.title,status:`success`,output:n,stepNumber:0,durationMs:r-e.startedAt,timestamp:e.startedAt}),this.activeToolCalls.delete(t),this.pendingToolCallArgs.delete(t)}return!1}let r=Array.isArray(e.tool_call_chunks)?e.tool_call_chunks:[];if(r.length>0){for(let e of r){let t=e,r=typeof t.name==`string`?t.name:``,i=typeof t.args==`string`?t.args:``;if(r){let e=(typeof t.id==`string`&&t.id?t.id:n)||``;this.currentToolCallId=e;let a=Date.now();this.activeToolCalls.set(e,{toolName:r,title:r,startedAt:a}),this.pendingToolCallArgs.set(e,i),this.emitToolCallEvent({toolCallId:e,toolName:r,title:r,status:`running`,input:i,stepNumber:0,timestamp:a})}else if(this.currentToolCallId){let e=this.currentToolCallId,t=this.pendingToolCallArgs.get(e)||``;this.pendingToolCallArgs.set(e,t+i);let n=this.activeToolCalls.get(e)?.toolName??`tool_call`;this.emitToolCallEvent({toolCallId:e,toolName:n,title:n,status:`running`,input:this.pendingToolCallArgs.get(e)||``,stepNumber:0,timestamp:Date.now()})}}return!1}if((e.response_metadata&&typeof e.response_metadata==`object`?e.response_metadata:{}).finish_reason===`tool_calls`&&this.activeToolCalls.size>0){for(let[e,t]of this.activeToolCalls)this.emitToolCallEvent({toolCallId:e,toolName:t.toolName,title:t.title??t.toolName,status:`success`,input:this.pendingToolCallArgs.get(e)||``,stepNumber:0,timestamp:t.startedAt});return!1}let i=e.additional_kwargs&&typeof e.additional_kwargs==`object`?e.additional_kwargs:{},a=typeof i.reasoning_content==`string`?i.reasoning_content:``;if(a)return this.inThinkBlock||(this.inThinkBlock=!0,t.push(`<think>`),this.emit(`replyChange`,`<think>`,t.join(``))),t.push(a),this.emit(`replyChange`,a,t.join(``)),!1;let o=typeof e.content==`string`?e.content:``;return o&&(this.inThinkBlock&&(this.inThinkBlock=!1,t.push(`</think>`),this.emit(`replyChange`,`</think>`,t.join(``))),t.push(o),this.emit(`replyChange`,o,t.join(``))),!1}async processSseStream(e,t){if(!e.body)throw Error(`当前浏览器不支持读取流式响应`);let n=e.body.getReader(),r=new TextDecoder,i=``;try{for(;;){let{value:e,done:a}=await n.read();if(a)break;i+=r.decode(e,{stream:!0});let o=i.split(`
|
|
361
361
|
|
|
362
|
-
`);i=o.pop()||``;for(let e of o){if(!e.trim())continue;let n=jR(e);if(n&&this.handleSsePacket(n,t))return!0}}if(i.trim()){let e=jR(i);if(e&&this.handleSsePacket(e,t))return!0}}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return!1;throw e}finally{try{n.cancel()}catch{}}return!1}updateConversationId(e){this.conversationId!==e&&(this.conversationId=e,this.emit(`conversationChange`,e))}},FR={class:`agent-picker-wrap`},IR={class:`agent-menu-item`},LR={class:`agent-menu-label`},RR={class:`agent-menu-add`},zR=(0,a.defineComponent)({__name:`AgentPicker`,props:{builtInAgents:{},disabled:{type:Boolean,default:!1},storageKey:{default:`chat_panel_agent`},value:{default:``}},emits:[`update:value`,`update:agents`],setup(e,{emit:t}){let n=e,r=t,i=`${n.storageKey}_configs`,o=`${n.storageKey}_selected`,s=(0,a.ref)([]),c=new Map,l=(0,a.ref)(!1),u=(0,a.ref)(null),d=(0,a.ref)(!1),f=(0,a.ref)(),p=[{value:`langchain_py`,label:`Langchain Py(SSE 流式)`},{value:`dify_sdk`,label:`Dify SDK`}],m=[{value:`astream`,label:`astream`},{value:`astream_events`,label:`astream_events`}],h=[{value:`langgraph`,label:`langgraph`},{value:`create_agent`,label:`create_agent`}];function g(){return{label:``,type:`langchain_py`,endpoint:``,historyEndpoint:``,user:``,app:``,mode:void 0,resumeMode:void 0,resumeEndpoint:``,apiKey:``,apiBaseUrl:``}}let _=(0,a.reactive)(g()),v=(0,a.computed)(()=>({label:[{required:!0,message:`请输入名称`,trigger:`blur`}],type:[{required:!0,message:`请选择类型`,trigger:`change`}],..._.type===`langchain_py`?{endpoint:[{required:!0,message:`请输入接口地址`,trigger:`blur`}]}:{apiKey:[{required:!0,message:`请输入 API Key`,trigger:`blur`}]}}));function y(){try{let e=localStorage.getItem(i);s.value=e?JSON.parse(e):[]}catch{s.value=[]}}function b(){localStorage.setItem(i,JSON.stringify(s.value))}function x(e){let t=`custom_${e.id}`;if(c.has(t))return c.get(t);let n=e.type===`langchain_py`?(0,a.markRaw)(new PR({endpoint:e.endpoint,historyEndpoint:e.historyEndpoint||void 0,user:e.user||void 0,app:e.app||void 0,mode:e.mode,resumeMode:e.resumeMode,resumeEndpoint:e.resumeEndpoint||void 0})):(0,a.markRaw)(new Rk({apiKey:e.apiKey,apiBaseUrl:e.apiBaseUrl||void 0,user:e.user||void 0}));return c.set(t,n),n}let S=(0,a.computed)(()=>s.value.map(e=>({key:`custom_${e.id}`,label:e.label,agent:x(e)}))),C=(0,a.computed)(()=>[...n.builtInAgents,...S.value]),w=(0,a.computed)(()=>[...n.builtInAgents.map(e=>({value:e.key,label:e.label,isBuiltIn:!0})),...s.value.map(e=>({value:`custom_${e.id}`,label:e.label,isBuiltIn:!1}))]);function T(){r(`update:agents`,C.value)}function E(){u.value=null,Object.assign(_,g()),l.value=!0}function D(e){let t=e.replace(/^custom_/,``),n=s.value.find(e=>e.id===t);n&&(u.value=t,Object.assign(_,{label:n.label,type:n.type,endpoint:n.endpoint??``,historyEndpoint:n.historyEndpoint??``,user:n.user??``,app:n.app??``,mode:n.mode,resumeMode:n.resumeMode,resumeEndpoint:n.resumeEndpoint??``,apiKey:n.apiKey??``,apiBaseUrl:n.apiBaseUrl??``}),l.value=!0)}function O(){l.value=!1,u.value=null,Object.assign(_,g())}async function k(){try{await f.value?.validate()}catch{return}d.value=!0;try{let e=!!u.value,t=e?u.value:`${Date.now()}${Math.random().toString(36).slice(2,6)}`,n={id:t,label:_.label.trim(),type:_.type,..._.type===`langchain_py`?{endpoint:_.endpoint.trim(),historyEndpoint:_.historyEndpoint.trim()||void 0,user:_.user.trim()||void 0,app:_.app.trim()||void 0,mode:_.mode,resumeMode:_.resumeMode,resumeEndpoint:_.resumeEndpoint.trim()||void 0}:{apiKey:_.apiKey.trim(),apiBaseUrl:_.apiBaseUrl.trim()||void 0,user:_.user.trim()||void 0}};e?(s.value=s.value.map(e=>e.id===t?n:e),c.delete(`custom_${t}`)):s.value=[...s.value,n],b(),T(),l.value=!1,u.value=null,Object.assign(_,g()),pS.success(e?`智能体已更新`:`智能体已添加`)}finally{d.value=!1}}function A(e){let t=e.replace(/^custom_/,``);if(s.value=s.value.filter(e=>e.id!==t),b(),c.delete(e),T(),n.value===e){let e=n.builtInAgents[0]?.key||``;localStorage.setItem(o,e),r(`update:value`,e)}pS.success(`已删除`)}let j=(0,a.computed)(()=>w.value.find(e=>e.value===n.value)?.label||`选择智能体`);function M({key:e}){let t=String(e??``);if(t===`__add__`){E();return}localStorage.setItem(o,t),r(`update:value`,t)}return(0,a.onMounted)(()=>{y(),T();let e=localStorage.getItem(o);e&&e!==n.value&&[...n.builtInAgents.map(e=>e.key),...s.value.map(e=>`custom_${e.id}`)].includes(e)&&r(`update:value`,e)}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,FR,[(0,a.createVNode)((0,a.unref)(cC),{trigger:[`click`],disabled:e.disabled},{overlay:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(_v),{class:`agent-picker-menu`,onClick:M},{default:(0,a.withCtx)(()=>[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(w.value,t=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(z_),{key:t.value,class:(0,a.normalizeClass)({"is-active":t.value===e.value})},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,IR,[(0,a.createElementVNode)(`span`,LR,(0,a.toDisplayString)(t.label),1),t.isBuiltIn?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)((0,a.unref)(mD),{class:`agent-menu-edit`,onClick:(0,a.withModifiers)(e=>D(String(t.value)),[`stop`])},null,8,[`onClick`]),(0,a.createVNode)((0,a.unref)(ME),{class:`agent-menu-del`,onClick:(0,a.withModifiers)(e=>A(String(t.value)),[`stop`])},null,8,[`onClick`])],64))])]),_:2},1032,[`class`]))),128)),(0,a.createVNode)((0,a.unref)(ev)),(0,a.createVNode)((0,a.unref)(z_),{key:`__add__`},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,RR,[(0,a.createVNode)((0,a.unref)(zv)),n[13]||=(0,a.createTextVNode)(` 新增智能体`,-1)])]),_:1})]),_:1})]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,{class:(0,a.normalizeClass)([`agent-picker-label`,{"agent-picker-label--disabled":e.disabled}])},[(0,a.createTextVNode)((0,a.toDisplayString)(j.value)+` `,1),(0,a.createVNode)((0,a.unref)(Vd),{class:`agent-picker-arrow`})],2)]),_:1},8,[`disabled`]),(0,a.createVNode)((0,a.unref)(VT),{open:l.value,"onUpdate:open":n[12]||=e=>l.value=e,title:u.value?`编辑智能体`:`新增智能体`,footer:null,"destroy-on-close":!0,"z-index":1e4,width:`480px`,onCancel:O},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(gx),{ref_key:`formRef`,ref:f,model:_,rules:v.value,layout:`vertical`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(sx),{label:`名称`,name:`label`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.label,"onUpdate:value":n[0]||=e=>_.label=e,placeholder:`智能体显示名称`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`类型`,name:`type`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(sm),{value:_.type,"onUpdate:value":n[1]||=e=>_.type=e,style:{width:`100%`},options:p},null,8,[`value`])]),_:1}),_.type===`langchain_py`?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)((0,a.unref)(sx),{label:`Endpoint(流式接口地址)`,name:`endpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.endpoint,"onUpdate:value":n[2]||=e=>_.endpoint=e,placeholder:`http://10.0.0.1:8000/ai/chat/stream`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`History Endpoint(历史接口地址)`,name:`historyEndpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.historyEndpoint,"onUpdate:value":n[3]||=e=>_.historyEndpoint=e,placeholder:`http://10.0.0.1:8000/history(可选)`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`User(用户标识)`,name:`user`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.user,"onUpdate:value":n[4]||=e=>_.user=e,placeholder:`可选,用于历史记录隔离`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`App(应用标识)`,name:`app`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.app,"onUpdate:value":n[5]||=e=>_.app=e,placeholder:`可选,用于历史记录隔离`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`Mode(流式模式)`,name:`mode`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(sm),{value:_.mode,"onUpdate:value":n[6]||=e=>_.mode=e,style:{width:`100%`},"allow-clear":``,placeholder:`默认 astream`,options:m},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`Resume Mode(恢复模式)`,name:`resumeMode`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(sm),{value:_.resumeMode,"onUpdate:value":n[7]||=e=>_.resumeMode=e,style:{width:`100%`},"allow-clear":``,placeholder:`默认 langgraph`,options:h},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`Resume Endpoint(恢复接口地址)`,name:`resumeEndpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.resumeEndpoint,"onUpdate:value":n[8]||=e=>_.resumeEndpoint=e,placeholder:`http://10.0.0.1:8000/ai/resume(可选,默认同 Endpoint)`,"allow-clear":``},null,8,[`value`])]),_:1})],64)):(0,a.createCommentVNode)(``,!0),_.type===`dify_sdk`?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createVNode)((0,a.unref)(sx),{label:`API Key`,name:`apiKey`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(nw),{value:_.apiKey,"onUpdate:value":n[9]||=e=>_.apiKey=e,placeholder:`sk-...`,autocomplete:`off`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`API Base URL`,name:`apiBaseUrl`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.apiBaseUrl,"onUpdate:value":n[10]||=e=>_.apiBaseUrl=e,placeholder:`https://rag.netstar-soft.com(可选)`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`User(用户标识)`,name:`user`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.user,"onUpdate:value":n[11]||=e=>_.user=e,placeholder:`可选`,"allow-clear":``},null,8,[`value`])]),_:1})],64)):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(sx),{style:{"margin-top":`8px`,"margin-bottom":`0`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(JT),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(Jg),{type:`primary`,loading:d.value,onClick:k},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(u.value?`保存修改`:`确认添加`),1)]),_:1},8,[`loading`]),(0,a.createVNode)((0,a.unref)(Jg),{onClick:O},{default:(0,a.withCtx)(()=>[...n[14]||=[(0,a.createTextVNode)(`取消`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model`,`rules`])]),_:1},8,[`open`,`title`])]))}}),BR=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},VR=BR(zR,[[`__scopeId`,`data-v-ffbcde59`]]),HR=(0,a.defineComponent)({__name:`CodeBlockNode`,props:{codeBlockComponents:{},node:{},isDark:{type:Boolean},loading:{type:Boolean},stream:{type:Boolean},darkTheme:{},lightTheme:{},isShowPreview:{type:Boolean},monacoOptions:{},enableFontSizeControl:{type:Boolean},minWidth:{},maxWidth:{},themes:{},showHeader:{type:Boolean},showCopyButton:{type:Boolean},showExpandButton:{type:Boolean},showPreviewButton:{type:Boolean},showCollapseButton:{type:Boolean},showFontSizeButtons:{type:Boolean},showTooltips:{type:Boolean},customId:{}},setup(e){let t=e,n={},r=e=>String(e??``).trim().split(`:`)[0].toLowerCase(),o=(0,a.computed)(()=>{let e=t.node.language,o=r(e);return(0,a.toRaw)((e?t.codeBlockComponents?.[e]:void 0)||t.codeBlockComponents?.[o]||n[o])||i.S});return(e,n)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(o.value),(0,a.normalizeProps)((0,a.guardReactiveProps)(t)),null,16))}}),UR={class:`think-node__layout`},WR={class:`think-node__header`},GR={class:`think-node__header-main`},KR={class:`think-node__prefix`},qR=1,JR=240,YR=BR((0,a.defineComponent)({__name:`ThinkNode`,props:{node:{}},setup(e){let t=e,n=(0,a.ref)(!1),r=(0,a.ref)(),i=(0,a.ref)(!1),o=(0,a.computed)(()=>t.node?.content??t.node?.code??``),s=(0,a.computed)(()=>!!t.node?.loading),c=(0,a.computed)(()=>o.value?o.value:s.value?`正在整理思路...`:`暂无思考内容`),l=(0,a.computed)(()=>!!o.value&&(i.value||n.value));function u(){let e=r.value;if(!e)return;let t=globalThis.getComputedStyle?.(e),n=Number.parseFloat(t?.lineHeight??``);Number.isFinite(n)||(n=(Number.parseFloat(t?.fontSize??``)||14)*1.6);let a=n*qR+1;i.value=e.scrollHeight>a}return(0,a.watch)([o,n],async()=>{await(0,a.nextTick)(),u()},{immediate:!0}),(0,a.onMounted)(()=>{globalThis.addEventListener?.(`resize`,u),(0,a.nextTick)(()=>{u()})}),(0,a.onBeforeUnmount)(()=>{globalThis.removeEventListener?.(`resize`,u)}),(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{class:(0,a.normalizeClass)([`think-node`,{"is-thinking":s.value,"is-expanded":n.value}])},[(0,a.createElementVNode)(`div`,UR,[(0,a.createElementVNode)(`div`,WR,[(0,a.createElementVNode)(`div`,GR,[(0,a.createElementVNode)(`span`,KR,[s.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Gd),{key:0,class:`think-node__prefix-icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(WO),{key:1,class:`think-node__prefix-icon`})),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(s.value?`思考中:`:`思考:`),1)]),n.value?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`contentRef`,ref:r,class:(0,a.normalizeClass)([`think-node__content think-node__content--inline is-collapsed`,{"is-overflowing":i.value}])},(0,a.toDisplayString)(c.value),3))]),l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,type:`button`,class:`think-node__toggle`,onClick:t[0]||=e=>n.value=!n.value},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(n.value?`收起`:`展开`),1),((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.value?(0,a.unref)(yT):(0,a.unref)(Vd)),{class:`think-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)]),n.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`contentRef`,ref:r,class:`think-node__content is-expanded`,style:(0,a.normalizeStyle)({maxHeight:`${JR}px`})},(0,a.toDisplayString)(c.value),5)):(0,a.createCommentVNode)(``,!0)])],2))}}),[[`__scopeId`,`data-v-5a2f210e`]]),XR=(0,a.defineComponent)({__name:`StreamMarkdown`,props:{codeBlockComponents:{},codeBlockProps:{},content:{},customComponents:{},customHtmlTags:{},final:{type:Boolean}},setup(e){let t=e,n=`stream-markdown-${globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}`;(0,a.watch)((0,a.computed)(()=>({code_block:HR,think:YR,...t.customComponents})),e=>{i.p(n,e)},{immediate:!0}),(0,a.onBeforeUnmount)(()=>{i.i(n)});let r=(0,a.computed)(()=>({...t.codeBlockProps,...t.codeBlockComponents?{codeBlockComponents:t.codeBlockComponents}:{}})),o=(0,a.computed)(()=>[...new Set([`think`,...t.customHtmlTags??[]].map(e=>String(e??``).trim()).filter(Boolean))]);return(t,s)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(i.x),{content:e.content,final:e.final??!0,"custom-id":n,"custom-html-tags":o.value,"code-block-props":r.value},null,8,[`content`,`final`,`custom-html-tags`,`code-block-props`]))}}),ZR=[`role`,`tabindex`],QR={class:`tool-call-node__prefix`},$R={class:`tool-call-node__title`},ez={key:0,class:`tool-call-node__waiting-badge`},tz={key:1,class:`tool-call-node__result-badge is-approved`},nz={key:2,class:`tool-call-node__result-badge is-rejected`},rz={key:0,class:`tool-call-node__toggle`},iz={key:0,class:`tool-call-node__detail`},az={key:0,class:`tool-call-node__line`},oz={class:`tool-call-node__value tool-call-node__value--overflow`},sz={key:1,class:`tool-call-node__line`},cz={class:`tool-call-node__label`},lz={class:`tool-call-node__value tool-call-node__value--overflow`},uz={key:2,class:`tool-call-node__approval`},dz={key:0,class:`tool-call-node__approval-desc`},fz={key:1,class:`tool-call-node__approval-args`},pz={class:`tool-call-node__approval-code`},mz={class:`tool-call-node__approval-actions`},hz=[`disabled`],gz=[`disabled`],_z=[`disabled`],vz={key:2,class:`tool-call-node__approval-edit`},yz=[`disabled`],bz={class:`tool-call-node__approval-edit-actions`},xz=[`disabled`],Sz=[`disabled`],Cz=BR((0,a.defineComponent)({__name:`ToolCallNode`,props:{expanded:{type:Boolean},resolving:{type:Boolean},tool:{}},emits:[`approve`,`edit`,`reject`,`toggle`],setup(e,{emit:t}){let n=t,r=e,i=t,o=(0,a.ref)(!1),s=(0,a.ref)(``),c=(0,a.ref)(null),l=(0,a.computed)(()=>r.tool.approvalConfig),u=(0,a.computed)(()=>r.tool.status===`waiting`&&l.value!=null);(0,a.watch)(u,e=>{e&&!r.expanded&&i(`toggle`)},{immediate:!0});let d=(0,a.computed)(()=>l.value?Object.keys(l.value.args).length>0:!1),f=(0,a.computed)(()=>l.value?JSON.stringify(l.value.args,null,2):``),p=(0,a.computed)(()=>!!(r.tool.input!=null||r.tool.output!=null||r.tool.error)),m=(0,a.computed)(()=>{let e=r.tool.input;if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}),h=(0,a.computed)(()=>{if(r.tool.status===`error`)return r.tool.error||``;let e=r.tool.output;if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}});(0,a.watch)(()=>l.value?.editContent,e=>{s.value=e||``},{immediate:!0});function g(){c.value=`approved`,i(`approve`,r.tool.toolName)}function _(){c.value=`rejected`,i(`reject`,r.tool.toolName)}function v(){c.value=`approved`,i(`edit`,r.tool.toolName,s.value),o.value=!1}return(t,i)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`tool-call-node`,`is-${r.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:(0,a.normalizeClass)([`tool-call-node__header`,{"tool-call-node__header--clickable":p.value||u.value}]),role:p.value||u.value?`button`:void 0,tabindex:p.value||u.value?0:void 0,onClick:i[0]||=e=>(p.value||u.value)&&n(`toggle`),onKeydown:[i[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>(p.value||u.value)&&n(`toggle`),[`prevent`]),[`enter`]),i[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>(p.value||u.value)&&n(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,QR,[r.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Gd),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):r.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(dm),{key:1,class:`tool-call-node__prefix-icon`})):r.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Cm),{key:2,class:`tool-call-node__prefix-icon`})):u.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(sC),{key:3,class:`tool-call-node__prefix-icon is-waiting`})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`span`,$R,[(0,a.createTextVNode)((0,a.toDisplayString)(r.tool.title||r.tool.toolName||`工具调用`)+` `,1),u.value&&!c.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,ez,`待审批`)):c.value===`approved`?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,tz,[(0,a.createVNode)((0,a.unref)(dm),{style:{"margin-right":`2px`}}),i[6]||=(0,a.createTextVNode)(`已批准 `,-1)])):c.value===`rejected`?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,nz,[(0,a.createVNode)((0,a.unref)(Cm),{style:{"margin-right":`2px`}}),i[7]||=(0,a.createTextVNode)(`已拒绝 `,-1)])):(0,a.createCommentVNode)(``,!0)])]),p.value||u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,rz,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.expanded?(0,a.unref)(yT):(0,a.unref)(Vd)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,ZR),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,iz,[m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,az,[i[8]||=(0,a.createElementVNode)(`span`,{class:`tool-call-node__label`},`入参:`,-1),(0,a.createVNode)((0,a.unref)(bh),{placement:`topLeft`,"overlay-inner-style":{maxWidth:`480px`,maxHeight:`320px`,overflowY:`auto`,fontSize:`12px`,fontFamily:`monospace`,whiteSpace:`pre-wrap`,wordBreak:`break-all`}},{title:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(m.value),1)]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,oz,(0,a.toDisplayString)(m.value),1)]),_:1})])):(0,a.createCommentVNode)(``,!0),h.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,sz,[(0,a.createElementVNode)(`span`,cz,(0,a.toDisplayString)(r.tool.status===`error`?`错误:`:`结果:`),1),(0,a.createVNode)((0,a.unref)(bh),{placement:`topLeft`,"overlay-inner-style":{maxWidth:`480px`,maxHeight:`320px`,overflowY:`auto`,fontSize:`12px`,fontFamily:`monospace`,whiteSpace:`pre-wrap`,wordBreak:`break-all`}},{title:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(h.value),1)]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,lz,(0,a.toDisplayString)(h.value),1)]),_:1})])):(0,a.createCommentVNode)(``,!0),u.value&&l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,uz,[(0,a.createVNode)(a.Transition,{name:`approval-result`},{default:(0,a.withCtx)(()=>[c.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,class:(0,a.normalizeClass)([`tool-call-node__approval-result`,[`is-${c.value}`]])},[c.value===`approved`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(dm),{key:0,class:`approval-result-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Cm),{key:1,class:`approval-result-icon`})),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(c.value===`approved`?`已批准,继续执行中…`:`已拒绝,操作已取消`),1)],2)):(0,a.createCommentVNode)(``,!0)]),_:1}),c.value?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[l.value.description?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,dz,(0,a.toDisplayString)(l.value.description),1)):(0,a.createCommentVNode)(``,!0),d.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,fz,[i[9]||=(0,a.createElementVNode)(`span`,{class:`tool-call-node__label`},`参数:`,-1),(0,a.createElementVNode)(`code`,pz,(0,a.toDisplayString)(f.value),1)])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`div`,mz,[(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-approve`,disabled:e.resolving,onClick:(0,a.withModifiers)(g,[`stop`])},[(0,a.createVNode)((0,a.unref)(dm),{style:{"margin-right":`4px`}}),i[10]||=(0,a.createTextVNode)(` 批准 `,-1)],8,hz),l.value.allowedDecisions.includes(`edit`)?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,class:`tool-call-node__btn tool-call-node__btn-edit`,disabled:e.resolving,onClick:i[3]||=(0,a.withModifiers)(e=>o.value=!o.value,[`stop`])},` 修改后批准 `,8,gz)):(0,a.createCommentVNode)(``,!0),l.value.allowedDecisions.includes(`reject`)?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:1,class:`tool-call-node__btn tool-call-node__btn-reject`,disabled:e.resolving,onClick:(0,a.withModifiers)(_,[`stop`])},[(0,a.createVNode)((0,a.unref)(Cm),{style:{"margin-right":`4px`}}),i[11]||=(0,a.createTextVNode)(` 拒绝 `,-1)],8,_z)):(0,a.createCommentVNode)(``,!0)]),o.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,vz,[(0,a.withDirectives)((0,a.createElementVNode)(`textarea`,{"onUpdate:modelValue":i[4]||=e=>s.value=e,class:`tool-call-node__textarea`,disabled:e.resolving,placeholder:`编辑内容...`,rows:`4`},null,8,yz),[[a.vModelText,s.value]]),(0,a.createElementVNode)(`div`,bz,[(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-approve`,disabled:e.resolving,onClick:(0,a.withModifiers)(v,[`stop`])},` 提交修改 `,8,xz),(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-cancel`,disabled:e.resolving,onClick:i[5]||=(0,a.withModifiers)(e=>o.value=!1,[`stop`])},` 取消 `,8,Sz)])])):(0,a.createCommentVNode)(``,!0)],64))])):(0,a.createCommentVNode)(``,!0)])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-c4d46f41`]]),wz={class:`sub-agent-node__prefix`},Tz={class:`sub-agent-node__name`},Ez={key:0,class:`sub-agent-node__body`},Dz={class:`think-node__layout`},Oz={class:`think-node__header`},kz={class:`think-node__header-main`},Az={class:`think-node__prefix`},jz={key:0,class:`think-node__content think-node__content--inline is-collapsed is-overflowing`},Mz=[`onClick`],Nz={class:`think-node__toggle-icon`},Pz={key:0,class:`think-node__content is-expanded`},Fz={key:0,class:`sub-agent-node__tools`},Iz={key:1,class:`sub-agent-node__content`},Lz=BR((0,a.defineComponent)({__name:`SubAgentNode`,props:{blocks:{},expanded:{type:Boolean},tool:{}},emits:[`toggle`],setup(e,{emit:t}){let n=e,r=(0,a.computed)(()=>{if(!n.blocks?.length)return[];let e=[],t={type:`reply`,blocks:[]};for(let r of n.blocks)r.type===`reasoning`||r.type===`tool_call`?(t.type!==`thinking`&&(t.blocks.length>0&&e.push(t),t={type:`thinking`,blocks:[]}),t.blocks.push(r)):(t.type!==`reply`&&(t.blocks.length>0&&e.push(t),t={type:`reply`,blocks:[]}),t.blocks.push(r));return t.blocks.length>0&&e.push(t),e}),i=(0,a.reactive)({});function o(e){i[e]=!i[e]}let s=(0,a.ref)({});function c(e){s.value={...s.value,[e]:!s.value[e]}}function l(e){let t=e;return{toolCallId:t.toolCallId,toolName:t.toolName,title:t.toolName,status:`success`,input:t.input,output:t.output,durationMs:t.durationMs,startedAt:t.startedAt||0}}return(n,u)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`sub-agent-node`,`is-${e.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:`sub-agent-node__header`,role:`button`,tabindex:`0`,onClick:u[0]||=e=>t(`toggle`),onKeydown:[u[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`enter`]),u[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,wz,[e.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Gd),{key:0,class:`sub-agent-node__icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(dm),{key:1,class:`sub-agent-node__icon`})),(0,a.createElementVNode)(`span`,Tz,(0,a.toDisplayString)(e.tool.title||e.tool.toolName),1),u[3]||=(0,a.createElementVNode)(`span`,{class:`sub-agent-node__badge`},`子代理`,-1)]),((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.expanded?(0,a.unref)(yT):(0,a.unref)(Vd)),{class:`sub-agent-node__chevron`}))],32),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Ez,[e.blocks?.length?((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:0},(0,a.renderList)(r.value,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:t},[e.type===`thinking`?((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{key:0,class:(0,a.normalizeClass)([`think-node`,{"is-expanded":i[t]!==!1}])},[(0,a.createElementVNode)(`div`,Dz,[(0,a.createElementVNode)(`div`,Oz,[(0,a.createElementVNode)(`div`,kz,[(0,a.createElementVNode)(`span`,Az,[(0,a.createVNode)((0,a.unref)(WO),{class:`think-node__prefix-icon`}),u[4]||=(0,a.createElementVNode)(`span`,null,`思考:`,-1)]),i[t]===!1?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,jz,(0,a.toDisplayString)(e.blocks.filter(e=>e.type===`reasoning`).map(e=>e.text).join(` `)),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`button`,{type:`button`,class:`think-node__toggle`,onClick:e=>o(t)},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(i[t]===!1?`展开`:`收起`),1),(0,a.createElementVNode)(`span`,Nz,(0,a.toDisplayString)(i[t]===!1?`▼`:`▲`),1)],8,Mz)]),i[t]===!1?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Pz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.blocks,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:t},[e.type===`reasoning`?((0,a.openBlock)(),(0,a.createBlock)(XR,{key:0,content:e.text},null,8,[`content`])):e.type===`tool_call`?((0,a.openBlock)(),(0,a.createBlock)(Cz,{key:1,tool:l(e),expanded:!!s.value[e.toolCallId],onToggle:t=>c(e.toolCallId)},null,8,[`tool`,`expanded`,`onToggle`])):(0,a.createCommentVNode)(``,!0)],64))),128))]))])],2)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(e.blocks,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)(XR,{key:t,content:e.text},null,8,[`content`]))),128))],64))),128)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[e.tool.subAgentTools?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Fz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.tool.subAgentTools,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)(Cz,{key:e.toolCallId,tool:e,expanded:s.value[e.toolCallId]||!1,"step-number":t,onToggle:t=>c(e.toolCallId)},null,8,[`tool`,`expanded`,`step-number`,`onToggle`]))),128))])):(0,a.createCommentVNode)(``,!0),e.tool.subAgentContent?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Iz,[(0,a.createVNode)(XR,{content:e.tool.subAgentContent},null,8,[`content`])])):(0,a.createCommentVNode)(``,!0)],64))])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-526ce89d`]]),Rz={key:0,class:`msg-renderer__loading`},zz={class:`think-node__layout`},Bz={class:`think-node__header`},Vz={class:`think-node__header-main`},Hz={class:`think-node__prefix`},Uz={key:0,class:`think-node__content think-node__content--inline is-collapsed is-overflowing`},Wz=[`onClick`],Gz={class:`think-node__toggle-icon`},Kz={key:0,class:`think-node__content is-expanded`},qz={key:1,class:`msg-renderer__attachments`},Jz=BR((0,a.defineComponent)({__name:`MessageRenderer`,props:{customComponents:{},customHtmlTags:{},expandedTools:{default:()=>({})},interruptResolving:{type:Boolean},message:{},toolRenderers:{default:()=>({})}},emits:[`approve`,`edit`,`reject`,`toggleExpand`],setup(e,{emit:t}){let n=e,r=t;function i(e){return e===`write_todos`?`top`:`timeline`}function o(e,t){return e?.find(e=>e.toolCallId===t)}function s(e,t){return i(o(e.toolTimeline,t)?.toolName)===`timeline`}function c(e){return!e.segments||e.segments.length===0?e.content?[{type:`text`,text:e.content}]:[]:e.segments.map(t=>t.type===`tool`||t.type===`attachment`?t:{type:`text`,text:e.content.slice(t.start,t.end===-1?void 0:t.end)})}let l=(0,a.computed)(()=>Array.isArray(n.message.blocks)&&n.message.blocks.length>0),u=(0,a.computed)(()=>{if(!l.value)return[];let e=n.message.blocks,t=[],r={type:`reply`,blocks:[]};for(let n of e)n.type===`reasoning`||n.type===`tool_call`?(r.type!==`thinking`&&(r.blocks.length>0&&t.push(r),r={type:`thinking`,blocks:[]}),r.blocks.push(n)):(r.type!==`reply`&&(r.blocks.length>0&&t.push(r),r={type:`reply`,blocks:[]}),r.blocks.push(n));return r.blocks.length>0&&t.push(r),t}),d=(0,a.reactive)({});function f(e){d[e]=!d[e]}let p=(0,a.computed)(()=>c(n.message)),m=(0,a.computed)(()=>n.message.loading&&!n.message.content);function h(e){let t=o(n.message.toolTimeline,e);return t?.toolName?n.toolRenderers?.[t.toolName]??Cz:Cz}function g(e,t){r(`approve`,e,t)}function _(e,t){r(`reject`,e,t)}function v(e,t,n){r(`edit`,e,t,n)}function y(e){r(`toggleExpand`,e)}function b(e){let t=e;return{toolCallId:t.toolCallId,toolName:t.toolName,title:t.subAgentType||t.toolName,status:`success`,input:t.input,output:t.output,durationMs:t.durationMs,startedAt:t.startedAt,subAgentContent:t.subAgentContent,subAgentBlocks:t.subAgentBlocks,subAgentTools:t.subAgentTools}}function x(e){return e.subAgentType!=null}return(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,null,[m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Rz,[(0,a.createVNode)((0,a.unref)(Gd),{style:{fontSize:`16px`,color:`var(--primary-color, var(--primary))`,marginRight:`8px`}}),n[0]||=(0,a.createElementVNode)(`span`,{class:`msg-renderer__loading-text`},`AI 正在思考...`,-1)])):(0,a.createCommentVNode)(``,!0),l.value?((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(u.value,(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:r},[t.type===`thinking`?((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{key:0,class:(0,a.normalizeClass)([`think-node`,{"is-expanded":d[r]!==!1}])},[(0,a.createElementVNode)(`div`,zz,[(0,a.createElementVNode)(`div`,Bz,[(0,a.createElementVNode)(`div`,Vz,[(0,a.createElementVNode)(`span`,Hz,[(0,a.createVNode)((0,a.unref)(WO),{class:`think-node__prefix-icon`}),n[1]||=(0,a.createElementVNode)(`span`,null,`思考:`,-1)]),d[r]===!1?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Uz,(0,a.toDisplayString)(t.blocks.filter(e=>e.type===`reasoning`).map(e=>e.text).join(` `)),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`button`,{type:`button`,class:`think-node__toggle`,onClick:e=>f(r)},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(d[r]===!1?`展开`:`收起`),1),(0,a.createElementVNode)(`span`,Gz,(0,a.toDisplayString)(d[r]===!1?`▼`:`▲`),1)],8,Wz)]),d[r]===!1?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Kz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(t.blocks,(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:n},[t.type===`reasoning`?((0,a.openBlock)(),(0,a.createBlock)(XR,{key:0,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`])):t.type===`tool_call`&&!x(t)?((0,a.openBlock)(),(0,a.createBlock)(Cz,{key:1,tool:b(t),expanded:!!e.expandedTools[t.toolCallId],resolving:e.interruptResolving,onToggle:e=>y(t.toolCallId),onApprove:e=>g(t.toolCallId,e),onReject:e=>_(t.toolCallId,e),onEdit:(e,n)=>v(t.toolCallId,e,n)},null,8,[`tool`,`expanded`,`resolving`,`onToggle`,`onApprove`,`onReject`,`onEdit`])):t.type===`tool_call`?((0,a.openBlock)(),(0,a.createBlock)(Lz,{key:2,tool:b(t),blocks:t.subAgentBlocks,expanded:!!e.expandedTools[t.toolCallId],onToggle:e=>y(t.toolCallId)},null,8,[`tool`,`blocks`,`expanded`,`onToggle`])):(0,a.createCommentVNode)(``,!0)],64))),128))]))])],2)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(t.blocks,(t,n)=>((0,a.openBlock)(),(0,a.createBlock)(XR,{key:n,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`]))),128))],64))),128)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:2},(0,a.renderList)(p.value,(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:n},[t.type===`tool`&&s(e.message,t.toolCallId)?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(h(t.toolCallId)),{key:0,tool:o(e.message.toolTimeline,t.toolCallId),expanded:e.expandedTools[t.toolCallId]===!0,"step-number":o(e.message.toolTimeline,t.toolCallId)?.stepNumber,resolving:e.interruptResolving,onToggle:e=>y(t.toolCallId),onApprove:e=>g(t.toolCallId,e),onReject:e=>_(t.toolCallId,e),onEdit:(e,n)=>v(t.toolCallId,e,n)},null,40,[`tool`,`expanded`,`step-number`,`resolving`,`onToggle`,`onApprove`,`onReject`,`onEdit`])):t.type===`attachment`&&t.attachments?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,qz,[((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)(AR).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)(XR,{key:2,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`])):(0,a.createCommentVNode)(``,!0)],64))),128))],64))}}),[[`__scopeId`,`data-v-4bb03a95`]]),Yz=class extends Error{constructor(e,t){super(`${e} at position ${t}`),this.position=t}},Xz=32,Zz=10,Qz=9,$z=13,eB=160,tB=6158,nB=8192,rB=8203,iB=8239,aB=8287,oB=12288,sB=65279;function cB(e){return/^[0-9A-Fa-f]$/.test(e)}function lB(e){return e>=`0`&&e<=`9`}function uB(e){return e>=` `}function dB(e){return`,:[]/{}()
|
|
362
|
+
`);i=o.pop()||``;for(let e of o){if(!e.trim())continue;let n=jR(e);if(n&&this.handleSsePacket(n,t))return!0}}if(i.trim()){let e=jR(i);if(e&&this.handleSsePacket(e,t))return!0}}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return!1;throw e}finally{try{n.cancel()}catch{}}return!1}updateConversationId(e){this.conversationId!==e&&(this.conversationId=e,this.emit(`conversationChange`,e))}},FR={class:`agent-picker-wrap`},IR={class:`agent-menu-item`},LR={class:`agent-menu-label`},RR={class:`agent-menu-add`},zR=(0,a.defineComponent)({__name:`AgentPicker`,props:{builtInAgents:{},disabled:{type:Boolean,default:!1},storageKey:{default:`chat_panel_agent`},value:{default:``}},emits:[`update:value`,`update:agents`],setup(e,{emit:t}){let n=e,r=t,i=`${n.storageKey}_configs`,o=`${n.storageKey}_selected`,s=(0,a.ref)([]),c=new Map,l=(0,a.ref)(!1),u=(0,a.ref)(null),d=(0,a.ref)(!1),f=(0,a.ref)(),p=[{value:`langchain_py`,label:`Langchain Py(SSE 流式)`},{value:`dify_sdk`,label:`Dify SDK`}],m=[{value:`astream`,label:`astream`},{value:`astream_events`,label:`astream_events`}],h=[{value:`langgraph`,label:`langgraph`},{value:`create_agent`,label:`create_agent`}];function g(){return{label:``,type:`langchain_py`,endpoint:``,historyEndpoint:``,user:``,app:``,mode:void 0,resumeMode:void 0,resumeEndpoint:``,apiKey:``,apiBaseUrl:``}}let _=(0,a.reactive)(g()),v=(0,a.computed)(()=>({label:[{required:!0,message:`请输入名称`,trigger:`blur`}],type:[{required:!0,message:`请选择类型`,trigger:`change`}],..._.type===`langchain_py`?{endpoint:[{required:!0,message:`请输入接口地址`,trigger:`blur`}]}:{apiKey:[{required:!0,message:`请输入 API Key`,trigger:`blur`}]}}));function y(){try{let e=localStorage.getItem(i);s.value=e?JSON.parse(e):[]}catch{s.value=[]}}function b(){localStorage.setItem(i,JSON.stringify(s.value))}function x(e){let t=`custom_${e.id}`;if(c.has(t))return c.get(t);let n=e.type===`langchain_py`?(0,a.markRaw)(new PR({endpoint:e.endpoint,historyEndpoint:e.historyEndpoint||void 0,user:e.user||void 0,app:e.app||void 0,mode:e.mode,resumeMode:e.resumeMode,resumeEndpoint:e.resumeEndpoint||void 0})):(0,a.markRaw)(new Rk({apiKey:e.apiKey,apiBaseUrl:e.apiBaseUrl||void 0,user:e.user||void 0}));return c.set(t,n),n}let S=(0,a.computed)(()=>s.value.map(e=>({key:`custom_${e.id}`,label:e.label,agent:x(e)}))),C=(0,a.computed)(()=>[...n.builtInAgents,...S.value]),w=(0,a.computed)(()=>[...n.builtInAgents.map(e=>({value:e.key,label:e.label,isBuiltIn:!0})),...s.value.map(e=>({value:`custom_${e.id}`,label:e.label,isBuiltIn:!1}))]);function T(){r(`update:agents`,C.value)}function E(){u.value=null,Object.assign(_,g()),l.value=!0}function D(e){let t=e.replace(/^custom_/,``),n=s.value.find(e=>e.id===t);n&&(u.value=t,Object.assign(_,{label:n.label,type:n.type,endpoint:n.endpoint??``,historyEndpoint:n.historyEndpoint??``,user:n.user??``,app:n.app??``,mode:n.mode,resumeMode:n.resumeMode,resumeEndpoint:n.resumeEndpoint??``,apiKey:n.apiKey??``,apiBaseUrl:n.apiBaseUrl??``}),l.value=!0)}function O(){l.value=!1,u.value=null,Object.assign(_,g())}async function k(){try{await f.value?.validate()}catch{return}d.value=!0;try{let e=!!u.value,t=e?u.value:`${Date.now()}${Math.random().toString(36).slice(2,6)}`,n={id:t,label:_.label.trim(),type:_.type,..._.type===`langchain_py`?{endpoint:_.endpoint.trim(),historyEndpoint:_.historyEndpoint.trim()||void 0,user:_.user.trim()||void 0,app:_.app.trim()||void 0,mode:_.mode,resumeMode:_.resumeMode,resumeEndpoint:_.resumeEndpoint.trim()||void 0}:{apiKey:_.apiKey.trim(),apiBaseUrl:_.apiBaseUrl.trim()||void 0,user:_.user.trim()||void 0}};e?(s.value=s.value.map(e=>e.id===t?n:e),c.delete(`custom_${t}`)):s.value=[...s.value,n],b(),T(),l.value=!1,u.value=null,Object.assign(_,g()),pS.success(e?`智能体已更新`:`智能体已添加`)}finally{d.value=!1}}function A(e){let t=e.replace(/^custom_/,``);if(s.value=s.value.filter(e=>e.id!==t),b(),c.delete(e),T(),n.value===e){let e=n.builtInAgents[0]?.key||``;localStorage.setItem(o,e),r(`update:value`,e)}pS.success(`已删除`)}let j=(0,a.computed)(()=>w.value.find(e=>e.value===n.value)?.label||`选择智能体`);function M({key:e}){let t=String(e??``);if(t===`__add__`){E();return}localStorage.setItem(o,t),r(`update:value`,t)}return(0,a.onMounted)(()=>{y(),T();let e=localStorage.getItem(o);e&&e!==n.value&&[...n.builtInAgents.map(e=>e.key),...s.value.map(e=>`custom_${e.id}`)].includes(e)&&r(`update:value`,e)}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,FR,[(0,a.createVNode)((0,a.unref)(cC),{trigger:[`click`],disabled:e.disabled},{overlay:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(_v),{class:`agent-picker-menu`,onClick:M},{default:(0,a.withCtx)(()=>[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(w.value,t=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(z_),{key:t.value,class:(0,a.normalizeClass)({"is-active":t.value===e.value})},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`div`,IR,[(0,a.createElementVNode)(`span`,LR,(0,a.toDisplayString)(t.label),1),t.isBuiltIn?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)((0,a.unref)(mD),{class:`agent-menu-edit`,onClick:(0,a.withModifiers)(e=>D(String(t.value)),[`stop`])},null,8,[`onClick`]),(0,a.createVNode)((0,a.unref)(ME),{class:`agent-menu-del`,onClick:(0,a.withModifiers)(e=>A(String(t.value)),[`stop`])},null,8,[`onClick`])],64))])]),_:2},1032,[`class`]))),128)),(0,a.createVNode)((0,a.unref)(ev)),(0,a.createVNode)((0,a.unref)(z_),{key:`__add__`},{default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,RR,[(0,a.createVNode)((0,a.unref)(zv)),n[13]||=(0,a.createTextVNode)(` 新增智能体`,-1)])]),_:1})]),_:1})]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,{class:(0,a.normalizeClass)([`agent-picker-label`,{"agent-picker-label--disabled":e.disabled}])},[(0,a.createTextVNode)((0,a.toDisplayString)(j.value)+` `,1),(0,a.createVNode)((0,a.unref)(Vd),{class:`agent-picker-arrow`})],2)]),_:1},8,[`disabled`]),(0,a.createVNode)((0,a.unref)(VT),{open:l.value,"onUpdate:open":n[12]||=e=>l.value=e,title:u.value?`编辑智能体`:`新增智能体`,footer:null,"destroy-on-close":!0,"z-index":1e3,width:`480px`,onCancel:O},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(gx),{ref_key:`formRef`,ref:f,model:_,rules:v.value,layout:`vertical`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(sx),{label:`名称`,name:`label`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.label,"onUpdate:value":n[0]||=e=>_.label=e,placeholder:`智能体显示名称`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`类型`,name:`type`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(sm),{value:_.type,"onUpdate:value":n[1]||=e=>_.type=e,style:{width:`100%`},options:p},null,8,[`value`])]),_:1}),_.type===`langchain_py`?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createVNode)((0,a.unref)(sx),{label:`Endpoint(流式接口地址)`,name:`endpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.endpoint,"onUpdate:value":n[2]||=e=>_.endpoint=e,placeholder:`http://10.0.0.1:8000/ai/chat/stream`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`History Endpoint(历史接口地址)`,name:`historyEndpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.historyEndpoint,"onUpdate:value":n[3]||=e=>_.historyEndpoint=e,placeholder:`http://10.0.0.1:8000/history(可选)`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`User(用户标识)`,name:`user`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.user,"onUpdate:value":n[4]||=e=>_.user=e,placeholder:`可选,用于历史记录隔离`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`App(应用标识)`,name:`app`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.app,"onUpdate:value":n[5]||=e=>_.app=e,placeholder:`可选,用于历史记录隔离`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`Mode(流式模式)`,name:`mode`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(sm),{value:_.mode,"onUpdate:value":n[6]||=e=>_.mode=e,style:{width:`100%`},"allow-clear":``,placeholder:`默认 astream`,options:m},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`Resume Mode(恢复模式)`,name:`resumeMode`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(sm),{value:_.resumeMode,"onUpdate:value":n[7]||=e=>_.resumeMode=e,style:{width:`100%`},"allow-clear":``,placeholder:`默认 langgraph`,options:h},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`Resume Endpoint(恢复接口地址)`,name:`resumeEndpoint`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.resumeEndpoint,"onUpdate:value":n[8]||=e=>_.resumeEndpoint=e,placeholder:`http://10.0.0.1:8000/ai/resume(可选,默认同 Endpoint)`,"allow-clear":``},null,8,[`value`])]),_:1})],64)):(0,a.createCommentVNode)(``,!0),_.type===`dify_sdk`?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createVNode)((0,a.unref)(sx),{label:`API Key`,name:`apiKey`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(nw),{value:_.apiKey,"onUpdate:value":n[9]||=e=>_.apiKey=e,placeholder:`sk-...`,autocomplete:`off`},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`API Base URL`,name:`apiBaseUrl`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.apiBaseUrl,"onUpdate:value":n[10]||=e=>_.apiBaseUrl=e,placeholder:`https://rag.netstar-soft.com(可选)`,"allow-clear":``},null,8,[`value`])]),_:1}),(0,a.createVNode)((0,a.unref)(sx),{label:`User(用户标识)`,name:`user`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(rw),{value:_.user,"onUpdate:value":n[11]||=e=>_.user=e,placeholder:`可选`,"allow-clear":``},null,8,[`value`])]),_:1})],64)):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(sx),{style:{"margin-top":`8px`,"margin-bottom":`0`}},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(JT),null,{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(Jg),{type:`primary`,loading:d.value,onClick:k},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(u.value?`保存修改`:`确认添加`),1)]),_:1},8,[`loading`]),(0,a.createVNode)((0,a.unref)(Jg),{onClick:O},{default:(0,a.withCtx)(()=>[...n[14]||=[(0,a.createTextVNode)(`取消`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model`,`rules`])]),_:1},8,[`open`,`title`])]))}}),BR=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},VR=BR(zR,[[`__scopeId`,`data-v-6d20e2be`]]),HR=(0,a.defineComponent)({__name:`CodeBlockNode`,props:{codeBlockComponents:{},node:{},isDark:{type:Boolean},loading:{type:Boolean},stream:{type:Boolean},darkTheme:{},lightTheme:{},isShowPreview:{type:Boolean},monacoOptions:{},enableFontSizeControl:{type:Boolean},minWidth:{},maxWidth:{},themes:{},showHeader:{type:Boolean},showCopyButton:{type:Boolean},showExpandButton:{type:Boolean},showPreviewButton:{type:Boolean},showCollapseButton:{type:Boolean},showFontSizeButtons:{type:Boolean},showTooltips:{type:Boolean},customId:{}},setup(e){let t=e,n={},r=e=>String(e??``).trim().split(`:`)[0].toLowerCase(),o=(0,a.computed)(()=>{let e=t.node.language,o=r(e);return(0,a.toRaw)((e?t.codeBlockComponents?.[e]:void 0)||t.codeBlockComponents?.[o]||n[o])||i.S});return(e,n)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(o.value),(0,a.normalizeProps)((0,a.guardReactiveProps)(t)),null,16))}}),UR={class:`think-node__layout`},WR={class:`think-node__header`},GR={class:`think-node__header-main`},KR={class:`think-node__prefix`},qR=1,JR=240,YR=BR((0,a.defineComponent)({__name:`ThinkNode`,props:{node:{}},setup(e){let t=e,n=(0,a.ref)(!1),r=(0,a.ref)(),i=(0,a.ref)(!1),o=(0,a.computed)(()=>t.node?.content??t.node?.code??``),s=(0,a.computed)(()=>!!t.node?.loading),c=(0,a.computed)(()=>o.value?o.value:s.value?`正在整理思路...`:`暂无思考内容`),l=(0,a.computed)(()=>!!o.value&&(i.value||n.value));function u(){let e=r.value;if(!e)return;let t=globalThis.getComputedStyle?.(e),n=Number.parseFloat(t?.lineHeight??``);Number.isFinite(n)||(n=(Number.parseFloat(t?.fontSize??``)||14)*1.6);let a=n*qR+1;i.value=e.scrollHeight>a}return(0,a.watch)([o,n],async()=>{await(0,a.nextTick)(),u()},{immediate:!0}),(0,a.onMounted)(()=>{globalThis.addEventListener?.(`resize`,u),(0,a.nextTick)(()=>{u()})}),(0,a.onBeforeUnmount)(()=>{globalThis.removeEventListener?.(`resize`,u)}),(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{class:(0,a.normalizeClass)([`think-node`,{"is-thinking":s.value,"is-expanded":n.value}])},[(0,a.createElementVNode)(`div`,UR,[(0,a.createElementVNode)(`div`,WR,[(0,a.createElementVNode)(`div`,GR,[(0,a.createElementVNode)(`span`,KR,[s.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Gd),{key:0,class:`think-node__prefix-icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(WO),{key:1,class:`think-node__prefix-icon`})),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(s.value?`思考中:`:`思考:`),1)]),n.value?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`contentRef`,ref:r,class:(0,a.normalizeClass)([`think-node__content think-node__content--inline is-collapsed`,{"is-overflowing":i.value}])},(0,a.toDisplayString)(c.value),3))]),l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,type:`button`,class:`think-node__toggle`,onClick:t[0]||=e=>n.value=!n.value},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(n.value?`收起`:`展开`),1),((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.value?(0,a.unref)(yT):(0,a.unref)(Vd)),{class:`think-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)]),n.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,ref_key:`contentRef`,ref:r,class:`think-node__content is-expanded`,style:(0,a.normalizeStyle)({maxHeight:`${JR}px`})},(0,a.toDisplayString)(c.value),5)):(0,a.createCommentVNode)(``,!0)])],2))}}),[[`__scopeId`,`data-v-5a2f210e`]]),XR=(0,a.defineComponent)({__name:`StreamMarkdown`,props:{codeBlockComponents:{},codeBlockProps:{},content:{},customComponents:{},customHtmlTags:{},final:{type:Boolean}},setup(e){let t=e,n=`stream-markdown-${globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`}`;(0,a.watch)((0,a.computed)(()=>({code_block:HR,think:YR,...t.customComponents})),e=>{i.p(n,e)},{immediate:!0}),(0,a.onBeforeUnmount)(()=>{i.i(n)});let r=(0,a.computed)(()=>({...t.codeBlockProps,...t.codeBlockComponents?{codeBlockComponents:t.codeBlockComponents}:{}})),o=(0,a.computed)(()=>[...new Set([`think`,...t.customHtmlTags??[]].map(e=>String(e??``).trim()).filter(Boolean))]);return(t,s)=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(i.x),{content:e.content,final:e.final??!0,"custom-id":n,"custom-html-tags":o.value,"code-block-props":r.value},null,8,[`content`,`final`,`custom-html-tags`,`code-block-props`]))}}),ZR=[`role`,`tabindex`],QR={class:`tool-call-node__prefix`},$R={class:`tool-call-node__title`},ez={key:0,class:`tool-call-node__waiting-badge`},tz={key:1,class:`tool-call-node__result-badge is-approved`},nz={key:2,class:`tool-call-node__result-badge is-rejected`},rz={key:0,class:`tool-call-node__toggle`},iz={key:0,class:`tool-call-node__detail`},az={key:0,class:`tool-call-node__line`},oz={class:`tool-call-node__value tool-call-node__value--overflow`},sz={key:1,class:`tool-call-node__line`},cz={class:`tool-call-node__label`},lz={class:`tool-call-node__value tool-call-node__value--overflow`},uz={key:2,class:`tool-call-node__approval`},dz={key:0,class:`tool-call-node__approval-desc`},fz={key:1,class:`tool-call-node__approval-args`},pz={class:`tool-call-node__approval-code`},mz={class:`tool-call-node__approval-actions`},hz=[`disabled`],gz=[`disabled`],_z=[`disabled`],vz={key:2,class:`tool-call-node__approval-edit`},yz=[`disabled`],bz={class:`tool-call-node__approval-edit-actions`},xz=[`disabled`],Sz=[`disabled`],Cz=BR((0,a.defineComponent)({__name:`ToolCallNode`,props:{expanded:{type:Boolean},resolving:{type:Boolean},tool:{}},emits:[`approve`,`edit`,`reject`,`toggle`],setup(e,{emit:t}){let n=t,r=e,i=t,o=(0,a.ref)(!1),s=(0,a.ref)(``),c=(0,a.ref)(null),l=(0,a.computed)(()=>r.tool.approvalConfig),u=(0,a.computed)(()=>r.tool.status===`waiting`&&l.value!=null);(0,a.watch)(u,e=>{e&&!r.expanded&&i(`toggle`)},{immediate:!0});let d=(0,a.computed)(()=>l.value?Object.keys(l.value.args).length>0:!1),f=(0,a.computed)(()=>l.value?JSON.stringify(l.value.args,null,2):``),p=(0,a.computed)(()=>!!(r.tool.input!=null||r.tool.output!=null||r.tool.error)),m=(0,a.computed)(()=>{let e=r.tool.input;if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}),h=(0,a.computed)(()=>{if(r.tool.status===`error`)return r.tool.error||``;let e=r.tool.output;if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}});(0,a.watch)(()=>l.value?.editContent,e=>{s.value=e||``},{immediate:!0});function g(){c.value=`approved`,i(`approve`,r.tool.toolName)}function _(){c.value=`rejected`,i(`reject`,r.tool.toolName)}function v(){c.value=`approved`,i(`edit`,r.tool.toolName,s.value),o.value=!1}return(t,i)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`tool-call-node`,`is-${r.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:(0,a.normalizeClass)([`tool-call-node__header`,{"tool-call-node__header--clickable":p.value||u.value}]),role:p.value||u.value?`button`:void 0,tabindex:p.value||u.value?0:void 0,onClick:i[0]||=e=>(p.value||u.value)&&n(`toggle`),onKeydown:[i[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>(p.value||u.value)&&n(`toggle`),[`prevent`]),[`enter`]),i[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>(p.value||u.value)&&n(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,QR,[r.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Gd),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):r.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(dm),{key:1,class:`tool-call-node__prefix-icon`})):r.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Cm),{key:2,class:`tool-call-node__prefix-icon`})):u.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(sC),{key:3,class:`tool-call-node__prefix-icon is-waiting`})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`span`,$R,[(0,a.createTextVNode)((0,a.toDisplayString)(r.tool.title||r.tool.toolName||`工具调用`)+` `,1),u.value&&!c.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,ez,`待审批`)):c.value===`approved`?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,tz,[(0,a.createVNode)((0,a.unref)(dm),{style:{"margin-right":`2px`}}),i[6]||=(0,a.createTextVNode)(`已批准 `,-1)])):c.value===`rejected`?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,nz,[(0,a.createVNode)((0,a.unref)(Cm),{style:{"margin-right":`2px`}}),i[7]||=(0,a.createTextVNode)(`已拒绝 `,-1)])):(0,a.createCommentVNode)(``,!0)])]),p.value||u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,rz,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.expanded?(0,a.unref)(yT):(0,a.unref)(Vd)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,ZR),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,iz,[m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,az,[i[8]||=(0,a.createElementVNode)(`span`,{class:`tool-call-node__label`},`入参:`,-1),(0,a.createVNode)((0,a.unref)(bh),{placement:`topLeft`,"overlay-inner-style":{maxWidth:`480px`,maxHeight:`320px`,overflowY:`auto`,fontSize:`12px`,fontFamily:`monospace`,whiteSpace:`pre-wrap`,wordBreak:`break-all`}},{title:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(m.value),1)]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,oz,(0,a.toDisplayString)(m.value),1)]),_:1})])):(0,a.createCommentVNode)(``,!0),h.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,sz,[(0,a.createElementVNode)(`span`,cz,(0,a.toDisplayString)(r.tool.status===`error`?`错误:`:`结果:`),1),(0,a.createVNode)((0,a.unref)(bh),{placement:`topLeft`,"overlay-inner-style":{maxWidth:`480px`,maxHeight:`320px`,overflowY:`auto`,fontSize:`12px`,fontFamily:`monospace`,whiteSpace:`pre-wrap`,wordBreak:`break-all`}},{title:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(h.value),1)]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)(`span`,lz,(0,a.toDisplayString)(h.value),1)]),_:1})])):(0,a.createCommentVNode)(``,!0),u.value&&l.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,uz,[(0,a.createVNode)(a.Transition,{name:`approval-result`},{default:(0,a.withCtx)(()=>[c.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:0,class:(0,a.normalizeClass)([`tool-call-node__approval-result`,[`is-${c.value}`]])},[c.value===`approved`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(dm),{key:0,class:`approval-result-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Cm),{key:1,class:`approval-result-icon`})),(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(c.value===`approved`?`已批准,继续执行中…`:`已拒绝,操作已取消`),1)],2)):(0,a.createCommentVNode)(``,!0)]),_:1}),c.value?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[l.value.description?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,dz,(0,a.toDisplayString)(l.value.description),1)):(0,a.createCommentVNode)(``,!0),d.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,fz,[i[9]||=(0,a.createElementVNode)(`span`,{class:`tool-call-node__label`},`参数:`,-1),(0,a.createElementVNode)(`code`,pz,(0,a.toDisplayString)(f.value),1)])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`div`,mz,[(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-approve`,disabled:e.resolving,onClick:(0,a.withModifiers)(g,[`stop`])},[(0,a.createVNode)((0,a.unref)(dm),{style:{"margin-right":`4px`}}),i[10]||=(0,a.createTextVNode)(` 批准 `,-1)],8,hz),l.value.allowedDecisions.includes(`edit`)?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:0,class:`tool-call-node__btn tool-call-node__btn-edit`,disabled:e.resolving,onClick:i[3]||=(0,a.withModifiers)(e=>o.value=!o.value,[`stop`])},` 修改后批准 `,8,gz)):(0,a.createCommentVNode)(``,!0),l.value.allowedDecisions.includes(`reject`)?((0,a.openBlock)(),(0,a.createElementBlock)(`button`,{key:1,class:`tool-call-node__btn tool-call-node__btn-reject`,disabled:e.resolving,onClick:(0,a.withModifiers)(_,[`stop`])},[(0,a.createVNode)((0,a.unref)(Cm),{style:{"margin-right":`4px`}}),i[11]||=(0,a.createTextVNode)(` 拒绝 `,-1)],8,_z)):(0,a.createCommentVNode)(``,!0)]),o.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,vz,[(0,a.withDirectives)((0,a.createElementVNode)(`textarea`,{"onUpdate:modelValue":i[4]||=e=>s.value=e,class:`tool-call-node__textarea`,disabled:e.resolving,placeholder:`编辑内容...`,rows:`4`},null,8,yz),[[a.vModelText,s.value]]),(0,a.createElementVNode)(`div`,bz,[(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-approve`,disabled:e.resolving,onClick:(0,a.withModifiers)(v,[`stop`])},` 提交修改 `,8,xz),(0,a.createElementVNode)(`button`,{class:`tool-call-node__btn tool-call-node__btn-cancel`,disabled:e.resolving,onClick:i[5]||=(0,a.withModifiers)(e=>o.value=!1,[`stop`])},` 取消 `,8,Sz)])])):(0,a.createCommentVNode)(``,!0)],64))])):(0,a.createCommentVNode)(``,!0)])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-c4d46f41`]]),wz={class:`sub-agent-node__prefix`},Tz={class:`sub-agent-node__name`},Ez={key:0,class:`sub-agent-node__body`},Dz={class:`think-node__layout`},Oz={class:`think-node__header`},kz={class:`think-node__header-main`},Az={class:`think-node__prefix`},jz={key:0,class:`think-node__content think-node__content--inline is-collapsed is-overflowing`},Mz=[`onClick`],Nz={class:`think-node__toggle-icon`},Pz={key:0,class:`think-node__content is-expanded`},Fz={key:0,class:`sub-agent-node__tools`},Iz={key:1,class:`sub-agent-node__content`},Lz=BR((0,a.defineComponent)({__name:`SubAgentNode`,props:{blocks:{},expanded:{type:Boolean},tool:{}},emits:[`toggle`],setup(e,{emit:t}){let n=e,r=(0,a.computed)(()=>{if(!n.blocks?.length)return[];let e=[],t={type:`reply`,blocks:[]};for(let r of n.blocks)r.type===`reasoning`||r.type===`tool_call`?(t.type!==`thinking`&&(t.blocks.length>0&&e.push(t),t={type:`thinking`,blocks:[]}),t.blocks.push(r)):(t.type!==`reply`&&(t.blocks.length>0&&e.push(t),t={type:`reply`,blocks:[]}),t.blocks.push(r));return t.blocks.length>0&&e.push(t),e}),i=(0,a.reactive)({});function o(e){i[e]=!i[e]}let s=(0,a.ref)({});function c(e){s.value={...s.value,[e]:!s.value[e]}}function l(e){let t=e;return{toolCallId:t.toolCallId,toolName:t.toolName,title:t.toolName,status:`success`,input:t.input,output:t.output,durationMs:t.durationMs,startedAt:t.startedAt||0}}return(n,u)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`sub-agent-node`,`is-${e.tool.status||`running`}`])},[(0,a.createElementVNode)(`div`,{class:`sub-agent-node__header`,role:`button`,tabindex:`0`,onClick:u[0]||=e=>t(`toggle`),onKeydown:[u[1]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`enter`]),u[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>t(`toggle`),[`prevent`]),[`space`])]},[(0,a.createElementVNode)(`span`,wz,[e.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Gd),{key:0,class:`sub-agent-node__icon is-spinning`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(dm),{key:1,class:`sub-agent-node__icon`})),(0,a.createElementVNode)(`span`,Tz,(0,a.toDisplayString)(e.tool.title||e.tool.toolName),1),u[3]||=(0,a.createElementVNode)(`span`,{class:`sub-agent-node__badge`},`子代理`,-1)]),((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.expanded?(0,a.unref)(yT):(0,a.unref)(Vd)),{class:`sub-agent-node__chevron`}))],32),e.expanded?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Ez,[e.blocks?.length?((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:0},(0,a.renderList)(r.value,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:t},[e.type===`thinking`?((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{key:0,class:(0,a.normalizeClass)([`think-node`,{"is-expanded":i[t]!==!1}])},[(0,a.createElementVNode)(`div`,Dz,[(0,a.createElementVNode)(`div`,Oz,[(0,a.createElementVNode)(`div`,kz,[(0,a.createElementVNode)(`span`,Az,[(0,a.createVNode)((0,a.unref)(WO),{class:`think-node__prefix-icon`}),u[4]||=(0,a.createElementVNode)(`span`,null,`思考:`,-1)]),i[t]===!1?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,jz,(0,a.toDisplayString)(e.blocks.filter(e=>e.type===`reasoning`).map(e=>e.text).join(` `)),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`button`,{type:`button`,class:`think-node__toggle`,onClick:e=>o(t)},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(i[t]===!1?`展开`:`收起`),1),(0,a.createElementVNode)(`span`,Nz,(0,a.toDisplayString)(i[t]===!1?`▼`:`▲`),1)],8,Mz)]),i[t]===!1?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Pz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.blocks,(e,t)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:t},[e.type===`reasoning`?((0,a.openBlock)(),(0,a.createBlock)(XR,{key:0,content:e.text},null,8,[`content`])):e.type===`tool_call`?((0,a.openBlock)(),(0,a.createBlock)(Cz,{key:1,tool:l(e),expanded:!!s.value[e.toolCallId],onToggle:t=>c(e.toolCallId)},null,8,[`tool`,`expanded`,`onToggle`])):(0,a.createCommentVNode)(``,!0)],64))),128))]))])],2)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(e.blocks,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)(XR,{key:t,content:e.text},null,8,[`content`]))),128))],64))),128)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[e.tool.subAgentTools?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Fz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.tool.subAgentTools,(e,t)=>((0,a.openBlock)(),(0,a.createBlock)(Cz,{key:e.toolCallId,tool:e,expanded:s.value[e.toolCallId]||!1,"step-number":t,onToggle:t=>c(e.toolCallId)},null,8,[`tool`,`expanded`,`step-number`,`onToggle`]))),128))])):(0,a.createCommentVNode)(``,!0),e.tool.subAgentContent?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Iz,[(0,a.createVNode)(XR,{content:e.tool.subAgentContent},null,8,[`content`])])):(0,a.createCommentVNode)(``,!0)],64))])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-526ce89d`]]),Rz={key:0,class:`msg-renderer__loading`},zz={class:`think-node__layout`},Bz={class:`think-node__header`},Vz={class:`think-node__header-main`},Hz={class:`think-node__prefix`},Uz={key:0,class:`think-node__content think-node__content--inline is-collapsed is-overflowing`},Wz=[`onClick`],Gz={class:`think-node__toggle-icon`},Kz={key:0,class:`think-node__content is-expanded`},qz={key:1,class:`msg-renderer__attachments`},Jz=BR((0,a.defineComponent)({__name:`MessageRenderer`,props:{customComponents:{},customHtmlTags:{},expandedTools:{default:()=>({})},interruptResolving:{type:Boolean},message:{},toolRenderers:{default:()=>({})}},emits:[`approve`,`edit`,`reject`,`toggleExpand`],setup(e,{emit:t}){let n=e,r=t;function i(e){return e===`write_todos`?`top`:`timeline`}function o(e,t){return e?.find(e=>e.toolCallId===t)}function s(e,t){return i(o(e.toolTimeline,t)?.toolName)===`timeline`}function c(e){return!e.segments||e.segments.length===0?e.content?[{type:`text`,text:e.content}]:[]:e.segments.map(t=>t.type===`tool`||t.type===`attachment`?t:{type:`text`,text:e.content.slice(t.start,t.end===-1?void 0:t.end)})}let l=(0,a.computed)(()=>Array.isArray(n.message.blocks)&&n.message.blocks.length>0),u=(0,a.computed)(()=>{if(!l.value)return[];let e=n.message.blocks,t=[],r={type:`reply`,blocks:[]};for(let n of e)n.type===`reasoning`||n.type===`tool_call`?(r.type!==`thinking`&&(r.blocks.length>0&&t.push(r),r={type:`thinking`,blocks:[]}),r.blocks.push(n)):(r.type!==`reply`&&(r.blocks.length>0&&t.push(r),r={type:`reply`,blocks:[]}),r.blocks.push(n));return r.blocks.length>0&&t.push(r),t}),d=(0,a.reactive)({});function f(e){d[e]=!d[e]}let p=(0,a.computed)(()=>c(n.message)),m=(0,a.computed)(()=>n.message.loading&&!n.message.content);function h(e){let t=o(n.message.toolTimeline,e);return t?.toolName?n.toolRenderers?.[t.toolName]??Cz:Cz}function g(e,t){r(`approve`,e,t)}function _(e,t){r(`reject`,e,t)}function v(e,t,n){r(`edit`,e,t,n)}function y(e){r(`toggleExpand`,e)}function b(e){let t=e;return{toolCallId:t.toolCallId,toolName:t.toolName,title:t.subAgentType||t.toolName,status:`success`,input:t.input,output:t.output,durationMs:t.durationMs,startedAt:t.startedAt,subAgentContent:t.subAgentContent,subAgentBlocks:t.subAgentBlocks,subAgentTools:t.subAgentTools}}function x(e){return e.subAgentType!=null}return(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,null,[m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Rz,[(0,a.createVNode)((0,a.unref)(Gd),{style:{fontSize:`16px`,color:`var(--primary-color, var(--primary))`,marginRight:`8px`}}),n[0]||=(0,a.createElementVNode)(`span`,{class:`msg-renderer__loading-text`},`AI 正在思考...`,-1)])):(0,a.createCommentVNode)(``,!0),l.value?((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(u.value,(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:r},[t.type===`thinking`?((0,a.openBlock)(),(0,a.createElementBlock)(`section`,{key:0,class:(0,a.normalizeClass)([`think-node`,{"is-expanded":d[r]!==!1}])},[(0,a.createElementVNode)(`div`,zz,[(0,a.createElementVNode)(`div`,Bz,[(0,a.createElementVNode)(`div`,Vz,[(0,a.createElementVNode)(`span`,Hz,[(0,a.createVNode)((0,a.unref)(WO),{class:`think-node__prefix-icon`}),n[1]||=(0,a.createElementVNode)(`span`,null,`思考:`,-1)]),d[r]===!1?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Uz,(0,a.toDisplayString)(t.blocks.filter(e=>e.type===`reasoning`).map(e=>e.text).join(` `)),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`button`,{type:`button`,class:`think-node__toggle`,onClick:e=>f(r)},[(0,a.createElementVNode)(`span`,null,(0,a.toDisplayString)(d[r]===!1?`展开`:`收起`),1),(0,a.createElementVNode)(`span`,Gz,(0,a.toDisplayString)(d[r]===!1?`▼`:`▲`),1)],8,Wz)]),d[r]===!1?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,Kz,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(t.blocks,(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:n},[t.type===`reasoning`?((0,a.openBlock)(),(0,a.createBlock)(XR,{key:0,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`])):t.type===`tool_call`&&!x(t)?((0,a.openBlock)(),(0,a.createBlock)(Cz,{key:1,tool:b(t),expanded:!!e.expandedTools[t.toolCallId],resolving:e.interruptResolving,onToggle:e=>y(t.toolCallId),onApprove:e=>g(t.toolCallId,e),onReject:e=>_(t.toolCallId,e),onEdit:(e,n)=>v(t.toolCallId,e,n)},null,8,[`tool`,`expanded`,`resolving`,`onToggle`,`onApprove`,`onReject`,`onEdit`])):t.type===`tool_call`?((0,a.openBlock)(),(0,a.createBlock)(Lz,{key:2,tool:b(t),blocks:t.subAgentBlocks,expanded:!!e.expandedTools[t.toolCallId],onToggle:e=>y(t.toolCallId)},null,8,[`tool`,`blocks`,`expanded`,`onToggle`])):(0,a.createCommentVNode)(``,!0)],64))),128))]))])],2)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:1},(0,a.renderList)(t.blocks,(t,n)=>((0,a.openBlock)(),(0,a.createBlock)(XR,{key:n,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`]))),128))],64))),128)):((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,{key:2},(0,a.renderList)(p.value,(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:n},[t.type===`tool`&&s(e.message,t.toolCallId)?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(h(t.toolCallId)),{key:0,tool:o(e.message.toolTimeline,t.toolCallId),expanded:e.expandedTools[t.toolCallId]===!0,"step-number":o(e.message.toolTimeline,t.toolCallId)?.stepNumber,resolving:e.interruptResolving,onToggle:e=>y(t.toolCallId),onApprove:e=>g(t.toolCallId,e),onReject:e=>_(t.toolCallId,e),onEdit:(e,n)=>v(t.toolCallId,e,n)},null,40,[`tool`,`expanded`,`step-number`,`resolving`,`onToggle`,`onApprove`,`onReject`,`onEdit`])):t.type===`attachment`&&t.attachments?.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,qz,[((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)(AR).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)(XR,{key:2,content:t.text,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents},null,8,[`content`,`custom-html-tags`,`custom-components`])):(0,a.createCommentVNode)(``,!0)],64))),128))],64))}}),[[`__scopeId`,`data-v-4bb03a95`]]),Yz=class extends Error{constructor(e,t){super(`${e} at position ${t}`),this.position=t}},Xz=32,Zz=10,Qz=9,$z=13,eB=160,tB=6158,nB=8192,rB=8203,iB=8239,aB=8287,oB=12288,sB=65279;function cB(e){return/^[0-9A-Fa-f]$/.test(e)}function lB(e){return e>=`0`&&e<=`9`}function uB(e){return e>=` `}function dB(e){return`,:[]/{}()
|
|
363
363
|
+`.includes(e)}function fB(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`_`||e===`$`}function pB(e){return e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`_`||e===`$`||e>=`0`&&e<=`9`}var mB=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,hB=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function gB(e){return`,[]/{}
|
|
364
364
|
+`.includes(e)}function _B(e){return CB(e)||vB.test(e)}var vB=/^[[{\w-]$/;function yB(e){return e===`
|
|
365
365
|
`||e===`\r`||e===` `||e===`\b`||e===`\f`}function bB(e,t){let n=e.charCodeAt(t);return n===Xz||n===Zz||n===Qz||n===$z}function xB(e,t){let n=e.charCodeAt(t);return n===Xz||n===Qz||n===$z}function SB(e,t){let n=e.charCodeAt(t);return n===eB||n===tB||n>=nB&&n<=rB||n===iB||n===aB||n===oB||n===sB}function CB(e){return wB(e)||EB(e)}function wB(e){return e===`"`||e===`“`||e===`”`}function TB(e){return e===`"`}function EB(e){return e===`'`||e===`‘`||e===`’`||e==="`"||e===`´`}function DB(e){return e===`'`}function OB(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],r=e.lastIndexOf(t);return r===-1?e:e.substring(0,r)+(n?``:e.substring(r+1))}function kB(e,t){let n=e.length;if(!bB(e,n-1))return e+t;for(;bB(e,n-1);)n--;return e.substring(0,n)+t+e.substring(n)}function AB(e,t,n){return e.substring(0,t)+e.substring(t+n)}function jB(e){return/[,\n][ \t\r]*$/.test(e)}var MB={""":`"`,"&":`&`,"<":`<`,">":`>`,"'":`'`};function NB(e){if(e.charAt(0)!==`&`)return null;let t=e.indexOf(`;`);if(t===-1)return null;let n=e.substring(0,t+1),r=MB[n];if(r!==void 0)return{char:r,length:n.length};if(e.charAt(1)===`#`){let r=e.substring(2,t),i=r.charAt(0)===`x`||r.charAt(0)===`X`,a=i?r.substring(1):r;if(a.length>0){let e=Number.parseInt(a,i?16:10);if(!Number.isNaN(e)&&e>=0&&e<=1114111)return{char:String.fromCodePoint(e),length:n.length}}}return null}function PB(e){return e!==null&&e.char===`"`}function FB(e){return e!==null&&e.char===`'`}function IB(e,t){let n=0;for(let r=0;r<e.length;r++)e.charAt(r)===t&&n++;return n}function LB(e,t){switch(t){case`)`:return IB(e,`(`)>IB(e,`)`);case`]`:return IB(e,`[`)>IB(e,`]`);case`}`:return IB(e,`{`)>IB(e,`}`);default:return!1}}var RB={"\b":`\\b`,"\f":`\\f`,"\n":`\\n`,"\r":`\\r`," ":`\\t`},zB={'"':`"`,"\\":`\\`,"/":`/`,b:`\b`,f:`\f`,n:`
|
|
366
366
|
`,r:`\r`,t:` `};function BB(e){let t=0,n=``;c(["```","[```","{```"]),i()||k(),c(["```","```]","```}"]);let r=u(`,`);for(r&&a(),_B(e[t])&&jB(n)?(r||(n=kB(n,`,`)),g()):r&&(n=OB(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?bB:xB,a=``;for(;;)if(i(e,t))a+=e[t],t++;else if(SB(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&&!VB(e,t);)t++;return t+=2,!0}if(e[t]===`/`&&e[t+1]===`/`){for(;t<e.length&&e[t]!==`
|
|
367
367
|
`;)t++;return!0}return!1}function c(n){if(l(n)){if(fB(e[t]))for(;t<e.length&&pB(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=kB(n,`,`)),a()),p(),!(_()||S(!0))){e[t]===`}`||e[t]===`{`||e[t]===`]`||e[t]===`[`||e[t]===void 0?r||(n=OB(n,`,`)):A();break}a();let s=u(`:`),c=t>=e.length;s||(_B(e[t])||c?n=kB(n,`:`):j()),i()||(s||c?n+=`null`:j()),r=!1}return e[t]===`}`?(n+=`}`,t++):n=kB(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=kB(n,`,`)),p(),!i()){r||(n=OB(n,`,`));break}r=!1}return e[t]===`]`?(n+=`]`,t++):n=kB(n,`]`),!0}return!1}function g(){let e=!0,t=!0;for(;t;)e?e=!1:u(`,`)||(n=kB(n,`,`)),t=i();t||(n=OB(n,`,`)),n=`[\n${n}\n]`}function _(){let r=arguments.length>0&&arguments[0]!==void 0&&arguments[0],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,o=e[t]===`\\`;o&&(t++,CB(e[t])||O());let s=e[t]===`&`?NB(e.slice(t,t+12)):null,c=PB(s)||FB(s);if(CB(e[t])||c){let l=TB(e[t])?TB:DB(e[t])?DB:EB(e[t])?EB:wB,u=t,d=n.length,p=`"`;for(t+=c&&s?s.length:1;;){if(t>=e.length){let i=w(t-1);return!r&&dB(e.charAt(i))?(t=u,n=n.substring(0,d),_(!0)):(p=kB(p,`"`),n+=p,!0)}if(t===i)return p=kB(p,`"`),n+=p,!0;let m=c&&e[t]===`&`?NB(e.slice(t,t+12)):null;if(m&&s?m.char===s.char:l(e[t])){let i=t,o=p.length;if(p+=`"`,t+=m?m.length:1,n+=p,a(!1),r||t>=e.length||dB(e[t])&&!LB(p,e[t])||CB(e[t])&&!T(t)||lB(e[t]))return v(),!0;e[t]===`\\`&&O();let s=w(i-1),c=e.charAt(s);if(c===`,`)return t=u,n=n.substring(0,d),_(!1,s);if(dB(c))return t=u,n=n.substring(0,d),_(!0);n=n.substring(0,d),t=i+(m?m.length:1),p=`${p.substring(0,o)}\\${p.substring(o)}`}else if(r&&gB(e[t])){if(e[t-1]===`:`&&mB.test(e.substring(u+1,t+2)))for(;t<e.length&&hB.test(e[t]);)p+=e[t],t++;return p=kB(p,`"`),n+=p,v(),!0}else if(m){let e=m.char;e===`"`?p+=`\\"`:yB(e)?p+=RB[e]:p+=e,t+=m.length}else if(e[t]===`\\`){let n=e.charAt(t+1);if(zB[n]!==void 0)p+=e.slice(t,t+2),t+=2;else if(n===`u`){let n=2;for(;n<6&&cB(e[t+n]);)n++;n===6?(p+=e.slice(t,t+6),t+=6):t+n>=e.length?t=e.length:M()}else n===`
|
|
368
|
-
`?(p+=`\\n`,t+=2):(p+=n,t+=2)}else{let n=e.charAt(t);n===`"`&&e[t-1]!==`\\`?(p+=`\\${n}`,t++):yB(n)?(p+=RB[n],t++):(uB(n)||D(n),p+=n,t++)}o&&f()}}return!1}function v(){let r=!1;for(a();e[t]===`+`;){r=!0,t++,a(),n=OB(n,`"`,!0);let e=n.length;n=_()?AB(n,e,1):kB(n,`"`)}return r}function y(){let r=t,i=``,a=!1;for(e[t]===`-`&&(i+=e[t],t++,!lB(e[t])&&E()&&(i+=`0`)),e[t]===`0`&&lB(e[t+1])&&(a=!0);lB(e[t]);)i+=e[t],t++;if(e[t]===`.`)for((i===``||i===`-`)&&(i+=`0`),i+=e[t],t++,lB(e[t])||(i+=`0`);lB(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++),lB(e[t])||(i+=`0`);lB(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&&!pB(e[t+r.length])?(n+=i,t+=r.length,!0):!1}function S(r){let a=t;if(fB(e[t])){for(;t<e.length&&pB(e[t]);)t++;let n=t;for(;bB(e,n);)n++;if(e[n]===`(`)return t=n+1,i(),e[t]===`)`&&(t++,e[t]===`;`&&t++),!0}for(;t<e.length&&!gB(e[t])&&!CB(e[t])&&(!r||e[t]!==`:`);)t++;if(e[t-1]===`:`&&mB.test(e.substring(a,t+2)))for(;t<e.length&&hB.test(e[t]);)t++;if(t>a){for(;bB(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&&bB(e,n);)n--;return n}function T(t){let n=t+1;for(;n<e.length&&bB(e,n);)n++;return n>=e.length||dB(e[n])}function E(){return t>=e.length||dB(e[t])||bB(e,t)}function D(e){throw new Yz(`Invalid character ${JSON.stringify(e)}`,t)}function O(){throw new Yz(`Unexpected character ${JSON.stringify(e[t])}`,t)}function k(){throw new Yz(`Unexpected end of json string`,e.length)}function A(){throw new Yz(`Object key expected`,t)}function j(){throw new Yz(`Colon expected`,t)}function M(){throw new Yz(`Invalid unicode character "${e.slice(t,t+6)}"`,t)}}function VB(e,t){return e[t]===`*`&&e[t+1]===`/`}var HB=[`role`,`tabindex`],UB={class:`tool-call-node__prefix`},WB={class:`tool-call-node__title`},GB={key:0,class:`tool-call-node__toggle`},KB={key:0,class:`smdr__body`},qB={key:0,class:`smdr__error`},JB={class:`smdr__tabs`},YB=[`onClick`],XB={class:`smdr__content`},ZB=BR((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(BB(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`,UB,[n.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Gd),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):n.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(dm),{key:1,class:`tool-call-node__prefix-icon`})):n.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Cm),{key:2,class:`tool-call-node__prefix-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(sC),{key:3,class:`tool-call-node__prefix-icon is-waiting`})),(0,a.createElementVNode)(`span`,WB,(0,a.toDisplayString)(c.value),1)]),s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,GB,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.expanded?(0,a.unref)(yT):(0,a.unref)(Vd)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,HB),n.expanded&&s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,KB,[n.tool.status===`error`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,qB,(0,a.toDisplayString)(n.tool.error||`执行失败`),1)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createElementVNode)(`div`,JB,[((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,YB))),128))]),(0,a.createElementVNode)(`div`,XB,[((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)(XR,{key:e.key,content:e.content},null,8,[`content`])),[[a.vShow,l.value===e.key]])),128))])],64))])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-d1dff106`]]),QB={save_module_docs_tool:ZB},$B={class:`todos-top-panel`},eV={class:`todos-top-panel__header`},tV={class:`todos-top-panel__meta`},nV={class:`todos-top-panel__list`},rV={class:`todos-top-panel__text`},iV=BR((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`,$B,[(0,a.createElementVNode)(`header`,eV,[i[0]||=(0,a.createElementVNode)(`span`,{class:`todos-top-panel__title`},`任务清单`,-1),(0,a.createElementVNode)(`span`,tV,[(0,a.createVNode)((0,a.unref)(dm),{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`,nV,[((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)(dm),{key:0})):r(e.status)===`in_progress`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(ok),{key:1,class:`is-rotating`})):r(e.status)===`cancelled`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(nk),{key:2})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(sC),{key:3}))],2),(0,a.createElementVNode)(`span`,rV,(0,a.toDisplayString)(e.title),1)]))),128))])]))}}),[[`__scopeId`,`data-v-d03a50e5`]]),aV={class:`chat-panel`},oV={class:`chat-header`},sV={class:`header-meta`},cV={class:`conv-heading`},lV={key:0,class:`conv-subheading`},uV={class:`header-actions`},dV={class:`chat-body`},fV={key:0,class:`empty-state`},pV={key:0,class:`empty-sub`},mV={key:1,class:`messages-wrapper`},hV={class:`input-footer`},gV={class:`input-panel`},_V={class:`sender-footer`},vV={class:`sender-footer__left`},yV={class:`sender-footer__right`},bV=BR((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agentPickerStorageKey:{default:`chat_panel_agent`},agents:{},customComponents:{},customHtmlTags:{},defaultToolRenderers:{default:()=>QB},emptyHint:{default:``},initialMessages:{default:()=>[]},modelValue:{default:``},onAgentEvent:{},roles:{},sessionKey:{default:``},subtitle:{default:``},title:{default:`对话助手`}},emits:[`update:modelValue`,`update:agentKey`,`submit`,`cancel`,`reset`,`agentChange`,`update:agents`],setup(e,{expose:t,emit:n}){let r=e,i=n,o=(0,a.ref)({});function s(e){o.value={...o.value,[e]:!o.value[e]}}function c(e){return e.map(e=>({...e,toolTimeline:e.toolTimeline?.map(e=>({...e})),segments:e.segments?.map(e=>({...e}))}))}let l=(0,a.ref)(r.modelValue||``),u=(0,a.ref)(!1),d=(0,a.ref)(c(r.initialMessages)),f=(0,a.ref)(``),p=(0,a.ref)(r.agentKey||r.agents[0]?.key||``),m=(0,a.ref)(),h=(0,a.ref)(!1),g=(0,a.computed)(()=>_.value.filter(e=>e.status!==`error`).map(e=>({id:e.uid,name:e.name,size:e.size||0,type:e.type||`application/octet-stream`,url:e.url||e.thumbUrl}))),_=(0,a.ref)([]);async function v(e){_.value=e.fileList;for(let t of e.fileList){if(t.url&&!t.url.startsWith(`blob:`))continue;let e=t.originFileObj;if(!e||!M.value?.agent.uploadFile)continue;let n=_.value.findIndex(e=>e.uid===t.uid);n!==-1&&(_.value[n]={..._.value[n],status:`uploading`});try{let n=await M.value.agent.uploadFile(e),r=_.value.findIndex(e=>e.uid===t.uid);r!==-1&&(_.value[r]={..._.value[r],uid:n.id,url:n.url,thumbUrl:n.url,status:`done`})}catch{let e=_.value.findIndex(e=>e.uid===t.uid);e!==-1&&(_.value[e]={..._.value[e],status:`error`})}}}function y(e,t){if(!P.value)return;let n=[...t];if(n.length===0)return;h.value=!0;let r=n.map((e,t)=>({uid:`paste-${Date.now()}-${t}-${Math.random().toString(36).slice(2,8)}`,name:e.name,status:`uploading`,originFileObj:e,type:e.type,size:e.size}));v({file:r[r.length-1],fileList:[..._.value,...r]})}function b(e){return e===`drop`?{title:`释放文件`}:{icon:(0,a.h)(JO),title:`上传文件`,description:`点击或拖拽文件到此区域上传`}}let x=(0,a.ref)([...r.agents]),S=new Map;function C(e){return{replyChange:(t,n)=>{r.onAgentEvent?.({event:`replyChange`,agentKey:e.key,args:[t,n]}),me(t,n)},stop:()=>{r.onAgentEvent?.({event:`stop`,agentKey:e.key,args:[]}),_e()},toolCall:t=>{r.onAgentEvent?.({event:`toolCall`,agentKey:e.key,args:[t]}),ve(t)},interrupt:t=>{r.onAgentEvent?.({event:`interrupt`,agentKey:e.key,args:[t]}),ye(t)}}}function w(e){if(S.has(e.key))return;let t=C(e);S.set(e.key,t),e.agent.on(`replyChange`,t.replyChange),e.agent.on(`stop`,t.stop),e.agent.on(`toolCall`,t.toolCall),e.agent.on(`thinkingChange`,he),e.agent.on(`blocksUpdate`,ge);let n=e.agent;typeof n.onInterrupt==`function`&&n.onInterrupt(t.interrupt)}function T(e){let t=S.get(e.key);if(!t)return;e.agent.off(`replyChange`,t.replyChange),e.agent.off(`stop`,t.stop),e.agent.off(`toolCall`,t.toolCall),e.agent.off(`thinkingChange`,he),e.agent.off(`blocksUpdate`,ge);let n=e.agent;typeof n.offInterrupt==`function`&&n.offInterrupt(t.interrupt),S.delete(e.key)}function E(e){let t=x.value;t.forEach(t=>{e.find(e=>e.key===t.key)||T(t)}),e.forEach(e=>{t.find(t=>t.key===e.key)||w(e)}),x.value=e,i(`update:agents`,e),e.find(e=>e.key===p.value)||(p.value=e[0]?.key||``,i(`update:agentKey`,p.value))}let D=(0,a.ref)(null),O=(0,a.ref)(!1),k=(0,a.ref)({}),A=(0,a.ref)(null),j=(0,a.computed)(()=>d.value),M=(0,a.computed)(()=>x.value.find(e=>e.key===p.value)||x.value[0]||null),N=(0,a.computed)(()=>M.value?.label||`未选择`),P=(0,a.computed)(()=>typeof M.value?.agent.uploadFile==`function`),F=(0,a.computed)(()=>({...r.defaultToolRenderers,...M.value?.toolRenderers})),I=(0,a.computed)(()=>Bf(r.emptyHint)?`当前 Agent:${N.value},输入问题后按 Enter 发送`:r.emptyHint);(0,a.watch)(()=>r.modelValue,e=>{l.value=e||``}),(0,a.watch)(()=>r.agentKey,e=>{e&&(p.value=e)}),(0,a.watch)(()=>r.sessionKey,()=>{f.value=``,u.value=!1,o.value={},d.value=c(r.initialMessages),A.value=null},{immediate:!0});function L(e){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function R(e,t){let n=d.value.findIndex(t=>t.key===e);n!==-1&&(d.value[n]={...d.value[n],...t})}function z(e,t,n){let r=[...e],i=t;if(r.length===0)r.push({type:`text`,start:0,end:i});else for(let e=r.length-1;e>=0;e--){let t=r[e];if(t.type===`text`&&t.end===-1){r[e]={...t,end:i};break}}return r.push({type:`tool`,toolCallId:n},{type:`text`,start:i,end:-1}),r}function ee(e,t){let n=d.value.findIndex(t=>t.key===e);if(n===-1)return;let r=d.value[n];if(r.role!==`ai`)return;let i=[...r.toolTimeline??[]],a=i.findIndex(e=>e.toolCallId===t.toolCallId),o=r.segments?[...r.segments]:[];if(a===-1&&(o=z(o,r.content.length,t.toolCallId)),a===-1)i.push({toolCallId:t.toolCallId,toolName:t.toolName,title:t.title,status:t.status,input:t.input,output:t.output,error:t.error,stepNumber:t.stepNumber,startedAt:t.timestamp,durationMs:t.durationMs,approvalConfig:t.approvalConfig?{interruptId:t.approvalConfig.interruptId,description:t.approvalConfig.description,args:t.input??{},allowedDecisions:t.approvalConfig.allowedDecisions,editContent:``}:void 0});else{let e=i[a];i[a]={...e,toolName:t.toolName||e.toolName,title:t.title??e.title,status:t.status,input:t.input??e.input,output:t.output??e.output,error:t.error??e.error,stepNumber:t.stepNumber??e.stepNumber,durationMs:t.durationMs??e.durationMs,approvalConfig:t.approvalConfig&&!e.approvalConfig?{interruptId:t.approvalConfig.interruptId,description:t.approvalConfig.description,args:t.input??{},allowedDecisions:t.approvalConfig.allowedDecisions,editContent:``}:e.approvalConfig}}d.value[n]={...r,toolTimeline:i,segments:o,loading:!1}}function te(e){let t=e.trim();if(!t)return e;try{return JSON.parse(t)}catch{return e}}function ne(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 B(e){if(typeof e!=`string`)return[];let t=e.trim();if(!t)return[];let n=te(t);if(typeof n==`string`)return[];if(Array.isArray(n))return n.map((e,t)=>ne(e,t));if(n&&typeof n==`object`){let e=n.todos;if(Array.isArray(e))return e.map((e,t)=>ne(e,t))}return[]}function V(e){let t=B(e.input),n=t.length>0?t:B(e.output);if(n.length===0)return null;let r=n.filter(e=>String(e.title||``).trim().length>0);return r.length===0?null:{todos:r}}(0,a.watch)((0,a.computed)(()=>{for(let e=d.value.length-1;e>=0;e--){let t=d.value[e].toolTimeline;if(t?.length)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.toolName!==`write_todos`)continue;let r=V(n);if(r)return r}}return null}),e=>{e?.todos?.length&&(A.value=e)},{immediate:!0});function re(e,t){let n=(t||``).trim();if(n)return n;let r=d.value.find(e=>e.key===f.value)?.toolTimeline?.find(t=>t.toolCallId===e);return r?.toolName?r.toolName:D.value?.review_configs.length===1?D.value.review_configs[0].action_name:``}function ie(e,t){let n=d.value.findIndex(t=>t.key===e);if(n===-1)return;let r=d.value[n];if(r.role!==`ai`)return;let i=[...r.toolTimeline??[]],a=r.segments?[...r.segments]:[],o=Date.now();t.review_configs.forEach((e,n)=>{let s=e.action_name;if(!s)return;let c=t.action_requests.find(e=>e.name===s),l={interruptId:t.interrupt_id,description:c?.description||``,args:c?.args??{},allowedDecisions:e.allowed_decisions,editContent:typeof c?.args?.content==`string`?String(c.args.content):``},u=-1;for(let e=i.length-1;e>=0;e--){let t=i[e];if(t.toolName===s&&t.status===`running`){u=e;break}}if(u!==-1){let e=i[u];i[u]={...e,status:`waiting`,approvalConfig:l};return}let d=`interrupt-${t.interrupt_id}-${n}`;i.push({toolCallId:d,toolName:s,title:s,status:`waiting`,stepNumber:i.length,startedAt:o,approvalConfig:l});let f=r.content.length;a=z(a,f,d)}),d.value[n]={...r,toolTimeline:i,segments:a,loading:!1}}function ae(e,t){let n=re(e,t);n&&be([{action_name:n,decision:`approve`}])}function oe(e,t){let n=re(e,t);n&&be([{action_name:n,decision:`reject`}])}function se(e,t,n){let r=re(e,t);r&&be([{action_name:r,decision:`edit`,edited_content:n||``}])}function ce(e=!1){f.value=``,l.value=``,o.value={},D.value=null,O.value=!1,k.value={},A.value=null,_.value=[],i(`update:modelValue`,``),u.value=!1,d.value=[],(e?x.value.map(e=>e.agent):M.value?[M.value.agent]:[]).forEach(e=>{e.stop(),e.reset()})}function le(e){l.value=e,i(`update:modelValue`,e)}async function ue(e){let t=(e??l.value).trim();if(!t||u.value||!M.value)return;let n=L(`user`),r=L(`ai`);f.value=r,D.value=null,O.value=!1,k.value={};let a={key:n,role:`user`,content:t};g.value.length>0&&(a.segments=[{type:`attachment`,attachments:g.value},{type:`text`,start:0,end:-1}]),d.value.push(a,{key:r,role:`ai`,content:``,loading:!0,toolTimeline:[]}),l.value=``,i(`update:modelValue`,``),u.value=!0,i(`submit`,t,p.value);try{await M.value.agent.ask(t,g.value.length>0?g.value:void 0);let e=d.value.findIndex(e=>e.key===r);e!==-1&&d.value[e].loading&&(d.value[e]={...d.value[e],content:d.value[e].content||`未收到响应,请重试`,loading:!1})}catch(e){let t=e instanceof Error?e.message:`请求失败`,n=d.value.find(e=>e.key===r)?.content||``;R(r,{content:n?`${n}\n\n请求失败:${t}`:`请求失败:${t}`,loading:!1})}finally{u.value=!1,D.value||(f.value=``)}_.value=[]}function de(){if(!u.value||!M.value)return;let e=f.value;e&&R(e,{loading:!1}),f.value=``,u.value=!1,M.value.agent.stop(),i(`cancel`)}function fe(){ce(),i(`reset`)}function pe(e){!e||e===p.value||(p.value=e,i(`update:agentKey`,e),ce(!0),i(`agentChange`,e))}let me=(e,t)=>{let n=f.value;n&&R(n,{content:t,loading:!1})};function he(e,t){let n=f.value;n&&R(n,{thinkingContent:t,loading:!1})}function ge(e){let t=f.value;t&&R(t,{blocks:[...e]})}let _e=()=>{let e=f.value;if(!e)return;let t=d.value.findIndex(t=>t.key===e);t!==-1&&d.value[t].loading&&(d.value[t]={...d.value[t],content:d.value[t].content||`已停止`,loading:!1})},ve=e=>{let t=f.value;t&&ee(t,e)},ye=e=>{let t=f.value;if(!t)return;D.value=e;let n={};for(let t of e.action_requests)n[t.name]=typeof t.args.content==`string`?t.args.content:``;k.value=n,ie(t,e),R(t,{loading:!1})};async function be(e){if(!M.value||O.value)return;let t=f.value;O.value=!0,D.value=null,t&&R(t,{loading:!1});try{await M.value.agent.resume(e),t&&R(t,{loading:!1})}catch(e){let n=e instanceof Error?e.message:`恢复失败`;t&&R(t,{content:`${d.value.find(e=>e.key===t)?.content||``}\n\n操作恢复失败:${n}`,loading:!1})}finally{O.value=!1,D.value||(f.value=``)}}return r.agents.forEach(w),t({handleReset:fe,sendMessage:ue,stop}),(0,a.onBeforeUnmount)(()=>{f.value=``,u.value&&M.value&&M.value.agent.stop(),x.value.forEach(T),g.value.forEach(e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)})}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,aV,[(0,a.createElementVNode)(`header`,oV,[(0,a.createElementVNode)(`div`,sV,[(0,a.createElementVNode)(`h2`,cV,(0,a.toDisplayString)(e.title),1),e.subtitle?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,lV,(0,a.toDisplayString)(e.subtitle),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`div`,uV,[(0,a.renderSlot)(t.$slots,`header-actions`,(0,a.normalizeProps)((0,a.guardReactiveProps)({handleReset:fe})),()=>[(0,a.createVNode)((0,a.unref)(Jg),{type:`primary`,size:`small`,disabled:u.value,onClick:fe},{default:(0,a.withCtx)(()=>[...n[3]||=[(0,a.createTextVNode)(` 新会话 `,-1)]]),_:1},8,[`disabled`])],!0)])]),A.value?((0,a.openBlock)(),(0,a.createBlock)(iV,{key:0,todos:A.value.todos},null,8,[`todos`])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,dV,[j.value.length===0?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,fV,[(0,a.createVNode)((0,a.unref)(QO),{class:`empty-icon`}),n[4]||=(0,a.createElementVNode)(`p`,{class:`empty-title`},`开始你的对话`,-1),I.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,pV,(0,a.toDisplayString)(I.value),1)):(0,a.createCommentVNode)(``,!0)])):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,mV,[(0,a.createVNode)((0,a.unref)(XI),{items:j.value,roles:e.roles,style:{width:`100%`},"auto-scroll":!0},{message:(0,a.withCtx)(r=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(r)),()=>[(0,a.createVNode)(Jz,{message:r.item,"expanded-tools":o.value,"tool-renderers":F.value,"interrupt-resolving":O.value,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents,onToggleExpand:s,onApprove:ae,onReject:oe,onEdit:n[0]||=(e,t,n)=>se(e,t,n)},null,8,[`message`,`expanded-tools`,`tool-renderers`,`interrupt-resolving`,`custom-html-tags`,`custom-components`])],!0)]),_:3},8,[`items`,`roles`])]))]),(0,a.createElementVNode)(`footer`,hV,[(0,a.createElementVNode)(`div`,gV,[(0,a.createVNode)((0,a.unref)(UL),{ref_key:`senderRef`,ref:m,value:l.value,placeholder:`输入问题,Enter 发送`,"submit-type":`enter`,loading:u.value,actions:!1,"onUpdate:value":le,onSubmit:ue,onCancel:de,onPasteFile:y},(0,a.createSlots)({footer:(0,a.withCtx)(({info:e})=>[(0,a.createElementVNode)(`div`,_V,[(0,a.createElementVNode)(`div`,vV,[(0,a.createVNode)(VR,{value:p.value,"built-in-agents":r.agents,disabled:u.value,"storage-key":r.agentPickerStorageKey,"onUpdate:value":pe,"onUpdate:agents":E},null,8,[`value`,`built-in-agents`,`disabled`,`storage-key`]),P.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Kh),{key:0,dot:g.value.length>0&&!h.value},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(ZD),{onClick:n[2]||=e=>h.value=!h.value})]),_:1},8,[`dot`])):(0,a.createCommentVNode)(``,!0),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(M.value?.footerControls,e=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.component),(0,a.mergeProps)({key:e.key,agent:M.value?.agent,"agent-option":M.value,disabled:u.value},{ref_for:!0},e.props),null,16,[`agent`,`agent-option`,`disabled`]))),128))]),(0,a.createElementVNode)(`div`,yV,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(u.value?e.components.LoadingButton:e.components.SendButton),{type:`primary`}))])])]),_:2},[P.value?{name:`header`,fn:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(UL).Header,{styles:{content:{padding:0}},open:h.value,onOpenChange:n[1]||=e=>h.value=e,"force-render":``},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(AR),{"before-upload":()=>!1,items:_.value,placeholder:b,"get-drop-container":()=>m.value?.$el,onChange:v},null,8,[`items`,`get-drop-container`])]),_:1},8,[`open`])]),key:`0`}:void 0]),1032,[`value`,`loading`])])])]))}}),[[`__scopeId`,`data-v-7d1dc6c2`]]),xV={class:`agent-chat`},SV={class:`agent-chat__sidebar-header`},CV={key:0,class:`agent-chat__state-tip`},wV={key:1,class:`agent-chat__state-tip agent-chat__state-tip--error`},TV={class:`agent-chat__main`},EV={key:0,class:`agent-chat__toolbar`},DV=BR((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agents:{},emptyHint:{default:`从左侧选择历史会话,或直接开始新的对话`},hideHistory:{type:Boolean},onAgentEvent:{},roles:{},title:{default:``}},emits:[`update:agentKey`],setup(e,{expose:t,emit:n,slots:r}){let i=e,o=n,s=(0,a.ref)([...i.agents]),c=(0,a.ref)(i.agentKey||i.agents[0]?.key||``),l=(0,a.computed)(()=>s.value.find(e=>e.key===c.value)??s.value[0]),u=(0,a.computed)(()=>i.hideHistory===void 0?l.value?.agent.supportsHistory?.()??!1:!i.hideHistory);(0,a.watch)(()=>i.agentKey,e=>{e&&e!==c.value&&E(e)});let d=(0,a.ref)(!1),f=(0,a.ref)(``),p=(0,a.ref)(!1),m=(0,a.ref)(``),h=(0,a.ref)([]),g=(0,a.ref)(``),_=(0,a.ref)(``),v=(0,a.ref)([]),y=(0,a.ref)(`session:new:${Date.now()}`),b=(0,a.ref)(!1),x=(0,a.computed)(()=>h.value.map(e=>({key:e.id,label:e.title||`新对话`}))),S=(0,a.computed)(()=>{let e=f.value.trim().toLowerCase();return e?x.value.filter(t=>t.label.toLowerCase().includes(e)):x.value});async function C(){if(l.value){p.value=!0,m.value=``;try{let e=await l.value.agent.listConversations();h.value=e.items}catch(e){m.value=e instanceof Error?e.message:`加载失败`}finally{p.value=!1}}}(0,a.onMounted)(()=>{u.value&&C()});function w(e){!e||e===c.value||E(e)}function T(e){if(s.value=e,!e.find(e=>e.key===c.value)){let t=e[0]?.key||``;t&&(c.value=t,o(`update:agentKey`,t))}}function E(e){l.value?.agent.stop(),l.value?.agent.reset(),c.value=e,o(`update:agentKey`,e),k(),u.value&&C()}function D(){return l.value?.agent}function O(){return c.value}function k(){g.value=``,_.value=``,v.value=[],y.value=`session:new:${Date.now()}`}function A(){d.value=!1,l.value?.agent.stop(),l.value?.agent.reset(),k()}async function j(e){if(e===g.value)return;d.value=!1,g.value=e;let t=h.value.find(t=>t.id===e);_.value=t?.title||`历史会话`,l.value?.agent.stop(),b.value=!0;try{let t=await l.value?.agent.getConversationDetail(e);v.value=t??[]}catch{v.value=[]}finally{b.value=!1}y.value=`session:${c.value}:${e}`}let M=(0,a.computed)(()=>i.title||_.value||l.value?.label||`AI 助手`),N=(0,a.computed)(()=>b.value?`正在加载历史消息…`:g.value?`已载入历史会话`:``),P=(0,a.h)(Dh,{size:32,style:{background:`#1677ff`,flexShrink:`0`}},()=>`AI`),F=(0,a.h)(Dh,{size:32,style:{background:`#22c55e`,flexShrink:`0`}},()=>`我`),I={ai:{placement:`start`,avatar:P,styles:{content:{background:`#fff`,border:`1px solid #e5e7eb`,borderBottomLeftRadius:`4px`,borderRadius:`12px`,color:`#1f2937`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}},user:{placement:`end`,avatar:F,styles:{content:{background:`#1677ff`,borderBottomRightRadius:`4px`,borderRadius:`12px`,color:`#fff`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}}},L=(0,a.computed)(()=>i.roles??I),R=(0,a.ref)();return t({reloadConversations:C,newChat:A,getCurrentAgentRuntime:D,getCurrentAgentKey:O,getActiveConversationId:()=>g.value,getHistoryMessages:()=>v.value,getConversations:()=>h.value,loadConversation:j,sendMessage:e=>R.value?.sendMessage(e),stop:()=>R.value?.stop()}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,xV,[u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`aside`,{key:0,class:(0,a.normalizeClass)([`agent-chat__sidebar`,{"is-open":d.value}])},[(0,a.createElementVNode)(`button`,{class:`agent-chat__close-btn`,"aria-label":`关闭侧边栏`,onClick:n[0]||=e=>d.value=!1},[(0,a.createVNode)((0,a.unref)($d))]),(0,a.createElementVNode)(`div`,SV,[n[5]||=(0,a.createElementVNode)(`span`,{class:`agent-chat__sidebar-title`},`历史会话`,-1),(0,a.createVNode)((0,a.unref)(Jg),{type:`text`,class:`agent-chat__new-btn`,disabled:p.value,onClick:A},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(zv))]),default:(0,a.withCtx)(()=>[n[4]||=(0,a.createTextVNode)(` 新建 `,-1)]),_:1},8,[`disabled`])]),(0,a.createVNode)((0,a.unref)(rw),{value:f.value,"onUpdate:value":n[1]||=e=>f.value=e,placeholder:`搜索对话…`,"allow-clear":``,class:`agent-chat__search`},{prefix:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(cf),{style:{color:`#94a3b8`}})]),_:1},8,[`value`]),p.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,CV,[(0,a.createVNode)((0,a.unref)(Gd),{style:{"margin-right":`6px`}}),n[6]||=(0,a.createTextVNode)(`加载中… `,-1)])):m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,wV,[(0,a.createVNode)((0,a.unref)(uk),{style:{"margin-right":`6px`}}),(0,a.createTextVNode)((0,a.toDisplayString)(m.value)+` `,1),(0,a.createVNode)((0,a.unref)(Jg),{size:`small`,type:`link`,onClick:C},{default:(0,a.withCtx)(()=>[...n[7]||=[(0,a.createTextVNode)(`重试`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(lL),{"active-key":g.value,items:S.value,class:`agent-chat__conv-list`,"on-active-change":j},null,8,[`active-key`,`items`])],2)):(0,a.createCommentVNode)(``,!0),d.value&&u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:1,class:`agent-chat__mask`,onClick:n[2]||=e=>d.value=!1})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,TV,[u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,EV,[(0,a.createVNode)((0,a.unref)(Jg),{class:`agent-chat__history-btn`,onClick:n[3]||=e=>d.value=!0},{default:(0,a.withCtx)(()=>[...n[8]||=[(0,a.createTextVNode)(` 历史会话`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)(bV,{ref_key:`chatPanelRef`,ref:R,"agent-key":c.value,agents:i.agents,roles:L.value,"session-key":y.value,"initial-messages":v.value,title:M.value,subtitle:N.value,"empty-hint":e.emptyHint,"on-agent-event":i.onAgentEvent,class:`agent-chat__panel`,"onUpdate:agentKey":w,"onUpdate:agents":T,onReset:A},(0,a.createSlots)({_:2},[r[`header-actions`]?{name:`header-actions`,fn:(0,a.withCtx)(e=>[(0,a.renderSlot)(t.$slots,`header-actions`,(0,a.normalizeProps)((0,a.guardReactiveProps)(e)),void 0,!0)]),key:`0`}:void 0,r.message?{name:`message`,fn:(0,a.withCtx)(e=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(e)),void 0,!0)]),key:`1`}:void 0]),1032,[`agent-key`,`agents`,`roles`,`session-key`,`initial-messages`,`title`,`subtitle`,`empty-hint`,`on-agent-event`])])]))}}),[[`__scopeId`,`data-v-2041f5e6`]]);async function OV(e){try{let t=await e.text(),n=JSON.parse(t);return typeof n?.message==`string`?n.message:typeof n?.error==`string`?n.error:t||`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}function kV(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function AV(e){if(!e.startsWith(`data:`))return null;let t=e.slice(5).trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}function jV(e){let t=e.toLowerCase();return t.includes(`think`)||t.includes(`reasoning`)||t.includes(`思考`)}var MV=class{constructor(){this.blocks=[]}addReasoning(e){let t=this.blocks[this.blocks.length-1];if(t&&t.type===`reasoning`){t.text+=e;return}this.blocks.push({type:`reasoning`,text:e})}addReply(e){let t=this.blocks[this.blocks.length-1];if(t&&t.type===`text`){t.text+=e;return}this.blocks.push({type:`text`,text:e})}addToolCall(e){return this.blocks.some(t=>t.type===`tool_call`&&t.toolCallId===e.toolCallId)?!1:(this.blocks.push(e),!0)}findToolCallBlock(e){return this.blocks.find(t=>t.type===`tool_call`&&t.toolCallId===e)}finish(){}reset(){this.blocks=[]}},NV=class extends o{constructor({endpoint:e,historyEndpoint:t,resumeEndpoint:n,user:r,app:i,initialUserContexts:a=[],requestHeaders:o={},prepareRequestBody:s}){super(),this.abortController=null,this.activeSubAgentCallId=``,this.conversationId=``,this.initialUserContexts=[],this.mainAccumulator=new MV,this.pendingTaskArgs=new Map,this.prepareRequestBody=null,this.replyParts=[],this.requestHeaders={},this.resumeEndpoint=void 0,this.subAccumulator=null,this.thinkingParts=[],this.endpoint=e,this.historyEndpoint=t,this.user=r,this.app=i,this.resumeEndpoint=n,this.requestHeaders={...o},this.prepareRequestBody=s??null,this.setInitialUserContexts(a)}addInitialUserContext(e){let t=e.trim();t&&this.initialUserContexts.push(t)}async ask(e,t){let n=new AbortController;this.abortController=n,this.replyParts=[],this.thinkingParts=[],this.activeSubAgentCallId=``,this.pendingTaskArgs.clear(),this.mainAccumulator.reset(),this.subAccumulator=null;let r=this.initialUserContexts.length>0?`${this.initialUserContexts.join(`
|
|
368
|
+
`?(p+=`\\n`,t+=2):(p+=n,t+=2)}else{let n=e.charAt(t);n===`"`&&e[t-1]!==`\\`?(p+=`\\${n}`,t++):yB(n)?(p+=RB[n],t++):(uB(n)||D(n),p+=n,t++)}o&&f()}}return!1}function v(){let r=!1;for(a();e[t]===`+`;){r=!0,t++,a(),n=OB(n,`"`,!0);let e=n.length;n=_()?AB(n,e,1):kB(n,`"`)}return r}function y(){let r=t,i=``,a=!1;for(e[t]===`-`&&(i+=e[t],t++,!lB(e[t])&&E()&&(i+=`0`)),e[t]===`0`&&lB(e[t+1])&&(a=!0);lB(e[t]);)i+=e[t],t++;if(e[t]===`.`)for((i===``||i===`-`)&&(i+=`0`),i+=e[t],t++,lB(e[t])||(i+=`0`);lB(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++),lB(e[t])||(i+=`0`);lB(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&&!pB(e[t+r.length])?(n+=i,t+=r.length,!0):!1}function S(r){let a=t;if(fB(e[t])){for(;t<e.length&&pB(e[t]);)t++;let n=t;for(;bB(e,n);)n++;if(e[n]===`(`)return t=n+1,i(),e[t]===`)`&&(t++,e[t]===`;`&&t++),!0}for(;t<e.length&&!gB(e[t])&&!CB(e[t])&&(!r||e[t]!==`:`);)t++;if(e[t-1]===`:`&&mB.test(e.substring(a,t+2)))for(;t<e.length&&hB.test(e[t]);)t++;if(t>a){for(;bB(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&&bB(e,n);)n--;return n}function T(t){let n=t+1;for(;n<e.length&&bB(e,n);)n++;return n>=e.length||dB(e[n])}function E(){return t>=e.length||dB(e[t])||bB(e,t)}function D(e){throw new Yz(`Invalid character ${JSON.stringify(e)}`,t)}function O(){throw new Yz(`Unexpected character ${JSON.stringify(e[t])}`,t)}function k(){throw new Yz(`Unexpected end of json string`,e.length)}function A(){throw new Yz(`Object key expected`,t)}function j(){throw new Yz(`Colon expected`,t)}function M(){throw new Yz(`Invalid unicode character "${e.slice(t,t+6)}"`,t)}}function VB(e,t){return e[t]===`*`&&e[t+1]===`/`}var HB=[`role`,`tabindex`],UB={class:`tool-call-node__prefix`},WB={class:`tool-call-node__title`},GB={key:0,class:`tool-call-node__toggle`},KB={key:0,class:`smdr__body`},qB={key:0,class:`smdr__error`},JB={class:`smdr__tabs`},YB=[`onClick`],XB={class:`smdr__content`},ZB=BR((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(BB(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`,UB,[n.tool.status===`running`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Gd),{key:0,class:`tool-call-node__prefix-icon is-spinning`})):n.tool.status===`success`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(dm),{key:1,class:`tool-call-node__prefix-icon`})):n.tool.status===`error`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Cm),{key:2,class:`tool-call-node__prefix-icon`})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(sC),{key:3,class:`tool-call-node__prefix-icon is-waiting`})),(0,a.createElementVNode)(`span`,WB,(0,a.toDisplayString)(c.value),1)]),s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`span`,GB,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(n.expanded?(0,a.unref)(yT):(0,a.unref)(Vd)),{class:`tool-call-node__toggle-icon`}))])):(0,a.createCommentVNode)(``,!0)],42,HB),n.expanded&&s.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,KB,[n.tool.status===`error`?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,qB,(0,a.toDisplayString)(n.tool.error||`执行失败`),1)):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:1},[(0,a.createElementVNode)(`div`,JB,[((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,YB))),128))]),(0,a.createElementVNode)(`div`,XB,[((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)(XR,{key:e.key,content:e.content},null,8,[`content`])),[[a.vShow,l.value===e.key]])),128))])],64))])):(0,a.createCommentVNode)(``,!0)],2))}}),[[`__scopeId`,`data-v-d1dff106`]]),QB={save_module_docs_tool:ZB},$B={class:`todos-top-panel`},eV={class:`todos-top-panel__header`},tV={class:`todos-top-panel__meta`},nV={class:`todos-top-panel__list`},rV={class:`todos-top-panel__text`},iV=BR((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`,$B,[(0,a.createElementVNode)(`header`,eV,[i[0]||=(0,a.createElementVNode)(`span`,{class:`todos-top-panel__title`},`任务清单`,-1),(0,a.createElementVNode)(`span`,tV,[(0,a.createVNode)((0,a.unref)(dm),{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`,nV,[((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)(dm),{key:0})):r(e.status)===`in_progress`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(ok),{key:1,class:`is-rotating`})):r(e.status)===`cancelled`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(nk),{key:2})):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(sC),{key:3}))],2),(0,a.createElementVNode)(`span`,rV,(0,a.toDisplayString)(e.title),1)]))),128))])]))}}),[[`__scopeId`,`data-v-d03a50e5`]]),aV={class:`chat-panel`},oV={class:`chat-header`},sV={class:`header-meta`},cV={class:`conv-heading`},lV={key:0,class:`conv-subheading`},uV={class:`header-actions`},dV={class:`chat-body`},fV={key:0,class:`empty-state`},pV={key:0,class:`empty-sub`},mV={key:1,class:`messages-wrapper`},hV={class:`input-footer`},gV={class:`input-panel`},_V={class:`sender-footer`},vV={class:`sender-footer__left`},yV={class:`sender-footer__right`},bV=BR((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agentPickerStorageKey:{default:`chat_panel_agent`},agents:{},customComponents:{},customHtmlTags:{},defaultToolRenderers:{default:()=>QB},emptyHint:{default:``},initialMessages:{default:()=>[]},modelValue:{default:``},onAgentEvent:{},roles:{},sessionKey:{default:``},subtitle:{default:``},title:{default:`对话助手`}},emits:[`update:modelValue`,`update:agentKey`,`submit`,`cancel`,`reset`,`agentChange`,`update:agents`],setup(e,{expose:t,emit:n}){let r=e,i=n,o=(0,a.ref)({});function s(e){o.value={...o.value,[e]:!o.value[e]}}function c(e){return e.map(e=>({...e,toolTimeline:e.toolTimeline?.map(e=>({...e})),segments:e.segments?.map(e=>({...e}))}))}let l=(0,a.ref)(r.modelValue||``),u=(0,a.ref)(!1),d=(0,a.ref)(c(r.initialMessages)),f=(0,a.ref)(``),p=(0,a.ref)(r.agentKey||r.agents[0]?.key||``),m=(0,a.ref)(),h=(0,a.ref)(!1),g=(0,a.computed)(()=>_.value.filter(e=>e.status!==`error`).map(e=>({id:e.uid,name:e.name,size:e.size||0,type:e.type||`application/octet-stream`,url:e.url||e.thumbUrl}))),_=(0,a.ref)([]);async function v(e){_.value=e.fileList;for(let t of e.fileList){if(t.url&&!t.url.startsWith(`blob:`))continue;let e=t.originFileObj;if(!e||!M.value?.agent.uploadFile)continue;let n=_.value.findIndex(e=>e.uid===t.uid);n!==-1&&(_.value[n]={..._.value[n],status:`uploading`});try{let n=await M.value.agent.uploadFile(e),r=_.value.findIndex(e=>e.uid===t.uid);r!==-1&&(_.value[r]={..._.value[r],uid:n.id,url:n.url,thumbUrl:n.url,status:`done`})}catch{let e=_.value.findIndex(e=>e.uid===t.uid);e!==-1&&(_.value[e]={..._.value[e],status:`error`})}}}function y(e,t){if(!P.value)return;let n=[...t];if(n.length===0)return;h.value=!0;let r=n.map((e,t)=>({uid:`paste-${Date.now()}-${t}-${Math.random().toString(36).slice(2,8)}`,name:e.name,status:`uploading`,originFileObj:e,type:e.type,size:e.size}));v({file:r[r.length-1],fileList:[..._.value,...r]})}function b(e){return e===`drop`?{title:`释放文件`}:{icon:(0,a.h)(JO),title:`上传文件`,description:`点击或拖拽文件到此区域上传`}}let x=(0,a.ref)([...r.agents]),S=new Map;function C(e){return{replyChange:(t,n)=>{r.onAgentEvent?.({event:`replyChange`,agentKey:e.key,args:[t,n]}),me(t,n)},stop:()=>{r.onAgentEvent?.({event:`stop`,agentKey:e.key,args:[]}),_e()},toolCall:t=>{r.onAgentEvent?.({event:`toolCall`,agentKey:e.key,args:[t]}),ve(t)},interrupt:t=>{r.onAgentEvent?.({event:`interrupt`,agentKey:e.key,args:[t]}),ye(t)}}}function w(e){if(S.has(e.key))return;let t=C(e);S.set(e.key,t),e.agent.on(`replyChange`,t.replyChange),e.agent.on(`stop`,t.stop),e.agent.on(`toolCall`,t.toolCall),e.agent.on(`thinkingChange`,he),e.agent.on(`blocksUpdate`,ge);let n=e.agent;typeof n.onInterrupt==`function`&&n.onInterrupt(t.interrupt)}function T(e){let t=S.get(e.key);if(!t)return;e.agent.off(`replyChange`,t.replyChange),e.agent.off(`stop`,t.stop),e.agent.off(`toolCall`,t.toolCall),e.agent.off(`thinkingChange`,he),e.agent.off(`blocksUpdate`,ge);let n=e.agent;typeof n.offInterrupt==`function`&&n.offInterrupt(t.interrupt),S.delete(e.key)}function E(e){let t=x.value;t.forEach(t=>{e.find(e=>e.key===t.key)||T(t)}),e.forEach(e=>{t.find(t=>t.key===e.key)||w(e)}),x.value=e,i(`update:agents`,e),e.find(e=>e.key===p.value)||(p.value=e[0]?.key||``,i(`update:agentKey`,p.value))}let D=(0,a.ref)(null),O=(0,a.ref)(!1),k=(0,a.ref)({}),A=(0,a.ref)(null),j=(0,a.computed)(()=>d.value),M=(0,a.computed)(()=>x.value.find(e=>e.key===p.value)||x.value[0]||null),N=(0,a.computed)(()=>M.value?.label||`未选择`),P=(0,a.computed)(()=>typeof M.value?.agent.uploadFile==`function`),F=(0,a.computed)(()=>({...r.defaultToolRenderers,...M.value?.toolRenderers})),I=(0,a.computed)(()=>Bf(r.emptyHint)?`当前 Agent:${N.value},输入问题后按 Enter 发送`:r.emptyHint);(0,a.watch)(()=>r.modelValue,e=>{l.value=e||``}),(0,a.watch)(()=>r.agentKey,e=>{e&&(p.value=e)}),(0,a.watch)(()=>r.sessionKey,()=>{f.value=``,u.value=!1,o.value={},d.value=c(r.initialMessages),A.value=null},{immediate:!0});function L(e){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function R(e,t){let n=d.value.findIndex(t=>t.key===e);n!==-1&&(d.value[n]={...d.value[n],...t})}function z(e,t,n){let r=[...e],i=t;if(r.length===0)r.push({type:`text`,start:0,end:i});else for(let e=r.length-1;e>=0;e--){let t=r[e];if(t.type===`text`&&t.end===-1){r[e]={...t,end:i};break}}return r.push({type:`tool`,toolCallId:n},{type:`text`,start:i,end:-1}),r}function ee(e,t){let n=d.value.findIndex(t=>t.key===e);if(n===-1)return;let r=d.value[n];if(r.role!==`ai`)return;let i=[...r.toolTimeline??[]],a=i.findIndex(e=>e.toolCallId===t.toolCallId),o=r.segments?[...r.segments]:[];if(a===-1&&(o=z(o,r.content.length,t.toolCallId)),a===-1)i.push({toolCallId:t.toolCallId,toolName:t.toolName,title:t.title,status:t.status,input:t.input,output:t.output,error:t.error,stepNumber:t.stepNumber,startedAt:t.timestamp,durationMs:t.durationMs,approvalConfig:t.approvalConfig?{interruptId:t.approvalConfig.interruptId,description:t.approvalConfig.description,args:t.input??{},allowedDecisions:t.approvalConfig.allowedDecisions,editContent:``}:void 0});else{let e=i[a];i[a]={...e,toolName:t.toolName||e.toolName,title:t.title??e.title,status:t.status,input:t.input??e.input,output:t.output??e.output,error:t.error??e.error,stepNumber:t.stepNumber??e.stepNumber,durationMs:t.durationMs??e.durationMs,approvalConfig:t.approvalConfig&&!e.approvalConfig?{interruptId:t.approvalConfig.interruptId,description:t.approvalConfig.description,args:t.input??{},allowedDecisions:t.approvalConfig.allowedDecisions,editContent:``}:e.approvalConfig}}d.value[n]={...r,toolTimeline:i,segments:o,loading:!1}}function te(e){let t=e.trim();if(!t)return e;try{return JSON.parse(t)}catch{return e}}function ne(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 B(e){if(typeof e!=`string`)return[];let t=e.trim();if(!t)return[];let n=te(t);if(typeof n==`string`)return[];if(Array.isArray(n))return n.map((e,t)=>ne(e,t));if(n&&typeof n==`object`){let e=n.todos;if(Array.isArray(e))return e.map((e,t)=>ne(e,t))}return[]}function V(e){let t=B(e.input),n=t.length>0?t:B(e.output);if(n.length===0)return null;let r=n.filter(e=>String(e.title||``).trim().length>0);return r.length===0?null:{todos:r}}(0,a.watch)((0,a.computed)(()=>{for(let e=d.value.length-1;e>=0;e--){let t=d.value[e].toolTimeline;if(t?.length)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.toolName!==`write_todos`)continue;let r=V(n);if(r)return r}}return null}),e=>{e?.todos?.length&&(A.value=e)},{immediate:!0});function re(e,t){let n=(t||``).trim();if(n)return n;let r=d.value.find(e=>e.key===f.value)?.toolTimeline?.find(t=>t.toolCallId===e);return r?.toolName?r.toolName:D.value?.review_configs.length===1?D.value.review_configs[0].action_name:``}function ie(e,t){let n=d.value.findIndex(t=>t.key===e);if(n===-1)return;let r=d.value[n];if(r.role!==`ai`)return;let i=[...r.toolTimeline??[]],a=r.segments?[...r.segments]:[],o=Date.now();t.review_configs.forEach((e,n)=>{let s=e.action_name;if(!s)return;let c=t.action_requests.find(e=>e.name===s),l={interruptId:t.interrupt_id,description:c?.description||``,args:c?.args??{},allowedDecisions:e.allowed_decisions,editContent:typeof c?.args?.content==`string`?String(c.args.content):``},u=-1;for(let e=i.length-1;e>=0;e--){let t=i[e];if(t.toolName===s&&t.status===`running`){u=e;break}}if(u!==-1){let e=i[u];i[u]={...e,status:`waiting`,approvalConfig:l};return}let d=`interrupt-${t.interrupt_id}-${n}`;i.push({toolCallId:d,toolName:s,title:s,status:`waiting`,stepNumber:i.length,startedAt:o,approvalConfig:l});let f=r.content.length;a=z(a,f,d)}),d.value[n]={...r,toolTimeline:i,segments:a,loading:!1}}function ae(e,t){let n=re(e,t);n&&be([{action_name:n,decision:`approve`}])}function oe(e,t){let n=re(e,t);n&&be([{action_name:n,decision:`reject`}])}function se(e,t,n){let r=re(e,t);r&&be([{action_name:r,decision:`edit`,edited_content:n||``}])}function ce(e=!1){f.value=``,l.value=``,o.value={},D.value=null,O.value=!1,k.value={},A.value=null,_.value=[],i(`update:modelValue`,``),u.value=!1,d.value=[],(e?x.value.map(e=>e.agent):M.value?[M.value.agent]:[]).forEach(e=>{e.stop(),e.reset()})}function le(e){l.value=e,i(`update:modelValue`,e)}async function ue(e){let t=(e??l.value).trim();if(!t||u.value||!M.value)return;let n=L(`user`),r=L(`ai`);f.value=r,D.value=null,O.value=!1,k.value={};let a={key:n,role:`user`,content:t};g.value.length>0&&(a.segments=[{type:`attachment`,attachments:g.value},{type:`text`,start:0,end:-1}]),d.value.push(a,{key:r,role:`ai`,content:``,loading:!0,toolTimeline:[]}),l.value=``,i(`update:modelValue`,``),u.value=!0,i(`submit`,t,p.value);try{await M.value.agent.ask(t,g.value.length>0?g.value:void 0);let e=d.value.findIndex(e=>e.key===r);e!==-1&&d.value[e].loading&&(d.value[e]={...d.value[e],content:d.value[e].content||`未收到响应,请重试`,loading:!1})}catch(e){let t=e instanceof Error?e.message:`请求失败`,n=d.value.find(e=>e.key===r)?.content||``;R(r,{content:n?`${n}\n\n请求失败:${t}`:`请求失败:${t}`,loading:!1})}finally{u.value=!1,D.value||(f.value=``)}_.value=[]}function de(){if(!u.value||!M.value)return;let e=f.value;e&&R(e,{loading:!1}),f.value=``,u.value=!1,M.value.agent.stop(),i(`cancel`)}function fe(){ce(),i(`reset`)}function pe(e){!e||e===p.value||(p.value=e,i(`update:agentKey`,e),ce(!0),i(`agentChange`,e))}let me=(e,t)=>{let n=f.value;n&&R(n,{content:t,loading:!1})};function he(e,t){let n=f.value;n&&R(n,{thinkingContent:t,loading:!1})}function ge(e){let t=f.value;t&&R(t,{blocks:[...e]})}let _e=()=>{let e=f.value;if(!e)return;let t=d.value.findIndex(t=>t.key===e);t!==-1&&d.value[t].loading&&(d.value[t]={...d.value[t],content:d.value[t].content||`已停止`,loading:!1})},ve=e=>{let t=f.value;t&&ee(t,e)},ye=e=>{let t=f.value;if(!t)return;D.value=e;let n={};for(let t of e.action_requests)n[t.name]=typeof t.args.content==`string`?t.args.content:``;k.value=n,ie(t,e),R(t,{loading:!1})};async function be(e){if(!M.value||O.value)return;let t=f.value;O.value=!0,D.value=null,t&&R(t,{loading:!1});try{await M.value.agent.resume(e),t&&R(t,{loading:!1})}catch(e){let n=e instanceof Error?e.message:`恢复失败`;t&&R(t,{content:`${d.value.find(e=>e.key===t)?.content||``}\n\n操作恢复失败:${n}`,loading:!1})}finally{O.value=!1,D.value||(f.value=``)}}return r.agents.forEach(w),t({handleReset:fe,sendMessage:ue,stop}),(0,a.onBeforeUnmount)(()=>{f.value=``,u.value&&M.value&&M.value.agent.stop(),x.value.forEach(T),g.value.forEach(e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)})}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`section`,aV,[(0,a.createElementVNode)(`header`,oV,[(0,a.createElementVNode)(`div`,sV,[(0,a.createElementVNode)(`h2`,cV,(0,a.toDisplayString)(e.title),1),e.subtitle?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,lV,(0,a.toDisplayString)(e.subtitle),1)):(0,a.createCommentVNode)(``,!0)]),(0,a.createElementVNode)(`div`,uV,[(0,a.renderSlot)(t.$slots,`header-actions`,(0,a.normalizeProps)((0,a.guardReactiveProps)({handleReset:fe})),()=>[(0,a.createVNode)((0,a.unref)(Jg),{type:`primary`,size:`small`,disabled:u.value,onClick:fe},{default:(0,a.withCtx)(()=>[...n[3]||=[(0,a.createTextVNode)(` 新会话 `,-1)]]),_:1},8,[`disabled`])],!0)])]),A.value?((0,a.openBlock)(),(0,a.createBlock)(iV,{key:0,todos:A.value.todos},null,8,[`todos`])):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,dV,[j.value.length===0?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,fV,[(0,a.createVNode)((0,a.unref)(QO),{class:`empty-icon`}),n[4]||=(0,a.createElementVNode)(`p`,{class:`empty-title`},`开始你的对话`,-1),I.value?((0,a.openBlock)(),(0,a.createElementBlock)(`p`,pV,(0,a.toDisplayString)(I.value),1)):(0,a.createCommentVNode)(``,!0)])):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,mV,[(0,a.createVNode)((0,a.unref)(XI),{items:j.value,roles:e.roles,style:{width:`100%`},"auto-scroll":!0},{message:(0,a.withCtx)(r=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(r)),()=>[(0,a.createVNode)(Jz,{message:r.item,"expanded-tools":o.value,"tool-renderers":F.value,"interrupt-resolving":O.value,"custom-html-tags":e.customHtmlTags,"custom-components":e.customComponents,onToggleExpand:s,onApprove:ae,onReject:oe,onEdit:n[0]||=(e,t,n)=>se(e,t,n)},null,8,[`message`,`expanded-tools`,`tool-renderers`,`interrupt-resolving`,`custom-html-tags`,`custom-components`])],!0)]),_:3},8,[`items`,`roles`])]))]),(0,a.createElementVNode)(`footer`,hV,[(0,a.createElementVNode)(`div`,gV,[(0,a.createVNode)((0,a.unref)(UL),{ref_key:`senderRef`,ref:m,value:l.value,placeholder:`输入问题,Enter 发送`,"submit-type":`enter`,loading:u.value,actions:!1,"onUpdate:value":le,onSubmit:ue,onCancel:de,onPasteFile:y},(0,a.createSlots)({footer:(0,a.withCtx)(({info:e})=>[(0,a.createElementVNode)(`div`,_V,[(0,a.createElementVNode)(`div`,vV,[(0,a.createVNode)(VR,{value:p.value,"built-in-agents":r.agents,disabled:u.value,"storage-key":r.agentPickerStorageKey,"onUpdate:value":pe,"onUpdate:agents":E},null,8,[`value`,`built-in-agents`,`disabled`,`storage-key`]),P.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(Kh),{key:0,dot:g.value.length>0&&!h.value},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(ZD),{onClick:n[2]||=e=>h.value=!h.value})]),_:1},8,[`dot`])):(0,a.createCommentVNode)(``,!0),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(M.value?.footerControls,e=>((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(e.component),(0,a.mergeProps)({key:e.key,agent:M.value?.agent,"agent-option":M.value,disabled:u.value},{ref_for:!0},e.props),null,16,[`agent`,`agent-option`,`disabled`]))),128))]),(0,a.createElementVNode)(`div`,yV,[((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)(u.value?e.components.LoadingButton:e.components.SendButton),{type:`primary`}))])])]),_:2},[P.value?{name:`header`,fn:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(UL).Header,{styles:{content:{padding:0}},open:h.value,onOpenChange:n[1]||=e=>h.value=e,"force-render":``},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(AR),{"before-upload":()=>!1,items:_.value,placeholder:b,"get-drop-container":()=>m.value?.$el,onChange:v},null,8,[`items`,`get-drop-container`])]),_:1},8,[`open`])]),key:`0`}:void 0]),1032,[`value`,`loading`])])])]))}}),[[`__scopeId`,`data-v-7d1dc6c2`]]),xV={class:`agent-chat`},SV={class:`agent-chat__sidebar-header`},CV={key:0,class:`agent-chat__state-tip`},wV={key:1,class:`agent-chat__state-tip agent-chat__state-tip--error`},TV={class:`agent-chat__main`},EV={key:0,class:`agent-chat__toolbar`},DV=BR((0,a.defineComponent)({__name:`index`,props:{agentKey:{default:``},agentPickerStorageKey:{},agents:{},customComponents:{},customHtmlTags:{},defaultToolRenderers:{},emptyHint:{default:`从左侧选择历史会话,或直接开始新的对话`},hideHistory:{type:Boolean},modelValue:{},onAgentEvent:{},roles:{},title:{default:``}},emits:[`update:agentKey`,`update:modelValue`,`submit`,`cancel`,`agentChange`,`update:agents`],setup(e,{expose:t,emit:n,slots:r}){let i=e,o=n,s=(0,a.ref)([...i.agents]),c=(0,a.ref)(i.agentKey||i.agents[0]?.key||``),l=(0,a.computed)(()=>s.value.find(e=>e.key===c.value)??s.value[0]),u=(0,a.computed)(()=>i.hideHistory===void 0?l.value?.agent.supportsHistory?.()??!1:!i.hideHistory);(0,a.watch)(()=>i.agentKey,e=>{e&&e!==c.value&&E(e)});let d=(0,a.ref)(!1),f=(0,a.ref)(``),p=(0,a.ref)(!1),m=(0,a.ref)(``),h=(0,a.ref)([]),g=(0,a.ref)(``),_=(0,a.ref)(``),v=(0,a.ref)([]),y=(0,a.ref)(`session:new:${Date.now()}`),b=(0,a.ref)(!1),x=(0,a.computed)(()=>h.value.map(e=>({key:e.id,label:e.title||`新对话`}))),S=(0,a.computed)(()=>{let e=f.value.trim().toLowerCase();return e?x.value.filter(t=>t.label.toLowerCase().includes(e)):x.value});async function C(){if(l.value){p.value=!0,m.value=``;try{let e=await l.value.agent.listConversations();h.value=e.items}catch(e){m.value=e instanceof Error?e.message:`加载失败`}finally{p.value=!1}}}(0,a.onMounted)(()=>{u.value&&C()});function w(e){!e||e===c.value||E(e)}function T(e){if(s.value=e,!e.some(e=>e.key===c.value)){let t=e[0]?.key||``;t&&(c.value=t,o(`update:agentKey`,t))}}function E(e){l.value?.agent.stop(),l.value?.agent.reset(),c.value=e,o(`update:agentKey`,e),k(),u.value&&C()}function D(){return l.value?.agent}function O(){return c.value}function k(){g.value=``,_.value=``,v.value=[],y.value=`session:new:${Date.now()}`}function A(){d.value=!1,l.value?.agent.stop(),l.value?.agent.reset(),k()}async function j(e){if(e===g.value)return;d.value=!1,g.value=e;let t=h.value.find(t=>t.id===e);_.value=t?.title||`历史会话`,l.value?.agent.stop(),b.value=!0;try{let t=await l.value?.agent.getConversationDetail(e);v.value=t??[]}catch{v.value=[]}finally{b.value=!1}y.value=`session:${c.value}:${e}`}let M=(0,a.computed)(()=>i.title||_.value||l.value?.label||`AI 助手`),N=(0,a.computed)(()=>b.value?`正在加载历史消息…`:g.value?`已载入历史会话`:``),P=(0,a.h)(Dh,{size:32,style:{background:`#1677ff`,flexShrink:`0`}},()=>`AI`),F=(0,a.h)(Dh,{size:32,style:{background:`#22c55e`,flexShrink:`0`}},()=>`我`),I={ai:{placement:`start`,avatar:P,styles:{content:{background:`#fff`,border:`1px solid #e5e7eb`,borderBottomLeftRadius:`4px`,borderRadius:`12px`,color:`#1f2937`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}},user:{placement:`end`,avatar:F,styles:{content:{background:`#1677ff`,borderBottomRightRadius:`4px`,borderRadius:`12px`,color:`#fff`,fontSize:`14px`,lineHeight:`1.65`,padding:`0px 16px`,maxWidth:`74%`}}}},L=(0,a.computed)(()=>i.roles??I),R=(0,a.ref)();return t({reloadConversations:C,newChat:A,getCurrentAgentRuntime:D,getCurrentAgentKey:O,getActiveConversationId:()=>g.value,getHistoryMessages:()=>v.value,getConversations:()=>h.value,loadConversation:j,sendMessage:e=>R.value?.sendMessage(e),stop:()=>R.value?.stop()}),(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,xV,[u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`aside`,{key:0,class:(0,a.normalizeClass)([`agent-chat__sidebar`,{"is-open":d.value}])},[(0,a.createElementVNode)(`button`,{class:`agent-chat__close-btn`,"aria-label":`关闭侧边栏`,onClick:n[0]||=e=>d.value=!1},[(0,a.createVNode)((0,a.unref)($d))]),(0,a.createElementVNode)(`div`,SV,[n[9]||=(0,a.createElementVNode)(`span`,{class:`agent-chat__sidebar-title`},`历史会话`,-1),(0,a.createVNode)((0,a.unref)(Jg),{type:`text`,class:`agent-chat__new-btn`,disabled:p.value,onClick:A},{icon:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(zv))]),default:(0,a.withCtx)(()=>[n[8]||=(0,a.createTextVNode)(` 新建 `,-1)]),_:1},8,[`disabled`])]),(0,a.createVNode)((0,a.unref)(rw),{value:f.value,"onUpdate:value":n[1]||=e=>f.value=e,placeholder:`搜索对话…`,"allow-clear":``,class:`agent-chat__search`},{prefix:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(cf),{style:{color:`#94a3b8`}})]),_:1},8,[`value`]),p.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,CV,[(0,a.createVNode)((0,a.unref)(Gd),{style:{"margin-right":`6px`}}),n[10]||=(0,a.createTextVNode)(`加载中… `,-1)])):m.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,wV,[(0,a.createVNode)((0,a.unref)(uk),{style:{"margin-right":`6px`}}),(0,a.createTextVNode)((0,a.toDisplayString)(m.value)+` `,1),(0,a.createVNode)((0,a.unref)(Jg),{size:`small`,type:`link`,onClick:C},{default:(0,a.withCtx)(()=>[...n[11]||=[(0,a.createTextVNode)(`重试`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)((0,a.unref)(lL),{"active-key":g.value,items:S.value,class:`agent-chat__conv-list`,"on-active-change":j},null,8,[`active-key`,`items`])],2)):(0,a.createCommentVNode)(``,!0),d.value&&u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:1,class:`agent-chat__mask`,onClick:n[2]||=e=>d.value=!1})):(0,a.createCommentVNode)(``,!0),(0,a.createElementVNode)(`section`,TV,[u.value?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,EV,[(0,a.createVNode)((0,a.unref)(Jg),{class:`agent-chat__history-btn`,onClick:n[3]||=e=>d.value=!0},{default:(0,a.withCtx)(()=>[...n[12]||=[(0,a.createTextVNode)(` 历史会话`,-1)]]),_:1})])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)(bV,{ref_key:`chatPanelRef`,ref:R,"agent-key":c.value,"agent-picker-storage-key":i.agentPickerStorageKey,agents:i.agents,"custom-components":i.customComponents,"custom-html-tags":i.customHtmlTags,"default-tool-renderers":i.defaultToolRenderers,"empty-hint":e.emptyHint,"initial-messages":v.value,"model-value":i.modelValue,"on-agent-event":i.onAgentEvent,roles:L.value,"session-key":y.value,subtitle:N.value,title:M.value,class:`agent-chat__panel`,"onUpdate:agentKey":w,"onUpdate:agents":T,"onUpdate:modelValue":n[4]||=e=>o(`update:modelValue`,e),onSubmit:n[5]||=(e,t)=>o(`submit`,e,t),onCancel:n[6]||=()=>o(`cancel`),onAgentChange:n[7]||=e=>o(`agentChange`,e),onReset:A},(0,a.createSlots)({_:2},[r[`header-actions`]?{name:`header-actions`,fn:(0,a.withCtx)(e=>[(0,a.renderSlot)(t.$slots,`header-actions`,(0,a.normalizeProps)((0,a.guardReactiveProps)(e)),void 0,!0)]),key:`0`}:void 0,r.message?{name:`message`,fn:(0,a.withCtx)(e=>[(0,a.renderSlot)(t.$slots,`message`,(0,a.normalizeProps)((0,a.guardReactiveProps)(e)),void 0,!0)]),key:`1`}:void 0]),1032,[`agent-key`,`agent-picker-storage-key`,`agents`,`custom-components`,`custom-html-tags`,`default-tool-renderers`,`empty-hint`,`initial-messages`,`model-value`,`on-agent-event`,`roles`,`session-key`,`subtitle`,`title`])])]))}}),[[`__scopeId`,`data-v-9e2afe3e`]]);async function OV(e){try{let t=await e.text(),n=JSON.parse(t);return typeof n?.message==`string`?n.message:typeof n?.error==`string`?n.error:t||`HTTP ${e.status}`}catch{return`HTTP ${e.status}`}}function kV(e){if(e instanceof Error)return e.message;if(typeof e==`string`)return e;try{return JSON.stringify(e)}catch{return String(e)}}function AV(e){if(!e.startsWith(`data:`))return null;let t=e.slice(5).trim();if(!t)return null;try{return JSON.parse(t)}catch{return null}}function jV(e){let t=e.toLowerCase();return t.includes(`think`)||t.includes(`reasoning`)||t.includes(`思考`)}var MV=class{constructor(){this.blocks=[]}addReasoning(e){let t=this.blocks[this.blocks.length-1];if(t&&t.type===`reasoning`){t.text+=e;return}this.blocks.push({type:`reasoning`,text:e})}addReply(e){let t=this.blocks[this.blocks.length-1];if(t&&t.type===`text`){t.text+=e;return}this.blocks.push({type:`text`,text:e})}addToolCall(e){return this.blocks.some(t=>t.type===`tool_call`&&t.toolCallId===e.toolCallId)?!1:(this.blocks.push(e),!0)}findToolCallBlock(e){return this.blocks.find(t=>t.type===`tool_call`&&t.toolCallId===e)}finish(){}reset(){this.blocks=[]}},NV=class extends o{constructor({endpoint:e,historyEndpoint:t,resumeEndpoint:n,user:r,app:i,initialUserContexts:a=[],requestHeaders:o={},prepareRequestBody:s}){super(),this.abortController=null,this.activeSubAgentCallId=``,this.conversationId=``,this.initialUserContexts=[],this.mainAccumulator=new MV,this.pendingTaskArgs=new Map,this.prepareRequestBody=null,this.replyParts=[],this.requestHeaders={},this.resumeEndpoint=void 0,this.subAccumulator=null,this.thinkingParts=[],this.endpoint=e,this.historyEndpoint=t,this.user=r,this.app=i,this.resumeEndpoint=n,this.requestHeaders={...o},this.prepareRequestBody=s??null,this.setInitialUserContexts(a)}addInitialUserContext(e){let t=e.trim();t&&this.initialUserContexts.push(t)}async ask(e,t){let n=new AbortController;this.abortController=n,this.replyParts=[],this.thinkingParts=[],this.activeSubAgentCallId=``,this.pendingTaskArgs.clear(),this.mainAccumulator.reset(),this.subAccumulator=null;let r=this.initialUserContexts.length>0?`${this.initialUserContexts.join(`
|
|
369
369
|
|
|
370
370
|
`)}\n\n${e}`:e;try{let e=this.buildRequestHeaders(),i={prompt:r,conversation_id:this.conversationId||null,user:this.user,app:this.app,attachments:t};this.prepareRequestBody&&(i=this.prepareRequestBody(i));let a=await fetch(this.endpoint,{method:`POST`,headers:e,body:JSON.stringify(i),signal:n.signal});if(!a.ok)throw Error(await OV(a));let o=a.headers.get(`x-conversation-id`);o&&this.updateConversationId(o),await this.processSseStream(a)}catch(e){if(n.signal.aborted)return;throw Error(kV(e))}finally{this.abortController===n&&(this.abortController=null)}}clearInitialUserContexts(){this.initialUserContexts=[]}async deleteConversation(e){if(!this.historyEndpoint)throw Error(`未配置 historyEndpoint`);try{let t=new URL(`${this.historyEndpoint}/threads/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n=await fetch(t.toString(),{method:`DELETE`});if(n.status===404)throw Error(`未找到会话: ${e}`);if(!n.ok)throw Error(await OV(n))}catch(e){throw Error(kV(e))}}getApp(){return this.app}async getConversationDetail(e,t){if(!this.historyEndpoint)return[];this.updateConversationId(e);let n;try{let t=new URL(`${this.historyEndpoint}/conversations/${encodeURIComponent(e)}`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let r=await fetch(t.toString());if(r.status===404)return[];if(!r.ok)throw Error(await OV(r));n=await r.json()}catch(e){throw Error(kV(e))}let r=[];for(let t of n.messages??[]){let n=t.type??t.role??``,i=u(t.content);if(i){if(n===`human`)r.push({key:`hist-${e}-u${r.length}`,role:`user`,content:i});else if(n===`ai`){let n=jV(t.node??``);r.push({key:`hist-${e}-a${r.length}`,role:`ai`,content:n?``:i,thinkingContent:n?i:void 0})}}}return r}getConversationId(){return this.conversationId}getUser(){return this.user}async listConversations(e){if(!this.historyEndpoint)return{items:[],hasMore:!1};let t=new URL(`${this.historyEndpoint}/conversations`);this.user&&t.searchParams.set(`user`,this.user),this.app&&t.searchParams.set(`app`,this.app);let n;try{let e=await fetch(t.toString());if(!e.ok)throw Error(await OV(e));n=await e.json()}catch(e){throw Error(kV(e))}return{items:n.map(e=>{let t=e.created_at?new Date(e.created_at).getTime():void 0;return{id:e.conversation_id,title:e.title||t?.toString()||`未命名会话`,createdAt:t&&!Number.isNaN(t)?t:void 0}}),hasMore:!1}}offConversationChange(e){this.off(`conversationChange`,e)}offInterrupt(e){this.off(`interrupt`,e)}onConversationChange(e){this.on(`conversationChange`,e)}onInterrupt(e){this.on(`interrupt`,e)}reset(){this.stop(),this.updateConversationId(``),this.replyParts=[],this.thinkingParts=[],this.activeSubAgentCallId=``,this.pendingTaskArgs.clear(),this.mainAccumulator.reset(),this.subAccumulator=null}async resume(e){this.abortController||=new AbortController;let t=this.abortController,n={decisions:e,conversation_id:this.conversationId};this.emit(`replyChange`,``,this.replyParts.join(``));try{let e=this.buildRequestHeaders();this.conversationId&&(e[`x-conversation-id`]=this.conversationId);let r=await fetch(this.resumeEndpoint||this.endpoint,{method:`POST`,headers:e,body:JSON.stringify(n),signal:t.signal});if(!r.ok)throw Error(await OV(r));let i=r.headers.get(`x-conversation-id`);i&&this.updateConversationId(i),await this.processSseStream(r)}catch(e){if(t.signal.aborted)return;throw Error(kV(e))}finally{this.abortController===t&&(this.abortController=null)}}setInitialUserContexts(e){this.initialUserContexts=e.map(e=>e.trim()).filter(Boolean)}setPrepareRequestBody(e){this.prepareRequestBody=e}setRequestHeaders(e){this.requestHeaders={...this.requestHeaders,...e}}setUser(e){this.user=e}stop(){this.abortController&&(this.abortController.abort(),this.abortController=null,this.emit(`stop`))}supportsHistory(){return!!this.historyEndpoint}buildRequestHeaders(){let e={"Content-Type":`application/json`,...this.requestHeaders};return this.user&&(e[`x-user`]=this.user),this.app&&(e[`x-app`]=this.app),e}checkAndHandleInterrupt(e){if(!e||typeof e!=`object`)return!1;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__);for(let t of Object.values(e))if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;if(Array.isArray(e.__interrupt__)&&e.__interrupt__.length>0)return this.emitInterruptFromEntries(e.__interrupt__)}return!1}emitBlocksUpdate(){if(this.activeSubAgentCallId&&this.subAccumulator){let e=this.mainAccumulator.findToolCallBlock(this.activeSubAgentCallId);e&&(e.subAgentBlocks=[...this.subAccumulator.blocks])}this.emit(`blocksUpdate`,[...this.mainAccumulator.blocks])}emitInterruptFromEntries(e){let t=e[0],n=typeof t.id==`string`?t.id:``;if(!n)return!1;let r=t.value,i=Array.isArray(r?.action_requests)?r.action_requests:[],a=Array.isArray(r?.review_configs)?r.review_configs:[];return this.emit(`interrupt`,{interrupt_id:n,action_requests:i.map(e=>({name:typeof e.name==`string`?e.name:``,args:e.args&&typeof e.args==`object`?e.args:{},description:typeof e.description==`string`?e.description:``})),review_configs:a.map(e=>({action_name:typeof e.action_name==`string`?e.action_name:``,allowed_decisions:Array.isArray(e.allowed_decisions)?e.allowed_decisions:[]}))}),!0}flushSubAccumulator(){if(!this.activeSubAgentCallId||!this.subAccumulator)return;this.subAccumulator.finish();let e=this.mainAccumulator.findToolCallBlock(this.activeSubAgentCallId);e&&(e.subAgentBlocks=[...this.subAccumulator.blocks]),this.subAccumulator=null,this.emitBlocksUpdate()}handleDonePacket(e){}handleFinalPacket(e){let t=Date.now();if(Array.isArray(e.tool_calls)&&e.tool_calls.length>0){let n=this.subAccumulator||this.mainAccumulator;for(let r=0;r<e.tool_calls.length;r++){let i=e.tool_calls[r],a=i.name||`unknown`,o=i.id||`${e.message_id}-tc-${r}`;this.emit(`toolCall`,{toolCallId:o,toolName:a,title:a,status:`success`,input:i.args,stepNumber:r,timestamp:t});let s=n.findToolCallBlock(o);if(s)s.durationMs=Date.now()-t,i.args&&(s.input=i.args);else{let e={type:`tool_call`,toolCallId:o,toolName:a,input:i.args,startedAt:t};n.addToolCall(e)}}this.emitBlocksUpdate();return}if((this.subAccumulator||this.mainAccumulator).finish(),this.replyParts.length===0&&Array.isArray(e.content)){let t=e.content.filter(e=>e.type===`text`).map(e=>e.text??``).join(``);t&&(this.replyParts.push(t),this.mainAccumulator.addReply(t),this.emit(`replyChange`,t,this.replyParts.join(``)))}this.emitBlocksUpdate(),this.checkAndHandleInterrupt(e)}handleMessagePacket(e){let t=typeof e.content==`string`?e.content:``;if(t){if(e.subagent&&this.activeSubAgentCallId){this.subAccumulator||=new MV,this.subAccumulator.addReply(t),this.replyParts.push(t),this.emit(`replyChange`,t,this.replyParts.join(``)),this.emitBlocksUpdate();return}this.syncToMain(),this.mainAccumulator.addReply(t),this.replyParts.push(t),this.emit(`replyChange`,t,this.replyParts.join(``)),this.emitBlocksUpdate()}}handleReasoningPacket(e){let t=typeof e.content==`string`?e.content:``;if(t){if(e.subagent&&this.activeSubAgentCallId){this.subAccumulator||=new MV,this.subAccumulator.addReasoning(t),this.thinkingParts.push(t),this.emit(`thinkingChange`,t,this.thinkingParts.join(``)),this.emitBlocksUpdate();return}this.syncToMain(),this.mainAccumulator.addReasoning(t),this.thinkingParts.push(t),this.emit(`thinkingChange`,t,this.thinkingParts.join(``)),this.emitBlocksUpdate()}}handleSseLine(e){let t=AV(e);if(!t)return;let n=typeof t.thread_id==`string`?t.thread_id:``;if(n){this.updateConversationId(n);return}switch(typeof t.type==`string`?t.type:``){case`done`:this.handleDonePacket(t);break;case`final`:this.handleFinalPacket(t);break;case`message`:this.handleMessagePacket(t);break;case`reasoning`:this.handleReasoningPacket(t);break;case`tool_call`:this.handleToolCallPacket(t);break}}handleToolCallPacket(e){let t=e.data;if(!t||t.type!==`tool_call_chunk`)return;let n=t.name||`unknown`,r=t.id,i=Date.now();if(n!==`task`){if(t.index!==0)return;let e;try{e=JSON.parse(t.args||`{}`)}catch{e={raw:t.args}}(this.subAccumulator||this.mainAccumulator).addToolCall({type:`tool_call`,toolCallId:r,toolName:n,input:e,startedAt:i}),this.emitBlocksUpdate();return}let a=this.pendingTaskArgs.get(r)||``;if(this.pendingTaskArgs.set(r,a+(t.args||``)),t.index!==0)return;let o=this.pendingTaskArgs.get(r)||t.args||`{}`,s;try{s=JSON.parse(o)}catch{s={raw:o}}let c=typeof s?.subagent_type==`string`?s.subagent_type:n;this.flushSubAccumulator(),this.activeSubAgentCallId=r;let l=this.mainAccumulator.findToolCallBlock(r);if(l){l.subAgentType=String(c),l.input=s,l.subAgentContent??=``,this.emitBlocksUpdate();return}let u={type:`tool_call`,toolCallId:r,toolName:n,input:s,subAgentType:String(c),startedAt:i};this.mainAccumulator.addToolCall(u),this.emit(`toolCall`,{toolCallId:r,toolName:n,title:String(c),status:`running`,input:s,timestamp:i}),this.subAccumulator=new MV,this.emitBlocksUpdate()}async processSseStream(e){if(!e.body)throw Error(`当前浏览器不支持读取流式响应`);let t=e.body.getReader(),n=new TextDecoder,r=``;try{for(;;){let{value:e,done:i}=await t.read();if(i)break;r+=n.decode(e,{stream:!0});let a=r.split(`
|
|
371
371
|
`);r=a.pop()||``;for(let e of a){let t=e.trim();t&&this.handleSseLine(t)}}r.trim()&&this.handleSseLine(r.trim())}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;throw e}finally{try{t.cancel()}catch{}}}syncToMain(){this.flushSubAccumulator()}updateConversationId(e){this.conversationId!==e&&(this.conversationId=e,this.emit(`conversationChange`,e))}};exports.AI_SDK_AIMessage=l,exports.AI_SDK_Save_AIMessage=_,exports.AgentChat=DV,exports.AgentPicker=VR,exports.ChatPanel=bV,exports.Dify_SDK_AIMessage=Rk,exports.Langchain_py_AIMessage=PR,exports.Langchain_py_AIMessage_V3=NV,exports.SaveModuleDocsRenderer=ZB,exports.StreamMarkdown=XR,exports.SubAgentNode=Lz,exports.ToolCallNode=Cz,exports.WriteTodosTopPanel=iV,exports.convertConversationDetail=b,exports.convertHistoryRecord=y,exports.defaultToolRenderers=QB,exports.extractTextContent=u,exports.parseOpenAIAssistantToolCalls=p,exports.parseToolCallInput=d,exports.toInputPreview=f;
|
package/dist/index.mjs
CHANGED
|
@@ -33790,7 +33790,7 @@ var yB = class extends rt {
|
|
|
33790
33790
|
title: l.value ? "编辑智能体" : "新增智能体",
|
|
33791
33791
|
footer: null,
|
|
33792
33792
|
"destroy-on-close": !0,
|
|
33793
|
-
"z-index":
|
|
33793
|
+
"z-index": 1e3,
|
|
33794
33794
|
width: "480px",
|
|
33795
33795
|
onCancel: D
|
|
33796
33796
|
}, {
|
|
@@ -33984,7 +33984,7 @@ var yB = class extends rt {
|
|
|
33984
33984
|
let n = e.__vccOpts || e;
|
|
33985
33985
|
for (let [e, r] of t) n[e] = r;
|
|
33986
33986
|
return n;
|
|
33987
|
-
}, EB = /*#__PURE__*/ TB(wB, [["__scopeId", "data-v-
|
|
33987
|
+
}, EB = /*#__PURE__*/ TB(wB, [["__scopeId", "data-v-6d20e2be"]]), DB = /* @__PURE__ */ B({
|
|
33988
33988
|
__name: "CodeBlockNode",
|
|
33989
33989
|
props: {
|
|
33990
33990
|
codeBlockComponents: {},
|
|
@@ -35742,14 +35742,26 @@ var DH = ["role", "tabindex"], OH = { class: "tool-call-node__prefix" }, kH = {
|
|
|
35742
35742
|
__name: "index",
|
|
35743
35743
|
props: {
|
|
35744
35744
|
agentKey: { default: "" },
|
|
35745
|
+
agentPickerStorageKey: {},
|
|
35745
35746
|
agents: {},
|
|
35747
|
+
customComponents: {},
|
|
35748
|
+
customHtmlTags: {},
|
|
35749
|
+
defaultToolRenderers: {},
|
|
35746
35750
|
emptyHint: { default: "从左侧选择历史会话,或直接开始新的对话" },
|
|
35747
35751
|
hideHistory: { type: Boolean },
|
|
35752
|
+
modelValue: {},
|
|
35748
35753
|
onAgentEvent: {},
|
|
35749
35754
|
roles: {},
|
|
35750
35755
|
title: { default: "" }
|
|
35751
35756
|
},
|
|
35752
|
-
emits: [
|
|
35757
|
+
emits: [
|
|
35758
|
+
"update:agentKey",
|
|
35759
|
+
"update:modelValue",
|
|
35760
|
+
"submit",
|
|
35761
|
+
"cancel",
|
|
35762
|
+
"agentChange",
|
|
35763
|
+
"update:agents"
|
|
35764
|
+
],
|
|
35753
35765
|
setup(e, { expose: t, emit: n, slots: r }) {
|
|
35754
35766
|
let i = e, a = n, o = H([...i.agents]), s = H(i.agentKey || i.agents[0]?.key || ""), c = P(() => o.value.find((e) => e.key === s.value) ?? o.value[0]), l = P(() => i.hideHistory === void 0 ? c.value?.agent.supportsHistory?.() ?? !1 : !i.hideHistory);
|
|
35755
35767
|
G(() => i.agentKey, (e) => {
|
|
@@ -35782,7 +35794,7 @@ var DH = ["role", "tabindex"], OH = { class: "tool-call-node__prefix" }, kH = {
|
|
|
35782
35794
|
!e || e === s.value || T(e);
|
|
35783
35795
|
}
|
|
35784
35796
|
function w(e) {
|
|
35785
|
-
if (o.value = e, !e.
|
|
35797
|
+
if (o.value = e, !e.some((e) => e.key === s.value)) {
|
|
35786
35798
|
let t = e[0]?.key || "";
|
|
35787
35799
|
t && (s.value = t, a("update:agentKey", t));
|
|
35788
35800
|
}
|
|
@@ -35881,14 +35893,14 @@ var DH = ["role", "tabindex"], OH = { class: "tool-call-node__prefix" }, kH = {
|
|
|
35881
35893
|
"aria-label": "关闭侧边栏",
|
|
35882
35894
|
onClick: n[0] ||= (e) => u.value = !1
|
|
35883
35895
|
}, [z(W(Vp))]),
|
|
35884
|
-
R("div", sU, [n[
|
|
35896
|
+
R("div", sU, [n[9] ||= R("span", { class: "agent-chat__sidebar-title" }, "历史会话", -1), z(W(Nv), {
|
|
35885
35897
|
type: "text",
|
|
35886
35898
|
class: "agent-chat__new-btn",
|
|
35887
35899
|
disabled: f.value,
|
|
35888
35900
|
onClick: k
|
|
35889
35901
|
}, {
|
|
35890
35902
|
icon: $e(() => [z(W(wb))]),
|
|
35891
|
-
default: $e(() => [n[
|
|
35903
|
+
default: $e(() => [n[8] ||= fe(" 新建 ", -1)]),
|
|
35892
35904
|
_: 1
|
|
35893
35905
|
}, 8, ["disabled"])]),
|
|
35894
35906
|
z(W(UT), {
|
|
@@ -35901,7 +35913,7 @@ var DH = ["role", "tabindex"], OH = { class: "tool-call-node__prefix" }, kH = {
|
|
|
35901
35913
|
prefix: $e(() => [z(W(Yp), { style: { color: "#94a3b8" } })]),
|
|
35902
35914
|
_: 1
|
|
35903
35915
|
}, 8, ["value"]),
|
|
35904
|
-
f.value ? (V(), L("div", cU, [z(W(Np), { style: { "margin-right": "6px" } }), n[
|
|
35916
|
+
f.value ? (V(), L("div", cU, [z(W(Np), { style: { "margin-right": "6px" } }), n[10] ||= fe("加载中… ", -1)])) : p.value ? (V(), L("div", lU, [
|
|
35905
35917
|
z(W(YA), { style: { "margin-right": "6px" } }),
|
|
35906
35918
|
fe(Be(p.value) + " ", 1),
|
|
35907
35919
|
z(W(Nv), {
|
|
@@ -35909,7 +35921,7 @@ var DH = ["role", "tabindex"], OH = { class: "tool-call-node__prefix" }, kH = {
|
|
|
35909
35921
|
type: "link",
|
|
35910
35922
|
onClick: S
|
|
35911
35923
|
}, {
|
|
35912
|
-
default: $e(() => [...n[
|
|
35924
|
+
default: $e(() => [...n[11] ||= [fe("重试", -1)]]),
|
|
35913
35925
|
_: 1
|
|
35914
35926
|
})
|
|
35915
35927
|
])) : I("", !0),
|
|
@@ -35929,23 +35941,32 @@ var DH = ["role", "tabindex"], OH = { class: "tool-call-node__prefix" }, kH = {
|
|
|
35929
35941
|
class: "agent-chat__history-btn",
|
|
35930
35942
|
onClick: n[3] ||= (e) => u.value = !0
|
|
35931
35943
|
}, {
|
|
35932
|
-
default: $e(() => [...n[
|
|
35944
|
+
default: $e(() => [...n[12] ||= [fe(" 历史会话", -1)]]),
|
|
35933
35945
|
_: 1
|
|
35934
35946
|
})])) : I("", !0), z(aU, {
|
|
35935
35947
|
ref_key: "chatPanelRef",
|
|
35936
35948
|
ref: ie,
|
|
35937
35949
|
"agent-key": s.value,
|
|
35950
|
+
"agent-picker-storage-key": i.agentPickerStorageKey,
|
|
35938
35951
|
agents: i.agents,
|
|
35952
|
+
"custom-components": i.customComponents,
|
|
35953
|
+
"custom-html-tags": i.customHtmlTags,
|
|
35954
|
+
"default-tool-renderers": i.defaultToolRenderers,
|
|
35955
|
+
"empty-hint": e.emptyHint,
|
|
35956
|
+
"initial-messages": _.value,
|
|
35957
|
+
"model-value": i.modelValue,
|
|
35958
|
+
"on-agent-event": i.onAgentEvent,
|
|
35939
35959
|
roles: M.value,
|
|
35940
35960
|
"session-key": v.value,
|
|
35941
|
-
"initial-messages": _.value,
|
|
35942
|
-
title: j.value,
|
|
35943
35961
|
subtitle: ee.value,
|
|
35944
|
-
|
|
35945
|
-
"on-agent-event": i.onAgentEvent,
|
|
35962
|
+
title: j.value,
|
|
35946
35963
|
class: "agent-chat__panel",
|
|
35947
35964
|
"onUpdate:agentKey": C,
|
|
35948
35965
|
"onUpdate:agents": w,
|
|
35966
|
+
"onUpdate:modelValue": n[4] ||= (e) => a("update:modelValue", e),
|
|
35967
|
+
onSubmit: n[5] ||= (e, t) => a("submit", e, t),
|
|
35968
|
+
onCancel: n[6] ||= () => a("cancel"),
|
|
35969
|
+
onAgentChange: n[7] ||= (e) => a("agentChange", e),
|
|
35949
35970
|
onReset: k
|
|
35950
35971
|
}, de({ _: 2 }, [r["header-actions"] ? {
|
|
35951
35972
|
name: "header-actions",
|
|
@@ -35957,18 +35978,23 @@ var DH = ["role", "tabindex"], OH = { class: "tool-call-node__prefix" }, kH = {
|
|
|
35957
35978
|
key: "1"
|
|
35958
35979
|
} : void 0]), 1032, [
|
|
35959
35980
|
"agent-key",
|
|
35981
|
+
"agent-picker-storage-key",
|
|
35960
35982
|
"agents",
|
|
35983
|
+
"custom-components",
|
|
35984
|
+
"custom-html-tags",
|
|
35985
|
+
"default-tool-renderers",
|
|
35986
|
+
"empty-hint",
|
|
35987
|
+
"initial-messages",
|
|
35988
|
+
"model-value",
|
|
35989
|
+
"on-agent-event",
|
|
35961
35990
|
"roles",
|
|
35962
35991
|
"session-key",
|
|
35963
|
-
"initial-messages",
|
|
35964
|
-
"title",
|
|
35965
35992
|
"subtitle",
|
|
35966
|
-
"
|
|
35967
|
-
"on-agent-event"
|
|
35993
|
+
"title"
|
|
35968
35994
|
])])
|
|
35969
35995
|
]));
|
|
35970
35996
|
}
|
|
35971
|
-
}), [["__scopeId", "data-v-
|
|
35997
|
+
}), [["__scopeId", "data-v-9e2afe3e"]]);
|
|
35972
35998
|
//#endregion
|
|
35973
35999
|
//#region src/AgentChat/Langchain_py_AIMessage_V3.ts
|
|
35974
36000
|
async function pU(e) {
|
package/dist/style.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.agent-picker-wrap[data-v-ffbcde59]{align-items:center;display:inline-flex}.agent-picker-label[data-v-ffbcde59]{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-ffbcde59]:hover{background:var(--bg-color-secondary,#f5f5f5)}.agent-picker-label--disabled[data-v-ffbcde59]{cursor:not-allowed;opacity:.5}.agent-picker-label--disabled[data-v-ffbcde59]:hover{background:0 0}.agent-picker-arrow[data-v-ffbcde59]{color:var(--text-color-secondary,#8c8c8c);font-size:10px;transition:transform .15s}.agent-picker-menu[data-v-ffbcde59]{min-width:180px;max-width:280px}.agent-menu-item[data-v-ffbcde59]{justify-content:space-between;align-items:center;gap:6px;width:100%;display:flex}.agent-menu-label[data-v-ffbcde59]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.is-active .agent-menu-label[data-v-ffbcde59]{color:var(--primary-color,#1677ff);font-weight:600}.agent-menu-edit[data-v-ffbcde59]{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-ffbcde59]:hover{background:var(--primary-color-bg,#e6f4ff)}.agent-menu-del[data-v-ffbcde59]{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-ffbcde59]:hover{background:var(--error-color-bg,#fff2f0)}.agent-menu-add[data-v-ffbcde59]{color:var(--primary-color,#1677ff)}.think-node[data-v-5a2f210e]{margin:6px 0}.think-node__layout[data-v-5a2f210e]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-5a2f210e]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-5a2f210e]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-5a2f210e]{flex:none;align-items:center;gap:6px;padding-top:1px;display:inline-flex}.think-node__prefix-icon[data-v-5a2f210e]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node.is-thinking .think-node__prefix[data-v-5a2f210e],.think-node.is-thinking .think-node__toggle[data-v-5a2f210e]{color:var(--primary-color,#1677ff)}.think-node__prefix-icon.is-spinning[data-v-5a2f210e]{animation:1s linear infinite think-node-spin-5a2f210e}.think-node__content[data-v-5a2f210e]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;position:relative}.think-node__content--inline[data-v-5a2f210e]{flex:1}.think-node__content.is-collapsed[data-v-5a2f210e]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-5a2f210e]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-5a2f210e]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;margin-top:2px;padding:8px 10px 8px 28px;overflow-y:auto}.think-node__toggle[data-v-5a2f210e]{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:4px;min-height:20px;padding:2px 6px;font-size:12px;line-height:1;transition:background-color .2s,color .2s;display:inline-flex}.think-node__toggle[data-v-5a2f210e]:hover{background:color-mix(in srgb, var(--primary-color,#1677ff) 8%, transparent);color:color-mix(in srgb, var(--primary-color,#1677ff) 86%, #000)}.think-node__toggle[data-v-5a2f210e]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 20%, transparent);outline-offset:2px;border-radius:4px}.think-node__toggle-icon[data-v-5a2f210e]{font-size:12px}@keyframes think-node-spin-5a2f210e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.blockquote[data-v-6d8bbd17]{border-left:.25rem solid var(--blockquote-border-color,#e2e8f0);quotes:"“" "”" "‘" "’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em;font-style:italic;font-weight:500}.blockquote[data-v-6d8bbd17] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.checkbox-node[data-v-8dc6c46f]{vertical-align:middle;margin-right:.5rem}.checkbox-input[data-v-8dc6c46f]{cursor:default;margin:0}.definition-list[data-v-f88691d6]{margin:0 0 1rem}.definition-term[data-v-f88691d6]{margin-top:.5rem;font-weight:600}.definition-desc[data-v-f88691d6]{margin-bottom:.5rem;margin-left:1rem}.definition-list[data-v-f88691d6] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.emoji-node[data-v-de55dc97]{display:inline-block}.footnote-reference[data-v-01af0fee]{font-size:.75em;line-height:0}.footnote-link[data-v-01af0fee]{color:#0366d6;text-decoration:none}.footnote-link[data-v-01af0fee]:hover{text-decoration:underline}.html-inline-node[data-v-71cd1a9f]{display:inline}.html-inline-node--loading[data-v-71cd1a9f]{opacity:.85}code[data-v-ffb68151]{color:hsl(var(--foreground));background-color:hsl(var(--secondary));border:1px solid hsl(var(--border) / .9)}.inline-code-stream-delta[data-v-ffb68151]{animation-duration:var(--stream-update-fade-duration,var(--typewriter-fade-duration,.9s));animation-timing-function:var(--stream-update-fade-ease,var(--typewriter-fade-ease,ease-out));will-change:opacity;animation-fill-mode:both}.inline-code-stream-delta--a[data-v-ffb68151]{animation-name:inline-code-stream-update-fade-a-ffb68151}.inline-code-stream-delta--b[data-v-ffb68151]{animation-name:inline-code-stream-update-fade-b-ffb68151}@keyframes inline-code-stream-update-fade-a-ffb68151{0%{opacity:0}to{opacity:1}}@keyframes inline-code-stream-update-fade-b-ffb68151{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.inline-code-stream-delta[data-v-ffb68151]{animation:none!important}}.tooltip-enter-from[data-v-d524cc01]{opacity:0;transform:translateY(-6px)scale(.98)}.tooltip-enter-to[data-v-d524cc01],.tooltip-leave-from[data-v-d524cc01]{opacity:1;transform:translateY(0)scale(1)}.tooltip-leave-to[data-v-d524cc01]{opacity:0;transform:translateY(-6px)scale(.98)}.tooltip-enter-active[data-v-d524cc01],.tooltip-leave-active[data-v-d524cc01]{transition:opacity .12s linear}.tooltip-element[data-v-d524cc01]{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1)}.image-node__img[data-v-03adbc6f],.placeholder-layer[data-v-03adbc6f]{max-width:24rem}.image-node__img--inline[data-v-03adbc6f]{vertical-align:middle;display:inline-block;-o-object-fit:initial!important;object-fit:initial!important;width:auto!important;height:auto!important;min-height:0!important}.placeholder-layer--inline[data-v-03adbc6f]{min-height:auto!important}.image-node__error--inline[data-v-03adbc6f]{vertical-align:middle;display:inline-flex}.img-switch-enter-active[data-v-03adbc6f],.img-switch-leave-active[data-v-03adbc6f]{transition:opacity .22s,transform .22s}.img-switch-enter-from[data-v-03adbc6f],.img-switch-leave-to[data-v-03adbc6f]{opacity:0;transform:translateY(6px)}.img-switch-enter-to[data-v-03adbc6f],.img-switch-leave-from[data-v-03adbc6f]{opacity:1;transform:translateY(0)}.placeholder-layer[data-v-03adbc6f]{will-change:transform,opacity}@media (prefers-reduced-motion:reduce){.spinner[data-v-03adbc6f]{animation:none!important}.img-switch-enter-active[data-v-03adbc6f],.img-switch-leave-active[data-v-03adbc6f]{transition:none!important}}.text-node[data-v-03641323]{font-weight:inherit;vertical-align:baseline;display:inline}.text-node-center[data-v-03641323]{justify-content:center;width:100%;display:inline-flex}.text-node-stream-delta[data-v-03641323]{animation-duration:var(--stream-update-fade-duration,var(--typewriter-fade-duration,.9s));animation-timing-function:var(--stream-update-fade-ease,var(--typewriter-fade-ease,ease-out));will-change:opacity;animation-fill-mode:both}.text-node-stream-delta--a[data-v-03641323]{animation-name:text-node-stream-update-fade-a-03641323}.text-node-stream-delta--b[data-v-03641323]{animation-name:text-node-stream-update-fade-b-03641323}@keyframes text-node-stream-update-fade-a-03641323{0%{opacity:0}to{opacity:1}}@keyframes text-node-stream-update-fade-b-03641323{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.text-node-stream-delta[data-v-03641323]{animation:none!important}}.superscript-node[data-v-6dc1e3ba]{vertical-align:super;font-size:.8em}.subscript-node[data-v-69de9b81]{vertical-align:sub;font-size:.8em}.strong-node[data-v-af3ce037]{font-weight:700}.strikethrough-node[data-v-904d5bd1]{text-decoration:line-through}.link-node[data-v-a4831c9e]{color:var(--link-color,#0366d6);text-decoration:none}.link-node[data-v-a4831c9e]:hover{text-underline-offset:.2rem;text-decoration:underline}.link-loading .link-text-wrapper[data-v-a4831c9e]{position:relative}.link-loading[data-v-a4831c9e]{color:var(--link-color,#0366d6)}.link-loading .link-text[data-v-a4831c9e]{z-index:2;position:relative}.link-loading-indicator[data-v-a4831c9e]{height:var(--underline-height,2px);left:0;right:0;bottom:var(--underline-bottom,-3px);will-change:opacity;opacity:var(--underline-rest-opacity,.18);animation:underlinePulse-a4831c9e var(--underline-duration,1.6s) var(--underline-timing,ease-in-out) var(--underline-iteration,infinite);background:currentColor;border-radius:999px;position:absolute}@keyframes underlinePulse-a4831c9e{0%,to{opacity:var(--underline-rest-opacity,.18)}50%{opacity:var(--underline-opacity,.35)}}@media (prefers-reduced-motion:reduce){.link-loading-indicator[data-v-a4831c9e]{opacity:var(--underline-rest-opacity,.18);animation:none}}.insert-node[data-v-ab1ec9bc]{text-decoration:underline}.highlight-node[data-v-38e31bf6]{background-color:#ff0;padding:0 .2rem}.emphasis-node[data-v-8264674d]{font-style:italic}.footnote-anchor[data-v-4756ce0d]{margin-left:.5rem}.markstream-vue [class*=footnote-] .markdown-renderer,.markstream-vue .flex-1 .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.hard-break[data-v-50c58f70]{display:block}.heading-node[data-v-ffb7cf51]{font-weight:500;line-height:1.25}hr+.heading-node[data-v-ffb7cf51]{margin-top:0}.heading-1[data-v-ffb7cf51]{margin-top:0;margin-bottom:.888889em;font-size:2.25rem;font-weight:800;line-height:1.11111}.heading-2[data-v-ffb7cf51]{margin-top:2rem;margin-bottom:1rem;font-size:1.5rem;font-weight:700;line-height:1.33333}.heading-3[data-v-ffb7cf51]{margin-top:1.6em;margin-bottom:.6em;font-size:1.25rem;font-weight:600;line-height:1.66667}.heading-4[data-v-ffb7cf51]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}.heading-5[data-v-ffb7cf51],.heading-6[data-v-ffb7cf51]{margin:0;font-size:1rem;line-height:1.5rem}ol>.list-item[data-v-ce59e808]::marker{color:var(--list-item-counter-marker,#64748b);line-height:1.6}ul>.list-item[data-v-ce59e808]::marker{color:var(--list-item-marker,#cbd5e1)}.list-item[data-v-ce59e808] .markdown-renderer{content-visibility:visible;contain-intrinsic-size:0px 0px;contain:none}.list-node[data-v-8e81cbc8]{margin-top:1.25rem;margin-bottom:1.25rem;padding-left:1.625em}.list-decimal[data-v-8e81cbc8]{list-style-type:decimal}.list-disc[data-v-8e81cbc8]{list-style-type:disc}@media not all and (width>=1024px){.list-disc[data-v-8e81cbc8]{margin-top:1.33333em;margin-bottom:1.33333em;padding-left:1.55556em}}.html-block-node__raw[data-v-b7cace40]{white-space:pre-wrap;overflow-wrap:anywhere;opacity:.85}.html-block-node__placeholder[data-v-b7cace40]{flex-direction:column;gap:.35rem;padding:.5rem 0;display:flex}.html-block-node__placeholder-bar[data-v-b7cace40]{background-image:linear-gradient(90deg,#94a3b859,#94a3b81a,#94a3b859);background-size:200% 100%;border-radius:9999px;height:.8rem;animation:1.2s infinite html-block-node-shimmer-b7cace40;display:block}@keyframes html-block-node-shimmer-b7cace40{0%{background-position:0 0}to{background-position:200% 0}}.paragraph-node[data-v-944f1fd5]{margin:1.25em 0}li .paragraph-node[data-v-944f1fd5]{margin:0}.markstream-vue pre[class^=language-],.markstream-vue pre[class*=\ language-]{white-space:pre;tab-size:2;font-variant-ligatures:none;contain:content;backface-visibility:hidden;-webkit-font-smoothing:antialiased;overflow:auto;transform:translateZ(0)}.markstream-vue pre[class^=language-]>code,.markstream-vue pre[class*=\ language-]>code{display:block}.markstream-vue pre[class^=language-]:focus,.markstream-vue pre[class*=\ language-]:focus{outline:2px solid var(--vmdr-focus,#3b82f6);outline-offset:2px}.table-node-wrapper[data-v-369096fa]{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-gutter:stable;max-width:100%;position:relative;overflow-x:auto}.table-node[data-v-369096fa]{table-layout:fixed;border-collapse:collapse;width:100%}.table-node[data-v-369096fa] th,.table-node[data-v-369096fa] td{white-space:normal;overflow-wrap:break-word;word-break:normal}.table-node--loading tbody td[data-v-369096fa]{position:relative;overflow:hidden}.table-node--loading tbody td[data-v-369096fa]>*{visibility:hidden}.table-node--loading tbody td[data-v-369096fa]:after{content:"";will-change:background-position;background:linear-gradient(90deg,#94a3b829 25%,#94a3b847,#94a3b829 75%) 0 0/200% 100%;border-radius:.25rem;animation:1.2s linear infinite table-node-shimmer-369096fa;position:absolute;inset:0}.table-node__loading[data-v-369096fa]{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.table-node__spinner[data-v-369096fa]{will-change:transform;border:2px solid #5e687940;border-top-color:#5e6879cc;border-radius:9999px;width:2.5rem;height:2.5rem}.table-node-fade-enter-active[data-v-369096fa],.table-node-fade-leave-active[data-v-369096fa]{transition:opacity .18s}.table-node-fade-enter-from[data-v-369096fa],.table-node-fade-leave-to[data-v-369096fa]{opacity:0}[data-v-369096fa] .table-node .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px;display:contents}[data-v-369096fa] .table-node .markdown-renderer .node-slot,[data-v-369096fa] .table-node .markdown-renderer .node-content,[data-v-369096fa] .table-node .markdown-renderer .node-space{display:contents}[data-v-369096fa] .table-node .text-node,[data-v-369096fa] .table-node code{white-space:inherit;overflow-wrap:inherit;word-break:inherit;max-width:none}@keyframes table-node-shimmer-369096fa{0%{background-position:0 0}50%{background-position:100% 0}to{background-position:200% 0}}.hr+.table-node-wrapper[data-v-369096fa],.hr+.table-node-wrapper .table-node[data-v-369096fa]{margin-top:0}.sr-only[data-v-369096fa]{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hr-node[data-v-639cbad9]{border-top-width:1px;border-color:var(--hr-border-color,#e2e8f0);margin-top:3rem;margin-bottom:3rem}.vmr-container[data-v-a88d22ce]{border-width:1px 1px 1px 4px;border-radius:.5rem;margin-top:1rem;margin-bottom:1rem;padding:1rem}.code-block-container[data-v-2e273ed5]{contain:content}.code-block-content[data-v-2e273ed5]{max-height:min(70vh,500px);font-family:var(--vscode-editor-font-family,"Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);line-height:var(--vscode-editor-line-height,1.5);transition:max-height .3s;overflow:auto}.code-block-render[data-v-2e273ed5]{min-height:1px}[data-v-2e273ed5] .code-block-render pre,[data-v-2e273ed5] .code-block-content .shiki{font-family:inherit;font-size:inherit;line-height:inherit}[data-v-2e273ed5] .code-block-content .shiki-fallback{color:inherit;white-space:pre;font-family:inherit;font-size:inherit;line-height:inherit;background:0 0;margin:0;padding:1rem}.code-fallback-plain[data-v-2e273ed5]{white-space:pre;color:inherit;font-size:inherit;line-height:inherit;background:0 0;font-family:inherit;overflow:auto}[data-v-2e273ed5] .code-block-content pre{padding:1rem}.code-action-btn[data-v-2e273ed5]{cursor:pointer;opacity:.7;transition:opacity .2s}.code-action-btn[data-v-2e273ed5]:hover{opacity:1}.code-action-btn[data-v-2e273ed5]:disabled{opacity:.3;cursor:not-allowed}.code-loading-placeholder[data-v-2e273ed5]{min-height:120px;padding:1rem}.loading-skeleton[data-v-2e273ed5]{flex-direction:column;gap:.75rem;display:flex}.skeleton-line[data-v-2e273ed5]{background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%) 0 0/400% 100%;border-radius:.25rem;height:1rem;animation:1.2s ease-in-out infinite code-skeleton-shimmer-2e273ed5}.code-block-container.is-dark .skeleton-line[data-v-2e273ed5]{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%) 0 0/400% 100%}.skeleton-line.short[data-v-2e273ed5]{width:60%}@keyframes code-skeleton-shimmer-2e273ed5{0%{background-position:100% 0}to{background-position:0 0}}.markdown-renderer[data-v-7e76e4d7]{contain:layout;content-visibility:auto;contain-intrinsic-size:800px 600px;position:relative}.markdown-renderer.virtualized[data-v-7e76e4d7]{content-visibility:visible;contain-intrinsic-size:auto}.height-estimation-probes[data-v-7e76e4d7]{visibility:hidden;pointer-events:none;z-index:-1;position:absolute;top:0;left:-100000px;overflow:hidden}.node-slot[data-v-7e76e4d7],.node-content[data-v-7e76e4d7]{width:100%}.node-placeholder[data-v-7e76e4d7]{background-image:linear-gradient(90deg,#94a3b82e,#94a3b80d,#94a3b82e);background-size:200% 100%;border-radius:.5rem;width:100%;min-height:1rem;margin:.25rem 0;animation:1.1s ease-in-out infinite node-placeholder-shimmer-7e76e4d7}.node-placeholder[data-v-7e76e4d7]:first-child{margin-top:0}@keyframes node-placeholder-shimmer-7e76e4d7{0%{background-position:200% 0}to{background-position:-200% 0}}.node-spacer[data-v-7e76e4d7]{width:100%}.unknown-node[data-v-7e76e4d7]{color:#6a737d;margin:1rem 0;font-style:italic}.markstream-vue .typewriter-enter-from{opacity:0}.markstream-vue .typewriter-enter-active{transition:opacity var(--typewriter-fade-duration,.9s) var(--typewriter-fade-ease,ease-out);will-change:opacity}.markstream-vue .typewriter-enter-to{opacity:1}.admonition[data-v-ee240a2a]{--admonition-bg:#f8f8f8;--admonition-border:#eaecef;--admonition-header-bg:#00000008;--admonition-text:#111827;--admonition-muted:#374151;--admonition-note-color:#448aff;--admonition-tip-color:#00bfa5;--admonition-warning-color:#ff9100;--admonition-danger-color:#ff5252;border-left:4px solid var(--admonition-border);background-color:var(--admonition-bg);color:var(--admonition-text);border-radius:4px;margin:1rem 0;padding:0;overflow:hidden}.admonition-header[data-v-ee240a2a]{background-color:var(--admonition-header-bg);color:var(--admonition-muted);align-items:center;padding:.5rem 1rem;font-weight:600;display:flex}.admonition-icon[data-v-ee240a2a]{color:inherit;margin-right:.5rem}.admonition-content[data-v-ee240a2a]{color:var(--admonition-text);padding:.5rem 1rem 1rem}.admonition-note[data-v-ee240a2a]{border-left-color:var(--admonition-note-color)}.admonition-note .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff0f}.admonition-info[data-v-ee240a2a]{border-left-color:var(--admonition-note-color)}.admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff0f}.admonition-tip[data-v-ee240a2a]{border-left-color:var(--admonition-tip-color)}.admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa50f}.admonition-warning[data-v-ee240a2a]{border-left-color:var(--admonition-warning-color)}.admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91000f}.admonition-danger[data-v-ee240a2a]{border-left-color:var(--admonition-danger-color)}.admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52520f}.admonition-error[data-v-ee240a2a]{border-left-color:var(--admonition-danger-color)}.admonition-error .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52520f}.admonition-caution[data-v-ee240a2a]{border-left-color:var(--admonition-warning-color)}.admonition-caution .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91000f}.admonition-content[data-v-ee240a2a] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.admonition-toggle[data-v-ee240a2a]{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:.25rem .5rem;font-size:.9rem}.admonition-toggle[data-v-ee240a2a]:focus{outline-offset:2px;outline:2px solid #00000014}.admonition.is-dark[data-v-ee240a2a]{--admonition-bg:#0b1220;--admonition-border:#ffffff0f;--admonition-header-bg:#ffffff08;--admonition-text:#e6eef8;--admonition-muted:#cbd5e1}.admonition.is-dark .admonition-note .admonition-header[data-v-ee240a2a],.admonition.is-dark .admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff1f}.admonition.is-dark .admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa51f}.admonition.is-dark .admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91001f}.admonition.is-dark .admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52521f}@media (prefers-color-scheme:dark){.admonition[data-v-ee240a2a]{--admonition-bg:#0b1220;--admonition-border:#ffffff0f;--admonition-header-bg:#ffffff08;--admonition-text:#e6eef8;--admonition-muted:#cbd5e1}.admonition-note .admonition-header[data-v-ee240a2a],.admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff1f}.admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa51f}.admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91001f}.admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52521f}}:where(.markstream-vue) button{appearance:none;font:inherit;color:inherit;background:0 0;border:0}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.markstream-vue .sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markstream-vue .pointer-events-none{pointer-events:none}.markstream-vue .\!visible{visibility:visible!important}.markstream-vue .visible{visibility:visible}.markstream-vue .collapse{visibility:collapse}.markstream-vue .static{position:static}.markstream-vue .fixed{position:fixed}.markstream-vue .absolute{position:absolute}.markstream-vue .relative{position:relative}.markstream-vue .inset-0{inset:0}.markstream-vue .right-2{right:.5rem}.markstream-vue .right-6{right:1.5rem}.markstream-vue .top-2{top:.5rem}.markstream-vue .top-6{top:1.5rem}.markstream-vue .z-10{z-index:10}.markstream-vue .z-50{z-index:50}.markstream-vue .z-\[9999\]{z-index:9999}.markstream-vue .m-0{margin:0}.markstream-vue .mx-0\.5{margin-left:.125rem;margin-right:.125rem}.markstream-vue .my-0{margin-top:0;margin-bottom:0}.markstream-vue .my-2{margin-top:.5rem;margin-bottom:.5rem}.markstream-vue .my-4{margin-top:1rem;margin-bottom:1rem}.markstream-vue .my-5{margin-top:1.25rem;margin-bottom:1.25rem}.markstream-vue .my-8{margin-top:2rem;margin-bottom:2rem}.markstream-vue .mb-2{margin-bottom:.5rem}.markstream-vue .mb-4{margin-bottom:1rem}.markstream-vue .mb-\[calc\(3\/5\*1em\)\]{margin-bottom:.6em}.markstream-vue .mb-\[calc\(8\/9\*1em\)\]{margin-bottom:.888889em}.markstream-vue .mr-2{margin-right:.5rem}.markstream-vue .mt-0{margin-top:0}.markstream-vue .mt-2{margin-top:.5rem}.markstream-vue .mt-6{margin-top:1.5rem}.markstream-vue .mt-8{margin-top:2rem}.markstream-vue .mt-\[calc\(8\/5\*1em\)\]{margin-top:1.6em}.markstream-vue .block{display:block}.markstream-vue .inline-block{display:inline-block}.markstream-vue .inline{display:inline}.markstream-vue .flex{display:flex}.markstream-vue .inline-flex{display:inline-flex}.markstream-vue .table{display:table}.markstream-vue .grid{display:grid}.markstream-vue .contents{display:contents}.markstream-vue .list-item{display:list-item}.markstream-vue .hidden{display:none}.markstream-vue .h-3{height:.75rem}.markstream-vue .h-4{height:1rem}.markstream-vue .h-auto{height:auto}.markstream-vue .h-full{height:100%}.markstream-vue .max-h-full{max-height:100%}.markstream-vue .min-h-\[360px\]{min-height:360px}.markstream-vue .min-h-\[40px\]{min-height:40px}.markstream-vue .min-h-full{min-height:100%}.markstream-vue .w-2\/3{width:66.6667%}.markstream-vue .w-3{width:.75rem}.markstream-vue .w-4{width:1rem}.markstream-vue .w-4\/5{width:80%}.markstream-vue .w-full{width:100%}.markstream-vue .max-w-full{max-width:100%}.markstream-vue .flex-1{flex:1}.markstream-vue .flex-shrink{flex-shrink:1}.markstream-vue .flex-shrink-0{flex-shrink:0}.markstream-vue .shrink{flex-shrink:1}.markstream-vue .border-collapse{border-collapse:collapse}.markstream-vue .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.markstream-vue .animate-spin{animation:1s linear infinite spin}.markstream-vue .cursor-grab{cursor:grab}.markstream-vue .cursor-grabbing{cursor:grabbing}.markstream-vue .cursor-not-allowed{cursor:not-allowed}.markstream-vue .cursor-pointer{cursor:pointer}.markstream-vue .resize{resize:both}.markstream-vue .list-decimal{list-style-type:decimal}.markstream-vue .list-disc{list-style-type:disc}.markstream-vue .flex-wrap{flex-wrap:wrap}.markstream-vue .items-center{align-items:center}.markstream-vue .items-baseline{align-items:baseline}.markstream-vue .justify-center{justify-content:center}.markstream-vue .justify-between{justify-content:space-between}.markstream-vue .gap-1\.5{gap:.375rem}.markstream-vue .gap-2{gap:.5rem}.markstream-vue .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.markstream-vue .gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.markstream-vue .overflow-hidden{overflow:hidden}.markstream-vue .overflow-x-auto{overflow-x:auto}.markstream-vue .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.markstream-vue .whitespace-normal{white-space:normal}.markstream-vue .whitespace-nowrap{white-space:nowrap}.markstream-vue .whitespace-pre-wrap{white-space:pre-wrap}.markstream-vue .break-words{overflow-wrap:break-word}.markstream-vue .rounded{border-radius:.25rem}.markstream-vue .rounded-full{border-radius:9999px}.markstream-vue .rounded-lg{border-radius:.5rem}.markstream-vue .rounded-md{border-radius:.375rem}.markstream-vue .border{border-width:1px}.markstream-vue .border-2{border-width:2px}.markstream-vue .border-b{border-bottom-width:1px}.markstream-vue .border-t{border-top-width:1px}.markstream-vue .border-solid{border-style:solid}.markstream-vue .border-\[\#eaecef\]{--tw-border-opacity:1;border-color:rgb(234 236 239/var(--tw-border-opacity,1))}.markstream-vue .border-\[var\(--hr-border-color\,\#e2e8f0\)\]{border-color:var(--hr-border-color,#e2e8f0)}.markstream-vue .border-\[var\(--table-border\,\#cbd5e1\)\]{border-color:var(--table-border,#cbd5e1)}.markstream-vue .border-current{border-color:currentColor}.markstream-vue .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.markstream-vue .border-gray-400\/5{border-color:#9ca3af0d}.markstream-vue .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.markstream-vue .border-gray-700\/30{border-color:#3741514d}.markstream-vue .border-t-transparent{border-top-color:#0000}.markstream-vue .bg-\[hsl\(var\(--muted\)\)\]{background-color:hsl(var(--muted))}.markstream-vue .bg-\[hsl\(var\(--secondary\)\)\]{background-color:hsl(var(--secondary))}.markstream-vue .bg-black\/70{background-color:#000000b3}.markstream-vue .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.markstream-vue .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.markstream-vue .p-0{padding:0}.markstream-vue .p-0\.5{padding:.125rem}.markstream-vue .p-2{padding:.5rem}.markstream-vue .p-4{padding:1rem}.markstream-vue .p-\[calc\(4\/7\*1em\)\]{padding:.571429em}.markstream-vue .px-1{padding-left:.25rem;padding-right:.25rem}.markstream-vue .px-1\.5{padding-left:.375rem;padding-right:.375rem}.markstream-vue .px-2{padding-left:.5rem;padding-right:.5rem}.markstream-vue .px-2\.5{padding-left:.625rem;padding-right:.625rem}.markstream-vue .px-3{padding-left:.75rem;padding-right:.75rem}.markstream-vue .px-4{padding-left:1rem;padding-right:1rem}.markstream-vue .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.markstream-vue .py-1{padding-top:.25rem;padding-bottom:.25rem}.markstream-vue .py-2{padding-top:.5rem;padding-bottom:.5rem}.markstream-vue .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.markstream-vue .py-4{padding-top:1rem;padding-bottom:1rem}.markstream-vue .pb-3{padding-bottom:.75rem}.markstream-vue .pl-1\.5{padding-left:.375rem}.markstream-vue .pl-\[calc\(13\/8\*1em\)\]{padding-left:1.625em}.markstream-vue .pt-2{padding-top:.5rem}.markstream-vue .text-left{text-align:left}.markstream-vue .text-center{text-align:center}.markstream-vue .text-right{text-align:right}.markstream-vue .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.markstream-vue .text-2xl{font-size:1.5rem;line-height:2rem}.markstream-vue .text-4xl{font-size:2.25rem;line-height:2.5rem}.markstream-vue .text-\[85\%\]{font-size:85%}.markstream-vue .text-base{font-size:1rem;line-height:1.5rem}.markstream-vue .text-sm{font-size:.875rem;line-height:1.25rem}.markstream-vue .text-xl{font-size:1.25rem;line-height:1.75rem}.markstream-vue .text-xs{font-size:.75rem;line-height:1rem}.markstream-vue .font-medium{font-weight:500}.markstream-vue .font-semibold{font-weight:600}.markstream-vue .uppercase{text-transform:uppercase}.markstream-vue .lowercase{text-transform:lowercase}.markstream-vue .italic{font-style:italic}.markstream-vue .leading-\[calc\(10\/9\*1\)\]{line-height:1.11111}.markstream-vue .leading-\[calc\(4\/3\*1\)\]{line-height:1.33333}.markstream-vue .leading-\[calc\(5\/3\*1\)\]{line-height:1.66667}.markstream-vue .leading-\[normal\]{line-height:normal}.markstream-vue .leading-relaxed{line-height:1.625}.markstream-vue .text-\[\#0366d6\]{--tw-text-opacity:1;color:rgb(3 102 214/var(--tw-text-opacity,1))}.markstream-vue .text-\[hsl\(var\(--muted-foreground\)\)\]{color:hsl(var(--muted-foreground))}.markstream-vue .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.markstream-vue .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.markstream-vue .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.markstream-vue .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.markstream-vue .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.markstream-vue .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.markstream-vue .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.markstream-vue .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.markstream-vue .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.markstream-vue .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.markstream-vue .underline{text-decoration-line:underline}.markstream-vue .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.markstream-vue .opacity-0{opacity:0}.markstream-vue .opacity-100{opacity:1}.markstream-vue .opacity-50{opacity:.5}.markstream-vue .shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .outline{outline-style:solid}.markstream-vue .blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-vue .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-vue .backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-vue .backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-vue .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-\[height\]{transition-property:height;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .duration-100{transition-duration:.1s}.markstream-vue .duration-150{transition-duration:.15s}.markstream-vue .duration-200{transition-duration:.2s}.markstream-vue .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.markstream-vue{--border:214.3 31.8% 91.4%;--background:0 0% 100%;--foreground:222.2 84% 4.9%;--secondary:210 40% 96%;--muted:210 40% 96%;--muted-foreground:215.4 16.3% 46.9%}.dark .markstream-vue,.markstream-vue.dark{--border:217.2 32.6% 17.5%;--background:222.2 84% 4.9%;--foreground:210 40% 98%;--secondary:217.2 32.6% 17.5%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%}body>div[id^=dmermaid-]{pointer-events:none;width:0;height:0;position:fixed;top:0;left:0;overflow:hidden}.markstream-vue .before\:content-\[\'\'\]:before,.markstream-vue .after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.markstream-vue .hover\:bg-\[hsl\(var\(--secondary\)\)\]:hover{background-color:hsl(var(--secondary))}.markstream-vue .hover\:bg-\[var\(--vscode-editor-selectionBackground\)\]:hover{background-color:var(--vscode-editor-selectionBackground)}.markstream-vue .hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.markstream-vue .hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.markstream-vue .hover\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.markstream-vue .hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.markstream-vue .hover\:underline:hover{text-decoration-line:underline}@media not all and (width>=1024px){.markstream-vue .max-lg\:my-\[calc\(4\/3\*1em\)\]{margin-top:1.33333em;margin-bottom:1.33333em}.markstream-vue .max-lg\:pl-\[calc\(14\/9\*1em\)\]{padding-left:1.55556em}}.math-inline-wrapper[data-v-d4b863b7]{display:inline-block;position:relative}.math-inline[data-v-d4b863b7]{vertical-align:middle;display:inline-block}.math-inline--fallback[data-v-d4b863b7]{white-space:pre-wrap}.math-inline__loading[data-v-d4b863b7]{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.math-inline__spinner[data-v-d4b863b7]{will-change:transform;border:2px solid #5e687940;border-top-color:#5e6879cc;border-radius:9999px;width:1rem;height:1rem}.table-node-fade-enter-active[data-v-d4b863b7],.table-node-fade-leave-active[data-v-d4b863b7]{transition:opacity .18s}.table-node-fade-enter-from[data-v-d4b863b7],.table-node-fade-leave-to[data-v-d4b863b7]{opacity:0}.sr-only[data-v-d4b863b7]{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.math-loading-overlay[data-v-f19e21a0]{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;min-height:40px;display:flex;position:absolute;inset:0}.math-loading-spinner[data-v-f19e21a0]{border:2px solid #0000001a;border-top-color:#0009;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite math-spin-f19e21a0}@keyframes math-spin-f19e21a0{to{transform:rotate(360deg)}}.math-rendering[data-v-f19e21a0]{opacity:.3;transition:opacity .2s}.math-block__fallback[data-v-f19e21a0]{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.math-fade-enter-active[data-v-f19e21a0],.math-fade-leave-active[data-v-f19e21a0]{transition:opacity .3s}.math-fade-enter-from[data-v-f19e21a0],.math-fade-leave-to[data-v-f19e21a0]{opacity:0}@media (prefers-color-scheme:dark){.math-loading-overlay[data-v-f19e21a0]{background-color:#0009}.math-loading-spinner[data-v-f19e21a0]{border-color:#fffc #fff3 #fff3}}.html-preview-frame__backdrop[data-v-296dd89d]{z-index:50;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.html-preview-frame__backdrop--dark[data-v-296dd89d]{background-color:#0f172acc}.html-preview-frame[data-v-296dd89d]{background-color:#fff;border-radius:.5rem;flex-direction:column;width:80vw;max-width:960px;height:70vh;display:flex;overflow:hidden;box-shadow:0 10px 40px #00000040}.html-preview-frame--dark[data-v-296dd89d]{color:#e5e7eb;background-color:#020617;box-shadow:0 10px 40px #0009}.html-preview-frame__header[data-v-296dd89d]{border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.html-preview-frame--dark .html-preview-frame__header[data-v-296dd89d]{border-bottom-color:#94a3b859}.html-preview-frame__title[data-v-296dd89d]{letter-spacing:.02em;text-transform:uppercase;opacity:.85;align-items:center;gap:.4rem;font-size:.75rem;font-weight:500;display:inline-flex}.html-preview-frame__dot[data-v-296dd89d]{background-color:#22c55e;border-radius:999px;width:.5rem;height:.5rem}.html-preview-frame--dark .html-preview-frame__dot[data-v-296dd89d]{background-color:#4ade80}.html-preview-frame__label[data-v-296dd89d]{white-space:nowrap}.html-preview-frame__close[data-v-296dd89d]{cursor:pointer;background:0 0;border:none;font-size:1.25rem;line-height:1}.html-preview-frame__close--dark[data-v-296dd89d]{color:#e5e7eb}.html-preview-frame__iframe[data-v-296dd89d]{border:none;width:100%;height:100%;display:block}@media (width<=640px){.html-preview-frame[data-v-296dd89d]{border-radius:0;width:100vw;height:80vh}}.code-block-container[data-v-1a55f98f]{contain:content;content-visibility:auto;contain-intrinsic-size:320px 180px;--markstream-code-fallback-bg:#fff;--markstream-code-fallback-fg:#111827;--markstream-code-border-color:#e5e7eb;--vscode-editor-selectionBackground:var(--markstream-code-fallback-selection-bg);--markstream-code-fallback-selection-bg:#0000000f;--markstream-diff-frame-border:#cbd5e18f;--markstream-diff-frame-shadow:0 16px 40px -32px #0f172a2e;--markstream-diff-shell-fg:#0f172a;--markstream-diff-shell-muted:#64748b;--markstream-diff-shell-border:#94a3b82e;--markstream-diff-shell-shadow:0 30px 70px -48px #0f172a6b;--markstream-diff-shell-bg:radial-gradient(circle at top center, #ffffffe6, transparent 55%), linear-gradient(180deg, #fffdfa 0%, #fbfcfe 100%);--markstream-diff-header-border:#e2e8f0eb;--markstream-diff-stage-bg:radial-gradient(circle at top center, #fffffff2, transparent 60%), linear-gradient(180deg, #fcfdff 0%, #f6f8fb 100%);--markstream-diff-editor-bg:#fff;--markstream-diff-editor-fg:#435266;--markstream-diff-unchanged-fg:lab(36.247% .0071872 -.000424832);--markstream-diff-unchanged-bg:lab(95.9989% .0180531 -.0010643);--markstream-diff-unchanged-divider:#fffffff0;--markstream-diff-focus:#0ea5e96b;--markstream-diff-widget-shadow:#0f172a42;--markstream-diff-action-hover:#0f172a0f;--markstream-diff-panel-bg:linear-gradient(180deg, #fff 0%, #fbfcfe 100%);--markstream-diff-panel-bg-soft:#fff;--markstream-diff-panel-bg-strong:#fff;--markstream-diff-panel-border:#e2e8f04d;--markstream-diff-pane-divider:#e2e8f06b;--markstream-diff-gutter-bg:transparent;--markstream-diff-gutter-guide:transparent;--markstream-diff-gutter-gap:16px;--markstream-diff-line-number:#525252e0;--markstream-diff-line-number-active:#525252e0;--markstream-diff-added-fg:#14b8a6;--markstream-diff-removed-fg:#ff3658;--markstream-diff-added-line:#e8f9f5fa;--markstream-diff-removed-line:#fff1f1fa;--markstream-diff-added-inline:#c5f5dbf5;--markstream-diff-removed-inline:#ffd7d9eb;--markstream-diff-added-inline-border:transparent;--markstream-diff-removed-inline-border:transparent;--markstream-diff-added-gutter:linear-gradient(90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width,4px), #14b8a614 var(--stream-monaco-gutter-marker-width,4px) 100%);--markstream-diff-removed-gutter:repeating-linear-gradient(180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px) left / var(--stream-monaco-gutter-marker-width,4px) 100% no-repeat, linear-gradient(90deg, #ff365814 0 100%);--markstream-diff-added-line-fill:#e7f8f4f5;--markstream-diff-removed-line-fill:#fff1f1fa;container-type:inline-size}.code-block-container.is-dark[data-v-1a55f98f]{--markstream-code-fallback-bg:#111827;--markstream-code-fallback-fg:#e5e7eb;--markstream-code-border-color:#3741514d;--markstream-code-fallback-selection-bg:#ffffff14;--markstream-diff-frame-border:#52525b8f;--markstream-diff-frame-shadow:0 18px 40px -30px #000000d6;--markstream-diff-shell-fg:#e2e8f0;--markstream-diff-shell-muted:#94a3b8;--markstream-diff-shell-border:#52525b8f;--markstream-diff-shell-shadow:0 34px 80px -52px #000000b8;--markstream-diff-shell-bg:#0a0a0bfc;--markstream-diff-header-border:#3f3f46d1;--markstream-diff-stage-bg:#0a0a0bfc;--markstream-diff-editor-bg:#0c0c0efc;--markstream-diff-editor-fg:#b6c2d3;--markstream-diff-unchanged-fg:#cbd5e1;--markstream-diff-unchanged-bg:#18181beb;--markstream-diff-unchanged-divider:#ffffff2e;--markstream-diff-focus:#60a5fa6b;--markstream-diff-widget-shadow:#000000b8;--markstream-diff-action-hover:#ffffff14;--markstream-diff-panel-bg:#0a0a0bfc;--markstream-diff-panel-bg-soft:#0a0a0bfc;--markstream-diff-panel-bg-strong:#0a0a0bfc;--markstream-diff-panel-border:#52525b4d;--markstream-diff-pane-divider:#52525b57;--markstream-diff-gutter-bg:linear-gradient(180deg, #0d0d0ff0 0%, #09090afa 100%);--markstream-diff-gutter-guide:#a1a1aa14;--markstream-diff-gutter-gap:16px;--markstream-diff-line-number:#a1a1aaad;--markstream-diff-line-number-active:#e4e4e7d1;--markstream-diff-added-fg:#5eead4;--markstream-diff-removed-fg:#fda4af;--markstream-diff-added-line:#0d94882e;--markstream-diff-removed-line:#e11d482e;--markstream-diff-added-inline:#2dd4bf3d;--markstream-diff-removed-inline:#fb71853d;--markstream-diff-added-inline-border:transparent;--markstream-diff-removed-inline-border:transparent;--markstream-diff-added-gutter:linear-gradient(90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width,4px), #5eead433 var(--stream-monaco-gutter-marker-width,4px) 100%);--markstream-diff-removed-gutter:repeating-linear-gradient(180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px) left / var(--stream-monaco-gutter-marker-width,4px) 100% no-repeat, linear-gradient(90deg, #fda4af2e 0 100%);--markstream-diff-added-line-fill:linear-gradient(90deg, #0f766e61 0%, #0d948847 100%);--markstream-diff-removed-line-fill:linear-gradient(90deg, #9f123961 0%, #e11d4847 100%)}.code-editor-container[data-v-1a55f98f]{transition:height .18s,max-height .18s}.code-block-header[data-v-1a55f98f]{gap:16px}.code-header-main[data-v-1a55f98f]{flex:auto;align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.code-header-copy[data-v-1a55f98f]{gap:2px;min-width:0;display:grid}.code-header-actions[data-v-1a55f98f]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.code-header-title[data-v-1a55f98f]{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;font-size:14px;font-weight:650;overflow:hidden}.code-header-caption[data-v-1a55f98f]{text-overflow:ellipsis;white-space:nowrap;color:color-mix(in srgb,var(--vscode-editor-foreground,currentColor) 62%,transparent);font-size:12px;overflow:hidden}.code-editor-layer[data-v-1a55f98f]{min-width:0;display:grid}.code-editor-layer>.code-editor-container[data-v-1a55f98f],[data-v-1a55f98f] .code-editor-layer>pre.code-pre-fallback{grid-area:1/1}.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .monaco-editor-background,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .lines-content{background:var(--vscode-editor-background,var(--markstream-code-fallback-bg))!important}.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-lines,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-line,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-line span,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .line-numbers{color:var(--vscode-editor-foreground,var(--markstream-code-fallback-fg))!important}.code-block-container.is-diff .code-block-header[data-v-1a55f98f]{color:var(--markstream-diff-shell-fg);border-bottom-color:var(--markstream-diff-header-border);background:0 0;padding:18px 20px 14px}.code-block-container.is-diff[data-v-1a55f98f]{background:var(--markstream-diff-shell-bg);box-shadow:var(--markstream-diff-shell-shadow);border-color:var(--markstream-diff-shell-border);--vscode-editor-selectionBackground:var(--markstream-diff-action-hover)}.code-block-container.is-diff .code-header-caption[data-v-1a55f98f]{color:var(--markstream-diff-shell-muted)}.code-block-container.is-diff .code-editor-layer[data-v-1a55f98f]{background:var(--markstream-diff-stage-bg);--vscode-editor-background:var(--markstream-diff-editor-bg);--vscode-editor-foreground:var(--markstream-diff-editor-fg);--vscode-diffEditor-unchangedRegionForeground:var(--markstream-diff-unchanged-fg);--vscode-diffEditor-unchangedRegionBackground:var(--markstream-diff-unchanged-bg);--vscode-focusBorder:var(--markstream-diff-focus);--vscode-widget-shadow:var(--markstream-diff-widget-shadow);--vscode-editor-selectionBackground:color-mix(in srgb, var(--markstream-diff-editor-bg) 90%, var(--markstream-diff-editor-fg) 10%);--stream-monaco-editor-bg:var(--markstream-diff-editor-bg);--stream-monaco-editor-fg:var(--markstream-diff-editor-fg);--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg);--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg);--stream-monaco-frame-radius:18px;--stream-monaco-fixed-editor-bg:var(--markstream-diff-panel-bg-strong);--stream-monaco-frame-border:var(--markstream-diff-frame-border);--stream-monaco-frame-shadow:var(--markstream-diff-frame-shadow);--stream-monaco-panel-bg:var(--markstream-diff-panel-bg);--stream-monaco-panel-bg-soft:var(--markstream-diff-panel-bg-soft);--stream-monaco-panel-bg-strong:var(--markstream-diff-panel-bg-strong);--stream-monaco-panel-border:var(--markstream-diff-panel-border);--stream-monaco-pane-divider:var(--markstream-diff-pane-divider);--stream-monaco-gutter-bg:var(--markstream-diff-gutter-bg);--stream-monaco-gutter-guide:var(--markstream-diff-gutter-guide);--stream-monaco-gutter-marker-width:4px;--stream-monaco-gutter-gap:var(--markstream-diff-gutter-gap);--stream-monaco-line-number:var(--markstream-diff-line-number);--stream-monaco-line-number-active:var(--markstream-diff-line-number-active);--stream-monaco-line-number-left:calc(var(--stream-monaco-gutter-marker-width) + var(--stream-monaco-gutter-gap));--stream-monaco-line-number-width:36px;--stream-monaco-line-number-align:center;--stream-monaco-original-margin-width:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2) + var(--stream-monaco-line-number-width));--stream-monaco-original-scrollable-left:var(--stream-monaco-original-margin-width);--stream-monaco-original-scrollable-width:calc(100% - var(--stream-monaco-original-margin-width));--stream-monaco-modified-margin-width:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2) + var(--stream-monaco-line-number-width));--stream-monaco-modified-scrollable-left:var(--stream-monaco-modified-margin-width);--stream-monaco-modified-scrollable-width:calc(100% - var(--stream-monaco-modified-margin-width));--stream-monaco-added-fg:var(--markstream-diff-added-fg);--stream-monaco-removed-fg:var(--markstream-diff-removed-fg);--stream-monaco-added-line:var(--markstream-diff-added-line);--stream-monaco-removed-line:var(--markstream-diff-removed-line);--stream-monaco-added-inline:var(--markstream-diff-added-inline);--stream-monaco-removed-inline:var(--markstream-diff-removed-inline);--stream-monaco-added-outline:transparent;--stream-monaco-removed-outline:transparent;--stream-monaco-added-inline-border:var(--markstream-diff-added-inline-border);--stream-monaco-removed-inline-border:var(--markstream-diff-removed-inline-border);--stream-monaco-added-line-shadow:none;--stream-monaco-removed-line-shadow:none;--stream-monaco-added-gutter:var(--markstream-diff-added-gutter);--stream-monaco-removed-gutter:var(--markstream-diff-removed-gutter);--stream-monaco-added-line-fill:var(--markstream-diff-added-line-fill);--stream-monaco-removed-line-fill:var(--markstream-diff-removed-line-fill);padding:4px 4px 8px}.code-block-container.is-diff.is-dark .code-editor-layer[data-v-1a55f98f]{background:var(--markstream-diff-stage-bg)}.code-editor-container.is-hidden[data-v-1a55f98f]{opacity:0;pointer-events:none}[data-v-1a55f98f] pre.code-pre-fallback{padding:var(--markstream-code-padding-y,8px) var(--markstream-code-padding-x,12px);padding-left:var(--markstream-code-padding-left,52px);color:var(--vscode-editor-foreground,inherit);font-size:var(--vscode-editor-font-size,12px);font-weight:400;font-family:var(--markstream-code-font-family,ui-monospace, SFMono-Regular, SF Mono, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace);background:0 0;margin:0}[data-v-1a55f98f] pre.code-pre-fallback>code{font-size:inherit;font-weight:inherit;line-height:inherit}[data-v-1a55f98f] pre.code-pre-fallback.is-wrap{white-space:pre-wrap;overflow-wrap:anywhere}.code-block-container.is-rendering .code-height-placeholder[data-v-1a55f98f]{background:linear-gradient(90deg,#0000000a 25%,#00000014 37%,#0000000a 63%);min-height:120px;animation:1.2s ease-in-out infinite code-skeleton-shimmer-1a55f98f}.code-loading-placeholder[data-v-1a55f98f]{min-height:120px;padding:1rem}.loading-skeleton[data-v-1a55f98f]{flex-direction:column;gap:.75rem;display:flex}.skeleton-line[data-v-1a55f98f]{background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%) 0 0/400% 100%;border-radius:.25rem;height:1rem;animation:1.2s ease-in-out infinite code-skeleton-shimmer-1a55f98f}.code-block-container.is-dark .skeleton-line[data-v-1a55f98f]{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%) 0 0/400% 100%}.skeleton-line.short[data-v-1a55f98f]{width:60%}@keyframes code-skeleton-shimmer-1a55f98f{0%{background-position:100% 0}to{background-position:0 0}}.code-action-btn[data-v-1a55f98f]{border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;min-width:2rem;min-height:2rem;padding:.5rem;font-family:inherit;line-height:1;display:inline-flex}.code-block-container.is-diff .icon-slot[data-v-1a55f98f]{width:28px;height:28px;color:var(--markstream-diff-added-fg);padding:5px;box-shadow:inset 0 1px #ffffffb3}.code-block-container.is-diff.is-dark .icon-slot[data-v-1a55f98f]{box-shadow:inset 0 1px #ffffff14,0 12px 28px -20px #38bdf873}.code-diff-stats[data-v-1a55f98f]{letter-spacing:.02em;font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin-right:4px;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.code-diff-stat[data-v-1a55f98f]{align-items:center;display:inline-flex}.code-diff-stat.removed[data-v-1a55f98f]{color:var(--vscode-diffEditor-removedTextForeground,var(--markstream-diff-removed-fg))}.code-diff-stat.added[data-v-1a55f98f]{color:var(--vscode-diffEditor-insertedTextForeground,var(--markstream-diff-added-fg))}.code-block-container.is-dark .code-diff-stat[data-v-1a55f98f]{border:1px solid #0000;border-radius:999px;padding:3px 9px;line-height:1;box-shadow:inset 0 1px #ffffff0d}.code-block-container.is-dark .code-diff-stat.removed[data-v-1a55f98f]{color:#fb7185;background:#9f123929;border-color:#fb718533}.code-block-container.is-dark .code-diff-stat.added[data-v-1a55f98f]{color:#2dd4bf;background:#0f766e29;border-color:#2dd4bf38}.code-action-btn[data-v-1a55f98f]:active{transform:scale(.98)}.code-action-btn[data-v-1a55f98f]:disabled{opacity:.5;cursor:not-allowed}.code-action-btn[data-v-1a55f98f]:disabled:hover{background-color:#0000}.icon-slot[data-v-1a55f98f]{justify-content:center;align-items:center;display:inline-flex}.icon-slot[data-v-1a55f98f] svg,.icon-slot[data-v-1a55f98f] img{width:100%;height:100%;display:block}@container (width<=640px){.code-block-container.is-diff .code-block-header[data-v-1a55f98f]{padding:16px 16px 12px}.code-block-container.is-diff .code-editor-layer[data-v-1a55f98f]{padding:4px 4px 8px}.code-diff-stats[data-v-1a55f98f]{gap:6px;font-size:12px}}[data-v-1a55f98f] .monaco-diff-editor .diffOverview{background-color:var(--vscode-editor-background)}[data-v-1a55f98f] .stream-monaco-diff-root .monaco-diff-editor .diffOverview,[data-v-1a55f98f] .stream-monaco-diff-root .decorationsOverviewRuler{opacity:0!important;pointer-events:none!important;background:0 0!important;border:0!important;width:0!important;min-width:0!important;max-width:0!important;display:none!important;overflow:hidden!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-diff-editor{box-shadow:none!important;border:0!important;border-radius:0!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-clickable)>:not(a){visibility:hidden!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines-compact .text{opacity:0!important}[data-v-1a55f98f] .stream-monaco-diff-root{--stream-monaco-gutter-gap:var(--markstream-diff-gutter-gap)!important;--stream-monaco-line-number:var(--markstream-diff-line-number)!important;--stream-monaco-line-number-active:var(--markstream-diff-line-number-active)!important;--stream-monaco-added-fg:var(--markstream-diff-added-fg)!important;--stream-monaco-removed-fg:var(--markstream-diff-removed-fg)!important;--stream-monaco-added-line:var(--markstream-diff-added-line)!important;--stream-monaco-removed-line:var(--markstream-diff-removed-line)!important;--stream-monaco-added-inline:var(--markstream-diff-added-inline)!important;--stream-monaco-removed-inline:var(--markstream-diff-removed-inline)!important;--stream-monaco-added-inline-border:var(--markstream-diff-added-inline-border)!important;--stream-monaco-removed-inline-border:var(--markstream-diff-removed-inline-border)!important;--stream-monaco-added-line-fill:var(--markstream-diff-added-line-fill)!important;--stream-monaco-removed-line-fill:var(--markstream-diff-removed-line-fill)!important;--stream-monaco-added-gutter:var(--markstream-diff-added-gutter)!important;--stream-monaco-removed-gutter:var(--markstream-diff-removed-gutter)!important;--stream-monaco-added-line-shadow:none!important;--stream-monaco-removed-line-shadow:none!important;--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg)!important;--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-unchanged-bridge-source),[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg)!important;--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg)!important;background:var(--stream-monaco-unchanged-bg)!important;color:var(--stream-monaco-unchanged-fg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{right:calc(var(--stream-monaco-gutter-marker-width) - var(--stream-monaco-unchanged-rail-width) / 2 + (var(--stream-monaco-gutter-gap) * 2))!important;width:auto!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important;color:var(--markstream-diff-unchanged-fg)!important;padding-left:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important;padding-right:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge.stream-monaco-diff-unchanged-bridge-line-info .stream-monaco-unchanged-rail,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail{border-right-color:var(--markstream-diff-unchanged-divider)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal{border-bottom-color:#0000!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-both .stream-monaco-unchanged-reveal:first-child{border-bottom-color:var(--markstream-diff-unchanged-divider)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-top-only .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-bottom-only .stream-monaco-unchanged-reveal{border-bottom:0!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-meta,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-count,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-metadata-label,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{color:var(--markstream-diff-unchanged-fg)!important}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.original .diff-hidden-lines .center{justify-content:center;align-items:center}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.original .diff-hidden-lines .center>div:first-child{align-items:center;min-width:100%;display:flex;justify-content:center!important;width:100%!important}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.modified .diff-hidden-lines .center>div:first-child{display:none!important}[data-v-1a55f98f] .markstream-inline-fold-proxy{appearance:none;box-shadow:none;color:var(--vscode-diffEditor-unchangedRegionForeground,currentColor);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;display:inline-flex}[data-v-1a55f98f] .markstream-inline-fold-proxy:hover,[data-v-1a55f98f] .markstream-inline-fold-proxy:focus-visible{color:var(--vscode-editorLink-activeForeground,var(--vscode-diffEditor-unchangedRegionForeground,currentColor))}[data-v-1a55f98f] .markstream-inline-fold-proxy:focus-visible{outline:1px solid var(--vscode-focusBorder,currentColor);outline-offset:1px}[data-v-1a55f98f] .markstream-inline-fold-proxy .codicon{color:inherit;width:16px;height:16px;font-size:16px;line-height:16px}._mermaid[data-v-6eade7e5]{content-visibility:auto;contain:content;contain-intrinsic-size:360px 240px;font-family:inherit}._mermaid[data-v-6eade7e5] svg{width:100%;height:auto;display:block}.fullscreen[data-v-6eade7e5]{width:100%;height:100%!important;max-height:100%!important}.mermaid-action-btn[data-v-6eade7e5]{font-family:inherit}.mermaid-action-btn[data-v-6eade7e5]:active{transform:scale(.98)}.mermaid-dialog-enter-from[data-v-6eade7e5],.mermaid-dialog-leave-to[data-v-6eade7e5]{opacity:0}.mermaid-dialog-enter-active[data-v-6eade7e5],.mermaid-dialog-leave-active[data-v-6eade7e5]{transition:opacity .2s}.mermaid-dialog-enter-from .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-to .dialog-panel[data-v-6eade7e5]{opacity:.98;transform:translateY(8px)scale(.98)}.mermaid-dialog-enter-to .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-from .dialog-panel[data-v-6eade7e5]{opacity:1;transform:translateY(0)scale(1)}.mermaid-dialog-enter-active .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-active .dialog-panel[data-v-6eade7e5]{transition:transform .2s,opacity .2s}.infographic-action-btn[data-v-e17a4388]{font-family:inherit}.infographic-action-btn[data-v-e17a4388]:active{transform:scale(.98)}.fullscreen[data-v-e17a4388]{width:100%;height:100%!important;max-height:100%!important}.infographic-dialog-enter-from[data-v-e17a4388],.infographic-dialog-leave-to[data-v-e17a4388]{opacity:0}.infographic-dialog-enter-active[data-v-e17a4388],.infographic-dialog-leave-active[data-v-e17a4388]{transition:opacity .2s}.infographic-dialog-enter-from .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-to .dialog-panel[data-v-e17a4388]{opacity:.98;transform:translateY(8px)scale(.98)}.infographic-dialog-enter-to .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-from .dialog-panel[data-v-e17a4388]{opacity:1;transform:translateY(0)scale(1)}.infographic-dialog-enter-active .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-active .dialog-panel[data-v-e17a4388]{transition:transform .2s,opacity .2s}.d2-block-body[data-v-90ebc4d2]{position:relative}.d2-source[data-v-90ebc4d2]{font-family:var(--vscode-editor-font-family,"Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}.d2-code[data-v-90ebc4d2]{white-space:pre;font-size:.875rem;line-height:1.5}.d2-render[data-v-90ebc4d2]{overflow:auto}.d2-svg[data-v-90ebc4d2] svg.markstream-d2-root-svg{width:100%;max-width:100%;height:auto;display:block}.mode-btn[data-v-90ebc4d2]{opacity:.7;transition:opacity .2s}.mode-btn.is-active[data-v-90ebc4d2]{opacity:1;font-weight:600}.d2-action-btn[data-v-90ebc4d2]{opacity:.7;transition:opacity .2s}.d2-action-btn[data-v-90ebc4d2]:hover{opacity:1}.d2-action-btn[data-v-90ebc4d2]:disabled{opacity:.3;cursor:not-allowed}.d2-error[data-v-90ebc4d2]{color:#dc2626}.tool-call-node[data-v-c4d46f41]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-c4d46f41]{background:#eff1f3;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:28px;padding:4px 10px;transition:background-color .2s,border-color .2s;display:flex}.tool-call-node__header--clickable[data-v-c4d46f41]{cursor:pointer}.tool-call-node__header--clickable[data-v-c4d46f41]:hover{background:#eff1f3;outline:1px solid #d8dde3}.tool-call-node__header--clickable[data-v-c4d46f41]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 24%, transparent);outline-offset:2px}.tool-call-node__prefix[data-v-c4d46f41]{align-items:center;gap:6px;min-width:0;display:inline-flex}.tool-call-node__title[data-v-c4d46f41]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tool-call-node__prefix-icon[data-v-c4d46f41]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.tool-call-node__prefix-icon.is-spinning[data-v-c4d46f41]{animation:1s linear infinite tool-spin-c4d46f41}.tool-call-node.is-running .tool-call-node__prefix[data-v-c4d46f41],.tool-call-node.is-running .tool-call-node__toggle[data-v-c4d46f41]{color:var(--primary-color,#1677ff)}.tool-call-node.is-running .tool-call-node__header[data-v-c4d46f41]{background:#f2f5fa;border-color:#d6deea}.tool-call-node.is-success .tool-call-node__prefix[data-v-c4d46f41],.tool-call-node.is-success .tool-call-node__toggle[data-v-c4d46f41]{color:#8f98a3}.tool-call-node.is-success .tool-call-node__header[data-v-c4d46f41]{background:#f3f5f7;border-color:#dde2e7}.tool-call-node.is-error .tool-call-node__prefix[data-v-c4d46f41],.tool-call-node.is-error .tool-call-node__toggle[data-v-c4d46f41]{color:var(--error-color,#ff4d4f)}.tool-call-node.is-error .tool-call-node__header[data-v-c4d46f41]{background:#faf1f1;border-color:#edd7d8}.tool-call-node__toggle[data-v-c4d46f41]{color:inherit;opacity:0;flex-shrink:0;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;transition:opacity .15s;display:inline-flex}.tool-call-node__header--clickable:hover .tool-call-node__toggle[data-v-c4d46f41],.tool-call-node__header--clickable:focus-visible .tool-call-node__toggle[data-v-c4d46f41]{opacity:1}.tool-call-node__toggle-icon[data-v-c4d46f41]{font-size:12px}.tool-call-node__detail[data-v-c4d46f41]{background:#fbfdff;border:1px solid #edf2fa;border-radius:12px;margin-top:6px;padding:10px 12px}.tool-call-node__line[data-v-c4d46f41]{align-items:flex-start;gap:4px;margin:0;font-size:12px;line-height:1.6;display:flex}.tool-call-node__label[data-v-c4d46f41]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-shrink:0}.tool-call-node__value[data-v-c4d46f41]{color:var(--text-color,var(--text));word-break:break-all}.tool-call-node__value--overflow[data-v-c4d46f41]{-webkit-line-clamp:2;cursor:help;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@keyframes tool-spin-c4d46f41{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__approval[data-v-c4d46f41]{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border:1px solid #e8f0fe;border-radius:10px;margin-top:10px;padding:12px 14px}.tool-call-node__approval-desc[data-v-c4d46f41]{color:#5a6474;margin-bottom:8px;font-size:12px;line-height:1.6}.tool-call-node__approval-args[data-v-c4d46f41]{align-items:flex-start;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.tool-call-node__approval-code[data-v-c4d46f41]{color:#3a5080;white-space:pre-wrap;word-break:break-all;background:#f0f4fc;border:1px solid #dee6f5;border-radius:6px;flex:1;max-height:120px;padding:6px 8px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;display:block;overflow-y:auto}.tool-call-node__approval-actions[data-v-c4d46f41]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-call-node__btn[data-v-c4d46f41]{cursor:pointer;border:1px solid #0000;border-radius:6px;outline:none;justify-content:center;align-items:center;padding:5px 14px;font-size:12px;font-weight:500;line-height:1.4;transition:all .2s;display:inline-flex}.tool-call-node__btn[data-v-c4d46f41]:disabled{opacity:.55;cursor:not-allowed}.tool-call-node__btn-approve[data-v-c4d46f41]{color:#fff;background:#1677ff;border-color:#1677ff}.tool-call-node__btn-approve[data-v-c4d46f41]:not(:disabled):hover{background:#4096ff;border-color:#4096ff}.tool-call-node__btn-approve[data-v-c4d46f41]:not(:disabled):active{background:#0958d9;border-color:#0958d9}.tool-call-node__btn-reject[data-v-c4d46f41]{color:#cf1322;background:#fff1f0;border-color:#ffccc7}.tool-call-node__btn-reject[data-v-c4d46f41]:not(:disabled):hover{color:#fff;background:#ff4d4f;border-color:#ff4d4f}.tool-call-node__btn-reject[data-v-c4d46f41]:not(:disabled):active{color:#fff;background:#a8071a;border-color:#a8071a}.tool-call-node__btn-edit[data-v-c4d46f41]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-edit[data-v-c4d46f41]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__btn-cancel[data-v-c4d46f41]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-cancel[data-v-c4d46f41]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__approval-edit[data-v-c4d46f41]{margin-top:8px}.tool-call-node__textarea[data-v-c4d46f41]{resize:vertical;box-sizing:border-box;border:1px solid #d9d9d9;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-family:monospace;font-size:12px}.tool-call-node__textarea[data-v-c4d46f41]:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1f}.tool-call-node__approval-edit-actions[data-v-c4d46f41]{align-items:center;gap:8px;margin-top:8px;display:flex}.tool-call-node__approval-result[data-v-c4d46f41]{border-radius:6px;align-items:center;gap:6px;padding:8px 10px;font-size:12px;font-weight:500;display:flex}.tool-call-node__approval-result.is-approved[data-v-c4d46f41]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__approval-result.is-rejected[data-v-c4d46f41]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.approval-result-icon[data-v-c4d46f41]{font-size:14px}.approval-result-enter-active[data-v-c4d46f41],.approval-result-leave-active[data-v-c4d46f41]{transition:all .25s}.approval-result-enter-from[data-v-c4d46f41],.approval-result-leave-to[data-v-c4d46f41]{opacity:0;transform:translateY(-4px)}.tool-call-node__waiting-badge[data-v-c4d46f41]{color:#d46b08;white-space:nowrap;background:#fff7e6;border:1px solid #ffd591;border-radius:4px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.tool-call-node__result-badge[data-v-c4d46f41]{white-space:nowrap;border-radius:4px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.tool-call-node__result-badge.is-approved[data-v-c4d46f41]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__result-badge.is-rejected[data-v-c4d46f41]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.sub-agent-node[data-v-526ce89d]{border:1px solid var(--border-color-split,#e5e7eb);background:#f9fafb;border-radius:6px;margin:4px 0;overflow:hidden}.sub-agent-node__header[data-v-526ce89d]{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f3f4f6;justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;transition:background .15s;display:flex}.sub-agent-node__header[data-v-526ce89d]:hover{background:#e9eaec}.sub-agent-node__prefix[data-v-526ce89d]{align-items:center;gap:6px;display:flex}.sub-agent-node__icon[data-v-526ce89d]{color:#6b7280;font-size:14px}.sub-agent-node__icon.is-spinning[data-v-526ce89d]{animation:1s linear infinite sub-spin-526ce89d}@keyframes sub-spin-526ce89d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sub-agent-node__name[data-v-526ce89d]{font-size:13px;font-weight:500}.sub-agent-node__badge[data-v-526ce89d]{color:#4338ca;background:#e0e7ff;border:1px solid #c7d2fe;border-radius:4px;align-items:center;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.sub-agent-node__chevron[data-v-526ce89d]{color:#9ca3af;font-size:12px}.sub-agent-node__body[data-v-526ce89d]{padding:8px 12px 10px}.sub-agent-node__tools[data-v-526ce89d]{margin-bottom:8px}.sub-agent-node__content[data-v-526ce89d]{font-size:13px}.think-node[data-v-526ce89d]{margin:4px 0}.think-node__layout[data-v-526ce89d]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-526ce89d]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-526ce89d]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-526ce89d]{flex:none;align-items:center;gap:6px;display:inline-flex}.think-node__prefix-icon[data-v-526ce89d]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node__content[data-v-526ce89d]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;position:relative}.think-node__content--inline[data-v-526ce89d]{flex:1}.think-node__content.is-collapsed[data-v-526ce89d]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-526ce89d]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-526ce89d]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;max-height:240px;margin-top:2px;padding:8px 10px 8px 28px;overflow-y:auto}.think-node__toggle[data-v-526ce89d]{color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;display:inline-flex}.think-node__toggle-icon[data-v-526ce89d]{font-size:10px}.msg-renderer__loading[data-v-4bb03a95]{align-items:center;min-height:28px;display:flex}.msg-renderer__loading-text[data-v-4bb03a95]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));font-size:14px}.msg-renderer__attachments[data-v-4bb03a95]{flex-wrap:wrap;gap:8px;margin-top:1.25em;display:flex}.think-node[data-v-4bb03a95]{margin:6px 0}.think-node__layout[data-v-4bb03a95]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-4bb03a95]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-4bb03a95]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-4bb03a95]{flex:none;align-items:center;gap:6px;padding-top:1px;display:inline-flex}.think-node__prefix-icon[data-v-4bb03a95]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node__content[data-v-4bb03a95]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;scrollbar-width:none;position:relative}.think-node__content[data-v-4bb03a95]::-webkit-scrollbar{width:0;height:0}.think-node__content--inline[data-v-4bb03a95]{flex:1}.think-node__content.is-collapsed[data-v-4bb03a95]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-4bb03a95]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-4bb03a95]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;max-height:240px;margin-top:2px;padding:8px;overflow-y:auto}.think-node__toggle[data-v-4bb03a95]{color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;display:inline-flex}.think-node__toggle-icon[data-v-4bb03a95]{font-size:10px}.tool-call-node[data-v-d1dff106]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-d1dff106]{background:#f5f6f7;border:1px solid #e5e7eb;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:28px;padding:4px 10px;transition:background-color .2s,border-color .2s;display:flex}.tool-call-node__header--clickable[data-v-d1dff106]{cursor:pointer}.tool-call-node__header--clickable[data-v-d1dff106]:hover{background:#ebecee}.tool-call-node__prefix[data-v-d1dff106]{align-items:center;gap:6px;min-width:0;display:flex}.tool-call-node__prefix-icon[data-v-d1dff106]{flex-shrink:0;font-size:14px}.tool-call-node__prefix-icon.is-spinning[data-v-d1dff106]{animation:1s linear infinite spin-d1dff106}@keyframes spin-d1dff106{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__title[data-v-d1dff106]{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tool-call-node__toggle[data-v-d1dff106]{flex-shrink:0}.tool-call-node__toggle-icon[data-v-d1dff106]{color:#9ca3af;font-size:12px}.smdr__body[data-v-d1dff106]{border:1px solid #e5e7eb;border-radius:8px;margin-top:8px;overflow:hidden}.smdr__error[data-v-d1dff106]{color:#ef4444;background:#fef2f2;padding:12px}.smdr__tabs[data-v-d1dff106]{background:#f9fafb;border-bottom:1px solid #e5e7eb;gap:0;display:flex;overflow-x:auto}.smdr__tab[data-v-d1dff106]{cursor:pointer;color:#6b7280;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:12px;transition:color .15s,border-color .15s}.smdr__tab[data-v-d1dff106]:hover{color:#374151}.smdr__tab--active[data-v-d1dff106]{color:var(--primary-color,#1677ff);border-bottom-color:var(--primary-color,#1677ff)}.smdr__content[data-v-d1dff106]{max-height:400px;padding:10px 12px;overflow-y:auto}.todos-top-panel[data-v-d03a50e5]{background:linear-gradient(#f9fbff 0%,#f3f8ff 100%);border:1px solid #d7e6ff;border-radius:12px;margin:0 20px 12px;padding:12px 14px}.todos-top-panel__header[data-v-d03a50e5]{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.todos-top-panel__title[data-v-d03a50e5]{color:#1f2d3d;font-size:13px;font-weight:600}.todos-top-panel__meta[data-v-d03a50e5]{color:#4e6796;align-items:center;gap:4px;font-size:12px;display:inline-flex}.todos-top-panel__meta-icon[data-v-d03a50e5]{font-size:12px}.todos-top-panel__list[data-v-d03a50e5]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.todos-top-panel__item[data-v-d03a50e5]{align-items:flex-start;gap:8px;display:flex}.todos-top-panel__status[data-v-d03a50e5]{flex-shrink:0;align-items:center;margin-top:1px;font-size:14px;display:flex}.todos-top-panel__status.is-pending[data-v-d03a50e5]{color:#9ca3af}.todos-top-panel__status.is-in_progress[data-v-d03a50e5]{color:#1677ff}.todos-top-panel__status.is-completed[data-v-d03a50e5]{color:#22c55e}.todos-top-panel__status.is-cancelled[data-v-d03a50e5]{color:#ef4444}.todos-top-panel__status .is-rotating[data-v-d03a50e5]{animation:1s linear infinite spin-d03a50e5}@keyframes spin-d03a50e5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.todos-top-panel__text[data-v-d03a50e5]{color:#374151;font-size:13px;line-height:1.5}.chat-panel[data-v-7d1dc6c2]{background:#fff;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.chat-header[data-v-7d1dc6c2]{border-bottom:1px solid var(--border-color-split,var(--border));flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.header-meta[data-v-7d1dc6c2]{flex-direction:column;gap:4px;min-width:0;display:flex}.header-actions[data-v-7d1dc6c2]{flex-shrink:0;align-items:center;gap:12px;display:flex}.conv-heading[data-v-7d1dc6c2]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600;line-height:1.4}.conv-subheading[data-v-7d1dc6c2]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:0;font-size:13px;line-height:1.5}.chat-body[data-v-7d1dc6c2]{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.empty-state[data-v-7d1dc6c2]{height:100%;color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.empty-icon[data-v-7d1dc6c2]{color:var(--primary-color,var(--primary));font-size:32px}.empty-title[data-v-7d1dc6c2]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600}.empty-sub[data-v-7d1dc6c2]{margin:0;font-size:13px}.messages-wrapper[data-v-7d1dc6c2]{flex:1;width:100%;min-height:0;display:flex}.input-footer[data-v-7d1dc6c2]{border-top:1px solid var(--border-color-split,var(--border));flex-shrink:0;padding:12px 16px 16px}.input-panel[data-v-7d1dc6c2]{width:100%}.sender-footer[data-v-7d1dc6c2]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.sender-footer__left[data-v-7d1dc6c2]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sender-footer__right[data-v-7d1dc6c2]{flex-shrink:0;align-items:center;gap:4px;display:flex}.agent-chat[data-v-2041f5e6]{background:var(--component-background,#fff);width:100%;height:100%;display:flex;position:relative;overflow:hidden}.agent-chat__sidebar[data-v-2041f5e6]{background:var(--bg-elevated,#f8fafc);border-right:1px solid var(--border-color-split,var(--border));flex-direction:column;flex-shrink:0;gap:10px;width:260px;min-width:260px;height:100%;padding:16px 12px;display:flex;overflow:hidden}.agent-chat__close-btn[data-v-2041f5e6]{display:none}.agent-chat__sidebar-header[data-v-2041f5e6]{justify-content:space-between;align-items:center;display:flex}.agent-chat__sidebar-title[data-v-2041f5e6]{color:var(--text-color,var(--text));font-size:13px;font-weight:600}.agent-chat__new-btn[data-v-2041f5e6]{height:26px;padding:0 6px;font-size:12px}.agent-chat__agent-select[data-v-2041f5e6]{width:100%}.agent-chat__search[data-v-2041f5e6]{border-radius:8px!important}.agent-chat__state-tip[data-v-2041f5e6]{color:var(--text-color-secondary,var(--text-muted));align-items:center;padding:4px 8px;font-size:12px;display:flex}.agent-chat__state-tip--error[data-v-2041f5e6]{color:#f87171}.agent-chat__conv-list[data-v-2041f5e6]{flex:1;overflow:hidden auto}.agent-chat__conv-list[data-v-2041f5e6]::-webkit-scrollbar{width:3px}.agent-chat__conv-list[data-v-2041f5e6]::-webkit-scrollbar-thumb{background:#00000014;border-radius:99px}.agent-chat__main[data-v-2041f5e6]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.agent-chat__toolbar[data-v-2041f5e6]{flex-shrink:0;padding:10px 12px 0;display:none}.agent-chat__history-btn[data-v-2041f5e6]{border-radius:999px;font-size:13px}.agent-chat__panel[data-v-2041f5e6]{flex:1;min-height:0}.agent-chat__mask[data-v-2041f5e6]{display:none}@media (width<=768px){.agent-chat__sidebar[data-v-2041f5e6]{z-index:100;border-right:none;width:260px;height:100dvh;transition:left .25s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:-260px;box-shadow:4px 0 24px #0000002e}.agent-chat__sidebar.is-open[data-v-2041f5e6]{left:0}.agent-chat__close-btn[data-v-2041f5e6]{width:28px;height:28px;color:var(--text-color,var(--text));cursor:pointer;z-index:1;background:#0000000f;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;top:12px;right:12px}.agent-chat__toolbar[data-v-2041f5e6]{display:block}.agent-chat__mask[data-v-2041f5e6]{z-index:90;background:#0f172a66;display:block;position:fixed;inset:0}}
|
|
1
|
+
.agent-picker-wrap[data-v-6d20e2be]{align-items:center;display:inline-flex}.agent-picker-label[data-v-6d20e2be]{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-6d20e2be]:hover{background:var(--bg-color-secondary,#f5f5f5)}.agent-picker-label--disabled[data-v-6d20e2be]{cursor:not-allowed;opacity:.5}.agent-picker-label--disabled[data-v-6d20e2be]:hover{background:0 0}.agent-picker-arrow[data-v-6d20e2be]{color:var(--text-color-secondary,#8c8c8c);font-size:10px;transition:transform .15s}.agent-picker-menu[data-v-6d20e2be]{min-width:180px;max-width:280px}.agent-menu-item[data-v-6d20e2be]{justify-content:space-between;align-items:center;gap:6px;width:100%;display:flex}.agent-menu-label[data-v-6d20e2be]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.is-active .agent-menu-label[data-v-6d20e2be]{color:var(--primary-color,#1677ff);font-weight:600}.agent-menu-edit[data-v-6d20e2be]{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-6d20e2be]:hover{background:var(--primary-color-bg,#e6f4ff)}.agent-menu-del[data-v-6d20e2be]{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-6d20e2be]:hover{background:var(--error-color-bg,#fff2f0)}.agent-menu-add[data-v-6d20e2be]{color:var(--primary-color,#1677ff)}.think-node[data-v-5a2f210e]{margin:6px 0}.think-node__layout[data-v-5a2f210e]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-5a2f210e]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-5a2f210e]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-5a2f210e]{flex:none;align-items:center;gap:6px;padding-top:1px;display:inline-flex}.think-node__prefix-icon[data-v-5a2f210e]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node.is-thinking .think-node__prefix[data-v-5a2f210e],.think-node.is-thinking .think-node__toggle[data-v-5a2f210e]{color:var(--primary-color,#1677ff)}.think-node__prefix-icon.is-spinning[data-v-5a2f210e]{animation:1s linear infinite think-node-spin-5a2f210e}.think-node__content[data-v-5a2f210e]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;position:relative}.think-node__content--inline[data-v-5a2f210e]{flex:1}.think-node__content.is-collapsed[data-v-5a2f210e]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-5a2f210e]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-5a2f210e]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;margin-top:2px;padding:8px 10px 8px 28px;overflow-y:auto}.think-node__toggle[data-v-5a2f210e]{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:4px;min-height:20px;padding:2px 6px;font-size:12px;line-height:1;transition:background-color .2s,color .2s;display:inline-flex}.think-node__toggle[data-v-5a2f210e]:hover{background:color-mix(in srgb, var(--primary-color,#1677ff) 8%, transparent);color:color-mix(in srgb, var(--primary-color,#1677ff) 86%, #000)}.think-node__toggle[data-v-5a2f210e]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 20%, transparent);outline-offset:2px;border-radius:4px}.think-node__toggle-icon[data-v-5a2f210e]{font-size:12px}@keyframes think-node-spin-5a2f210e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.blockquote[data-v-6d8bbd17]{border-left:.25rem solid var(--blockquote-border-color,#e2e8f0);quotes:"“" "”" "‘" "’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em;font-style:italic;font-weight:500}.blockquote[data-v-6d8bbd17] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.checkbox-node[data-v-8dc6c46f]{vertical-align:middle;margin-right:.5rem}.checkbox-input[data-v-8dc6c46f]{cursor:default;margin:0}.definition-list[data-v-f88691d6]{margin:0 0 1rem}.definition-term[data-v-f88691d6]{margin-top:.5rem;font-weight:600}.definition-desc[data-v-f88691d6]{margin-bottom:.5rem;margin-left:1rem}.definition-list[data-v-f88691d6] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.emoji-node[data-v-de55dc97]{display:inline-block}.footnote-reference[data-v-01af0fee]{font-size:.75em;line-height:0}.footnote-link[data-v-01af0fee]{color:#0366d6;text-decoration:none}.footnote-link[data-v-01af0fee]:hover{text-decoration:underline}.html-inline-node[data-v-71cd1a9f]{display:inline}.html-inline-node--loading[data-v-71cd1a9f]{opacity:.85}code[data-v-ffb68151]{color:hsl(var(--foreground));background-color:hsl(var(--secondary));border:1px solid hsl(var(--border) / .9)}.inline-code-stream-delta[data-v-ffb68151]{animation-duration:var(--stream-update-fade-duration,var(--typewriter-fade-duration,.9s));animation-timing-function:var(--stream-update-fade-ease,var(--typewriter-fade-ease,ease-out));will-change:opacity;animation-fill-mode:both}.inline-code-stream-delta--a[data-v-ffb68151]{animation-name:inline-code-stream-update-fade-a-ffb68151}.inline-code-stream-delta--b[data-v-ffb68151]{animation-name:inline-code-stream-update-fade-b-ffb68151}@keyframes inline-code-stream-update-fade-a-ffb68151{0%{opacity:0}to{opacity:1}}@keyframes inline-code-stream-update-fade-b-ffb68151{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.inline-code-stream-delta[data-v-ffb68151]{animation:none!important}}.tooltip-enter-from[data-v-d524cc01]{opacity:0;transform:translateY(-6px)scale(.98)}.tooltip-enter-to[data-v-d524cc01],.tooltip-leave-from[data-v-d524cc01]{opacity:1;transform:translateY(0)scale(1)}.tooltip-leave-to[data-v-d524cc01]{opacity:0;transform:translateY(-6px)scale(.98)}.tooltip-enter-active[data-v-d524cc01],.tooltip-leave-active[data-v-d524cc01]{transition:opacity .12s linear}.tooltip-element[data-v-d524cc01]{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1)}.image-node__img[data-v-03adbc6f],.placeholder-layer[data-v-03adbc6f]{max-width:24rem}.image-node__img--inline[data-v-03adbc6f]{vertical-align:middle;display:inline-block;-o-object-fit:initial!important;object-fit:initial!important;width:auto!important;height:auto!important;min-height:0!important}.placeholder-layer--inline[data-v-03adbc6f]{min-height:auto!important}.image-node__error--inline[data-v-03adbc6f]{vertical-align:middle;display:inline-flex}.img-switch-enter-active[data-v-03adbc6f],.img-switch-leave-active[data-v-03adbc6f]{transition:opacity .22s,transform .22s}.img-switch-enter-from[data-v-03adbc6f],.img-switch-leave-to[data-v-03adbc6f]{opacity:0;transform:translateY(6px)}.img-switch-enter-to[data-v-03adbc6f],.img-switch-leave-from[data-v-03adbc6f]{opacity:1;transform:translateY(0)}.placeholder-layer[data-v-03adbc6f]{will-change:transform,opacity}@media (prefers-reduced-motion:reduce){.spinner[data-v-03adbc6f]{animation:none!important}.img-switch-enter-active[data-v-03adbc6f],.img-switch-leave-active[data-v-03adbc6f]{transition:none!important}}.text-node[data-v-03641323]{font-weight:inherit;vertical-align:baseline;display:inline}.text-node-center[data-v-03641323]{justify-content:center;width:100%;display:inline-flex}.text-node-stream-delta[data-v-03641323]{animation-duration:var(--stream-update-fade-duration,var(--typewriter-fade-duration,.9s));animation-timing-function:var(--stream-update-fade-ease,var(--typewriter-fade-ease,ease-out));will-change:opacity;animation-fill-mode:both}.text-node-stream-delta--a[data-v-03641323]{animation-name:text-node-stream-update-fade-a-03641323}.text-node-stream-delta--b[data-v-03641323]{animation-name:text-node-stream-update-fade-b-03641323}@keyframes text-node-stream-update-fade-a-03641323{0%{opacity:0}to{opacity:1}}@keyframes text-node-stream-update-fade-b-03641323{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.text-node-stream-delta[data-v-03641323]{animation:none!important}}.superscript-node[data-v-6dc1e3ba]{vertical-align:super;font-size:.8em}.subscript-node[data-v-69de9b81]{vertical-align:sub;font-size:.8em}.strong-node[data-v-af3ce037]{font-weight:700}.strikethrough-node[data-v-904d5bd1]{text-decoration:line-through}.link-node[data-v-a4831c9e]{color:var(--link-color,#0366d6);text-decoration:none}.link-node[data-v-a4831c9e]:hover{text-underline-offset:.2rem;text-decoration:underline}.link-loading .link-text-wrapper[data-v-a4831c9e]{position:relative}.link-loading[data-v-a4831c9e]{color:var(--link-color,#0366d6)}.link-loading .link-text[data-v-a4831c9e]{z-index:2;position:relative}.link-loading-indicator[data-v-a4831c9e]{height:var(--underline-height,2px);left:0;right:0;bottom:var(--underline-bottom,-3px);will-change:opacity;opacity:var(--underline-rest-opacity,.18);animation:underlinePulse-a4831c9e var(--underline-duration,1.6s) var(--underline-timing,ease-in-out) var(--underline-iteration,infinite);background:currentColor;border-radius:999px;position:absolute}@keyframes underlinePulse-a4831c9e{0%,to{opacity:var(--underline-rest-opacity,.18)}50%{opacity:var(--underline-opacity,.35)}}@media (prefers-reduced-motion:reduce){.link-loading-indicator[data-v-a4831c9e]{opacity:var(--underline-rest-opacity,.18);animation:none}}.insert-node[data-v-ab1ec9bc]{text-decoration:underline}.highlight-node[data-v-38e31bf6]{background-color:#ff0;padding:0 .2rem}.emphasis-node[data-v-8264674d]{font-style:italic}.footnote-anchor[data-v-4756ce0d]{margin-left:.5rem}.markstream-vue [class*=footnote-] .markdown-renderer,.markstream-vue .flex-1 .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.hard-break[data-v-50c58f70]{display:block}.heading-node[data-v-ffb7cf51]{font-weight:500;line-height:1.25}hr+.heading-node[data-v-ffb7cf51]{margin-top:0}.heading-1[data-v-ffb7cf51]{margin-top:0;margin-bottom:.888889em;font-size:2.25rem;font-weight:800;line-height:1.11111}.heading-2[data-v-ffb7cf51]{margin-top:2rem;margin-bottom:1rem;font-size:1.5rem;font-weight:700;line-height:1.33333}.heading-3[data-v-ffb7cf51]{margin-top:1.6em;margin-bottom:.6em;font-size:1.25rem;font-weight:600;line-height:1.66667}.heading-4[data-v-ffb7cf51]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}.heading-5[data-v-ffb7cf51],.heading-6[data-v-ffb7cf51]{margin:0;font-size:1rem;line-height:1.5rem}ol>.list-item[data-v-ce59e808]::marker{color:var(--list-item-counter-marker,#64748b);line-height:1.6}ul>.list-item[data-v-ce59e808]::marker{color:var(--list-item-marker,#cbd5e1)}.list-item[data-v-ce59e808] .markdown-renderer{content-visibility:visible;contain-intrinsic-size:0px 0px;contain:none}.list-node[data-v-8e81cbc8]{margin-top:1.25rem;margin-bottom:1.25rem;padding-left:1.625em}.list-decimal[data-v-8e81cbc8]{list-style-type:decimal}.list-disc[data-v-8e81cbc8]{list-style-type:disc}@media not all and (width>=1024px){.list-disc[data-v-8e81cbc8]{margin-top:1.33333em;margin-bottom:1.33333em;padding-left:1.55556em}}.html-block-node__raw[data-v-b7cace40]{white-space:pre-wrap;overflow-wrap:anywhere;opacity:.85}.html-block-node__placeholder[data-v-b7cace40]{flex-direction:column;gap:.35rem;padding:.5rem 0;display:flex}.html-block-node__placeholder-bar[data-v-b7cace40]{background-image:linear-gradient(90deg,#94a3b859,#94a3b81a,#94a3b859);background-size:200% 100%;border-radius:9999px;height:.8rem;animation:1.2s infinite html-block-node-shimmer-b7cace40;display:block}@keyframes html-block-node-shimmer-b7cace40{0%{background-position:0 0}to{background-position:200% 0}}.paragraph-node[data-v-944f1fd5]{margin:1.25em 0}li .paragraph-node[data-v-944f1fd5]{margin:0}.markstream-vue pre[class^=language-],.markstream-vue pre[class*=\ language-]{white-space:pre;tab-size:2;font-variant-ligatures:none;contain:content;backface-visibility:hidden;-webkit-font-smoothing:antialiased;overflow:auto;transform:translateZ(0)}.markstream-vue pre[class^=language-]>code,.markstream-vue pre[class*=\ language-]>code{display:block}.markstream-vue pre[class^=language-]:focus,.markstream-vue pre[class*=\ language-]:focus{outline:2px solid var(--vmdr-focus,#3b82f6);outline-offset:2px}.table-node-wrapper[data-v-369096fa]{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-gutter:stable;max-width:100%;position:relative;overflow-x:auto}.table-node[data-v-369096fa]{table-layout:fixed;border-collapse:collapse;width:100%}.table-node[data-v-369096fa] th,.table-node[data-v-369096fa] td{white-space:normal;overflow-wrap:break-word;word-break:normal}.table-node--loading tbody td[data-v-369096fa]{position:relative;overflow:hidden}.table-node--loading tbody td[data-v-369096fa]>*{visibility:hidden}.table-node--loading tbody td[data-v-369096fa]:after{content:"";will-change:background-position;background:linear-gradient(90deg,#94a3b829 25%,#94a3b847,#94a3b829 75%) 0 0/200% 100%;border-radius:.25rem;animation:1.2s linear infinite table-node-shimmer-369096fa;position:absolute;inset:0}.table-node__loading[data-v-369096fa]{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.table-node__spinner[data-v-369096fa]{will-change:transform;border:2px solid #5e687940;border-top-color:#5e6879cc;border-radius:9999px;width:2.5rem;height:2.5rem}.table-node-fade-enter-active[data-v-369096fa],.table-node-fade-leave-active[data-v-369096fa]{transition:opacity .18s}.table-node-fade-enter-from[data-v-369096fa],.table-node-fade-leave-to[data-v-369096fa]{opacity:0}[data-v-369096fa] .table-node .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px;display:contents}[data-v-369096fa] .table-node .markdown-renderer .node-slot,[data-v-369096fa] .table-node .markdown-renderer .node-content,[data-v-369096fa] .table-node .markdown-renderer .node-space{display:contents}[data-v-369096fa] .table-node .text-node,[data-v-369096fa] .table-node code{white-space:inherit;overflow-wrap:inherit;word-break:inherit;max-width:none}@keyframes table-node-shimmer-369096fa{0%{background-position:0 0}50%{background-position:100% 0}to{background-position:200% 0}}.hr+.table-node-wrapper[data-v-369096fa],.hr+.table-node-wrapper .table-node[data-v-369096fa]{margin-top:0}.sr-only[data-v-369096fa]{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hr-node[data-v-639cbad9]{border-top-width:1px;border-color:var(--hr-border-color,#e2e8f0);margin-top:3rem;margin-bottom:3rem}.vmr-container[data-v-a88d22ce]{border-width:1px 1px 1px 4px;border-radius:.5rem;margin-top:1rem;margin-bottom:1rem;padding:1rem}.code-block-container[data-v-2e273ed5]{contain:content}.code-block-content[data-v-2e273ed5]{max-height:min(70vh,500px);font-family:var(--vscode-editor-font-family,"Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);line-height:var(--vscode-editor-line-height,1.5);transition:max-height .3s;overflow:auto}.code-block-render[data-v-2e273ed5]{min-height:1px}[data-v-2e273ed5] .code-block-render pre,[data-v-2e273ed5] .code-block-content .shiki{font-family:inherit;font-size:inherit;line-height:inherit}[data-v-2e273ed5] .code-block-content .shiki-fallback{color:inherit;white-space:pre;font-family:inherit;font-size:inherit;line-height:inherit;background:0 0;margin:0;padding:1rem}.code-fallback-plain[data-v-2e273ed5]{white-space:pre;color:inherit;font-size:inherit;line-height:inherit;background:0 0;font-family:inherit;overflow:auto}[data-v-2e273ed5] .code-block-content pre{padding:1rem}.code-action-btn[data-v-2e273ed5]{cursor:pointer;opacity:.7;transition:opacity .2s}.code-action-btn[data-v-2e273ed5]:hover{opacity:1}.code-action-btn[data-v-2e273ed5]:disabled{opacity:.3;cursor:not-allowed}.code-loading-placeholder[data-v-2e273ed5]{min-height:120px;padding:1rem}.loading-skeleton[data-v-2e273ed5]{flex-direction:column;gap:.75rem;display:flex}.skeleton-line[data-v-2e273ed5]{background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%) 0 0/400% 100%;border-radius:.25rem;height:1rem;animation:1.2s ease-in-out infinite code-skeleton-shimmer-2e273ed5}.code-block-container.is-dark .skeleton-line[data-v-2e273ed5]{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%) 0 0/400% 100%}.skeleton-line.short[data-v-2e273ed5]{width:60%}@keyframes code-skeleton-shimmer-2e273ed5{0%{background-position:100% 0}to{background-position:0 0}}.markdown-renderer[data-v-7e76e4d7]{contain:layout;content-visibility:auto;contain-intrinsic-size:800px 600px;position:relative}.markdown-renderer.virtualized[data-v-7e76e4d7]{content-visibility:visible;contain-intrinsic-size:auto}.height-estimation-probes[data-v-7e76e4d7]{visibility:hidden;pointer-events:none;z-index:-1;position:absolute;top:0;left:-100000px;overflow:hidden}.node-slot[data-v-7e76e4d7],.node-content[data-v-7e76e4d7]{width:100%}.node-placeholder[data-v-7e76e4d7]{background-image:linear-gradient(90deg,#94a3b82e,#94a3b80d,#94a3b82e);background-size:200% 100%;border-radius:.5rem;width:100%;min-height:1rem;margin:.25rem 0;animation:1.1s ease-in-out infinite node-placeholder-shimmer-7e76e4d7}.node-placeholder[data-v-7e76e4d7]:first-child{margin-top:0}@keyframes node-placeholder-shimmer-7e76e4d7{0%{background-position:200% 0}to{background-position:-200% 0}}.node-spacer[data-v-7e76e4d7]{width:100%}.unknown-node[data-v-7e76e4d7]{color:#6a737d;margin:1rem 0;font-style:italic}.markstream-vue .typewriter-enter-from{opacity:0}.markstream-vue .typewriter-enter-active{transition:opacity var(--typewriter-fade-duration,.9s) var(--typewriter-fade-ease,ease-out);will-change:opacity}.markstream-vue .typewriter-enter-to{opacity:1}.admonition[data-v-ee240a2a]{--admonition-bg:#f8f8f8;--admonition-border:#eaecef;--admonition-header-bg:#00000008;--admonition-text:#111827;--admonition-muted:#374151;--admonition-note-color:#448aff;--admonition-tip-color:#00bfa5;--admonition-warning-color:#ff9100;--admonition-danger-color:#ff5252;border-left:4px solid var(--admonition-border);background-color:var(--admonition-bg);color:var(--admonition-text);border-radius:4px;margin:1rem 0;padding:0;overflow:hidden}.admonition-header[data-v-ee240a2a]{background-color:var(--admonition-header-bg);color:var(--admonition-muted);align-items:center;padding:.5rem 1rem;font-weight:600;display:flex}.admonition-icon[data-v-ee240a2a]{color:inherit;margin-right:.5rem}.admonition-content[data-v-ee240a2a]{color:var(--admonition-text);padding:.5rem 1rem 1rem}.admonition-note[data-v-ee240a2a]{border-left-color:var(--admonition-note-color)}.admonition-note .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff0f}.admonition-info[data-v-ee240a2a]{border-left-color:var(--admonition-note-color)}.admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff0f}.admonition-tip[data-v-ee240a2a]{border-left-color:var(--admonition-tip-color)}.admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa50f}.admonition-warning[data-v-ee240a2a]{border-left-color:var(--admonition-warning-color)}.admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91000f}.admonition-danger[data-v-ee240a2a]{border-left-color:var(--admonition-danger-color)}.admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52520f}.admonition-error[data-v-ee240a2a]{border-left-color:var(--admonition-danger-color)}.admonition-error .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52520f}.admonition-caution[data-v-ee240a2a]{border-left-color:var(--admonition-warning-color)}.admonition-caution .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91000f}.admonition-content[data-v-ee240a2a] .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.admonition-toggle[data-v-ee240a2a]{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:.25rem .5rem;font-size:.9rem}.admonition-toggle[data-v-ee240a2a]:focus{outline-offset:2px;outline:2px solid #00000014}.admonition.is-dark[data-v-ee240a2a]{--admonition-bg:#0b1220;--admonition-border:#ffffff0f;--admonition-header-bg:#ffffff08;--admonition-text:#e6eef8;--admonition-muted:#cbd5e1}.admonition.is-dark .admonition-note .admonition-header[data-v-ee240a2a],.admonition.is-dark .admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff1f}.admonition.is-dark .admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa51f}.admonition.is-dark .admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91001f}.admonition.is-dark .admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52521f}@media (prefers-color-scheme:dark){.admonition[data-v-ee240a2a]{--admonition-bg:#0b1220;--admonition-border:#ffffff0f;--admonition-header-bg:#ffffff08;--admonition-text:#e6eef8;--admonition-muted:#cbd5e1}.admonition-note .admonition-header[data-v-ee240a2a],.admonition-info .admonition-header[data-v-ee240a2a]{color:var(--admonition-note-color);background-color:#448aff1f}.admonition-tip .admonition-header[data-v-ee240a2a]{color:var(--admonition-tip-color);background-color:#00bfa51f}.admonition-warning .admonition-header[data-v-ee240a2a]{color:var(--admonition-warning-color);background-color:#ff91001f}.admonition-danger .admonition-header[data-v-ee240a2a]{color:var(--admonition-danger-color);background-color:#ff52521f}}:where(.markstream-vue) button{appearance:none;font:inherit;color:inherit;background:0 0;border:0}.\!container{width:100%!important}.container{width:100%}@media (width>=640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (width>=768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (width>=1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (width>=1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (width>=1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.markstream-vue .sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markstream-vue .pointer-events-none{pointer-events:none}.markstream-vue .\!visible{visibility:visible!important}.markstream-vue .visible{visibility:visible}.markstream-vue .collapse{visibility:collapse}.markstream-vue .static{position:static}.markstream-vue .fixed{position:fixed}.markstream-vue .absolute{position:absolute}.markstream-vue .relative{position:relative}.markstream-vue .inset-0{inset:0}.markstream-vue .right-2{right:.5rem}.markstream-vue .right-6{right:1.5rem}.markstream-vue .top-2{top:.5rem}.markstream-vue .top-6{top:1.5rem}.markstream-vue .z-10{z-index:10}.markstream-vue .z-50{z-index:50}.markstream-vue .z-\[9999\]{z-index:9999}.markstream-vue .m-0{margin:0}.markstream-vue .mx-0\.5{margin-left:.125rem;margin-right:.125rem}.markstream-vue .my-0{margin-top:0;margin-bottom:0}.markstream-vue .my-2{margin-top:.5rem;margin-bottom:.5rem}.markstream-vue .my-4{margin-top:1rem;margin-bottom:1rem}.markstream-vue .my-5{margin-top:1.25rem;margin-bottom:1.25rem}.markstream-vue .my-8{margin-top:2rem;margin-bottom:2rem}.markstream-vue .mb-2{margin-bottom:.5rem}.markstream-vue .mb-4{margin-bottom:1rem}.markstream-vue .mb-\[calc\(3\/5\*1em\)\]{margin-bottom:.6em}.markstream-vue .mb-\[calc\(8\/9\*1em\)\]{margin-bottom:.888889em}.markstream-vue .mr-2{margin-right:.5rem}.markstream-vue .mt-0{margin-top:0}.markstream-vue .mt-2{margin-top:.5rem}.markstream-vue .mt-6{margin-top:1.5rem}.markstream-vue .mt-8{margin-top:2rem}.markstream-vue .mt-\[calc\(8\/5\*1em\)\]{margin-top:1.6em}.markstream-vue .block{display:block}.markstream-vue .inline-block{display:inline-block}.markstream-vue .inline{display:inline}.markstream-vue .flex{display:flex}.markstream-vue .inline-flex{display:inline-flex}.markstream-vue .table{display:table}.markstream-vue .grid{display:grid}.markstream-vue .contents{display:contents}.markstream-vue .list-item{display:list-item}.markstream-vue .hidden{display:none}.markstream-vue .h-3{height:.75rem}.markstream-vue .h-4{height:1rem}.markstream-vue .h-auto{height:auto}.markstream-vue .h-full{height:100%}.markstream-vue .max-h-full{max-height:100%}.markstream-vue .min-h-\[360px\]{min-height:360px}.markstream-vue .min-h-\[40px\]{min-height:40px}.markstream-vue .min-h-full{min-height:100%}.markstream-vue .w-2\/3{width:66.6667%}.markstream-vue .w-3{width:.75rem}.markstream-vue .w-4{width:1rem}.markstream-vue .w-4\/5{width:80%}.markstream-vue .w-full{width:100%}.markstream-vue .max-w-full{max-width:100%}.markstream-vue .flex-1{flex:1}.markstream-vue .flex-shrink{flex-shrink:1}.markstream-vue .flex-shrink-0{flex-shrink:0}.markstream-vue .shrink{flex-shrink:1}.markstream-vue .border-collapse{border-collapse:collapse}.markstream-vue .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.markstream-vue .animate-spin{animation:1s linear infinite spin}.markstream-vue .cursor-grab{cursor:grab}.markstream-vue .cursor-grabbing{cursor:grabbing}.markstream-vue .cursor-not-allowed{cursor:not-allowed}.markstream-vue .cursor-pointer{cursor:pointer}.markstream-vue .resize{resize:both}.markstream-vue .list-decimal{list-style-type:decimal}.markstream-vue .list-disc{list-style-type:disc}.markstream-vue .flex-wrap{flex-wrap:wrap}.markstream-vue .items-center{align-items:center}.markstream-vue .items-baseline{align-items:baseline}.markstream-vue .justify-center{justify-content:center}.markstream-vue .justify-between{justify-content:space-between}.markstream-vue .gap-1\.5{gap:.375rem}.markstream-vue .gap-2{gap:.5rem}.markstream-vue .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.markstream-vue .gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.markstream-vue .overflow-hidden{overflow:hidden}.markstream-vue .overflow-x-auto{overflow-x:auto}.markstream-vue .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.markstream-vue .whitespace-normal{white-space:normal}.markstream-vue .whitespace-nowrap{white-space:nowrap}.markstream-vue .whitespace-pre-wrap{white-space:pre-wrap}.markstream-vue .break-words{overflow-wrap:break-word}.markstream-vue .rounded{border-radius:.25rem}.markstream-vue .rounded-full{border-radius:9999px}.markstream-vue .rounded-lg{border-radius:.5rem}.markstream-vue .rounded-md{border-radius:.375rem}.markstream-vue .border{border-width:1px}.markstream-vue .border-2{border-width:2px}.markstream-vue .border-b{border-bottom-width:1px}.markstream-vue .border-t{border-top-width:1px}.markstream-vue .border-solid{border-style:solid}.markstream-vue .border-\[\#eaecef\]{--tw-border-opacity:1;border-color:rgb(234 236 239/var(--tw-border-opacity,1))}.markstream-vue .border-\[var\(--hr-border-color\,\#e2e8f0\)\]{border-color:var(--hr-border-color,#e2e8f0)}.markstream-vue .border-\[var\(--table-border\,\#cbd5e1\)\]{border-color:var(--table-border,#cbd5e1)}.markstream-vue .border-current{border-color:currentColor}.markstream-vue .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.markstream-vue .border-gray-400\/5{border-color:#9ca3af0d}.markstream-vue .border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.markstream-vue .border-gray-700\/30{border-color:#3741514d}.markstream-vue .border-t-transparent{border-top-color:#0000}.markstream-vue .bg-\[hsl\(var\(--muted\)\)\]{background-color:hsl(var(--muted))}.markstream-vue .bg-\[hsl\(var\(--secondary\)\)\]{background-color:hsl(var(--secondary))}.markstream-vue .bg-black\/70{background-color:#000000b3}.markstream-vue .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.markstream-vue .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.markstream-vue .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.markstream-vue .p-0{padding:0}.markstream-vue .p-0\.5{padding:.125rem}.markstream-vue .p-2{padding:.5rem}.markstream-vue .p-4{padding:1rem}.markstream-vue .p-\[calc\(4\/7\*1em\)\]{padding:.571429em}.markstream-vue .px-1{padding-left:.25rem;padding-right:.25rem}.markstream-vue .px-1\.5{padding-left:.375rem;padding-right:.375rem}.markstream-vue .px-2{padding-left:.5rem;padding-right:.5rem}.markstream-vue .px-2\.5{padding-left:.625rem;padding-right:.625rem}.markstream-vue .px-3{padding-left:.75rem;padding-right:.75rem}.markstream-vue .px-4{padding-left:1rem;padding-right:1rem}.markstream-vue .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.markstream-vue .py-1{padding-top:.25rem;padding-bottom:.25rem}.markstream-vue .py-2{padding-top:.5rem;padding-bottom:.5rem}.markstream-vue .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.markstream-vue .py-4{padding-top:1rem;padding-bottom:1rem}.markstream-vue .pb-3{padding-bottom:.75rem}.markstream-vue .pl-1\.5{padding-left:.375rem}.markstream-vue .pl-\[calc\(13\/8\*1em\)\]{padding-left:1.625em}.markstream-vue .pt-2{padding-top:.5rem}.markstream-vue .text-left{text-align:left}.markstream-vue .text-center{text-align:center}.markstream-vue .text-right{text-align:right}.markstream-vue .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.markstream-vue .text-2xl{font-size:1.5rem;line-height:2rem}.markstream-vue .text-4xl{font-size:2.25rem;line-height:2.5rem}.markstream-vue .text-\[85\%\]{font-size:85%}.markstream-vue .text-base{font-size:1rem;line-height:1.5rem}.markstream-vue .text-sm{font-size:.875rem;line-height:1.25rem}.markstream-vue .text-xl{font-size:1.25rem;line-height:1.75rem}.markstream-vue .text-xs{font-size:.75rem;line-height:1rem}.markstream-vue .font-medium{font-weight:500}.markstream-vue .font-semibold{font-weight:600}.markstream-vue .uppercase{text-transform:uppercase}.markstream-vue .lowercase{text-transform:lowercase}.markstream-vue .italic{font-style:italic}.markstream-vue .leading-\[calc\(10\/9\*1\)\]{line-height:1.11111}.markstream-vue .leading-\[calc\(4\/3\*1\)\]{line-height:1.33333}.markstream-vue .leading-\[calc\(5\/3\*1\)\]{line-height:1.66667}.markstream-vue .leading-\[normal\]{line-height:normal}.markstream-vue .leading-relaxed{line-height:1.625}.markstream-vue .text-\[\#0366d6\]{--tw-text-opacity:1;color:rgb(3 102 214/var(--tw-text-opacity,1))}.markstream-vue .text-\[hsl\(var\(--muted-foreground\)\)\]{color:hsl(var(--muted-foreground))}.markstream-vue .text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.markstream-vue .text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.markstream-vue .text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.markstream-vue .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.markstream-vue .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.markstream-vue .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.markstream-vue .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.markstream-vue .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.markstream-vue .text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.markstream-vue .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.markstream-vue .underline{text-decoration-line:underline}.markstream-vue .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.markstream-vue .opacity-0{opacity:0}.markstream-vue .opacity-100{opacity:1}.markstream-vue .opacity-50{opacity:.5}.markstream-vue .shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.markstream-vue .outline{outline-style:solid}.markstream-vue .blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-vue .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-vue .backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-vue .backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-vue .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-\[height\]{transition-property:height;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .duration-100{transition-duration:.1s}.markstream-vue .duration-150{transition-duration:.15s}.markstream-vue .duration-200{transition-duration:.2s}.markstream-vue .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-vue .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.markstream-vue{--border:214.3 31.8% 91.4%;--background:0 0% 100%;--foreground:222.2 84% 4.9%;--secondary:210 40% 96%;--muted:210 40% 96%;--muted-foreground:215.4 16.3% 46.9%}.dark .markstream-vue,.markstream-vue.dark{--border:217.2 32.6% 17.5%;--background:222.2 84% 4.9%;--foreground:210 40% 98%;--secondary:217.2 32.6% 17.5%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%}body>div[id^=dmermaid-]{pointer-events:none;width:0;height:0;position:fixed;top:0;left:0;overflow:hidden}.markstream-vue .before\:content-\[\'\'\]:before,.markstream-vue .after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.markstream-vue .hover\:bg-\[hsl\(var\(--secondary\)\)\]:hover{background-color:hsl(var(--secondary))}.markstream-vue .hover\:bg-\[var\(--vscode-editor-selectionBackground\)\]:hover{background-color:var(--vscode-editor-selectionBackground)}.markstream-vue .hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.markstream-vue .hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.markstream-vue .hover\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.markstream-vue .hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.markstream-vue .hover\:underline:hover{text-decoration-line:underline}@media not all and (width>=1024px){.markstream-vue .max-lg\:my-\[calc\(4\/3\*1em\)\]{margin-top:1.33333em;margin-bottom:1.33333em}.markstream-vue .max-lg\:pl-\[calc\(14\/9\*1em\)\]{padding-left:1.55556em}}.math-inline-wrapper[data-v-d4b863b7]{display:inline-block;position:relative}.math-inline[data-v-d4b863b7]{vertical-align:middle;display:inline-block}.math-inline--fallback[data-v-d4b863b7]{white-space:pre-wrap}.math-inline__loading[data-v-d4b863b7]{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.math-inline__spinner[data-v-d4b863b7]{will-change:transform;border:2px solid #5e687940;border-top-color:#5e6879cc;border-radius:9999px;width:1rem;height:1rem}.table-node-fade-enter-active[data-v-d4b863b7],.table-node-fade-leave-active[data-v-d4b863b7]{transition:opacity .18s}.table-node-fade-enter-from[data-v-d4b863b7],.table-node-fade-leave-to[data-v-d4b863b7]{opacity:0}.sr-only[data-v-d4b863b7]{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.math-loading-overlay[data-v-f19e21a0]{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;min-height:40px;display:flex;position:absolute;inset:0}.math-loading-spinner[data-v-f19e21a0]{border:2px solid #0000001a;border-top-color:#0009;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite math-spin-f19e21a0}@keyframes math-spin-f19e21a0{to{transform:rotate(360deg)}}.math-rendering[data-v-f19e21a0]{opacity:.3;transition:opacity .2s}.math-block__fallback[data-v-f19e21a0]{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.math-fade-enter-active[data-v-f19e21a0],.math-fade-leave-active[data-v-f19e21a0]{transition:opacity .3s}.math-fade-enter-from[data-v-f19e21a0],.math-fade-leave-to[data-v-f19e21a0]{opacity:0}@media (prefers-color-scheme:dark){.math-loading-overlay[data-v-f19e21a0]{background-color:#0009}.math-loading-spinner[data-v-f19e21a0]{border-color:#fffc #fff3 #fff3}}.html-preview-frame__backdrop[data-v-296dd89d]{z-index:50;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.html-preview-frame__backdrop--dark[data-v-296dd89d]{background-color:#0f172acc}.html-preview-frame[data-v-296dd89d]{background-color:#fff;border-radius:.5rem;flex-direction:column;width:80vw;max-width:960px;height:70vh;display:flex;overflow:hidden;box-shadow:0 10px 40px #00000040}.html-preview-frame--dark[data-v-296dd89d]{color:#e5e7eb;background-color:#020617;box-shadow:0 10px 40px #0009}.html-preview-frame__header[data-v-296dd89d]{border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;padding:.4rem .75rem;display:flex}.html-preview-frame--dark .html-preview-frame__header[data-v-296dd89d]{border-bottom-color:#94a3b859}.html-preview-frame__title[data-v-296dd89d]{letter-spacing:.02em;text-transform:uppercase;opacity:.85;align-items:center;gap:.4rem;font-size:.75rem;font-weight:500;display:inline-flex}.html-preview-frame__dot[data-v-296dd89d]{background-color:#22c55e;border-radius:999px;width:.5rem;height:.5rem}.html-preview-frame--dark .html-preview-frame__dot[data-v-296dd89d]{background-color:#4ade80}.html-preview-frame__label[data-v-296dd89d]{white-space:nowrap}.html-preview-frame__close[data-v-296dd89d]{cursor:pointer;background:0 0;border:none;font-size:1.25rem;line-height:1}.html-preview-frame__close--dark[data-v-296dd89d]{color:#e5e7eb}.html-preview-frame__iframe[data-v-296dd89d]{border:none;width:100%;height:100%;display:block}@media (width<=640px){.html-preview-frame[data-v-296dd89d]{border-radius:0;width:100vw;height:80vh}}.code-block-container[data-v-1a55f98f]{contain:content;content-visibility:auto;contain-intrinsic-size:320px 180px;--markstream-code-fallback-bg:#fff;--markstream-code-fallback-fg:#111827;--markstream-code-border-color:#e5e7eb;--vscode-editor-selectionBackground:var(--markstream-code-fallback-selection-bg);--markstream-code-fallback-selection-bg:#0000000f;--markstream-diff-frame-border:#cbd5e18f;--markstream-diff-frame-shadow:0 16px 40px -32px #0f172a2e;--markstream-diff-shell-fg:#0f172a;--markstream-diff-shell-muted:#64748b;--markstream-diff-shell-border:#94a3b82e;--markstream-diff-shell-shadow:0 30px 70px -48px #0f172a6b;--markstream-diff-shell-bg:radial-gradient(circle at top center, #ffffffe6, transparent 55%), linear-gradient(180deg, #fffdfa 0%, #fbfcfe 100%);--markstream-diff-header-border:#e2e8f0eb;--markstream-diff-stage-bg:radial-gradient(circle at top center, #fffffff2, transparent 60%), linear-gradient(180deg, #fcfdff 0%, #f6f8fb 100%);--markstream-diff-editor-bg:#fff;--markstream-diff-editor-fg:#435266;--markstream-diff-unchanged-fg:lab(36.247% .0071872 -.000424832);--markstream-diff-unchanged-bg:lab(95.9989% .0180531 -.0010643);--markstream-diff-unchanged-divider:#fffffff0;--markstream-diff-focus:#0ea5e96b;--markstream-diff-widget-shadow:#0f172a42;--markstream-diff-action-hover:#0f172a0f;--markstream-diff-panel-bg:linear-gradient(180deg, #fff 0%, #fbfcfe 100%);--markstream-diff-panel-bg-soft:#fff;--markstream-diff-panel-bg-strong:#fff;--markstream-diff-panel-border:#e2e8f04d;--markstream-diff-pane-divider:#e2e8f06b;--markstream-diff-gutter-bg:transparent;--markstream-diff-gutter-guide:transparent;--markstream-diff-gutter-gap:16px;--markstream-diff-line-number:#525252e0;--markstream-diff-line-number-active:#525252e0;--markstream-diff-added-fg:#14b8a6;--markstream-diff-removed-fg:#ff3658;--markstream-diff-added-line:#e8f9f5fa;--markstream-diff-removed-line:#fff1f1fa;--markstream-diff-added-inline:#c5f5dbf5;--markstream-diff-removed-inline:#ffd7d9eb;--markstream-diff-added-inline-border:transparent;--markstream-diff-removed-inline-border:transparent;--markstream-diff-added-gutter:linear-gradient(90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width,4px), #14b8a614 var(--stream-monaco-gutter-marker-width,4px) 100%);--markstream-diff-removed-gutter:repeating-linear-gradient(180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px) left / var(--stream-monaco-gutter-marker-width,4px) 100% no-repeat, linear-gradient(90deg, #ff365814 0 100%);--markstream-diff-added-line-fill:#e7f8f4f5;--markstream-diff-removed-line-fill:#fff1f1fa;container-type:inline-size}.code-block-container.is-dark[data-v-1a55f98f]{--markstream-code-fallback-bg:#111827;--markstream-code-fallback-fg:#e5e7eb;--markstream-code-border-color:#3741514d;--markstream-code-fallback-selection-bg:#ffffff14;--markstream-diff-frame-border:#52525b8f;--markstream-diff-frame-shadow:0 18px 40px -30px #000000d6;--markstream-diff-shell-fg:#e2e8f0;--markstream-diff-shell-muted:#94a3b8;--markstream-diff-shell-border:#52525b8f;--markstream-diff-shell-shadow:0 34px 80px -52px #000000b8;--markstream-diff-shell-bg:#0a0a0bfc;--markstream-diff-header-border:#3f3f46d1;--markstream-diff-stage-bg:#0a0a0bfc;--markstream-diff-editor-bg:#0c0c0efc;--markstream-diff-editor-fg:#b6c2d3;--markstream-diff-unchanged-fg:#cbd5e1;--markstream-diff-unchanged-bg:#18181beb;--markstream-diff-unchanged-divider:#ffffff2e;--markstream-diff-focus:#60a5fa6b;--markstream-diff-widget-shadow:#000000b8;--markstream-diff-action-hover:#ffffff14;--markstream-diff-panel-bg:#0a0a0bfc;--markstream-diff-panel-bg-soft:#0a0a0bfc;--markstream-diff-panel-bg-strong:#0a0a0bfc;--markstream-diff-panel-border:#52525b4d;--markstream-diff-pane-divider:#52525b57;--markstream-diff-gutter-bg:linear-gradient(180deg, #0d0d0ff0 0%, #09090afa 100%);--markstream-diff-gutter-guide:#a1a1aa14;--markstream-diff-gutter-gap:16px;--markstream-diff-line-number:#a1a1aaad;--markstream-diff-line-number-active:#e4e4e7d1;--markstream-diff-added-fg:#5eead4;--markstream-diff-removed-fg:#fda4af;--markstream-diff-added-line:#0d94882e;--markstream-diff-removed-line:#e11d482e;--markstream-diff-added-inline:#2dd4bf3d;--markstream-diff-removed-inline:#fb71853d;--markstream-diff-added-inline-border:transparent;--markstream-diff-removed-inline-border:transparent;--markstream-diff-added-gutter:linear-gradient(90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width,4px), #5eead433 var(--stream-monaco-gutter-marker-width,4px) 100%);--markstream-diff-removed-gutter:repeating-linear-gradient(180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px) left / var(--stream-monaco-gutter-marker-width,4px) 100% no-repeat, linear-gradient(90deg, #fda4af2e 0 100%);--markstream-diff-added-line-fill:linear-gradient(90deg, #0f766e61 0%, #0d948847 100%);--markstream-diff-removed-line-fill:linear-gradient(90deg, #9f123961 0%, #e11d4847 100%)}.code-editor-container[data-v-1a55f98f]{transition:height .18s,max-height .18s}.code-block-header[data-v-1a55f98f]{gap:16px}.code-header-main[data-v-1a55f98f]{flex:auto;align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.code-header-copy[data-v-1a55f98f]{gap:2px;min-width:0;display:grid}.code-header-actions[data-v-1a55f98f]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.code-header-title[data-v-1a55f98f]{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;font-size:14px;font-weight:650;overflow:hidden}.code-header-caption[data-v-1a55f98f]{text-overflow:ellipsis;white-space:nowrap;color:color-mix(in srgb,var(--vscode-editor-foreground,currentColor) 62%,transparent);font-size:12px;overflow:hidden}.code-editor-layer[data-v-1a55f98f]{min-width:0;display:grid}.code-editor-layer>.code-editor-container[data-v-1a55f98f],[data-v-1a55f98f] .code-editor-layer>pre.code-pre-fallback{grid-area:1/1}.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .monaco-editor-background,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .lines-content{background:var(--vscode-editor-background,var(--markstream-code-fallback-bg))!important}.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-lines,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-line,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .view-line span,.code-block-container.is-plain-text[data-v-1a55f98f]:not(.is-diff) .monaco-editor .line-numbers{color:var(--vscode-editor-foreground,var(--markstream-code-fallback-fg))!important}.code-block-container.is-diff .code-block-header[data-v-1a55f98f]{color:var(--markstream-diff-shell-fg);border-bottom-color:var(--markstream-diff-header-border);background:0 0;padding:18px 20px 14px}.code-block-container.is-diff[data-v-1a55f98f]{background:var(--markstream-diff-shell-bg);box-shadow:var(--markstream-diff-shell-shadow);border-color:var(--markstream-diff-shell-border);--vscode-editor-selectionBackground:var(--markstream-diff-action-hover)}.code-block-container.is-diff .code-header-caption[data-v-1a55f98f]{color:var(--markstream-diff-shell-muted)}.code-block-container.is-diff .code-editor-layer[data-v-1a55f98f]{background:var(--markstream-diff-stage-bg);--vscode-editor-background:var(--markstream-diff-editor-bg);--vscode-editor-foreground:var(--markstream-diff-editor-fg);--vscode-diffEditor-unchangedRegionForeground:var(--markstream-diff-unchanged-fg);--vscode-diffEditor-unchangedRegionBackground:var(--markstream-diff-unchanged-bg);--vscode-focusBorder:var(--markstream-diff-focus);--vscode-widget-shadow:var(--markstream-diff-widget-shadow);--vscode-editor-selectionBackground:color-mix(in srgb, var(--markstream-diff-editor-bg) 90%, var(--markstream-diff-editor-fg) 10%);--stream-monaco-editor-bg:var(--markstream-diff-editor-bg);--stream-monaco-editor-fg:var(--markstream-diff-editor-fg);--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg);--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg);--stream-monaco-frame-radius:18px;--stream-monaco-fixed-editor-bg:var(--markstream-diff-panel-bg-strong);--stream-monaco-frame-border:var(--markstream-diff-frame-border);--stream-monaco-frame-shadow:var(--markstream-diff-frame-shadow);--stream-monaco-panel-bg:var(--markstream-diff-panel-bg);--stream-monaco-panel-bg-soft:var(--markstream-diff-panel-bg-soft);--stream-monaco-panel-bg-strong:var(--markstream-diff-panel-bg-strong);--stream-monaco-panel-border:var(--markstream-diff-panel-border);--stream-monaco-pane-divider:var(--markstream-diff-pane-divider);--stream-monaco-gutter-bg:var(--markstream-diff-gutter-bg);--stream-monaco-gutter-guide:var(--markstream-diff-gutter-guide);--stream-monaco-gutter-marker-width:4px;--stream-monaco-gutter-gap:var(--markstream-diff-gutter-gap);--stream-monaco-line-number:var(--markstream-diff-line-number);--stream-monaco-line-number-active:var(--markstream-diff-line-number-active);--stream-monaco-line-number-left:calc(var(--stream-monaco-gutter-marker-width) + var(--stream-monaco-gutter-gap));--stream-monaco-line-number-width:36px;--stream-monaco-line-number-align:center;--stream-monaco-original-margin-width:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2) + var(--stream-monaco-line-number-width));--stream-monaco-original-scrollable-left:var(--stream-monaco-original-margin-width);--stream-monaco-original-scrollable-width:calc(100% - var(--stream-monaco-original-margin-width));--stream-monaco-modified-margin-width:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2) + var(--stream-monaco-line-number-width));--stream-monaco-modified-scrollable-left:var(--stream-monaco-modified-margin-width);--stream-monaco-modified-scrollable-width:calc(100% - var(--stream-monaco-modified-margin-width));--stream-monaco-added-fg:var(--markstream-diff-added-fg);--stream-monaco-removed-fg:var(--markstream-diff-removed-fg);--stream-monaco-added-line:var(--markstream-diff-added-line);--stream-monaco-removed-line:var(--markstream-diff-removed-line);--stream-monaco-added-inline:var(--markstream-diff-added-inline);--stream-monaco-removed-inline:var(--markstream-diff-removed-inline);--stream-monaco-added-outline:transparent;--stream-monaco-removed-outline:transparent;--stream-monaco-added-inline-border:var(--markstream-diff-added-inline-border);--stream-monaco-removed-inline-border:var(--markstream-diff-removed-inline-border);--stream-monaco-added-line-shadow:none;--stream-monaco-removed-line-shadow:none;--stream-monaco-added-gutter:var(--markstream-diff-added-gutter);--stream-monaco-removed-gutter:var(--markstream-diff-removed-gutter);--stream-monaco-added-line-fill:var(--markstream-diff-added-line-fill);--stream-monaco-removed-line-fill:var(--markstream-diff-removed-line-fill);padding:4px 4px 8px}.code-block-container.is-diff.is-dark .code-editor-layer[data-v-1a55f98f]{background:var(--markstream-diff-stage-bg)}.code-editor-container.is-hidden[data-v-1a55f98f]{opacity:0;pointer-events:none}[data-v-1a55f98f] pre.code-pre-fallback{padding:var(--markstream-code-padding-y,8px) var(--markstream-code-padding-x,12px);padding-left:var(--markstream-code-padding-left,52px);color:var(--vscode-editor-foreground,inherit);font-size:var(--vscode-editor-font-size,12px);font-weight:400;font-family:var(--markstream-code-font-family,ui-monospace, SFMono-Regular, SF Mono, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace);background:0 0;margin:0}[data-v-1a55f98f] pre.code-pre-fallback>code{font-size:inherit;font-weight:inherit;line-height:inherit}[data-v-1a55f98f] pre.code-pre-fallback.is-wrap{white-space:pre-wrap;overflow-wrap:anywhere}.code-block-container.is-rendering .code-height-placeholder[data-v-1a55f98f]{background:linear-gradient(90deg,#0000000a 25%,#00000014 37%,#0000000a 63%);min-height:120px;animation:1.2s ease-in-out infinite code-skeleton-shimmer-1a55f98f}.code-loading-placeholder[data-v-1a55f98f]{min-height:120px;padding:1rem}.loading-skeleton[data-v-1a55f98f]{flex-direction:column;gap:.75rem;display:flex}.skeleton-line[data-v-1a55f98f]{background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%) 0 0/400% 100%;border-radius:.25rem;height:1rem;animation:1.2s ease-in-out infinite code-skeleton-shimmer-1a55f98f}.code-block-container.is-dark .skeleton-line[data-v-1a55f98f]{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%) 0 0/400% 100%}.skeleton-line.short[data-v-1a55f98f]{width:60%}@keyframes code-skeleton-shimmer-1a55f98f{0%{background-position:100% 0}to{background-position:0 0}}.code-action-btn[data-v-1a55f98f]{border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;min-width:2rem;min-height:2rem;padding:.5rem;font-family:inherit;line-height:1;display:inline-flex}.code-block-container.is-diff .icon-slot[data-v-1a55f98f]{width:28px;height:28px;color:var(--markstream-diff-added-fg);padding:5px;box-shadow:inset 0 1px #ffffffb3}.code-block-container.is-diff.is-dark .icon-slot[data-v-1a55f98f]{box-shadow:inset 0 1px #ffffff14,0 12px 28px -20px #38bdf873}.code-diff-stats[data-v-1a55f98f]{letter-spacing:.02em;font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin-right:4px;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.code-diff-stat[data-v-1a55f98f]{align-items:center;display:inline-flex}.code-diff-stat.removed[data-v-1a55f98f]{color:var(--vscode-diffEditor-removedTextForeground,var(--markstream-diff-removed-fg))}.code-diff-stat.added[data-v-1a55f98f]{color:var(--vscode-diffEditor-insertedTextForeground,var(--markstream-diff-added-fg))}.code-block-container.is-dark .code-diff-stat[data-v-1a55f98f]{border:1px solid #0000;border-radius:999px;padding:3px 9px;line-height:1;box-shadow:inset 0 1px #ffffff0d}.code-block-container.is-dark .code-diff-stat.removed[data-v-1a55f98f]{color:#fb7185;background:#9f123929;border-color:#fb718533}.code-block-container.is-dark .code-diff-stat.added[data-v-1a55f98f]{color:#2dd4bf;background:#0f766e29;border-color:#2dd4bf38}.code-action-btn[data-v-1a55f98f]:active{transform:scale(.98)}.code-action-btn[data-v-1a55f98f]:disabled{opacity:.5;cursor:not-allowed}.code-action-btn[data-v-1a55f98f]:disabled:hover{background-color:#0000}.icon-slot[data-v-1a55f98f]{justify-content:center;align-items:center;display:inline-flex}.icon-slot[data-v-1a55f98f] svg,.icon-slot[data-v-1a55f98f] img{width:100%;height:100%;display:block}@container (width<=640px){.code-block-container.is-diff .code-block-header[data-v-1a55f98f]{padding:16px 16px 12px}.code-block-container.is-diff .code-editor-layer[data-v-1a55f98f]{padding:4px 4px 8px}.code-diff-stats[data-v-1a55f98f]{gap:6px;font-size:12px}}[data-v-1a55f98f] .monaco-diff-editor .diffOverview{background-color:var(--vscode-editor-background)}[data-v-1a55f98f] .stream-monaco-diff-root .monaco-diff-editor .diffOverview,[data-v-1a55f98f] .stream-monaco-diff-root .decorationsOverviewRuler{opacity:0!important;pointer-events:none!important;background:0 0!important;border:0!important;width:0!important;min-width:0!important;max-width:0!important;display:none!important;overflow:hidden!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-diff-editor{box-shadow:none!important;border:0!important;border-radius:0!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-clickable)>:not(a){visibility:hidden!important}[data-v-1a55f98f] .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines-compact .text{opacity:0!important}[data-v-1a55f98f] .stream-monaco-diff-root{--stream-monaco-gutter-gap:var(--markstream-diff-gutter-gap)!important;--stream-monaco-line-number:var(--markstream-diff-line-number)!important;--stream-monaco-line-number-active:var(--markstream-diff-line-number-active)!important;--stream-monaco-added-fg:var(--markstream-diff-added-fg)!important;--stream-monaco-removed-fg:var(--markstream-diff-removed-fg)!important;--stream-monaco-added-line:var(--markstream-diff-added-line)!important;--stream-monaco-removed-line:var(--markstream-diff-removed-line)!important;--stream-monaco-added-inline:var(--markstream-diff-added-inline)!important;--stream-monaco-removed-inline:var(--markstream-diff-removed-inline)!important;--stream-monaco-added-inline-border:var(--markstream-diff-added-inline-border)!important;--stream-monaco-removed-inline-border:var(--markstream-diff-removed-inline-border)!important;--stream-monaco-added-line-fill:var(--markstream-diff-added-line-fill)!important;--stream-monaco-removed-line-fill:var(--markstream-diff-removed-line-fill)!important;--stream-monaco-added-gutter:var(--markstream-diff-added-gutter)!important;--stream-monaco-removed-gutter:var(--markstream-diff-removed-gutter)!important;--stream-monaco-added-line-shadow:none!important;--stream-monaco-removed-line-shadow:none!important;--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg)!important;--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-unchanged-bridge-source),[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{--stream-monaco-unchanged-bg:var(--markstream-diff-unchanged-bg)!important;--stream-monaco-unchanged-fg:var(--markstream-diff-unchanged-fg)!important;background:var(--stream-monaco-unchanged-bg)!important;color:var(--stream-monaco-unchanged-fg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{right:calc(var(--stream-monaco-gutter-marker-width) - var(--stream-monaco-unchanged-rail-width) / 2 + (var(--stream-monaco-gutter-gap) * 2))!important;width:auto!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important;color:var(--markstream-diff-unchanged-fg)!important;padding-left:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important;padding-right:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge.stream-monaco-diff-unchanged-bridge-line-info .stream-monaco-unchanged-rail,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail{border-right-color:var(--markstream-diff-unchanged-divider)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal{border-bottom-color:#0000!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-both .stream-monaco-unchanged-reveal:first-child{border-bottom-color:var(--markstream-diff-unchanged-divider)!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-top-only .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-bottom-only .stream-monaco-unchanged-reveal{border-bottom:0!important}[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-meta,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-count,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-metadata-label,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,[data-v-1a55f98f] .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{color:var(--markstream-diff-unchanged-fg)!important}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.original .diff-hidden-lines .center{justify-content:center;align-items:center}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.original .diff-hidden-lines .center>div:first-child{align-items:center;min-width:100%;display:flex;justify-content:center!important;width:100%!important}[data-v-1a55f98f] .monaco-diff-editor:not(.side-by-side) .editor.modified .diff-hidden-lines .center>div:first-child{display:none!important}[data-v-1a55f98f] .markstream-inline-fold-proxy{appearance:none;box-shadow:none;color:var(--vscode-diffEditor-unchangedRegionForeground,currentColor);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;display:inline-flex}[data-v-1a55f98f] .markstream-inline-fold-proxy:hover,[data-v-1a55f98f] .markstream-inline-fold-proxy:focus-visible{color:var(--vscode-editorLink-activeForeground,var(--vscode-diffEditor-unchangedRegionForeground,currentColor))}[data-v-1a55f98f] .markstream-inline-fold-proxy:focus-visible{outline:1px solid var(--vscode-focusBorder,currentColor);outline-offset:1px}[data-v-1a55f98f] .markstream-inline-fold-proxy .codicon{color:inherit;width:16px;height:16px;font-size:16px;line-height:16px}._mermaid[data-v-6eade7e5]{content-visibility:auto;contain:content;contain-intrinsic-size:360px 240px;font-family:inherit}._mermaid[data-v-6eade7e5] svg{width:100%;height:auto;display:block}.fullscreen[data-v-6eade7e5]{width:100%;height:100%!important;max-height:100%!important}.mermaid-action-btn[data-v-6eade7e5]{font-family:inherit}.mermaid-action-btn[data-v-6eade7e5]:active{transform:scale(.98)}.mermaid-dialog-enter-from[data-v-6eade7e5],.mermaid-dialog-leave-to[data-v-6eade7e5]{opacity:0}.mermaid-dialog-enter-active[data-v-6eade7e5],.mermaid-dialog-leave-active[data-v-6eade7e5]{transition:opacity .2s}.mermaid-dialog-enter-from .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-to .dialog-panel[data-v-6eade7e5]{opacity:.98;transform:translateY(8px)scale(.98)}.mermaid-dialog-enter-to .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-from .dialog-panel[data-v-6eade7e5]{opacity:1;transform:translateY(0)scale(1)}.mermaid-dialog-enter-active .dialog-panel[data-v-6eade7e5],.mermaid-dialog-leave-active .dialog-panel[data-v-6eade7e5]{transition:transform .2s,opacity .2s}.infographic-action-btn[data-v-e17a4388]{font-family:inherit}.infographic-action-btn[data-v-e17a4388]:active{transform:scale(.98)}.fullscreen[data-v-e17a4388]{width:100%;height:100%!important;max-height:100%!important}.infographic-dialog-enter-from[data-v-e17a4388],.infographic-dialog-leave-to[data-v-e17a4388]{opacity:0}.infographic-dialog-enter-active[data-v-e17a4388],.infographic-dialog-leave-active[data-v-e17a4388]{transition:opacity .2s}.infographic-dialog-enter-from .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-to .dialog-panel[data-v-e17a4388]{opacity:.98;transform:translateY(8px)scale(.98)}.infographic-dialog-enter-to .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-from .dialog-panel[data-v-e17a4388]{opacity:1;transform:translateY(0)scale(1)}.infographic-dialog-enter-active .dialog-panel[data-v-e17a4388],.infographic-dialog-leave-active .dialog-panel[data-v-e17a4388]{transition:transform .2s,opacity .2s}.d2-block-body[data-v-90ebc4d2]{position:relative}.d2-source[data-v-90ebc4d2]{font-family:var(--vscode-editor-font-family,"Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}.d2-code[data-v-90ebc4d2]{white-space:pre;font-size:.875rem;line-height:1.5}.d2-render[data-v-90ebc4d2]{overflow:auto}.d2-svg[data-v-90ebc4d2] svg.markstream-d2-root-svg{width:100%;max-width:100%;height:auto;display:block}.mode-btn[data-v-90ebc4d2]{opacity:.7;transition:opacity .2s}.mode-btn.is-active[data-v-90ebc4d2]{opacity:1;font-weight:600}.d2-action-btn[data-v-90ebc4d2]{opacity:.7;transition:opacity .2s}.d2-action-btn[data-v-90ebc4d2]:hover{opacity:1}.d2-action-btn[data-v-90ebc4d2]:disabled{opacity:.3;cursor:not-allowed}.d2-error[data-v-90ebc4d2]{color:#dc2626}.tool-call-node[data-v-c4d46f41]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-c4d46f41]{background:#eff1f3;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:28px;padding:4px 10px;transition:background-color .2s,border-color .2s;display:flex}.tool-call-node__header--clickable[data-v-c4d46f41]{cursor:pointer}.tool-call-node__header--clickable[data-v-c4d46f41]:hover{background:#eff1f3;outline:1px solid #d8dde3}.tool-call-node__header--clickable[data-v-c4d46f41]:focus-visible{outline:2px solid color-mix(in srgb, var(--primary-color,#1677ff) 24%, transparent);outline-offset:2px}.tool-call-node__prefix[data-v-c4d46f41]{align-items:center;gap:6px;min-width:0;display:inline-flex}.tool-call-node__title[data-v-c4d46f41]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tool-call-node__prefix-icon[data-v-c4d46f41]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.tool-call-node__prefix-icon.is-spinning[data-v-c4d46f41]{animation:1s linear infinite tool-spin-c4d46f41}.tool-call-node.is-running .tool-call-node__prefix[data-v-c4d46f41],.tool-call-node.is-running .tool-call-node__toggle[data-v-c4d46f41]{color:var(--primary-color,#1677ff)}.tool-call-node.is-running .tool-call-node__header[data-v-c4d46f41]{background:#f2f5fa;border-color:#d6deea}.tool-call-node.is-success .tool-call-node__prefix[data-v-c4d46f41],.tool-call-node.is-success .tool-call-node__toggle[data-v-c4d46f41]{color:#8f98a3}.tool-call-node.is-success .tool-call-node__header[data-v-c4d46f41]{background:#f3f5f7;border-color:#dde2e7}.tool-call-node.is-error .tool-call-node__prefix[data-v-c4d46f41],.tool-call-node.is-error .tool-call-node__toggle[data-v-c4d46f41]{color:var(--error-color,#ff4d4f)}.tool-call-node.is-error .tool-call-node__header[data-v-c4d46f41]{background:#faf1f1;border-color:#edd7d8}.tool-call-node__toggle[data-v-c4d46f41]{color:inherit;opacity:0;flex-shrink:0;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;transition:opacity .15s;display:inline-flex}.tool-call-node__header--clickable:hover .tool-call-node__toggle[data-v-c4d46f41],.tool-call-node__header--clickable:focus-visible .tool-call-node__toggle[data-v-c4d46f41]{opacity:1}.tool-call-node__toggle-icon[data-v-c4d46f41]{font-size:12px}.tool-call-node__detail[data-v-c4d46f41]{background:#fbfdff;border:1px solid #edf2fa;border-radius:12px;margin-top:6px;padding:10px 12px}.tool-call-node__line[data-v-c4d46f41]{align-items:flex-start;gap:4px;margin:0;font-size:12px;line-height:1.6;display:flex}.tool-call-node__label[data-v-c4d46f41]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-shrink:0}.tool-call-node__value[data-v-c4d46f41]{color:var(--text-color,var(--text));word-break:break-all}.tool-call-node__value--overflow[data-v-c4d46f41]{-webkit-line-clamp:2;cursor:help;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@keyframes tool-spin-c4d46f41{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__approval[data-v-c4d46f41]{background:linear-gradient(135deg,#f8faff 0%,#f0f4ff 100%);border:1px solid #e8f0fe;border-radius:10px;margin-top:10px;padding:12px 14px}.tool-call-node__approval-desc[data-v-c4d46f41]{color:#5a6474;margin-bottom:8px;font-size:12px;line-height:1.6}.tool-call-node__approval-args[data-v-c4d46f41]{align-items:flex-start;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.tool-call-node__approval-code[data-v-c4d46f41]{color:#3a5080;white-space:pre-wrap;word-break:break-all;background:#f0f4fc;border:1px solid #dee6f5;border-radius:6px;flex:1;max-height:120px;padding:6px 8px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;display:block;overflow-y:auto}.tool-call-node__approval-actions[data-v-c4d46f41]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-call-node__btn[data-v-c4d46f41]{cursor:pointer;border:1px solid #0000;border-radius:6px;outline:none;justify-content:center;align-items:center;padding:5px 14px;font-size:12px;font-weight:500;line-height:1.4;transition:all .2s;display:inline-flex}.tool-call-node__btn[data-v-c4d46f41]:disabled{opacity:.55;cursor:not-allowed}.tool-call-node__btn-approve[data-v-c4d46f41]{color:#fff;background:#1677ff;border-color:#1677ff}.tool-call-node__btn-approve[data-v-c4d46f41]:not(:disabled):hover{background:#4096ff;border-color:#4096ff}.tool-call-node__btn-approve[data-v-c4d46f41]:not(:disabled):active{background:#0958d9;border-color:#0958d9}.tool-call-node__btn-reject[data-v-c4d46f41]{color:#cf1322;background:#fff1f0;border-color:#ffccc7}.tool-call-node__btn-reject[data-v-c4d46f41]:not(:disabled):hover{color:#fff;background:#ff4d4f;border-color:#ff4d4f}.tool-call-node__btn-reject[data-v-c4d46f41]:not(:disabled):active{color:#fff;background:#a8071a;border-color:#a8071a}.tool-call-node__btn-edit[data-v-c4d46f41]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-edit[data-v-c4d46f41]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__btn-cancel[data-v-c4d46f41]{color:#595959;background:#fff;border-color:#d9d9d9}.tool-call-node__btn-cancel[data-v-c4d46f41]:not(:disabled):hover{background:#f5f5f5;border-color:#b3b3b3}.tool-call-node__approval-edit[data-v-c4d46f41]{margin-top:8px}.tool-call-node__textarea[data-v-c4d46f41]{resize:vertical;box-sizing:border-box;border:1px solid #d9d9d9;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-family:monospace;font-size:12px}.tool-call-node__textarea[data-v-c4d46f41]:focus{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1f}.tool-call-node__approval-edit-actions[data-v-c4d46f41]{align-items:center;gap:8px;margin-top:8px;display:flex}.tool-call-node__approval-result[data-v-c4d46f41]{border-radius:6px;align-items:center;gap:6px;padding:8px 10px;font-size:12px;font-weight:500;display:flex}.tool-call-node__approval-result.is-approved[data-v-c4d46f41]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__approval-result.is-rejected[data-v-c4d46f41]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.approval-result-icon[data-v-c4d46f41]{font-size:14px}.approval-result-enter-active[data-v-c4d46f41],.approval-result-leave-active[data-v-c4d46f41]{transition:all .25s}.approval-result-enter-from[data-v-c4d46f41],.approval-result-leave-to[data-v-c4d46f41]{opacity:0;transform:translateY(-4px)}.tool-call-node__waiting-badge[data-v-c4d46f41]{color:#d46b08;white-space:nowrap;background:#fff7e6;border:1px solid #ffd591;border-radius:4px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.tool-call-node__result-badge[data-v-c4d46f41]{white-space:nowrap;border-radius:4px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.tool-call-node__result-badge.is-approved[data-v-c4d46f41]{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.tool-call-node__result-badge.is-rejected[data-v-c4d46f41]{color:#cf1322;background:#fff2f0;border:1px solid #ffccc7}.sub-agent-node[data-v-526ce89d]{border:1px solid var(--border-color-split,#e5e7eb);background:#f9fafb;border-radius:6px;margin:4px 0;overflow:hidden}.sub-agent-node__header[data-v-526ce89d]{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f3f4f6;justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;transition:background .15s;display:flex}.sub-agent-node__header[data-v-526ce89d]:hover{background:#e9eaec}.sub-agent-node__prefix[data-v-526ce89d]{align-items:center;gap:6px;display:flex}.sub-agent-node__icon[data-v-526ce89d]{color:#6b7280;font-size:14px}.sub-agent-node__icon.is-spinning[data-v-526ce89d]{animation:1s linear infinite sub-spin-526ce89d}@keyframes sub-spin-526ce89d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sub-agent-node__name[data-v-526ce89d]{font-size:13px;font-weight:500}.sub-agent-node__badge[data-v-526ce89d]{color:#4338ca;background:#e0e7ff;border:1px solid #c7d2fe;border-radius:4px;align-items:center;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.sub-agent-node__chevron[data-v-526ce89d]{color:#9ca3af;font-size:12px}.sub-agent-node__body[data-v-526ce89d]{padding:8px 12px 10px}.sub-agent-node__tools[data-v-526ce89d]{margin-bottom:8px}.sub-agent-node__content[data-v-526ce89d]{font-size:13px}.think-node[data-v-526ce89d]{margin:4px 0}.think-node__layout[data-v-526ce89d]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-526ce89d]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-526ce89d]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-526ce89d]{flex:none;align-items:center;gap:6px;display:inline-flex}.think-node__prefix-icon[data-v-526ce89d]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node__content[data-v-526ce89d]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;position:relative}.think-node__content--inline[data-v-526ce89d]{flex:1}.think-node__content.is-collapsed[data-v-526ce89d]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-526ce89d]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-526ce89d]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;max-height:240px;margin-top:2px;padding:8px 10px 8px 28px;overflow-y:auto}.think-node__toggle[data-v-526ce89d]{color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;display:inline-flex}.think-node__toggle-icon[data-v-526ce89d]{font-size:10px}.msg-renderer__loading[data-v-4bb03a95]{align-items:center;min-height:28px;display:flex}.msg-renderer__loading-text[data-v-4bb03a95]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));font-size:14px}.msg-renderer__attachments[data-v-4bb03a95]{flex-wrap:wrap;gap:8px;margin-top:1.25em;display:flex}.think-node[data-v-4bb03a95]{margin:6px 0}.think-node__layout[data-v-4bb03a95]{color:var(--text-color-secondary,#8c8c8c);flex-direction:column;gap:4px;min-width:0;font-size:12px;line-height:1.8;display:flex}.think-node__header[data-v-4bb03a95]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.think-node__header-main[data-v-4bb03a95]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.think-node__prefix[data-v-4bb03a95]{flex:none;align-items:center;gap:6px;padding-top:1px;display:inline-flex}.think-node__prefix-icon[data-v-4bb03a95]{color:color-mix(in srgb, var(--primary-color,#1677ff) 65%, #999);font-size:12px}.think-node__content[data-v-4bb03a95]{min-width:0;color:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;scrollbar-width:none;position:relative}.think-node__content[data-v-4bb03a95]::-webkit-scrollbar{width:0;height:0}.think-node__content--inline[data-v-4bb03a95]{flex:1}.think-node__content.is-collapsed[data-v-4bb03a95]{line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.think-node__content.is-collapsed.is-overflowing[data-v-4bb03a95]:after{content:"";background:linear-gradient(180deg, #fff0 0%, color-mix(in srgb, var(--component-background,#fff) 70%, transparent) 100%);pointer-events:none;height:18px;position:absolute;bottom:0;left:0;right:0}.think-node__content.is-expanded[data-v-4bb03a95]{background:color-mix(in srgb, var(--primary-color,#1677ff) 4%, transparent);border-radius:8px;max-height:240px;margin-top:2px;padding:8px;overflow-y:auto}.think-node__toggle[data-v-4bb03a95]{color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:12px;line-height:1;display:inline-flex}.think-node__toggle-icon[data-v-4bb03a95]{font-size:10px}.tool-call-node[data-v-d1dff106]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:10px 0;font-size:12px}.tool-call-node__header[data-v-d1dff106]{background:#f5f6f7;border:1px solid #e5e7eb;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:28px;padding:4px 10px;transition:background-color .2s,border-color .2s;display:flex}.tool-call-node__header--clickable[data-v-d1dff106]{cursor:pointer}.tool-call-node__header--clickable[data-v-d1dff106]:hover{background:#ebecee}.tool-call-node__prefix[data-v-d1dff106]{align-items:center;gap:6px;min-width:0;display:flex}.tool-call-node__prefix-icon[data-v-d1dff106]{flex-shrink:0;font-size:14px}.tool-call-node__prefix-icon.is-spinning[data-v-d1dff106]{animation:1s linear infinite spin-d1dff106}@keyframes spin-d1dff106{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tool-call-node__title[data-v-d1dff106]{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.tool-call-node__toggle[data-v-d1dff106]{flex-shrink:0}.tool-call-node__toggle-icon[data-v-d1dff106]{color:#9ca3af;font-size:12px}.smdr__body[data-v-d1dff106]{border:1px solid #e5e7eb;border-radius:8px;margin-top:8px;overflow:hidden}.smdr__error[data-v-d1dff106]{color:#ef4444;background:#fef2f2;padding:12px}.smdr__tabs[data-v-d1dff106]{background:#f9fafb;border-bottom:1px solid #e5e7eb;gap:0;display:flex;overflow-x:auto}.smdr__tab[data-v-d1dff106]{cursor:pointer;color:#6b7280;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:12px;transition:color .15s,border-color .15s}.smdr__tab[data-v-d1dff106]:hover{color:#374151}.smdr__tab--active[data-v-d1dff106]{color:var(--primary-color,#1677ff);border-bottom-color:var(--primary-color,#1677ff)}.smdr__content[data-v-d1dff106]{max-height:400px;padding:10px 12px;overflow-y:auto}.todos-top-panel[data-v-d03a50e5]{background:linear-gradient(#f9fbff 0%,#f3f8ff 100%);border:1px solid #d7e6ff;border-radius:12px;margin:0 20px 12px;padding:12px 14px}.todos-top-panel__header[data-v-d03a50e5]{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.todos-top-panel__title[data-v-d03a50e5]{color:#1f2d3d;font-size:13px;font-weight:600}.todos-top-panel__meta[data-v-d03a50e5]{color:#4e6796;align-items:center;gap:4px;font-size:12px;display:inline-flex}.todos-top-panel__meta-icon[data-v-d03a50e5]{font-size:12px}.todos-top-panel__list[data-v-d03a50e5]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.todos-top-panel__item[data-v-d03a50e5]{align-items:flex-start;gap:8px;display:flex}.todos-top-panel__status[data-v-d03a50e5]{flex-shrink:0;align-items:center;margin-top:1px;font-size:14px;display:flex}.todos-top-panel__status.is-pending[data-v-d03a50e5]{color:#9ca3af}.todos-top-panel__status.is-in_progress[data-v-d03a50e5]{color:#1677ff}.todos-top-panel__status.is-completed[data-v-d03a50e5]{color:#22c55e}.todos-top-panel__status.is-cancelled[data-v-d03a50e5]{color:#ef4444}.todos-top-panel__status .is-rotating[data-v-d03a50e5]{animation:1s linear infinite spin-d03a50e5}@keyframes spin-d03a50e5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.todos-top-panel__text[data-v-d03a50e5]{color:#374151;font-size:13px;line-height:1.5}.chat-panel[data-v-7d1dc6c2]{background:#fff;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.chat-header[data-v-7d1dc6c2]{border-bottom:1px solid var(--border-color-split,var(--border));flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.header-meta[data-v-7d1dc6c2]{flex-direction:column;gap:4px;min-width:0;display:flex}.header-actions[data-v-7d1dc6c2]{flex-shrink:0;align-items:center;gap:12px;display:flex}.conv-heading[data-v-7d1dc6c2]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600;line-height:1.4}.conv-subheading[data-v-7d1dc6c2]{color:var(--text-color-secondary,var(--text-muted,var(--muted)));margin:0;font-size:13px;line-height:1.5}.chat-body[data-v-7d1dc6c2]{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex;overflow:hidden}.empty-state[data-v-7d1dc6c2]{height:100%;color:var(--text-color-secondary,var(--text-muted,var(--muted)));flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.empty-icon[data-v-7d1dc6c2]{color:var(--primary-color,var(--primary));font-size:32px}.empty-title[data-v-7d1dc6c2]{color:var(--text-color,var(--text));margin:0;font-size:16px;font-weight:600}.empty-sub[data-v-7d1dc6c2]{margin:0;font-size:13px}.messages-wrapper[data-v-7d1dc6c2]{flex:1;width:100%;min-height:0;display:flex}.input-footer[data-v-7d1dc6c2]{border-top:1px solid var(--border-color-split,var(--border));flex-shrink:0;padding:12px 16px 16px}.input-panel[data-v-7d1dc6c2]{width:100%}.sender-footer[data-v-7d1dc6c2]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.sender-footer__left[data-v-7d1dc6c2]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sender-footer__right[data-v-7d1dc6c2]{flex-shrink:0;align-items:center;gap:4px;display:flex}.agent-chat[data-v-9e2afe3e]{background:var(--component-background,#fff);width:100%;height:100%;display:flex;position:relative;overflow:hidden}.agent-chat__sidebar[data-v-9e2afe3e]{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-9e2afe3e]{display:none}.agent-chat__sidebar-header[data-v-9e2afe3e]{justify-content:space-between;align-items:center;display:flex}.agent-chat__sidebar-title[data-v-9e2afe3e]{color:var(--text-color,var(--text));font-size:13px;font-weight:600}.agent-chat__new-btn[data-v-9e2afe3e]{height:26px;padding:0 6px;font-size:12px}.agent-chat__agent-select[data-v-9e2afe3e]{width:100%}.agent-chat__search[data-v-9e2afe3e]{border-radius:8px!important}.agent-chat__state-tip[data-v-9e2afe3e]{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-9e2afe3e]{color:#f87171}.agent-chat__conv-list[data-v-9e2afe3e]{flex:1;overflow:hidden auto}.agent-chat__conv-list[data-v-9e2afe3e]::-webkit-scrollbar{width:3px}.agent-chat__conv-list[data-v-9e2afe3e]::-webkit-scrollbar-thumb{background:#00000014;border-radius:99px}.agent-chat__main[data-v-9e2afe3e]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.agent-chat__toolbar[data-v-9e2afe3e]{flex-shrink:0;padding:10px 12px 0;display:none}.agent-chat__history-btn[data-v-9e2afe3e]{border-radius:999px;font-size:13px}.agent-chat__panel[data-v-9e2afe3e]{flex:1;min-height:0}.agent-chat__mask[data-v-9e2afe3e]{display:none}@media (width<=768px){.agent-chat__sidebar[data-v-9e2afe3e]{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-9e2afe3e]{left:0}.agent-chat__close-btn[data-v-9e2afe3e]{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-9e2afe3e]{display:block}.agent-chat__mask[data-v-9e2afe3e]{z-index:90;background:#0f172a66;display:block;position:fixed;inset:0}}
|
|
2
2
|
/*$vite$:1*/
|