diff --git a/spring-ai-alibaba-jmanus/pom.xml b/spring-ai-alibaba-jmanus/pom.xml
index 9c5ff508bf..e53f1d7c71 100644
--- a/spring-ai-alibaba-jmanus/pom.xml
+++ b/spring-ai-alibaba-jmanus/pom.xml
@@ -7,7 +7,7 @@
com.alibaba.cloud.ai
Spring AI Alibaba JManus
spring-ai-alibaba-jmanus
- 3.0.6-SNAPSHOT
+ 3.0.6
diff --git a/spring-ai-alibaba-jmanus/src/main/java/com/alibaba/cloud/ai/example/manus/dynamic/model/service/ModelDataInitialization.java b/spring-ai-alibaba-jmanus/src/main/java/com/alibaba/cloud/ai/example/manus/dynamic/model/service/ModelDataInitialization.java
index 641a547922..f5ec53395f 100644
--- a/spring-ai-alibaba-jmanus/src/main/java/com/alibaba/cloud/ai/example/manus/dynamic/model/service/ModelDataInitialization.java
+++ b/spring-ai-alibaba-jmanus/src/main/java/com/alibaba/cloud/ai/example/manus/dynamic/model/service/ModelDataInitialization.java
@@ -23,7 +23,6 @@
import com.alibaba.cloud.ai.example.manus.event.JmanusEventPublisher;
import com.alibaba.cloud.ai.example.manus.event.ModelChangeEvent;
import com.alibaba.cloud.ai.example.manus.llm.LlmService;
-import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,6 +34,7 @@
* @author lizhenning
* @since 2025/7/8
*/
+
@Service
public class ModelDataInitialization implements IModelDataInitialization {
@@ -62,7 +62,7 @@ public ModelDataInitialization(DynamicModelRepository repository) {
this.repository = repository;
}
- @PostConstruct
+ // @PostConstruct // 注释掉PostConstruct注解
public void init() {
// Check environment variables and automatically create model configuration (for
// Docker deployment scenarios)
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/_plugin-vue_export-helper-CVv1atPb.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/_plugin-vue_export-helper-v7-Do0bo.js
similarity index 99%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/_plugin-vue_export-helper-CVv1atPb.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/_plugin-vue_export-helper-v7-Do0bo.js
index 40d3923bef..7f99103594 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/_plugin-vue_export-helper-CVv1atPb.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/_plugin-vue_export-helper-v7-Do0bo.js
@@ -1 +1 @@
-import{d as mt,V as G}from"./index-DPEG66sS.js";const st=/^[a-z0-9]+(-[a-z0-9]+)*$/,M=(t,n,o,i="")=>{const e=t.split(":");if(t.slice(0,1)==="@"){if(e.length<2||e.length>3)return null;i=e.shift().slice(1)}if(e.length>3||!e.length)return null;if(e.length>1){const c=e.pop(),l=e.pop(),f={provider:e.length>0?e[0]:i,prefix:l,name:c};return n&&!L(f)?null:f}const s=e[0],r=s.split("-");if(r.length>1){const c={provider:i,prefix:r.shift(),name:r.join("-")};return n&&!L(c)?null:c}if(o&&i===""){const c={provider:i,prefix:"",name:s};return n&&!L(c,o)?null:c}return null},L=(t,n)=>t?!!((n&&t.prefix===""||t.prefix)&&t.name):!1,rt=Object.freeze({left:0,top:0,width:16,height:16}),A=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),_=Object.freeze({...rt,...A}),z=Object.freeze({..._,body:"",hidden:!1});function yt(t,n){const o={};!t.hFlip!=!n.hFlip&&(o.hFlip=!0),!t.vFlip!=!n.vFlip&&(o.vFlip=!0);const i=((t.rotate||0)+(n.rotate||0))%4;return i&&(o.rotate=i),o}function B(t,n){const o=yt(t,n);for(const i in z)i in A?i in t&&!(i in o)&&(o[i]=A[i]):i in n?o[i]=n[i]:i in t&&(o[i]=t[i]);return o}function bt(t,n){const o=t.icons,i=t.aliases||Object.create(null),e=Object.create(null);function s(r){if(o[r])return e[r]=[];if(!(r in e)){e[r]=null;const c=i[r]&&i[r].parent,l=c&&s(c);l&&(e[r]=[c].concat(l))}return e[r]}return Object.keys(o).concat(Object.keys(i)).forEach(s),e}function xt(t,n,o){const i=t.icons,e=t.aliases||Object.create(null);let s={};function r(c){s=B(i[c]||e[c],s)}return r(n),o.forEach(r),B(t,s)}function ct(t,n){const o=[];if(typeof t!="object"||typeof t.icons!="object")return o;t.not_found instanceof Array&&t.not_found.forEach(e=>{n(e,null),o.push(e)});const i=bt(t);for(const e in i){const s=i[e];s&&(n(e,xt(t,e,s)),o.push(e))}return o}const It={provider:"",aliases:{},not_found:{},...rt};function D(t,n){for(const o in n)if(o in t&&typeof t[o]!=typeof n[o])return!1;return!0}function lt(t){if(typeof t!="object"||t===null)return null;const n=t;if(typeof n.prefix!="string"||!t.icons||typeof t.icons!="object"||!D(t,It))return null;const o=n.icons;for(const e in o){const s=o[e];if(!e||typeof s.body!="string"||!D(s,z))return null}const i=n.aliases||Object.create(null);for(const e in i){const s=i[e],r=s.parent;if(!e||typeof r!="string"||!o[r]&&!i[r]||!D(s,z))return null}return n}const K=Object.create(null);function wt(t,n){return{provider:t,prefix:n,icons:Object.create(null),missing:new Set}}function S(t,n){const o=K[t]||(K[t]=Object.create(null));return o[n]||(o[n]=wt(t,n))}function ft(t,n){return lt(n)?ct(n,(o,i)=>{i?t.icons[o]=i:t.missing.add(o)}):[]}function vt(t,n,o){try{if(typeof o.body=="string")return t.icons[n]={...o},!0}catch{}return!1}let j=!1;function ut(t){return typeof t=="boolean"&&(j=t),j}function kt(t){const n=typeof t=="string"?M(t,!0,j):t;if(n){const o=S(n.provider,n.prefix),i=n.name;return o.icons[i]||(o.missing.has(i)?null:void 0)}}function St(t,n){const o=M(t,!0,j);if(!o)return!1;const i=S(o.provider,o.prefix);return n?vt(i,o.name,n):(i.missing.add(o.name),!0)}function Tt(t,n){if(typeof t!="object")return!1;if(typeof n!="string"&&(n=t.provider||""),j&&!n&&!t.prefix){let e=!1;return lt(t)&&(t.prefix="",ct(t,(s,r)=>{St(s,r)&&(e=!0)})),e}const o=t.prefix;if(!L({prefix:o,name:"a"}))return!1;const i=S(n,o);return!!ft(i,t)}const at=Object.freeze({width:null,height:null}),dt=Object.freeze({...at,...A}),Ct=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Pt=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function W(t,n,o){if(n===1)return t;if(o=o||100,typeof t=="number")return Math.ceil(t*n*o)/o;if(typeof t!="string")return t;const i=t.split(Ct);if(i===null||!i.length)return t;const e=[];let s=i.shift(),r=Pt.test(s);for(;;){if(r){const c=parseFloat(s);isNaN(c)?e.push(s):e.push(Math.ceil(c*n*o)/o)}else e.push(s);if(s=i.shift(),s===void 0)return e.join("");r=!r}}function jt(t,n="defs"){let o="";const i=t.indexOf("<"+n);for(;i>=0;){const e=t.indexOf(">",i),s=t.indexOf(""+n);if(e===-1||s===-1)break;const r=t.indexOf(">",s);if(r===-1)break;o+=t.slice(e+1,s).trim(),t=t.slice(0,i).trim()+t.slice(r+1)}return{defs:o,content:t}}function Et(t,n){return t?""+t+""+n:n}function Lt(t,n,o){const i=jt(t);return Et(i.defs,n+i.content+o)}const Ft=t=>t==="unset"||t==="undefined"||t==="none";function Ot(t,n){const o={..._,...t},i={...dt,...n},e={left:o.left,top:o.top,width:o.width,height:o.height};let s=o.body;[o,i].forEach(g=>{const u=[],k=g.hFlip,w=g.vFlip;let x=g.rotate;k?w?x+=2:(u.push("translate("+(e.width+e.left).toString()+" "+(0-e.top).toString()+")"),u.push("scale(-1 1)"),e.top=e.left=0):w&&(u.push("translate("+(0-e.left).toString()+" "+(e.height+e.top).toString()+")"),u.push("scale(1 -1)"),e.top=e.left=0);let y;switch(x<0&&(x-=Math.floor(x/4)*4),x=x%4,x){case 1:y=e.height/2+e.top,u.unshift("rotate(90 "+y.toString()+" "+y.toString()+")");break;case 2:u.unshift("rotate(180 "+(e.width/2+e.left).toString()+" "+(e.height/2+e.top).toString()+")");break;case 3:y=e.width/2+e.left,u.unshift("rotate(-90 "+y.toString()+" "+y.toString()+")");break}x%2===1&&(e.left!==e.top&&(y=e.left,e.left=e.top,e.top=y),e.width!==e.height&&(y=e.width,e.width=e.height,e.height=y)),u.length&&(s=Lt(s,'',""))});const r=i.width,c=i.height,l=e.width,f=e.height;let a,d;r===null?(d=c===null?"1em":c==="auto"?f:c,a=W(d,l/f)):(a=r==="auto"?l:r,d=c===null?W(a,f/l):c==="auto"?f:c);const p={},m=(g,u)=>{Ft(u)||(p[g]=u.toString())};m("width",a),m("height",d);const I=[e.left,e.top,l,f];return p.viewBox=I.join(" "),{attributes:p,viewBox:I,body:s}}const At=/\sid="(\S+)"/g,Mt="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let _t=0;function Nt(t,n=Mt){const o=[];let i;for(;i=At.exec(t);)o.push(i[1]);if(!o.length)return t;const e="suffix"+(Math.random()*16777216|Date.now()).toString(16);return o.forEach(s=>{const r=typeof n=="function"?n(s):n+(_t++).toString(),c=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+c+')([")]|\\.[a-z])',"g"),"$1"+r+e+"$3")}),t=t.replace(new RegExp(e,"g"),""),t}const Q=Object.create(null);function Dt(t,n){Q[t]=n}function $(t){return Q[t]||Q[""]}function U(t){let n;if(typeof t.resources=="string")n=[t.resources];else if(n=t.resources,!(n instanceof Array)||!n.length)return null;return{resources:n,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const V=Object.create(null),C=["https://api.simplesvg.com","https://api.unisvg.com"],F=[];for(;C.length>0;)C.length===1||Math.random()>.5?F.push(C.shift()):F.push(C.pop());V[""]=U({resources:["https://api.iconify.design"].concat(F)});function Rt(t,n){const o=U(n);return o===null?!1:(V[t]=o,!0)}function H(t){return V[t]}const zt=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let J=zt();function Qt(t,n){const o=H(t);if(!o)return 0;let i;if(!o.maxURL)i=0;else{let e=0;o.resources.forEach(r=>{e=Math.max(e,r.length)});const s=n+".json?icons=";i=o.maxURL-e-o.path.length-s.length}return i}function $t(t){return t===404}const qt=(t,n,o)=>{const i=[],e=Qt(t,n),s="icons";let r={type:s,provider:t,prefix:n,icons:[]},c=0;return o.forEach((l,f)=>{c+=l.length+1,c>=e&&f>0&&(i.push(r),r={type:s,provider:t,prefix:n,icons:[]},c=l.length),r.icons.push(l)}),i.push(r),i};function Ut(t){if(typeof t=="string"){const n=H(t);if(n)return n.path}return"/"}const Vt=(t,n,o)=>{if(!J){o("abort",424);return}let i=Ut(n.provider);switch(n.type){case"icons":{const s=n.prefix,c=n.icons.join(","),l=new URLSearchParams({icons:c});i+=s+".json?"+l.toString();break}case"custom":{const s=n.uri;i+=s.slice(0,1)==="/"?s.slice(1):s;break}default:o("abort",400);return}let e=503;J(t+i).then(s=>{const r=s.status;if(r!==200){setTimeout(()=>{o($t(r)?"abort":"next",r)});return}return e=501,s.json()}).then(s=>{if(typeof s!="object"||s===null){setTimeout(()=>{s===404?o("abort",s):o("next",e)});return}setTimeout(()=>{o("success",s)})}).catch(()=>{o("next",e)})},Ht={prepare:qt,send:Vt};function Gt(t){const n={loaded:[],missing:[],pending:[]},o=Object.create(null);t.sort((e,s)=>e.provider!==s.provider?e.provider.localeCompare(s.provider):e.prefix!==s.prefix?e.prefix.localeCompare(s.prefix):e.name.localeCompare(s.name));let i={provider:"",prefix:"",name:""};return t.forEach(e=>{if(i.name===e.name&&i.prefix===e.prefix&&i.provider===e.provider)return;i=e;const s=e.provider,r=e.prefix,c=e.name,l=o[s]||(o[s]=Object.create(null)),f=l[r]||(l[r]=S(s,r));let a;c in f.icons?a=n.loaded:r===""||f.missing.has(c)?a=n.missing:a=n.pending;const d={provider:s,prefix:r,name:c};a.push(d)}),n}function ht(t,n){t.forEach(o=>{const i=o.loaderCallbacks;i&&(o.loaderCallbacks=i.filter(e=>e.id!==n))})}function Bt(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const n=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!n.length)return;let o=!1;const i=t.provider,e=t.prefix;n.forEach(s=>{const r=s.icons,c=r.pending.length;r.pending=r.pending.filter(l=>{if(l.prefix!==e)return!0;const f=l.name;if(t.icons[f])r.loaded.push({provider:i,prefix:e,name:f});else if(t.missing.has(f))r.missing.push({provider:i,prefix:e,name:f});else return o=!0,!0;return!1}),r.pending.length!==c&&(o||ht([t],s.id),s.callback(r.loaded.slice(0),r.missing.slice(0),r.pending.slice(0),s.abort))})}))}let Kt=0;function Wt(t,n,o){const i=Kt++,e=ht.bind(null,o,i);if(!n.pending.length)return e;const s={id:i,icons:n,callback:t,abort:e};return o.forEach(r=>{(r.loaderCallbacks||(r.loaderCallbacks=[])).push(s)}),e}function Jt(t,n=!0,o=!1){const i=[];return t.forEach(e=>{const s=typeof e=="string"?M(e,n,o):e;s&&i.push(s)}),i}var Xt={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Yt(t,n,o,i){const e=t.resources.length,s=t.random?Math.floor(Math.random()*e):t.index;let r;if(t.random){let h=t.resources.slice(0);for(r=[];h.length>1;){const b=Math.floor(Math.random()*h.length);r.push(h[b]),h=h.slice(0,b).concat(h.slice(b+1))}r=r.concat(h)}else r=t.resources.slice(s).concat(t.resources.slice(0,s));const c=Date.now();let l="pending",f=0,a,d=null,p=[],m=[];typeof i=="function"&&m.push(i);function I(){d&&(clearTimeout(d),d=null)}function g(){l==="pending"&&(l="aborted"),I(),p.forEach(h=>{h.status==="pending"&&(h.status="aborted")}),p=[]}function u(h,b){b&&(m=[]),typeof h=="function"&&m.push(h)}function k(){return{startTime:c,payload:n,status:l,queriesSent:f,queriesPending:p.length,subscribe:u,abort:g}}function w(){l="failed",m.forEach(h=>{h(void 0,a)})}function x(){p.forEach(h=>{h.status==="pending"&&(h.status="aborted")}),p=[]}function y(h,b,T){const E=b!=="success";switch(p=p.filter(v=>v!==h),l){case"pending":break;case"failed":if(E||!t.dataAfterTimeout)return;break;default:return}if(b==="abort"){a=T,w();return}if(E){a=T,p.length||(r.length?N():w());return}if(I(),x(),!t.random){const v=t.resources.indexOf(h.resource);v!==-1&&v!==t.index&&(t.index=v)}l="completed",m.forEach(v=>{v(T)})}function N(){if(l!=="pending")return;I();const h=r.shift();if(h===void 0){if(p.length){d=setTimeout(()=>{I(),l==="pending"&&(x(),w())},t.timeout);return}w();return}const b={status:"pending",resource:h,callback:(T,E)=>{y(b,T,E)}};p.push(b),f++,d=setTimeout(N,t.rotate),o(h,n,b.callback)}return setTimeout(N),k}function pt(t){const n={...Xt,...t};let o=[];function i(){o=o.filter(c=>c().status==="pending")}function e(c,l,f){const a=Yt(n,c,l,(d,p)=>{i(),f&&f(d,p)});return o.push(a),a}function s(c){return o.find(l=>c(l))||null}return{query:e,find:s,setIndex:c=>{n.index=c},getIndex:()=>n.index,cleanup:i}}function X(){}const R=Object.create(null);function Zt(t){if(!R[t]){const n=H(t);if(!n)return;const o=pt(n),i={config:n,redundancy:o};R[t]=i}return R[t]}function te(t,n,o){let i,e;if(typeof t=="string"){const s=$(t);if(!s)return o(void 0,424),X;e=s.send;const r=Zt(t);r&&(i=r.redundancy)}else{const s=U(t);if(s){i=pt(s);const r=t.resources?t.resources[0]:"",c=$(r);c&&(e=c.send)}}return!i||!e?(o(void 0,424),X):i.query(n,e,o)().abort}function Y(){}function ee(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,Bt(t)}))}function ne(t){const n=[],o=[];return t.forEach(i=>{(i.match(st)?n:o).push(i)}),{valid:n,invalid:o}}function P(t,n,o){function i(){const e=t.pendingIcons;n.forEach(s=>{e&&e.delete(s),t.icons[s]||t.missing.add(s)})}if(o&&typeof o=="object")try{if(!ft(t,o).length){i();return}}catch(e){console.error(e)}i(),ee(t)}function Z(t,n){t instanceof Promise?t.then(o=>{n(o)}).catch(()=>{n(null)}):n(t)}function oe(t,n){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(n).sort():t.iconsToLoad=n,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:o,prefix:i}=t,e=t.iconsToLoad;if(delete t.iconsToLoad,!e||!e.length)return;const s=t.loadIcon;if(t.loadIcons&&(e.length>1||!s)){Z(t.loadIcons(e,i,o),a=>{P(t,e,a)});return}if(s){e.forEach(a=>{const d=s(a,i,o);Z(d,p=>{const m=p?{prefix:i,icons:{[a]:p}}:null;P(t,[a],m)})});return}const{valid:r,invalid:c}=ne(e);if(c.length&&P(t,c,null),!r.length)return;const l=i.match(st)?$(o):null;if(!l){P(t,r,null);return}l.prepare(o,i,r).forEach(a=>{te(o,a,d=>{P(t,a.icons,d)})})}))}const ie=(t,n)=>{const o=Jt(t,!0,ut()),i=Gt(o);if(!i.pending.length){let l=!0;return n&&setTimeout(()=>{l&&n(i.loaded,i.missing,i.pending,Y)}),()=>{l=!1}}const e=Object.create(null),s=[];let r,c;return i.pending.forEach(l=>{const{provider:f,prefix:a}=l;if(a===c&&f===r)return;r=f,c=a,s.push(S(f,a));const d=e[f]||(e[f]=Object.create(null));d[a]||(d[a]=[])}),i.pending.forEach(l=>{const{provider:f,prefix:a,name:d}=l,p=S(f,a),m=p.pendingIcons||(p.pendingIcons=new Set);m.has(d)||(m.add(d),e[f][a].push(d))}),s.forEach(l=>{const f=e[l.provider][l.prefix];f.length&&oe(l,f)}),n?Wt(n,i,s):Y};function se(t,n){const o={...t};for(const i in n){const e=n[i],s=typeof e;i in at?(e===null||e&&(s==="string"||s==="number"))&&(o[i]=e):s===typeof o[i]&&(o[i]=i==="rotate"?e%4:e)}return o}const re=/[\s,]+/;function ce(t,n){n.split(re).forEach(o=>{switch(o.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function le(t,n=0){const o=t.replace(/^-?[0-9.]*/,"");function i(e){for(;e<0;)e+=4;return e%4}if(o===""){const e=parseInt(t);return isNaN(e)?0:i(e)}else if(o!==t){let e=0;switch(o){case"%":e=25;break;case"deg":e=90}if(e){let s=parseFloat(t.slice(0,t.length-o.length));return isNaN(s)?0:(s=s/e,s%1===0?i(s):0)}}return n}function fe(t,n){let o=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const i in n)o+=" "+i+'="'+n[i]+'"';return'"}function ue(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function ae(t){return"data:image/svg+xml,"+ue(t)}function de(t){return'url("'+ae(t)+'")'}const tt={...dt,inline:!1},he={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},pe={display:"inline-block"},q={backgroundColor:"currentColor"},gt={backgroundColor:"transparent"},et={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},nt={webkitMask:q,mask:q,background:gt};for(const t in nt){const n=nt[t];for(const o in et)n[t+o]=et[o]}const O={};["horizontal","vertical"].forEach(t=>{const n=t.slice(0,1)+"Flip";O[t+"-flip"]=n,O[t.slice(0,1)+"-flip"]=n,O[t+"Flip"]=n});function ot(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const it=(t,n)=>{const o=se(tt,n),i={...he},e=n.mode||"svg",s={},r=n.style,c=typeof r=="object"&&!(r instanceof Array)?r:{};for(let g in n){const u=n[g];if(u!==void 0)switch(g){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":o[g]=u===!0||u==="true"||u===1;break;case"flip":typeof u=="string"&&ce(o,u);break;case"color":s.color=u;break;case"rotate":typeof u=="string"?o[g]=le(u):typeof u=="number"&&(o[g]=u);break;case"ariaHidden":case"aria-hidden":u!==!0&&u!=="true"&&delete i["aria-hidden"];break;default:{const k=O[g];k?(u===!0||u==="true"||u===1)&&(o[k]=!0):tt[g]===void 0&&(i[g]=u)}}}const l=Ot(t,o),f=l.attributes;if(o.inline&&(s.verticalAlign="-0.125em"),e==="svg"){i.style={...s,...c},Object.assign(i,f);let g=0,u=n.id;return typeof u=="string"&&(u=u.replace(/-/g,"_")),i.innerHTML=Nt(l.body,u?()=>u+"ID"+g++:"iconifyVue"),G("svg",i)}const{body:a,width:d,height:p}=t,m=e==="mask"||(e==="bg"?!1:a.indexOf("currentColor")!==-1),I=fe(a,{...f,width:d+"",height:p+""});return i.style={...s,"--svg":de(I),width:ot(f.width),height:ot(f.height),...pe,...m?q:gt,...c},G("span",i)};ut(!0);Dt("",Ht);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const n=t.IconifyPreload,o="Invalid IconifyPreload syntax.";typeof n=="object"&&n!==null&&(n instanceof Array?n:[n]).forEach(i=>{try{(typeof i!="object"||i===null||i instanceof Array||typeof i.icons!="object"||typeof i.prefix!="string"||!Tt(i))&&console.error(o)}catch{console.error(o)}})}if(t.IconifyProviders!==void 0){const n=t.IconifyProviders;if(typeof n=="object"&&n!==null)for(let o in n){const i="IconifyProviders["+o+"] is invalid.";try{const e=n[o];if(typeof e!="object"||!e||e.resources===void 0)continue;Rt(o,e)||console.error(i)}catch{console.error(i)}}}}const ge={..._,body:""},ye=mt({inheritAttrs:!1,data(){return{_name:"",_loadingIcon:null,iconMounted:!1,counter:0}},mounted(){this.iconMounted=!0},unmounted(){this.abortLoading()},methods:{abortLoading(){this._loadingIcon&&(this._loadingIcon.abort(),this._loadingIcon=null)},getIcon(t,n,o){if(typeof t=="object"&&t!==null&&typeof t.body=="string")return this._name="",this.abortLoading(),{data:t};let i;if(typeof t!="string"||(i=M(t,!1,!0))===null)return this.abortLoading(),null;let e=kt(i);if(!e)return(!this._loadingIcon||this._loadingIcon.name!==t)&&(this.abortLoading(),this._name="",e!==null&&(this._loadingIcon={name:t,abort:ie([i],()=>{this.counter++})})),null;if(this.abortLoading(),this._name!==t&&(this._name=t,n&&n(t)),o){e=Object.assign({},e);const r=o(e.body,i.name,i.prefix,i.provider);typeof r=="string"&&(e.body=r)}const s=["iconify"];return i.prefix!==""&&s.push("iconify--"+i.prefix),i.provider!==""&&s.push("iconify--"+i.provider),{data:e,classes:s}}},render(){this.counter;const t=this.$attrs,n=this.iconMounted||t.ssr?this.getIcon(t.icon,t.onLoad,t.customise):null;if(!n)return it(ge,t);let o=t;return n.classes&&(o={...t,class:(typeof t.class=="string"?t.class+" ":"")+n.classes.join(" ")}),it({..._,...n.data},o)}}),be=(t,n)=>{const o=t.__vccOpts||t;for(const[i,e]of n)o[i]=e;return o};export{ye as I,be as _};
+import{d as mt,V as G}from"./index-D5D9bzxe.js";const st=/^[a-z0-9]+(-[a-z0-9]+)*$/,M=(t,n,o,i="")=>{const e=t.split(":");if(t.slice(0,1)==="@"){if(e.length<2||e.length>3)return null;i=e.shift().slice(1)}if(e.length>3||!e.length)return null;if(e.length>1){const c=e.pop(),l=e.pop(),f={provider:e.length>0?e[0]:i,prefix:l,name:c};return n&&!L(f)?null:f}const s=e[0],r=s.split("-");if(r.length>1){const c={provider:i,prefix:r.shift(),name:r.join("-")};return n&&!L(c)?null:c}if(o&&i===""){const c={provider:i,prefix:"",name:s};return n&&!L(c,o)?null:c}return null},L=(t,n)=>t?!!((n&&t.prefix===""||t.prefix)&&t.name):!1,rt=Object.freeze({left:0,top:0,width:16,height:16}),A=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),_=Object.freeze({...rt,...A}),z=Object.freeze({..._,body:"",hidden:!1});function yt(t,n){const o={};!t.hFlip!=!n.hFlip&&(o.hFlip=!0),!t.vFlip!=!n.vFlip&&(o.vFlip=!0);const i=((t.rotate||0)+(n.rotate||0))%4;return i&&(o.rotate=i),o}function B(t,n){const o=yt(t,n);for(const i in z)i in A?i in t&&!(i in o)&&(o[i]=A[i]):i in n?o[i]=n[i]:i in t&&(o[i]=t[i]);return o}function bt(t,n){const o=t.icons,i=t.aliases||Object.create(null),e=Object.create(null);function s(r){if(o[r])return e[r]=[];if(!(r in e)){e[r]=null;const c=i[r]&&i[r].parent,l=c&&s(c);l&&(e[r]=[c].concat(l))}return e[r]}return Object.keys(o).concat(Object.keys(i)).forEach(s),e}function xt(t,n,o){const i=t.icons,e=t.aliases||Object.create(null);let s={};function r(c){s=B(i[c]||e[c],s)}return r(n),o.forEach(r),B(t,s)}function ct(t,n){const o=[];if(typeof t!="object"||typeof t.icons!="object")return o;t.not_found instanceof Array&&t.not_found.forEach(e=>{n(e,null),o.push(e)});const i=bt(t);for(const e in i){const s=i[e];s&&(n(e,xt(t,e,s)),o.push(e))}return o}const It={provider:"",aliases:{},not_found:{},...rt};function D(t,n){for(const o in n)if(o in t&&typeof t[o]!=typeof n[o])return!1;return!0}function lt(t){if(typeof t!="object"||t===null)return null;const n=t;if(typeof n.prefix!="string"||!t.icons||typeof t.icons!="object"||!D(t,It))return null;const o=n.icons;for(const e in o){const s=o[e];if(!e||typeof s.body!="string"||!D(s,z))return null}const i=n.aliases||Object.create(null);for(const e in i){const s=i[e],r=s.parent;if(!e||typeof r!="string"||!o[r]&&!i[r]||!D(s,z))return null}return n}const K=Object.create(null);function wt(t,n){return{provider:t,prefix:n,icons:Object.create(null),missing:new Set}}function S(t,n){const o=K[t]||(K[t]=Object.create(null));return o[n]||(o[n]=wt(t,n))}function ft(t,n){return lt(n)?ct(n,(o,i)=>{i?t.icons[o]=i:t.missing.add(o)}):[]}function vt(t,n,o){try{if(typeof o.body=="string")return t.icons[n]={...o},!0}catch{}return!1}let j=!1;function ut(t){return typeof t=="boolean"&&(j=t),j}function kt(t){const n=typeof t=="string"?M(t,!0,j):t;if(n){const o=S(n.provider,n.prefix),i=n.name;return o.icons[i]||(o.missing.has(i)?null:void 0)}}function St(t,n){const o=M(t,!0,j);if(!o)return!1;const i=S(o.provider,o.prefix);return n?vt(i,o.name,n):(i.missing.add(o.name),!0)}function Tt(t,n){if(typeof t!="object")return!1;if(typeof n!="string"&&(n=t.provider||""),j&&!n&&!t.prefix){let e=!1;return lt(t)&&(t.prefix="",ct(t,(s,r)=>{St(s,r)&&(e=!0)})),e}const o=t.prefix;if(!L({prefix:o,name:"a"}))return!1;const i=S(n,o);return!!ft(i,t)}const at=Object.freeze({width:null,height:null}),dt=Object.freeze({...at,...A}),Ct=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Pt=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function W(t,n,o){if(n===1)return t;if(o=o||100,typeof t=="number")return Math.ceil(t*n*o)/o;if(typeof t!="string")return t;const i=t.split(Ct);if(i===null||!i.length)return t;const e=[];let s=i.shift(),r=Pt.test(s);for(;;){if(r){const c=parseFloat(s);isNaN(c)?e.push(s):e.push(Math.ceil(c*n*o)/o)}else e.push(s);if(s=i.shift(),s===void 0)return e.join("");r=!r}}function jt(t,n="defs"){let o="";const i=t.indexOf("<"+n);for(;i>=0;){const e=t.indexOf(">",i),s=t.indexOf(""+n);if(e===-1||s===-1)break;const r=t.indexOf(">",s);if(r===-1)break;o+=t.slice(e+1,s).trim(),t=t.slice(0,i).trim()+t.slice(r+1)}return{defs:o,content:t}}function Et(t,n){return t?""+t+""+n:n}function Lt(t,n,o){const i=jt(t);return Et(i.defs,n+i.content+o)}const Ft=t=>t==="unset"||t==="undefined"||t==="none";function Ot(t,n){const o={..._,...t},i={...dt,...n},e={left:o.left,top:o.top,width:o.width,height:o.height};let s=o.body;[o,i].forEach(g=>{const u=[],k=g.hFlip,w=g.vFlip;let x=g.rotate;k?w?x+=2:(u.push("translate("+(e.width+e.left).toString()+" "+(0-e.top).toString()+")"),u.push("scale(-1 1)"),e.top=e.left=0):w&&(u.push("translate("+(0-e.left).toString()+" "+(e.height+e.top).toString()+")"),u.push("scale(1 -1)"),e.top=e.left=0);let y;switch(x<0&&(x-=Math.floor(x/4)*4),x=x%4,x){case 1:y=e.height/2+e.top,u.unshift("rotate(90 "+y.toString()+" "+y.toString()+")");break;case 2:u.unshift("rotate(180 "+(e.width/2+e.left).toString()+" "+(e.height/2+e.top).toString()+")");break;case 3:y=e.width/2+e.left,u.unshift("rotate(-90 "+y.toString()+" "+y.toString()+")");break}x%2===1&&(e.left!==e.top&&(y=e.left,e.left=e.top,e.top=y),e.width!==e.height&&(y=e.width,e.width=e.height,e.height=y)),u.length&&(s=Lt(s,'',""))});const r=i.width,c=i.height,l=e.width,f=e.height;let a,d;r===null?(d=c===null?"1em":c==="auto"?f:c,a=W(d,l/f)):(a=r==="auto"?l:r,d=c===null?W(a,f/l):c==="auto"?f:c);const p={},m=(g,u)=>{Ft(u)||(p[g]=u.toString())};m("width",a),m("height",d);const I=[e.left,e.top,l,f];return p.viewBox=I.join(" "),{attributes:p,viewBox:I,body:s}}const At=/\sid="(\S+)"/g,Mt="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let _t=0;function Nt(t,n=Mt){const o=[];let i;for(;i=At.exec(t);)o.push(i[1]);if(!o.length)return t;const e="suffix"+(Math.random()*16777216|Date.now()).toString(16);return o.forEach(s=>{const r=typeof n=="function"?n(s):n+(_t++).toString(),c=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+c+')([")]|\\.[a-z])',"g"),"$1"+r+e+"$3")}),t=t.replace(new RegExp(e,"g"),""),t}const Q=Object.create(null);function Dt(t,n){Q[t]=n}function $(t){return Q[t]||Q[""]}function U(t){let n;if(typeof t.resources=="string")n=[t.resources];else if(n=t.resources,!(n instanceof Array)||!n.length)return null;return{resources:n,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const V=Object.create(null),C=["https://api.simplesvg.com","https://api.unisvg.com"],F=[];for(;C.length>0;)C.length===1||Math.random()>.5?F.push(C.shift()):F.push(C.pop());V[""]=U({resources:["https://api.iconify.design"].concat(F)});function Rt(t,n){const o=U(n);return o===null?!1:(V[t]=o,!0)}function H(t){return V[t]}const zt=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let J=zt();function Qt(t,n){const o=H(t);if(!o)return 0;let i;if(!o.maxURL)i=0;else{let e=0;o.resources.forEach(r=>{e=Math.max(e,r.length)});const s=n+".json?icons=";i=o.maxURL-e-o.path.length-s.length}return i}function $t(t){return t===404}const qt=(t,n,o)=>{const i=[],e=Qt(t,n),s="icons";let r={type:s,provider:t,prefix:n,icons:[]},c=0;return o.forEach((l,f)=>{c+=l.length+1,c>=e&&f>0&&(i.push(r),r={type:s,provider:t,prefix:n,icons:[]},c=l.length),r.icons.push(l)}),i.push(r),i};function Ut(t){if(typeof t=="string"){const n=H(t);if(n)return n.path}return"/"}const Vt=(t,n,o)=>{if(!J){o("abort",424);return}let i=Ut(n.provider);switch(n.type){case"icons":{const s=n.prefix,c=n.icons.join(","),l=new URLSearchParams({icons:c});i+=s+".json?"+l.toString();break}case"custom":{const s=n.uri;i+=s.slice(0,1)==="/"?s.slice(1):s;break}default:o("abort",400);return}let e=503;J(t+i).then(s=>{const r=s.status;if(r!==200){setTimeout(()=>{o($t(r)?"abort":"next",r)});return}return e=501,s.json()}).then(s=>{if(typeof s!="object"||s===null){setTimeout(()=>{s===404?o("abort",s):o("next",e)});return}setTimeout(()=>{o("success",s)})}).catch(()=>{o("next",e)})},Ht={prepare:qt,send:Vt};function Gt(t){const n={loaded:[],missing:[],pending:[]},o=Object.create(null);t.sort((e,s)=>e.provider!==s.provider?e.provider.localeCompare(s.provider):e.prefix!==s.prefix?e.prefix.localeCompare(s.prefix):e.name.localeCompare(s.name));let i={provider:"",prefix:"",name:""};return t.forEach(e=>{if(i.name===e.name&&i.prefix===e.prefix&&i.provider===e.provider)return;i=e;const s=e.provider,r=e.prefix,c=e.name,l=o[s]||(o[s]=Object.create(null)),f=l[r]||(l[r]=S(s,r));let a;c in f.icons?a=n.loaded:r===""||f.missing.has(c)?a=n.missing:a=n.pending;const d={provider:s,prefix:r,name:c};a.push(d)}),n}function ht(t,n){t.forEach(o=>{const i=o.loaderCallbacks;i&&(o.loaderCallbacks=i.filter(e=>e.id!==n))})}function Bt(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const n=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!n.length)return;let o=!1;const i=t.provider,e=t.prefix;n.forEach(s=>{const r=s.icons,c=r.pending.length;r.pending=r.pending.filter(l=>{if(l.prefix!==e)return!0;const f=l.name;if(t.icons[f])r.loaded.push({provider:i,prefix:e,name:f});else if(t.missing.has(f))r.missing.push({provider:i,prefix:e,name:f});else return o=!0,!0;return!1}),r.pending.length!==c&&(o||ht([t],s.id),s.callback(r.loaded.slice(0),r.missing.slice(0),r.pending.slice(0),s.abort))})}))}let Kt=0;function Wt(t,n,o){const i=Kt++,e=ht.bind(null,o,i);if(!n.pending.length)return e;const s={id:i,icons:n,callback:t,abort:e};return o.forEach(r=>{(r.loaderCallbacks||(r.loaderCallbacks=[])).push(s)}),e}function Jt(t,n=!0,o=!1){const i=[];return t.forEach(e=>{const s=typeof e=="string"?M(e,n,o):e;s&&i.push(s)}),i}var Xt={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Yt(t,n,o,i){const e=t.resources.length,s=t.random?Math.floor(Math.random()*e):t.index;let r;if(t.random){let h=t.resources.slice(0);for(r=[];h.length>1;){const b=Math.floor(Math.random()*h.length);r.push(h[b]),h=h.slice(0,b).concat(h.slice(b+1))}r=r.concat(h)}else r=t.resources.slice(s).concat(t.resources.slice(0,s));const c=Date.now();let l="pending",f=0,a,d=null,p=[],m=[];typeof i=="function"&&m.push(i);function I(){d&&(clearTimeout(d),d=null)}function g(){l==="pending"&&(l="aborted"),I(),p.forEach(h=>{h.status==="pending"&&(h.status="aborted")}),p=[]}function u(h,b){b&&(m=[]),typeof h=="function"&&m.push(h)}function k(){return{startTime:c,payload:n,status:l,queriesSent:f,queriesPending:p.length,subscribe:u,abort:g}}function w(){l="failed",m.forEach(h=>{h(void 0,a)})}function x(){p.forEach(h=>{h.status==="pending"&&(h.status="aborted")}),p=[]}function y(h,b,T){const E=b!=="success";switch(p=p.filter(v=>v!==h),l){case"pending":break;case"failed":if(E||!t.dataAfterTimeout)return;break;default:return}if(b==="abort"){a=T,w();return}if(E){a=T,p.length||(r.length?N():w());return}if(I(),x(),!t.random){const v=t.resources.indexOf(h.resource);v!==-1&&v!==t.index&&(t.index=v)}l="completed",m.forEach(v=>{v(T)})}function N(){if(l!=="pending")return;I();const h=r.shift();if(h===void 0){if(p.length){d=setTimeout(()=>{I(),l==="pending"&&(x(),w())},t.timeout);return}w();return}const b={status:"pending",resource:h,callback:(T,E)=>{y(b,T,E)}};p.push(b),f++,d=setTimeout(N,t.rotate),o(h,n,b.callback)}return setTimeout(N),k}function pt(t){const n={...Xt,...t};let o=[];function i(){o=o.filter(c=>c().status==="pending")}function e(c,l,f){const a=Yt(n,c,l,(d,p)=>{i(),f&&f(d,p)});return o.push(a),a}function s(c){return o.find(l=>c(l))||null}return{query:e,find:s,setIndex:c=>{n.index=c},getIndex:()=>n.index,cleanup:i}}function X(){}const R=Object.create(null);function Zt(t){if(!R[t]){const n=H(t);if(!n)return;const o=pt(n),i={config:n,redundancy:o};R[t]=i}return R[t]}function te(t,n,o){let i,e;if(typeof t=="string"){const s=$(t);if(!s)return o(void 0,424),X;e=s.send;const r=Zt(t);r&&(i=r.redundancy)}else{const s=U(t);if(s){i=pt(s);const r=t.resources?t.resources[0]:"",c=$(r);c&&(e=c.send)}}return!i||!e?(o(void 0,424),X):i.query(n,e,o)().abort}function Y(){}function ee(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,Bt(t)}))}function ne(t){const n=[],o=[];return t.forEach(i=>{(i.match(st)?n:o).push(i)}),{valid:n,invalid:o}}function P(t,n,o){function i(){const e=t.pendingIcons;n.forEach(s=>{e&&e.delete(s),t.icons[s]||t.missing.add(s)})}if(o&&typeof o=="object")try{if(!ft(t,o).length){i();return}}catch(e){console.error(e)}i(),ee(t)}function Z(t,n){t instanceof Promise?t.then(o=>{n(o)}).catch(()=>{n(null)}):n(t)}function oe(t,n){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(n).sort():t.iconsToLoad=n,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:o,prefix:i}=t,e=t.iconsToLoad;if(delete t.iconsToLoad,!e||!e.length)return;const s=t.loadIcon;if(t.loadIcons&&(e.length>1||!s)){Z(t.loadIcons(e,i,o),a=>{P(t,e,a)});return}if(s){e.forEach(a=>{const d=s(a,i,o);Z(d,p=>{const m=p?{prefix:i,icons:{[a]:p}}:null;P(t,[a],m)})});return}const{valid:r,invalid:c}=ne(e);if(c.length&&P(t,c,null),!r.length)return;const l=i.match(st)?$(o):null;if(!l){P(t,r,null);return}l.prepare(o,i,r).forEach(a=>{te(o,a,d=>{P(t,a.icons,d)})})}))}const ie=(t,n)=>{const o=Jt(t,!0,ut()),i=Gt(o);if(!i.pending.length){let l=!0;return n&&setTimeout(()=>{l&&n(i.loaded,i.missing,i.pending,Y)}),()=>{l=!1}}const e=Object.create(null),s=[];let r,c;return i.pending.forEach(l=>{const{provider:f,prefix:a}=l;if(a===c&&f===r)return;r=f,c=a,s.push(S(f,a));const d=e[f]||(e[f]=Object.create(null));d[a]||(d[a]=[])}),i.pending.forEach(l=>{const{provider:f,prefix:a,name:d}=l,p=S(f,a),m=p.pendingIcons||(p.pendingIcons=new Set);m.has(d)||(m.add(d),e[f][a].push(d))}),s.forEach(l=>{const f=e[l.provider][l.prefix];f.length&&oe(l,f)}),n?Wt(n,i,s):Y};function se(t,n){const o={...t};for(const i in n){const e=n[i],s=typeof e;i in at?(e===null||e&&(s==="string"||s==="number"))&&(o[i]=e):s===typeof o[i]&&(o[i]=i==="rotate"?e%4:e)}return o}const re=/[\s,]+/;function ce(t,n){n.split(re).forEach(o=>{switch(o.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function le(t,n=0){const o=t.replace(/^-?[0-9.]*/,"");function i(e){for(;e<0;)e+=4;return e%4}if(o===""){const e=parseInt(t);return isNaN(e)?0:i(e)}else if(o!==t){let e=0;switch(o){case"%":e=25;break;case"deg":e=90}if(e){let s=parseFloat(t.slice(0,t.length-o.length));return isNaN(s)?0:(s=s/e,s%1===0?i(s):0)}}return n}function fe(t,n){let o=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const i in n)o+=" "+i+'="'+n[i]+'"';return'"}function ue(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function ae(t){return"data:image/svg+xml,"+ue(t)}function de(t){return'url("'+ae(t)+'")'}const tt={...dt,inline:!1},he={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},pe={display:"inline-block"},q={backgroundColor:"currentColor"},gt={backgroundColor:"transparent"},et={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},nt={webkitMask:q,mask:q,background:gt};for(const t in nt){const n=nt[t];for(const o in et)n[t+o]=et[o]}const O={};["horizontal","vertical"].forEach(t=>{const n=t.slice(0,1)+"Flip";O[t+"-flip"]=n,O[t.slice(0,1)+"-flip"]=n,O[t+"Flip"]=n});function ot(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const it=(t,n)=>{const o=se(tt,n),i={...he},e=n.mode||"svg",s={},r=n.style,c=typeof r=="object"&&!(r instanceof Array)?r:{};for(let g in n){const u=n[g];if(u!==void 0)switch(g){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":o[g]=u===!0||u==="true"||u===1;break;case"flip":typeof u=="string"&&ce(o,u);break;case"color":s.color=u;break;case"rotate":typeof u=="string"?o[g]=le(u):typeof u=="number"&&(o[g]=u);break;case"ariaHidden":case"aria-hidden":u!==!0&&u!=="true"&&delete i["aria-hidden"];break;default:{const k=O[g];k?(u===!0||u==="true"||u===1)&&(o[k]=!0):tt[g]===void 0&&(i[g]=u)}}}const l=Ot(t,o),f=l.attributes;if(o.inline&&(s.verticalAlign="-0.125em"),e==="svg"){i.style={...s,...c},Object.assign(i,f);let g=0,u=n.id;return typeof u=="string"&&(u=u.replace(/-/g,"_")),i.innerHTML=Nt(l.body,u?()=>u+"ID"+g++:"iconifyVue"),G("svg",i)}const{body:a,width:d,height:p}=t,m=e==="mask"||(e==="bg"?!1:a.indexOf("currentColor")!==-1),I=fe(a,{...f,width:d+"",height:p+""});return i.style={...s,"--svg":de(I),width:ot(f.width),height:ot(f.height),...pe,...m?q:gt,...c},G("span",i)};ut(!0);Dt("",Ht);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const n=t.IconifyPreload,o="Invalid IconifyPreload syntax.";typeof n=="object"&&n!==null&&(n instanceof Array?n:[n]).forEach(i=>{try{(typeof i!="object"||i===null||i instanceof Array||typeof i.icons!="object"||typeof i.prefix!="string"||!Tt(i))&&console.error(o)}catch{console.error(o)}})}if(t.IconifyProviders!==void 0){const n=t.IconifyProviders;if(typeof n=="object"&&n!==null)for(let o in n){const i="IconifyProviders["+o+"] is invalid.";try{const e=n[o];if(typeof e!="object"||!e||e.resources===void 0)continue;Rt(o,e)||console.error(i)}catch{console.error(i)}}}}const ge={..._,body:""},ye=mt({inheritAttrs:!1,data(){return{_name:"",_loadingIcon:null,iconMounted:!1,counter:0}},mounted(){this.iconMounted=!0},unmounted(){this.abortLoading()},methods:{abortLoading(){this._loadingIcon&&(this._loadingIcon.abort(),this._loadingIcon=null)},getIcon(t,n,o){if(typeof t=="object"&&t!==null&&typeof t.body=="string")return this._name="",this.abortLoading(),{data:t};let i;if(typeof t!="string"||(i=M(t,!1,!0))===null)return this.abortLoading(),null;let e=kt(i);if(!e)return(!this._loadingIcon||this._loadingIcon.name!==t)&&(this.abortLoading(),this._name="",e!==null&&(this._loadingIcon={name:t,abort:ie([i],()=>{this.counter++})})),null;if(this.abortLoading(),this._name!==t&&(this._name=t,n&&n(t)),o){e=Object.assign({},e);const r=o(e.body,i.name,i.prefix,i.provider);typeof r=="string"&&(e.body=r)}const s=["iconify"];return i.prefix!==""&&s.push("iconify--"+i.prefix),i.provider!==""&&s.push("iconify--"+i.provider),{data:e,classes:s}}},render(){this.counter;const t=this.$attrs,n=this.iconMounted||t.ssr?this.getIcon(t.icon,t.onLoad,t.customise):null;if(!n)return it(ge,t);let o=t;return n.classes&&(o={...t,class:(typeof t.class=="string"?t.class+" ":"")+n.classes.join(" ")}),it({..._,...n.data},o)}}),be=(t,n)=>{const o=t.__vccOpts||t;for(const[i,e]of n)o[i]=e;return o};export{ye as I,be as _};
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-6qV34vlx.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-D7cv2SL8.js
similarity index 99%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-6qV34vlx.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-D7cv2SL8.js
index 54bea44df4..c6bc215924 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-6qV34vlx.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-D7cv2SL8.js
@@ -1,4 +1,4 @@
-var Fe=Object.defineProperty;var Le=(e,n,i)=>n in e?Fe(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i;var k=(e,n,i)=>Le(e,typeof n!="symbol"?n+"":n,i);import{m as je}from"./index-YUIMsaSk.js";import"./index-DPEG66sS.js";import"./_plugin-vue_export-helper-CVv1atPb.js";import"./useMessage-CDn_n3DJ.js";import"./index-BStkLDtc.js";/*!-----------------------------------------------------------------------------
+var Fe=Object.defineProperty;var Le=(e,n,i)=>n in e?Fe(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i;var k=(e,n,i)=>Le(e,typeof n!="symbol"?n+"":n,i);import{m as je}from"./index-ZBJqpxD8.js";import"./index-D5D9bzxe.js";import"./_plugin-vue_export-helper-v7-Do0bo.js";import"./useMessage-CSrhlJeX.js";import"./index-DPmrHTQh.js";/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)
* Released under the MIT license
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-BcRfWaQI.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-BqJtWaNc.js
similarity index 98%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-BcRfWaQI.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-BqJtWaNc.js
index 88cef92eb5..d00b63606d 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-BcRfWaQI.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-BqJtWaNc.js
@@ -1,4 +1,4 @@
-import{m as f}from"./index-YUIMsaSk.js";import"./index-DPEG66sS.js";import"./_plugin-vue_export-helper-CVv1atPb.js";import"./useMessage-CDn_n3DJ.js";import"./index-BStkLDtc.js";/*!-----------------------------------------------------------------------------
+import{m as f}from"./index-ZBJqpxD8.js";import"./index-D5D9bzxe.js";import"./_plugin-vue_export-helper-v7-Do0bo.js";import"./useMessage-CSrhlJeX.js";import"./index-DPmrHTQh.js";/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)
* Released under the MIT license
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-BNRBqdYD.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-CT5N4aXL.js
similarity index 97%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-BNRBqdYD.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-CT5N4aXL.js
index 64a5ebe027..187340aab4 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-BNRBqdYD.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-CT5N4aXL.js
@@ -1,4 +1,4 @@
-import{m as i}from"./index-YUIMsaSk.js";import"./index-DPEG66sS.js";import"./_plugin-vue_export-helper-CVv1atPb.js";import"./useMessage-CDn_n3DJ.js";import"./index-BStkLDtc.js";/*!-----------------------------------------------------------------------------
+import{m as i}from"./index-ZBJqpxD8.js";import"./index-D5D9bzxe.js";import"./_plugin-vue_export-helper-v7-Do0bo.js";import"./useMessage-CSrhlJeX.js";import"./index-DPmrHTQh.js";/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)
* Released under the MIT license
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-CVhrGtHY.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-DzUQQI_L.js
similarity index 96%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-CVhrGtHY.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-DzUQQI_L.js
index 290de8b22c..7aef981cff 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-CVhrGtHY.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-DzUQQI_L.js
@@ -1,4 +1,4 @@
-import{m as s}from"./index-YUIMsaSk.js";import"./index-DPEG66sS.js";import"./_plugin-vue_export-helper-CVv1atPb.js";import"./useMessage-CDn_n3DJ.js";import"./index-BStkLDtc.js";/*!-----------------------------------------------------------------------------
+import{m as s}from"./index-ZBJqpxD8.js";import"./index-D5D9bzxe.js";import"./_plugin-vue_export-helper-v7-Do0bo.js";import"./useMessage-CSrhlJeX.js";import"./index-DPmrHTQh.js";/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)
* Released under the MIT license
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-CX3Vv9tQ.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-DJ9XhIua.js
similarity index 99%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-CX3Vv9tQ.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-DJ9XhIua.js
index e865901e0e..41ca6ffdc9 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-CX3Vv9tQ.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-DJ9XhIua.js
@@ -1,4 +1,4 @@
-var Be=Object.defineProperty;var $e=(e,n,i)=>n in e?Be(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i;var k=(e,n,i)=>$e(e,typeof n!="symbol"?n+"":n,i);import{m as qe}from"./index-YUIMsaSk.js";import"./index-DPEG66sS.js";import"./_plugin-vue_export-helper-CVv1atPb.js";import"./useMessage-CDn_n3DJ.js";import"./index-BStkLDtc.js";/*!-----------------------------------------------------------------------------
+var Be=Object.defineProperty;var $e=(e,n,i)=>n in e?Be(e,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[n]=i;var k=(e,n,i)=>$e(e,typeof n!="symbol"?n+"":n,i);import{m as qe}from"./index-ZBJqpxD8.js";import"./index-D5D9bzxe.js";import"./_plugin-vue_export-helper-v7-Do0bo.js";import"./useMessage-CSrhlJeX.js";import"./index-DPmrHTQh.js";/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)
* Released under the MIT license
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BBHw2H_t.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BBHw2H_t.js
new file mode 100644
index 0000000000..c1e32741b4
--- /dev/null
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BBHw2H_t.js
@@ -0,0 +1 @@
+import{d as I,a as u,b as m,y as O,l as $,f as C,i as D,e as s,t as c,r as T,u as M,c as x,o as j,g as k,w as L,m as R,F as V,q as F,x as K,z as H}from"./index-D5D9bzxe.js";import{_ as z}from"./Java-AI-BYpq8IxI.js";import{I as q,_ as P}from"./_plugin-vue_export-helper-v7-Do0bo.js";import{L as U}from"./index-DPmrHTQh.js";import{u as A,s as r}from"./sidebar-CTH1WUAT.js";import"./llm-check-BVkAKrj3.js";const G={key:1,class:"blur-card-content"},Q=I({__name:"index",props:{content:{},wrapperStyle:{}},emits:["clickCard"],setup(_,{emit:p}){const n=_,l=p,i=()=>{console.log("[BlurCard] handleClick called with content:",n.content),l("clickCard",n.content),console.log("[BlurCard] clickCard event emitted")};return(e,w)=>{var d,h,g,v,b;return m(),u("button",{class:"blur-card",onClick:i,style:O(e.wrapperStyle)},[(d=e.content)!=null&&d.icon?(m(),$(D(q),{key:0,icon:e.content.icon,class:"blur-card-icon"},null,8,["icon"])):C("",!0),(h=e.content)!=null&&h.title||(g=e.content)!=null&&g.description?(m(),u("div",G,[s("h3",null,c((v=e.content)==null?void 0:v.title),1),s("p",null,c((b=e.content)==null?void 0:b.description),1)])):C("",!0)],4)}}}),W=P(Q,[["__scopeId","data-v-48da0039"]]),X={class:"home-page"},Y={class:"welcome-container"},Z={class:"header"},ee={class:"header-top"},te={class:"logo-container"},oe={class:"tagline"},se={class:"main-content"},ae={class:"conversation-container"},ne={class:"welcome-section"},le={class:"welcome-title"},re={class:"welcome-subtitle"},ie={class:"input-section"},ce={class:"input-container"},pe=["placeholder"],me=["disabled"],de={class:"examples-section"},ue={class:"examples-grid"},he={class:"card-type"},ge=I({__name:"index",setup(_){const p=K(),n=A(),l=T(""),i=T(),{t:e}=M(),w=()=>{const o=Date.now().toString();p.push({name:"direct",params:{id:o}}).then(()=>{console.log("[Home] jump to direct page"+e("common.success"))}).catch(t=>{console.error("[Home] jump to direct page"+e("common.error"),t)})},d=x(()=>[{title:e("home.examples.stockPrice.title"),type:"message",description:e("home.examples.stockPrice.description"),icon:"carbon:chart-line-data",prompt:e("home.examples.stockPrice.prompt")},{title:e("home.examples.weather.title"),type:"message",description:e("home.examples.weather.description"),icon:"carbon:partly-cloudy",prompt:e("home.examples.weather.prompt")}]),h=x(()=>[{title:e("home.examples.queryplan.title"),type:"plan-act",description:e("home.examples.queryplan.description"),icon:"carbon:plan",prompt:e("home.examples.queryplan.prompt"),planJson:{planType:"simple",title:e("home.examples.queryplan.planTitle"),steps:[{stepRequirement:e("home.examples.queryplan.step1"),terminateColumns:e("home.examples.queryplan.step1Output")},{stepRequirement:e("home.examples.queryplan.step2"),terminateColumns:e("home.examples.queryplan.step2Output")}],planId:"planTemplate-1749200517403"}},{title:e("home.examples.ainovel.title"),type:"plan-act",description:e("home.examples.ainovel.description"),icon:"carbon:document-tasks",prompt:e("home.examples.ainovel.prompt"),planJson:{planType:"simple",title:e("home.examples.ainovel.planTitle"),steps:[{stepRequirement:e("home.examples.ainovel.step1"),terminateColumns:e("home.examples.ainovel.step1Output")},{stepRequirement:e("home.examples.ainovel.step2"),terminateColumns:e("home.examples.ainovel.step2Output")}],planId:"planTemplate-1753622676988"}},{title:e("home.examples.formInputDemo.title"),type:"plan-act",description:e("home.examples.formInputDemo.description"),icon:"carbon:watson",prompt:e("home.examples.formInputDemo.prompt"),planJson:{planType:"simple",title:e("home.examples.formInputDemo.planTitle"),steps:[{stepRequirement:e("home.examples.formInputDemo.step1"),terminateColumns:e("home.examples.formInputDemo.step1Output")},{stepRequirement:e("home.examples.formInputDemo.step2"),terminateColumns:e("home.examples.formInputDemo.step2Output")},{stepRequirement:e("home.examples.formInputDemo.step3"),terminateColumns:e("home.examples.formInputDemo.step3Output")}],planId:"planTemplate-forminput-demo-2025"}}]),g=x(()=>[...d.value,...h.value]),v=o=>{o.type==="message"?J(o):o.type==="plan-act"&&E(o)};j(()=>{console.log("[Home] onMounted called"),console.log("[Home] taskStore:",n),console.log("[Home] examples:",d),n.markHomeVisited(),console.log("[Home] Home visited marked")});const b=async o=>{try{r.createNewTemplate(),r.jsonContent=JSON.stringify(o);const t=await r.saveTemplate();t!=null&&t.duplicate?console.log("[Sidebar] "+e("sidebar.saveCompleted",{message:t.message,versionCount:t.versionCount})):t!=null&&t.saved?console.log("[Sidebar] "+e("sidebar.saveSuccess",{message:t.message,versionCount:t.versionCount})):t!=null&&t.message&&console.log("[Sidebar] "+e("sidebar.saveStatus",{message:t.message}))}catch(t){console.error("[Sidebar] Failed to save the plan to the template library:",t),alert(t.message||e("sidebar.saveFailed"))}},N=()=>{H(()=>{i.value&&(i.value.style.height="auto",i.value.style.height=Math.min(i.value.scrollHeight,200)+"px")})},B=o=>{console.log("[Home] handleKeydown called, key:",o.key),o.key==="Enter"&&!o.shiftKey&&(o.preventDefault(),console.log("[Home] Enter key pressed, calling handleSend"),S())},S=()=>{if(console.log("[Home] handleSend called, userInput:",l.value),!l.value.trim()){console.log("[Home] handleSend aborted - empty input");return}const o=l.value.trim();console.log("[Home] Setting task to store:",o),n.setTask(o),console.log("[Home] Task set to store, current task:",n.currentTask);const t=Date.now().toString();console.log("[Home] Navigating to direct page with chatId:",t),p.push({name:"direct",params:{id:t}}).then(()=>{console.log("[Home] Navigation to direct page completed")}).catch(a=>{console.error("[Home] Navigation error:",a)})},J=o=>{console.log("[Home] selectExample called with example:",o),console.log("[Home] Example prompt:",o.prompt),n.setTask(o.prompt),console.log("[Home] Task set to store from example, current task:",n.currentTask);const t=Date.now().toString();console.log("[Home] Navigating to direct page with chatId:",t),p.push({name:"direct",params:{id:t}}).then(()=>{console.log("[Home] Navigation to direct page completed (from example)")}).catch(a=>{console.error("[Home] Navigation error (from example):",a)})},E=async o=>{console.log("[Home] selectPlan called with plan:",o);try{await b(o.planJson),console.log("[Home] Plan saved to templates");const t=Date.now().toString();await p.push({name:"direct",params:{id:t}}),H(async()=>{await new Promise(f=>setTimeout(f,300)),r.isCollapsed?(await r.toggleSidebar(),console.log("[Sidebar] Sidebar toggled")):console.log("[Sidebar] Sidebar is already open"),await r.loadPlanTemplateList(),console.log("[Sidebar] Template list loaded");const a=r.planTemplateList.find(f=>f.id===o.planJson.planId);if(!a){console.error("[Sidebar] Template not found");return}await r.selectTemplate(a),console.log("[Sidebar] Template selected:",a.title);const y=document.querySelector(".execute-btn");y.disabled?console.error("[Sidebar] Execute button not found or disabled"):(console.log("[Sidebar] Triggering execute button click"),y.click())})}catch(t){console.error("[Home] Error in selectPlan:",t)}};return(o,t)=>(m(),u("div",X,[s("div",Y,[t[2]||(t[2]=s("div",{class:"background-effects"},[s("div",{class:"gradient-orb orb-1"}),s("div",{class:"gradient-orb orb-2"}),s("div",{class:"gradient-orb orb-3"})],-1)),s("header",Z,[s("div",ee,[k(U)]),s("div",te,[t[1]||(t[1]=s("div",{class:"logo"},[s("img",{src:z,alt:"JManus",class:"java-logo"}),s("h1",null,"JManus")],-1)),s("span",oe,c(o.$t("home.tagline")),1)])]),s("main",se,[s("div",ae,[s("div",ne,[s("h2",le,c(o.$t("home.welcomeTitle")),1),s("p",re,c(o.$t("home.welcomeSubtitle")),1),s("button",{class:"direct-button",onClick:w},c(o.$t("home.directButton")),1)]),s("div",ie,[s("div",ce,[L(s("textarea",{"onUpdate:modelValue":t[0]||(t[0]=a=>l.value=a),ref_key:"textareaRef",ref:i,class:"main-input",placeholder:o.$t("home.inputPlaceholder"),onKeydown:B,onInput:N},null,40,pe),[[R,l.value]]),s("button",{class:"send-button",disabled:!l.value.trim(),onClick:S},[k(D(q),{icon:"carbon:send-alt"})],8,me)])]),s("div",de,[s("div",ue,[(m(!0),u(V,null,F(g.value,a=>(m(),u("div",{key:a.title,class:"card-with-type"},[k(W,{content:a,onClickCard:y=>v(a)},null,8,["content","onClickCard"]),s("span",he,c(a.type),1)]))),128))])])])])])]))}}),_e=P(ge,[["__scopeId","data-v-8f6d8b67"]]);export{_e as default};
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BqJ0ytNQ.css b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CX9yXnCu.css
similarity index 96%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BqJ0ytNQ.css
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CX9yXnCu.css
index d4eb205747..07aa084922 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BqJ0ytNQ.css
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CX9yXnCu.css
@@ -1,4 +1,4 @@
-.config-section[data-v-f0f87323]{margin-bottom:16px;background:#ffffff0d;border-radius:8px;padding:12px}.section-header[data-v-f0f87323]{display:flex;align-items:center;margin-bottom:12px;color:#667eea;font-size:13px;font-weight:600;gap:8px}.section-actions[data-v-f0f87323]{margin-left:auto;display:flex;gap:6px}.visual-editor[data-v-f0f87323]{background:#0003;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.1)}.plan-basic-info[data-v-f0f87323]{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.form-row[data-v-f0f87323]{margin-bottom:12px;display:flex;flex-direction:column;gap:6px}.form-label[data-v-f0f87323]{font-size:10px;font-weight:600;color:#ffffffe6}.form-input[data-v-f0f87323],.form-select[data-v-f0f87323],.form-textarea[data-v-f0f87323]{padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#0000004d;color:#fff;font-size:11px;font-family:inherit;transition:all .2s ease}.form-input[data-v-f0f87323]:focus,.form-select[data-v-f0f87323]:focus,.form-textarea[data-v-f0f87323]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.form-textarea[data-v-f0f87323]{resize:vertical;min-height:80px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;line-height:1.4}.form-textarea.auto-resize[data-v-f0f87323]{resize:none;transition:height .2s ease;overflow-y:auto;max-height:240px}.checkbox-wrapper[data-v-f0f87323]{display:flex;align-items:center;gap:8px;cursor:pointer}.form-checkbox[data-v-f0f87323]{width:16px;height:16px;accent-color:#667eea}.checkbox-label[data-v-f0f87323]{font-size:11px;color:#fffc}.steps-section[data-v-f0f87323]{margin-bottom:20px}.plan-id-section[data-v-f0f87323]{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.steps-header[data-v-f0f87323]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.steps-actions[data-v-f0f87323]{display:flex;align-items:center;gap:8px}.agent-count-badge[data-v-f0f87323]{font-size:10px;color:#fff9;background:#ffffff1a;padding:2px 6px;border-radius:4px}.error-badge[data-v-f0f87323]{font-size:10px;color:#ef4444;background:#ef44441a;padding:2px 6px;border-radius:4px;border:1px solid rgba(239,68,68,.2);display:flex;align-items:center;gap:2px}.error-message[data-v-f0f87323]{display:flex;align-items:center;gap:4px;font-size:10px;color:#ef4444;margin-top:4px;padding:4px 8px;background:#ef44441a;border-radius:4px;border:1px solid rgba(239,68,68,.2)}.steps-container[data-v-f0f87323]{display:flex;flex-direction:column;gap:16px}.step-item[data-v-f0f87323]{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden}.step-header[data-v-f0f87323]{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;background:#667eea1a;border-bottom:1px solid rgba(255,255,255,.1)}.step-number[data-v-f0f87323]{font-weight:600;color:#667eea;font-size:11px;min-width:20px}.step-actions[data-v-f0f87323]{display:flex;gap:4px}.step-content[data-v-f0f87323]{padding:16px}.agent-selector[data-v-f0f87323]{display:flex;gap:8px;align-items:center}.agent-select[data-v-f0f87323]{flex:1}.btn-add-step[data-v-f0f87323]{padding:6px 8px;min-width:auto}.empty-steps[data-v-f0f87323]{text-align:center;padding:40px 20px;color:#fff9}.empty-icon[data-v-f0f87323]{color:#ffffff4d;margin-bottom:12px}.json-preview[data-v-f0f87323]{margin-bottom:16px;background:#0006;border-radius:6px;overflow:hidden}.preview-header[data-v-f0f87323]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.json-code[data-v-f0f87323]{padding:12px;margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px;color:#fffc;background:transparent;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.editor-footer[data-v-f0f87323]{text-align:center;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.btn[data-v-f0f87323]{padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease;background:#ffffff1a;color:#fffc}.btn[data-v-f0f87323]:hover:not(:disabled){background:#fff3;color:#fff;transform:translateY(-1px)}.btn[data-v-f0f87323]:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-sm[data-v-f0f87323]{padding:4px 8px;font-size:11px}.btn-xs[data-v-f0f87323]{padding:2px 4px;font-size:10px;min-width:auto}.btn-primary[data-v-f0f87323]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary[data-v-f0f87323]:hover:not(:disabled){background:linear-gradient(135deg,#5a6fd8,#6a4190);box-shadow:0 2px 8px #667eea4d}.btn-secondary[data-v-f0f87323]{background:#ffffff0d;color:#ffffffb3}.btn-add[data-v-f0f87323]{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-add[data-v-f0f87323]:hover:not(:disabled){background:linear-gradient(135deg,#0ea5e9,#0284c7);box-shadow:0 2px 8px #10b9814d}.btn-danger[data-v-f0f87323]{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-danger[data-v-f0f87323]:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 2px 8px #ef44444d}.json-editor[data-v-f0f87323]{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:11px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;padding:8px;resize:vertical;min-height:200px;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;-moz-tab-size:2;tab-size:2;font-variant-ligatures:none}.json-editor[data-v-f0f87323]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.json-editor[data-v-f0f87323]::placeholder{color:#fff6}.sidebar-wrapper[data-v-fa866e8f]{position:relative;height:100vh;background:#ffffff0d;border-right:1px solid rgba(255,255,255,.1);transition:width .1s ease;overflow:hidden;display:flex}.sidebar-wrapper-collapsed[data-v-fa866e8f]{border-right:none;width:0!important}.sidebar-wrapper-collapsed .sidebar-content[data-v-fa866e8f],.sidebar-wrapper-collapsed .sidebar-resizer[data-v-fa866e8f]{opacity:0;pointer-events:none}.sidebar-content[data-v-fa866e8f]{height:100%;width:100%;padding:12px 0 12px 12px;display:flex;flex-direction:column;transition:all .3s ease-in-out;flex:1}.sidebar-content .sidebar-content-header[data-v-fa866e8f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;overflow:hidden}.sidebar-content .sidebar-content-header .sidebar-content-title[data-v-fa866e8f]{font-size:20px;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-content .tab-switcher[data-v-fa866e8f]{display:flex;margin-bottom:16px;background:#ffffff0d;border-radius:8px;padding:4px}.sidebar-content .tab-switcher .tab-button[data-v-fa866e8f]{flex:1;padding:8px 12px;background:transparent;border:none;border-radius:6px;color:#ffffffb3;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease}.sidebar-content .tab-switcher .tab-button[data-v-fa866e8f]:hover:not(:disabled){background:#ffffff1a;color:#ffffffe6}.sidebar-content .tab-switcher .tab-button.active[data-v-fa866e8f]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 4px #667eea4d}.sidebar-content .tab-switcher .tab-button[data-v-fa866e8f]:disabled{opacity:.5;cursor:not-allowed}.sidebar-content .tab-content[data-v-fa866e8f]{display:flex;flex-direction:column;flex:1;min-height:0}.sidebar-content .config-tab .config-container[data-v-fa866e8f]{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding-right:12px}.sidebar-content .config-tab .config-container .template-info-header[data-v-fa866e8f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding:12px;background:#ffffff0d;border-radius:8px}.sidebar-content .config-tab .config-container .template-info-header .template-info[data-v-fa866e8f]{flex:1;min-width:0}.sidebar-content .config-tab .config-container .template-info-header .template-info h3[data-v-fa866e8f]{margin:0 0 4px;font-size:14px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-content .config-tab .config-container .template-info-header .template-info .template-id[data-v-fa866e8f]{font-size:11px;color:#ffffff80}.sidebar-content .config-tab .config-container .template-info-header .back-to-list-btn[data-v-fa866e8f]{width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.sidebar-content .config-tab .config-container .template-info-header .back-to-list-btn[data-v-fa866e8f]:hover{background:#ffffff1a;color:#fff}.sidebar-content .config-tab .config-container .config-section[data-v-fa866e8f]{margin-bottom:16px;background:#ffffff0d;border-radius:8px;padding:12px}.sidebar-content .config-tab .config-container .config-section .section-header[data-v-fa866e8f]{display:flex;align-items:center;margin-bottom:12px;color:#667eea;font-size:13px;font-weight:600;gap:8px}.sidebar-content .config-tab .config-container .config-section .section-header .section-actions[data-v-fa866e8f]{margin-left:auto;display:flex;gap:6px}.sidebar-content .config-tab .config-container .config-section .json-editor[data-v-fa866e8f],.sidebar-content .config-tab .config-container .config-section .prompt-input[data-v-fa866e8f],.sidebar-content .config-tab .config-container .config-section .params-input[data-v-fa866e8f]{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:12px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;padding:8px;resize:vertical;min-height:100px}.sidebar-content .config-tab .config-container .config-section .json-editor[data-v-fa866e8f]:focus,.sidebar-content .config-tab .config-container .config-section .prompt-input[data-v-fa866e8f]:focus,.sidebar-content .config-tab .config-container .config-section .params-input[data-v-fa866e8f]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.sidebar-content .config-tab .config-container .config-section .json-editor[data-v-fa866e8f]::placeholder,.sidebar-content .config-tab .config-container .config-section .prompt-input[data-v-fa866e8f]::placeholder,.sidebar-content .config-tab .config-container .config-section .params-input[data-v-fa866e8f]::placeholder{color:#fff6}.sidebar-content .config-tab .config-container .config-section .json-editor[data-v-fa866e8f]{min-height:200px;font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;-moz-tab-size:2;tab-size:2;font-variant-ligatures:none}.sidebar-content .config-tab .config-container .config-section .generator-content[data-v-fa866e8f]{display:flex;flex-direction:column;gap:8px}.sidebar-content .config-tab .config-container .config-section .generator-content .generator-actions[data-v-fa866e8f]{display:flex;gap:8px}.sidebar-content .config-tab .config-container .config-section .execution-content[data-v-fa866e8f]{display:flex;flex-direction:column;gap:12px}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group label[data-v-fa866e8f]{display:block;margin-bottom:6px;font-size:12px;color:#fffc;font-weight:500}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-input-container[data-v-fa866e8f]{position:relative;display:flex;align-items:center}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-input-container .params-input[data-v-fa866e8f]{min-height:auto;padding-right:32px}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-input-container .clear-params-btn[data-v-fa866e8f]{position:absolute;right:8px;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-input-container .clear-params-btn[data-v-fa866e8f]:hover{background:#f003;color:#ff6b6b}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-help-text[data-v-fa866e8f]{margin-bottom:6px;font-size:11px;color:#fff9;line-height:1.4;padding:6px 8px;background:#667eea1a;border:1px solid rgba(102,126,234,.2);border-radius:4px}.sidebar-content .config-tab .config-container .config-section .execution-content .api-url-display[data-v-fa866e8f]{padding:8px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;font-size:11px}.sidebar-content .config-tab .config-container .config-section .execution-content .api-url-display .api-url-label[data-v-fa866e8f]{color:#ffffffb3;margin-right:8px}.sidebar-content .config-tab .config-container .config-section .execution-content .api-url-display .api-url[data-v-fa866e8f]{color:#64b5f6;font-family:Monaco,Menlo,Ubuntu Mono,monospace;word-break:break-all}.sidebar-content .config-tab .config-container .config-section .execution-content .execute-btn[data-v-fa866e8f]{padding:10px 16px;font-size:13px;font-weight:500}.sidebar-content .btn[data-v-fa866e8f]{padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease}.sidebar-content .btn.btn-sm[data-v-fa866e8f]{padding:4px 8px;font-size:11px}.sidebar-content .btn.btn-primary[data-v-fa866e8f]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.sidebar-content .btn.btn-primary[data-v-fa866e8f]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #667eea4d}.sidebar-content .btn.btn-secondary[data-v-fa866e8f]{background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.2)}.sidebar-content .btn.btn-secondary[data-v-fa866e8f]:hover:not(:disabled){background:#fff3;color:#fff}.sidebar-content .btn[data-v-fa866e8f]:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.sidebar-content .btn .spinning[data-v-fa866e8f]{animation:spin-fa866e8f 1s linear infinite}.sidebar-content .new-task-section[data-v-fa866e8f]{margin-bottom:16px;padding-right:12px}.sidebar-content .new-task-section .new-task-btn[data-v-fa866e8f]{width:100%;padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.sidebar-content .new-task-section .new-task-btn[data-v-fa866e8f]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.sidebar-content .new-task-section .new-task-btn .shortcut[data-v-fa866e8f]{font-size:12px;opacity:.8;margin-left:auto}.sidebar-content .sidebar-content-list[data-v-fa866e8f]{display:flex;flex-direction:column;flex:1;overflow-y:auto;padding-right:12px}.sidebar-content .sidebar-content-list .loading-state[data-v-fa866e8f],.sidebar-content .sidebar-content-list .error-state[data-v-fa866e8f],.sidebar-content .sidebar-content-list .empty-state[data-v-fa866e8f]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;color:#fff9;font-size:14px;text-align:center;gap:12px}.sidebar-content .sidebar-content-list .loading-state .spinning[data-v-fa866e8f],.sidebar-content .sidebar-content-list .error-state .spinning[data-v-fa866e8f],.sidebar-content .sidebar-content-list .empty-state .spinning[data-v-fa866e8f]{animation:spin-fa866e8f 1s linear infinite}.sidebar-content .sidebar-content-list .loading-state .retry-btn[data-v-fa866e8f],.sidebar-content .sidebar-content-list .error-state .retry-btn[data-v-fa866e8f],.sidebar-content .sidebar-content-list .empty-state .retry-btn[data-v-fa866e8f]{padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;cursor:pointer;font-size:12px;transition:background-color .2s ease}.sidebar-content .sidebar-content-list .loading-state .retry-btn[data-v-fa866e8f]:hover,.sidebar-content .sidebar-content-list .error-state .retry-btn[data-v-fa866e8f]:hover,.sidebar-content .sidebar-content-list .empty-state .retry-btn[data-v-fa866e8f]:hover{background:#fff3}.sidebar-content .sidebar-content-list .sidebar-content-list-item[data-v-fa866e8f]{display:flex;align-items:flex-start;padding:12px;margin-bottom:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s ease;position:relative}.sidebar-content .sidebar-content-list .sidebar-content-list-item[data-v-fa866e8f]:hover{background:#ffffff1a;border-color:#fff3;transform:translateY(-1px)}.sidebar-content .sidebar-content-list .sidebar-content-list-item.sidebar-content-list-item-active[data-v-fa866e8f]{border:2px solid #667eea;background:#667eea1a}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-icon[data-v-fa866e8f]{margin-right:12px;color:#667eea;flex-shrink:0;margin-top:2px}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-details[data-v-fa866e8f]{flex:1;min-width:0}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-details .task-title[data-v-fa866e8f]{font-size:14px;font-weight:600;color:#fff;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-details .task-preview[data-v-fa866e8f]{font-size:12px;color:#ffffffb3;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-time[data-v-fa866e8f]{font-size:11px;color:#ffffff80;margin-left:8px;flex-shrink:0;position:absolute;top:12px;right:40px}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-actions[data-v-fa866e8f]{display:flex;align-items:center;margin-left:8px;flex-shrink:0}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-actions .delete-task-btn[data-v-fa866e8f]{width:24px;height:24px;background:transparent;border:none;border-radius:4px;color:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:absolute;top:12px;right:12px}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-actions .delete-task-btn[data-v-fa866e8f]:hover{background:#f003;color:#ff6b6b}@keyframes spin-fa866e8f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sidebar-resizer[data-v-fa866e8f]{width:6px;height:100vh;background:#1a1a1a;cursor:col-resize;position:relative;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease;flex-shrink:0}.sidebar-resizer:hover[data-v-fa866e8f]{background:#2a2a2a}.sidebar-resizer:hover .resizer-line[data-v-fa866e8f]{background:#4a90e2;width:2px}.sidebar-resizer[data-v-fa866e8f]:active{background:#3a3a3a}.resizer-line[data-v-fa866e8f]{width:1px;height:40px;background:#3a3a3a;border-radius:1px;transition:all .2s ease}[data-v-ab7beb02]{margin:0;padding:0;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app-container[data-v-ab7beb02]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.app-content[data-v-ab7beb02]{position:relative;transition:all .3s ease-in-out;overflow-y:auto;border-radius:16px;width:90%;background:linear-gradient(135deg,#667eea1a,#764ba226);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0006;max-width:800px;max-height:80vh;min-height:500px}.memory-wrapper-collapsed[data-v-ab7beb02]{border-right:none;width:0}.header[data-v-ab7beb02]{padding:1rem;border-bottom:1px solid #333333;display:flex;justify-content:space-between;align-items:center}.main-title[data-v-ab7beb02]{font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:transparent;display:flex;align-items:center;cursor:pointer}.main-title i[data-v-ab7beb02]{margin-right:.5rem}.close-btn[data-v-ab7beb02]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-btn[data-v-ab7beb02]:hover{color:#ffffffe6}.search-bar[data-v-ab7beb02]{padding:1rem;border-bottom:1px solid #333333}.search-container[data-v-ab7beb02]{position:relative}.search-container-icon[data-v-ab7beb02]{position:absolute;top:10px;left:8px}.search-input[data-v-ab7beb02]{width:100%;background-color:#2d2d2d;border:1px solid #333333;border-radius:.5rem;padding:.5rem .5rem .5rem 2.5rem;color:#fff;font-size:.875rem}.search-input[data-v-ab7beb02]:focus{outline:none;border-color:#667eea}.search-icon[data-v-ab7beb02]{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#888}.message-list[data-v-ab7beb02]{flex:1;overflow-y:auto;padding:.5rem}.message-item[data-v-ab7beb02]{background-color:#2d2d2d;border:1px solid #333333;border-radius:.5rem;overflow:hidden;margin-bottom:.5rem;transition:all .2s ease}.message-item[data-v-ab7beb02]:hover{background-color:#333;border-color:#667eea80}.message-header[data-v-ab7beb02]{cursor:text;padding:.75rem;align-items:center;width:100%}.message-content[data-v-ab7beb02]{flex:1;min-width:0;padding-right:.5rem}.message.user .message-content[data-v-ab7beb02]{flex:none!important}.sender-info[data-v-ab7beb02]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.25rem}.sender-div[data-v-ab7beb02]{display:flex;align-items:center;width:85%;cursor:pointer}.sender-div:hover:not(:has(.edit-btn:hover,.down-btn:hover,.delete-btn:hover)) .sender-name[data-v-ab7beb02]{color:#667eea}.sender-name[data-v-ab7beb02]{font-weight:600;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-preview[data-v-ab7beb02]{margin-bottom:.25rem;padding:8px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px}.preview-line[data-v-ab7beb02]{font-size:.875rem;color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.125rem}.message-meta[data-v-ab7beb02]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:.25rem}.meta-right[data-v-ab7beb02]{display:flex;align-items:center;gap:.5rem}.message-id[data-v-ab7beb02]{font-size:.75rem;color:#667eea}.message-time[data-v-ab7beb02]{font-size:.75rem;color:#ffffff80;white-space:nowrap}.unread-count[data-v-ab7beb02]{font-size:.75rem;background-color:#667eea33;color:#667eea;padding:.125rem .375rem;margin-top:2px;border-radius:1rem}.toggle-container[data-v-ab7beb02]{margin-left:auto;margin-top:4px;display:flex;align-items:center}.action-buttons[data-v-ab7beb02]{margin-left:.5rem;transition:opacity .2s ease}.message-item:hover .action-buttons[data-v-ab7beb02]{opacity:1}.edit-btn[data-v-ab7beb02]{margin-left:10px;cursor:pointer}.edit-btn[data-v-ab7beb02]:hover{color:#667eea}.down-btn[data-v-ab7beb02]{cursor:pointer}.down-btn[data-v-ab7beb02]:hover{color:#667eea}.delete-btn[data-v-ab7beb02]{color:#ffffffb3;background:none;border:none;cursor:pointer;padding:.25rem 0;font-size:1rem}.delete-btn[data-v-ab7beb02]:hover{color:#ff6b6b}.expanded-content[data-v-ab7beb02]{background-color:#333;border-top:1px solid #444444;padding:.75rem;animation:fadeIn-ab7beb02 .3s ease-in-out}.bubble-avatar[data-v-ab7beb02]{width:5rem;overflow:hidden;margin-right:.5rem;flex-shrink:0;margin-bottom:6px;font-size:16px;color:#fffc;font-weight:500}.bubble-avatar img[data-v-ab7beb02]{width:100%;height:100%;object-fit:cover}.bubble-content[data-v-ab7beb02]{padding:8px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px}.bubble-text[data-v-ab7beb02]{font-size:12px;margin-bottom:.25rem}.state-text[data-v-ab7beb02]{color:#ffffff80}.modal-overlay[data-v-ab7beb02]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.modal-content[data-v-ab7beb02]{background-color:#2d2d2d;border:1px solid #444444;border-radius:.5rem;width:100%;max-width:28rem;padding:1.25rem;transition:all .3s ease}.modal-header[data-v-ab7beb02]{text-align:center;margin-bottom:1rem}.modal-title[data-v-ab7beb02]{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.modal-footer[data-v-ab7beb02]{display:flex;justify-content:space-between;gap:.75rem}.modal-btn[data-v-ab7beb02]{flex:1;padding:.5rem;border-radius:.25rem;font-size:.875rem;cursor:pointer;transition:all .2s ease;border:none}.cancel-btn[data-v-ab7beb02]{background-color:#333;border:1px solid #444444;color:#ffffffe6}.cancel-btn[data-v-ab7beb02]:hover{background-color:#444}.confirm-btn[data-v-ab7beb02]{background-color:#667eea;color:#fff}.confirm-btn[data-v-ab7beb02]:hover{background-color:#667eeae6}.delete-btn-confirm[data-v-ab7beb02]{background-color:#ff6b6b;color:#fff}.delete-btn-confirm[data-v-ab7beb02]:hover{background-color:#ff5252}.edit-input[data-v-ab7beb02]{width:100%;background-color:#333;border:1px solid #444444;border-radius:.5rem;padding:.5rem .75rem;color:#fff;font-size:.875rem}.edit-input[data-v-ab7beb02]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 1px #667eea4d}.char-count[data-v-ab7beb02]{font-size:.75rem;color:#ffffff80}@keyframes fadeIn-ab7beb02{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInOut-ab7beb02{0%{opacity:0;transform:translateY(-20px) translate(-50%)}20%{opacity:1;transform:translateY(0) translate(-50%)}80%{opacity:1;transform:translateY(0) translate(-50%)}to{opacity:0;transform:translateY(-20px) translate(-50%)}}@media (max-width: 640px){.main-title[data-v-ab7beb02]{font-size:1.125rem}.message-id[data-v-ab7beb02]{display:none}.message-time[data-v-ab7beb02]{font-size:.7rem}}.file-tree-node[data-v-e4a376d5]{position:relative}.node-content[data-v-e4a376d5]{display:flex;align-items:center;gap:6px;padding:6px 12px;cursor:pointer;transition:all .2s ease;border-radius:6px;margin:1px 8px;position:relative}.node-content[data-v-e4a376d5]:hover{background:#ffffff14}.node-content.is-directory[data-v-e4a376d5]{font-weight:500}.expand-icon[data-v-e4a376d5]{display:flex;align-items:center;justify-content:center;width:16px;height:16px;cursor:pointer;color:#ffffffb3;transition:color .2s ease}.expand-icon[data-v-e4a376d5]:hover{color:#fff}.chevron-icon[data-v-e4a376d5]{font-size:12px;transition:transform .2s ease}.node-icon[data-v-e4a376d5]{display:flex;align-items:center;justify-content:center;width:18px;height:18px;color:#fffc}.node-icon .iconify[data-v-e4a376d5]{font-size:16px}.node-name[data-v-e4a376d5]{flex:1;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size[data-v-e4a376d5]{color:#ffffff80;font-size:11px;white-space:nowrap}.node-actions[data-v-e4a376d5]{display:flex;gap:4px;opacity:0;transition:opacity .2s ease}.node-content:hover .node-actions[data-v-e4a376d5]{opacity:1}.action-btn[data-v-e4a376d5]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:#ffffff1a;border:none;border-radius:4px;color:#ffffffb3;cursor:pointer;transition:all .2s ease}.action-btn[data-v-e4a376d5]:hover{background:#fff3;color:#fff}.action-btn .iconify[data-v-e4a376d5]{font-size:12px}.children[data-v-e4a376d5]{overflow:hidden}.context-menu[data-v-e4a376d5]{background:#141414f2;border:1px solid rgba(255,255,255,.2);border-radius:8px;box-shadow:0 8px 32px #0006;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:6px;min-width:160px}.context-menu-item[data-v-e4a376d5]{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;border-radius:4px;color:#ffffffe6;font-size:13px;transition:background-color .2s ease}.context-menu-item[data-v-e4a376d5]:hover{background:#ffffff1a}.context-menu-item .iconify[data-v-e4a376d5]{font-size:14px;color:#ffffffb3}.context-menu-divider[data-v-e4a376d5]{height:1px;background:#ffffff1a;margin:4px 0}.node-content.is-directory .node-name[data-v-e4a376d5]{color:#fff;font-weight:500}.node-content.is-directory.is-expanded .node-icon[data-v-e4a376d5]{color:#677eea}.node-content.is-file .node-name[data-v-e4a376d5]{color:#ffffffe6}.children[data-v-e4a376d5]{animation:slideDown-e4a376d5 .2s ease-out}@keyframes slideDown-e4a376d5{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.file-browser[data-v-e7c74fe4]{display:flex;flex-direction:column;height:100%;background:#ffffff05;border-radius:12px;border:1px solid rgba(255,255,255,.1);overflow:hidden}.file-browser-header[data-v-e7c74fe4]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d}.file-browser-header h3[data-v-e7c74fe4]{margin:0;color:#fff;font-size:16px;font-weight:600}.header-actions[data-v-e7c74fe4]{display:flex;gap:8px}.refresh-btn[data-v-e7c74fe4]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease;font-size:18px;box-shadow:0 2px 8px #0000004d}.refresh-btn .iconify[data-v-e7c74fe4]{color:#fff!important;font-size:18px!important;width:18px!important;height:18px!important}.refresh-btn svg[data-v-e7c74fe4]{fill:#fff!important;color:#fff!important;width:18px!important;height:18px!important}.refresh-btn[data-v-e7c74fe4]:hover:not(:disabled){background:#ffffff40;border-color:#fff6;transform:translateY(-1px);box-shadow:0 4px 12px #0006}.refresh-btn:hover:not(:disabled) .iconify[data-v-e7c74fe4],.refresh-btn:hover:not(:disabled) svg[data-v-e7c74fe4]{color:#fff!important;fill:#fff!important}.refresh-btn[data-v-e7c74fe4]:active:not(:disabled){transform:translateY(0)}.refresh-btn[data-v-e7c74fe4]:disabled{opacity:.5;cursor:not-allowed;background:#ffffff14;border-color:#ffffff26}.refresh-btn:disabled .iconify[data-v-e7c74fe4],.refresh-btn:disabled svg[data-v-e7c74fe4]{color:#fff6!important;fill:#fff6!important}.file-browser-content[data-v-e7c74fe4]{display:flex;flex:1;min-height:0}.file-tree-panel[data-v-e7c74fe4]{flex:0 0 300px;border-right:1px solid rgba(255,255,255,.1);overflow-y:auto}.file-content-panel[data-v-e7c74fe4]{flex:1;display:flex;flex-direction:column;min-width:0}.loading-state[data-v-e7c74fe4],.error-state[data-v-e7c74fe4],.empty-state[data-v-e7c74fe4]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#ffffffb3;gap:12px}.loading-state .iconify[data-v-e7c74fe4],.error-state .iconify[data-v-e7c74fe4],.empty-state .iconify[data-v-e7c74fe4]{font-size:32px}.retry-btn[data-v-e7c74fe4]{padding:8px 16px;background:#677eea33;border:1px solid rgba(103,126,234,.3);border-radius:6px;color:#677eea;cursor:pointer;transition:all .2s ease}.retry-btn[data-v-e7c74fe4]:hover{background:#677eea4d}.retry-btn[data-v-e7c74fe4]:disabled{opacity:.5;cursor:not-allowed}.waiting-for-files[data-v-e7c74fe4]{color:#74c0fc}.waiting-for-files .iconify[data-v-e7c74fe4]{font-size:48px;margin-bottom:20px;opacity:.8}.waiting-for-files .message-content[data-v-e7c74fe4]{margin-bottom:24px;text-align:center}.waiting-for-files h3[data-v-e7c74fe4]{margin:0 0 8px;color:#fff;font-size:18px;font-weight:600}.waiting-for-files p[data-v-e7c74fe4]{margin:0 0 16px;color:#ffffffb3;font-size:14px;line-height:1.5}.waiting-for-files .tips[data-v-e7c74fe4]{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#74c0fc1a;border:1px solid rgba(116,192,252,.2);border-radius:8px;color:#74c0fc;font-size:13px}.waiting-for-files .tips .iconify[data-v-e7c74fe4]{font-size:16px;margin:0}.actual-error[data-v-e7c74fe4]{color:#ff6b6b}.file-tree[data-v-e7c74fe4]{padding:8px 0}.file-content-header[data-v-e7c74fe4]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d}.file-info[data-v-e7c74fe4]{display:flex;align-items:center;gap:8px;color:#fff}.file-info .iconify[data-v-e7c74fe4]{font-size:18px}.file-name[data-v-e7c74fe4]{font-weight:600}.file-size[data-v-e7c74fe4]{color:#fff9;font-size:12px}.file-actions[data-v-e7c74fe4]{display:flex;gap:8px}.download-btn[data-v-e7c74fe4],.close-btn[data-v-e7c74fe4]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;cursor:pointer;transition:all .2s ease}.download-btn[data-v-e7c74fe4]:hover,.close-btn[data-v-e7c74fe4]:hover{background:#ffffff26;transform:translateY(-1px)}.file-content-body[data-v-e7c74fe4]{flex:1;overflow:hidden;display:flex;flex-direction:column}.loading-content[data-v-e7c74fe4],.content-error[data-v-e7c74fe4]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#ffffffb3;gap:12px}.file-content[data-v-e7c74fe4]{flex:1;overflow:hidden}.text-content[data-v-e7c74fe4]{height:100%;overflow:auto;padding:20px}.text-content pre[data-v-e7c74fe4]{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.6;color:#fff;white-space:pre-wrap;word-wrap:break-word}.binary-content[data-v-e7c74fe4]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#ffffffb3;gap:16px}.binary-content .iconify[data-v-e7c74fe4]{font-size:48px}.download-btn-large[data-v-e7c74fe4]{display:flex;align-items:center;gap:8px;padding:12px 24px;background:#677eea33;border:1px solid rgba(103,126,234,.3);border-radius:8px;color:#677eea;cursor:pointer;transition:all .2s ease;font-size:14px}.download-btn-large[data-v-e7c74fe4]:hover{background:#677eea4d;transform:translateY(-1px)}.rotating[data-v-e7c74fe4]{animation:rotate-e7c74fe4 1s linear infinite}@keyframes rotate-e7c74fe4{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.file-tree-panel[data-v-e7c74fe4]::-webkit-scrollbar,.text-content[data-v-e7c74fe4]::-webkit-scrollbar{width:6px}.file-tree-panel[data-v-e7c74fe4]::-webkit-scrollbar-track,.text-content[data-v-e7c74fe4]::-webkit-scrollbar-track{background:#ffffff0d}.file-tree-panel[data-v-e7c74fe4]::-webkit-scrollbar-thumb,.text-content[data-v-e7c74fe4]::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.file-tree-panel[data-v-e7c74fe4]::-webkit-scrollbar-thumb:hover,.text-content[data-v-e7c74fe4]::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.right-panel[data-v-d7e4058f]{width:50%;display:flex;flex-direction:column}.preview-header[data-v-d7e4058f]{padding:20px 24px;border-bottom:1px solid #1a1a1a;background:#ffffff05}.preview-header .tab-button[data-v-d7e4058f]{padding:8px 16px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:linear-gradient(135deg,#667eea33,#764ba233);border-color:#667eea;color:#667eea;cursor:default;display:flex;align-items:center;gap:6px;font-size:14px}.preview-content[data-v-d7e4058f]{flex:1;display:flex;flex-direction:column;min-height:0}.step-details[data-v-d7e4058f]{flex:1;position:relative;display:flex;flex-direction:column;min-height:0}.step-info-fixed[data-v-d7e4058f]{position:sticky;top:0;z-index:10;background:#292a2df2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);padding:20px;margin:0 20px;border-radius:8px 8px 0 0}.step-info-fixed h3[data-v-d7e4058f]{color:#fff;margin:0 0 16px;font-size:18px;font-weight:600;padding-bottom:8px;border-bottom:2px solid #667eea}.step-details-scroll-container[data-v-d7e4058f]{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 20px 20px;margin:0 20px 20px;background:#ffffff03;border-radius:0 0 8px 8px}.step-details-scroll-container[data-v-d7e4058f]::-webkit-scrollbar{width:6px}.step-details-scroll-container[data-v-d7e4058f]::-webkit-scrollbar-track{background:#ffffff1a;border-radius:3px}.step-details-scroll-container[data-v-d7e4058f]::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.step-details-scroll-container[data-v-d7e4058f]::-webkit-scrollbar-thumb:hover{background:#ffffff80}.agent-info[data-v-d7e4058f]{margin-bottom:16px}.agent-info .info-item[data-v-d7e4058f]{display:flex;margin-bottom:8px;font-size:14px;line-height:1.4}.agent-info .info-item .label[data-v-d7e4058f]{min-width:100px;font-weight:600;color:#888;flex-shrink:0}.agent-info .info-item .value[data-v-d7e4058f]{flex:1;color:#ccc;word-break:break-word}.agent-info .info-item .value.success[data-v-d7e4058f]{color:#27ae60}.execution-status[data-v-d7e4058f]{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.execution-status .status-item[data-v-d7e4058f]{display:flex;align-items:center;gap:8px}.execution-status .status-item .status-icon[data-v-d7e4058f]{font-size:16px}.execution-status .status-item .status-icon.success[data-v-d7e4058f]{color:#27ae60}.execution-status .status-item .status-icon.progress[data-v-d7e4058f]{color:#3498db}.execution-status .status-item .status-icon.pending[data-v-d7e4058f]{color:#f39c12}.execution-status .status-item .status-text[data-v-d7e4058f]{color:#ccc;font-weight:500}.no-steps-message[data-v-d7e4058f]{text-align:center;color:#666;font-style:italic;margin-top:16px}.no-steps-message p[data-v-d7e4058f]{margin:0}.no-execution-message[data-v-d7e4058f]{padding:20px;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-top:16px}.no-execution-message .info-icon[data-v-d7e4058f]{color:#6c757d;font-size:20px;margin-bottom:8px}.no-execution-message h4[data-v-d7e4058f]{margin:0 0 16px;color:#495057;font-size:16px;font-weight:500}.no-execution-message .step-basic-info .info-item[data-v-d7e4058f]{display:flex;margin-bottom:8px;font-size:14px}.no-execution-message .step-basic-info .info-item .label[data-v-d7e4058f]{font-weight:500;color:#6c757d;min-width:80px;margin-right:8px}.no-execution-message .step-basic-info .info-item .value[data-v-d7e4058f]{color:#333;flex:1}.no-execution-message .step-basic-info .info-item .value.status-completed[data-v-d7e4058f]{color:#28a745;font-weight:500}.no-execution-message .step-basic-info .info-item .value.status-current[data-v-d7e4058f]{color:#007bff;font-weight:500}.no-execution-message .step-basic-info .info-item .value.status-pending[data-v-d7e4058f]{color:#6c757d}.no-execution-message .no-execution-hint[data-v-d7e4058f]{margin:16px 0 0;color:#6c757d;font-style:italic;font-size:13px;text-align:center}.execution-indicator[data-v-d7e4058f]{margin-top:20px;padding:20px;background:#4a90e21a;border:1px solid rgba(74,144,226,.3);border-radius:8px;text-align:center;position:relative;overflow:hidden}.execution-waves[data-v-d7e4058f]{position:relative;height:4px;margin-bottom:16px;background:#4a90e233;border-radius:2px;overflow:hidden}.wave[data-v-d7e4058f]{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(74,144,226,.6),transparent);border-radius:2px}.wave-1[data-v-d7e4058f]{animation:wave-animation-d7e4058f 2s ease-in-out infinite}.wave-2[data-v-d7e4058f]{animation:wave-animation-d7e4058f 2s ease-in-out infinite .6s}.wave-3[data-v-d7e4058f]{animation:wave-animation-d7e4058f 2s ease-in-out infinite 1.2s}@keyframes wave-animation-d7e4058f{0%{left:-100%}50%{left:100%}to{left:100%}}.execution-text[data-v-d7e4058f]{color:#4a90e2;font-size:14px;margin:0;display:flex;align-items:center;justify-content:center;gap:8px}.rotating-icon[data-v-d7e4058f]{animation:rotate-animation-d7e4058f 1s linear infinite}@keyframes rotate-animation-d7e4058f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.step-info h3[data-v-d7e4058f]{color:#fff;margin:0 0 20px;font-size:18px;font-weight:600}.think-act-steps[data-v-d7e4058f]{margin-top:20px}.think-act-steps h4[data-v-d7e4058f]{color:#fff;margin:0 0 16px;font-size:16px;font-weight:600;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.2)}.steps-container[data-v-d7e4058f]{display:flex;flex-direction:column;gap:12px}.think-act-step[data-v-d7e4058f]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:16px}.think-act-step .step-header[data-v-d7e4058f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.think-act-step .step-header .step-number[data-v-d7e4058f]{font-weight:600;color:#667eea;font-size:14px}.think-act-step .step-header .step-status[data-v-d7e4058f]{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.think-act-step .step-header .step-status.completed[data-v-d7e4058f]{background:#27ae6033;color:#27ae60}.think-act-step .step-header .step-status.running[data-v-d7e4058f]{background:#3498db33;color:#3498db}.think-act-step .step-header .step-status.pending[data-v-d7e4058f]{background:#f39c1233;color:#f39c12}.think-act-step .think-section[data-v-d7e4058f],.think-act-step .action-section[data-v-d7e4058f],.think-act-step .sub-plan-section[data-v-d7e4058f]{margin-bottom:16px}.think-act-step .think-section[data-v-d7e4058f]:last-child,.think-act-step .action-section[data-v-d7e4058f]:last-child,.think-act-step .sub-plan-section[data-v-d7e4058f]:last-child{margin-bottom:0}.think-act-step .think-section h5[data-v-d7e4058f],.think-act-step .action-section h5[data-v-d7e4058f],.think-act-step .sub-plan-section h5[data-v-d7e4058f]{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-size:14px;font-weight:600;color:#fff}.think-act-step .think-content .input[data-v-d7e4058f],.think-act-step .action-content .input[data-v-d7e4058f],.think-act-step .think-content .output[data-v-d7e4058f],.think-act-step .action-content .output[data-v-d7e4058f],.think-act-step .think-content .tool-info[data-v-d7e4058f],.think-act-step .action-content .tool-info[data-v-d7e4058f]{margin-bottom:12px}.think-act-step .think-content .input[data-v-d7e4058f]:last-child,.think-act-step .action-content .input[data-v-d7e4058f]:last-child,.think-act-step .think-content .output[data-v-d7e4058f]:last-child,.think-act-step .action-content .output[data-v-d7e4058f]:last-child,.think-act-step .think-content .tool-info[data-v-d7e4058f]:last-child,.think-act-step .action-content .tool-info[data-v-d7e4058f]:last-child{margin-bottom:0}.think-act-step .think-content .input .label[data-v-d7e4058f],.think-act-step .action-content .input .label[data-v-d7e4058f],.think-act-step .think-content .output .label[data-v-d7e4058f],.think-act-step .action-content .output .label[data-v-d7e4058f],.think-act-step .think-content .tool-info .label[data-v-d7e4058f],.think-act-step .action-content .tool-info .label[data-v-d7e4058f]{display:block;font-weight:600;color:#888;margin-bottom:4px;font-size:12px}.think-act-step .think-content .input .value[data-v-d7e4058f],.think-act-step .action-content .input .value[data-v-d7e4058f],.think-act-step .think-content .output .value[data-v-d7e4058f],.think-act-step .action-content .output .value[data-v-d7e4058f],.think-act-step .think-content .tool-info .value[data-v-d7e4058f],.think-act-step .action-content .tool-info .value[data-v-d7e4058f]{color:#ccc;font-size:14px}.think-act-step .think-content .input pre[data-v-d7e4058f],.think-act-step .action-content .input pre[data-v-d7e4058f],.think-act-step .think-content .output pre[data-v-d7e4058f],.think-act-step .action-content .output pre[data-v-d7e4058f],.think-act-step .think-content .tool-info pre[data-v-d7e4058f],.think-act-step .action-content .tool-info pre[data-v-d7e4058f]{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:12px;color:#ccc;font-size:12px;overflow-x:auto;white-space:pre-wrap;margin:0;line-height:1.4;max-height:200px;overflow-y:auto}.think-act-step .sub-plan-content .sub-plan-header[data-v-d7e4058f]{background:#667eea1a;border:1px solid rgba(102,126,234,.3);border-radius:6px;padding:12px;margin-bottom:12px}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-info[data-v-d7e4058f]{display:flex;margin-bottom:8px;font-size:12px}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-info[data-v-d7e4058f]:last-child{margin-bottom:0}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-info .label[data-v-d7e4058f]{min-width:80px;font-weight:600;color:#888;flex-shrink:0}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-info .value[data-v-d7e4058f]{flex:1;color:#ccc;word-break:break-word}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status[data-v-d7e4058f]{display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status .status-icon[data-v-d7e4058f]{font-size:14px}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status .status-icon.success[data-v-d7e4058f]{color:#27ae60}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status .status-icon.progress[data-v-d7e4058f]{color:#3498db}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status .status-text[data-v-d7e4058f]{color:#ccc;font-size:12px;font-weight:500}.no-selection[data-v-d7e4058f]{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#666}.no-selection .empty-icon[data-v-d7e4058f]{font-size:48px;margin-bottom:16px;color:#444}.no-selection h3[data-v-d7e4058f]{margin:0 0 8px;font-size:18px;color:#888}.no-selection p[data-v-d7e4058f]{margin:0;font-size:14px;text-align:center;max-width:300px;line-height:1.5}.scroll-to-bottom-btn[data-v-d7e4058f]{position:fixed;bottom:40px;right:40px;width:40px;height:40px;border-radius:50%;background:#4a90e2e6;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 12px #0000004d;transition:all .3s ease;z-index:100}.scroll-to-bottom-btn[data-v-d7e4058f]:hover{background:#4a90e2;transform:translateY(-2px);box-shadow:0 6px 16px #0006}.scroll-to-bottom-btn[data-v-d7e4058f]:active{transform:translateY(0)}.scroll-button-enter-active[data-v-d7e4058f],.scroll-button-leave-active[data-v-d7e4058f]{transition:all .3s ease}.scroll-button-enter-from[data-v-d7e4058f],.scroll-button-leave-to[data-v-d7e4058f]{opacity:0;transform:translateY(20px) scale(.8)}.file-browser-container[data-v-d7e4058f]{height:100%;padding:0;overflow:hidden}.no-plan-message[data-v-d7e4058f]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#fff9;gap:24px;padding:40px 20px;text-align:center}.no-plan-message>.iconify[data-v-d7e4058f]{font-size:64px;color:#ffffff4d}.message-content[data-v-d7e4058f]{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:300px}.message-content h3[data-v-d7e4058f]{margin:0;font-size:18px;font-weight:600;color:#ffffffe6}.message-content p[data-v-d7e4058f]{margin:0;font-size:14px;line-height:1.5;color:#fff9}.tips[data-v-d7e4058f]{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#677eea1a;border:1px solid rgba(103,126,234,.2);border-radius:8px;font-size:12px;color:#677eeae6}.tips .iconify[data-v-d7e4058f]{font-size:14px;flex-shrink:0}.preview-tabs[data-v-d7e4058f]{display:flex;gap:0;background:#ffffff0d;border-radius:8px;padding:4px}.tab-item[data-v-d7e4058f]{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:6px;cursor:pointer;transition:all .2s ease;color:#ffffffb3;font-size:13px;font-weight:500;min-width:0;flex:1;justify-content:center;position:relative}.tab-item[data-v-d7e4058f]:hover{background:#ffffff14;color:#ffffffe6}.tab-item.active[data-v-d7e4058f]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea4d}.tab-item .iconify[data-v-d7e4058f]{font-size:16px;flex-shrink:0}.tab-item span[data-v-d7e4058f]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
+.config-section[data-v-7ca0451a]{margin-bottom:16px;background:#ffffff0d;border-radius:8px;padding:12px}.section-header[data-v-7ca0451a]{display:flex;align-items:center;margin-bottom:12px;color:#667eea;font-size:13px;font-weight:600;gap:8px}.section-actions[data-v-7ca0451a]{margin-left:auto;display:flex;gap:6px}.visual-editor[data-v-7ca0451a]{background:#0003;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.1)}.plan-basic-info[data-v-7ca0451a]{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.form-row[data-v-7ca0451a]{margin-bottom:12px;display:flex;flex-direction:column;gap:6px}.form-label[data-v-7ca0451a]{font-size:10px;font-weight:600;color:#ffffffe6}.form-input[data-v-7ca0451a],.form-select[data-v-7ca0451a],.form-textarea[data-v-7ca0451a]{padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#0000004d;color:#fff;font-size:11px;font-family:inherit;transition:all .2s ease}.form-input[data-v-7ca0451a]:focus,.form-select[data-v-7ca0451a]:focus,.form-textarea[data-v-7ca0451a]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.form-textarea[data-v-7ca0451a]{resize:vertical;min-height:80px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;line-height:1.4}.form-textarea.auto-resize[data-v-7ca0451a]{resize:none;transition:height .2s ease;overflow-y:auto;max-height:240px}.checkbox-wrapper[data-v-7ca0451a]{display:flex;align-items:center;gap:8px;cursor:pointer}.form-checkbox[data-v-7ca0451a]{width:16px;height:16px;accent-color:#667eea}.checkbox-label[data-v-7ca0451a]{font-size:11px;color:#fffc}.steps-section[data-v-7ca0451a]{margin-bottom:20px}.plan-id-section[data-v-7ca0451a]{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.steps-header[data-v-7ca0451a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.steps-actions[data-v-7ca0451a]{display:flex;align-items:center;gap:8px}.agent-count-badge[data-v-7ca0451a]{font-size:10px;color:#fff9;background:#ffffff1a;padding:2px 6px;border-radius:4px}.error-badge[data-v-7ca0451a]{font-size:10px;color:#ef4444;background:#ef44441a;padding:2px 6px;border-radius:4px;border:1px solid rgba(239,68,68,.2);display:flex;align-items:center;gap:2px}.error-message[data-v-7ca0451a]{display:flex;align-items:center;gap:4px;font-size:10px;color:#ef4444;margin-top:4px;padding:4px 8px;background:#ef44441a;border-radius:4px;border:1px solid rgba(239,68,68,.2)}.steps-container[data-v-7ca0451a]{display:flex;flex-direction:column;gap:16px}.step-item[data-v-7ca0451a]{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden}.step-header[data-v-7ca0451a]{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;background:#667eea1a;border-bottom:1px solid rgba(255,255,255,.1)}.step-number[data-v-7ca0451a]{font-weight:600;color:#667eea;font-size:11px;min-width:20px}.step-actions[data-v-7ca0451a]{display:flex;gap:4px}.step-content[data-v-7ca0451a]{padding:16px}.agent-selector[data-v-7ca0451a]{display:flex;gap:8px;align-items:center}.agent-select[data-v-7ca0451a]{flex:1}.btn-add-step[data-v-7ca0451a]{padding:6px 8px;min-width:auto}.empty-steps[data-v-7ca0451a]{text-align:center;padding:40px 20px;color:#fff9}.empty-icon[data-v-7ca0451a]{color:#ffffff4d;margin-bottom:12px}.json-preview[data-v-7ca0451a]{margin-bottom:16px;background:#0006;border-radius:6px;overflow:hidden}.preview-header[data-v-7ca0451a]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.json-code[data-v-7ca0451a]{padding:12px;margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px;color:#fffc;background:transparent;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.editor-footer[data-v-7ca0451a]{text-align:center;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.btn[data-v-7ca0451a]{padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease;background:#ffffff1a;color:#fffc}.btn[data-v-7ca0451a]:hover:not(:disabled){background:#fff3;color:#fff;transform:translateY(-1px)}.btn[data-v-7ca0451a]:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-sm[data-v-7ca0451a]{padding:4px 8px;font-size:11px}.btn-xs[data-v-7ca0451a]{padding:2px 4px;font-size:10px;min-width:auto}.btn-primary[data-v-7ca0451a]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary[data-v-7ca0451a]:hover:not(:disabled){background:linear-gradient(135deg,#5a6fd8,#6a4190);box-shadow:0 2px 8px #667eea4d}.btn-secondary[data-v-7ca0451a]{background:#ffffff0d;color:#ffffffb3}.btn-add[data-v-7ca0451a]{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-add[data-v-7ca0451a]:hover:not(:disabled){background:linear-gradient(135deg,#0ea5e9,#0284c7);box-shadow:0 2px 8px #10b9814d}.btn-danger[data-v-7ca0451a]{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-danger[data-v-7ca0451a]:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 2px 8px #ef44444d}.json-editor[data-v-7ca0451a]{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:11px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;padding:8px;resize:vertical;min-height:200px;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;-moz-tab-size:2;tab-size:2;font-variant-ligatures:none}.json-editor[data-v-7ca0451a]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.json-editor[data-v-7ca0451a]::placeholder{color:#fff6}.sidebar-wrapper[data-v-fa866e8f]{position:relative;height:100vh;background:#ffffff0d;border-right:1px solid rgba(255,255,255,.1);transition:width .1s ease;overflow:hidden;display:flex}.sidebar-wrapper-collapsed[data-v-fa866e8f]{border-right:none;width:0!important}.sidebar-wrapper-collapsed .sidebar-content[data-v-fa866e8f],.sidebar-wrapper-collapsed .sidebar-resizer[data-v-fa866e8f]{opacity:0;pointer-events:none}.sidebar-content[data-v-fa866e8f]{height:100%;width:100%;padding:12px 0 12px 12px;display:flex;flex-direction:column;transition:all .3s ease-in-out;flex:1}.sidebar-content .sidebar-content-header[data-v-fa866e8f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;overflow:hidden}.sidebar-content .sidebar-content-header .sidebar-content-title[data-v-fa866e8f]{font-size:20px;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-content .tab-switcher[data-v-fa866e8f]{display:flex;margin-bottom:16px;background:#ffffff0d;border-radius:8px;padding:4px}.sidebar-content .tab-switcher .tab-button[data-v-fa866e8f]{flex:1;padding:8px 12px;background:transparent;border:none;border-radius:6px;color:#ffffffb3;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease}.sidebar-content .tab-switcher .tab-button[data-v-fa866e8f]:hover:not(:disabled){background:#ffffff1a;color:#ffffffe6}.sidebar-content .tab-switcher .tab-button.active[data-v-fa866e8f]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 4px #667eea4d}.sidebar-content .tab-switcher .tab-button[data-v-fa866e8f]:disabled{opacity:.5;cursor:not-allowed}.sidebar-content .tab-content[data-v-fa866e8f]{display:flex;flex-direction:column;flex:1;min-height:0}.sidebar-content .config-tab .config-container[data-v-fa866e8f]{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding-right:12px}.sidebar-content .config-tab .config-container .template-info-header[data-v-fa866e8f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding:12px;background:#ffffff0d;border-radius:8px}.sidebar-content .config-tab .config-container .template-info-header .template-info[data-v-fa866e8f]{flex:1;min-width:0}.sidebar-content .config-tab .config-container .template-info-header .template-info h3[data-v-fa866e8f]{margin:0 0 4px;font-size:14px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-content .config-tab .config-container .template-info-header .template-info .template-id[data-v-fa866e8f]{font-size:11px;color:#ffffff80}.sidebar-content .config-tab .config-container .template-info-header .back-to-list-btn[data-v-fa866e8f]{width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.sidebar-content .config-tab .config-container .template-info-header .back-to-list-btn[data-v-fa866e8f]:hover{background:#ffffff1a;color:#fff}.sidebar-content .config-tab .config-container .config-section[data-v-fa866e8f]{margin-bottom:16px;background:#ffffff0d;border-radius:8px;padding:12px}.sidebar-content .config-tab .config-container .config-section .section-header[data-v-fa866e8f]{display:flex;align-items:center;margin-bottom:12px;color:#667eea;font-size:13px;font-weight:600;gap:8px}.sidebar-content .config-tab .config-container .config-section .section-header .section-actions[data-v-fa866e8f]{margin-left:auto;display:flex;gap:6px}.sidebar-content .config-tab .config-container .config-section .json-editor[data-v-fa866e8f],.sidebar-content .config-tab .config-container .config-section .prompt-input[data-v-fa866e8f],.sidebar-content .config-tab .config-container .config-section .params-input[data-v-fa866e8f]{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:12px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;padding:8px;resize:vertical;min-height:100px}.sidebar-content .config-tab .config-container .config-section .json-editor[data-v-fa866e8f]:focus,.sidebar-content .config-tab .config-container .config-section .prompt-input[data-v-fa866e8f]:focus,.sidebar-content .config-tab .config-container .config-section .params-input[data-v-fa866e8f]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.sidebar-content .config-tab .config-container .config-section .json-editor[data-v-fa866e8f]::placeholder,.sidebar-content .config-tab .config-container .config-section .prompt-input[data-v-fa866e8f]::placeholder,.sidebar-content .config-tab .config-container .config-section .params-input[data-v-fa866e8f]::placeholder{color:#fff6}.sidebar-content .config-tab .config-container .config-section .json-editor[data-v-fa866e8f]{min-height:200px;font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;-moz-tab-size:2;tab-size:2;font-variant-ligatures:none}.sidebar-content .config-tab .config-container .config-section .generator-content[data-v-fa866e8f]{display:flex;flex-direction:column;gap:8px}.sidebar-content .config-tab .config-container .config-section .generator-content .generator-actions[data-v-fa866e8f]{display:flex;gap:8px}.sidebar-content .config-tab .config-container .config-section .execution-content[data-v-fa866e8f]{display:flex;flex-direction:column;gap:12px}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group label[data-v-fa866e8f]{display:block;margin-bottom:6px;font-size:12px;color:#fffc;font-weight:500}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-input-container[data-v-fa866e8f]{position:relative;display:flex;align-items:center}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-input-container .params-input[data-v-fa866e8f]{min-height:auto;padding-right:32px}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-input-container .clear-params-btn[data-v-fa866e8f]{position:absolute;right:8px;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-input-container .clear-params-btn[data-v-fa866e8f]:hover{background:#f003;color:#ff6b6b}.sidebar-content .config-tab .config-container .config-section .execution-content .params-input-group .params-help-text[data-v-fa866e8f]{margin-bottom:6px;font-size:11px;color:#fff9;line-height:1.4;padding:6px 8px;background:#667eea1a;border:1px solid rgba(102,126,234,.2);border-radius:4px}.sidebar-content .config-tab .config-container .config-section .execution-content .api-url-display[data-v-fa866e8f]{padding:8px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;font-size:11px}.sidebar-content .config-tab .config-container .config-section .execution-content .api-url-display .api-url-label[data-v-fa866e8f]{color:#ffffffb3;margin-right:8px}.sidebar-content .config-tab .config-container .config-section .execution-content .api-url-display .api-url[data-v-fa866e8f]{color:#64b5f6;font-family:Monaco,Menlo,Ubuntu Mono,monospace;word-break:break-all}.sidebar-content .config-tab .config-container .config-section .execution-content .execute-btn[data-v-fa866e8f]{padding:10px 16px;font-size:13px;font-weight:500}.sidebar-content .btn[data-v-fa866e8f]{padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease}.sidebar-content .btn.btn-sm[data-v-fa866e8f]{padding:4px 8px;font-size:11px}.sidebar-content .btn.btn-primary[data-v-fa866e8f]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.sidebar-content .btn.btn-primary[data-v-fa866e8f]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #667eea4d}.sidebar-content .btn.btn-secondary[data-v-fa866e8f]{background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.2)}.sidebar-content .btn.btn-secondary[data-v-fa866e8f]:hover:not(:disabled){background:#fff3;color:#fff}.sidebar-content .btn[data-v-fa866e8f]:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.sidebar-content .btn .spinning[data-v-fa866e8f]{animation:spin-fa866e8f 1s linear infinite}.sidebar-content .new-task-section[data-v-fa866e8f]{margin-bottom:16px;padding-right:12px}.sidebar-content .new-task-section .new-task-btn[data-v-fa866e8f]{width:100%;padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.sidebar-content .new-task-section .new-task-btn[data-v-fa866e8f]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.sidebar-content .new-task-section .new-task-btn .shortcut[data-v-fa866e8f]{font-size:12px;opacity:.8;margin-left:auto}.sidebar-content .sidebar-content-list[data-v-fa866e8f]{display:flex;flex-direction:column;flex:1;overflow-y:auto;padding-right:12px}.sidebar-content .sidebar-content-list .loading-state[data-v-fa866e8f],.sidebar-content .sidebar-content-list .error-state[data-v-fa866e8f],.sidebar-content .sidebar-content-list .empty-state[data-v-fa866e8f]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;color:#fff9;font-size:14px;text-align:center;gap:12px}.sidebar-content .sidebar-content-list .loading-state .spinning[data-v-fa866e8f],.sidebar-content .sidebar-content-list .error-state .spinning[data-v-fa866e8f],.sidebar-content .sidebar-content-list .empty-state .spinning[data-v-fa866e8f]{animation:spin-fa866e8f 1s linear infinite}.sidebar-content .sidebar-content-list .loading-state .retry-btn[data-v-fa866e8f],.sidebar-content .sidebar-content-list .error-state .retry-btn[data-v-fa866e8f],.sidebar-content .sidebar-content-list .empty-state .retry-btn[data-v-fa866e8f]{padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;cursor:pointer;font-size:12px;transition:background-color .2s ease}.sidebar-content .sidebar-content-list .loading-state .retry-btn[data-v-fa866e8f]:hover,.sidebar-content .sidebar-content-list .error-state .retry-btn[data-v-fa866e8f]:hover,.sidebar-content .sidebar-content-list .empty-state .retry-btn[data-v-fa866e8f]:hover{background:#fff3}.sidebar-content .sidebar-content-list .sidebar-content-list-item[data-v-fa866e8f]{display:flex;align-items:flex-start;padding:12px;margin-bottom:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s ease;position:relative}.sidebar-content .sidebar-content-list .sidebar-content-list-item[data-v-fa866e8f]:hover{background:#ffffff1a;border-color:#fff3;transform:translateY(-1px)}.sidebar-content .sidebar-content-list .sidebar-content-list-item.sidebar-content-list-item-active[data-v-fa866e8f]{border:2px solid #667eea;background:#667eea1a}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-icon[data-v-fa866e8f]{margin-right:12px;color:#667eea;flex-shrink:0;margin-top:2px}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-details[data-v-fa866e8f]{flex:1;min-width:0}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-details .task-title[data-v-fa866e8f]{font-size:14px;font-weight:600;color:#fff;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-details .task-preview[data-v-fa866e8f]{font-size:12px;color:#ffffffb3;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-time[data-v-fa866e8f]{font-size:11px;color:#ffffff80;margin-left:8px;flex-shrink:0;position:absolute;top:12px;right:40px}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-actions[data-v-fa866e8f]{display:flex;align-items:center;margin-left:8px;flex-shrink:0}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-actions .delete-task-btn[data-v-fa866e8f]{width:24px;height:24px;background:transparent;border:none;border-radius:4px;color:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:absolute;top:12px;right:12px}.sidebar-content .sidebar-content-list .sidebar-content-list-item .task-actions .delete-task-btn[data-v-fa866e8f]:hover{background:#f003;color:#ff6b6b}@keyframes spin-fa866e8f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sidebar-resizer[data-v-fa866e8f]{width:6px;height:100vh;background:#1a1a1a;cursor:col-resize;position:relative;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease;flex-shrink:0}.sidebar-resizer:hover[data-v-fa866e8f]{background:#2a2a2a}.sidebar-resizer:hover .resizer-line[data-v-fa866e8f]{background:#4a90e2;width:2px}.sidebar-resizer[data-v-fa866e8f]:active{background:#3a3a3a}.resizer-line[data-v-fa866e8f]{width:1px;height:40px;background:#3a3a3a;border-radius:1px;transition:all .2s ease}[data-v-ab7beb02]{margin:0;padding:0;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app-container[data-v-ab7beb02]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.app-content[data-v-ab7beb02]{position:relative;transition:all .3s ease-in-out;overflow-y:auto;border-radius:16px;width:90%;background:linear-gradient(135deg,#667eea1a,#764ba226);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0006;max-width:800px;max-height:80vh;min-height:500px}.memory-wrapper-collapsed[data-v-ab7beb02]{border-right:none;width:0}.header[data-v-ab7beb02]{padding:1rem;border-bottom:1px solid #333333;display:flex;justify-content:space-between;align-items:center}.main-title[data-v-ab7beb02]{font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:transparent;display:flex;align-items:center;cursor:pointer}.main-title i[data-v-ab7beb02]{margin-right:.5rem}.close-btn[data-v-ab7beb02]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-btn[data-v-ab7beb02]:hover{color:#ffffffe6}.search-bar[data-v-ab7beb02]{padding:1rem;border-bottom:1px solid #333333}.search-container[data-v-ab7beb02]{position:relative}.search-container-icon[data-v-ab7beb02]{position:absolute;top:10px;left:8px}.search-input[data-v-ab7beb02]{width:100%;background-color:#2d2d2d;border:1px solid #333333;border-radius:.5rem;padding:.5rem .5rem .5rem 2.5rem;color:#fff;font-size:.875rem}.search-input[data-v-ab7beb02]:focus{outline:none;border-color:#667eea}.search-icon[data-v-ab7beb02]{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#888}.message-list[data-v-ab7beb02]{flex:1;overflow-y:auto;padding:.5rem}.message-item[data-v-ab7beb02]{background-color:#2d2d2d;border:1px solid #333333;border-radius:.5rem;overflow:hidden;margin-bottom:.5rem;transition:all .2s ease}.message-item[data-v-ab7beb02]:hover{background-color:#333;border-color:#667eea80}.message-header[data-v-ab7beb02]{cursor:text;padding:.75rem;align-items:center;width:100%}.message-content[data-v-ab7beb02]{flex:1;min-width:0;padding-right:.5rem}.message.user .message-content[data-v-ab7beb02]{flex:none!important}.sender-info[data-v-ab7beb02]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.25rem}.sender-div[data-v-ab7beb02]{display:flex;align-items:center;width:85%;cursor:pointer}.sender-div:hover:not(:has(.edit-btn:hover,.down-btn:hover,.delete-btn:hover)) .sender-name[data-v-ab7beb02]{color:#667eea}.sender-name[data-v-ab7beb02]{font-weight:600;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-preview[data-v-ab7beb02]{margin-bottom:.25rem;padding:8px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px}.preview-line[data-v-ab7beb02]{font-size:.875rem;color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.125rem}.message-meta[data-v-ab7beb02]{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:.25rem}.meta-right[data-v-ab7beb02]{display:flex;align-items:center;gap:.5rem}.message-id[data-v-ab7beb02]{font-size:.75rem;color:#667eea}.message-time[data-v-ab7beb02]{font-size:.75rem;color:#ffffff80;white-space:nowrap}.unread-count[data-v-ab7beb02]{font-size:.75rem;background-color:#667eea33;color:#667eea;padding:.125rem .375rem;margin-top:2px;border-radius:1rem}.toggle-container[data-v-ab7beb02]{margin-left:auto;margin-top:4px;display:flex;align-items:center}.action-buttons[data-v-ab7beb02]{margin-left:.5rem;transition:opacity .2s ease}.message-item:hover .action-buttons[data-v-ab7beb02]{opacity:1}.edit-btn[data-v-ab7beb02]{margin-left:10px;cursor:pointer}.edit-btn[data-v-ab7beb02]:hover{color:#667eea}.down-btn[data-v-ab7beb02]{cursor:pointer}.down-btn[data-v-ab7beb02]:hover{color:#667eea}.delete-btn[data-v-ab7beb02]{color:#ffffffb3;background:none;border:none;cursor:pointer;padding:.25rem 0;font-size:1rem}.delete-btn[data-v-ab7beb02]:hover{color:#ff6b6b}.expanded-content[data-v-ab7beb02]{background-color:#333;border-top:1px solid #444444;padding:.75rem;animation:fadeIn-ab7beb02 .3s ease-in-out}.bubble-avatar[data-v-ab7beb02]{width:5rem;overflow:hidden;margin-right:.5rem;flex-shrink:0;margin-bottom:6px;font-size:16px;color:#fffc;font-weight:500}.bubble-avatar img[data-v-ab7beb02]{width:100%;height:100%;object-fit:cover}.bubble-content[data-v-ab7beb02]{padding:8px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px}.bubble-text[data-v-ab7beb02]{font-size:12px;margin-bottom:.25rem}.state-text[data-v-ab7beb02]{color:#ffffff80}.modal-overlay[data-v-ab7beb02]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.modal-content[data-v-ab7beb02]{background-color:#2d2d2d;border:1px solid #444444;border-radius:.5rem;width:100%;max-width:28rem;padding:1.25rem;transition:all .3s ease}.modal-header[data-v-ab7beb02]{text-align:center;margin-bottom:1rem}.modal-title[data-v-ab7beb02]{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.modal-footer[data-v-ab7beb02]{display:flex;justify-content:space-between;gap:.75rem}.modal-btn[data-v-ab7beb02]{flex:1;padding:.5rem;border-radius:.25rem;font-size:.875rem;cursor:pointer;transition:all .2s ease;border:none}.cancel-btn[data-v-ab7beb02]{background-color:#333;border:1px solid #444444;color:#ffffffe6}.cancel-btn[data-v-ab7beb02]:hover{background-color:#444}.confirm-btn[data-v-ab7beb02]{background-color:#667eea;color:#fff}.confirm-btn[data-v-ab7beb02]:hover{background-color:#667eeae6}.delete-btn-confirm[data-v-ab7beb02]{background-color:#ff6b6b;color:#fff}.delete-btn-confirm[data-v-ab7beb02]:hover{background-color:#ff5252}.edit-input[data-v-ab7beb02]{width:100%;background-color:#333;border:1px solid #444444;border-radius:.5rem;padding:.5rem .75rem;color:#fff;font-size:.875rem}.edit-input[data-v-ab7beb02]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 1px #667eea4d}.char-count[data-v-ab7beb02]{font-size:.75rem;color:#ffffff80}@keyframes fadeIn-ab7beb02{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInOut-ab7beb02{0%{opacity:0;transform:translateY(-20px) translate(-50%)}20%{opacity:1;transform:translateY(0) translate(-50%)}80%{opacity:1;transform:translateY(0) translate(-50%)}to{opacity:0;transform:translateY(-20px) translate(-50%)}}@media (max-width: 640px){.main-title[data-v-ab7beb02]{font-size:1.125rem}.message-id[data-v-ab7beb02]{display:none}.message-time[data-v-ab7beb02]{font-size:.7rem}}.file-tree-node[data-v-e4a376d5]{position:relative}.node-content[data-v-e4a376d5]{display:flex;align-items:center;gap:6px;padding:6px 12px;cursor:pointer;transition:all .2s ease;border-radius:6px;margin:1px 8px;position:relative}.node-content[data-v-e4a376d5]:hover{background:#ffffff14}.node-content.is-directory[data-v-e4a376d5]{font-weight:500}.expand-icon[data-v-e4a376d5]{display:flex;align-items:center;justify-content:center;width:16px;height:16px;cursor:pointer;color:#ffffffb3;transition:color .2s ease}.expand-icon[data-v-e4a376d5]:hover{color:#fff}.chevron-icon[data-v-e4a376d5]{font-size:12px;transition:transform .2s ease}.node-icon[data-v-e4a376d5]{display:flex;align-items:center;justify-content:center;width:18px;height:18px;color:#fffc}.node-icon .iconify[data-v-e4a376d5]{font-size:16px}.node-name[data-v-e4a376d5]{flex:1;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size[data-v-e4a376d5]{color:#ffffff80;font-size:11px;white-space:nowrap}.node-actions[data-v-e4a376d5]{display:flex;gap:4px;opacity:0;transition:opacity .2s ease}.node-content:hover .node-actions[data-v-e4a376d5]{opacity:1}.action-btn[data-v-e4a376d5]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:#ffffff1a;border:none;border-radius:4px;color:#ffffffb3;cursor:pointer;transition:all .2s ease}.action-btn[data-v-e4a376d5]:hover{background:#fff3;color:#fff}.action-btn .iconify[data-v-e4a376d5]{font-size:12px}.children[data-v-e4a376d5]{overflow:hidden}.context-menu[data-v-e4a376d5]{background:#141414f2;border:1px solid rgba(255,255,255,.2);border-radius:8px;box-shadow:0 8px 32px #0006;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:6px;min-width:160px}.context-menu-item[data-v-e4a376d5]{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;border-radius:4px;color:#ffffffe6;font-size:13px;transition:background-color .2s ease}.context-menu-item[data-v-e4a376d5]:hover{background:#ffffff1a}.context-menu-item .iconify[data-v-e4a376d5]{font-size:14px;color:#ffffffb3}.context-menu-divider[data-v-e4a376d5]{height:1px;background:#ffffff1a;margin:4px 0}.node-content.is-directory .node-name[data-v-e4a376d5]{color:#fff;font-weight:500}.node-content.is-directory.is-expanded .node-icon[data-v-e4a376d5]{color:#677eea}.node-content.is-file .node-name[data-v-e4a376d5]{color:#ffffffe6}.children[data-v-e4a376d5]{animation:slideDown-e4a376d5 .2s ease-out}@keyframes slideDown-e4a376d5{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.file-browser[data-v-e7c74fe4]{display:flex;flex-direction:column;height:100%;background:#ffffff05;border-radius:12px;border:1px solid rgba(255,255,255,.1);overflow:hidden}.file-browser-header[data-v-e7c74fe4]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d}.file-browser-header h3[data-v-e7c74fe4]{margin:0;color:#fff;font-size:16px;font-weight:600}.header-actions[data-v-e7c74fe4]{display:flex;gap:8px}.refresh-btn[data-v-e7c74fe4]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease;font-size:18px;box-shadow:0 2px 8px #0000004d}.refresh-btn .iconify[data-v-e7c74fe4]{color:#fff!important;font-size:18px!important;width:18px!important;height:18px!important}.refresh-btn svg[data-v-e7c74fe4]{fill:#fff!important;color:#fff!important;width:18px!important;height:18px!important}.refresh-btn[data-v-e7c74fe4]:hover:not(:disabled){background:#ffffff40;border-color:#fff6;transform:translateY(-1px);box-shadow:0 4px 12px #0006}.refresh-btn:hover:not(:disabled) .iconify[data-v-e7c74fe4],.refresh-btn:hover:not(:disabled) svg[data-v-e7c74fe4]{color:#fff!important;fill:#fff!important}.refresh-btn[data-v-e7c74fe4]:active:not(:disabled){transform:translateY(0)}.refresh-btn[data-v-e7c74fe4]:disabled{opacity:.5;cursor:not-allowed;background:#ffffff14;border-color:#ffffff26}.refresh-btn:disabled .iconify[data-v-e7c74fe4],.refresh-btn:disabled svg[data-v-e7c74fe4]{color:#fff6!important;fill:#fff6!important}.file-browser-content[data-v-e7c74fe4]{display:flex;flex:1;min-height:0}.file-tree-panel[data-v-e7c74fe4]{flex:0 0 300px;border-right:1px solid rgba(255,255,255,.1);overflow-y:auto}.file-content-panel[data-v-e7c74fe4]{flex:1;display:flex;flex-direction:column;min-width:0}.loading-state[data-v-e7c74fe4],.error-state[data-v-e7c74fe4],.empty-state[data-v-e7c74fe4]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#ffffffb3;gap:12px}.loading-state .iconify[data-v-e7c74fe4],.error-state .iconify[data-v-e7c74fe4],.empty-state .iconify[data-v-e7c74fe4]{font-size:32px}.retry-btn[data-v-e7c74fe4]{padding:8px 16px;background:#677eea33;border:1px solid rgba(103,126,234,.3);border-radius:6px;color:#677eea;cursor:pointer;transition:all .2s ease}.retry-btn[data-v-e7c74fe4]:hover{background:#677eea4d}.retry-btn[data-v-e7c74fe4]:disabled{opacity:.5;cursor:not-allowed}.waiting-for-files[data-v-e7c74fe4]{color:#74c0fc}.waiting-for-files .iconify[data-v-e7c74fe4]{font-size:48px;margin-bottom:20px;opacity:.8}.waiting-for-files .message-content[data-v-e7c74fe4]{margin-bottom:24px;text-align:center}.waiting-for-files h3[data-v-e7c74fe4]{margin:0 0 8px;color:#fff;font-size:18px;font-weight:600}.waiting-for-files p[data-v-e7c74fe4]{margin:0 0 16px;color:#ffffffb3;font-size:14px;line-height:1.5}.waiting-for-files .tips[data-v-e7c74fe4]{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#74c0fc1a;border:1px solid rgba(116,192,252,.2);border-radius:8px;color:#74c0fc;font-size:13px}.waiting-for-files .tips .iconify[data-v-e7c74fe4]{font-size:16px;margin:0}.actual-error[data-v-e7c74fe4]{color:#ff6b6b}.file-tree[data-v-e7c74fe4]{padding:8px 0}.file-content-header[data-v-e7c74fe4]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d}.file-info[data-v-e7c74fe4]{display:flex;align-items:center;gap:8px;color:#fff}.file-info .iconify[data-v-e7c74fe4]{font-size:18px}.file-name[data-v-e7c74fe4]{font-weight:600}.file-size[data-v-e7c74fe4]{color:#fff9;font-size:12px}.file-actions[data-v-e7c74fe4]{display:flex;gap:8px}.download-btn[data-v-e7c74fe4],.close-btn[data-v-e7c74fe4]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;cursor:pointer;transition:all .2s ease}.download-btn[data-v-e7c74fe4]:hover,.close-btn[data-v-e7c74fe4]:hover{background:#ffffff26;transform:translateY(-1px)}.file-content-body[data-v-e7c74fe4]{flex:1;overflow:hidden;display:flex;flex-direction:column}.loading-content[data-v-e7c74fe4],.content-error[data-v-e7c74fe4]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#ffffffb3;gap:12px}.file-content[data-v-e7c74fe4]{flex:1;overflow:hidden}.text-content[data-v-e7c74fe4]{height:100%;overflow:auto;padding:20px}.text-content pre[data-v-e7c74fe4]{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.6;color:#fff;white-space:pre-wrap;word-wrap:break-word}.binary-content[data-v-e7c74fe4]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#ffffffb3;gap:16px}.binary-content .iconify[data-v-e7c74fe4]{font-size:48px}.download-btn-large[data-v-e7c74fe4]{display:flex;align-items:center;gap:8px;padding:12px 24px;background:#677eea33;border:1px solid rgba(103,126,234,.3);border-radius:8px;color:#677eea;cursor:pointer;transition:all .2s ease;font-size:14px}.download-btn-large[data-v-e7c74fe4]:hover{background:#677eea4d;transform:translateY(-1px)}.rotating[data-v-e7c74fe4]{animation:rotate-e7c74fe4 1s linear infinite}@keyframes rotate-e7c74fe4{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.file-tree-panel[data-v-e7c74fe4]::-webkit-scrollbar,.text-content[data-v-e7c74fe4]::-webkit-scrollbar{width:6px}.file-tree-panel[data-v-e7c74fe4]::-webkit-scrollbar-track,.text-content[data-v-e7c74fe4]::-webkit-scrollbar-track{background:#ffffff0d}.file-tree-panel[data-v-e7c74fe4]::-webkit-scrollbar-thumb,.text-content[data-v-e7c74fe4]::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.file-tree-panel[data-v-e7c74fe4]::-webkit-scrollbar-thumb:hover,.text-content[data-v-e7c74fe4]::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.right-panel[data-v-d7e4058f]{width:50%;display:flex;flex-direction:column}.preview-header[data-v-d7e4058f]{padding:20px 24px;border-bottom:1px solid #1a1a1a;background:#ffffff05}.preview-header .tab-button[data-v-d7e4058f]{padding:8px 16px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:linear-gradient(135deg,#667eea33,#764ba233);border-color:#667eea;color:#667eea;cursor:default;display:flex;align-items:center;gap:6px;font-size:14px}.preview-content[data-v-d7e4058f]{flex:1;display:flex;flex-direction:column;min-height:0}.step-details[data-v-d7e4058f]{flex:1;position:relative;display:flex;flex-direction:column;min-height:0}.step-info-fixed[data-v-d7e4058f]{position:sticky;top:0;z-index:10;background:#292a2df2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);padding:20px;margin:0 20px;border-radius:8px 8px 0 0}.step-info-fixed h3[data-v-d7e4058f]{color:#fff;margin:0 0 16px;font-size:18px;font-weight:600;padding-bottom:8px;border-bottom:2px solid #667eea}.step-details-scroll-container[data-v-d7e4058f]{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 20px 20px;margin:0 20px 20px;background:#ffffff03;border-radius:0 0 8px 8px}.step-details-scroll-container[data-v-d7e4058f]::-webkit-scrollbar{width:6px}.step-details-scroll-container[data-v-d7e4058f]::-webkit-scrollbar-track{background:#ffffff1a;border-radius:3px}.step-details-scroll-container[data-v-d7e4058f]::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.step-details-scroll-container[data-v-d7e4058f]::-webkit-scrollbar-thumb:hover{background:#ffffff80}.agent-info[data-v-d7e4058f]{margin-bottom:16px}.agent-info .info-item[data-v-d7e4058f]{display:flex;margin-bottom:8px;font-size:14px;line-height:1.4}.agent-info .info-item .label[data-v-d7e4058f]{min-width:100px;font-weight:600;color:#888;flex-shrink:0}.agent-info .info-item .value[data-v-d7e4058f]{flex:1;color:#ccc;word-break:break-word}.agent-info .info-item .value.success[data-v-d7e4058f]{color:#27ae60}.execution-status[data-v-d7e4058f]{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.execution-status .status-item[data-v-d7e4058f]{display:flex;align-items:center;gap:8px}.execution-status .status-item .status-icon[data-v-d7e4058f]{font-size:16px}.execution-status .status-item .status-icon.success[data-v-d7e4058f]{color:#27ae60}.execution-status .status-item .status-icon.progress[data-v-d7e4058f]{color:#3498db}.execution-status .status-item .status-icon.pending[data-v-d7e4058f]{color:#f39c12}.execution-status .status-item .status-text[data-v-d7e4058f]{color:#ccc;font-weight:500}.no-steps-message[data-v-d7e4058f]{text-align:center;color:#666;font-style:italic;margin-top:16px}.no-steps-message p[data-v-d7e4058f]{margin:0}.no-execution-message[data-v-d7e4058f]{padding:20px;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-top:16px}.no-execution-message .info-icon[data-v-d7e4058f]{color:#6c757d;font-size:20px;margin-bottom:8px}.no-execution-message h4[data-v-d7e4058f]{margin:0 0 16px;color:#495057;font-size:16px;font-weight:500}.no-execution-message .step-basic-info .info-item[data-v-d7e4058f]{display:flex;margin-bottom:8px;font-size:14px}.no-execution-message .step-basic-info .info-item .label[data-v-d7e4058f]{font-weight:500;color:#6c757d;min-width:80px;margin-right:8px}.no-execution-message .step-basic-info .info-item .value[data-v-d7e4058f]{color:#333;flex:1}.no-execution-message .step-basic-info .info-item .value.status-completed[data-v-d7e4058f]{color:#28a745;font-weight:500}.no-execution-message .step-basic-info .info-item .value.status-current[data-v-d7e4058f]{color:#007bff;font-weight:500}.no-execution-message .step-basic-info .info-item .value.status-pending[data-v-d7e4058f]{color:#6c757d}.no-execution-message .no-execution-hint[data-v-d7e4058f]{margin:16px 0 0;color:#6c757d;font-style:italic;font-size:13px;text-align:center}.execution-indicator[data-v-d7e4058f]{margin-top:20px;padding:20px;background:#4a90e21a;border:1px solid rgba(74,144,226,.3);border-radius:8px;text-align:center;position:relative;overflow:hidden}.execution-waves[data-v-d7e4058f]{position:relative;height:4px;margin-bottom:16px;background:#4a90e233;border-radius:2px;overflow:hidden}.wave[data-v-d7e4058f]{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(74,144,226,.6),transparent);border-radius:2px}.wave-1[data-v-d7e4058f]{animation:wave-animation-d7e4058f 2s ease-in-out infinite}.wave-2[data-v-d7e4058f]{animation:wave-animation-d7e4058f 2s ease-in-out infinite .6s}.wave-3[data-v-d7e4058f]{animation:wave-animation-d7e4058f 2s ease-in-out infinite 1.2s}@keyframes wave-animation-d7e4058f{0%{left:-100%}50%{left:100%}to{left:100%}}.execution-text[data-v-d7e4058f]{color:#4a90e2;font-size:14px;margin:0;display:flex;align-items:center;justify-content:center;gap:8px}.rotating-icon[data-v-d7e4058f]{animation:rotate-animation-d7e4058f 1s linear infinite}@keyframes rotate-animation-d7e4058f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.step-info h3[data-v-d7e4058f]{color:#fff;margin:0 0 20px;font-size:18px;font-weight:600}.think-act-steps[data-v-d7e4058f]{margin-top:20px}.think-act-steps h4[data-v-d7e4058f]{color:#fff;margin:0 0 16px;font-size:16px;font-weight:600;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.2)}.steps-container[data-v-d7e4058f]{display:flex;flex-direction:column;gap:12px}.think-act-step[data-v-d7e4058f]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:16px}.think-act-step .step-header[data-v-d7e4058f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.think-act-step .step-header .step-number[data-v-d7e4058f]{font-weight:600;color:#667eea;font-size:14px}.think-act-step .step-header .step-status[data-v-d7e4058f]{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.think-act-step .step-header .step-status.completed[data-v-d7e4058f]{background:#27ae6033;color:#27ae60}.think-act-step .step-header .step-status.running[data-v-d7e4058f]{background:#3498db33;color:#3498db}.think-act-step .step-header .step-status.pending[data-v-d7e4058f]{background:#f39c1233;color:#f39c12}.think-act-step .think-section[data-v-d7e4058f],.think-act-step .action-section[data-v-d7e4058f],.think-act-step .sub-plan-section[data-v-d7e4058f]{margin-bottom:16px}.think-act-step .think-section[data-v-d7e4058f]:last-child,.think-act-step .action-section[data-v-d7e4058f]:last-child,.think-act-step .sub-plan-section[data-v-d7e4058f]:last-child{margin-bottom:0}.think-act-step .think-section h5[data-v-d7e4058f],.think-act-step .action-section h5[data-v-d7e4058f],.think-act-step .sub-plan-section h5[data-v-d7e4058f]{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-size:14px;font-weight:600;color:#fff}.think-act-step .think-content .input[data-v-d7e4058f],.think-act-step .action-content .input[data-v-d7e4058f],.think-act-step .think-content .output[data-v-d7e4058f],.think-act-step .action-content .output[data-v-d7e4058f],.think-act-step .think-content .tool-info[data-v-d7e4058f],.think-act-step .action-content .tool-info[data-v-d7e4058f]{margin-bottom:12px}.think-act-step .think-content .input[data-v-d7e4058f]:last-child,.think-act-step .action-content .input[data-v-d7e4058f]:last-child,.think-act-step .think-content .output[data-v-d7e4058f]:last-child,.think-act-step .action-content .output[data-v-d7e4058f]:last-child,.think-act-step .think-content .tool-info[data-v-d7e4058f]:last-child,.think-act-step .action-content .tool-info[data-v-d7e4058f]:last-child{margin-bottom:0}.think-act-step .think-content .input .label[data-v-d7e4058f],.think-act-step .action-content .input .label[data-v-d7e4058f],.think-act-step .think-content .output .label[data-v-d7e4058f],.think-act-step .action-content .output .label[data-v-d7e4058f],.think-act-step .think-content .tool-info .label[data-v-d7e4058f],.think-act-step .action-content .tool-info .label[data-v-d7e4058f]{display:block;font-weight:600;color:#888;margin-bottom:4px;font-size:12px}.think-act-step .think-content .input .value[data-v-d7e4058f],.think-act-step .action-content .input .value[data-v-d7e4058f],.think-act-step .think-content .output .value[data-v-d7e4058f],.think-act-step .action-content .output .value[data-v-d7e4058f],.think-act-step .think-content .tool-info .value[data-v-d7e4058f],.think-act-step .action-content .tool-info .value[data-v-d7e4058f]{color:#ccc;font-size:14px}.think-act-step .think-content .input pre[data-v-d7e4058f],.think-act-step .action-content .input pre[data-v-d7e4058f],.think-act-step .think-content .output pre[data-v-d7e4058f],.think-act-step .action-content .output pre[data-v-d7e4058f],.think-act-step .think-content .tool-info pre[data-v-d7e4058f],.think-act-step .action-content .tool-info pre[data-v-d7e4058f]{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:12px;color:#ccc;font-size:12px;overflow-x:auto;white-space:pre-wrap;margin:0;line-height:1.4;max-height:200px;overflow-y:auto}.think-act-step .sub-plan-content .sub-plan-header[data-v-d7e4058f]{background:#667eea1a;border:1px solid rgba(102,126,234,.3);border-radius:6px;padding:12px;margin-bottom:12px}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-info[data-v-d7e4058f]{display:flex;margin-bottom:8px;font-size:12px}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-info[data-v-d7e4058f]:last-child{margin-bottom:0}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-info .label[data-v-d7e4058f]{min-width:80px;font-weight:600;color:#888;flex-shrink:0}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-info .value[data-v-d7e4058f]{flex:1;color:#ccc;word-break:break-word}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status[data-v-d7e4058f]{display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status .status-icon[data-v-d7e4058f]{font-size:14px}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status .status-icon.success[data-v-d7e4058f]{color:#27ae60}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status .status-icon.progress[data-v-d7e4058f]{color:#3498db}.think-act-step .sub-plan-content .sub-plan-header .sub-plan-status .status-text[data-v-d7e4058f]{color:#ccc;font-size:12px;font-weight:500}.no-selection[data-v-d7e4058f]{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#666}.no-selection .empty-icon[data-v-d7e4058f]{font-size:48px;margin-bottom:16px;color:#444}.no-selection h3[data-v-d7e4058f]{margin:0 0 8px;font-size:18px;color:#888}.no-selection p[data-v-d7e4058f]{margin:0;font-size:14px;text-align:center;max-width:300px;line-height:1.5}.scroll-to-bottom-btn[data-v-d7e4058f]{position:fixed;bottom:40px;right:40px;width:40px;height:40px;border-radius:50%;background:#4a90e2e6;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 12px #0000004d;transition:all .3s ease;z-index:100}.scroll-to-bottom-btn[data-v-d7e4058f]:hover{background:#4a90e2;transform:translateY(-2px);box-shadow:0 6px 16px #0006}.scroll-to-bottom-btn[data-v-d7e4058f]:active{transform:translateY(0)}.scroll-button-enter-active[data-v-d7e4058f],.scroll-button-leave-active[data-v-d7e4058f]{transition:all .3s ease}.scroll-button-enter-from[data-v-d7e4058f],.scroll-button-leave-to[data-v-d7e4058f]{opacity:0;transform:translateY(20px) scale(.8)}.file-browser-container[data-v-d7e4058f]{height:100%;padding:0;overflow:hidden}.no-plan-message[data-v-d7e4058f]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#fff9;gap:24px;padding:40px 20px;text-align:center}.no-plan-message>.iconify[data-v-d7e4058f]{font-size:64px;color:#ffffff4d}.message-content[data-v-d7e4058f]{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:300px}.message-content h3[data-v-d7e4058f]{margin:0;font-size:18px;font-weight:600;color:#ffffffe6}.message-content p[data-v-d7e4058f]{margin:0;font-size:14px;line-height:1.5;color:#fff9}.tips[data-v-d7e4058f]{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#677eea1a;border:1px solid rgba(103,126,234,.2);border-radius:8px;font-size:12px;color:#677eeae6}.tips .iconify[data-v-d7e4058f]{font-size:14px;flex-shrink:0}.preview-tabs[data-v-d7e4058f]{display:flex;gap:0;background:#ffffff0d;border-radius:8px;padding:4px}.tab-item[data-v-d7e4058f]{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:6px;cursor:pointer;transition:all .2s ease;color:#ffffffb3;font-size:13px;font-weight:500;min-width:0;flex:1;justify-content:center;position:relative}.tab-item[data-v-d7e4058f]:hover{background:#ffffff14;color:#ffffffe6}.tab-item.active[data-v-d7e4058f]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea4d}.tab-item .iconify[data-v-d7e4058f]{font-size:16px;flex-shrink:0}.tab-item span[data-v-d7e4058f]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
Theme: GitHub Dark
Description: Dark theme as seen on github.com
Author: github.com
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-NPREBnw_.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CY7m9hbj.js
similarity index 98%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-NPREBnw_.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CY7m9hbj.js
index ae527d11bb..1c140634b9 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-NPREBnw_.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CY7m9hbj.js
@@ -1 +1 @@
-import{d as z,u as E,r as m,c as F,o as B,L as O,a as p,b as n,e,f as v,g as k,h as f,i as g,t as o,n as $,w as r,v as N,j,k as S,l as M,m as K,p as D,T as P,F as H,q as J,s as G,x as W}from"./index-DPEG66sS.js";import{I as b,_ as Q}from"./_plugin-vue_export-helper-CVv1atPb.js";import{L as X}from"./llm-check-BVkAKrj3.js";const Y={class:"init-container"},Z={class:"init-card"},x={class:"init-header"},ee={class:"logo"},se={class:"description"},ae={class:"step-indicator"},le={class:"step-label"},te={class:"step-label"},oe={key:0,class:"init-form language-selection"},ie={class:"form-group"},ne={class:"form-label"},de={class:"language-options"},ue={class:"language-content"},re={class:"language-flag"},ce={class:"language-text"},pe={class:"language-content"},me={class:"language-flag"},ve={class:"form-actions single"},fe=["disabled"],ge={key:1,class:"init-form"},be={class:"form-group"},he={class:"form-label"},ye={class:"config-mode-selection"},_e={class:"radio-text"},$e={class:"radio-text"},ke={key:0,class:"form-group"},Ne={for:"apiKey",class:"form-label"},Me={class:"api-key-input-container"},Ke=["type","placeholder","disabled"],we=["title"],Ue={class:"form-hint"},Ce={href:"https://bailian.console.aliyun.com/?tab=model#/api-key",target:"_blank",class:"help-link"},Le={key:1,class:"custom-config-section"},Se={class:"form-group"},De={for:"baseUrl",class:"form-label"},Pe=["placeholder","disabled"],Ae={class:"form-hint"},Ve={class:"form-group"},qe={for:"customApiKey",class:"form-label"},Te={class:"api-key-input-container"},Ie=["type","placeholder","disabled"],Re=["title"],ze={class:"form-group"},Ee={for:"modelName",class:"form-label"},Fe=["placeholder","disabled"],Be={class:"form-hint"},Oe={class:"form-group"},je={for:"modelDisplayName",class:"form-label"},He=["placeholder","disabled"],Je={class:"form-group"},Ge={for:"completionsPath",class:"form-label"},We=["placeholder","disabled"],Qe={class:"form-actions"},Xe=["disabled"],Ye=["disabled"],Ze={key:0,class:"loading-spinner"},xe={key:0,class:"error-message"},es={key:0,class:"success-message"},ss={class:"background-animation"},as=z({__name:"index",setup(ls){const{t:h,locale:U}=E(),w=W(),d=m(1),u=m(U.value||"en"),l=m({configMode:"dashscope",apiKey:"",baseUrl:"",modelName:"",modelDisplayName:"",completionsPath:""}),i=m(!1),c=m(""),C=m(!1),y=m(!1),_=m(!1),A=F(()=>l.value.apiKey.trim()?l.value.configMode==="custom"?l.value.baseUrl.trim()&&l.value.modelName.trim():!0:!1),V=async()=>{if(u.value)try{i.value=!0,await G(u.value),d.value=2}catch(s){console.warn("Failed to switch language:",s),d.value=2}finally{i.value=!1}},q=()=>{d.value=1},L=()=>{l.value.apiKey="",l.value.baseUrl="",l.value.modelName="",l.value.modelDisplayName="",l.value.completionsPath="",c.value="",y.value=!1,_.value=!1},T=()=>{if(!l.value.apiKey.trim())return c.value=h("init.apiKeyRequired"),!1;if(l.value.configMode==="custom"){if(!l.value.baseUrl.trim())return c.value=h("init.baseUrlRequired"),!1;if(!l.value.modelName.trim())return c.value=h("init.modelNameRequired"),!1}return!0},I=async()=>{if(T())try{i.value=!0,c.value="";const s={configMode:l.value.configMode,apiKey:l.value.apiKey.trim()};l.value.configMode==="custom"&&(s.baseUrl=l.value.baseUrl.trim(),s.modelName=l.value.modelName.trim(),s.modelDisplayName=l.value.modelDisplayName.trim()||l.value.modelName.trim(),s.completionsPath=l.value.completionsPath.trim());const t=await(await fetch("/api/init/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();t.success?(C.value=!0,localStorage.setItem("hasInitialized","true"),localStorage.setItem("hasVisitedHome","true"),X.clearCache(),t.requiresRestart?setTimeout(()=>{confirm(h("init.restartRequired"))?window.location.reload():w.push("/home")},2e3):setTimeout(()=>{w.push("/home")},2e3)):c.value=t.error||h("init.saveFailed")}catch(s){console.error("Save config failed:",s),c.value=h("init.networkError")}finally{i.value=!1}},R=async()=>{try{const a=await(await fetch("/api/init/status")).json();a.success&&a.initialized&&(localStorage.setItem("hasInitialized","true"),w.push("/home"))}catch(s){console.error("Check init status failed:",s)}};return B(()=>{const s=localStorage.getItem(O);s&&(s==="zh"||s==="en")&&(u.value=s,U.value=s),R()}),(s,a)=>(n(),p("div",Y,[e("div",Z,[e("div",x,[e("div",ee,[e("h1",null,[k(g(b),{icon:"carbon:bot",class:"logo-icon"}),a[12]||(a[12]=f(" JManus"))])]),e("h2",null,o(d.value===1?s.$t("init.welcomeStep"):s.$t("init.welcome")),1),e("p",se,o(d.value===1?s.$t("init.languageStepDescription"):s.$t("init.description")),1)]),e("div",ae,[e("div",{class:$(["step",{active:d.value>=1,completed:d.value>1}])},[a[13]||(a[13]=e("span",{class:"step-number"},"1",-1)),e("span",le,o(s.$t("init.stepLanguage")),1)],2),a[15]||(a[15]=e("div",{class:"step-divider"},null,-1)),e("div",{class:$(["step",{active:d.value>=2,completed:d.value>2}])},[a[14]||(a[14]=e("span",{class:"step-number"},"2",-1)),e("span",te,o(s.$t("init.stepModel")),1)],2)]),d.value===1?(n(),p("div",oe,[e("div",ie,[e("label",ne,o(s.$t("init.selectLanguageLabel")),1),e("div",de,[e("label",{class:$(["language-option",{active:u.value==="zh"}])},[r(e("input",{type:"radio","onUpdate:modelValue":a[0]||(a[0]=t=>u.value=t),value:"zh"},null,512),[[N,u.value]]),e("span",ue,[e("span",re,[k(g(b),{icon:"circle-flags:cn"})]),e("span",ce,[e("strong",null,o(s.$t("language.zh")),1),e("small",null,o(s.$t("init.simplifiedChinese")),1)])])],2),e("label",{class:$(["language-option",{active:u.value==="en"}])},[r(e("input",{type:"radio","onUpdate:modelValue":a[1]||(a[1]=t=>u.value=t),value:"en"},null,512),[[N,u.value]]),e("span",pe,[e("span",me,[k(g(b),{icon:"circle-flags:us"})]),a[16]||(a[16]=e("span",{class:"language-text"},[e("strong",null,"English"),e("small",null,"English (US)")],-1))])],2)])]),e("div",ve,[e("button",{type:"button",class:"submit-btn",disabled:!u.value,onClick:V},o(s.$t("init.continueToModel")),9,fe)])])):v("",!0),d.value===2?(n(),p("div",ge,[e("form",{onSubmit:j(I,["prevent"])},[e("div",be,[e("label",he,o(s.$t("init.configModeLabel")),1),e("div",ye,[e("label",{class:$(["radio-option",{active:l.value.configMode==="dashscope"}])},[r(e("input",{type:"radio","onUpdate:modelValue":a[2]||(a[2]=t=>l.value.configMode=t),value:"dashscope",onChange:L},null,544),[[N,l.value.configMode]]),e("span",_e,[e("strong",null,o(s.$t("init.dashscopeMode")),1),e("small",null,o(s.$t("init.dashscopeModeDesc")),1)])],2),e("label",{class:$(["radio-option",{active:l.value.configMode==="custom"}])},[r(e("input",{type:"radio","onUpdate:modelValue":a[3]||(a[3]=t=>l.value.configMode=t),value:"custom",onChange:L},null,544),[[N,l.value.configMode]]),e("span",$e,[e("strong",null,o(s.$t("init.customMode")),1),e("small",null,o(s.$t("init.customModeDesc")),1)])],2)])]),l.value.configMode==="dashscope"?(n(),p("div",ke,[e("label",Ne,[f(o(s.$t("init.apiKeyLabel"))+" ",1),a[17]||(a[17]=e("span",{class:"required"},"*",-1))]),e("div",Me,[r(e("input",{id:"apiKey","onUpdate:modelValue":a[4]||(a[4]=t=>l.value.apiKey=t),type:y.value?"text":"password",class:"form-input",placeholder:s.$t("init.apiKeyPlaceholder"),disabled:i.value,required:""},null,8,Ke),[[S,l.value.apiKey]]),e("button",{type:"button",class:"api-key-toggle-btn",onClick:a[5]||(a[5]=t=>y.value=!y.value),title:y.value?s.$t("init.hideApiKey"):s.$t("init.showApiKey")},[y.value?(n(),M(g(b),{key:0,icon:"carbon:view"})):(n(),M(g(b),{key:1,icon:"carbon:view-off"}))],8,we)]),e("div",Ue,[f(o(s.$t("init.apiKeyHint"))+" ",1),e("a",Ce,o(s.$t("init.getApiKey")),1)])])):v("",!0),l.value.configMode==="custom"?(n(),p("div",Le,[e("div",Se,[e("label",De,[f(o(s.$t("init.baseUrlLabel"))+" ",1),a[18]||(a[18]=e("span",{class:"required"},"*",-1))]),r(e("input",{id:"baseUrl","onUpdate:modelValue":a[6]||(a[6]=t=>l.value.baseUrl=t),type:"url",class:"form-input",placeholder:s.$t("init.baseUrlPlaceholder"),disabled:i.value,required:""},null,8,Pe),[[K,l.value.baseUrl]]),e("div",Ae,o(s.$t("init.baseUrlHint")),1)]),e("div",Ve,[e("label",qe,[f(o(s.$t("init.customApiKeyLabel"))+" ",1),a[19]||(a[19]=e("span",{class:"required"},"*",-1))]),e("div",Te,[r(e("input",{id:"customApiKey","onUpdate:modelValue":a[7]||(a[7]=t=>l.value.apiKey=t),type:_.value?"text":"password",class:"form-input",placeholder:s.$t("init.customApiKeyPlaceholder"),disabled:i.value,required:""},null,8,Ie),[[S,l.value.apiKey]]),e("button",{type:"button",class:"api-key-toggle-btn",onClick:a[8]||(a[8]=t=>_.value=!_.value),title:_.value?s.$t("init.hideApiKey"):s.$t("init.showApiKey")},[_.value?(n(),M(g(b),{key:0,icon:"carbon:view"})):(n(),M(g(b),{key:1,icon:"carbon:view-off"}))],8,Re)])]),e("div",ze,[e("label",Ee,[f(o(s.$t("init.modelNameLabel"))+" ",1),a[20]||(a[20]=e("span",{class:"required"},"*",-1))]),r(e("input",{id:"modelName","onUpdate:modelValue":a[9]||(a[9]=t=>l.value.modelName=t),type:"text",class:"form-input",placeholder:s.$t("init.modelNamePlaceholder"),disabled:i.value,required:""},null,8,Fe),[[K,l.value.modelName]]),e("div",Be,o(s.$t("init.modelNameHint")),1)]),e("div",Oe,[e("label",je,o(s.$t("init.modelDisplayNameLabel")),1),r(e("input",{id:"modelDisplayName","onUpdate:modelValue":a[10]||(a[10]=t=>l.value.modelDisplayName=t),type:"text",class:"form-input",placeholder:s.$t("init.modelDisplayNamePlaceholder"),disabled:i.value},null,8,He),[[K,l.value.modelDisplayName]])]),e("div",Je,[e("label",Ge,o(s.$t("init.completionsPath")),1),r(e("input",{id:"modelDisplayName","onUpdate:modelValue":a[11]||(a[11]=t=>l.value.completionsPath=t),type:"text",class:"form-input",placeholder:s.$t("init.completionsPathPlaceholder"),disabled:i.value},null,8,We),[[K,l.value.completionsPath]])])])):v("",!0),e("div",Qe,[e("button",{type:"button",class:"back-btn",onClick:q,disabled:i.value},o(s.$t("init.back")),9,Xe),e("button",{type:"submit",class:"submit-btn",disabled:i.value||!A.value},[i.value?(n(),p("span",Ze)):v("",!0),f(" "+o(i.value?s.$t("init.saving"):s.$t("init.saveAndContinue")),1)],8,Ye)])],32)])):v("",!0),k(P,{name:"error-fade"},{default:D(()=>[c.value?(n(),p("div",xe,o(c.value),1)):v("",!0)]),_:1}),k(P,{name:"success-fade"},{default:D(()=>[C.value?(n(),p("div",es,o(s.$t("init.successMessage")),1)):v("",!0)]),_:1})]),e("div",ss,[(n(),p(H,null,J(6,t=>e("div",{class:"floating-shape",key:t})),64))]),a[21]||(a[21]=e("div",{class:"background-effects"},[e("div",{class:"gradient-orb orb-1"}),e("div",{class:"gradient-orb orb-2"}),e("div",{class:"gradient-orb orb-3"})],-1))]))}}),ns=Q(as,[["__scopeId","data-v-3b010228"]]);export{ns as default};
+import{d as z,u as E,r as m,c as F,o as B,L as O,a as p,b as n,e,f as v,g as k,h as f,i as g,t as o,n as $,w as r,v as N,j,k as S,l as M,m as K,p as D,T as P,F as H,q as J,s as G,x as W}from"./index-D5D9bzxe.js";import{I as b,_ as Q}from"./_plugin-vue_export-helper-v7-Do0bo.js";import{L as X}from"./llm-check-BVkAKrj3.js";const Y={class:"init-container"},Z={class:"init-card"},x={class:"init-header"},ee={class:"logo"},se={class:"description"},ae={class:"step-indicator"},le={class:"step-label"},te={class:"step-label"},oe={key:0,class:"init-form language-selection"},ie={class:"form-group"},ne={class:"form-label"},de={class:"language-options"},ue={class:"language-content"},re={class:"language-flag"},ce={class:"language-text"},pe={class:"language-content"},me={class:"language-flag"},ve={class:"form-actions single"},fe=["disabled"],ge={key:1,class:"init-form"},be={class:"form-group"},he={class:"form-label"},ye={class:"config-mode-selection"},_e={class:"radio-text"},$e={class:"radio-text"},ke={key:0,class:"form-group"},Ne={for:"apiKey",class:"form-label"},Me={class:"api-key-input-container"},Ke=["type","placeholder","disabled"],we=["title"],Ue={class:"form-hint"},Ce={href:"https://bailian.console.aliyun.com/?tab=model#/api-key",target:"_blank",class:"help-link"},Le={key:1,class:"custom-config-section"},Se={class:"form-group"},De={for:"baseUrl",class:"form-label"},Pe=["placeholder","disabled"],Ae={class:"form-hint"},Ve={class:"form-group"},qe={for:"customApiKey",class:"form-label"},Te={class:"api-key-input-container"},Ie=["type","placeholder","disabled"],Re=["title"],ze={class:"form-group"},Ee={for:"modelName",class:"form-label"},Fe=["placeholder","disabled"],Be={class:"form-hint"},Oe={class:"form-group"},je={for:"modelDisplayName",class:"form-label"},He=["placeholder","disabled"],Je={class:"form-group"},Ge={for:"completionsPath",class:"form-label"},We=["placeholder","disabled"],Qe={class:"form-actions"},Xe=["disabled"],Ye=["disabled"],Ze={key:0,class:"loading-spinner"},xe={key:0,class:"error-message"},es={key:0,class:"success-message"},ss={class:"background-animation"},as=z({__name:"index",setup(ls){const{t:h,locale:U}=E(),w=W(),d=m(1),u=m(U.value||"en"),l=m({configMode:"dashscope",apiKey:"",baseUrl:"",modelName:"",modelDisplayName:"",completionsPath:""}),i=m(!1),c=m(""),C=m(!1),y=m(!1),_=m(!1),A=F(()=>l.value.apiKey.trim()?l.value.configMode==="custom"?l.value.baseUrl.trim()&&l.value.modelName.trim():!0:!1),V=async()=>{if(u.value)try{i.value=!0,await G(u.value),d.value=2}catch(s){console.warn("Failed to switch language:",s),d.value=2}finally{i.value=!1}},q=()=>{d.value=1},L=()=>{l.value.apiKey="",l.value.baseUrl="",l.value.modelName="",l.value.modelDisplayName="",l.value.completionsPath="",c.value="",y.value=!1,_.value=!1},T=()=>{if(!l.value.apiKey.trim())return c.value=h("init.apiKeyRequired"),!1;if(l.value.configMode==="custom"){if(!l.value.baseUrl.trim())return c.value=h("init.baseUrlRequired"),!1;if(!l.value.modelName.trim())return c.value=h("init.modelNameRequired"),!1}return!0},I=async()=>{if(T())try{i.value=!0,c.value="";const s={configMode:l.value.configMode,apiKey:l.value.apiKey.trim()};l.value.configMode==="custom"&&(s.baseUrl=l.value.baseUrl.trim(),s.modelName=l.value.modelName.trim(),s.modelDisplayName=l.value.modelDisplayName.trim()||l.value.modelName.trim(),s.completionsPath=l.value.completionsPath.trim());const t=await(await fetch("/api/init/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();t.success?(C.value=!0,localStorage.setItem("hasInitialized","true"),localStorage.setItem("hasVisitedHome","true"),X.clearCache(),t.requiresRestart?setTimeout(()=>{confirm(h("init.restartRequired"))?window.location.reload():w.push("/home")},2e3):setTimeout(()=>{w.push("/home")},2e3)):c.value=t.error||h("init.saveFailed")}catch(s){console.error("Save config failed:",s),c.value=h("init.networkError")}finally{i.value=!1}},R=async()=>{try{const a=await(await fetch("/api/init/status")).json();a.success&&a.initialized&&(localStorage.setItem("hasInitialized","true"),w.push("/home"))}catch(s){console.error("Check init status failed:",s)}};return B(()=>{const s=localStorage.getItem(O);s&&(s==="zh"||s==="en")&&(u.value=s,U.value=s),R()}),(s,a)=>(n(),p("div",Y,[e("div",Z,[e("div",x,[e("div",ee,[e("h1",null,[k(g(b),{icon:"carbon:bot",class:"logo-icon"}),a[12]||(a[12]=f(" JManus"))])]),e("h2",null,o(d.value===1?s.$t("init.welcomeStep"):s.$t("init.welcome")),1),e("p",se,o(d.value===1?s.$t("init.languageStepDescription"):s.$t("init.description")),1)]),e("div",ae,[e("div",{class:$(["step",{active:d.value>=1,completed:d.value>1}])},[a[13]||(a[13]=e("span",{class:"step-number"},"1",-1)),e("span",le,o(s.$t("init.stepLanguage")),1)],2),a[15]||(a[15]=e("div",{class:"step-divider"},null,-1)),e("div",{class:$(["step",{active:d.value>=2,completed:d.value>2}])},[a[14]||(a[14]=e("span",{class:"step-number"},"2",-1)),e("span",te,o(s.$t("init.stepModel")),1)],2)]),d.value===1?(n(),p("div",oe,[e("div",ie,[e("label",ne,o(s.$t("init.selectLanguageLabel")),1),e("div",de,[e("label",{class:$(["language-option",{active:u.value==="zh"}])},[r(e("input",{type:"radio","onUpdate:modelValue":a[0]||(a[0]=t=>u.value=t),value:"zh"},null,512),[[N,u.value]]),e("span",ue,[e("span",re,[k(g(b),{icon:"circle-flags:cn"})]),e("span",ce,[e("strong",null,o(s.$t("language.zh")),1),e("small",null,o(s.$t("init.simplifiedChinese")),1)])])],2),e("label",{class:$(["language-option",{active:u.value==="en"}])},[r(e("input",{type:"radio","onUpdate:modelValue":a[1]||(a[1]=t=>u.value=t),value:"en"},null,512),[[N,u.value]]),e("span",pe,[e("span",me,[k(g(b),{icon:"circle-flags:us"})]),a[16]||(a[16]=e("span",{class:"language-text"},[e("strong",null,"English"),e("small",null,"English (US)")],-1))])],2)])]),e("div",ve,[e("button",{type:"button",class:"submit-btn",disabled:!u.value,onClick:V},o(s.$t("init.continueToModel")),9,fe)])])):v("",!0),d.value===2?(n(),p("div",ge,[e("form",{onSubmit:j(I,["prevent"])},[e("div",be,[e("label",he,o(s.$t("init.configModeLabel")),1),e("div",ye,[e("label",{class:$(["radio-option",{active:l.value.configMode==="dashscope"}])},[r(e("input",{type:"radio","onUpdate:modelValue":a[2]||(a[2]=t=>l.value.configMode=t),value:"dashscope",onChange:L},null,544),[[N,l.value.configMode]]),e("span",_e,[e("strong",null,o(s.$t("init.dashscopeMode")),1),e("small",null,o(s.$t("init.dashscopeModeDesc")),1)])],2),e("label",{class:$(["radio-option",{active:l.value.configMode==="custom"}])},[r(e("input",{type:"radio","onUpdate:modelValue":a[3]||(a[3]=t=>l.value.configMode=t),value:"custom",onChange:L},null,544),[[N,l.value.configMode]]),e("span",$e,[e("strong",null,o(s.$t("init.customMode")),1),e("small",null,o(s.$t("init.customModeDesc")),1)])],2)])]),l.value.configMode==="dashscope"?(n(),p("div",ke,[e("label",Ne,[f(o(s.$t("init.apiKeyLabel"))+" ",1),a[17]||(a[17]=e("span",{class:"required"},"*",-1))]),e("div",Me,[r(e("input",{id:"apiKey","onUpdate:modelValue":a[4]||(a[4]=t=>l.value.apiKey=t),type:y.value?"text":"password",class:"form-input",placeholder:s.$t("init.apiKeyPlaceholder"),disabled:i.value,required:""},null,8,Ke),[[S,l.value.apiKey]]),e("button",{type:"button",class:"api-key-toggle-btn",onClick:a[5]||(a[5]=t=>y.value=!y.value),title:y.value?s.$t("init.hideApiKey"):s.$t("init.showApiKey")},[y.value?(n(),M(g(b),{key:0,icon:"carbon:view"})):(n(),M(g(b),{key:1,icon:"carbon:view-off"}))],8,we)]),e("div",Ue,[f(o(s.$t("init.apiKeyHint"))+" ",1),e("a",Ce,o(s.$t("init.getApiKey")),1)])])):v("",!0),l.value.configMode==="custom"?(n(),p("div",Le,[e("div",Se,[e("label",De,[f(o(s.$t("init.baseUrlLabel"))+" ",1),a[18]||(a[18]=e("span",{class:"required"},"*",-1))]),r(e("input",{id:"baseUrl","onUpdate:modelValue":a[6]||(a[6]=t=>l.value.baseUrl=t),type:"url",class:"form-input",placeholder:s.$t("init.baseUrlPlaceholder"),disabled:i.value,required:""},null,8,Pe),[[K,l.value.baseUrl]]),e("div",Ae,o(s.$t("init.baseUrlHint")),1)]),e("div",Ve,[e("label",qe,[f(o(s.$t("init.customApiKeyLabel"))+" ",1),a[19]||(a[19]=e("span",{class:"required"},"*",-1))]),e("div",Te,[r(e("input",{id:"customApiKey","onUpdate:modelValue":a[7]||(a[7]=t=>l.value.apiKey=t),type:_.value?"text":"password",class:"form-input",placeholder:s.$t("init.customApiKeyPlaceholder"),disabled:i.value,required:""},null,8,Ie),[[S,l.value.apiKey]]),e("button",{type:"button",class:"api-key-toggle-btn",onClick:a[8]||(a[8]=t=>_.value=!_.value),title:_.value?s.$t("init.hideApiKey"):s.$t("init.showApiKey")},[_.value?(n(),M(g(b),{key:0,icon:"carbon:view"})):(n(),M(g(b),{key:1,icon:"carbon:view-off"}))],8,Re)])]),e("div",ze,[e("label",Ee,[f(o(s.$t("init.modelNameLabel"))+" ",1),a[20]||(a[20]=e("span",{class:"required"},"*",-1))]),r(e("input",{id:"modelName","onUpdate:modelValue":a[9]||(a[9]=t=>l.value.modelName=t),type:"text",class:"form-input",placeholder:s.$t("init.modelNamePlaceholder"),disabled:i.value,required:""},null,8,Fe),[[K,l.value.modelName]]),e("div",Be,o(s.$t("init.modelNameHint")),1)]),e("div",Oe,[e("label",je,o(s.$t("init.modelDisplayNameLabel")),1),r(e("input",{id:"modelDisplayName","onUpdate:modelValue":a[10]||(a[10]=t=>l.value.modelDisplayName=t),type:"text",class:"form-input",placeholder:s.$t("init.modelDisplayNamePlaceholder"),disabled:i.value},null,8,He),[[K,l.value.modelDisplayName]])]),e("div",Je,[e("label",Ge,o(s.$t("init.completionsPath")),1),r(e("input",{id:"modelDisplayName","onUpdate:modelValue":a[11]||(a[11]=t=>l.value.completionsPath=t),type:"text",class:"form-input",placeholder:s.$t("init.completionsPathPlaceholder"),disabled:i.value},null,8,We),[[K,l.value.completionsPath]])])])):v("",!0),e("div",Qe,[e("button",{type:"button",class:"back-btn",onClick:q,disabled:i.value},o(s.$t("init.back")),9,Xe),e("button",{type:"submit",class:"submit-btn",disabled:i.value||!A.value},[i.value?(n(),p("span",Ze)):v("",!0),f(" "+o(i.value?s.$t("init.saving"):s.$t("init.saveAndContinue")),1)],8,Ye)])],32)])):v("",!0),k(P,{name:"error-fade"},{default:D(()=>[c.value?(n(),p("div",xe,o(c.value),1)):v("",!0)]),_:1}),k(P,{name:"success-fade"},{default:D(()=>[C.value?(n(),p("div",es,o(s.$t("init.successMessage")),1)):v("",!0)]),_:1})]),e("div",ss,[(n(),p(H,null,J(6,t=>e("div",{class:"floating-shape",key:t})),64))]),a[21]||(a[21]=e("div",{class:"background-effects"},[e("div",{class:"gradient-orb orb-1"}),e("div",{class:"gradient-orb orb-2"}),e("div",{class:"gradient-orb orb-3"})],-1))]))}}),ns=Q(as,[["__scopeId","data-v-3b010228"]]);export{ns as default};
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CCgDoIbg.css b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Cpq1u-SR.css
similarity index 54%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CCgDoIbg.css
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Cpq1u-SR.css
index 48bd09322c..e812c24b2c 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CCgDoIbg.css
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Cpq1u-SR.css
@@ -1 +1 @@
-.blur-card[data-v-48da0039]{width:100%;height:100%;box-sizing:border-box;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:20px;cursor:pointer;transition:all .3s ease;text-align:left;display:flex;align-items:flex-start;gap:16px}.blur-card[data-v-48da0039]:hover{background:#ffffff0d;border-color:#667eea4d;transform:translateY(-2px);box-shadow:0 8px 25px #0003}.blur-card .blur-card-icon[data-v-48da0039]{font-size:24px;color:#667eea;margin-top:4px;flex-shrink:0}.blur-card .blur-card-content[data-v-48da0039]{flex:1;display:flex;flex-direction:column}.blur-card .blur-card-content h3[data-v-48da0039]{font-size:16px;font-weight:600;color:#fff;margin:0 0 8px}.blur-card .blur-card-content p[data-v-48da0039]{font-size:14px;color:#888;margin:0;line-height:1.4}.home-page[data-v-b31384b4]{width:100%;height:100vh;position:relative;overflow-y:auto}.welcome-container[data-v-b31384b4]{flex:1;height:100vh;background:#0a0a0a;position:relative;display:flex;flex-direction:column}.background-effects[data-v-b31384b4]{position:fixed;width:100vw;height:100vh;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0}.gradient-orb[data-v-b31384b4]{position:absolute;border-radius:50%;filter:blur(100px);opacity:.3;animation:float-b31384b4 6s ease-in-out infinite}.gradient-orb.orb-1[data-v-b31384b4]{width:400px;height:400px;background:linear-gradient(135deg,#667eea,#764ba2);top:-200px;right:-200px;animation-delay:0s}.gradient-orb.orb-2[data-v-b31384b4]{width:300px;height:300px;background:linear-gradient(135deg,#f093fb,#f5576c);bottom:-150px;left:-150px;animation-delay:2s}.gradient-orb.orb-3[data-v-b31384b4]{width:250px;height:250px;background:linear-gradient(135deg,#4facfe,#00f2fe);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:4s}@keyframes float-b31384b4{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-20px) rotate(120deg)}66%{transform:translateY(10px) rotate(240deg)}}.header[data-v-b31384b4]{position:relative;z-index:1000;padding:32px 32px 0}.header-top[data-v-b31384b4]{display:flex;justify-content:flex-end;margin-bottom:20px;position:relative;z-index:1001}.logo-container[data-v-b31384b4]{text-align:center}.logo-container .logo[data-v-b31384b4]{display:flex;align-items:center;justify-content:center}.logo-container img[data-v-b31384b4]{height:52px;margin-bottom:12px}.logo-container h1[data-v-b31384b4]{font-size:48px;font-weight:700;margin:0 0 8px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-container .tagline[data-v-b31384b4]{color:#888;font-size:16px;font-weight:400}.main-content[data-v-b31384b4]{flex:1;display:flex;align-items:center;justify-content:center;padding:0 32px 32px;position:relative;z-index:1}.conversation-container[data-v-b31384b4]{width:100%;max-width:800px}.welcome-section[data-v-b31384b4]{text-align:center;margin-bottom:48px}.welcome-title[data-v-b31384b4]{font-size:32px;font-weight:600;color:#fff;margin:0 0 16px}.welcome-subtitle[data-v-b31384b4]{font-size:18px;color:#888;margin:0;line-height:1.5}.input-section[data-v-b31384b4]{margin-bottom:48px}.input-container[data-v-b31384b4]{position:relative;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:20px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 32px #0000004d;transition:all .3s ease}.input-container[data-v-b31384b4]:focus-within{border-color:#667eea;box-shadow:0 8px 32px #667eea33}.main-input[data-v-b31384b4]{width:100%;background:transparent;border:none;outline:none;color:#fff;font-size:16px;line-height:1.5;resize:none;min-height:24px;max-height:200px;padding-right:60px}.main-input[data-v-b31384b4]::placeholder{color:#666}.send-button[data-v-b31384b4]{position:absolute;right:16px;bottom:16px;width:40px;height:40px;border:none;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.send-button[data-v-b31384b4]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.send-button[data-v-b31384b4]:disabled{opacity:.5;cursor:not-allowed}.send-button svg[data-v-b31384b4]{font-size:18px}.examples-section[data-v-b31384b4]{margin-bottom:48px}.examples-section .examples-grid[data-v-b31384b4]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.examples-section .examples-grid .card-with-type[data-v-b31384b4]{width:100%;min-width:300px}.examples-section .examples-grid .card-with-type:hover .card-type[data-v-b31384b4]{transform:translateY(-1px);box-shadow:0 8px 25px #8297f666}.card-with-type[data-v-b31384b4]{position:relative}.card-type[data-v-b31384b4]{position:absolute;top:12px;right:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;z-index:1}.config-view[data-v-b31384b4]{flex:1;height:100vh;background:#0a0a0a;display:flex;flex-direction:column;position:relative}.config-header-bar[data-v-b31384b4]{display:flex;align-items:center;padding:16px 24px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1);gap:16px}.config-header-bar .back-button[data-v-b31384b4]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:14px;cursor:pointer;transition:all .2s ease}.config-header-bar .back-button[data-v-b31384b4]:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.config-header-bar .config-title[data-v-b31384b4]{font-size:20px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.direct-button[data-v-b31384b4]{margin-top:20px;padding:12px 24px;border:none;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:16px;cursor:pointer;transition:all .2s ease}.direct-button[data-v-b31384b4]:hover{transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}
+.blur-card[data-v-48da0039]{width:100%;height:100%;box-sizing:border-box;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:20px;cursor:pointer;transition:all .3s ease;text-align:left;display:flex;align-items:flex-start;gap:16px}.blur-card[data-v-48da0039]:hover{background:#ffffff0d;border-color:#667eea4d;transform:translateY(-2px);box-shadow:0 8px 25px #0003}.blur-card .blur-card-icon[data-v-48da0039]{font-size:24px;color:#667eea;margin-top:4px;flex-shrink:0}.blur-card .blur-card-content[data-v-48da0039]{flex:1;display:flex;flex-direction:column}.blur-card .blur-card-content h3[data-v-48da0039]{font-size:16px;font-weight:600;color:#fff;margin:0 0 8px}.blur-card .blur-card-content p[data-v-48da0039]{font-size:14px;color:#888;margin:0;line-height:1.4}.home-page[data-v-8f6d8b67]{width:100%;height:100vh;position:relative;overflow-y:auto}.welcome-container[data-v-8f6d8b67]{flex:1;height:100vh;background:#0a0a0a;position:relative;display:flex;flex-direction:column}.background-effects[data-v-8f6d8b67]{position:fixed;width:100vw;height:100vh;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0}.gradient-orb[data-v-8f6d8b67]{position:absolute;border-radius:50%;filter:blur(100px);opacity:.3;animation:float-8f6d8b67 6s ease-in-out infinite}.gradient-orb.orb-1[data-v-8f6d8b67]{width:400px;height:400px;background:linear-gradient(135deg,#667eea,#764ba2);top:-200px;right:-200px;animation-delay:0s}.gradient-orb.orb-2[data-v-8f6d8b67]{width:300px;height:300px;background:linear-gradient(135deg,#f093fb,#f5576c);bottom:-150px;left:-150px;animation-delay:2s}.gradient-orb.orb-3[data-v-8f6d8b67]{width:250px;height:250px;background:linear-gradient(135deg,#4facfe,#00f2fe);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:4s}@keyframes float-8f6d8b67{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-20px) rotate(120deg)}66%{transform:translateY(10px) rotate(240deg)}}.header[data-v-8f6d8b67]{position:relative;z-index:1000;padding:32px 32px 0}.header-top[data-v-8f6d8b67]{display:flex;justify-content:flex-end;margin-bottom:20px;position:relative;z-index:1001}.logo-container[data-v-8f6d8b67]{text-align:center}.logo-container .logo[data-v-8f6d8b67]{display:flex;align-items:center;justify-content:center}.logo-container img[data-v-8f6d8b67]{height:52px;margin-bottom:12px}.logo-container h1[data-v-8f6d8b67]{font-size:48px;font-weight:700;margin:0 0 8px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-container .tagline[data-v-8f6d8b67]{color:#888;font-size:16px;font-weight:400}.main-content[data-v-8f6d8b67]{flex:1;display:flex;align-items:center;justify-content:center;padding:0 32px 32px;position:relative;z-index:1}.conversation-container[data-v-8f6d8b67]{width:100%;max-width:800px}.welcome-section[data-v-8f6d8b67]{text-align:center;margin-bottom:48px}.welcome-title[data-v-8f6d8b67]{font-size:32px;font-weight:600;color:#fff;margin:0 0 16px}.welcome-subtitle[data-v-8f6d8b67]{font-size:18px;color:#888;margin:0;line-height:1.5}.input-section[data-v-8f6d8b67]{margin-bottom:48px}.input-container[data-v-8f6d8b67]{position:relative;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:20px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 32px #0000004d;transition:all .3s ease}.input-container[data-v-8f6d8b67]:focus-within{border-color:#667eea;box-shadow:0 8px 32px #667eea33}.main-input[data-v-8f6d8b67]{width:100%;background:transparent;border:none;outline:none;color:#fff;font-size:16px;line-height:1.5;resize:none;min-height:24px;max-height:200px;padding-right:60px}.main-input[data-v-8f6d8b67]::placeholder{color:#666}.send-button[data-v-8f6d8b67]{position:absolute;right:16px;bottom:16px;width:40px;height:40px;border:none;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.send-button[data-v-8f6d8b67]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.send-button[data-v-8f6d8b67]:disabled{opacity:.5;cursor:not-allowed}.send-button svg[data-v-8f6d8b67]{font-size:18px}.examples-section[data-v-8f6d8b67]{margin-bottom:48px}.examples-section .examples-grid[data-v-8f6d8b67]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.examples-section .examples-grid .card-with-type[data-v-8f6d8b67]{width:100%;min-width:300px}.examples-section .examples-grid .card-with-type:hover .card-type[data-v-8f6d8b67]{transform:translateY(-1px);box-shadow:0 8px 25px #8297f666}.card-with-type[data-v-8f6d8b67]{position:relative}.card-type[data-v-8f6d8b67]{position:absolute;top:12px;right:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;z-index:1}.config-view[data-v-8f6d8b67]{flex:1;height:100vh;background:#0a0a0a;display:flex;flex-direction:column;position:relative}.config-header-bar[data-v-8f6d8b67]{display:flex;align-items:center;padding:16px 24px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1);gap:16px}.config-header-bar .back-button[data-v-8f6d8b67]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:14px;cursor:pointer;transition:all .2s ease}.config-header-bar .back-button[data-v-8f6d8b67]:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.config-header-bar .config-title[data-v-8f6d8b67]{font-size:20px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.direct-button[data-v-8f6d8b67]{margin-top:20px;padding:12px 24px;border:none;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:16px;cursor:pointer;transition:all .2s ease}.direct-button[data-v-8f6d8b67]:hover{transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CF4phE7J.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Cqz3Q9Ww.js
similarity index 99%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CF4phE7J.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Cqz3Q9Ww.js
index fdc92d0b1f..ad0f2b6185 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CF4phE7J.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Cqz3Q9Ww.js
@@ -1,8 +1,8 @@
-var Gd=Object.defineProperty;var Yd=(n,e,t)=>e in n?Gd(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var be=(n,e,t)=>Yd(n,typeof e!="symbol"?e+"":e,t);import{u as It,r as ne,A as fn,c as Je,B as ot,d as pt,a as k,b as w,e as l,g as Y,i as g,t as S,f as de,w as we,m as Ge,h as ye,F as Ve,q as ze,C as Do,o as vt,D as bt,y as qt,n as Pe,j as ke,l as at,T as Yt,p as $t,E as Jt,G as $d,z as Ze,H as qd,I as Hd,x as td,J as Vd}from"./index-DPEG66sS.js";import{I as V,_ as mt}from"./_plugin-vue_export-helper-CVv1atPb.js";import{s as re,P as tn,u as nd}from"./sidebar-esIRL4mJ.js";import{A as zd,g as Wd,u as Kd,a as Qd}from"./useMessage-CDn_n3DJ.js";import{L as Xd}from"./llm-check-BVkAKrj3.js";import{L as Zd}from"./index-BStkLDtc.js";function Jd(n,e){const{t}=It(),a=ne(!1),r=ne([]),i=ne(!1),o=ne(""),s=ne(!1),c=fn({planType:"simple",title:"",directResponse:!1,steps:[],planId:""}),_=A=>{try{if(!A){Object.assign(c,{planType:"simple",title:"",directResponse:!1,steps:[],planId:""});return}const W=JSON.parse(A);c.planType="simple",c.title=W.title||"",c.directResponse=!1,c.planId=W.planId||"",c.steps=(W.steps||[]).map(y=>{let U="SWEAGENT",X=y.stepRequirement||"";const O=X.match(/^\[([^\]]+)\]/);return O&&(U=O[1],X=X.replace(/^\[[^\]]+\]\s*/,"")),{agentType:U,stepContent:X,terminateColumns:y.terminateColumns||""}})}catch(W){console.warn("Failed to parse JSON content:",W)}},d=()=>{try{const A={planType:c.planType,title:c.title,directResponse:c.directResponse,planId:c.planId,steps:c.steps.map(W=>({stepRequirement:`[${W.agentType}] ${W.stepContent}`,terminateColumns:W.terminateColumns}))};return JSON.stringify(A,null,2)}catch(A){return console.warn("Failed to convert visual data to JSON:",A),n.jsonContent}},p=Je(()=>d()),m=Je(()=>r.value),u=Je(()=>s.value&&!i.value&&r.value.length===0),E=(A,W=20)=>{const y=A.description||"",U=y.length>W?y.substring(0,W)+"...":y;return U?`[${A.name}] ${U}`:`[${A.name}]`},C=A=>{let W=A.description||A.name;return A.tools&&A.tools.length>0&&(W+=`
+var Gd=Object.defineProperty;var Yd=(n,e,t)=>e in n?Gd(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var be=(n,e,t)=>Yd(n,typeof e!="symbol"?e+"":e,t);import{u as It,r as ne,A as fn,c as Je,B as ot,d as pt,a as k,b as w,e as l,g as Y,i as g,t as S,f as de,w as we,m as Ge,h as ye,F as Ve,q as ze,C as Do,o as vt,D as bt,y as qt,n as Pe,j as ke,l as at,T as Yt,p as $t,E as Jt,G as $d,z as Ze,H as qd,I as Hd,x as td,J as Vd}from"./index-D5D9bzxe.js";import{I as V,_ as mt}from"./_plugin-vue_export-helper-v7-Do0bo.js";import{s as re,P as tn,u as nd}from"./sidebar-CTH1WUAT.js";import{A as zd,g as Wd,u as Kd,a as Qd}from"./useMessage-CSrhlJeX.js";import{L as Xd}from"./llm-check-BVkAKrj3.js";import{L as Zd}from"./index-DPmrHTQh.js";function Jd(n,e){const{t}=It(),a=ne(!1),r=ne([]),i=ne(!1),o=ne(""),s=ne(!1),c=fn({planType:"simple",title:"",directResponse:!1,steps:[],planId:""}),_=A=>{try{if(!A){Object.assign(c,{planType:"simple",title:"",directResponse:!1,steps:[],planId:""});return}const W=JSON.parse(A);c.planType="simple",c.title=W.title||"",c.directResponse=!1,c.planId=W.planId||"",c.steps=(W.steps||[]).map(y=>{let U="SWEAGENT",X=y.stepRequirement||"";const O=X.match(/^\[([^\]]+)\]/);return O&&(U=O[1],X=X.replace(/^\[[^\]]+\]\s*/,"")),{agentType:U,stepContent:X,terminateColumns:y.terminateColumns||""}})}catch(W){console.warn("Failed to parse JSON content:",W)}},d=()=>{try{const A={planType:c.planType,title:c.title,directResponse:c.directResponse,planId:c.planId,steps:c.steps.map(W=>({stepRequirement:`[${W.agentType}] ${W.stepContent}`,terminateColumns:W.terminateColumns}))};return JSON.stringify(A,null,2)}catch(A){return console.warn("Failed to convert visual data to JSON:",A),n.jsonContent}},p=Je(()=>d()),m=Je(()=>r.value),u=Je(()=>s.value&&!i.value&&r.value.length===0),E=(A,W=20)=>{const y=A.description||"",U=y.length>W?y.substring(0,W)+"...":y;return U?`[${A.name}] ${U}`:`[${A.name}]`},C=A=>{let W=A.description||A.name;return A.tools&&A.tools.length>0&&(W+=`
`+t("sidebar.availableTools")+`:
`,W+=A.tools.map(y=>`• ${y}`).join(`
-`)),W},R=async()=>{if(!i.value)try{i.value=!0,o.value="";const[A,W]=await Promise.allSettled([zd.getAllAgents(),Wd()]),y=[];let U=!1;if(A.status==="fulfilled"){U=!0;const O=A.value.map(L=>({id:L.name.toUpperCase().replace(/\s+/g,"_"),name:L.name.toUpperCase().replace(/\s+/g,"_"),description:L.description,agentType:L.name,tools:L.availableTools||[]}));y.push(...O)}if(W.status==="fulfilled"){U=!0;const O=W.value.map(L=>({id:L.agentName.toUpperCase().replace(/\s+/g,"_"),name:L.agentName.toUpperCase().replace(/\s+/g,"_"),description:L.agentDescription,agentType:L.agentName,tools:L.availableToolKeys||[]}));y.push(...O)}if(!U)throw new Error(t("sidebar.agentLoadError"));const X=y.filter((O,L,K)=>L===K.findIndex(B=>B.id===O.id));r.value=X,s.value=!0}catch(A){console.error("Failed to load agents:",A),o.value=A instanceof Error?A.message:t("sidebar.agentLoadError"),r.value=[],s.value=!0}finally{i.value=!1}},N=()=>{const A=d();e("update:jsonContent",A)},M=()=>{c.steps.push({agentType:"SWEAGENT",stepContent:"",terminateColumns:""}),N()},T=A=>{c.steps.splice(A,1),N()},x=A=>{if(A>0){const W=c.steps.splice(A,1)[0];c.steps.splice(A-1,0,W),N()}},D=A=>{if(A{e("rollback")},Q=()=>{e("restore")},F=()=>{e("save")},q=()=>{a.value=!a.value},G=()=>{a.value=!1};return ot(()=>n.jsonContent,A=>{_(A)},{immediate:!0}),ot(c,()=>{N()},{deep:!0}),R(),{showJsonPreview:a,parsedData:c,availableAgents:r,isLoadingAgents:i,agentsLoadError:o,hasLoadedAgents:s,formattedJsonOutput:p,agentOptions:m,shouldShowError:u,parseJsonToVisual:_,convertVisualToJson:d,emitJsonUpdate:N,loadAvailableAgents:R,formatAgentDisplayText:E,generateAgentTooltip:C,addStep:M,removeStep:T,moveStepUp:x,moveStepDown:D,handleRollback:P,handleRestore:Q,handleSave:F,toggleJsonPreview:q,closeJsonPreview:G}}const jd={class:"config-section"},eu={class:"section-header"},tu={class:"section-actions"},nu=["disabled","title"],au=["disabled","title"],ru=["disabled"],iu={class:"visual-editor"},ou={class:"plan-basic-info"},su={class:"form-row"},lu={class:"form-label"},cu=["placeholder"],_u={class:"steps-section"},du={class:"steps-header"},uu={class:"form-label"},pu={class:"steps-actions"},mu=["disabled","title"],Eu={key:0,class:"agent-count-badge"},gu={key:1,class:"error-badge"},Su={class:"steps-container"},Tu={class:"step-header"},bu={class:"step-number"},fu={class:"step-actions"},Ru=["onClick","disabled","title"],hu=["onClick","disabled","title"],Cu=["onClick","title"],Nu={class:"step-content"},vu={class:"form-row"},Ou={class:"form-label"},Iu={class:"agent-selector"},Au=["onUpdate:modelValue","disabled"],yu={key:0,disabled:""},Du={key:1,disabled:""},Mu=["value","title"],Lu=["title"],xu=["title"],wu={key:0,class:"error-message"},Pu={class:"form-row"},ku={class:"form-label"},Uu=["onUpdate:modelValue","placeholder"],Fu={class:"form-row"},Bu={class:"form-label"},Gu=["onUpdate:modelValue","placeholder"],Yu={key:0,class:"empty-steps"},$u={class:"plan-id-section"},qu={class:"form-row"},Hu={class:"form-label"},Vu={key:0,class:"json-preview"},zu={class:"preview-header"},Wu={class:"form-label"},Ku={class:"json-code"},Qu={class:"editor-footer"},Xu=pt({__name:"JsonEditor",props:{jsonContent:{},canRollback:{type:Boolean},canRestore:{type:Boolean},isGenerating:{type:Boolean},isExecuting:{type:Boolean},hiddenFields:{default:()=>["currentPlanId","userRequest","rootPlanId"]}},emits:["rollback","restore","save","update:jsonContent"],setup(n,{emit:e}){const t=n,a=e,{showJsonPreview:r,parsedData:i,availableAgents:o,isLoadingAgents:s,agentsLoadError:c,hasLoadedAgents:_,formattedJsonOutput:d,agentOptions:p,shouldShowError:m,loadAvailableAgents:u,formatAgentDisplayText:E,generateAgentTooltip:C,addStep:R,removeStep:N,moveStepUp:M,moveStepDown:T,handleRollback:x,handleRestore:D,handleSave:P,toggleJsonPreview:Q,closeJsonPreview:F}=Jd(t,a),q=G=>{const A=G.target;if(!A)return;A.style.height="auto";const W=20,y=Math.ceil(A.scrollHeight/W),U=4,X=12,O=Math.max(U,Math.min(X,y)),L=O*W;A.style.height=`${L}px`,A.rows=O,y>X?A.style.overflowY="auto":A.style.overflowY="hidden"};return(G,A)=>(w(),k("div",jd,[l("div",eu,[Y(g(V),{icon:"carbon:code",width:"16"}),l("span",null,S(G.$t("sidebar.jsonTemplate")),1),l("div",tu,[l("button",{class:"btn btn-sm",onClick:A[0]||(A[0]=(...W)=>g(x)&&g(x)(...W)),disabled:!G.canRollback,title:G.$t("sidebar.rollback")},[Y(g(V),{icon:"carbon:undo",width:"14"})],8,nu),l("button",{class:"btn btn-sm",onClick:A[1]||(A[1]=(...W)=>g(D)&&g(D)(...W)),disabled:!G.canRestore,title:G.$t("sidebar.restore")},[Y(g(V),{icon:"carbon:redo",width:"14"})],8,au),l("button",{class:"btn btn-primary btn-sm",onClick:A[2]||(A[2]=(...W)=>g(P)&&g(P)(...W)),disabled:G.isGenerating||G.isExecuting},[Y(g(V),{icon:"carbon:save",width:"14"})],8,ru)])]),l("div",iu,[l("div",ou,[l("div",su,[l("label",lu,S(G.$t("sidebar.title")),1),we(l("input",{"onUpdate:modelValue":A[3]||(A[3]=W=>g(i).title=W),type:"text",class:"form-input",placeholder:G.$t("sidebar.titlePlaceholder")},null,8,cu),[[Ge,g(i).title]])])]),l("div",_u,[l("div",du,[l("label",uu,S(G.$t("sidebar.tasks")),1),l("div",pu,[l("button",{onClick:A[4]||(A[4]=(...W)=>g(u)&&g(u)(...W)),class:"btn btn-xs",disabled:g(s),title:G.$t("sidebar.refreshAgents")},[Y(g(V),{icon:"carbon:reset",width:"12"})],8,mu),g(_)&&g(o).length>0?(w(),k("span",Eu,S(g(o).length)+" agents ",1)):de("",!0),g(m)?(w(),k("span",gu,[Y(g(V),{icon:"carbon:warning",width:"12"}),A[12]||(A[12]=ye(" Error "))])):de("",!0)])]),l("div",Su,[(w(!0),k(Ve,null,ze(g(i).steps,(W,y)=>(w(),k("div",{key:y,class:"step-item"},[l("div",Tu,[l("span",bu,S(G.$t("sidebar.subtask"))+" "+S(y+1),1),l("div",fu,[l("button",{onClick:U=>g(M)(y),disabled:y===0,class:"btn btn-xs",title:G.$t("sidebar.moveUp")},[Y(g(V),{icon:"carbon:chevron-up",width:"12"})],8,Ru),l("button",{onClick:U=>g(T)(y),disabled:y===g(i).steps.length-1,class:"btn btn-xs",title:G.$t("sidebar.moveDown")},[Y(g(V),{icon:"carbon:chevron-down",width:"12"})],8,hu),l("button",{onClick:U=>g(N)(y),class:"btn btn-xs btn-danger",title:G.$t("sidebar.removeStep")},[Y(g(V),{icon:"carbon:trash-can",width:"12"})],8,Cu)])]),l("div",Nu,[l("div",vu,[l("label",Ou,S(G.$t("sidebar.agent")),1),l("div",Iu,[we(l("select",{"onUpdate:modelValue":U=>W.agentType=U,class:"form-select agent-select",disabled:g(s)||g(m)},[g(s)?(w(),k("option",yu,S(G.$t("sidebar.loading")),1)):g(m)?(w(),k("option",Du,S(G.$t("sidebar.agentLoadError")),1)):(w(!0),k(Ve,{key:2},ze(g(p),U=>(w(),k("option",{key:U.id,value:U.id,title:g(C)(U)},S(g(E)(U)),9,Mu))),128))],8,Au),[[Do,W.agentType]]),g(m)?(w(),k("button",{key:0,onClick:A[5]||(A[5]=(...U)=>g(u)&&g(u)(...U)),class:"btn btn-sm btn-danger",title:G.$t("sidebar.retryLoadAgents")},[Y(g(V),{icon:"carbon:warning",width:"14"}),ye(" "+S(G.$t("sidebar.retry")),1)],8,Lu)):(w(),k("button",{key:1,onClick:A[6]||(A[6]=(...U)=>g(R)&&g(R)(...U)),class:"btn btn-sm btn-add-step",title:G.$t("sidebar.addStep")},[Y(g(V),{icon:"carbon:add",width:"14"})],8,xu))]),g(m)&&g(c)?(w(),k("div",wu,[Y(g(V),{icon:"carbon:warning",width:"12"}),ye(" "+S(g(c)),1)])):de("",!0)]),l("div",Pu,[l("label",ku,S(G.$t("sidebar.stepRequirement")),1),we(l("textarea",{"onUpdate:modelValue":U=>W.stepContent=U,class:"form-textarea auto-resize",placeholder:G.$t("sidebar.stepRequirementPlaceholder"),rows:"4",onInput:A[7]||(A[7]=U=>q(U))},null,40,Uu),[[Ge,W.stepContent]])]),l("div",Fu,[l("label",Bu,S(G.$t("sidebar.terminateColumns")),1),we(l("input",{"onUpdate:modelValue":U=>W.terminateColumns=U,type:"text",class:"form-input",placeholder:G.$t("sidebar.terminateColumnsPlaceholder")},null,8,Gu),[[Ge,W.terminateColumns]])])])]))),128)),g(i).steps.length===0?(w(),k("div",Yu,[Y(g(V),{icon:"carbon:add-alt",width:"32",class:"empty-icon"}),l("p",null,S(G.$t("sidebar.noSteps")),1),l("button",{onClick:A[8]||(A[8]=(...W)=>g(R)&&g(R)(...W)),class:"btn btn-primary"},[Y(g(V),{icon:"carbon:add",width:"14"}),ye(" "+S(G.$t("sidebar.addFirstStep")),1)])])):de("",!0)])]),l("div",$u,[l("div",qu,[l("label",Hu,S(G.$t("sidebar.planId")),1),we(l("input",{"onUpdate:modelValue":A[9]||(A[9]=W=>g(i).planId=W),type:"text",class:"form-input",placeholder:"planTemplate-1756109892045"},null,512),[[Ge,g(i).planId]])])]),g(r)?(w(),k("div",Vu,[l("div",zu,[l("label",Wu,S(G.$t("sidebar.jsonPreview")),1),l("button",{onClick:A[10]||(A[10]=(...W)=>g(F)&&g(F)(...W)),class:"btn btn-xs"},[Y(g(V),{icon:"carbon:close",width:"12"})])]),l("pre",Ku,S(g(d)),1)])):de("",!0),l("div",Qu,[l("button",{onClick:A[11]||(A[11]=(...W)=>g(Q)&&g(Q)(...W)),class:"btn btn-sm btn-secondary"},[Y(g(V),{icon:"carbon:code",width:"14"}),ye(" "+S(g(r)?G.$t("sidebar.hideJson"):G.$t("sidebar.showJson")),1)])])])]))}}),Zu=mt(Xu,[["__scopeId","data-v-f0f87323"]]),Ju={class:"sidebar-content"},ju={class:"sidebar-content-header"},ep={class:"sidebar-content-title"},tp={class:"tab-switcher"},np=["disabled"],ap={key:0,class:"tab-content"},rp={class:"new-task-section"},ip={class:"sidebar-content-list"},op={key:0,class:"loading-state"},sp={key:1,class:"error-state"},lp={key:2,class:"empty-state"},cp=["onClick"],_p={class:"task-icon"},dp={class:"task-details"},up={class:"task-title"},pp={class:"task-preview"},mp={class:"task-time"},Ep={class:"task-actions"},gp=["title","onClick"],Sp={key:1,class:"tab-content config-tab"},Tp={key:0,class:"config-container"},bp={class:"template-info-header"},fp={class:"template-info"},Rp={class:"template-id"},hp={class:"config-section"},Cp={class:"section-header"},Np={class:"generator-content"},vp=["placeholder"],Op={class:"generator-actions"},Ip=["disabled"],Ap=["disabled"],yp={class:"config-section"},Dp={class:"section-header"},Mp={class:"execution-content"},Lp={class:"params-input-group"},xp={class:"params-help-text"},wp={class:"params-input-container"},Pp=["placeholder"],kp=["title"],Up={class:"api-url-display"},Fp={class:"api-url-label"},Bp={class:"api-url"},Gp={class:"api-url-display"},Yp={class:"api-url-label"},$p=["disabled"],qp=["title"],Hp=pt({__name:"index",emits:["planExecutionRequested"],setup(n,{expose:e,emit:t}){const{t:a}=It(),r=ne(80),i=ne(!1),o=ne(0),s=ne(0),c=t,_=async()=>{try{const T=await re.saveTemplate();T!=null&&T.duplicate?alert(a("sidebar.saveCompleted",{message:T.message,versionCount:T.versionCount})):T!=null&&T.saved?alert(a("sidebar.saveSuccess",{message:T.message,versionCount:T.versionCount})):T!=null&&T.message&&alert(a("sidebar.saveStatus",{message:T.message}))}catch(T){console.error("Failed to save plan modifications:",T),alert(T.message||a("sidebar.saveFailed"))}},d=async()=>{var T;try{await re.generatePlan(),alert(a("sidebar.generateSuccess",{templateId:((T=re.selectedTemplate)==null?void 0:T.id)??a("sidebar.unknown")}))}catch(x){console.error("Failed to generate plan:",x),alert(a("sidebar.generateFailed")+": "+x.message)}},p=async()=>{try{await re.updatePlan(),alert(a("sidebar.updateSuccess"))}catch(T){console.error("Failed to update plan:",T),alert(a("sidebar.updateFailed")+": "+T.message)}},m=async()=>{console.log("[Sidebar] handleExecutePlan called");try{const T=re.preparePlanExecution();if(!T){console.log("[Sidebar] No plan data available, returning");return}console.log("[Sidebar] Triggering plan execution request:",T),console.log("[Sidebar] Emitting planExecutionRequested event"),c("planExecutionRequested",T),console.log("[Sidebar] Event emitted")}catch(T){console.error("Error executing plan:",T),alert(a("sidebar.executeFailed")+": "+T.message)}finally{re.finishPlanExecution()}},u=T=>{if(isNaN(T.getTime()))return console.warn("Invalid date received:",T),a("time.unknown");const D=new Date().getTime()-T.getTime(),P=Math.floor(D/6e4),Q=Math.floor(D/36e5),F=Math.floor(D/864e5);return P<1?a("time.now"):P<60?a("time.minuteAgo",{count:P}):Q<24?a("time.hourAgo",{count:Q}):F<30?a("time.dayAgo",{count:F}):T.toLocaleDateString("zh-CN")},E=(T,x)=>!T||T.length<=x?T:T.substring(0,x)+"...",C=T=>{i.value=!0,o.value=T.clientX,s.value=r.value,document.addEventListener("mousemove",R),document.addEventListener("mouseup",N),document.body.style.cursor="col-resize",document.body.style.userSelect="none",T.preventDefault()},R=T=>{if(!i.value)return;const x=window.innerWidth,P=(T.clientX-o.value)/x*100;let Q=s.value+P;Q=Math.max(15,Math.min(100,Q)),r.value=Q},N=()=>{i.value=!1,document.removeEventListener("mousemove",R),document.removeEventListener("mouseup",N),document.body.style.cursor="",document.body.style.userSelect="",localStorage.setItem("sidebarWidth",r.value.toString())},M=()=>{r.value=80,localStorage.setItem("sidebarWidth","80")};return vt(()=>{re.loadPlanTemplateList();const T=localStorage.getItem("sidebarWidth");T&&(r.value=parseFloat(T))}),bt(()=>{document.removeEventListener("mousemove",R),document.removeEventListener("mouseup",N)}),e({loadPlanTemplateList:re.loadPlanTemplateList,toggleSidebar:re.toggleSidebar,currentPlanTemplateId:re.currentPlanTemplateId}),(T,x)=>(w(),k("div",{class:Pe(["sidebar-wrapper",{"sidebar-wrapper-collapsed":g(re).isCollapsed}]),style:qt({width:r.value+"%"})},[l("div",Ju,[l("div",ju,[l("div",ep,S(T.$t("sidebar.title")),1)]),l("div",tp,[l("button",{class:Pe(["tab-button",{active:g(re).currentTab==="list"}]),onClick:x[0]||(x[0]=D=>g(re).switchToTab("list"))},[Y(g(V),{icon:"carbon:list",width:"16"}),ye(" "+S(T.$t("sidebar.templateList")),1)],2),l("button",{class:Pe(["tab-button",{active:g(re).currentTab==="config"}]),onClick:x[1]||(x[1]=D=>g(re).switchToTab("config")),disabled:!g(re).selectedTemplate},[Y(g(V),{icon:"carbon:settings",width:"16"}),ye(" "+S(T.$t("sidebar.configuration")),1)],10,np)]),g(re).currentTab==="list"?(w(),k("div",ap,[l("div",rp,[l("button",{class:"new-task-btn",onClick:x[2]||(x[2]=D=>g(re).createNewTemplate())},[Y(g(V),{icon:"carbon:add",width:"16"}),ye(" "+S(T.$t("sidebar.newPlan"))+" ",1),x[9]||(x[9]=l("span",{class:"shortcut"},"⌘ K",-1))])]),l("div",ip,[g(re).isLoading?(w(),k("div",op,[Y(g(V),{icon:"carbon:circle-dash",width:"20",class:"spinning"}),l("span",null,S(T.$t("sidebar.loading")),1)])):g(re).errorMessage?(w(),k("div",sp,[Y(g(V),{icon:"carbon:warning",width:"20"}),l("span",null,S(g(re).errorMessage),1),l("button",{onClick:x[3]||(x[3]=(...D)=>g(re).loadPlanTemplateList&&g(re).loadPlanTemplateList(...D)),class:"retry-btn"},S(T.$t("sidebar.retry")),1)])):g(re).planTemplateList.length===0?(w(),k("div",lp,[Y(g(V),{icon:"carbon:document",width:"32"}),l("span",null,S(T.$t("sidebar.noTemplates")),1)])):(w(!0),k(Ve,{key:3},ze(g(re).sortedTemplates,D=>(w(),k("div",{key:D.id,class:Pe(["sidebar-content-list-item",{"sidebar-content-list-item-active":D.id===g(re).currentPlanTemplateId}]),onClick:P=>g(re).selectTemplate(D)},[l("div",_p,[Y(g(V),{icon:"carbon:document",width:"20"})]),l("div",dp,[l("div",up,S(D.title||T.$t("sidebar.unnamedPlan")),1),l("div",pp,S(E(D.description||T.$t("sidebar.noDescription"),40)),1)]),l("div",mp,S(u(g(re).parseDateTime(D.updateTime||D.createTime))),1),l("div",Ep,[l("button",{class:"delete-task-btn",title:T.$t("sidebar.deleteTemplate"),onClick:ke(P=>g(re).deleteTemplate(D),["stop"])},[Y(g(V),{icon:"carbon:close",width:"16"})],8,gp)])],10,cp))),128))])])):g(re).currentTab==="config"?(w(),k("div",Sp,[g(re).selectedTemplate?(w(),k("div",Tp,[l("div",bp,[l("div",fp,[l("h3",null,S(g(re).selectedTemplate.title||T.$t("sidebar.unnamedPlan")),1),l("span",Rp,"ID: "+S(g(re).selectedTemplate.id),1)]),l("button",{class:"back-to-list-btn",onClick:x[4]||(x[4]=D=>g(re).switchToTab("list"))},[Y(g(V),{icon:"carbon:arrow-left",width:"16"})])]),l("div",hp,[l("div",Cp,[Y(g(V),{icon:"carbon:generate",width:"16"}),l("span",null,S(T.$t("sidebar.planGenerator")),1)]),l("div",Np,[we(l("textarea",{"onUpdate:modelValue":x[5]||(x[5]=D=>g(re).generatorPrompt=D),class:"prompt-input",placeholder:T.$t("sidebar.generatorPlaceholder"),rows:"3"},null,8,vp),[[Ge,g(re).generatorPrompt]]),l("div",Op,[l("button",{class:"btn btn-primary btn-sm",onClick:d,disabled:g(re).isGenerating||!g(re).generatorPrompt.trim()},[Y(g(V),{icon:g(re).isGenerating?"carbon:circle-dash":"carbon:generate",width:"14",class:Pe({spinning:g(re).isGenerating})},null,8,["icon","class"]),ye(" "+S(g(re).isGenerating?T.$t("sidebar.generating"):T.$t("sidebar.generatePlan")),1)],8,Ip),l("button",{class:"btn btn-secondary btn-sm",onClick:p,disabled:g(re).isGenerating||!g(re).generatorPrompt.trim()||!g(re).jsonContent.trim()},[Y(g(V),{icon:"carbon:edit",width:"14"}),ye(" "+S(T.$t("sidebar.updatePlan")),1)],8,Ap)])])]),Y(Zu,{"json-content":g(re).jsonContent,"can-rollback":g(re).canRollback,"can-restore":g(re).canRestore,"is-generating":g(re).isGenerating,"is-executing":g(re).isExecuting,onRollback:g(re).rollbackVersion,onRestore:g(re).restoreVersion,onSave:_,"onUpdate:jsonContent":x[6]||(x[6]=D=>g(re).jsonContent=D)},null,8,["json-content","can-rollback","can-restore","is-generating","is-executing","onRollback","onRestore"]),l("div",yp,[l("div",Dp,[Y(g(V),{icon:"carbon:play",width:"16"}),l("span",null,S(T.$t("sidebar.executionController")),1)]),l("div",Mp,[l("div",Lp,[l("label",null,S(T.$t("sidebar.executionParams")),1),l("div",xp,S(T.$t("sidebar.executionParamsHelp")),1),l("div",wp,[we(l("input",{"onUpdate:modelValue":x[7]||(x[7]=D=>g(re).executionParams=D),class:"params-input",placeholder:T.$t("sidebar.executionParamsPlaceholder")},null,8,Pp),[[Ge,g(re).executionParams]]),l("button",{class:"clear-params-btn",onClick:x[8]||(x[8]=(...D)=>g(re).clearExecutionParams&&g(re).clearExecutionParams(...D)),title:T.$t("sidebar.clearParams")},[Y(g(V),{icon:"carbon:close",width:"12"})],8,kp)])]),l("div",Up,[l("span",Fp,S(T.$t("sidebar.apiUrl"))+":",1),l("code",Bp,S(g(re).computedApiUrl),1)]),l("div",Gp,[l("span",Yp,S(T.$t("sidebar.statusApiUrl"))+":",1),x[10]||(x[10]=l("code",{class:"api-url"},"/api/executor/details/{planId}",-1))]),l("button",{class:"btn btn-primary execute-btn",onClick:m,disabled:g(re).isExecuting||g(re).isGenerating},[Y(g(V),{icon:g(re).isExecuting?"carbon:circle-dash":"carbon:play",width:"16",class:Pe({spinning:g(re).isExecuting})},null,8,["icon","class"]),ye(" "+S(g(re).isExecuting?T.$t("sidebar.executing"):T.$t("sidebar.executePlan")),1)],8,$p)])])])):de("",!0)])):de("",!0)]),l("div",{class:"sidebar-resizer",onMousedown:C,onDblclick:M,title:T.$t("sidebar.resizeHint")},x[11]||(x[11]=[l("div",{class:"resizer-line"},null,-1)]),40,qp)],6))}}),Vp=mt(Hp,[["__scopeId","data-v-fa866e8f"]]);class jt{static async handleResponse(e){if(!e.ok)try{const t=await e.json();throw new Error(t.message||`API request failed: ${e.status}`)}catch{throw new Error(`API request failed: ${e.status} ${e.statusText}`)}return e}static async getMemories(){try{const e=await fetch(`${this.BASE_URL}`);return await(await this.handleResponse(e)).json()}catch(e){throw console.error("Failed to get memory list:",e),e}}static async getMemory(e){try{const t=await fetch(`${this.BASE_URL}/single?memoryId=${e}`);return await(await this.handleResponse(t)).json()}catch(t){throw console.error("Failed to get memory :",t),t}}static async update(e,t){try{const a=await fetch(`${this.BASE_URL}/update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({memoryId:e,memoryName:t})});return await(await this.handleResponse(a)).json()}catch(a){throw console.error("Failed to update memory:",a),a}}static async delete(e){try{const t=await fetch(`${this.BASE_URL}/delete?memoryId=${e}`);await this.handleResponse(t)}catch(t){throw console.error("Failed to update memory:",t),t}}}be(jt,"BASE_URL","/api/memories");class zp{constructor(){be(this,"isCollapsed",!1);be(this,"selectMemoryId","");be(this,"loadMessages",()=>{});be(this,"intervalId")}toggleSidebar(){this.isCollapsed=!this.isCollapsed,this.isCollapsed?(this.loadMessages(),this.intervalId=window.setInterval(()=>{this.loadMessages()},3e3)):clearInterval(this.intervalId)}selectMemory(e){this.toggleSidebar(),this.selectMemoryId=e}setMemory(e){this.selectMemoryId=e}defaultMemoryId(){this.selectMemoryId=this.generateRandomId()}clearMemoryId(){this.selectMemoryId=""}generateRandomId(){return Math.random().toString(36).substring(2,10)}setLoadMessages(e){this.loadMessages=e}}const ut=fn(new zp),Wp={key:0,class:"app-container"},Kp={class:"app-content"},Qp={class:"header"},Xp={class:"relative"},Zp={class:"title-edit-group"},Jp={id:"main-title",class:"main-title"},jp={key:0,id:"title-edit-container",class:"title-edit-container"},em={class:"search-bar"},tm={class:"search-container"},nm=["placeholder"],am={class:"message-list",id:"message-list"},rm={class:"message-header"},im={class:"message-content"},om={class:"sender-info"},sm=["onClick"],lm={class:"sender-name"},cm=["onClick"],_m={class:"action-buttons"},dm=["onClick"],um={class:"action-buttons"},pm=["onClick"],mm={class:"message-preview"},Em={class:"preview-line"},gm={key:0,class:"preview-line",style:{opacity:"0.8"}},Sm={class:"message-meta"},Tm={class:"message-id"},bm={class:"meta-right"},fm={key:0,class:"unread-count"},Rm={class:"message-time"},hm=["id"],Cm={style:{display:"flex","flex-direction":"column",gap:"0.75rem"}},Nm={class:"bubble-avatar"},vm={class:"bubble-content"},Om={class:"bubble-text"},Im={key:0,class:"empty-state"},Am={class:"modal-content"},ym={class:"modal-header"},Dm={class:"modal-title"},Mm=["placeholder"],Lm={id:"name-char-count",class:"char-count",style:{"text-align":"right",display:"block","margin-top":"0.25rem"}},xm={class:"modal-footer"},wm={class:"modal-content"},Pm={class:"modal-header"},km={class:"modal-title"},Um={class:"state-text",id:"delete-message"},Fm={class:"modal-footer"},Bm=pt({__name:"index",emits:["memory-selected"],setup(n,{emit:e}){const t=ne(!1),a=ne(""),r=ne([]),i=ne([]),o=ne(!1),s=ne(null),c=ne(""),_=ne(!1),d=ne(null),p=new Map,m=e;vt(()=>{ut.setLoadMessages(u)});const u=async()=>{try{const F=await jt.getMemories();r.value?r.value=F.map(q=>({...q,expanded:p.has(q.memoryId)?p.get(q.memoryId):!1})):r.value=F.map(q=>({...q,expanded:!1})),i.value=[...r.value],R()}catch(F){console.error("error:",F),r.value=[],i.value=[]}},E=F=>{ut.selectMemory(F),m("memory-selected")},C=F=>{const q=typeof F=="string"?parseInt(F,10):F;return isNaN(q)||q<=0?"unknow time":new Date(q.toString().length===13?q:q*1e3).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).replace(","," ")},R=()=>{const F=a.value.toLowerCase().trim();if(!F){i.value=[...r.value];return}i.value=r.value.filter(q=>{const G=q.memoryName.toLowerCase().includes(F),A=q.memoryId.toLowerCase().includes(F),W=q.messages.some(y=>y.text.toLowerCase().includes(F));return G||A||W})},N=(F,q)=>{s.value=F,c.value=q,o.value=!0},M=()=>{o.value=!1,s.value=null},T=async()=>{if(!s.value)return;const F=c.value.trim()||"unknow name",q=r.value.findIndex(G=>G.memoryId===s.value);if(q!==-1){const G=r.value[q];try{const A=await jt.update(G.memoryId,F);A.messages||(A.messages=[]),r.value[q]={...A,expanded:G.expanded},R(),o.value=!1}catch(A){console.error("error:",A)}}},x=F=>{const q=r.value.find(G=>G.memoryId===F);if(q){q.expanded=!q.expanded,p.set(F,q.expanded);const G=i.value.findIndex(A=>A.memoryId===F);G!==-1&&(i.value[G]={...q})}},D=F=>{d.value=F,_.value=!0},P=()=>{_.value=!1,d.value=null},Q=async()=>{if(d.value)try{await jt.delete(d.value),r.value=r.value.filter(F=>F.memoryId!==d.value),R(),r.value.length===0&&ut.clearMemoryId(),_.value=!1,d.value=null}catch(F){console.error("error:",F)}};return(F,q)=>(w(),at(Jt,{to:"body"},[Y(Yt,{name:"modal"},{default:$t(()=>[g(ut).isCollapsed?(w(),k("div",Wp,[l("div",Kp,[l("div",Qp,[l("div",Xp,[l("div",Zp,[l("h1",Jp,[l("span",null,S(F.$t("memory.title")),1)])]),t.value?(w(),k("div",jp)):de("",!0)]),l("button",{class:"close-btn",onClick:q[0]||(q[0]=G=>g(ut).toggleSidebar())},[Y(g(V),{icon:"carbon:close"})])]),l("div",em,[l("div",tm,[Y(g(V),{class:"search-container-icon",icon:"carbon:search"}),we(l("input",{type:"text",placeholder:F.$t("memory.searchPlaceholder"),class:"search-input","onUpdate:modelValue":q[1]||(q[1]=G=>a.value=G),onInput:R},null,40,nm),[[Ge,a.value]])])]),l("div",am,[l("div",null,[(w(!0),k(Ve,null,ze(i.value,G=>(w(),k("div",{class:Pe(["message-item",{expanded:G.expanded}]),key:G.memoryId},[l("div",rm,[l("div",im,[l("div",om,[l("div",{class:"sender-div",onClick:ke(A=>E(G.memoryId),["stop"])},[l("h3",lm,S(G.memoryName),1)],8,sm),l("div",{class:"toggle-container",onClick:ke(A=>N(G.memoryId,G.memoryName),["stop"])},[Y(g(V),{icon:"carbon:edit",class:"edit-btn"})],8,cm),l("div",_m,[l("button",{class:"delete-btn",onClick:ke(A=>x(G.memoryId),["stop"])},[Y(g(V),{id:"toggle-"+G.memoryId,icon:"carbon:chevron-down",class:"down-btn"},null,8,["id"])],8,dm)]),l("div",um,[l("button",{class:"delete-btn",onClick:ke(A=>D(G.memoryId),["stop"])},[Y(g(V),{icon:"carbon:delete"})],8,pm)])]),l("div",mm,[l("p",Em,S(G.messages.length>0?G.messages[0].text:"none message"),1),G.messages.length>1?(w(),k("p",gm,S(G.messages[1].text),1)):de("",!0)]),l("div",Sm,[l("span",Tm,"ID: "+S(G.memoryId),1),l("div",bm,[G.messages.length>0?(w(),k("span",fm,S(G.messages.length)+" "+S(F.$t("memory.size")),1)):de("",!0),l("span",Rm,S(C(G.createTime)),1)])])])]),G.expanded?(w(),k("div",{key:0,id:"content-"+G.memoryId,class:"expanded-content"},[l("div",Cm,[(w(!0),k(Ve,null,ze(G.messages,(A,W)=>(w(),k("div",{class:"message-bubble",key:W},[l("div",Nm,S(A.messageType),1),l("div",vm,[l("p",Om,S(A.text),1)])]))),128))])],8,hm)):de("",!0)],2))),128))]),i.value.length===0&&a.value?(w(),k("div",Im,q[3]||(q[3]=[l("p",{class:"state-text"},"none message",-1)]))):de("",!0)]),o.value?(w(),k("div",{key:0,id:"name-edit-modal",class:"modal-overlay",onClick:ke(M,["self"])},[l("div",Am,[l("div",ym,[l("h3",Dm,S(F.$t("memory.changeName")),1),we(l("input",{type:"text","onUpdate:modelValue":q[2]||(q[2]=G=>c.value=G),class:"edit-input",placeholder:F.$t("memory.newNamePlaceholder")},null,8,Mm),[[Ge,c.value]]),l("span",Lm,S(c.value.length),1)]),l("div",xm,[l("button",{id:"cancel-name",class:"modal-btn cancel-btn",onClick:M},S(F.$t("memory.cancel")),1),l("button",{id:"save-name",class:"modal-btn confirm-btn",onClick:T},S(F.$t("memory.save")),1)])])])):de("",!0),_.value?(w(),k("div",{key:1,id:"delete-modal",class:"modal-overlay",onClick:ke(P,["self"])},[l("div",wm,[l("div",Pm,[l("h3",km,S(F.$t("memory.deleteHint")),1),l("p",Um,S(F.$t("memory.deleteHintPrefix"))+" "+S(d.value)+" "+S(F.$t("memory.deleteHintSuffix")),1)]),l("div",Fm,[l("button",{id:"cancel-delete",class:"modal-btn cancel-btn",onClick:P},S(F.$t("memory.cancel")),1),l("button",{id:"confirm-delete",class:"modal-btn delete-btn-confirm",onClick:Q},S(F.$t("memory.delete")),1)])])])):de("",!0)])])):de("",!0)]),_:1})]))}}),Gm=mt(Bm,[["__scopeId","data-v-ab7beb02"]]);class Mo{static async sendMessage(e){return Xd.withLlmCheck(async()=>{const t=await fetch(`${this.BASE_URL}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`API request failed: ${t.status}`);return await t.json()})}}be(Mo,"BASE_URL","/api/executor");class Lo{static async getDetails(e){try{const t=await fetch(`${this.BASE_URL}/details/${e}`);if(t.status===404)return null;if(!t.ok){const i=await t.text();throw new Error(`Failed to get detailed information: ${t.status} - ${i}`)}const a=await t.text(),r=JSON.parse(a);return r&&typeof r=="object"&&!r.currentPlanId&&(r.currentPlanId=e),r}catch(t){return console.error("[CommonApiService] Failed to get plan details:",t),{currentPlanId:e,status:"failed",message:t instanceof Error?t.message:"Failed to save, please retry"}}}static async submitFormInput(e,t){const a=await fetch(`${this.BASE_URL}/submit-input/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let i;try{i=await a.json()}catch{i={message:`Failed to submit form input: ${a.status}`}}throw new Error(i.message||`Failed to submit form input: ${a.status}`)}const r=a.headers.get("content-type");return r&&r.indexOf("application/json")!==-1?await a.json():{success:!0}}static async getAllPrompts(){try{const e=await fetch(this.BASE_URL);return await(await this.handleResponse(e)).json()}catch(e){throw console.error("Failed to get Prompt list:",e),e}}static async handleResponse(e){if(!e.ok)try{const t=await e.json();throw new Error(t.message||`API request failed: ${e.status}`)}catch{throw new Error(`API request failed: ${e.status} ${e.statusText}`)}return e}}be(Lo,"BASE_URL","/api/executor");const Lt=class Lt{constructor(){be(this,"POLL_INTERVAL",5e3);be(this,"state",fn({activePlanId:null,lastSequenceSize:0,isPolling:!1,pollTimer:null}));be(this,"callbacks",{});be(this,"planExecutionCache",new Map);be(this,"uiStateCache",new Map);console.log("[PlanExecutionManager] Initialized with callback-based event system")}getCachedPlanRecord(e){return this.planExecutionCache.get(e)}getCachedUIState(e){return this.uiStateCache.get(e)}setCachedUIState(e,t){this.uiStateCache.set(e,t),console.log(`[PlanExecutionManager] Cached UI state for rootPlanId: ${e}`)}getAllCachedRecords(){return new Map(this.planExecutionCache)}hasCachedPlanRecord(e){return this.planExecutionCache.has(e)}setCachedPlanRecord(e,t){this.planExecutionCache.set(e,t),console.log(`[PlanExecutionManager] Cached plan execution record for rootPlanId: ${e}`)}clearCachedPlanRecord(e){const t=this.planExecutionCache.delete(e);return t&&console.log(`[PlanExecutionManager] Cleared cached plan execution record for rootPlanId: ${e}`),t}clearAllCachedRecords(){const e=this.planExecutionCache.size,t=this.uiStateCache.size;this.planExecutionCache.clear(),this.uiStateCache.clear(),console.log(`[PlanExecutionManager] Cleared all caches - Plans: ${e}, UI States: ${t}`)}static getInstance(){return Lt.instance||(Lt.instance=new Lt),Lt.instance}getActivePlanId(){return this.state.activePlanId}getState(){return this.state}setEventCallbacks(e){this.callbacks={...this.callbacks,...e},console.log("[PlanExecutionManager] Event callbacks set:",Object.keys(e))}async handleUserMessageSendRequested(e){if(this.validateAndPrepareUIForNewRequest(e))try{if(await this.sendUserMessageAndSetPlanId(e),this.state.activePlanId)this.initiatePlanExecutionSequence(e,this.state.activePlanId);else throw new Error("Failed to get valid plan ID")}catch(t){console.error("[PlanExecutionManager] Failed to send user message:",t);const a=this.state.activePlanId??"error";this.setCachedUIState(a,{enabled:!0}),this.emitChatInputUpdateState(a),this.state.activePlanId=null}}handlePlanExecutionRequested(e,t){console.log("[PlanExecutionManager] Received plan execution request:",{planId:e,query:t}),e?(this.state.activePlanId=e,this.initiatePlanExecutionSequence(t??"Execute Plan",e)):console.error("[PlanExecutionManager] Invalid plan execution request: missing planId")}handleCachedPlanExecution(e,t){const a=this.getCachedPlanRecord(e);return a!=null&&a.currentPlanId?(console.log(`[PlanExecutionManager] Found cached plan execution record for rootPlanId: ${e}`),this.handlePlanExecutionRequested(a.currentPlanId,t),!0):(console.log(`[PlanExecutionManager] No cached plan execution record found for rootPlanId: ${e}`),!1)}validateAndPrepareUIForNewRequest(e){if(!e)return console.warn("[PlanExecutionManager] Query is empty"),!1;if(this.state.activePlanId)return!1;this.emitChatInputClear();const t=this.state.activePlanId??"ui-state";return this.setCachedUIState(t,{enabled:!1,placeholder:"Processing..."}),this.emitChatInputUpdateState(t),!0}async sendUserMessageAndSetPlanId(e){try{const t=await Mo.sendMessage({input:e});if(t!=null&&t.planId)return this.state.activePlanId=t.planId,t;if(t!=null&&t.planTemplateId)return this.state.activePlanId=t.planTemplateId,{...t,planId:t.planTemplateId};throw console.error("[PlanExecutionManager] Failed to get planId from response:",t),new Error("Failed to get valid planId from API response")}catch(t){throw console.error("[PlanExecutionManager] API call failed:",t),t}}initiatePlanExecutionSequence(e,t){console.log(`[PlanExecutionManager] Starting plan execution sequence for query: "${e}", planId: ${t}`);const a=t;this.emitDialogRoundStart(a),this.startPolling()}handlePlanCompletion(e){this.emitPlanCompleted(e.rootPlanId??""),this.state.lastSequenceSize=0,this.stopPolling();try{setTimeout(async()=>{if(this.state.activePlanId)try{await tn.deletePlanTemplate(this.state.activePlanId),console.log(`[PlanExecutionManager] Plan template ${this.state.activePlanId} deleted successfully`)}catch(t){console.log(`Delete plan execution record failed: ${t.message}`)}},5e3)}catch(t){console.log(`Delete plan execution record failed: ${t.message}`)}e.completed&&(this.state.activePlanId=null,this.emitChatInputUpdateState(e.rootPlanId??""))}handlePlanError(e){this.emitPlanError(e.message??""),this.state.lastSequenceSize=0,this.stopPolling();try{setTimeout(async()=>{if(this.state.activePlanId)try{await tn.deletePlanTemplate(this.state.activePlanId),console.log(`[PlanExecutionManager] Plan template ${this.state.activePlanId} deleted successfully`)}catch(t){console.log(`Delete plan execution record failed: ${t.message}`)}},5e3)}catch(t){console.log(`Delete plan execution record failed: ${t.message}`)}}async pollPlanStatus(){if(this.state.activePlanId){if(this.state.isPolling){console.log("[PlanExecutionManager] Previous polling still in progress, skipping");return}try{this.state.isPolling=!0;const e=await this.getPlanDetails(this.state.activePlanId);if(!e){console.warn("[PlanExecutionManager] No details received from API");return}if(e.status&&e.status==="failed"){this.handlePlanError(e);return}if(e.rootPlanId&&this.setCachedPlanRecord(e.rootPlanId,e),!e.steps||e.steps.length===0){console.log("[PlanExecutionManager] Simple response without steps detected, handling as completed"),this.emitPlanUpdate(e.rootPlanId??""),this.handlePlanCompletion(e);return}this.emitPlanUpdate(e.rootPlanId??""),e.completed&&this.handlePlanCompletion(e)}catch(e){console.error("[PlanExecutionManager] Failed to poll plan status:",e)}finally{this.state.isPolling=!1}}}async getPlanDetails(e){try{const t=await Lo.getDetails(e);return t!=null&&t.rootPlanId&&(this.planExecutionCache.set(t.rootPlanId,t),console.log(`[PlanExecutionManager] Cached plan execution record for rootPlanId: ${t.rootPlanId}`)),t}catch(t){return console.error("[PlanExecutionManager] Failed to get plan details:",t),{currentPlanId:e,status:"failed",message:t instanceof Error?t.message:"Failed to get plan"}}}startPolling(){this.state.pollTimer&&clearInterval(this.state.pollTimer),this.state.pollTimer=window.setInterval(()=>{this.pollPlanStatus()},this.POLL_INTERVAL),console.log("[PlanExecutionManager] Started polling")}async pollPlanStatusImmediately(){console.log("[PlanExecutionManager] Polling plan status immediately"),await this.pollPlanStatus()}stopPolling(){this.state.pollTimer&&(clearInterval(this.state.pollTimer),this.state.pollTimer=null),console.log("[PlanExecutionManager] Stopped polling")}cleanup(){this.stopPolling(),this.state.activePlanId=null,this.state.lastSequenceSize=0,this.state.isPolling=!1,this.clearAllCachedRecords()}emitChatInputClear(){this.callbacks.onChatInputClear&&this.callbacks.onChatInputClear()}emitChatInputUpdateState(e){this.callbacks.onChatInputUpdateState&&this.callbacks.onChatInputUpdateState(e)}emitDialogRoundStart(e){this.callbacks.onDialogRoundStart&&this.callbacks.onDialogRoundStart(e)}emitPlanUpdate(e){this.callbacks.onPlanUpdate&&this.callbacks.onPlanUpdate(e)}emitPlanCompleted(e){this.callbacks.onPlanCompleted&&this.callbacks.onPlanCompleted(e)}emitPlanError(e){this.callbacks.onPlanError&&this.callbacks.onPlanError(e)}};be(Lt,"instance",null);let No=Lt;const rt=No.getInstance();class Mt{static async handleResponse(e){if(!e.ok)try{const t=await e.json();throw new Error(t.message||`API request failed: ${e.status}`)}catch{throw new Error(`API request failed: ${e.status} ${e.statusText}`)}return e}static async getFileTree(e){try{const t=await fetch(`${this.BASE_URL}/tree/${e}`),r=await(await this.handleResponse(t)).json();if(!r.success)throw new Error(r.message||"Failed to get file tree");return r.data}catch(t){throw console.error("Failed to get file tree:",t),t}}static async getFileContent(e,t){try{const a=await fetch(`${this.BASE_URL}/content/${e}?path=${encodeURIComponent(t)}`),i=await(await this.handleResponse(a)).json();if(!i.success)throw new Error(i.message||"Failed to get file content");return i.data}catch(a){throw console.error("Failed to get file content:",a),a}}static async downloadFile(e,t,a){try{const r=await fetch(`${this.BASE_URL}/download/${e}?path=${encodeURIComponent(t)}`);await this.handleResponse(r);const i=await r.blob(),o=window.URL.createObjectURL(i),s=document.createElement("a");s.href=o,s.download=a||t.split("/").pop()||"download",document.body.appendChild(s),s.click(),window.URL.revokeObjectURL(o),document.body.removeChild(s)}catch(r){throw console.error("Failed to download file:",r),r}}static isTextFile(e,t){const a=["text/","application/json","application/xml","application/javascript","application/typescript"],r=[".txt",".md",".json",".xml",".html",".css",".js",".ts",".vue",".jsx",".tsx",".py",".java",".cpp",".c",".h",".sh",".bat",".yml",".yaml",".properties",".conf",".cfg"];if(a.some(o=>e.startsWith(o)))return!0;const i=t.toLowerCase();return r.some(o=>i.endsWith(o))}static getFileIcon(e){if(e.type==="directory")return"carbon:folder";const t=e.name.toLowerCase();return t.endsWith(".js")?"vscode-icons:file-type-js":t.endsWith(".ts")?"vscode-icons:file-type-typescript":t.endsWith(".vue")?"vscode-icons:file-type-vue":t.endsWith(".java")?"vscode-icons:file-type-java":t.endsWith(".py")?"vscode-icons:file-type-python":t.endsWith(".json")?"vscode-icons:file-type-json":t.endsWith(".xml")?"vscode-icons:file-type-xml":t.endsWith(".html")?"vscode-icons:file-type-html":t.endsWith(".css")?"vscode-icons:file-type-css":t.endsWith(".md")?"vscode-icons:file-type-markdown":t.endsWith(".yml")||t.endsWith(".yaml")?"vscode-icons:file-type-yaml":t.endsWith(".pdf")?"vscode-icons:file-type-pdf2":t.endsWith(".doc")||t.endsWith(".docx")?"vscode-icons:file-type-word":t.endsWith(".xls")||t.endsWith(".xlsx")?"vscode-icons:file-type-excel":t.endsWith(".ppt")||t.endsWith(".pptx")?"vscode-icons:file-type-powerpoint":t.match(/\.(jpg|jpeg|png|gif|bmp|svg)$/)?"carbon:image":t.match(/\.(zip|rar|7z|tar|gz)$/)?"carbon:archive":"carbon:document"}}be(Mt,"BASE_URL","/api/file-browser");const Ym={class:"file-tree-node"},$m={class:"node-icon"},qm={class:"node-name"},Hm={key:1,class:"file-size"},Vm={key:2,class:"node-actions"},zm={key:0,class:"children"},Wm=pt({__name:"FileTreeNode",props:{node:{},level:{}},emits:["file-selected","download-file"],setup(n,{emit:e}){const t=n,a=e,r=ne(t.level===0),i=ne(!1),o=ne(!1),s=ne({}),c=()=>{t.node.type==="directory"&&(r.value=!r.value)},_=()=>{t.node.type==="directory"?c():d()},d=()=>{t.node.type==="file"&&a("file-selected",t.node),u()},p=()=>{a("download-file",t.node),u()},m=N=>{N.preventDefault(),o.value=!0,s.value={position:"fixed",top:`${N.clientY}px`,left:`${N.clientX}px`,zIndex:1e3},setTimeout(()=>{document.addEventListener("click",u)},0)},u=()=>{o.value=!1,document.removeEventListener("click",u)},E=async()=>{try{await navigator.clipboard.writeText(t.node.path)}catch(N){console.error("Failed to copy path:",N)}u()},C=()=>t.node.type==="directory"?r.value?"carbon:folder-open":"carbon:folder":Mt.getFileIcon(t.node),R=N=>{if(N===0)return"0 B";const M=1024,T=["B","KB","MB","GB"],x=Math.floor(Math.log(N)/Math.log(M));return parseFloat((N/Math.pow(M,x)).toFixed(1))+" "+T[x]};return bt(()=>{document.removeEventListener("click",u)}),(N,M)=>{const T=$d("FileTreeNode",!0);return w(),k("div",Ym,[l("div",{class:Pe(["node-content",{"is-directory":N.node.type==="directory","is-file":N.node.type==="file","is-expanded":r.value}]),style:qt({paddingLeft:`${N.level*16+12}px`}),onClick:_,onContextmenu:ke(m,["prevent"])},[N.node.type==="directory"?(w(),k("div",{key:0,class:"expand-icon",onClick:ke(c,["stop"])},[Y(g(V),{icon:r.value?"carbon:chevron-down":"carbon:chevron-right",class:"chevron-icon"},null,8,["icon"])])):de("",!0),l("div",$m,[Y(g(V),{icon:C()},null,8,["icon"])]),l("span",qm,S(N.node.name),1),N.node.type==="file"?(w(),k("span",Hm,S(R(N.node.size)),1)):de("",!0),i.value?(w(),k("div",Vm,[N.node.type==="file"?(w(),k("button",{key:0,onClick:M[0]||(M[0]=ke(x=>N.$emit("download-file",N.node),["stop"])),class:"action-btn download-btn",title:"Download"},[Y(g(V),{icon:"carbon:download"})])):de("",!0)])):de("",!0)],38),N.node.type==="directory"&&r.value&&N.node.children?(w(),k("div",zm,[(w(!0),k(Ve,null,ze(N.node.children,x=>(w(),at(T,{key:x.path,node:x,level:N.level+1,onFileSelected:M[1]||(M[1]=D=>N.$emit("file-selected",D)),onDownloadFile:M[2]||(M[2]=D=>N.$emit("download-file",D))},null,8,["node","level"]))),128))])):de("",!0),o.value?(w(),k("div",{key:1,class:"context-menu",style:qt(s.value),onClick:M[3]||(M[3]=ke(()=>{},["stop"]))},[l("div",{class:"context-menu-item",onClick:d},[Y(g(V),{icon:"carbon:view"}),M[4]||(M[4]=l("span",null,"Open",-1))]),N.node.type==="file"?(w(),k("div",{key:0,class:"context-menu-item",onClick:p},[Y(g(V),{icon:"carbon:download"}),M[5]||(M[5]=l("span",null,"Download",-1))])):de("",!0),M[7]||(M[7]=l("div",{class:"context-menu-divider"},null,-1)),l("div",{class:"context-menu-item",onClick:E},[Y(g(V),{icon:"carbon:copy"}),M[6]||(M[6]=l("span",null,"Copy Path",-1))])],4)):de("",!0)])}}}),Km=mt(Wm,[["__scopeId","data-v-e4a376d5"]]),Qm={class:"file-browser"},Xm={class:"file-browser-header"},Zm={class:"header-actions"},Jm=["disabled","title"],jm={class:"file-browser-content"},eE={class:"file-tree-panel"},tE={key:0,class:"loading-state"},nE={key:1,class:"error-state"},aE={key:0,class:"waiting-for-files"},rE={class:"message-content"},iE={class:"tips"},oE=["disabled"],sE={key:1,class:"actual-error"},lE={key:2,class:"empty-state"},cE={key:3,class:"file-tree"},_E={key:0,class:"file-content-panel"},dE={class:"file-content-header"},uE={class:"file-info"},pE={class:"file-name"},mE={class:"file-size"},EE={class:"file-actions"},gE=["title"],SE=["title"],TE={class:"file-content-body"},bE={key:0,class:"loading-content"},fE={key:1,class:"content-error"},RE={key:2,class:"file-content"},hE={key:0,class:"text-content"},CE={key:1,class:"binary-content"},NE=pt({__name:"index",props:{planId:{}},setup(n){const e=n,{t}=It(),a=ne(!1),r=ne(null),i=ne(null),o=ne(null),s=ne(null),c=ne(!1),_=ne(null),d=ne(null),p=Je(()=>!s.value||!o.value?!1:Mt.isTextFile(s.value.mimeType,o.value.name)),m=Je(()=>r.value&&(r.value.includes("Plan directory not found")||r.value.includes("not found"))),u=()=>{d.value&&(clearTimeout(d.value),d.value=null)},E=()=>{u(),d.value=window.setTimeout(()=>{m.value&&C()},5e3)},C=async()=>{if(e.planId){a.value=!0,r.value=null,u();try{i.value=await Mt.getFileTree(e.planId)}catch(D){r.value=D instanceof Error?D.message:t("fileBrowser.loadError"),console.error("Failed to load file tree:",D);const P=D instanceof Error?D.message:"";(P.includes("Plan directory not found")||P.includes("not found"))&&E()}finally{a.value=!1}}},R=async D=>{if(D.type!=="directory"){o.value=D,s.value=null,c.value=!0,_.value=null;try{s.value=await Mt.getFileContent(e.planId,D.path)}catch(P){_.value=P instanceof Error?P.message:t("fileBrowser.contentLoadError"),console.error("Failed to load file content:",P)}finally{c.value=!1}}},N=async D=>{try{await Mt.downloadFile(e.planId,D.path,D.name)}catch(P){console.error("Failed to download file:",P)}},M=()=>{o.value=null,s.value=null,_.value=null},T=D=>Mt.getFileIcon(D),x=D=>{if(D===0)return"0 B";const P=1024,Q=["B","KB","MB","GB"],F=Math.floor(Math.log(D)/Math.log(P));return parseFloat((D/Math.pow(P,F)).toFixed(1))+" "+Q[F]};return ot(()=>e.planId,D=>{D&&(o.value=null,s.value=null,C())},{immediate:!0}),vt(()=>{e.planId&&C()}),bt(()=>{u()}),(D,P)=>(w(),k("div",Qm,[l("div",Xm,[l("h3",null,S(D.$t("fileBrowser.title")),1),l("div",Zm,[l("button",{class:"refresh-btn",onClick:C,disabled:a.value,title:D.$t("fileBrowser.refresh")},[Y(g(V),{icon:"carbon:refresh",class:Pe({rotating:a.value}),style:{color:"#ffffff",fontSize:"18px",width:"18px",height:"18px"}},null,8,["class"])],8,Jm)])]),l("div",jm,[l("div",eE,[a.value?(w(),k("div",tE,[Y(g(V),{icon:"carbon:loading",class:"rotating"}),l("span",null,S(D.$t("fileBrowser.loading")),1)])):r.value?(w(),k("div",nE,[m.value?(w(),k("div",aE,[Y(g(V),{icon:"carbon:time",class:"rotating"}),l("div",rE,[l("h3",null,S(D.$t("fileBrowser.waitingForGeneration")),1),l("p",null,S(D.$t("fileBrowser.planExecuting")),1),l("div",iE,[Y(g(V),{icon:"carbon:information"}),l("span",null,S(D.$t("fileBrowser.filesTip")),1)])]),l("button",{onClick:C,class:"retry-btn",disabled:a.value},[Y(g(V),{icon:"carbon:refresh",class:Pe({rotating:a.value})},null,8,["class"]),ye(" "+S(a.value?D.$t("fileBrowser.checking"):D.$t("fileBrowser.checkNow")),1)],8,oE)])):(w(),k("div",sE,[Y(g(V),{icon:"carbon:warning"}),l("span",null,S(r.value),1),l("button",{onClick:C,class:"retry-btn"},S(D.$t("fileBrowser.retry")),1)]))])):i.value?(w(),k("div",cE,[Y(Km,{node:i.value,level:0,onFileSelected:R,onDownloadFile:N},null,8,["node"])])):(w(),k("div",lE,[Y(g(V),{icon:"carbon:folder-off"}),l("span",null,S(D.$t("fileBrowser.noFiles")),1)]))]),o.value?(w(),k("div",_E,[l("div",dE,[l("div",uE,[Y(g(V),{icon:T(o.value)},null,8,["icon"]),l("span",pE,S(o.value.name),1),l("span",mE,"("+S(x(o.value.size))+")",1)]),l("div",EE,[l("button",{onClick:P[0]||(P[0]=Q=>N(o.value)),class:"download-btn",title:D.$t("fileBrowser.download")},[Y(g(V),{icon:"carbon:download"})],8,gE),l("button",{onClick:M,class:"close-btn",title:D.$t("common.close")},[Y(g(V),{icon:"carbon:close"})],8,SE)])]),l("div",TE,[c.value?(w(),k("div",bE,[Y(g(V),{icon:"carbon:loading",class:"rotating"}),l("span",null,S(D.$t("fileBrowser.loadingContent")),1)])):_.value?(w(),k("div",fE,[Y(g(V),{icon:"carbon:warning"}),l("span",null,S(_.value),1)])):s.value?(w(),k("div",RE,[p.value?(w(),k("div",hE,[l("pre",null,[l("code",null,S(s.value.content),1)])])):(w(),k("div",CE,[Y(g(V),{icon:"carbon:document-unknown"}),l("p",null,S(D.$t("fileBrowser.binaryFile")),1),l("button",{onClick:P[1]||(P[1]=Q=>N(o.value)),class:"download-btn-large"},[Y(g(V),{icon:"carbon:download"}),ye(" "+S(D.$t("fileBrowser.downloadToView")),1)])]))])):de("",!0)])])):de("",!0)])]))}}),vE=mt(NE,[["__scopeId","data-v-e7c74fe4"]]),OE={class:"right-panel"},IE={class:"preview-header"},AE={class:"preview-tabs"},yE={class:"preview-content"},DE={key:0,class:"step-details"},ME={key:0,class:"step-info-fixed"},LE={key:0,class:"agent-info"},xE={class:"info-item"},wE={class:"label"},PE={class:"value"},kE={class:"info-item"},UE={class:"label"},FE={class:"value"},BE={class:"info-item"},GE={class:"label"},YE={class:"value"},$E={class:"info-item"},qE={class:"label"},HE={class:"value"},VE={class:"info-item"},zE={class:"label"},WE={class:"execution-status"},KE={class:"status-item"},QE={class:"status-text"},XE={key:0},ZE={key:0,class:"think-act-steps"},JE={class:"steps-container"},jE={class:"step-header"},eg={class:"step-number"},tg={class:"think-section"},ng={class:"think-content"},ag={class:"input"},rg={class:"label"},ig={class:"output"},og={class:"label"},sg={key:0,class:"action-section"},lg={class:"action-content"},cg={class:"tool-info"},_g={class:"label"},dg={class:"value"},ug={class:"input"},pg={class:"label"},mg={class:"output"},Eg={class:"label"},gg={key:0,class:"sub-plan-section"},Sg={class:"sub-plan-content"},Tg={class:"sub-plan-header"},bg={class:"sub-plan-info"},fg={class:"label"},Rg={class:"value"},hg={key:0,class:"sub-plan-info"},Cg={class:"label"},Ng={class:"value"},vg={class:"sub-plan-status"},Og={class:"status-text"},Ig={key:0,class:"no-steps-message"},Ag={key:1,class:"no-execution-message"},yg={class:"step-basic-info"},Dg={class:"info-item"},Mg={class:"label"},Lg={class:"value"},xg={key:0,class:"info-item"},wg={class:"label"},Pg={class:"value"},kg={class:"info-item"},Ug={class:"label"},Fg={class:"no-execution-hint"},Bg={key:2,class:"execution-indicator"},Gg={class:"execution-text"},Yg={key:1,class:"no-selection"},$g=["title"],qg={key:1,class:"file-browser-container"},Hg={key:1,class:"no-plan-message"},Vg={class:"message-content"},zg={class:"tips"},Wg=pt({__name:"index",props:{currentRootPlanId:{}},setup(n,{expose:e}){const t=n,{t:a}=It(),r=ne(),i=ne(),o=ne(),s=ne("details"),c=ne(localStorage.getItem("jmanus-last-plan-id")),_=ne(localStorage.getItem("jmanus-has-executed-plan")==="true"),d=ne(null),p=ne(!1),m=ne(!0),u=ne(!0),E=Je(()=>o.value?o.value.completed?a("rightPanel.status.completed"):o.value.current?a("rightPanel.status.executing"):a("rightPanel.status.waiting"):""),C=Je(()=>t.currentRootPlanId?t.currentRootPlanId:c.value),R=Je(()=>!C.value&&!_.value),N=y=>{var X;if(console.log(`[RightPanel] updateDisplayedPlanProgress called with rootPlanId: ${y}`),o.value&&d.value){const O=d.value.rootPlanId??i.value;if(O&&O!==y){console.log(`[RightPanel] Plan ID mismatch - skipping update. Current: ${O}, Requested: ${y}`);return}}console.log(`[RightPanel] Plan ID validation passed - proceeding with update for rootPlanId: ${y}`);const U=rt.getCachedPlanRecord(y);if(!U){console.warn(`[RightPanel] Plan data not found for rootPlanId: ${y}`);return}if(U.steps&&U.steps.length>0){const O=U.steps.length,L=(U.currentStepIndex??0)+1;console.log(`[RightPanel] Progress: ${L} / ${O}`)}if(o.value&&i.value&&(i.value===y||((X=d.value)==null?void 0:X.rootPlanId)===y)&&(console.log(`[RightPanel] Refreshing selected step details for plan: ${y}`),d.value)){const L=d.value,K=T(L.planId,L.rootPlanId,L.subPlanId);K?(x(K,L.stepIndex,L.planId,L.isSubPlan),q()):console.warn("[RightPanel] Could not find plan record for refresh:",L)}},M=(y,U,X,O,L)=>{console.log("[RightPanel] Step selected:",{planId:y,stepIndex:U,rootPlanId:X,subPlanId:O,subStepIndex:L});const K=!!(X&&O&&L!==void 0);d.value={planId:y,stepIndex:U,isSubPlan:K,...K&&{rootPlanId:X,subPlanId:O,subStepIndex:L}};const B=T(y,X,O);if(!B){console.warn("[RightPanel] Plan data not found:",{planId:y,rootPlanId:X,subPlanId:O}),o.value=null,d.value=null;return}x(B,U,y,K)},T=(y,U,X)=>{var K;if(!U||!X)return rt.getCachedPlanRecord(y)??null;const O=rt.getCachedPlanRecord(y);if(O)return O;const L=rt.getCachedPlanRecord(U);if(!(L!=null&&L.agentExecutionSequence))return null;for(const B of L.agentExecutionSequence)if(B.thinkActSteps){for(const Z of B.thinkActSteps)if(((K=Z.subPlanExecutionRecord)==null?void 0:K.currentPlanId)===X)return Z.subPlanExecutionRecord}return null},x=(y,U,X,O)=>{var H,$,ue,ie,he;if(!y.steps||U>=y.steps.length){o.value=null,d.value=null,console.warn("[RightPanel] Invalid step data:",{planId:X,stepIndex:U,hasSteps:!!y.steps,stepsLength:(H=y.steps)==null?void 0:H.length,message:"Invalid step index"});return}i.value=X;const L=y.steps[U],K=($=y.agentExecutionSequence)==null?void 0:$[U];console.log("[RightPanel] Step data details:",{planId:X,stepIndex:U,step:L,hasAgentExecutionSequence:!!y.agentExecutionSequence,agentExecutionSequenceLength:(ue=y.agentExecutionSequence)==null?void 0:ue.length,agentExecution:K,hasThinkActSteps:!!(K!=null&&K.thinkActSteps),thinkActStepsLength:(ie=K==null?void 0:K.thinkActSteps)==null?void 0:ie.length,isSubPlan:O});const B=(K==null?void 0:K.status)==="FINISHED",Z=!B&&U===y.currentStepIndex&&!y.completed,ee={planId:X,index:U,title:typeof L=="string"?L:L.title||L.description||L.name||`${O?"Sub ":""}Step ${U+1}`,description:typeof L=="string"?L:L.description||L,completed:B,current:Z};K&&(ee.agentExecution=K),o.value=ee,console.log("[RightPanel] Step details updated:",{planId:X,stepIndex:U,stepTitle:o.value.title,hasAgentExecution:!!K,hasThinkActSteps:(((he=K==null?void 0:K.thinkActSteps)==null?void 0:he.length)??0)>0,completed:B,current:Z,planCurrentStep:y.currentStepIndex,planCompleted:y.completed,isSubPlan:O}),K!=null&&K.thinkActSteps&&K.thinkActSteps.forEach((ge,b)=>{ge.subPlanExecutionRecord&&console.log(`[RightPanel] Found sub-plan in thinkActStep ${b}:`,ge.subPlanExecutionRecord)}),setTimeout(()=>{Q()},100),q()},D=(y,U,X,O)=>{console.log("[RightPanel] Sub plan step selected (delegating to unified handler):",{rootPlanId:y,subPlanId:U,stepIndex:X,subStepIndex:O}),M(U,O,y,U,O)},P=y=>{r.value=y??void 0},Q=()=>{if(!r.value)return;const{scrollTop:y,scrollHeight:U,clientHeight:X}=r.value,O=U-y-X<50,L=U>X;m.value=O,p.value=L&&!O,O?u.value=!0:U-y-X>100&&(u.value=!1),console.log("[RightPanel] Scroll state check:",{scrollTop:y,scrollHeight:U,clientHeight:X,isAtBottom:O,hasScrollableContent:L,showButton:p.value,shouldAutoScroll:u.value})},F=()=>{r.value&&(r.value.scrollTo({top:r.value.scrollHeight,behavior:"smooth"}),Ze(()=>{u.value=!0,Q()}))},q=()=>{!u.value||!r.value||Ze(()=>{r.value&&(r.value.scrollTop=r.value.scrollHeight,console.log("[RightPanel] Auto scroll to bottom"))})},G=y=>{if(y===null||typeof y>"u"||y==="")return"N/A";try{const U=typeof y=="object"?y:JSON.parse(y);return JSON.stringify(U,null,2)}catch{return String(y)}},A=()=>{o.value=null,i.value=void 0,u.value=!0,r.value&&r.value.removeEventListener("scroll",Q)},W=()=>{const y=()=>{const U=r.value;return U?(P(U),U.addEventListener("scroll",Q),u.value=!0,Q(),console.log("[RightPanel] Scroll listener initialized successfully"),!0):(console.log("[RightPanel] Scroll container not found, retrying..."),!1)};Ze(()=>{y()||setTimeout(()=>{y()},100)})};return ot(()=>t.currentRootPlanId,(y,U)=>{y&&y!==U?(c.value=y,_.value=!0,localStorage.setItem("jmanus-last-plan-id",y),localStorage.setItem("jmanus-has-executed-plan","true"),console.log("[RightPanel] New plan started:",y)):!y&&U&&console.log("[RightPanel] Plan execution finished, keeping last plan:",c.value)},{immediate:!0}),vt(()=>{console.log("[RightPanel] Component mounted"),Ze(()=>{W()})}),bt(()=>{console.log("[RightPanel] Component unmounting, cleaning up..."),d.value=null,A()}),e({updateDisplayedPlanProgress:N,handleStepSelected:M,handleSubPlanStepSelected:D}),(y,U)=>{var X,O;return w(),k("div",OE,[l("div",IE,[l("div",AE,[l("div",{class:Pe(["tab-item",{active:s.value==="details"}]),onClick:U[0]||(U[0]=L=>s.value="details")},[Y(g(V),{icon:"carbon:events"}),l("span",null,S(g(a)("rightPanel.stepExecutionDetails")),1)],2),l("div",{class:Pe(["tab-item",{active:s.value==="files"}]),onClick:U[1]||(U[1]=L=>s.value="files")},[Y(g(V),{icon:"carbon:folder"}),l("span",null,S(g(a)("fileBrowser.title")),1)],2)])]),l("div",yE,[s.value==="details"?(w(),k("div",DE,[o.value?(w(),k("div",ME,[l("h3",null,S(o.value.title||o.value.description||g(a)("rightPanel.defaultStepTitle",{number:o.value.index+1})),1),o.value.agentExecution?(w(),k("div",LE,[l("div",xE,[l("span",wE,S(g(a)("rightPanel.executingAgent"))+":",1),l("span",PE,S(o.value.agentExecution.agentName),1)]),l("div",kE,[l("span",UE,S(g(a)("rightPanel.description"))+":",1),l("span",FE,S(o.value.agentExecution.agentDescription||""),1)]),l("div",BE,[l("span",GE,S(g(a)("rightPanel.callingModel"))+":",1),l("span",YE,S(o.value.agentExecution.modelName),1)]),l("div",$E,[l("span",qE,S(g(a)("rightPanel.request"))+":",1),l("span",HE,S(o.value.agentExecution.agentRequest||""),1)]),l("div",VE,[l("span",zE,S(g(a)("rightPanel.executionResult"))+":",1),l("span",{class:Pe(["value",{success:o.value.agentExecution.status==="FINISHED"}])},S(o.value.agentExecution.status||g(a)("rightPanel.executing")),3)])])):de("",!0),l("div",WE,[l("div",KE,[o.value.completed?(w(),at(g(V),{key:0,icon:"carbon:checkmark-filled",class:"status-icon success"})):o.value.current?(w(),at(g(V),{key:1,icon:"carbon:in-progress",class:"status-icon progress"})):(w(),at(g(V),{key:2,icon:"carbon:time",class:"status-icon pending"})),l("span",QE,S(E.value),1)])])])):de("",!0),l("div",{ref_key:"scrollContainer",ref:r,class:"step-details-scroll-container",onScroll:Q},[o.value?(w(),k("div",XE,[(X=o.value.agentExecution)!=null&&X.thinkActSteps&&o.value.agentExecution.thinkActSteps.length>0?(w(),k("div",ZE,[l("h4",null,S(g(a)("rightPanel.thinkAndActionSteps")),1),l("div",JE,[(w(!0),k(Ve,null,ze(o.value.agentExecution.thinkActSteps,(L,K)=>(w(),k("div",{key:K,class:"think-act-step"},[l("div",jE,[l("span",eg,"#"+S(K+1),1),l("span",{class:Pe(["step-status",L.status])},S(L.status||g(a)("rightPanel.executing")),3)]),l("div",tg,[l("h5",null,[Y(g(V),{icon:"carbon:thinking"}),ye(" "+S(g(a)("rightPanel.thinking")),1)]),l("div",ng,[l("div",ag,[l("span",rg,S(g(a)("rightPanel.input"))+":",1),l("pre",null,S(G(L.thinkInput)),1)]),l("div",ig,[l("span",og,S(g(a)("rightPanel.output"))+":",1),l("pre",null,S(G(L.thinkOutput)),1)])])]),L.actionNeeded?(w(),k("div",sg,[l("h5",null,[Y(g(V),{icon:"carbon:play"}),ye(" "+S(g(a)("rightPanel.action")),1)]),l("div",lg,[(w(!0),k(Ve,null,ze(L.actToolInfoList,(B,Z)=>(w(),k("div",{key:Z},[l("div",cg,[l("span",_g,S(g(a)("rightPanel.tool"))+":",1),l("span",dg,S(B.name||""),1)]),l("div",ug,[l("span",pg,S(g(a)("rightPanel.toolParameters"))+":",1),l("pre",null,S(G(B.parameters)),1)]),l("div",mg,[l("span",Eg,S(g(a)("rightPanel.executionResult"))+":",1),l("pre",null,S(G(B.result)),1)])]))),128))]),L.subPlanExecutionRecord?(w(),k("div",gg,[l("h5",null,[Y(g(V),{icon:"carbon:tree-view"}),ye(" "+S(g(a)("rightPanel.subPlan")),1)]),l("div",Sg,[l("div",Tg,[l("div",bg,[l("span",fg,S(y.$t("rightPanel.subPlanId"))+":",1),l("span",Rg,S(L.subPlanExecutionRecord.currentPlanId),1)]),L.subPlanExecutionRecord.title?(w(),k("div",hg,[l("span",Cg,S(y.$t("rightPanel.title"))+":",1),l("span",Ng,S(L.subPlanExecutionRecord.title),1)])):de("",!0),l("div",vg,[L.subPlanExecutionRecord.completed?(w(),at(g(V),{key:0,icon:"carbon:checkmark-filled",class:"status-icon success"})):(w(),at(g(V),{key:1,icon:"carbon:in-progress",class:"status-icon progress"})),l("span",Og,S(L.subPlanExecutionRecord.completed?y.$t("rightPanel.status.completed"):y.$t("rightPanel.status.executing")),1)])])])])):de("",!0)])):de("",!0)]))),128))]),o.value.agentExecution&&!((O=o.value.agentExecution.thinkActSteps)!=null&&O.length)?(w(),k("div",Ig,[l("p",null,S(g(a)("rightPanel.noStepDetails")),1)])):o.value.agentExecution?de("",!0):(w(),k("div",Ag,[Y(g(V),{icon:"carbon:information",class:"info-icon"}),l("h4",null,S(g(a)("rightPanel.stepInfo")),1),l("div",yg,[l("div",Dg,[l("span",Mg,S(g(a)("rightPanel.stepName"))+":",1),l("span",Lg,S(o.value.title||o.value.description||y.$t("rightPanel.stepNumber",{number:o.value.index+1})),1)]),o.value.description?(w(),k("div",xg,[l("span",wg,S(y.$t("rightPanel.description"))+":",1),l("span",Pg,S(o.value.description),1)])):de("",!0),l("div",kg,[l("span",Ug,S(y.$t("rightPanel.status.label"))+":",1),l("span",{class:Pe(["value",{"status-completed":o.value.completed,"status-current":o.value.current,"status-pending":!o.value.completed&&!o.value.current}])},S(o.value.completed?y.$t("rightPanel.status.completed"):o.value.current?y.$t("rightPanel.status.executing"):y.$t("rightPanel.status.pending")),3)])]),l("p",Fg,S(g(a)("rightPanel.noExecutionInfo")),1)])),o.value.current&&!o.value.completed?(w(),k("div",Bg,[U[2]||(U[2]=l("div",{class:"execution-waves"},[l("div",{class:"wave wave-1"}),l("div",{class:"wave wave-2"}),l("div",{class:"wave wave-3"})],-1)),l("p",Gg,[Y(g(V),{icon:"carbon:in-progress",class:"rotating-icon"}),ye(" "+S(g(a)("rightPanel.stepExecuting")),1)])])):de("",!0)])):(w(),k("div",Yg,[Y(g(V),{icon:"carbon:events",class:"empty-icon"}),l("h3",null,S(g(a)("rightPanel.noStepSelected")),1),l("p",null,S(g(a)("rightPanel.selectStepHint")),1)]))])):de("",!0),Y(Yt,{name:"scroll-button"},{default:$t(()=>[p.value?(w(),k("button",{key:0,onClick:F,class:"scroll-to-bottom-btn",title:g(a)("rightPanel.scrollToBottom")},[Y(g(V),{icon:"carbon:chevron-down"})],8,$g)):de("",!0)]),_:1})],544)])):de("",!0),s.value==="files"?(w(),k("div",qg,[C.value?(w(),at(vE,{key:0,"plan-id":C.value},null,8,["plan-id"])):R.value?(w(),k("div",Hg,[Y(g(V),{icon:"carbon:folder-off"}),l("div",Vg,[l("h3",null,S(g(a)("fileBrowser.noFilesYet")),1),l("p",null,S(g(a)("fileBrowser.noPlanExecuting")),1),l("div",zg,[Y(g(V),{icon:"carbon:information"}),l("span",null,S(g(a)("fileBrowser.startTaskTip")),1)])])])):de("",!0)])):de("",!0)])])}}}),Kg=mt(Wg,[["__scopeId","data-v-d7e4058f"]]);function Qg(){const n=rt,e=Je(()=>n.getActivePlanId()),t=Je(()=>n.getState()),a=Je(()=>t.value.isPolling),r=Je(()=>!!e.value),i=(_,d)=>{n.initiatePlanExecutionSequence(_,d)},o=()=>{n.stopPolling()},s=()=>{n.startPolling()},c=()=>{n.cleanup()};return bt(()=>{c()}),{activePlanId:e,state:t,isPolling:a,hasActivePlan:r,startExecution:i,stopPolling:o,startPolling:s,cleanup:c}}function xo(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Pt=xo();function ad(n){Pt=n}var en={exec:()=>null};function Ae(n,e=""){let t=typeof n=="string"?n:n.source,a={replace:(r,i)=>{let o=typeof i=="string"?i:i.source;return o=o.replace(je.caret,"$1"),t=t.replace(r,o),a},getRegex:()=>new RegExp(t,e)};return a}var je={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i")},Xg=/^(?:[ \t]*(?:\n|$))+/,Zg=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Jg=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,rn=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,jg=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,wo=/(?:[*+-]|\d{1,9}[.)])/,rd=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,id=Ae(rd).replace(/bull/g,wo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),eS=Ae(rd).replace(/bull/g,wo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Po=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,tS=/^[^\n]+/,ko=/(?!\s*\])(?:\\.|[^\[\]\\])+/,nS=Ae(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ko).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),aS=Ae(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,wo).getRegex(),Rn="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Uo=/|$))/,rS=Ae("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Uo).replace("tag",Rn).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),od=Ae(Po).replace("hr",rn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Rn).getRegex(),iS=Ae(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",od).getRegex(),Fo={blockquote:iS,code:Zg,def:nS,fences:Jg,heading:jg,hr:rn,html:rS,lheading:id,list:aS,newline:Xg,paragraph:od,table:en,text:tS},as=Ae("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",rn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Rn).getRegex(),oS={...Fo,lheading:eS,table:as,paragraph:Ae(Po).replace("hr",rn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",as).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Rn).getRegex()},sS={...Fo,html:Ae(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?\\1> *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Uo).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:en,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Ae(Po).replace("hr",rn).replace("heading",` *#{1,6} *[^
+`)),W},R=async()=>{if(!i.value)try{i.value=!0,o.value="";const[A,W]=await Promise.allSettled([zd.getAllAgents(),Wd()]),y=[];let U=!1;if(A.status==="fulfilled"){U=!0;const O=A.value.map(L=>({id:L.name.toUpperCase().replace(/\s+/g,"_"),name:L.name.toUpperCase().replace(/\s+/g,"_"),description:L.description,agentType:L.name,tools:L.availableTools||[]}));y.push(...O)}if(W.status==="fulfilled"){U=!0;const O=W.value.map(L=>({id:L.agentName.toUpperCase().replace(/\s+/g,"_"),name:L.agentName.toUpperCase().replace(/\s+/g,"_"),description:L.agentDescription,agentType:L.agentName,tools:L.availableToolKeys||[]}));y.push(...O)}if(!U)throw new Error(t("sidebar.agentLoadError"));const X=y.filter((O,L,K)=>L===K.findIndex(B=>B.id===O.id));r.value=X,s.value=!0}catch(A){console.error("Failed to load agents:",A),o.value=A instanceof Error?A.message:t("sidebar.agentLoadError"),r.value=[],s.value=!0}finally{i.value=!1}},N=()=>{const A=d();e("update:jsonContent",A)},M=()=>{c.steps.push({agentType:"SWEAGENT",stepContent:"",terminateColumns:""}),N()},T=A=>{c.steps.splice(A,1),N()},x=A=>{if(A>0){const W=c.steps.splice(A,1)[0];c.steps.splice(A-1,0,W),N()}},D=A=>{if(A{e("rollback")},Q=()=>{e("restore")},F=()=>{e("save")},q=()=>{a.value=!a.value},G=()=>{a.value=!1};return ot(()=>n.jsonContent,A=>{_(A)},{immediate:!0}),ot(c,()=>{N()},{deep:!0}),R(),{showJsonPreview:a,parsedData:c,availableAgents:r,isLoadingAgents:i,agentsLoadError:o,hasLoadedAgents:s,formattedJsonOutput:p,agentOptions:m,shouldShowError:u,parseJsonToVisual:_,convertVisualToJson:d,emitJsonUpdate:N,loadAvailableAgents:R,formatAgentDisplayText:E,generateAgentTooltip:C,addStep:M,removeStep:T,moveStepUp:x,moveStepDown:D,handleRollback:P,handleRestore:Q,handleSave:F,toggleJsonPreview:q,closeJsonPreview:G}}const jd={class:"config-section"},eu={class:"section-header"},tu={class:"section-actions"},nu=["disabled","title"],au=["disabled","title"],ru=["disabled"],iu={class:"visual-editor"},ou={class:"plan-basic-info"},su={class:"form-row"},lu={class:"form-label"},cu=["placeholder"],_u={class:"steps-section"},du={class:"steps-header"},uu={class:"form-label"},pu={class:"steps-actions"},mu=["disabled","title"],Eu={key:0,class:"agent-count-badge"},gu={key:1,class:"error-badge"},Su={class:"steps-container"},Tu={class:"step-header"},bu={class:"step-number"},fu={class:"step-actions"},Ru=["onClick","disabled","title"],hu=["onClick","disabled","title"],Cu=["onClick","title"],Nu={class:"step-content"},vu={class:"form-row"},Ou={class:"form-label"},Iu={class:"agent-selector"},Au=["onUpdate:modelValue","disabled"],yu={key:0,disabled:""},Du={key:1,disabled:""},Mu=["value","title"],Lu=["title"],xu=["title"],wu={key:0,class:"error-message"},Pu={class:"form-row"},ku={class:"form-label"},Uu=["onUpdate:modelValue","placeholder"],Fu={class:"form-row"},Bu={class:"form-label"},Gu=["onUpdate:modelValue","placeholder"],Yu={key:0,class:"empty-steps"},$u={class:"plan-id-section"},qu={class:"form-row"},Hu={class:"form-label"},Vu={key:0,class:"json-preview"},zu={class:"preview-header"},Wu={class:"form-label"},Ku={class:"json-code"},Qu={class:"editor-footer"},Xu=pt({__name:"JsonEditor",props:{jsonContent:{},canRollback:{type:Boolean},canRestore:{type:Boolean},isGenerating:{type:Boolean},isExecuting:{type:Boolean},hiddenFields:{default:()=>["currentPlanId","userRequest","rootPlanId"]}},emits:["rollback","restore","save","update:jsonContent"],setup(n,{emit:e}){const t=n,a=e,{showJsonPreview:r,parsedData:i,availableAgents:o,isLoadingAgents:s,agentsLoadError:c,hasLoadedAgents:_,formattedJsonOutput:d,agentOptions:p,shouldShowError:m,loadAvailableAgents:u,formatAgentDisplayText:E,generateAgentTooltip:C,addStep:R,removeStep:N,moveStepUp:M,moveStepDown:T,handleRollback:x,handleRestore:D,handleSave:P,toggleJsonPreview:Q,closeJsonPreview:F}=Jd(t,a),q=G=>{const A=G.target;if(!A)return;A.style.height="auto";const W=20,y=Math.ceil(A.scrollHeight/W),U=4,X=12,O=Math.max(U,Math.min(X,y)),L=O*W;A.style.height=`${L}px`,A.rows=O,y>X?A.style.overflowY="auto":A.style.overflowY="hidden"};return(G,A)=>(w(),k("div",jd,[l("div",eu,[Y(g(V),{icon:"carbon:code",width:"16"}),l("span",null,S(G.$t("sidebar.jsonTemplate")),1),l("div",tu,[l("button",{class:"btn btn-sm",onClick:A[0]||(A[0]=(...W)=>g(x)&&g(x)(...W)),disabled:!G.canRollback,title:G.$t("sidebar.rollback")},[Y(g(V),{icon:"carbon:undo",width:"14"})],8,nu),l("button",{class:"btn btn-sm",onClick:A[1]||(A[1]=(...W)=>g(D)&&g(D)(...W)),disabled:!G.canRestore,title:G.$t("sidebar.restore")},[Y(g(V),{icon:"carbon:redo",width:"14"})],8,au),l("button",{class:"btn btn-primary btn-sm",onClick:A[2]||(A[2]=(...W)=>g(P)&&g(P)(...W)),disabled:G.isGenerating||G.isExecuting},[Y(g(V),{icon:"carbon:save",width:"14"})],8,ru)])]),l("div",iu,[l("div",ou,[l("div",su,[l("label",lu,S(G.$t("sidebar.title")),1),we(l("input",{"onUpdate:modelValue":A[3]||(A[3]=W=>g(i).title=W),type:"text",class:"form-input",placeholder:G.$t("sidebar.titlePlaceholder")},null,8,cu),[[Ge,g(i).title]])])]),l("div",_u,[l("div",du,[l("label",uu,S(G.$t("sidebar.tasks")),1),l("div",pu,[l("button",{onClick:A[4]||(A[4]=(...W)=>g(u)&&g(u)(...W)),class:"btn btn-xs",disabled:g(s),title:G.$t("sidebar.refreshAgents")},[Y(g(V),{icon:"carbon:reset",width:"12"})],8,mu),g(_)&&g(o).length>0?(w(),k("span",Eu,S(g(o).length)+" agents ",1)):de("",!0),g(m)?(w(),k("span",gu,[Y(g(V),{icon:"carbon:warning",width:"12"}),A[12]||(A[12]=ye(" Error "))])):de("",!0)])]),l("div",Su,[(w(!0),k(Ve,null,ze(g(i).steps,(W,y)=>(w(),k("div",{key:y,class:"step-item"},[l("div",Tu,[l("span",bu,S(G.$t("sidebar.subtask"))+" "+S(y+1),1),l("div",fu,[l("button",{onClick:U=>g(M)(y),disabled:y===0,class:"btn btn-xs",title:G.$t("sidebar.moveUp")},[Y(g(V),{icon:"carbon:chevron-up",width:"12"})],8,Ru),l("button",{onClick:U=>g(T)(y),disabled:y===g(i).steps.length-1,class:"btn btn-xs",title:G.$t("sidebar.moveDown")},[Y(g(V),{icon:"carbon:chevron-down",width:"12"})],8,hu),l("button",{onClick:U=>g(N)(y),class:"btn btn-xs btn-danger",title:G.$t("sidebar.removeStep")},[Y(g(V),{icon:"carbon:trash-can",width:"12"})],8,Cu)])]),l("div",Nu,[l("div",vu,[l("label",Ou,S(G.$t("sidebar.agent")),1),l("div",Iu,[we(l("select",{"onUpdate:modelValue":U=>W.agentType=U,class:"form-select agent-select",disabled:g(s)||g(m)},[g(s)?(w(),k("option",yu,S(G.$t("sidebar.loading")),1)):g(m)?(w(),k("option",Du,S(G.$t("sidebar.agentLoadError")),1)):(w(!0),k(Ve,{key:2},ze(g(p),U=>(w(),k("option",{key:U.id,value:U.id,title:g(C)(U)},S(g(E)(U)),9,Mu))),128))],8,Au),[[Do,W.agentType]]),g(m)?(w(),k("button",{key:0,onClick:A[5]||(A[5]=(...U)=>g(u)&&g(u)(...U)),class:"btn btn-sm btn-danger",title:G.$t("sidebar.retryLoadAgents")},[Y(g(V),{icon:"carbon:warning",width:"14"}),ye(" "+S(G.$t("sidebar.retry")),1)],8,Lu)):(w(),k("button",{key:1,onClick:A[6]||(A[6]=(...U)=>g(R)&&g(R)(...U)),class:"btn btn-sm btn-add-step",title:G.$t("sidebar.addStep")},[Y(g(V),{icon:"carbon:add",width:"14"})],8,xu))]),g(m)&&g(c)?(w(),k("div",wu,[Y(g(V),{icon:"carbon:warning",width:"12"}),ye(" "+S(g(c)),1)])):de("",!0)]),l("div",Pu,[l("label",ku,S(G.$t("sidebar.stepRequirement")),1),we(l("textarea",{"onUpdate:modelValue":U=>W.stepContent=U,class:"form-textarea auto-resize",placeholder:G.$t("sidebar.stepRequirementPlaceholder"),rows:"4",onInput:A[7]||(A[7]=U=>q(U))},null,40,Uu),[[Ge,W.stepContent]])]),l("div",Fu,[l("label",Bu,S(G.$t("sidebar.terminateColumns")),1),we(l("input",{"onUpdate:modelValue":U=>W.terminateColumns=U,type:"text",class:"form-input",placeholder:G.$t("sidebar.terminateColumnsPlaceholder")},null,8,Gu),[[Ge,W.terminateColumns]])])])]))),128)),g(i).steps.length===0?(w(),k("div",Yu,[Y(g(V),{icon:"carbon:add-alt",width:"32",class:"empty-icon"}),l("p",null,S(G.$t("sidebar.noSteps")),1),l("button",{onClick:A[8]||(A[8]=(...W)=>g(R)&&g(R)(...W)),class:"btn btn-primary"},[Y(g(V),{icon:"carbon:add",width:"14"}),ye(" "+S(G.$t("sidebar.addFirstStep")),1)])])):de("",!0)])]),l("div",$u,[l("div",qu,[l("label",Hu,S(G.$t("sidebar.planId")),1),we(l("input",{"onUpdate:modelValue":A[9]||(A[9]=W=>g(i).planId=W),type:"text",class:"form-input",placeholder:"planTemplate-1756109892045"},null,512),[[Ge,g(i).planId]])])]),g(r)?(w(),k("div",Vu,[l("div",zu,[l("label",Wu,S(G.$t("sidebar.jsonPreview")),1),l("button",{onClick:A[10]||(A[10]=(...W)=>g(F)&&g(F)(...W)),class:"btn btn-xs"},[Y(g(V),{icon:"carbon:close",width:"12"})])]),l("pre",Ku,S(g(d)),1)])):de("",!0),l("div",Qu,[l("button",{onClick:A[11]||(A[11]=(...W)=>g(Q)&&g(Q)(...W)),class:"btn btn-sm btn-secondary"},[Y(g(V),{icon:"carbon:code",width:"14"}),ye(" "+S(g(r)?G.$t("sidebar.hideJson"):G.$t("sidebar.showJson")),1)])])])]))}}),Zu=mt(Xu,[["__scopeId","data-v-7ca0451a"]]),Ju={class:"sidebar-content"},ju={class:"sidebar-content-header"},ep={class:"sidebar-content-title"},tp={class:"tab-switcher"},np=["disabled"],ap={key:0,class:"tab-content"},rp={class:"new-task-section"},ip={class:"sidebar-content-list"},op={key:0,class:"loading-state"},sp={key:1,class:"error-state"},lp={key:2,class:"empty-state"},cp=["onClick"],_p={class:"task-icon"},dp={class:"task-details"},up={class:"task-title"},pp={class:"task-preview"},mp={class:"task-time"},Ep={class:"task-actions"},gp=["title","onClick"],Sp={key:1,class:"tab-content config-tab"},Tp={key:0,class:"config-container"},bp={class:"template-info-header"},fp={class:"template-info"},Rp={class:"template-id"},hp={class:"config-section"},Cp={class:"section-header"},Np={class:"generator-content"},vp=["placeholder"],Op={class:"generator-actions"},Ip=["disabled"],Ap=["disabled"],yp={class:"config-section"},Dp={class:"section-header"},Mp={class:"execution-content"},Lp={class:"params-input-group"},xp={class:"params-help-text"},wp={class:"params-input-container"},Pp=["placeholder"],kp=["title"],Up={class:"api-url-display"},Fp={class:"api-url-label"},Bp={class:"api-url"},Gp={class:"api-url-display"},Yp={class:"api-url-label"},$p=["disabled"],qp=["title"],Hp=pt({__name:"index",emits:["planExecutionRequested"],setup(n,{expose:e,emit:t}){const{t:a}=It(),r=ne(80),i=ne(!1),o=ne(0),s=ne(0),c=t,_=async()=>{try{const T=await re.saveTemplate();T!=null&&T.duplicate?alert(a("sidebar.saveCompleted",{message:T.message,versionCount:T.versionCount})):T!=null&&T.saved?alert(a("sidebar.saveSuccess",{message:T.message,versionCount:T.versionCount})):T!=null&&T.message&&alert(a("sidebar.saveStatus",{message:T.message}))}catch(T){console.error("Failed to save plan modifications:",T),alert(T.message||a("sidebar.saveFailed"))}},d=async()=>{var T;try{await re.generatePlan(),alert(a("sidebar.generateSuccess",{templateId:((T=re.selectedTemplate)==null?void 0:T.id)??a("sidebar.unknown")}))}catch(x){console.error("Failed to generate plan:",x),alert(a("sidebar.generateFailed")+": "+x.message)}},p=async()=>{try{await re.updatePlan(),alert(a("sidebar.updateSuccess"))}catch(T){console.error("Failed to update plan:",T),alert(a("sidebar.updateFailed")+": "+T.message)}},m=async()=>{console.log("[Sidebar] handleExecutePlan called");try{const T=re.preparePlanExecution();if(!T){console.log("[Sidebar] No plan data available, returning");return}console.log("[Sidebar] Triggering plan execution request:",T),console.log("[Sidebar] Emitting planExecutionRequested event"),c("planExecutionRequested",T),console.log("[Sidebar] Event emitted")}catch(T){console.error("Error executing plan:",T),alert(a("sidebar.executeFailed")+": "+T.message)}finally{re.finishPlanExecution()}},u=T=>{if(isNaN(T.getTime()))return console.warn("Invalid date received:",T),a("time.unknown");const D=new Date().getTime()-T.getTime(),P=Math.floor(D/6e4),Q=Math.floor(D/36e5),F=Math.floor(D/864e5);return P<1?a("time.now"):P<60?a("time.minuteAgo",{count:P}):Q<24?a("time.hourAgo",{count:Q}):F<30?a("time.dayAgo",{count:F}):T.toLocaleDateString("zh-CN")},E=(T,x)=>!T||T.length<=x?T:T.substring(0,x)+"...",C=T=>{i.value=!0,o.value=T.clientX,s.value=r.value,document.addEventListener("mousemove",R),document.addEventListener("mouseup",N),document.body.style.cursor="col-resize",document.body.style.userSelect="none",T.preventDefault()},R=T=>{if(!i.value)return;const x=window.innerWidth,P=(T.clientX-o.value)/x*100;let Q=s.value+P;Q=Math.max(15,Math.min(100,Q)),r.value=Q},N=()=>{i.value=!1,document.removeEventListener("mousemove",R),document.removeEventListener("mouseup",N),document.body.style.cursor="",document.body.style.userSelect="",localStorage.setItem("sidebarWidth",r.value.toString())},M=()=>{r.value=80,localStorage.setItem("sidebarWidth","80")};return vt(()=>{re.loadPlanTemplateList();const T=localStorage.getItem("sidebarWidth");T&&(r.value=parseFloat(T))}),bt(()=>{document.removeEventListener("mousemove",R),document.removeEventListener("mouseup",N)}),e({loadPlanTemplateList:re.loadPlanTemplateList,toggleSidebar:re.toggleSidebar,currentPlanTemplateId:re.currentPlanTemplateId}),(T,x)=>(w(),k("div",{class:Pe(["sidebar-wrapper",{"sidebar-wrapper-collapsed":g(re).isCollapsed}]),style:qt({width:r.value+"%"})},[l("div",Ju,[l("div",ju,[l("div",ep,S(T.$t("sidebar.title")),1)]),l("div",tp,[l("button",{class:Pe(["tab-button",{active:g(re).currentTab==="list"}]),onClick:x[0]||(x[0]=D=>g(re).switchToTab("list"))},[Y(g(V),{icon:"carbon:list",width:"16"}),ye(" "+S(T.$t("sidebar.templateList")),1)],2),l("button",{class:Pe(["tab-button",{active:g(re).currentTab==="config"}]),onClick:x[1]||(x[1]=D=>g(re).switchToTab("config")),disabled:!g(re).selectedTemplate},[Y(g(V),{icon:"carbon:settings",width:"16"}),ye(" "+S(T.$t("sidebar.configuration")),1)],10,np)]),g(re).currentTab==="list"?(w(),k("div",ap,[l("div",rp,[l("button",{class:"new-task-btn",onClick:x[2]||(x[2]=D=>g(re).createNewTemplate())},[Y(g(V),{icon:"carbon:add",width:"16"}),ye(" "+S(T.$t("sidebar.newPlan"))+" ",1),x[9]||(x[9]=l("span",{class:"shortcut"},"⌘ K",-1))])]),l("div",ip,[g(re).isLoading?(w(),k("div",op,[Y(g(V),{icon:"carbon:circle-dash",width:"20",class:"spinning"}),l("span",null,S(T.$t("sidebar.loading")),1)])):g(re).errorMessage?(w(),k("div",sp,[Y(g(V),{icon:"carbon:warning",width:"20"}),l("span",null,S(g(re).errorMessage),1),l("button",{onClick:x[3]||(x[3]=(...D)=>g(re).loadPlanTemplateList&&g(re).loadPlanTemplateList(...D)),class:"retry-btn"},S(T.$t("sidebar.retry")),1)])):g(re).planTemplateList.length===0?(w(),k("div",lp,[Y(g(V),{icon:"carbon:document",width:"32"}),l("span",null,S(T.$t("sidebar.noTemplates")),1)])):(w(!0),k(Ve,{key:3},ze(g(re).sortedTemplates,D=>(w(),k("div",{key:D.id,class:Pe(["sidebar-content-list-item",{"sidebar-content-list-item-active":D.id===g(re).currentPlanTemplateId}]),onClick:P=>g(re).selectTemplate(D)},[l("div",_p,[Y(g(V),{icon:"carbon:document",width:"20"})]),l("div",dp,[l("div",up,S(D.title||T.$t("sidebar.unnamedPlan")),1),l("div",pp,S(E(D.description||T.$t("sidebar.noDescription"),40)),1)]),l("div",mp,S(u(g(re).parseDateTime(D.updateTime||D.createTime))),1),l("div",Ep,[l("button",{class:"delete-task-btn",title:T.$t("sidebar.deleteTemplate"),onClick:ke(P=>g(re).deleteTemplate(D),["stop"])},[Y(g(V),{icon:"carbon:close",width:"16"})],8,gp)])],10,cp))),128))])])):g(re).currentTab==="config"?(w(),k("div",Sp,[g(re).selectedTemplate?(w(),k("div",Tp,[l("div",bp,[l("div",fp,[l("h3",null,S(g(re).selectedTemplate.title||T.$t("sidebar.unnamedPlan")),1),l("span",Rp,"ID: "+S(g(re).selectedTemplate.id),1)]),l("button",{class:"back-to-list-btn",onClick:x[4]||(x[4]=D=>g(re).switchToTab("list"))},[Y(g(V),{icon:"carbon:arrow-left",width:"16"})])]),l("div",hp,[l("div",Cp,[Y(g(V),{icon:"carbon:generate",width:"16"}),l("span",null,S(T.$t("sidebar.planGenerator")),1)]),l("div",Np,[we(l("textarea",{"onUpdate:modelValue":x[5]||(x[5]=D=>g(re).generatorPrompt=D),class:"prompt-input",placeholder:T.$t("sidebar.generatorPlaceholder"),rows:"3"},null,8,vp),[[Ge,g(re).generatorPrompt]]),l("div",Op,[l("button",{class:"btn btn-primary btn-sm",onClick:d,disabled:g(re).isGenerating||!g(re).generatorPrompt.trim()},[Y(g(V),{icon:g(re).isGenerating?"carbon:circle-dash":"carbon:generate",width:"14",class:Pe({spinning:g(re).isGenerating})},null,8,["icon","class"]),ye(" "+S(g(re).isGenerating?T.$t("sidebar.generating"):T.$t("sidebar.generatePlan")),1)],8,Ip),l("button",{class:"btn btn-secondary btn-sm",onClick:p,disabled:g(re).isGenerating||!g(re).generatorPrompt.trim()||!g(re).jsonContent.trim()},[Y(g(V),{icon:"carbon:edit",width:"14"}),ye(" "+S(T.$t("sidebar.updatePlan")),1)],8,Ap)])])]),Y(Zu,{"json-content":g(re).jsonContent,"can-rollback":g(re).canRollback,"can-restore":g(re).canRestore,"is-generating":g(re).isGenerating,"is-executing":g(re).isExecuting,onRollback:g(re).rollbackVersion,onRestore:g(re).restoreVersion,onSave:_,"onUpdate:jsonContent":x[6]||(x[6]=D=>g(re).jsonContent=D)},null,8,["json-content","can-rollback","can-restore","is-generating","is-executing","onRollback","onRestore"]),l("div",yp,[l("div",Dp,[Y(g(V),{icon:"carbon:play",width:"16"}),l("span",null,S(T.$t("sidebar.executionController")),1)]),l("div",Mp,[l("div",Lp,[l("label",null,S(T.$t("sidebar.executionParams")),1),l("div",xp,S(T.$t("sidebar.executionParamsHelp")),1),l("div",wp,[we(l("input",{"onUpdate:modelValue":x[7]||(x[7]=D=>g(re).executionParams=D),class:"params-input",placeholder:T.$t("sidebar.executionParamsPlaceholder")},null,8,Pp),[[Ge,g(re).executionParams]]),l("button",{class:"clear-params-btn",onClick:x[8]||(x[8]=(...D)=>g(re).clearExecutionParams&&g(re).clearExecutionParams(...D)),title:T.$t("sidebar.clearParams")},[Y(g(V),{icon:"carbon:close",width:"12"})],8,kp)])]),l("div",Up,[l("span",Fp,S(T.$t("sidebar.apiUrl"))+":",1),l("code",Bp,S(g(re).computedApiUrl),1)]),l("div",Gp,[l("span",Yp,S(T.$t("sidebar.statusApiUrl"))+":",1),x[10]||(x[10]=l("code",{class:"api-url"},"/api/executor/details/{planId}",-1))]),l("button",{class:"btn btn-primary execute-btn",onClick:m,disabled:g(re).isExecuting||g(re).isGenerating},[Y(g(V),{icon:g(re).isExecuting?"carbon:circle-dash":"carbon:play",width:"16",class:Pe({spinning:g(re).isExecuting})},null,8,["icon","class"]),ye(" "+S(g(re).isExecuting?T.$t("sidebar.executing"):T.$t("sidebar.executePlan")),1)],8,$p)])])])):de("",!0)])):de("",!0)]),l("div",{class:"sidebar-resizer",onMousedown:C,onDblclick:M,title:T.$t("sidebar.resizeHint")},x[11]||(x[11]=[l("div",{class:"resizer-line"},null,-1)]),40,qp)],6))}}),Vp=mt(Hp,[["__scopeId","data-v-fa866e8f"]]);class jt{static async handleResponse(e){if(!e.ok)try{const t=await e.json();throw new Error(t.message||`API request failed: ${e.status}`)}catch{throw new Error(`API request failed: ${e.status} ${e.statusText}`)}return e}static async getMemories(){try{const e=await fetch(`${this.BASE_URL}`);return await(await this.handleResponse(e)).json()}catch(e){throw console.error("Failed to get memory list:",e),e}}static async getMemory(e){try{const t=await fetch(`${this.BASE_URL}/single?memoryId=${e}`);return await(await this.handleResponse(t)).json()}catch(t){throw console.error("Failed to get memory :",t),t}}static async update(e,t){try{const a=await fetch(`${this.BASE_URL}/update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({memoryId:e,memoryName:t})});return await(await this.handleResponse(a)).json()}catch(a){throw console.error("Failed to update memory:",a),a}}static async delete(e){try{const t=await fetch(`${this.BASE_URL}/delete?memoryId=${e}`);await this.handleResponse(t)}catch(t){throw console.error("Failed to update memory:",t),t}}}be(jt,"BASE_URL","/api/memories");class zp{constructor(){be(this,"isCollapsed",!1);be(this,"selectMemoryId","");be(this,"loadMessages",()=>{});be(this,"intervalId")}toggleSidebar(){this.isCollapsed=!this.isCollapsed,this.isCollapsed?(this.loadMessages(),this.intervalId=window.setInterval(()=>{this.loadMessages()},3e3)):clearInterval(this.intervalId)}selectMemory(e){this.toggleSidebar(),this.selectMemoryId=e}setMemory(e){this.selectMemoryId=e}defaultMemoryId(){this.selectMemoryId=this.generateRandomId()}clearMemoryId(){this.selectMemoryId=""}generateRandomId(){return Math.random().toString(36).substring(2,10)}setLoadMessages(e){this.loadMessages=e}}const ut=fn(new zp),Wp={key:0,class:"app-container"},Kp={class:"app-content"},Qp={class:"header"},Xp={class:"relative"},Zp={class:"title-edit-group"},Jp={id:"main-title",class:"main-title"},jp={key:0,id:"title-edit-container",class:"title-edit-container"},em={class:"search-bar"},tm={class:"search-container"},nm=["placeholder"],am={class:"message-list",id:"message-list"},rm={class:"message-header"},im={class:"message-content"},om={class:"sender-info"},sm=["onClick"],lm={class:"sender-name"},cm=["onClick"],_m={class:"action-buttons"},dm=["onClick"],um={class:"action-buttons"},pm=["onClick"],mm={class:"message-preview"},Em={class:"preview-line"},gm={key:0,class:"preview-line",style:{opacity:"0.8"}},Sm={class:"message-meta"},Tm={class:"message-id"},bm={class:"meta-right"},fm={key:0,class:"unread-count"},Rm={class:"message-time"},hm=["id"],Cm={style:{display:"flex","flex-direction":"column",gap:"0.75rem"}},Nm={class:"bubble-avatar"},vm={class:"bubble-content"},Om={class:"bubble-text"},Im={key:0,class:"empty-state"},Am={class:"modal-content"},ym={class:"modal-header"},Dm={class:"modal-title"},Mm=["placeholder"],Lm={id:"name-char-count",class:"char-count",style:{"text-align":"right",display:"block","margin-top":"0.25rem"}},xm={class:"modal-footer"},wm={class:"modal-content"},Pm={class:"modal-header"},km={class:"modal-title"},Um={class:"state-text",id:"delete-message"},Fm={class:"modal-footer"},Bm=pt({__name:"index",emits:["memory-selected"],setup(n,{emit:e}){const t=ne(!1),a=ne(""),r=ne([]),i=ne([]),o=ne(!1),s=ne(null),c=ne(""),_=ne(!1),d=ne(null),p=new Map,m=e;vt(()=>{ut.setLoadMessages(u)});const u=async()=>{try{const F=await jt.getMemories();r.value?r.value=F.map(q=>({...q,expanded:p.has(q.memoryId)?p.get(q.memoryId):!1})):r.value=F.map(q=>({...q,expanded:!1})),i.value=[...r.value],R()}catch(F){console.error("error:",F),r.value=[],i.value=[]}},E=F=>{ut.selectMemory(F),m("memory-selected")},C=F=>{const q=typeof F=="string"?parseInt(F,10):F;return isNaN(q)||q<=0?"unknow time":new Date(q.toString().length===13?q:q*1e3).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).replace(","," ")},R=()=>{const F=a.value.toLowerCase().trim();if(!F){i.value=[...r.value];return}i.value=r.value.filter(q=>{const G=q.memoryName.toLowerCase().includes(F),A=q.memoryId.toLowerCase().includes(F),W=q.messages.some(y=>y.text.toLowerCase().includes(F));return G||A||W})},N=(F,q)=>{s.value=F,c.value=q,o.value=!0},M=()=>{o.value=!1,s.value=null},T=async()=>{if(!s.value)return;const F=c.value.trim()||"unknow name",q=r.value.findIndex(G=>G.memoryId===s.value);if(q!==-1){const G=r.value[q];try{const A=await jt.update(G.memoryId,F);A.messages||(A.messages=[]),r.value[q]={...A,expanded:G.expanded},R(),o.value=!1}catch(A){console.error("error:",A)}}},x=F=>{const q=r.value.find(G=>G.memoryId===F);if(q){q.expanded=!q.expanded,p.set(F,q.expanded);const G=i.value.findIndex(A=>A.memoryId===F);G!==-1&&(i.value[G]={...q})}},D=F=>{d.value=F,_.value=!0},P=()=>{_.value=!1,d.value=null},Q=async()=>{if(d.value)try{await jt.delete(d.value),r.value=r.value.filter(F=>F.memoryId!==d.value),R(),r.value.length===0&&ut.clearMemoryId(),_.value=!1,d.value=null}catch(F){console.error("error:",F)}};return(F,q)=>(w(),at(Jt,{to:"body"},[Y(Yt,{name:"modal"},{default:$t(()=>[g(ut).isCollapsed?(w(),k("div",Wp,[l("div",Kp,[l("div",Qp,[l("div",Xp,[l("div",Zp,[l("h1",Jp,[l("span",null,S(F.$t("memory.title")),1)])]),t.value?(w(),k("div",jp)):de("",!0)]),l("button",{class:"close-btn",onClick:q[0]||(q[0]=G=>g(ut).toggleSidebar())},[Y(g(V),{icon:"carbon:close"})])]),l("div",em,[l("div",tm,[Y(g(V),{class:"search-container-icon",icon:"carbon:search"}),we(l("input",{type:"text",placeholder:F.$t("memory.searchPlaceholder"),class:"search-input","onUpdate:modelValue":q[1]||(q[1]=G=>a.value=G),onInput:R},null,40,nm),[[Ge,a.value]])])]),l("div",am,[l("div",null,[(w(!0),k(Ve,null,ze(i.value,G=>(w(),k("div",{class:Pe(["message-item",{expanded:G.expanded}]),key:G.memoryId},[l("div",rm,[l("div",im,[l("div",om,[l("div",{class:"sender-div",onClick:ke(A=>E(G.memoryId),["stop"])},[l("h3",lm,S(G.memoryName),1)],8,sm),l("div",{class:"toggle-container",onClick:ke(A=>N(G.memoryId,G.memoryName),["stop"])},[Y(g(V),{icon:"carbon:edit",class:"edit-btn"})],8,cm),l("div",_m,[l("button",{class:"delete-btn",onClick:ke(A=>x(G.memoryId),["stop"])},[Y(g(V),{id:"toggle-"+G.memoryId,icon:"carbon:chevron-down",class:"down-btn"},null,8,["id"])],8,dm)]),l("div",um,[l("button",{class:"delete-btn",onClick:ke(A=>D(G.memoryId),["stop"])},[Y(g(V),{icon:"carbon:delete"})],8,pm)])]),l("div",mm,[l("p",Em,S(G.messages.length>0?G.messages[0].text:"none message"),1),G.messages.length>1?(w(),k("p",gm,S(G.messages[1].text),1)):de("",!0)]),l("div",Sm,[l("span",Tm,"ID: "+S(G.memoryId),1),l("div",bm,[G.messages.length>0?(w(),k("span",fm,S(G.messages.length)+" "+S(F.$t("memory.size")),1)):de("",!0),l("span",Rm,S(C(G.createTime)),1)])])])]),G.expanded?(w(),k("div",{key:0,id:"content-"+G.memoryId,class:"expanded-content"},[l("div",Cm,[(w(!0),k(Ve,null,ze(G.messages,(A,W)=>(w(),k("div",{class:"message-bubble",key:W},[l("div",Nm,S(A.messageType),1),l("div",vm,[l("p",Om,S(A.text),1)])]))),128))])],8,hm)):de("",!0)],2))),128))]),i.value.length===0&&a.value?(w(),k("div",Im,q[3]||(q[3]=[l("p",{class:"state-text"},"none message",-1)]))):de("",!0)]),o.value?(w(),k("div",{key:0,id:"name-edit-modal",class:"modal-overlay",onClick:ke(M,["self"])},[l("div",Am,[l("div",ym,[l("h3",Dm,S(F.$t("memory.changeName")),1),we(l("input",{type:"text","onUpdate:modelValue":q[2]||(q[2]=G=>c.value=G),class:"edit-input",placeholder:F.$t("memory.newNamePlaceholder")},null,8,Mm),[[Ge,c.value]]),l("span",Lm,S(c.value.length),1)]),l("div",xm,[l("button",{id:"cancel-name",class:"modal-btn cancel-btn",onClick:M},S(F.$t("memory.cancel")),1),l("button",{id:"save-name",class:"modal-btn confirm-btn",onClick:T},S(F.$t("memory.save")),1)])])])):de("",!0),_.value?(w(),k("div",{key:1,id:"delete-modal",class:"modal-overlay",onClick:ke(P,["self"])},[l("div",wm,[l("div",Pm,[l("h3",km,S(F.$t("memory.deleteHint")),1),l("p",Um,S(F.$t("memory.deleteHintPrefix"))+" "+S(d.value)+" "+S(F.$t("memory.deleteHintSuffix")),1)]),l("div",Fm,[l("button",{id:"cancel-delete",class:"modal-btn cancel-btn",onClick:P},S(F.$t("memory.cancel")),1),l("button",{id:"confirm-delete",class:"modal-btn delete-btn-confirm",onClick:Q},S(F.$t("memory.delete")),1)])])])):de("",!0)])])):de("",!0)]),_:1})]))}}),Gm=mt(Bm,[["__scopeId","data-v-ab7beb02"]]);class Mo{static async sendMessage(e){return Xd.withLlmCheck(async()=>{const t=await fetch(`${this.BASE_URL}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`API request failed: ${t.status}`);return await t.json()})}}be(Mo,"BASE_URL","/api/executor");class Lo{static async getDetails(e){try{const t=await fetch(`${this.BASE_URL}/details/${e}`);if(t.status===404)return null;if(!t.ok){const i=await t.text();throw new Error(`Failed to get detailed information: ${t.status} - ${i}`)}const a=await t.text(),r=JSON.parse(a);return r&&typeof r=="object"&&!r.currentPlanId&&(r.currentPlanId=e),r}catch(t){return console.error("[CommonApiService] Failed to get plan details:",t),{currentPlanId:e,status:"failed",message:t instanceof Error?t.message:"Failed to save, please retry"}}}static async submitFormInput(e,t){const a=await fetch(`${this.BASE_URL}/submit-input/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let i;try{i=await a.json()}catch{i={message:`Failed to submit form input: ${a.status}`}}throw new Error(i.message||`Failed to submit form input: ${a.status}`)}const r=a.headers.get("content-type");return r&&r.indexOf("application/json")!==-1?await a.json():{success:!0}}static async getAllPrompts(){try{const e=await fetch(this.BASE_URL);return await(await this.handleResponse(e)).json()}catch(e){throw console.error("Failed to get Prompt list:",e),e}}static async handleResponse(e){if(!e.ok)try{const t=await e.json();throw new Error(t.message||`API request failed: ${e.status}`)}catch{throw new Error(`API request failed: ${e.status} ${e.statusText}`)}return e}}be(Lo,"BASE_URL","/api/executor");const Lt=class Lt{constructor(){be(this,"POLL_INTERVAL",5e3);be(this,"state",fn({activePlanId:null,lastSequenceSize:0,isPolling:!1,pollTimer:null}));be(this,"callbacks",{});be(this,"planExecutionCache",new Map);be(this,"uiStateCache",new Map);console.log("[PlanExecutionManager] Initialized with callback-based event system")}getCachedPlanRecord(e){return this.planExecutionCache.get(e)}getCachedUIState(e){return this.uiStateCache.get(e)}setCachedUIState(e,t){this.uiStateCache.set(e,t),console.log(`[PlanExecutionManager] Cached UI state for rootPlanId: ${e}`)}getAllCachedRecords(){return new Map(this.planExecutionCache)}hasCachedPlanRecord(e){return this.planExecutionCache.has(e)}setCachedPlanRecord(e,t){this.planExecutionCache.set(e,t),console.log(`[PlanExecutionManager] Cached plan execution record for rootPlanId: ${e}`)}clearCachedPlanRecord(e){const t=this.planExecutionCache.delete(e);return t&&console.log(`[PlanExecutionManager] Cleared cached plan execution record for rootPlanId: ${e}`),t}clearAllCachedRecords(){const e=this.planExecutionCache.size,t=this.uiStateCache.size;this.planExecutionCache.clear(),this.uiStateCache.clear(),console.log(`[PlanExecutionManager] Cleared all caches - Plans: ${e}, UI States: ${t}`)}static getInstance(){return Lt.instance||(Lt.instance=new Lt),Lt.instance}getActivePlanId(){return this.state.activePlanId}getState(){return this.state}setEventCallbacks(e){this.callbacks={...this.callbacks,...e},console.log("[PlanExecutionManager] Event callbacks set:",Object.keys(e))}async handleUserMessageSendRequested(e){if(this.validateAndPrepareUIForNewRequest(e))try{if(await this.sendUserMessageAndSetPlanId(e),this.state.activePlanId)this.initiatePlanExecutionSequence(e,this.state.activePlanId);else throw new Error("Failed to get valid plan ID")}catch(t){console.error("[PlanExecutionManager] Failed to send user message:",t);const a=this.state.activePlanId??"error";this.setCachedUIState(a,{enabled:!0}),this.emitChatInputUpdateState(a),this.state.activePlanId=null}}handlePlanExecutionRequested(e,t){console.log("[PlanExecutionManager] Received plan execution request:",{planId:e,query:t}),e?(this.state.activePlanId=e,this.initiatePlanExecutionSequence(t??"Execute Plan",e)):console.error("[PlanExecutionManager] Invalid plan execution request: missing planId")}handleCachedPlanExecution(e,t){const a=this.getCachedPlanRecord(e);return a!=null&&a.currentPlanId?(console.log(`[PlanExecutionManager] Found cached plan execution record for rootPlanId: ${e}`),this.handlePlanExecutionRequested(a.currentPlanId,t),!0):(console.log(`[PlanExecutionManager] No cached plan execution record found for rootPlanId: ${e}`),!1)}validateAndPrepareUIForNewRequest(e){if(!e)return console.warn("[PlanExecutionManager] Query is empty"),!1;if(this.state.activePlanId)return!1;this.emitChatInputClear();const t=this.state.activePlanId??"ui-state";return this.setCachedUIState(t,{enabled:!1,placeholder:"Processing..."}),this.emitChatInputUpdateState(t),!0}async sendUserMessageAndSetPlanId(e){try{const t=await Mo.sendMessage({input:e});if(t!=null&&t.planId)return this.state.activePlanId=t.planId,t;if(t!=null&&t.planTemplateId)return this.state.activePlanId=t.planTemplateId,{...t,planId:t.planTemplateId};throw console.error("[PlanExecutionManager] Failed to get planId from response:",t),new Error("Failed to get valid planId from API response")}catch(t){throw console.error("[PlanExecutionManager] API call failed:",t),t}}initiatePlanExecutionSequence(e,t){console.log(`[PlanExecutionManager] Starting plan execution sequence for query: "${e}", planId: ${t}`);const a=t;this.emitDialogRoundStart(a),this.startPolling()}handlePlanCompletion(e){this.emitPlanCompleted(e.rootPlanId??""),this.state.lastSequenceSize=0,this.stopPolling();try{setTimeout(async()=>{if(this.state.activePlanId)try{await tn.deletePlanTemplate(this.state.activePlanId),console.log(`[PlanExecutionManager] Plan template ${this.state.activePlanId} deleted successfully`)}catch(t){console.log(`Delete plan execution record failed: ${t.message}`)}},5e3)}catch(t){console.log(`Delete plan execution record failed: ${t.message}`)}e.completed&&(this.state.activePlanId=null,this.emitChatInputUpdateState(e.rootPlanId??""))}handlePlanError(e){this.emitPlanError(e.message??""),this.state.lastSequenceSize=0,this.stopPolling();try{setTimeout(async()=>{if(this.state.activePlanId)try{await tn.deletePlanTemplate(this.state.activePlanId),console.log(`[PlanExecutionManager] Plan template ${this.state.activePlanId} deleted successfully`)}catch(t){console.log(`Delete plan execution record failed: ${t.message}`)}},5e3)}catch(t){console.log(`Delete plan execution record failed: ${t.message}`)}}async pollPlanStatus(){if(this.state.activePlanId){if(this.state.isPolling){console.log("[PlanExecutionManager] Previous polling still in progress, skipping");return}try{this.state.isPolling=!0;const e=await this.getPlanDetails(this.state.activePlanId);if(!e){console.warn("[PlanExecutionManager] No details received from API");return}if(e.status&&e.status==="failed"){this.handlePlanError(e);return}if(e.rootPlanId&&this.setCachedPlanRecord(e.rootPlanId,e),!e.steps||e.steps.length===0){console.log("[PlanExecutionManager] Simple response without steps detected, handling as completed"),this.emitPlanUpdate(e.rootPlanId??""),this.handlePlanCompletion(e);return}this.emitPlanUpdate(e.rootPlanId??""),e.completed&&this.handlePlanCompletion(e)}catch(e){console.error("[PlanExecutionManager] Failed to poll plan status:",e)}finally{this.state.isPolling=!1}}}async getPlanDetails(e){try{const t=await Lo.getDetails(e);return t!=null&&t.rootPlanId&&(this.planExecutionCache.set(t.rootPlanId,t),console.log(`[PlanExecutionManager] Cached plan execution record for rootPlanId: ${t.rootPlanId}`)),t}catch(t){return console.error("[PlanExecutionManager] Failed to get plan details:",t),{currentPlanId:e,status:"failed",message:t instanceof Error?t.message:"Failed to get plan"}}}startPolling(){this.state.pollTimer&&clearInterval(this.state.pollTimer),this.state.pollTimer=window.setInterval(()=>{this.pollPlanStatus()},this.POLL_INTERVAL),console.log("[PlanExecutionManager] Started polling")}async pollPlanStatusImmediately(){console.log("[PlanExecutionManager] Polling plan status immediately"),await this.pollPlanStatus()}stopPolling(){this.state.pollTimer&&(clearInterval(this.state.pollTimer),this.state.pollTimer=null),console.log("[PlanExecutionManager] Stopped polling")}cleanup(){this.stopPolling(),this.state.activePlanId=null,this.state.lastSequenceSize=0,this.state.isPolling=!1,this.clearAllCachedRecords()}emitChatInputClear(){this.callbacks.onChatInputClear&&this.callbacks.onChatInputClear()}emitChatInputUpdateState(e){this.callbacks.onChatInputUpdateState&&this.callbacks.onChatInputUpdateState(e)}emitDialogRoundStart(e){this.callbacks.onDialogRoundStart&&this.callbacks.onDialogRoundStart(e)}emitPlanUpdate(e){this.callbacks.onPlanUpdate&&this.callbacks.onPlanUpdate(e)}emitPlanCompleted(e){this.callbacks.onPlanCompleted&&this.callbacks.onPlanCompleted(e)}emitPlanError(e){this.callbacks.onPlanError&&this.callbacks.onPlanError(e)}};be(Lt,"instance",null);let No=Lt;const rt=No.getInstance();class Mt{static async handleResponse(e){if(!e.ok)try{const t=await e.json();throw new Error(t.message||`API request failed: ${e.status}`)}catch{throw new Error(`API request failed: ${e.status} ${e.statusText}`)}return e}static async getFileTree(e){try{const t=await fetch(`${this.BASE_URL}/tree/${e}`),r=await(await this.handleResponse(t)).json();if(!r.success)throw new Error(r.message||"Failed to get file tree");return r.data}catch(t){throw console.error("Failed to get file tree:",t),t}}static async getFileContent(e,t){try{const a=await fetch(`${this.BASE_URL}/content/${e}?path=${encodeURIComponent(t)}`),i=await(await this.handleResponse(a)).json();if(!i.success)throw new Error(i.message||"Failed to get file content");return i.data}catch(a){throw console.error("Failed to get file content:",a),a}}static async downloadFile(e,t,a){try{const r=await fetch(`${this.BASE_URL}/download/${e}?path=${encodeURIComponent(t)}`);await this.handleResponse(r);const i=await r.blob(),o=window.URL.createObjectURL(i),s=document.createElement("a");s.href=o,s.download=a||t.split("/").pop()||"download",document.body.appendChild(s),s.click(),window.URL.revokeObjectURL(o),document.body.removeChild(s)}catch(r){throw console.error("Failed to download file:",r),r}}static isTextFile(e,t){const a=["text/","application/json","application/xml","application/javascript","application/typescript"],r=[".txt",".md",".json",".xml",".html",".css",".js",".ts",".vue",".jsx",".tsx",".py",".java",".cpp",".c",".h",".sh",".bat",".yml",".yaml",".properties",".conf",".cfg"];if(a.some(o=>e.startsWith(o)))return!0;const i=t.toLowerCase();return r.some(o=>i.endsWith(o))}static getFileIcon(e){if(e.type==="directory")return"carbon:folder";const t=e.name.toLowerCase();return t.endsWith(".js")?"vscode-icons:file-type-js":t.endsWith(".ts")?"vscode-icons:file-type-typescript":t.endsWith(".vue")?"vscode-icons:file-type-vue":t.endsWith(".java")?"vscode-icons:file-type-java":t.endsWith(".py")?"vscode-icons:file-type-python":t.endsWith(".json")?"vscode-icons:file-type-json":t.endsWith(".xml")?"vscode-icons:file-type-xml":t.endsWith(".html")?"vscode-icons:file-type-html":t.endsWith(".css")?"vscode-icons:file-type-css":t.endsWith(".md")?"vscode-icons:file-type-markdown":t.endsWith(".yml")||t.endsWith(".yaml")?"vscode-icons:file-type-yaml":t.endsWith(".pdf")?"vscode-icons:file-type-pdf2":t.endsWith(".doc")||t.endsWith(".docx")?"vscode-icons:file-type-word":t.endsWith(".xls")||t.endsWith(".xlsx")?"vscode-icons:file-type-excel":t.endsWith(".ppt")||t.endsWith(".pptx")?"vscode-icons:file-type-powerpoint":t.match(/\.(jpg|jpeg|png|gif|bmp|svg)$/)?"carbon:image":t.match(/\.(zip|rar|7z|tar|gz)$/)?"carbon:archive":"carbon:document"}}be(Mt,"BASE_URL","/api/file-browser");const Ym={class:"file-tree-node"},$m={class:"node-icon"},qm={class:"node-name"},Hm={key:1,class:"file-size"},Vm={key:2,class:"node-actions"},zm={key:0,class:"children"},Wm=pt({__name:"FileTreeNode",props:{node:{},level:{}},emits:["file-selected","download-file"],setup(n,{emit:e}){const t=n,a=e,r=ne(t.level===0),i=ne(!1),o=ne(!1),s=ne({}),c=()=>{t.node.type==="directory"&&(r.value=!r.value)},_=()=>{t.node.type==="directory"?c():d()},d=()=>{t.node.type==="file"&&a("file-selected",t.node),u()},p=()=>{a("download-file",t.node),u()},m=N=>{N.preventDefault(),o.value=!0,s.value={position:"fixed",top:`${N.clientY}px`,left:`${N.clientX}px`,zIndex:1e3},setTimeout(()=>{document.addEventListener("click",u)},0)},u=()=>{o.value=!1,document.removeEventListener("click",u)},E=async()=>{try{await navigator.clipboard.writeText(t.node.path)}catch(N){console.error("Failed to copy path:",N)}u()},C=()=>t.node.type==="directory"?r.value?"carbon:folder-open":"carbon:folder":Mt.getFileIcon(t.node),R=N=>{if(N===0)return"0 B";const M=1024,T=["B","KB","MB","GB"],x=Math.floor(Math.log(N)/Math.log(M));return parseFloat((N/Math.pow(M,x)).toFixed(1))+" "+T[x]};return bt(()=>{document.removeEventListener("click",u)}),(N,M)=>{const T=$d("FileTreeNode",!0);return w(),k("div",Ym,[l("div",{class:Pe(["node-content",{"is-directory":N.node.type==="directory","is-file":N.node.type==="file","is-expanded":r.value}]),style:qt({paddingLeft:`${N.level*16+12}px`}),onClick:_,onContextmenu:ke(m,["prevent"])},[N.node.type==="directory"?(w(),k("div",{key:0,class:"expand-icon",onClick:ke(c,["stop"])},[Y(g(V),{icon:r.value?"carbon:chevron-down":"carbon:chevron-right",class:"chevron-icon"},null,8,["icon"])])):de("",!0),l("div",$m,[Y(g(V),{icon:C()},null,8,["icon"])]),l("span",qm,S(N.node.name),1),N.node.type==="file"?(w(),k("span",Hm,S(R(N.node.size)),1)):de("",!0),i.value?(w(),k("div",Vm,[N.node.type==="file"?(w(),k("button",{key:0,onClick:M[0]||(M[0]=ke(x=>N.$emit("download-file",N.node),["stop"])),class:"action-btn download-btn",title:"Download"},[Y(g(V),{icon:"carbon:download"})])):de("",!0)])):de("",!0)],38),N.node.type==="directory"&&r.value&&N.node.children?(w(),k("div",zm,[(w(!0),k(Ve,null,ze(N.node.children,x=>(w(),at(T,{key:x.path,node:x,level:N.level+1,onFileSelected:M[1]||(M[1]=D=>N.$emit("file-selected",D)),onDownloadFile:M[2]||(M[2]=D=>N.$emit("download-file",D))},null,8,["node","level"]))),128))])):de("",!0),o.value?(w(),k("div",{key:1,class:"context-menu",style:qt(s.value),onClick:M[3]||(M[3]=ke(()=>{},["stop"]))},[l("div",{class:"context-menu-item",onClick:d},[Y(g(V),{icon:"carbon:view"}),M[4]||(M[4]=l("span",null,"Open",-1))]),N.node.type==="file"?(w(),k("div",{key:0,class:"context-menu-item",onClick:p},[Y(g(V),{icon:"carbon:download"}),M[5]||(M[5]=l("span",null,"Download",-1))])):de("",!0),M[7]||(M[7]=l("div",{class:"context-menu-divider"},null,-1)),l("div",{class:"context-menu-item",onClick:E},[Y(g(V),{icon:"carbon:copy"}),M[6]||(M[6]=l("span",null,"Copy Path",-1))])],4)):de("",!0)])}}}),Km=mt(Wm,[["__scopeId","data-v-e4a376d5"]]),Qm={class:"file-browser"},Xm={class:"file-browser-header"},Zm={class:"header-actions"},Jm=["disabled","title"],jm={class:"file-browser-content"},eE={class:"file-tree-panel"},tE={key:0,class:"loading-state"},nE={key:1,class:"error-state"},aE={key:0,class:"waiting-for-files"},rE={class:"message-content"},iE={class:"tips"},oE=["disabled"],sE={key:1,class:"actual-error"},lE={key:2,class:"empty-state"},cE={key:3,class:"file-tree"},_E={key:0,class:"file-content-panel"},dE={class:"file-content-header"},uE={class:"file-info"},pE={class:"file-name"},mE={class:"file-size"},EE={class:"file-actions"},gE=["title"],SE=["title"],TE={class:"file-content-body"},bE={key:0,class:"loading-content"},fE={key:1,class:"content-error"},RE={key:2,class:"file-content"},hE={key:0,class:"text-content"},CE={key:1,class:"binary-content"},NE=pt({__name:"index",props:{planId:{}},setup(n){const e=n,{t}=It(),a=ne(!1),r=ne(null),i=ne(null),o=ne(null),s=ne(null),c=ne(!1),_=ne(null),d=ne(null),p=Je(()=>!s.value||!o.value?!1:Mt.isTextFile(s.value.mimeType,o.value.name)),m=Je(()=>r.value&&(r.value.includes("Plan directory not found")||r.value.includes("not found"))),u=()=>{d.value&&(clearTimeout(d.value),d.value=null)},E=()=>{u(),d.value=window.setTimeout(()=>{m.value&&C()},5e3)},C=async()=>{if(e.planId){a.value=!0,r.value=null,u();try{i.value=await Mt.getFileTree(e.planId)}catch(D){r.value=D instanceof Error?D.message:t("fileBrowser.loadError"),console.error("Failed to load file tree:",D);const P=D instanceof Error?D.message:"";(P.includes("Plan directory not found")||P.includes("not found"))&&E()}finally{a.value=!1}}},R=async D=>{if(D.type!=="directory"){o.value=D,s.value=null,c.value=!0,_.value=null;try{s.value=await Mt.getFileContent(e.planId,D.path)}catch(P){_.value=P instanceof Error?P.message:t("fileBrowser.contentLoadError"),console.error("Failed to load file content:",P)}finally{c.value=!1}}},N=async D=>{try{await Mt.downloadFile(e.planId,D.path,D.name)}catch(P){console.error("Failed to download file:",P)}},M=()=>{o.value=null,s.value=null,_.value=null},T=D=>Mt.getFileIcon(D),x=D=>{if(D===0)return"0 B";const P=1024,Q=["B","KB","MB","GB"],F=Math.floor(Math.log(D)/Math.log(P));return parseFloat((D/Math.pow(P,F)).toFixed(1))+" "+Q[F]};return ot(()=>e.planId,D=>{D&&(o.value=null,s.value=null,C())},{immediate:!0}),vt(()=>{e.planId&&C()}),bt(()=>{u()}),(D,P)=>(w(),k("div",Qm,[l("div",Xm,[l("h3",null,S(D.$t("fileBrowser.title")),1),l("div",Zm,[l("button",{class:"refresh-btn",onClick:C,disabled:a.value,title:D.$t("fileBrowser.refresh")},[Y(g(V),{icon:"carbon:refresh",class:Pe({rotating:a.value}),style:{color:"#ffffff",fontSize:"18px",width:"18px",height:"18px"}},null,8,["class"])],8,Jm)])]),l("div",jm,[l("div",eE,[a.value?(w(),k("div",tE,[Y(g(V),{icon:"carbon:loading",class:"rotating"}),l("span",null,S(D.$t("fileBrowser.loading")),1)])):r.value?(w(),k("div",nE,[m.value?(w(),k("div",aE,[Y(g(V),{icon:"carbon:time",class:"rotating"}),l("div",rE,[l("h3",null,S(D.$t("fileBrowser.waitingForGeneration")),1),l("p",null,S(D.$t("fileBrowser.planExecuting")),1),l("div",iE,[Y(g(V),{icon:"carbon:information"}),l("span",null,S(D.$t("fileBrowser.filesTip")),1)])]),l("button",{onClick:C,class:"retry-btn",disabled:a.value},[Y(g(V),{icon:"carbon:refresh",class:Pe({rotating:a.value})},null,8,["class"]),ye(" "+S(a.value?D.$t("fileBrowser.checking"):D.$t("fileBrowser.checkNow")),1)],8,oE)])):(w(),k("div",sE,[Y(g(V),{icon:"carbon:warning"}),l("span",null,S(r.value),1),l("button",{onClick:C,class:"retry-btn"},S(D.$t("fileBrowser.retry")),1)]))])):i.value?(w(),k("div",cE,[Y(Km,{node:i.value,level:0,onFileSelected:R,onDownloadFile:N},null,8,["node"])])):(w(),k("div",lE,[Y(g(V),{icon:"carbon:folder-off"}),l("span",null,S(D.$t("fileBrowser.noFiles")),1)]))]),o.value?(w(),k("div",_E,[l("div",dE,[l("div",uE,[Y(g(V),{icon:T(o.value)},null,8,["icon"]),l("span",pE,S(o.value.name),1),l("span",mE,"("+S(x(o.value.size))+")",1)]),l("div",EE,[l("button",{onClick:P[0]||(P[0]=Q=>N(o.value)),class:"download-btn",title:D.$t("fileBrowser.download")},[Y(g(V),{icon:"carbon:download"})],8,gE),l("button",{onClick:M,class:"close-btn",title:D.$t("common.close")},[Y(g(V),{icon:"carbon:close"})],8,SE)])]),l("div",TE,[c.value?(w(),k("div",bE,[Y(g(V),{icon:"carbon:loading",class:"rotating"}),l("span",null,S(D.$t("fileBrowser.loadingContent")),1)])):_.value?(w(),k("div",fE,[Y(g(V),{icon:"carbon:warning"}),l("span",null,S(_.value),1)])):s.value?(w(),k("div",RE,[p.value?(w(),k("div",hE,[l("pre",null,[l("code",null,S(s.value.content),1)])])):(w(),k("div",CE,[Y(g(V),{icon:"carbon:document-unknown"}),l("p",null,S(D.$t("fileBrowser.binaryFile")),1),l("button",{onClick:P[1]||(P[1]=Q=>N(o.value)),class:"download-btn-large"},[Y(g(V),{icon:"carbon:download"}),ye(" "+S(D.$t("fileBrowser.downloadToView")),1)])]))])):de("",!0)])])):de("",!0)])]))}}),vE=mt(NE,[["__scopeId","data-v-e7c74fe4"]]),OE={class:"right-panel"},IE={class:"preview-header"},AE={class:"preview-tabs"},yE={class:"preview-content"},DE={key:0,class:"step-details"},ME={key:0,class:"step-info-fixed"},LE={key:0,class:"agent-info"},xE={class:"info-item"},wE={class:"label"},PE={class:"value"},kE={class:"info-item"},UE={class:"label"},FE={class:"value"},BE={class:"info-item"},GE={class:"label"},YE={class:"value"},$E={class:"info-item"},qE={class:"label"},HE={class:"value"},VE={class:"info-item"},zE={class:"label"},WE={class:"execution-status"},KE={class:"status-item"},QE={class:"status-text"},XE={key:0},ZE={key:0,class:"think-act-steps"},JE={class:"steps-container"},jE={class:"step-header"},eg={class:"step-number"},tg={class:"think-section"},ng={class:"think-content"},ag={class:"input"},rg={class:"label"},ig={class:"output"},og={class:"label"},sg={key:0,class:"action-section"},lg={class:"action-content"},cg={class:"tool-info"},_g={class:"label"},dg={class:"value"},ug={class:"input"},pg={class:"label"},mg={class:"output"},Eg={class:"label"},gg={key:0,class:"sub-plan-section"},Sg={class:"sub-plan-content"},Tg={class:"sub-plan-header"},bg={class:"sub-plan-info"},fg={class:"label"},Rg={class:"value"},hg={key:0,class:"sub-plan-info"},Cg={class:"label"},Ng={class:"value"},vg={class:"sub-plan-status"},Og={class:"status-text"},Ig={key:0,class:"no-steps-message"},Ag={key:1,class:"no-execution-message"},yg={class:"step-basic-info"},Dg={class:"info-item"},Mg={class:"label"},Lg={class:"value"},xg={key:0,class:"info-item"},wg={class:"label"},Pg={class:"value"},kg={class:"info-item"},Ug={class:"label"},Fg={class:"no-execution-hint"},Bg={key:2,class:"execution-indicator"},Gg={class:"execution-text"},Yg={key:1,class:"no-selection"},$g=["title"],qg={key:1,class:"file-browser-container"},Hg={key:1,class:"no-plan-message"},Vg={class:"message-content"},zg={class:"tips"},Wg=pt({__name:"index",props:{currentRootPlanId:{}},setup(n,{expose:e}){const t=n,{t:a}=It(),r=ne(),i=ne(),o=ne(),s=ne("details"),c=ne(localStorage.getItem("jmanus-last-plan-id")),_=ne(localStorage.getItem("jmanus-has-executed-plan")==="true"),d=ne(null),p=ne(!1),m=ne(!0),u=ne(!0),E=Je(()=>o.value?o.value.completed?a("rightPanel.status.completed"):o.value.current?a("rightPanel.status.executing"):a("rightPanel.status.waiting"):""),C=Je(()=>t.currentRootPlanId?t.currentRootPlanId:c.value),R=Je(()=>!C.value&&!_.value),N=y=>{var X;if(console.log(`[RightPanel] updateDisplayedPlanProgress called with rootPlanId: ${y}`),o.value&&d.value){const O=d.value.rootPlanId??i.value;if(O&&O!==y){console.log(`[RightPanel] Plan ID mismatch - skipping update. Current: ${O}, Requested: ${y}`);return}}console.log(`[RightPanel] Plan ID validation passed - proceeding with update for rootPlanId: ${y}`);const U=rt.getCachedPlanRecord(y);if(!U){console.warn(`[RightPanel] Plan data not found for rootPlanId: ${y}`);return}if(U.steps&&U.steps.length>0){const O=U.steps.length,L=(U.currentStepIndex??0)+1;console.log(`[RightPanel] Progress: ${L} / ${O}`)}if(o.value&&i.value&&(i.value===y||((X=d.value)==null?void 0:X.rootPlanId)===y)&&(console.log(`[RightPanel] Refreshing selected step details for plan: ${y}`),d.value)){const L=d.value,K=T(L.planId,L.rootPlanId,L.subPlanId);K?(x(K,L.stepIndex,L.planId,L.isSubPlan),q()):console.warn("[RightPanel] Could not find plan record for refresh:",L)}},M=(y,U,X,O,L)=>{console.log("[RightPanel] Step selected:",{planId:y,stepIndex:U,rootPlanId:X,subPlanId:O,subStepIndex:L});const K=!!(X&&O&&L!==void 0);d.value={planId:y,stepIndex:U,isSubPlan:K,...K&&{rootPlanId:X,subPlanId:O,subStepIndex:L}};const B=T(y,X,O);if(!B){console.warn("[RightPanel] Plan data not found:",{planId:y,rootPlanId:X,subPlanId:O}),o.value=null,d.value=null;return}x(B,U,y,K)},T=(y,U,X)=>{var K;if(!U||!X)return rt.getCachedPlanRecord(y)??null;const O=rt.getCachedPlanRecord(y);if(O)return O;const L=rt.getCachedPlanRecord(U);if(!(L!=null&&L.agentExecutionSequence))return null;for(const B of L.agentExecutionSequence)if(B.thinkActSteps){for(const Z of B.thinkActSteps)if(((K=Z.subPlanExecutionRecord)==null?void 0:K.currentPlanId)===X)return Z.subPlanExecutionRecord}return null},x=(y,U,X,O)=>{var H,$,ue,ie,he;if(!y.steps||U>=y.steps.length){o.value=null,d.value=null,console.warn("[RightPanel] Invalid step data:",{planId:X,stepIndex:U,hasSteps:!!y.steps,stepsLength:(H=y.steps)==null?void 0:H.length,message:"Invalid step index"});return}i.value=X;const L=y.steps[U],K=($=y.agentExecutionSequence)==null?void 0:$[U];console.log("[RightPanel] Step data details:",{planId:X,stepIndex:U,step:L,hasAgentExecutionSequence:!!y.agentExecutionSequence,agentExecutionSequenceLength:(ue=y.agentExecutionSequence)==null?void 0:ue.length,agentExecution:K,hasThinkActSteps:!!(K!=null&&K.thinkActSteps),thinkActStepsLength:(ie=K==null?void 0:K.thinkActSteps)==null?void 0:ie.length,isSubPlan:O});const B=(K==null?void 0:K.status)==="FINISHED",Z=!B&&U===y.currentStepIndex&&!y.completed,ee={planId:X,index:U,title:typeof L=="string"?L:L.title||L.description||L.name||`${O?"Sub ":""}Step ${U+1}`,description:typeof L=="string"?L:L.description||L,completed:B,current:Z};K&&(ee.agentExecution=K),o.value=ee,console.log("[RightPanel] Step details updated:",{planId:X,stepIndex:U,stepTitle:o.value.title,hasAgentExecution:!!K,hasThinkActSteps:(((he=K==null?void 0:K.thinkActSteps)==null?void 0:he.length)??0)>0,completed:B,current:Z,planCurrentStep:y.currentStepIndex,planCompleted:y.completed,isSubPlan:O}),K!=null&&K.thinkActSteps&&K.thinkActSteps.forEach((ge,b)=>{ge.subPlanExecutionRecord&&console.log(`[RightPanel] Found sub-plan in thinkActStep ${b}:`,ge.subPlanExecutionRecord)}),setTimeout(()=>{Q()},100),q()},D=(y,U,X,O)=>{console.log("[RightPanel] Sub plan step selected (delegating to unified handler):",{rootPlanId:y,subPlanId:U,stepIndex:X,subStepIndex:O}),M(U,O,y,U,O)},P=y=>{r.value=y??void 0},Q=()=>{if(!r.value)return;const{scrollTop:y,scrollHeight:U,clientHeight:X}=r.value,O=U-y-X<50,L=U>X;m.value=O,p.value=L&&!O,O?u.value=!0:U-y-X>100&&(u.value=!1),console.log("[RightPanel] Scroll state check:",{scrollTop:y,scrollHeight:U,clientHeight:X,isAtBottom:O,hasScrollableContent:L,showButton:p.value,shouldAutoScroll:u.value})},F=()=>{r.value&&(r.value.scrollTo({top:r.value.scrollHeight,behavior:"smooth"}),Ze(()=>{u.value=!0,Q()}))},q=()=>{!u.value||!r.value||Ze(()=>{r.value&&(r.value.scrollTop=r.value.scrollHeight,console.log("[RightPanel] Auto scroll to bottom"))})},G=y=>{if(y===null||typeof y>"u"||y==="")return"N/A";try{const U=typeof y=="object"?y:JSON.parse(y);return JSON.stringify(U,null,2)}catch{return String(y)}},A=()=>{o.value=null,i.value=void 0,u.value=!0,r.value&&r.value.removeEventListener("scroll",Q)},W=()=>{const y=()=>{const U=r.value;return U?(P(U),U.addEventListener("scroll",Q),u.value=!0,Q(),console.log("[RightPanel] Scroll listener initialized successfully"),!0):(console.log("[RightPanel] Scroll container not found, retrying..."),!1)};Ze(()=>{y()||setTimeout(()=>{y()},100)})};return ot(()=>t.currentRootPlanId,(y,U)=>{y&&y!==U?(c.value=y,_.value=!0,localStorage.setItem("jmanus-last-plan-id",y),localStorage.setItem("jmanus-has-executed-plan","true"),console.log("[RightPanel] New plan started:",y)):!y&&U&&console.log("[RightPanel] Plan execution finished, keeping last plan:",c.value)},{immediate:!0}),vt(()=>{console.log("[RightPanel] Component mounted"),Ze(()=>{W()})}),bt(()=>{console.log("[RightPanel] Component unmounting, cleaning up..."),d.value=null,A()}),e({updateDisplayedPlanProgress:N,handleStepSelected:M,handleSubPlanStepSelected:D}),(y,U)=>{var X,O;return w(),k("div",OE,[l("div",IE,[l("div",AE,[l("div",{class:Pe(["tab-item",{active:s.value==="details"}]),onClick:U[0]||(U[0]=L=>s.value="details")},[Y(g(V),{icon:"carbon:events"}),l("span",null,S(g(a)("rightPanel.stepExecutionDetails")),1)],2),l("div",{class:Pe(["tab-item",{active:s.value==="files"}]),onClick:U[1]||(U[1]=L=>s.value="files")},[Y(g(V),{icon:"carbon:folder"}),l("span",null,S(g(a)("fileBrowser.title")),1)],2)])]),l("div",yE,[s.value==="details"?(w(),k("div",DE,[o.value?(w(),k("div",ME,[l("h3",null,S(o.value.title||o.value.description||g(a)("rightPanel.defaultStepTitle",{number:o.value.index+1})),1),o.value.agentExecution?(w(),k("div",LE,[l("div",xE,[l("span",wE,S(g(a)("rightPanel.executingAgent"))+":",1),l("span",PE,S(o.value.agentExecution.agentName),1)]),l("div",kE,[l("span",UE,S(g(a)("rightPanel.description"))+":",1),l("span",FE,S(o.value.agentExecution.agentDescription||""),1)]),l("div",BE,[l("span",GE,S(g(a)("rightPanel.callingModel"))+":",1),l("span",YE,S(o.value.agentExecution.modelName),1)]),l("div",$E,[l("span",qE,S(g(a)("rightPanel.request"))+":",1),l("span",HE,S(o.value.agentExecution.agentRequest||""),1)]),l("div",VE,[l("span",zE,S(g(a)("rightPanel.executionResult"))+":",1),l("span",{class:Pe(["value",{success:o.value.agentExecution.status==="FINISHED"}])},S(o.value.agentExecution.status||g(a)("rightPanel.executing")),3)])])):de("",!0),l("div",WE,[l("div",KE,[o.value.completed?(w(),at(g(V),{key:0,icon:"carbon:checkmark-filled",class:"status-icon success"})):o.value.current?(w(),at(g(V),{key:1,icon:"carbon:in-progress",class:"status-icon progress"})):(w(),at(g(V),{key:2,icon:"carbon:time",class:"status-icon pending"})),l("span",QE,S(E.value),1)])])])):de("",!0),l("div",{ref_key:"scrollContainer",ref:r,class:"step-details-scroll-container",onScroll:Q},[o.value?(w(),k("div",XE,[(X=o.value.agentExecution)!=null&&X.thinkActSteps&&o.value.agentExecution.thinkActSteps.length>0?(w(),k("div",ZE,[l("h4",null,S(g(a)("rightPanel.thinkAndActionSteps")),1),l("div",JE,[(w(!0),k(Ve,null,ze(o.value.agentExecution.thinkActSteps,(L,K)=>(w(),k("div",{key:K,class:"think-act-step"},[l("div",jE,[l("span",eg,"#"+S(K+1),1),l("span",{class:Pe(["step-status",L.status])},S(L.status||g(a)("rightPanel.executing")),3)]),l("div",tg,[l("h5",null,[Y(g(V),{icon:"carbon:thinking"}),ye(" "+S(g(a)("rightPanel.thinking")),1)]),l("div",ng,[l("div",ag,[l("span",rg,S(g(a)("rightPanel.input"))+":",1),l("pre",null,S(G(L.thinkInput)),1)]),l("div",ig,[l("span",og,S(g(a)("rightPanel.output"))+":",1),l("pre",null,S(G(L.thinkOutput)),1)])])]),L.actionNeeded?(w(),k("div",sg,[l("h5",null,[Y(g(V),{icon:"carbon:play"}),ye(" "+S(g(a)("rightPanel.action")),1)]),l("div",lg,[(w(!0),k(Ve,null,ze(L.actToolInfoList,(B,Z)=>(w(),k("div",{key:Z},[l("div",cg,[l("span",_g,S(g(a)("rightPanel.tool"))+":",1),l("span",dg,S(B.name||""),1)]),l("div",ug,[l("span",pg,S(g(a)("rightPanel.toolParameters"))+":",1),l("pre",null,S(G(B.parameters)),1)]),l("div",mg,[l("span",Eg,S(g(a)("rightPanel.executionResult"))+":",1),l("pre",null,S(G(B.result)),1)])]))),128))]),L.subPlanExecutionRecord?(w(),k("div",gg,[l("h5",null,[Y(g(V),{icon:"carbon:tree-view"}),ye(" "+S(g(a)("rightPanel.subPlan")),1)]),l("div",Sg,[l("div",Tg,[l("div",bg,[l("span",fg,S(y.$t("rightPanel.subPlanId"))+":",1),l("span",Rg,S(L.subPlanExecutionRecord.currentPlanId),1)]),L.subPlanExecutionRecord.title?(w(),k("div",hg,[l("span",Cg,S(y.$t("rightPanel.title"))+":",1),l("span",Ng,S(L.subPlanExecutionRecord.title),1)])):de("",!0),l("div",vg,[L.subPlanExecutionRecord.completed?(w(),at(g(V),{key:0,icon:"carbon:checkmark-filled",class:"status-icon success"})):(w(),at(g(V),{key:1,icon:"carbon:in-progress",class:"status-icon progress"})),l("span",Og,S(L.subPlanExecutionRecord.completed?y.$t("rightPanel.status.completed"):y.$t("rightPanel.status.executing")),1)])])])])):de("",!0)])):de("",!0)]))),128))]),o.value.agentExecution&&!((O=o.value.agentExecution.thinkActSteps)!=null&&O.length)?(w(),k("div",Ig,[l("p",null,S(g(a)("rightPanel.noStepDetails")),1)])):o.value.agentExecution?de("",!0):(w(),k("div",Ag,[Y(g(V),{icon:"carbon:information",class:"info-icon"}),l("h4",null,S(g(a)("rightPanel.stepInfo")),1),l("div",yg,[l("div",Dg,[l("span",Mg,S(g(a)("rightPanel.stepName"))+":",1),l("span",Lg,S(o.value.title||o.value.description||y.$t("rightPanel.stepNumber",{number:o.value.index+1})),1)]),o.value.description?(w(),k("div",xg,[l("span",wg,S(y.$t("rightPanel.description"))+":",1),l("span",Pg,S(o.value.description),1)])):de("",!0),l("div",kg,[l("span",Ug,S(y.$t("rightPanel.status.label"))+":",1),l("span",{class:Pe(["value",{"status-completed":o.value.completed,"status-current":o.value.current,"status-pending":!o.value.completed&&!o.value.current}])},S(o.value.completed?y.$t("rightPanel.status.completed"):o.value.current?y.$t("rightPanel.status.executing"):y.$t("rightPanel.status.pending")),3)])]),l("p",Fg,S(g(a)("rightPanel.noExecutionInfo")),1)])),o.value.current&&!o.value.completed?(w(),k("div",Bg,[U[2]||(U[2]=l("div",{class:"execution-waves"},[l("div",{class:"wave wave-1"}),l("div",{class:"wave wave-2"}),l("div",{class:"wave wave-3"})],-1)),l("p",Gg,[Y(g(V),{icon:"carbon:in-progress",class:"rotating-icon"}),ye(" "+S(g(a)("rightPanel.stepExecuting")),1)])])):de("",!0)])):(w(),k("div",Yg,[Y(g(V),{icon:"carbon:events",class:"empty-icon"}),l("h3",null,S(g(a)("rightPanel.noStepSelected")),1),l("p",null,S(g(a)("rightPanel.selectStepHint")),1)]))])):de("",!0),Y(Yt,{name:"scroll-button"},{default:$t(()=>[p.value?(w(),k("button",{key:0,onClick:F,class:"scroll-to-bottom-btn",title:g(a)("rightPanel.scrollToBottom")},[Y(g(V),{icon:"carbon:chevron-down"})],8,$g)):de("",!0)]),_:1})],544)])):de("",!0),s.value==="files"?(w(),k("div",qg,[C.value?(w(),at(vE,{key:0,"plan-id":C.value},null,8,["plan-id"])):R.value?(w(),k("div",Hg,[Y(g(V),{icon:"carbon:folder-off"}),l("div",Vg,[l("h3",null,S(g(a)("fileBrowser.noFilesYet")),1),l("p",null,S(g(a)("fileBrowser.noPlanExecuting")),1),l("div",zg,[Y(g(V),{icon:"carbon:information"}),l("span",null,S(g(a)("fileBrowser.startTaskTip")),1)])])])):de("",!0)])):de("",!0)])])}}}),Kg=mt(Wg,[["__scopeId","data-v-d7e4058f"]]);function Qg(){const n=rt,e=Je(()=>n.getActivePlanId()),t=Je(()=>n.getState()),a=Je(()=>t.value.isPolling),r=Je(()=>!!e.value),i=(_,d)=>{n.initiatePlanExecutionSequence(_,d)},o=()=>{n.stopPolling()},s=()=>{n.startPolling()},c=()=>{n.cleanup()};return bt(()=>{c()}),{activePlanId:e,state:t,isPolling:a,hasActivePlan:r,startExecution:i,stopPolling:o,startPolling:s,cleanup:c}}function xo(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Pt=xo();function ad(n){Pt=n}var en={exec:()=>null};function Ae(n,e=""){let t=typeof n=="string"?n:n.source,a={replace:(r,i)=>{let o=typeof i=="string"?i:i.source;return o=o.replace(je.caret,"$1"),t=t.replace(r,o),a},getRegex:()=>new RegExp(t,e)};return a}var je={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}#`),htmlBeginRegex:n=>new RegExp(`^ {0,${Math.min(3,n-1)}}<(?:[a-z].*>|!--)`,"i")},Xg=/^(?:[ \t]*(?:\n|$))+/,Zg=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Jg=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,rn=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,jg=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,wo=/(?:[*+-]|\d{1,9}[.)])/,rd=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,id=Ae(rd).replace(/bull/g,wo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),eS=Ae(rd).replace(/bull/g,wo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Po=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,tS=/^[^\n]+/,ko=/(?!\s*\])(?:\\.|[^\[\]\\])+/,nS=Ae(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ko).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),aS=Ae(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,wo).getRegex(),Rn="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Uo=/|$))/,rS=Ae("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Uo).replace("tag",Rn).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),od=Ae(Po).replace("hr",rn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Rn).getRegex(),iS=Ae(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",od).getRegex(),Fo={blockquote:iS,code:Zg,def:nS,fences:Jg,heading:jg,hr:rn,html:rS,lheading:id,list:aS,newline:Xg,paragraph:od,table:en,text:tS},as=Ae("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",rn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Rn).getRegex(),oS={...Fo,lheading:eS,table:as,paragraph:Ae(Po).replace("hr",rn).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",as).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Rn).getRegex()},sS={...Fo,html:Ae(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?\\1> *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Uo).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:en,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Ae(Po).replace("hr",rn).replace("heading",` *#{1,6} *[^
]`).replace("lheading",id).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},lS=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,cS=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,sd=/^( {2,}|\\)\n(?!\s*$)/,_S=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,_d=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,ES=Ae(_d,"u").replace(/punct/g,hn).getRegex(),gS=Ae(_d,"u").replace(/punct/g,cd).getRegex(),dd="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",SS=Ae(dd,"gu").replace(/notPunctSpace/g,ld).replace(/punctSpace/g,Bo).replace(/punct/g,hn).getRegex(),TS=Ae(dd,"gu").replace(/notPunctSpace/g,pS).replace(/punctSpace/g,uS).replace(/punct/g,cd).getRegex(),bS=Ae("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,ld).replace(/punctSpace/g,Bo).replace(/punct/g,hn).getRegex(),fS=Ae(/\\(punct)/,"gu").replace(/punct/g,hn).getRegex(),RS=Ae(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),hS=Ae(Uo).replace("(?:-->|$)","-->").getRegex(),CS=Ae("^comment|^[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",hS).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),gn=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,NS=Ae(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",gn).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ud=Ae(/^!?\[(label)\]\[(ref)\]/).replace("label",gn).replace("ref",ko).getRegex(),pd=Ae(/^!?\[(ref)\](?:\[\])?/).replace("ref",ko).getRegex(),vS=Ae("reflink|nolink(?!\\()","g").replace("reflink",ud).replace("nolink",pd).getRegex(),Go={_backpedal:en,anyPunctuation:fS,autolink:RS,blockSkip:mS,br:sd,code:cS,del:en,emStrongLDelim:ES,emStrongRDelimAst:SS,emStrongRDelimUnd:bS,escape:lS,link:NS,nolink:pd,punctuation:dS,reflink:ud,reflinkSearch:vS,tag:CS,text:_S,url:en},OS={...Go,link:Ae(/^!?\[(label)\]\((.*?)\)/).replace("label",gn).getRegex(),reflink:Ae(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",gn).getRegex()},vo={...Go,emStrongRDelimAst:TS,emStrongLDelim:gS,url:Ae(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},rs=n=>AS[n];function Tt(n,e){if(e){if(je.escapeTest.test(n))return n.replace(je.escapeReplace,rs)}else if(je.escapeTestNoEncode.test(n))return n.replace(je.escapeReplaceNoEncode,rs);return n}function is(n){try{n=encodeURI(n).replace(je.percentDecode,"%")}catch{return null}return n}function os(n,e){var i;let t=n.replace(je.findPipe,(o,s,c)=>{let _=!1,d=s;for(;--d>=0&&c[d]==="\\";)_=!_;return _?"|":" |"}),a=t.split(je.splitPipe),r=0;if(a[0].trim()||a.shift(),a.length>0&&!((i=a.at(-1))!=null&&i.trim())&&a.pop(),e)if(a.length>e)a.splice(e);else for(;a.length0?-2:-1}function ss(n,e,t,a,r){let i=e.href,o=e.title||null,s=n[1].replace(r.other.outputLinkReplace,"$1");a.state.inLink=!0;let c={type:n[0].charAt(0)==="!"?"image":"link",raw:t,href:i,title:o,text:s,tokens:a.inlineTokens(s)};return a.state.inLink=!1,c}function DS(n,e,t){let a=n.match(t.other.indentCodeCompensation);if(a===null)return e;let r=a[1];return e.split(`
`).map(i=>{let o=i.match(t.other.beginningSpace);if(o===null)return i;let[s]=o;return s.length>=r.length?i.slice(r.length):i}).join(`
`)}var Sn=class{constructor(n){be(this,"options");be(this,"rules");be(this,"lexer");this.options=n||Pt}space(n){let e=this.rules.block.newline.exec(n);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(n){let e=this.rules.block.code.exec(n);if(e){let t=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?t:zt(t,`
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-DPEG66sS.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-D5D9bzxe.js
similarity index 95%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-DPEG66sS.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-D5D9bzxe.js
index 015caedac8..34e6f9abed 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-DPEG66sS.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-D5D9bzxe.js
@@ -1,4 +1,4 @@
-const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-NPREBnw_.js","assets/_plugin-vue_export-helper-CVv1atPb.js","assets/llm-check-BVkAKrj3.js","assets/index-BSwtImr2.css","assets/index-ymJp8IqW.js","assets/Java-AI-BYpq8IxI.js","assets/index-BStkLDtc.js","assets/index-CxnUfhp1.css","assets/sidebar-esIRL4mJ.js","assets/index-CCgDoIbg.css","assets/index-CF4phE7J.js","assets/useMessage-CDn_n3DJ.js","assets/useMessage-B772OobR.css","assets/index-BqJ0ytNQ.css","assets/index-YUIMsaSk.js","assets/index-C8JmxYqB.css","assets/notFound-BMXKbR2_.js","assets/notFound-Ocgq36M9.css"])))=>i.map(i=>d[i]);
+const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CY7m9hbj.js","assets/_plugin-vue_export-helper-v7-Do0bo.js","assets/llm-check-BVkAKrj3.js","assets/index-BSwtImr2.css","assets/index-BBHw2H_t.js","assets/Java-AI-BYpq8IxI.js","assets/index-DPmrHTQh.js","assets/index-CxnUfhp1.css","assets/sidebar-CTH1WUAT.js","assets/index-Cpq1u-SR.css","assets/index-Cqz3Q9Ww.js","assets/useMessage-CSrhlJeX.js","assets/useMessage-B772OobR.css","assets/index-CX9yXnCu.css","assets/index-ZBJqpxD8.js","assets/index-C8JmxYqB.css","assets/notFound-D1Oib4Q9.js","assets/notFound-Ocgq36M9.css"])))=>i.map(i=>d[i]);
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))o(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&o(i)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();/**
* @vue/shared v3.5.16
* (c) 2018-present Yuxi (Evan) You and Vue contributors
@@ -499,7 +499,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
* vue-router v4.5.1
* (c) 2025 Eduardo San Martin Morote
* @license MIT
- */const Ls=typeof document<"u";function GN(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function G0e(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&GN(e.default)}const At=Object.assign;function gb(e,t){const n={};for(const o in t){const r=t[o];n[o]=Ur(r)?r.map(e):e(r)}return n}const ad=()=>{},Ur=Array.isArray,XN=/#/g,X0e=/&/g,Y0e=/\//g,q0e=/=/g,J0e=/\?/g,YN=/\+/g,Z0e=/%5B/g,Q0e=/%5D/g,qN=/%5E/g,ebe=/%60/g,JN=/%7B/g,tbe=/%7C/g,ZN=/%7D/g,nbe=/%20/g;function O$(e){return encodeURI(""+e).replace(tbe,"|").replace(Z0e,"[").replace(Q0e,"]")}function obe(e){return O$(e).replace(JN,"{").replace(ZN,"}").replace(qN,"^")}function E1(e){return O$(e).replace(YN,"%2B").replace(nbe,"+").replace(XN,"%23").replace(X0e,"%26").replace(ebe,"`").replace(JN,"{").replace(ZN,"}").replace(qN,"^")}function rbe(e){return E1(e).replace(q0e,"%3D")}function abe(e){return O$(e).replace(XN,"%23").replace(J0e,"%3F")}function ibe(e){return e==null?"":abe(e).replace(Y0e,"%2F")}function zd(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const lbe=/\/$/,sbe=e=>e.replace(lbe,"");function hb(e,t,n="/"){let o,r={},a="",i="";const l=t.indexOf("#");let s=t.indexOf("?");return l=0&&(s=-1),s>-1&&(o=t.slice(0,s),a=t.slice(s+1,l>-1?l:t.length),r=e(a)),l>-1&&(o=o||t.slice(0,l),i=t.slice(l,t.length)),o=fbe(o??t,n),{fullPath:o+(a&&"?")+a+i,path:o,query:r,hash:zd(i)}}function cbe(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function UE(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ube(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&Pc(t.matched[o],n.matched[r])&&QN(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Pc(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function QN(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!dbe(e[n],t[n]))return!1;return!0}function dbe(e,t){return Ur(e)?GE(e,t):Ur(t)?GE(t,e):e===t}function GE(e,t){return Ur(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function fbe(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),r=o[o.length-1];(r===".."||r===".")&&o.push("");let a=n.length-1,i,l;for(i=0;i1&&a--;else break;return n.slice(0,a).join("/")+"/"+o.slice(i).join("/")}const fi={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var jd;(function(e){e.pop="pop",e.push="push"})(jd||(jd={}));var id;(function(e){e.back="back",e.forward="forward",e.unknown=""})(id||(id={}));function pbe(e){if(!e)if(Ls){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),sbe(e)}const gbe=/^[^#]+#/;function hbe(e,t){return e.replace(gbe,"#")+t}function vbe(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const ym=()=>({left:window.scrollX,top:window.scrollY});function mbe(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=vbe(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function XE(e,t){return(history.state?history.state.position-t:-1)+e}const _1=new Map;function bbe(e,t){_1.set(e,t)}function ybe(e){const t=_1.get(e);return _1.delete(e),t}let Sbe=()=>location.protocol+"//"+location.host;function e7(e,t){const{pathname:n,search:o,hash:r}=t,a=e.indexOf("#");if(a>-1){let l=r.includes(e.slice(a))?e.slice(a).length:1,s=r.slice(l);return s[0]!=="/"&&(s="/"+s),UE(s,"")}return UE(n,e)+o+r}function Cbe(e,t,n,o){let r=[],a=[],i=null;const l=({state:f})=>{const p=e7(e,location),v=n.value,h=t.value;let m=0;if(f){if(n.value=p,t.value=f,i&&i===v){i=null;return}m=h?f.position-h.position:0}else o(p);r.forEach(b=>{b(n.value,v,{delta:m,type:jd.pop,direction:m?m>0?id.forward:id.back:id.unknown})})};function s(){i=n.value}function u(f){r.push(f);const p=()=>{const v=r.indexOf(f);v>-1&&r.splice(v,1)};return a.push(p),p}function c(){const{history:f}=window;f.state&&f.replaceState(At({},f.state,{scroll:ym()}),"")}function d(){for(const f of a)f();a=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:s,listen:u,destroy:d}}function YE(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?ym():null}}function xbe(e){const{history:t,location:n}=window,o={value:e7(e,n)},r={value:t.state};r.value||a(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(s,u,c){const d=e.indexOf("#"),f=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+s:Sbe()+e+s;try{t[c?"replaceState":"pushState"](u,"",f),r.value=u}catch(p){console.error(p),n[c?"replace":"assign"](f)}}function i(s,u){const c=At({},t.state,YE(r.value.back,s,r.value.forward,!0),u,{position:r.value.position});a(s,c,!0),o.value=s}function l(s,u){const c=At({},r.value,t.state,{forward:s,scroll:ym()});a(c.current,c,!0);const d=At({},YE(o.value,s,null),{position:c.position+1},u);a(s,d,!1),o.value=s}return{location:o,state:r,push:l,replace:i}}function $be(e){e=pbe(e);const t=xbe(e),n=Cbe(e,t.state,t.location,t.replace);function o(a,i=!0){i||n.pauseListeners(),history.go(a)}const r=At({location:"",base:e,go:o,createHref:hbe.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function wbe(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),$be(e)}function Pbe(e){return typeof e=="string"||e&&typeof e=="object"}function t7(e){return typeof e=="string"||typeof e=="symbol"}const n7=Symbol("");var qE;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(qE||(qE={}));function Oc(e,t){return At(new Error,{type:e,[n7]:!0},t)}function $a(e,t){return e instanceof Error&&n7 in e&&(t==null||!!(e.type&t))}const JE="[^/]+?",Obe={sensitive:!1,strict:!1,start:!0,end:!0},Ibe=/[.+*?^${}()[\]/\\]/g;function Tbe(e,t){const n=At({},Obe,t),o=[];let r=n.start?"^":"";const a=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(r+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function o7(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const _be={type:0,value:""},Mbe=/[a-zA-Z0-9_]/;function Abe(e){if(!e)return[[]];if(e==="/")return[[_be]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,o=n;const r=[];let a;function i(){a&&r.push(a),a=[]}let l=0,s,u="",c="";function d(){u&&(n===0?a.push({type:0,value:u}):n===1||n===2||n===3?(a.length>1&&(s==="*"||s==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:c,repeatable:s==="*"||s==="+",optional:s==="*"||s==="?"})):t("Invalid state to consume buffer"),u="")}function f(){u+=s}for(;l{i(C)}:ad}function i(d){if(t7(d)){const f=o.get(d);f&&(o.delete(d),n.splice(n.indexOf(f),1),f.children.forEach(i),f.alias.forEach(i))}else{const f=n.indexOf(d);f>-1&&(n.splice(f,1),d.record.name&&o.delete(d.record.name),d.children.forEach(i),d.alias.forEach(i))}}function l(){return n}function s(d){const f=Lbe(d,n);n.splice(f,0,d),d.record.name&&!t4(d)&&o.set(d.record.name,d)}function u(d,f){let p,v={},h,m;if("name"in d&&d.name){if(p=o.get(d.name),!p)throw Oc(1,{location:d});m=p.record.name,v=At(QE(f.params,p.keys.filter(C=>!C.optional).concat(p.parent?p.parent.keys.filter(C=>C.optional):[]).map(C=>C.name)),d.params&&QE(d.params,p.keys.map(C=>C.name))),h=p.stringify(v)}else if(d.path!=null)h=d.path,p=n.find(C=>C.re.test(h)),p&&(v=p.parse(h),m=p.record.name);else{if(p=f.name?o.get(f.name):n.find(C=>C.re.test(f.path)),!p)throw Oc(1,{location:d,currentLocation:f});m=p.record.name,v=At({},f.params,d.params),h=p.stringify(v)}const b=[];let S=p;for(;S;)b.unshift(S.record),S=S.parent;return{name:m,path:h,params:v,matched:b,meta:kbe(b)}}e.forEach(d=>a(d));function c(){n.length=0,o.clear()}return{addRoute:a,resolve:u,removeRoute:i,clearRoutes:c,getRoutes:l,getRecordMatcher:r}}function QE(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function e4(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Nbe(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Nbe(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function t4(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function kbe(e){return e.reduce((t,n)=>At(t,n.meta),{})}function n4(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function Lbe(e,t){let n=0,o=t.length;for(;n!==o;){const a=n+o>>1;o7(e,t[a])<0?o=a:n=a+1}const r=Fbe(e);return r&&(o=t.lastIndexOf(r,o-1)),o}function Fbe(e){let t=e;for(;t=t.parent;)if(r7(t)&&o7(e,t)===0)return t}function r7({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Bbe(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ra&&E1(a)):[o&&E1(o)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+n,a!=null&&(t+="="+a))})}return t}function Hbe(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=Ur(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const zbe=Symbol(""),r4=Symbol(""),Sm=Symbol(""),I$=Symbol(""),M1=Symbol("");function yu(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Ci(e,t,n,o,r,a=i=>i()){const i=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((l,s)=>{const u=f=>{f===!1?s(Oc(4,{from:n,to:t})):f instanceof Error?s(f):Pbe(f)?s(Oc(2,{from:t,to:f})):(i&&o.enterCallbacks[r]===i&&typeof f=="function"&&i.push(f),l())},c=a(()=>e.call(o&&o.instances[r],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(f=>s(f))})}function vb(e,t,n,o,r=a=>a()){const a=[];for(const i of e)for(const l in i.components){let s=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(GN(s)){const c=(s.__vccOpts||s)[t];c&&a.push(Ci(c,n,o,i,l,r))}else{let u=s();a.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const d=G0e(c)?c.default:c;i.mods[l]=c,i.components[l]=d;const p=(d.__vccOpts||d)[t];return p&&Ci(p,n,o,i,l,r)()}))}}return a}function a4(e){const t=ze(Sm),n=ze(I$),o=E(()=>{const s=Bt(e.to);return t.resolve(s)}),r=E(()=>{const{matched:s}=o.value,{length:u}=s,c=s[u-1],d=n.matched;if(!c||!d.length)return-1;const f=d.findIndex(Pc.bind(null,c));if(f>-1)return f;const p=i4(s[u-2]);return u>1&&i4(c)===p&&d[d.length-1].path!==p?d.findIndex(Pc.bind(null,s[u-2])):f}),a=E(()=>r.value>-1&&Ube(n.params,o.value.params)),i=E(()=>r.value>-1&&r.value===n.matched.length-1&&QN(n.params,o.value.params));function l(s={}){if(Kbe(s)){const u=t[Bt(e.replace)?"replace":"push"](Bt(e.to)).catch(ad);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:o,href:E(()=>o.value.href),isActive:a,isExactActive:i,navigate:l}}function jbe(e){return e.length===1?e[0]:e}const Wbe=le({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:a4,setup(e,{slots:t}){const n=rt(a4(e)),{options:o}=ze(Sm),r=E(()=>({[l4(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[l4(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const a=t.default&&jbe(t.default(n));return e.custom?a:Wr("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},a)}}}),Vbe=Wbe;function Kbe(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Ube(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!Ur(r)||r.length!==o.length||o.some((a,i)=>a!==r[i]))return!1}return!0}function i4(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const l4=(e,t,n)=>e??t??n,Gbe=le({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=ze(M1),r=E(()=>e.route||o.value),a=ze(r4,0),i=E(()=>{let u=Bt(a);const{matched:c}=r.value;let d;for(;(d=c[u])&&!d.components;)u++;return u}),l=E(()=>r.value.matched[i.value]);Xe(r4,E(()=>i.value+1)),Xe(zbe,l),Xe(M1,r);const s=ie();return be(()=>[s.value,l.value,e.name],([u,c,d],[f,p,v])=>{c&&(c.instances[d]=u,p&&p!==c&&u&&u===f&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!Pc(c,p)||!f)&&(c.enterCallbacks[d]||[]).forEach(h=>h(u))},{flush:"post"}),()=>{const u=r.value,c=e.name,d=l.value,f=d&&d.components[c];if(!f)return s4(n.default,{Component:f,route:u});const p=d.props[c],v=p?p===!0?u.params:typeof p=="function"?p(u):p:null,m=Wr(f,At({},v,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(d.instances[c]=null)},ref:s}));return s4(n.default,{Component:m,route:u})||m}}});function s4(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const a7=Gbe;function Xbe(e){const t=Dbe(e.routes,e),n=e.parseQuery||Bbe,o=e.stringifyQuery||o4,r=e.history,a=yu(),i=yu(),l=yu(),s=se(fi);let u=fi;Ls&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=gb.bind(null,Z=>""+Z),d=gb.bind(null,ibe),f=gb.bind(null,zd);function p(Z,re){let ne,X;return t7(Z)?(ne=t.getRecordMatcher(Z),X=re):X=Z,t.addRoute(X,ne)}function v(Z){const re=t.getRecordMatcher(Z);re&&t.removeRoute(re)}function h(){return t.getRoutes().map(Z=>Z.record)}function m(Z){return!!t.getRecordMatcher(Z)}function b(Z,re){if(re=At({},re||s.value),typeof Z=="string"){const J=hb(n,Z,re.path),de=t.resolve({path:J.path},re),fe=r.createHref(J.fullPath);return At(J,de,{params:f(de.params),hash:zd(J.hash),redirectedFrom:void 0,href:fe})}let ne;if(Z.path!=null)ne=At({},Z,{path:hb(n,Z.path,re.path).path});else{const J=At({},Z.params);for(const de in J)J[de]==null&&delete J[de];ne=At({},Z,{params:d(J)}),re.params=d(re.params)}const X=t.resolve(ne,re),te=Z.hash||"";X.params=c(f(X.params));const W=cbe(o,At({},Z,{hash:obe(te),path:X.path})),U=r.createHref(W);return At({fullPath:W,hash:te,query:o===o4?Hbe(Z.query):Z.query||{}},X,{redirectedFrom:void 0,href:U})}function S(Z){return typeof Z=="string"?hb(n,Z,s.value.path):At({},Z)}function C(Z,re){if(u!==Z)return Oc(8,{from:re,to:Z})}function $(Z){return w(Z)}function x(Z){return $(At(S(Z),{replace:!0}))}function P(Z){const re=Z.matched[Z.matched.length-1];if(re&&re.redirect){const{redirect:ne}=re;let X=typeof ne=="function"?ne(Z):ne;return typeof X=="string"&&(X=X.includes("?")||X.includes("#")?X=S(X):{path:X},X.params={}),At({query:Z.query,hash:Z.hash,params:X.path!=null?{}:Z.params},X)}}function w(Z,re){const ne=u=b(Z),X=s.value,te=Z.state,W=Z.force,U=Z.replace===!0,J=P(ne);if(J)return w(At(S(J),{state:typeof J=="object"?At({},te,J.state):te,force:W,replace:U}),re||ne);const de=ne;de.redirectedFrom=re;let fe;return!W&&ube(o,X,ne)&&(fe=Oc(16,{to:de,from:X}),j(X,X,!0,!1)),(fe?Promise.resolve(fe):_(de,X)).catch(pe=>$a(pe)?$a(pe,2)?pe:B(pe):L(pe,de,X)).then(pe=>{if(pe){if($a(pe,2))return w(At({replace:U},S(pe.to),{state:typeof pe.to=="object"?At({},te,pe.to.state):te,force:W}),re||de)}else pe=A(de,X,!0,U,te);return T(de,X,pe),pe})}function O(Z,re){const ne=C(Z,re);return ne?Promise.reject(ne):Promise.resolve()}function I(Z){const re=Q.values().next().value;return re&&typeof re.runWithContext=="function"?re.runWithContext(Z):Z()}function _(Z,re){let ne;const[X,te,W]=Ybe(Z,re);ne=vb(X.reverse(),"beforeRouteLeave",Z,re);for(const J of X)J.leaveGuards.forEach(de=>{ne.push(Ci(de,Z,re))});const U=O.bind(null,Z,re);return ne.push(U),oe(ne).then(()=>{ne=[];for(const J of a.list())ne.push(Ci(J,Z,re));return ne.push(U),oe(ne)}).then(()=>{ne=vb(te,"beforeRouteUpdate",Z,re);for(const J of te)J.updateGuards.forEach(de=>{ne.push(Ci(de,Z,re))});return ne.push(U),oe(ne)}).then(()=>{ne=[];for(const J of W)if(J.beforeEnter)if(Ur(J.beforeEnter))for(const de of J.beforeEnter)ne.push(Ci(de,Z,re));else ne.push(Ci(J.beforeEnter,Z,re));return ne.push(U),oe(ne)}).then(()=>(Z.matched.forEach(J=>J.enterCallbacks={}),ne=vb(W,"beforeRouteEnter",Z,re,I),ne.push(U),oe(ne))).then(()=>{ne=[];for(const J of i.list())ne.push(Ci(J,Z,re));return ne.push(U),oe(ne)}).catch(J=>$a(J,8)?J:Promise.reject(J))}function T(Z,re,ne){l.list().forEach(X=>I(()=>X(Z,re,ne)))}function A(Z,re,ne,X,te){const W=C(Z,re);if(W)return W;const U=re===fi,J=Ls?history.state:{};ne&&(X||U?r.replace(Z.fullPath,At({scroll:U&&J&&J.scroll},te)):r.push(Z.fullPath,te)),s.value=Z,j(Z,re,ne,U),B()}let R;function H(){R||(R=r.listen((Z,re,ne)=>{if(!Y.listening)return;const X=b(Z),te=P(X);if(te){w(At(te,{replace:!0,force:!0}),X).catch(ad);return}u=X;const W=s.value;Ls&&bbe(XE(W.fullPath,ne.delta),ym()),_(X,W).catch(U=>$a(U,12)?U:$a(U,2)?(w(At(S(U.to),{force:!0}),X).then(J=>{$a(J,20)&&!ne.delta&&ne.type===jd.pop&&r.go(-1,!1)}).catch(ad),Promise.reject()):(ne.delta&&r.go(-ne.delta,!1),L(U,X,W))).then(U=>{U=U||A(X,W,!1),U&&(ne.delta&&!$a(U,8)?r.go(-ne.delta,!1):ne.type===jd.pop&&$a(U,20)&&r.go(-1,!1)),T(X,W,U)}).catch(ad)}))}let M=yu(),D=yu(),N;function L(Z,re,ne){B(Z);const X=D.list();return X.length?X.forEach(te=>te(Z,re,ne)):console.error(Z),Promise.reject(Z)}function F(){return N&&s.value!==fi?Promise.resolve():new Promise((Z,re)=>{M.add([Z,re])})}function B(Z){return N||(N=!Z,H(),M.list().forEach(([re,ne])=>Z?ne(Z):re()),M.reset()),Z}function j(Z,re,ne,X){const{scrollBehavior:te}=e;if(!Ls||!te)return Promise.resolve();const W=!ne&&ybe(XE(Z.fullPath,0))||(X||!ne)&&history.state&&history.state.scroll||null;return ot().then(()=>te(Z,re,W)).then(U=>U&&mbe(U)).catch(U=>L(U,Z,re))}const z=Z=>r.go(Z);let G;const Q=new Set,Y={currentRoute:s,listening:!0,addRoute:p,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:m,getRoutes:h,resolve:b,options:e,push:$,replace:x,go:z,back:()=>z(-1),forward:()=>z(1),beforeEach:a.add,beforeResolve:i.add,afterEach:l.add,onError:D.add,isReady:F,install(Z){const re=this;Z.component("RouterLink",Vbe),Z.component("RouterView",a7),Z.config.globalProperties.$router=re,Object.defineProperty(Z.config.globalProperties,"$route",{enumerable:!0,get:()=>Bt(s)}),Ls&&!G&&s.value===fi&&(G=!0,$(r.location).catch(te=>{}));const ne={};for(const te in fi)Object.defineProperty(ne,te,{get:()=>s.value[te],enumerable:!0});Z.provide(Sm,re),Z.provide(I$,S_(ne)),Z.provide(M1,s);const X=Z.unmount;Q.add(Z),Z.unmount=function(){Q.delete(Z),Q.size<1&&(u=fi,R&&R(),R=null,s.value=fi,G=!1,N=!1),X()}}};function oe(Z){return Z.reduce((re,ne)=>re.then(()=>I(ne)),Promise.resolve())}return Y}function Ybe(e,t){const n=[],o=[],r=[],a=Math.max(t.matched.length,e.matched.length);for(let i=0;iPc(u,l))?o.push(l):n.push(l));const s=e.matched[i];s&&(t.matched.find(u=>Pc(u,s))||r.push(s))}return[n,o,r]}function SPe(){return ze(Sm)}function CPe(e){return ze(I$)}const qbe="modulepreload",Jbe=function(e){return"/ui/"+e},c4={},Su=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));r=Promise.allSettled(n.map(s=>{if(s=Jbe(s),s in c4)return;c4[s]=!0;const u=s.endsWith(".css"),c=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${c}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":qbe,u||(d.as="script"),d.crossOrigin="",d.href=s,l&&d.setAttribute("nonce",l),document.head.appendChild(d),u)return new Promise((f,p)=>{d.addEventListener("load",f),d.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${s}`)))})}))}function a(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return r.then(i=>{for(const l of i||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})},i7=[{path:"/",name:"Root",redirect:()=>localStorage.getItem("hasInitialized")==="true"?localStorage.getItem("hasVisitedHome")==="true"?"/direct":"/home":"/init",meta:{skip:!0},children:[{path:"/init",name:"init",component:()=>Su(()=>import("./index-NPREBnw_.js"),__vite__mapDeps([0,1,2,3])),meta:{fullscreen:!0,skip:!0}},{path:"/home",name:"conversation",component:()=>Su(()=>import("./index-ymJp8IqW.js"),__vite__mapDeps([4,5,1,6,7,8,2,9])),meta:{icon:"carbon:chat",fullscreen:!0}},{path:"/direct/:id?",name:"direct",component:()=>Su(()=>import("./index-CF4phE7J.js"),__vite__mapDeps([10,1,8,2,11,12,6,7,13])),meta:{icon:"carbon:chat",fullscreen:!0}},{path:"/configs/:category?",name:"configs",component:()=>Su(()=>import("./index-YUIMsaSk.js").then(e=>e.i),__vite__mapDeps([14,1,11,12,6,7,15])),meta:{icon:"carbon:settings-adjust"}}]},{path:"/:catchAll(.*)",name:"notFound",component:()=>Su(()=>import("./notFound-BMXKbR2_.js"),__vite__mapDeps([16,5,1,17])),meta:{skip:!0}}];function u4(...e){return e.join("/").replace(/\/+/g,"/")}function l7(e,t){if(e)for(const n of e)t&&(n.path=u4(t.path,n.path)),n.redirect&&typeof n.redirect=="string"&&(n.redirect=u4(n.path,n.redirect||"")),l7(n.children,n)}l7(i7,void 0);const Zbe={history:wbe("/ui"),routes:i7},s7=Xbe(Zbe);s7.beforeEach(async(e,t,n)=>{if(e.path==="/init"){n();return}try{const r=await(await fetch("/api/init/status")).json();if(r.success&&!r.initialized){localStorage.removeItem("hasInitialized"),n("/init");return}else r.success&&r.initialized&&localStorage.setItem("hasInitialized","true")}catch(o){if(console.warn("Failed to check initialization status:",o),!(localStorage.getItem("hasInitialized")==="true")){n("/init");return}}n()});const Qbe={id:"app"},eye=le({__name:"App",setup(e){return(t,n)=>(ct(),_t("div",Qbe,[g(Bt(a7))]))}});/*!
+ */const Ls=typeof document<"u";function GN(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function G0e(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&GN(e.default)}const At=Object.assign;function gb(e,t){const n={};for(const o in t){const r=t[o];n[o]=Ur(r)?r.map(e):e(r)}return n}const ad=()=>{},Ur=Array.isArray,XN=/#/g,X0e=/&/g,Y0e=/\//g,q0e=/=/g,J0e=/\?/g,YN=/\+/g,Z0e=/%5B/g,Q0e=/%5D/g,qN=/%5E/g,ebe=/%60/g,JN=/%7B/g,tbe=/%7C/g,ZN=/%7D/g,nbe=/%20/g;function O$(e){return encodeURI(""+e).replace(tbe,"|").replace(Z0e,"[").replace(Q0e,"]")}function obe(e){return O$(e).replace(JN,"{").replace(ZN,"}").replace(qN,"^")}function E1(e){return O$(e).replace(YN,"%2B").replace(nbe,"+").replace(XN,"%23").replace(X0e,"%26").replace(ebe,"`").replace(JN,"{").replace(ZN,"}").replace(qN,"^")}function rbe(e){return E1(e).replace(q0e,"%3D")}function abe(e){return O$(e).replace(XN,"%23").replace(J0e,"%3F")}function ibe(e){return e==null?"":abe(e).replace(Y0e,"%2F")}function zd(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const lbe=/\/$/,sbe=e=>e.replace(lbe,"");function hb(e,t,n="/"){let o,r={},a="",i="";const l=t.indexOf("#");let s=t.indexOf("?");return l=0&&(s=-1),s>-1&&(o=t.slice(0,s),a=t.slice(s+1,l>-1?l:t.length),r=e(a)),l>-1&&(o=o||t.slice(0,l),i=t.slice(l,t.length)),o=fbe(o??t,n),{fullPath:o+(a&&"?")+a+i,path:o,query:r,hash:zd(i)}}function cbe(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function UE(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ube(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&Pc(t.matched[o],n.matched[r])&&QN(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Pc(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function QN(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!dbe(e[n],t[n]))return!1;return!0}function dbe(e,t){return Ur(e)?GE(e,t):Ur(t)?GE(t,e):e===t}function GE(e,t){return Ur(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function fbe(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),r=o[o.length-1];(r===".."||r===".")&&o.push("");let a=n.length-1,i,l;for(i=0;i1&&a--;else break;return n.slice(0,a).join("/")+"/"+o.slice(i).join("/")}const fi={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var jd;(function(e){e.pop="pop",e.push="push"})(jd||(jd={}));var id;(function(e){e.back="back",e.forward="forward",e.unknown=""})(id||(id={}));function pbe(e){if(!e)if(Ls){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),sbe(e)}const gbe=/^[^#]+#/;function hbe(e,t){return e.replace(gbe,"#")+t}function vbe(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const ym=()=>({left:window.scrollX,top:window.scrollY});function mbe(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=vbe(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function XE(e,t){return(history.state?history.state.position-t:-1)+e}const _1=new Map;function bbe(e,t){_1.set(e,t)}function ybe(e){const t=_1.get(e);return _1.delete(e),t}let Sbe=()=>location.protocol+"//"+location.host;function e7(e,t){const{pathname:n,search:o,hash:r}=t,a=e.indexOf("#");if(a>-1){let l=r.includes(e.slice(a))?e.slice(a).length:1,s=r.slice(l);return s[0]!=="/"&&(s="/"+s),UE(s,"")}return UE(n,e)+o+r}function Cbe(e,t,n,o){let r=[],a=[],i=null;const l=({state:f})=>{const p=e7(e,location),v=n.value,h=t.value;let m=0;if(f){if(n.value=p,t.value=f,i&&i===v){i=null;return}m=h?f.position-h.position:0}else o(p);r.forEach(b=>{b(n.value,v,{delta:m,type:jd.pop,direction:m?m>0?id.forward:id.back:id.unknown})})};function s(){i=n.value}function u(f){r.push(f);const p=()=>{const v=r.indexOf(f);v>-1&&r.splice(v,1)};return a.push(p),p}function c(){const{history:f}=window;f.state&&f.replaceState(At({},f.state,{scroll:ym()}),"")}function d(){for(const f of a)f();a=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:s,listen:u,destroy:d}}function YE(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?ym():null}}function xbe(e){const{history:t,location:n}=window,o={value:e7(e,n)},r={value:t.state};r.value||a(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(s,u,c){const d=e.indexOf("#"),f=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+s:Sbe()+e+s;try{t[c?"replaceState":"pushState"](u,"",f),r.value=u}catch(p){console.error(p),n[c?"replace":"assign"](f)}}function i(s,u){const c=At({},t.state,YE(r.value.back,s,r.value.forward,!0),u,{position:r.value.position});a(s,c,!0),o.value=s}function l(s,u){const c=At({},r.value,t.state,{forward:s,scroll:ym()});a(c.current,c,!0);const d=At({},YE(o.value,s,null),{position:c.position+1},u);a(s,d,!1),o.value=s}return{location:o,state:r,push:l,replace:i}}function $be(e){e=pbe(e);const t=xbe(e),n=Cbe(e,t.state,t.location,t.replace);function o(a,i=!0){i||n.pauseListeners(),history.go(a)}const r=At({location:"",base:e,go:o,createHref:hbe.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function wbe(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),$be(e)}function Pbe(e){return typeof e=="string"||e&&typeof e=="object"}function t7(e){return typeof e=="string"||typeof e=="symbol"}const n7=Symbol("");var qE;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(qE||(qE={}));function Oc(e,t){return At(new Error,{type:e,[n7]:!0},t)}function $a(e,t){return e instanceof Error&&n7 in e&&(t==null||!!(e.type&t))}const JE="[^/]+?",Obe={sensitive:!1,strict:!1,start:!0,end:!0},Ibe=/[.+*?^${}()[\]/\\]/g;function Tbe(e,t){const n=At({},Obe,t),o=[];let r=n.start?"^":"";const a=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(r+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function o7(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const _be={type:0,value:""},Mbe=/[a-zA-Z0-9_]/;function Abe(e){if(!e)return[[]];if(e==="/")return[[_be]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${u}": ${p}`)}let n=0,o=n;const r=[];let a;function i(){a&&r.push(a),a=[]}let l=0,s,u="",c="";function d(){u&&(n===0?a.push({type:0,value:u}):n===1||n===2||n===3?(a.length>1&&(s==="*"||s==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:u,regexp:c,repeatable:s==="*"||s==="+",optional:s==="*"||s==="?"})):t("Invalid state to consume buffer"),u="")}function f(){u+=s}for(;l{i(C)}:ad}function i(d){if(t7(d)){const f=o.get(d);f&&(o.delete(d),n.splice(n.indexOf(f),1),f.children.forEach(i),f.alias.forEach(i))}else{const f=n.indexOf(d);f>-1&&(n.splice(f,1),d.record.name&&o.delete(d.record.name),d.children.forEach(i),d.alias.forEach(i))}}function l(){return n}function s(d){const f=Lbe(d,n);n.splice(f,0,d),d.record.name&&!t4(d)&&o.set(d.record.name,d)}function u(d,f){let p,v={},h,m;if("name"in d&&d.name){if(p=o.get(d.name),!p)throw Oc(1,{location:d});m=p.record.name,v=At(QE(f.params,p.keys.filter(C=>!C.optional).concat(p.parent?p.parent.keys.filter(C=>C.optional):[]).map(C=>C.name)),d.params&&QE(d.params,p.keys.map(C=>C.name))),h=p.stringify(v)}else if(d.path!=null)h=d.path,p=n.find(C=>C.re.test(h)),p&&(v=p.parse(h),m=p.record.name);else{if(p=f.name?o.get(f.name):n.find(C=>C.re.test(f.path)),!p)throw Oc(1,{location:d,currentLocation:f});m=p.record.name,v=At({},f.params,d.params),h=p.stringify(v)}const b=[];let S=p;for(;S;)b.unshift(S.record),S=S.parent;return{name:m,path:h,params:v,matched:b,meta:kbe(b)}}e.forEach(d=>a(d));function c(){n.length=0,o.clear()}return{addRoute:a,resolve:u,removeRoute:i,clearRoutes:c,getRoutes:l,getRecordMatcher:r}}function QE(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function e4(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Nbe(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Nbe(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function t4(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function kbe(e){return e.reduce((t,n)=>At(t,n.meta),{})}function n4(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function Lbe(e,t){let n=0,o=t.length;for(;n!==o;){const a=n+o>>1;o7(e,t[a])<0?o=a:n=a+1}const r=Fbe(e);return r&&(o=t.lastIndexOf(r,o-1)),o}function Fbe(e){let t=e;for(;t=t.parent;)if(r7(t)&&o7(e,t)===0)return t}function r7({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Bbe(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ra&&E1(a)):[o&&E1(o)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+n,a!=null&&(t+="="+a))})}return t}function Hbe(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=Ur(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const zbe=Symbol(""),r4=Symbol(""),Sm=Symbol(""),I$=Symbol(""),M1=Symbol("");function yu(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Ci(e,t,n,o,r,a=i=>i()){const i=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((l,s)=>{const u=f=>{f===!1?s(Oc(4,{from:n,to:t})):f instanceof Error?s(f):Pbe(f)?s(Oc(2,{from:t,to:f})):(i&&o.enterCallbacks[r]===i&&typeof f=="function"&&i.push(f),l())},c=a(()=>e.call(o&&o.instances[r],t,n,u));let d=Promise.resolve(c);e.length<3&&(d=d.then(u)),d.catch(f=>s(f))})}function vb(e,t,n,o,r=a=>a()){const a=[];for(const i of e)for(const l in i.components){let s=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(GN(s)){const c=(s.__vccOpts||s)[t];c&&a.push(Ci(c,n,o,i,l,r))}else{let u=s();a.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const d=G0e(c)?c.default:c;i.mods[l]=c,i.components[l]=d;const p=(d.__vccOpts||d)[t];return p&&Ci(p,n,o,i,l,r)()}))}}return a}function a4(e){const t=ze(Sm),n=ze(I$),o=E(()=>{const s=Bt(e.to);return t.resolve(s)}),r=E(()=>{const{matched:s}=o.value,{length:u}=s,c=s[u-1],d=n.matched;if(!c||!d.length)return-1;const f=d.findIndex(Pc.bind(null,c));if(f>-1)return f;const p=i4(s[u-2]);return u>1&&i4(c)===p&&d[d.length-1].path!==p?d.findIndex(Pc.bind(null,s[u-2])):f}),a=E(()=>r.value>-1&&Ube(n.params,o.value.params)),i=E(()=>r.value>-1&&r.value===n.matched.length-1&&QN(n.params,o.value.params));function l(s={}){if(Kbe(s)){const u=t[Bt(e.replace)?"replace":"push"](Bt(e.to)).catch(ad);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:o,href:E(()=>o.value.href),isActive:a,isExactActive:i,navigate:l}}function jbe(e){return e.length===1?e[0]:e}const Wbe=le({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:a4,setup(e,{slots:t}){const n=rt(a4(e)),{options:o}=ze(Sm),r=E(()=>({[l4(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[l4(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const a=t.default&&jbe(t.default(n));return e.custom?a:Wr("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},a)}}}),Vbe=Wbe;function Kbe(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Ube(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!Ur(r)||r.length!==o.length||o.some((a,i)=>a!==r[i]))return!1}return!0}function i4(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const l4=(e,t,n)=>e??t??n,Gbe=le({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=ze(M1),r=E(()=>e.route||o.value),a=ze(r4,0),i=E(()=>{let u=Bt(a);const{matched:c}=r.value;let d;for(;(d=c[u])&&!d.components;)u++;return u}),l=E(()=>r.value.matched[i.value]);Xe(r4,E(()=>i.value+1)),Xe(zbe,l),Xe(M1,r);const s=ie();return be(()=>[s.value,l.value,e.name],([u,c,d],[f,p,v])=>{c&&(c.instances[d]=u,p&&p!==c&&u&&u===f&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),u&&c&&(!p||!Pc(c,p)||!f)&&(c.enterCallbacks[d]||[]).forEach(h=>h(u))},{flush:"post"}),()=>{const u=r.value,c=e.name,d=l.value,f=d&&d.components[c];if(!f)return s4(n.default,{Component:f,route:u});const p=d.props[c],v=p?p===!0?u.params:typeof p=="function"?p(u):p:null,m=Wr(f,At({},v,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(d.instances[c]=null)},ref:s}));return s4(n.default,{Component:m,route:u})||m}}});function s4(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const a7=Gbe;function Xbe(e){const t=Dbe(e.routes,e),n=e.parseQuery||Bbe,o=e.stringifyQuery||o4,r=e.history,a=yu(),i=yu(),l=yu(),s=se(fi);let u=fi;Ls&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=gb.bind(null,Z=>""+Z),d=gb.bind(null,ibe),f=gb.bind(null,zd);function p(Z,re){let ne,X;return t7(Z)?(ne=t.getRecordMatcher(Z),X=re):X=Z,t.addRoute(X,ne)}function v(Z){const re=t.getRecordMatcher(Z);re&&t.removeRoute(re)}function h(){return t.getRoutes().map(Z=>Z.record)}function m(Z){return!!t.getRecordMatcher(Z)}function b(Z,re){if(re=At({},re||s.value),typeof Z=="string"){const J=hb(n,Z,re.path),de=t.resolve({path:J.path},re),fe=r.createHref(J.fullPath);return At(J,de,{params:f(de.params),hash:zd(J.hash),redirectedFrom:void 0,href:fe})}let ne;if(Z.path!=null)ne=At({},Z,{path:hb(n,Z.path,re.path).path});else{const J=At({},Z.params);for(const de in J)J[de]==null&&delete J[de];ne=At({},Z,{params:d(J)}),re.params=d(re.params)}const X=t.resolve(ne,re),te=Z.hash||"";X.params=c(f(X.params));const W=cbe(o,At({},Z,{hash:obe(te),path:X.path})),U=r.createHref(W);return At({fullPath:W,hash:te,query:o===o4?Hbe(Z.query):Z.query||{}},X,{redirectedFrom:void 0,href:U})}function S(Z){return typeof Z=="string"?hb(n,Z,s.value.path):At({},Z)}function C(Z,re){if(u!==Z)return Oc(8,{from:re,to:Z})}function $(Z){return w(Z)}function x(Z){return $(At(S(Z),{replace:!0}))}function P(Z){const re=Z.matched[Z.matched.length-1];if(re&&re.redirect){const{redirect:ne}=re;let X=typeof ne=="function"?ne(Z):ne;return typeof X=="string"&&(X=X.includes("?")||X.includes("#")?X=S(X):{path:X},X.params={}),At({query:Z.query,hash:Z.hash,params:X.path!=null?{}:Z.params},X)}}function w(Z,re){const ne=u=b(Z),X=s.value,te=Z.state,W=Z.force,U=Z.replace===!0,J=P(ne);if(J)return w(At(S(J),{state:typeof J=="object"?At({},te,J.state):te,force:W,replace:U}),re||ne);const de=ne;de.redirectedFrom=re;let fe;return!W&&ube(o,X,ne)&&(fe=Oc(16,{to:de,from:X}),j(X,X,!0,!1)),(fe?Promise.resolve(fe):_(de,X)).catch(pe=>$a(pe)?$a(pe,2)?pe:B(pe):L(pe,de,X)).then(pe=>{if(pe){if($a(pe,2))return w(At({replace:U},S(pe.to),{state:typeof pe.to=="object"?At({},te,pe.to.state):te,force:W}),re||de)}else pe=A(de,X,!0,U,te);return T(de,X,pe),pe})}function O(Z,re){const ne=C(Z,re);return ne?Promise.reject(ne):Promise.resolve()}function I(Z){const re=Q.values().next().value;return re&&typeof re.runWithContext=="function"?re.runWithContext(Z):Z()}function _(Z,re){let ne;const[X,te,W]=Ybe(Z,re);ne=vb(X.reverse(),"beforeRouteLeave",Z,re);for(const J of X)J.leaveGuards.forEach(de=>{ne.push(Ci(de,Z,re))});const U=O.bind(null,Z,re);return ne.push(U),oe(ne).then(()=>{ne=[];for(const J of a.list())ne.push(Ci(J,Z,re));return ne.push(U),oe(ne)}).then(()=>{ne=vb(te,"beforeRouteUpdate",Z,re);for(const J of te)J.updateGuards.forEach(de=>{ne.push(Ci(de,Z,re))});return ne.push(U),oe(ne)}).then(()=>{ne=[];for(const J of W)if(J.beforeEnter)if(Ur(J.beforeEnter))for(const de of J.beforeEnter)ne.push(Ci(de,Z,re));else ne.push(Ci(J.beforeEnter,Z,re));return ne.push(U),oe(ne)}).then(()=>(Z.matched.forEach(J=>J.enterCallbacks={}),ne=vb(W,"beforeRouteEnter",Z,re,I),ne.push(U),oe(ne))).then(()=>{ne=[];for(const J of i.list())ne.push(Ci(J,Z,re));return ne.push(U),oe(ne)}).catch(J=>$a(J,8)?J:Promise.reject(J))}function T(Z,re,ne){l.list().forEach(X=>I(()=>X(Z,re,ne)))}function A(Z,re,ne,X,te){const W=C(Z,re);if(W)return W;const U=re===fi,J=Ls?history.state:{};ne&&(X||U?r.replace(Z.fullPath,At({scroll:U&&J&&J.scroll},te)):r.push(Z.fullPath,te)),s.value=Z,j(Z,re,ne,U),B()}let R;function H(){R||(R=r.listen((Z,re,ne)=>{if(!Y.listening)return;const X=b(Z),te=P(X);if(te){w(At(te,{replace:!0,force:!0}),X).catch(ad);return}u=X;const W=s.value;Ls&&bbe(XE(W.fullPath,ne.delta),ym()),_(X,W).catch(U=>$a(U,12)?U:$a(U,2)?(w(At(S(U.to),{force:!0}),X).then(J=>{$a(J,20)&&!ne.delta&&ne.type===jd.pop&&r.go(-1,!1)}).catch(ad),Promise.reject()):(ne.delta&&r.go(-ne.delta,!1),L(U,X,W))).then(U=>{U=U||A(X,W,!1),U&&(ne.delta&&!$a(U,8)?r.go(-ne.delta,!1):ne.type===jd.pop&&$a(U,20)&&r.go(-1,!1)),T(X,W,U)}).catch(ad)}))}let M=yu(),D=yu(),N;function L(Z,re,ne){B(Z);const X=D.list();return X.length?X.forEach(te=>te(Z,re,ne)):console.error(Z),Promise.reject(Z)}function F(){return N&&s.value!==fi?Promise.resolve():new Promise((Z,re)=>{M.add([Z,re])})}function B(Z){return N||(N=!Z,H(),M.list().forEach(([re,ne])=>Z?ne(Z):re()),M.reset()),Z}function j(Z,re,ne,X){const{scrollBehavior:te}=e;if(!Ls||!te)return Promise.resolve();const W=!ne&&ybe(XE(Z.fullPath,0))||(X||!ne)&&history.state&&history.state.scroll||null;return ot().then(()=>te(Z,re,W)).then(U=>U&&mbe(U)).catch(U=>L(U,Z,re))}const z=Z=>r.go(Z);let G;const Q=new Set,Y={currentRoute:s,listening:!0,addRoute:p,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:m,getRoutes:h,resolve:b,options:e,push:$,replace:x,go:z,back:()=>z(-1),forward:()=>z(1),beforeEach:a.add,beforeResolve:i.add,afterEach:l.add,onError:D.add,isReady:F,install(Z){const re=this;Z.component("RouterLink",Vbe),Z.component("RouterView",a7),Z.config.globalProperties.$router=re,Object.defineProperty(Z.config.globalProperties,"$route",{enumerable:!0,get:()=>Bt(s)}),Ls&&!G&&s.value===fi&&(G=!0,$(r.location).catch(te=>{}));const ne={};for(const te in fi)Object.defineProperty(ne,te,{get:()=>s.value[te],enumerable:!0});Z.provide(Sm,re),Z.provide(I$,S_(ne)),Z.provide(M1,s);const X=Z.unmount;Q.add(Z),Z.unmount=function(){Q.delete(Z),Q.size<1&&(u=fi,R&&R(),R=null,s.value=fi,G=!1,N=!1),X()}}};function oe(Z){return Z.reduce((re,ne)=>re.then(()=>I(ne)),Promise.resolve())}return Y}function Ybe(e,t){const n=[],o=[],r=[],a=Math.max(t.matched.length,e.matched.length);for(let i=0;iPc(u,l))?o.push(l):n.push(l));const s=e.matched[i];s&&(t.matched.find(u=>Pc(u,s))||r.push(s))}return[n,o,r]}function SPe(){return ze(Sm)}function CPe(e){return ze(I$)}const qbe="modulepreload",Jbe=function(e){return"/ui/"+e},c4={},Su=function(t,n,o){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));r=Promise.allSettled(n.map(s=>{if(s=Jbe(s),s in c4)return;c4[s]=!0;const u=s.endsWith(".css"),c=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${c}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":qbe,u||(d.as="script"),d.crossOrigin="",d.href=s,l&&d.setAttribute("nonce",l),document.head.appendChild(d),u)return new Promise((f,p)=>{d.addEventListener("load",f),d.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${s}`)))})}))}function a(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return r.then(i=>{for(const l of i||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})},i7=[{path:"/",name:"Root",redirect:()=>localStorage.getItem("hasInitialized")==="true"?localStorage.getItem("hasVisitedHome")==="true"?"/direct":"/home":"/init",meta:{skip:!0},children:[{path:"/init",name:"init",component:()=>Su(()=>import("./index-CY7m9hbj.js"),__vite__mapDeps([0,1,2,3])),meta:{fullscreen:!0,skip:!0}},{path:"/home",name:"conversation",component:()=>Su(()=>import("./index-BBHw2H_t.js"),__vite__mapDeps([4,5,1,6,7,8,2,9])),meta:{icon:"carbon:chat",fullscreen:!0}},{path:"/direct/:id?",name:"direct",component:()=>Su(()=>import("./index-Cqz3Q9Ww.js"),__vite__mapDeps([10,1,8,2,11,12,6,7,13])),meta:{icon:"carbon:chat",fullscreen:!0}},{path:"/configs/:category?",name:"configs",component:()=>Su(()=>import("./index-ZBJqpxD8.js").then(e=>e.i),__vite__mapDeps([14,1,11,12,6,7,15])),meta:{icon:"carbon:settings-adjust"}}]},{path:"/:catchAll(.*)",name:"notFound",component:()=>Su(()=>import("./notFound-D1Oib4Q9.js"),__vite__mapDeps([16,5,1,17])),meta:{skip:!0}}];function u4(...e){return e.join("/").replace(/\/+/g,"/")}function l7(e,t){if(e)for(const n of e)t&&(n.path=u4(t.path,n.path)),n.redirect&&typeof n.redirect=="string"&&(n.redirect=u4(n.path,n.redirect||"")),l7(n.children,n)}l7(i7,void 0);const Zbe={history:wbe("/ui"),routes:i7},s7=Xbe(Zbe);s7.beforeEach(async(e,t,n)=>{if(e.path==="/init"){n();return}try{const r=await(await fetch("/api/init/status")).json();if(r.success&&!r.initialized){localStorage.removeItem("hasInitialized"),n("/init");return}else r.success&&r.initialized&&localStorage.setItem("hasInitialized","true")}catch(o){if(console.warn("Failed to check initialization status:",o),!(localStorage.getItem("hasInitialized")==="true")){n("/init");return}}n()});const Qbe={id:"app"},eye=le({__name:"App",setup(e){return(t,n)=>(ct(),_t("div",Qbe,[g(Bt(a7))]))}});/*!
* shared v9.14.4
* (c) 2025 kazuya kawaguchi
* Released under the MIT License.
@@ -559,7 +559,9 @@ MYSQL_USER:root`,connectionTypePlaceholder:"Please select connection type",argsF
Current version count: {versionCount}`,saveSuccess:`Save successful: {message}
Current version count: {versionCount}`,saveStatus:"Save status: {message}",saveFailed:"Failed to save plan modifications",generateSuccess:"Plan generated successfully! Template ID: {templateId}",generateFailed:"Failed to generate plan",updateSuccess:"Plan updated successfully!",updateFailed:"Failed to update plan",executeFailed:"Failed to execute plan",unknown:"Unknown",newTemplateName:"New Execution Plan",newTemplateDescription:"Please use the plan generator to create a new plan template",generatedTemplateDescription:"Plan template created by generator",defaultExecutionPlanTitle:"Execution Plan",planId:"Plan Template ID",steps:"Steps",tasks:"任务列表",subtask:"Subtask",agent:"Agent",stepRequirement:"Task Requirement",stepRequirementPlaceholder:"Please enter the specific requirements and description for this task...",terminateColumns:"Task Output Requirements Description",terminateColumnsPlaceholder:"Please enter task output requirements description...",titlePlaceholder:"Please enter plan title...",moveUp:"Move Up",moveDown:"Move Down",removeStep:"Remove Step",addStep:"Add Step",addFirstStep:"Add First Step",noSteps:"No steps yet, click the button below to start adding",jsonPreview:"JSON Preview",showJson:"Show JSON",hideJson:"Hide JSON",refreshAgents:"Refresh Agents",agentLoadError:"Failed to load agents",retryLoadAgents:"Retry loading agents",availableTools:"Available Tools",loadingFailed:"Loading failed",networkError:"Network error",apiError:"API call failed",resizeHint:"Drag to resize"},toolSelection:{title:"Select Tools",searchPlaceholder:"Search tools...",sortByGroup:"Sort by Service Group",sortByName:"Sort by Name",sortByStatus:"Sort by Status",summary:"{groups} service groups, {tools} tools ({selected} selected)",enableAll:"Enable All",noToolsFound:"No tools found"},direct:{planTemplateIdNotFound:"Plan template ID not found",executionFailedNoPlanId:"Plan execution failed: No valid plan ID returned",executionFailed:"Plan execution failed",configuration:"config",panelResizeHint:"Drag to resize panel"},modal:{close:"Close",cancel:"Cancel",confirm:"Confirm",save:"Save",delete:"Delete",edit:"Edit"},editor:{format:"Format",undo:"Undo",redo:"Redo",find:"Find",replace:"Replace",gotoLine:"Go to Line",selectAll:"Select All",toggleWordWrap:"Toggle Word Wrap",toggleMinimap:"Toggle Minimap",increaseFontSize:"Increase Font Size",decreaseFontSize:"Decrease Font Size",resetFontSize:"Reset Font Size"},validation:{required:"Content cannot be empty"},theme:{switch:"Switch Theme",light:"Light Theme",dark:"Dark Theme",auto:"Follow System"},error:{notFound:"Page Not Found",notFoundDescription:"Sorry, the page you are looking for does not exist",serverError:"Server Error",serverErrorDescription:"Server encountered some issues, please try again later",networkError:"Network Error",networkErrorDescription:"Network connection failed, please check your network settings",backToHome:"Back to Home",retry:"Retry"},time:{now:"Just now",unknown:"Unknown time",minuteAgo:"{count} minutes ago",hourAgo:"{count} hours ago",dayAgo:"{count} days ago",weekAgo:"{count} weeks ago",monthAgo:"{count} months ago",yearAgo:"{count} years ago",today:"Today",yesterday:"Yesterday",tomorrow:"Tomorrow",thisWeek:"This Week",lastWeek:"Last Week",nextWeek:"Next Week",thisMonth:"This Month",lastMonth:"Last Month",nextMonth:"Next Month",thisYear:"This Year",lastYear:"Last Year",nextYear:"Next Year"},stats:{total:"Total",count:"Count",percentage:"Percentage",average:"Average",median:"Median",min:"Minimum",max:"Maximum",sum:"Sum",growth:"Growth",decline:"Decline",noData:"No data",loading:"Loading data...",error:"Failed to load data"},home:{welcomeTitle:"Welcome to JManus!",welcomeSubtitle:"Your Java AI intelligent assistant, helping you build and complete various tasks.",tagline:"Java AI Agent",inputPlaceholder:"Describe what you want to build or accomplish...",directButton:"Enter Workbench Directly",examples:{stockPrice:{title:"Query Stock Price",description:"Get today's latest stock price for Alphabet (Agent can use browser tools)",prompt:`Use browser based on Google to query today's Alphabet stock price and return the latest stock price
-`},weather:{title:"Query Weather",description:"Get today's weather in New York (Agent can use MCP tool services)",prompt:"Use browser, based on Google, to query today's weather in New York"},queryplan:{title:"Query Person Info",description:"Query all information about Shenxun Ali (to demonstrate infinite context capability)",prompt:"Use browser, based on Baidu, to query person info",planTitle:"Query all information about Shenxun Ali (to demonstrate infinite context capability)",step1:"[BROWSER_AGENT] Search for Shenxun Ali through Baidu, get the first page HTML data, merge and aggregate to html_data directory",step1Output:"Storage directory path",step2:"[BROWSER_AGENT] Find all valid web links about Shenxun Ali from html_data directory, output to link.md",step2Output:"URL address, description"},ainovel:{title:"AI Novel Creation",description:"AI gradually defeats humanity themed novel (to demonstrate long-form content output)",prompt:"Create a novel about artificial intelligence gradually defeating humanity, including 10 chapters",planTitle:"AI Gradually Defeats Humans Novel Creation Plan",step1:'[TEXT_FILE_AGENT] Create a file with novel title and chapter titles, expecting a novel with 10 chapters, output outline to novel.md, each chapter uses secondary title, only write chapter titles in current step, novel title is "AI Gradually Defeats Humans"',step1Output:"File name",step2:"[TEXT_FILE_AGENT] Get chapter title information from novel.md file, then improve each chapter content in sequence, only improve one chapter content per round, use replace to update content, each chapter requires 3000 words, do not query all document content after updating each chapter",step2Output:"File name"},formInputDemo:{title:"AI Intelligent Dynamic Form Demo",description:"Experience AI intelligent analysis of user needs and dynamic generation of relevant form fields",prompt:"Demonstrate how AI intelligently generates targeted form fields based on user questions",planTitle:"AI Intelligent Dynamic Form Demo Plan",step1:"[INTELLIGENT_FORM_AGENT] Launch intelligent dynamic form demo, actively analyze user needs and dynamically generate relevant form fields, showcasing AI intelligent form generation capabilities",step1Output:"Demo results, user interaction data"}}},rightPanel:{stepExecutionDetails:"Step Execution Details",noStepSelected:"No Step Selected",selectStepHint:"Please select an execution step in the left chat area to view details",stepExecuting:"Step is executing, please wait...",step:"Step",executingAgent:"Executing Agent",description:"Description",request:"Request",callingModel:"Calling Model",executionResult:"Execution Result",executing:"Executing...",thinkAndActionSteps:"Think & Action Steps",thinking:"Thinking",action:"Action",input:"Input",output:"Output",tool:"Tool",toolParameters:"Tool Parameters",noStepDetails:"No detailed step information available",scrollToBottom:"Scroll to Bottom",stepInfo:"Step Information",stepName:"Step Name",noExecutionInfo:"No detailed execution information available for this step",subPlan:"Sub Execution Plan",subStep:"Sub Step",subPlanId:"Sub Plan ID",title:"Title",stepNumber:"Step {number}",status:{label:"Status",completed:"Completed",executing:"Executing",pending:"Pending"},tabs:{details:"Step Execution Details",chat:"Chat",code:"Code"},chatBubbles:{analyzeRequirements:{title:"Analyze Requirements",content:"Breaking down your request into actionable steps: 1) Create user entity, 2) Implement user service, 3) Build REST endpoints, 4) Add validation and error handling."},generateCode:{title:"Generate Code",content:"Creating Spring Boot REST API with user management CRUD operations. Including proper HTTP status codes and error handling."},codeGenerated:{title:"Code Generated",content:"Successfully generated UserController with all CRUD operations. The code includes proper REST conventions, error handling, and follows Spring Boot best practices."}},timeAgo:{justNow:"Just now",minutesAgo:"{n} minutes ago",hoursAgo:"{n} hours ago",daysAgo:"{n} days ago"},defaultStepTitle:"Step {number}"},cronTask:{title:"Cron Task Management",addTask:"Cron Task",noTasks:"No cron tasks",taskName:"Task Name",taskNamePlaceholder:"Please enter task name",cronExpression:"Cron Expression",cronExpressionPlaceholder:"e.g: 0 0 12 * * ?",cronExpressionHelp:"Format: second minute hour day month week year",taskDescription:"Task Description",taskDescriptionPlaceholder:"Please enter task description",taskStatus:"Task Status",taskDetail:"Task Detail",executeOnce:"Execute Once",edit:"Edit",operations:"Operations",enable:"Enable",disable:"Disable",delete:"Delete",deleteConfirm:"Confirm Delete",deleteConfirmMessage:'Are you sure you want to delete task "{taskName}"? This action cannot be undone.',nextExecution:"Next Execution Time",createTime:"Create Time",updateTime:"Update Time",active:"Active",inactive:"Inactive",template:"Example: Help me collect today's AI news every day at 8 AM",planTemplate:"Plan Template",linkTemplate:"Link Template",noTemplate:"No Template",selectTemplate:"Select Template",templateHelpText:"After selection, the cron task will execute according to the defined plan",createTask:"Create Cron Task",selectCreateMethod:"Please select creation method",createWithJmanus:"Create with Jmanus",createWithJmanusDesc:"Create cron task with AI assistant guidance",createManually:"Create Manually",createManuallyDesc:"Fill in task information yourself"},memory:{title:"Memory Management",searchPlaceholder:"Search Memory",size:"memories",newNamePlaceholder:"Enter a new name...",changeName:"Change Name",save:"save",cancel:"cancel",delete:"delete",deleteHint:"delete hint",deleteHintPrefix:"Are you sure you want to delete the memory with ID",deleteHintSuffix:"? This action cannot be undone.",selectMemory:"Select Memory",clearMemory:"Clear Memory",newChat:"new chat"},selectCommon:{pleaseSelect:"Please select..."}},cSe={conversation:"对话",plan:"计划执行",backHome:"返回首页",noPageTip:"您访问的页面不存在。",init:{welcome:"欢迎使用 JManus",welcomeStep:"欢迎使用 JManus",description:"首次使用需要配置 LLM 服务来启用 AI 功能。您可以选择使用阿里云百炼服务或自定义 OpenAI 兼容的 API 服务。",languageStepDescription:"请选择您的语言偏好,这将作为默认界面语言。",stepLanguage:"语言选择",stepModel:"模型配置",selectLanguageLabel:"选择语言",continueToModel:"继续配置模型",back:"返回",configModeLabel:"配置模式",dashscopeMode:"阿里云百炼(推荐)",dashscopeModeDesc:"使用阿里云百炼服务,只需提供 API 密钥即可快速开始",customMode:"自定义 OpenAI 兼容服务",customModeDesc:"配置任何兼容 OpenAI API 格式的服务,如 Ollama、LocalAI 等",apiKeyLabel:"DashScope API 密钥",apiKeyPlaceholder:"请输入您的 API 密钥",apiKeyHint:"您可以从阿里云百炼控制台获取 API 密钥。",getApiKey:"获取 API 密钥",showApiKey:"显示 API 密钥",hideApiKey:"隐藏 API 密钥",baseUrlLabel:"API 基础地址",baseUrlPlaceholder:"https://api.openai.com 或您的自定义地址",baseUrlHint:"OpenAI 兼容的 API 基础地址,如 http://localhost:11434",customApiKeyLabel:"API 密钥",customApiKeyPlaceholder:"请输入您的 API 密钥",modelNameLabel:"模型名称",modelNamePlaceholder:"gpt-4.1 或您使用的模型名称",modelNameHint:"请输入您要使用的模型名称,如 gemini-2.5-pro、gpt-4.1 等",modelDisplayNameLabel:"模型显示名称(可选)",modelDisplayNamePlaceholder:"模型的显示名称",saveAndContinue:"保存并继续",saving:"保存中...",apiKeyRequired:"API 密钥不能为空",baseUrlRequired:"API 基础地址不能为空",modelNameRequired:"模型名称不能为空",saveFailed:"保存配置失败",networkError:"网络错误,请检查您的网络连接",successMessage:"配置保存成功!正在跳转到主页面...",restartRequired:`API密钥已保存成功!为了使配置生效,需要重启应用程序。
+`},weather:{title:"Query Weather",description:"Get today's weather in New York (Agent can use MCP tool services)",prompt:"Use browser, based on Google, to query today's weather in New York"},queryplan:{title:"Query Person Info",description:"Query all information about Shenxun Ali (to demonstrate infinite context capability)",prompt:"Use browser, based on Baidu, to query person info",planTitle:"Query all information about Shenxun Ali (to demonstrate infinite context capability)",step1:"[BROWSER_AGENT] Search for Shenxun Ali through Baidu, get the first page HTML data, merge and aggregate to html_data directory",step1Output:"Storage directory path",step2:"[BROWSER_AGENT] Find all valid web links about Shenxun Ali from html_data directory, output to link.md",step2Output:"URL address, description"},ainovel:{title:"AI Novel Creation",description:"AI gradually defeats humanity themed novel (to demonstrate long-form content output)",prompt:"Create a novel about artificial intelligence gradually defeating humanity, including 10 chapters",planTitle:"AI Gradually Defeats Humans Novel Creation Plan",step1:'[TEXT_FILE_AGENT] Create a file with novel title and chapter titles, expecting a novel with 10 chapters, output outline to novel.md, each chapter uses secondary title, only write chapter titles in current step, novel title is "AI Gradually Defeats Humans"',step1Output:"File name",step2:"[TEXT_FILE_AGENT] Get chapter title information from novel.md file, then improve each chapter content in sequence, only improve one chapter content per round, use replace to update content, each chapter requires 3000 words, do not query all document content after updating each chapter",step2Output:"File name"},formInputDemo:{title:"AI Intelligent Dynamic Form Demo",description:"Experience AI intelligent analysis of user needs and dynamic generation of relevant form fields",prompt:"Demonstrate how AI intelligently generates targeted form fields based on user questions",planTitle:"AI Intelligent Dynamic Form Demo Plan",step1:"[INTELLIGENT_FORM_AGENT] Ask user to input consultation type, there are three types: business consultation, technical consultation, and architecture consultation",step1Output:"Business type",step2:`[DEFAULT_AGENT] If technical consultation, output: Technical consultation please call 10086
+If architecture consultation, output: Architecture consultation please contact Shenxun
+Otherwise output empty, not within my scope`,step2Output:"",step3:"[DEFAULT_AGENT] If business consultation, output: Business consultation, you can submit through official website www.yida.com",step3Output:""}}},rightPanel:{stepExecutionDetails:"Step Execution Details",noStepSelected:"No Step Selected",selectStepHint:"Please select an execution step in the left chat area to view details",stepExecuting:"Step is executing, please wait...",step:"Step",executingAgent:"Executing Agent",description:"Description",request:"Request",callingModel:"Calling Model",executionResult:"Execution Result",executing:"Executing...",thinkAndActionSteps:"Think & Action Steps",thinking:"Thinking",action:"Action",input:"Input",output:"Output",tool:"Tool",toolParameters:"Tool Parameters",noStepDetails:"No detailed step information available",scrollToBottom:"Scroll to Bottom",stepInfo:"Step Information",stepName:"Step Name",noExecutionInfo:"No detailed execution information available for this step",subPlan:"Sub Execution Plan",subStep:"Sub Step",subPlanId:"Sub Plan ID",title:"Title",stepNumber:"Step {number}",status:{label:"Status",completed:"Completed",executing:"Executing",pending:"Pending"},tabs:{details:"Step Execution Details",chat:"Chat",code:"Code"},chatBubbles:{analyzeRequirements:{title:"Analyze Requirements",content:"Breaking down your request into actionable steps: 1) Create user entity, 2) Implement user service, 3) Build REST endpoints, 4) Add validation and error handling."},generateCode:{title:"Generate Code",content:"Creating Spring Boot REST API with user management CRUD operations. Including proper HTTP status codes and error handling."},codeGenerated:{title:"Code Generated",content:"Successfully generated UserController with all CRUD operations. The code includes proper REST conventions, error handling, and follows Spring Boot best practices."}},timeAgo:{justNow:"Just now",minutesAgo:"{n} minutes ago",hoursAgo:"{n} hours ago",daysAgo:"{n} days ago"},defaultStepTitle:"Step {number}"},cronTask:{title:"Cron Task Management",addTask:"Cron Task",noTasks:"No cron tasks",taskName:"Task Name",taskNamePlaceholder:"Please enter task name",cronExpression:"Cron Expression",cronExpressionPlaceholder:"e.g: 0 0 12 * * ?",cronExpressionHelp:"Format: second minute hour day month week year",taskDescription:"Task Description",taskDescriptionPlaceholder:"Please enter task description",taskStatus:"Task Status",taskDetail:"Task Detail",executeOnce:"Execute Once",edit:"Edit",operations:"Operations",enable:"Enable",disable:"Disable",delete:"Delete",deleteConfirm:"Confirm Delete",deleteConfirmMessage:'Are you sure you want to delete task "{taskName}"? This action cannot be undone.',nextExecution:"Next Execution Time",createTime:"Create Time",updateTime:"Update Time",active:"Active",inactive:"Inactive",template:"Example: Help me collect today's AI news every day at 8 AM",planTemplate:"Plan Template",linkTemplate:"Link Template",noTemplate:"No Template",selectTemplate:"Select Template",templateHelpText:"After selection, the cron task will execute according to the defined plan",createTask:"Create Cron Task",selectCreateMethod:"Please select creation method",createWithJmanus:"Create with Jmanus",createWithJmanusDesc:"Create cron task with AI assistant guidance",createManually:"Create Manually",createManuallyDesc:"Fill in task information yourself"},memory:{title:"Memory Management",searchPlaceholder:"Search Memory",size:"memories",newNamePlaceholder:"Enter a new name...",changeName:"Change Name",save:"save",cancel:"cancel",delete:"delete",deleteHint:"delete hint",deleteHintPrefix:"Are you sure you want to delete the memory with ID",deleteHintSuffix:"? This action cannot be undone.",selectMemory:"Select Memory",clearMemory:"Clear Memory",newChat:"new chat"},selectCommon:{pleaseSelect:"Please select..."}},cSe={conversation:"对话",plan:"计划执行",backHome:"返回首页",noPageTip:"您访问的页面不存在。",init:{welcome:"欢迎使用 JManus",welcomeStep:"欢迎使用 JManus",description:"首次使用需要配置 LLM 服务来启用 AI 功能。您可以选择使用阿里云百炼服务或自定义 OpenAI 兼容的 API 服务。",languageStepDescription:"请选择您的语言偏好,这将作为默认界面语言。",stepLanguage:"语言选择",stepModel:"模型配置",selectLanguageLabel:"选择语言",continueToModel:"继续配置模型",back:"返回",configModeLabel:"配置模式",dashscopeMode:"阿里云百炼(推荐)",dashscopeModeDesc:"使用阿里云百炼服务,只需提供 API 密钥即可快速开始",customMode:"自定义 OpenAI 兼容服务",customModeDesc:"配置任何兼容 OpenAI API 格式的服务,如 Ollama、LocalAI 等",apiKeyLabel:"DashScope API 密钥",apiKeyPlaceholder:"请输入您的 API 密钥",apiKeyHint:"您可以从阿里云百炼控制台获取 API 密钥。",getApiKey:"获取 API 密钥",showApiKey:"显示 API 密钥",hideApiKey:"隐藏 API 密钥",baseUrlLabel:"API 基础地址",baseUrlPlaceholder:"https://api.openai.com 或您的自定义地址",baseUrlHint:"OpenAI 兼容的 API 基础地址,如 http://localhost:11434",customApiKeyLabel:"API 密钥",customApiKeyPlaceholder:"请输入您的 API 密钥",modelNameLabel:"模型名称",modelNamePlaceholder:"gpt-4.1 或您使用的模型名称",modelNameHint:"请输入您要使用的模型名称,如 gemini-2.5-pro、gpt-4.1 等",modelDisplayNameLabel:"模型显示名称(可选)",modelDisplayNamePlaceholder:"模型的显示名称",saveAndContinue:"保存并继续",saving:"保存中...",apiKeyRequired:"API 密钥不能为空",baseUrlRequired:"API 基础地址不能为空",modelNameRequired:"模型名称不能为空",saveFailed:"保存配置失败",networkError:"网络错误,请检查您的网络连接",successMessage:"配置保存成功!正在跳转到主页面...",restartRequired:`API密钥已保存成功!为了使配置生效,需要重启应用程序。
点击"确定"立即重启,点击"取消"稍后手动重启。`,simplifiedChinese:"简体中文",completionsPath:"Completions Path",completionsPathPlaceholder:"聊天模型端点,各平台路径不同。如未填写默认配置是:/v1/chat/completions"},common:{cancel:"取消",confirm:"确认",delete:"删除",edit:"编辑",save:"保存",reset:"重置",close:"关闭",add:"添加",create:"创建",update:"更新",submit:"提交",clear:"清空",submitFailed:"提交失败",unknownError:"未知错误",search:"搜索",loading:"加载中...",parameters:"参数"},fileBrowser:{title:"文件浏览器",refresh:"刷新",loading:"正在加载文件树...",retry:"重试",noFiles:"未找到文件",loadError:"加载文件树失败",loadingContent:"正在加载文件内容...",contentLoadError:"加载文件内容失败",download:"下载",downloadToView:"下载查看",binaryFile:"这是一个二进制文件,无法在查看器中显示。",open:"打开",copyPath:"复制路径",noPlanSelected:"未选择计划。请执行任务以查看文件。",noFilesYet:"暂未生成文件",waitingForFiles:"AI 模型正在处理您的请求,生成的文件将在此处显示。",filesTip:"分析结果、报告和数据导出等生成的文件将显示在此文件浏览器中。",noPlanExecuting:"当前没有执行中的任务。",startTaskTip:"请在左侧对话框中发起任务,生成的文件将在此处显示。",waitingForGeneration:"等待文件生成",planExecuting:"AI 模型正在执行计划并生成文件。",checking:"检查中...",checkNow:"立即检查"},language:{zh:"中文",en:"English",success:"成功",error:"错误",warning:"警告",info:"信息",yes:"是",no:"否",enable:"启用",disable:"禁用",copy:"复制",paste:"粘贴",cut:"剪切",undo:"撤销",redo:"重做",select:"选择",selectAll:"全选",deselectAll:"取消全选",previous:"上一步",next:"下一步",finish:"完成",retry:"重试",refresh:"刷新",import:"导入",export:"导出",upload:"上传",download:"下载",preview:"预览",expand:"展开",collapse:"收起",maximize:"最大化",minimize:"最小化",fullscreen:"全屏",exitFullscreen:"退出全屏",parameters:"参数",thinking:"思考",input:"输入",actions:"操作",total:"总计",loadFailed:"加载失败",switch:"切换语言"},config:{title:"配置管理",loading:"正在加载配置...",notFound:"未找到配置项",reset:"重置",resetGroupConfirm:"重置该组所有配置为默认值",modified:"已修改",saved:"配置已保存",saveFailed:"保存失败",search:"搜索配置项...",mcpSearch:"搜索MCP服务器...",mcpConfigPlaceholder:"请输入MCP服务器的配置(JSON格式)...",types:{string:"字符串",text:"文本",number:"数值",boolean:"布尔值",select:"选择",textarea:"多行",checkbox:"复选框"},range:"范围",min:"最小值",max:"最大值",categories:{basic:"基础配置",agent:"Agent配置",model:"Model配置",mcp:"Tools/MCP配置",prompt:"动态Prompt配置",namespace:"命名空间配置"},subGroupDisplayNames:{agent:"Agent",browser:"浏览器",interaction:"交互",system:"系统",performance:"性能",general:"通用",agents:"多智能体",infiniteContext:"无限上下文",filesystem:"文件系统",mcpServiceLoader:"MCP服务加载器"},agentConfig:{title:"Agent配置",import:"导入",export:"导出",configuredAgents:"已配置的Agent",agentCount:"个",noAgent:"暂无Agent配置",createNew:"新建Agent",selectAgentHint:"请选择一个Agent进行配置",newAgent:"新建Agent",agentName:"Agent名称",agentNamePlaceholder:"输入Agent名称",description:"描述",descriptionPlaceholder:"描述这个Agent的功能和用途",nextStepPrompt:"Agent提示词(人设,要求,以及下一步动作的指导)",nextStepPromptPlaceholder:"设置Agent的人设、要求以及下一步动作的指导...",modelConfiguration:"模型配置",modelConfigurationLabel:"选择模型",toolConfiguration:"工具配置",assignedTools:"已分配工具",noAssignedTools:"暂无分配的工具",addRemoveTools:"添加/删除工具",deleteConfirm:"删除确认",deleteConfirmText:"确定要删除",deleteWarning:"此操作不可恢复。",requiredFields:"请填写必要的字段",createSuccess:"Agent创建成功",createFailed:"创建Agent失败",saveSuccess:"Agent保存成功",saveFailed:"保存Agent失败",deleteSuccess:"Agent删除成功",deleteFailed:"删除Agent失败",importSuccess:"Agent导入成功",importFailed:"导入Agent失败",exportSuccess:"Agent导出成功",exportFailed:"导出Agent失败",loadDataFailed:"加载数据失败",loadDetailsFailed:"加载Agent详情失败",invalidFormat:"Agent配置格式不正确:缺少必要字段",cannotDeleteBuiltIn:"无法删除内置Agent",builtInAgents:"内置Agent",customAgents:"自定义Agent"},modelConfig:{title:"Model配置",import:"导入",export:"导出",configuredModels:"已配置的Model",modelCount:"个",noModel:"暂无Model配置",createNew:"新建Model",selectModelHint:"请选择一个Model进行配置",newModel:"新建Model",type:"模型类型",typePlaceholder:"选择模型类型",baseUrl:"Base Url",baseUrlPlaceholder:"输入 Base Url",headers:"请求头信息",headersPlaceholder:"输入 Headers 需满足JSON对象格式",apiKey:"API密钥",apiKeyPlaceholder:"输入API密钥",showApiKey:"显示 API 密钥",hideApiKey:"隐藏 API 密钥",modelName:"模型名称",modelNamePlaceholder:"输入模型名称",description:"描述",descriptionPlaceholder:"输入模型描述",deleteConfirm:"删除确认",deleteConfirmText:"确定要删除",deleteWarning:"此操作不可恢复。",requiredFields:"请填写必要的字段",createSuccess:"Model创建成功",createFailed:"创建Model失败",saveSuccess:"Model保存成功",saveFailed:"保存Model失败",deleteSuccess:"Model删除成功",deleteFailed:"删除Model失败",importSuccess:"Model导入成功",importFailed:"导入Model失败",exportSuccess:"Model导出成功",exportFailed:"导出Model失败",loadDataFailed:"加载数据失败",loadDetailsFailed:"加载Model详情失败",invalidFormat:"Model配置格式不正确:缺少必要字段",validateConfig:"验证配置",validationSuccess:"验证成功",validationFailed:"验证失败",pleaseEnterBaseUrlAndApiKey:"请输入Base URL和API Key",selectModel:"选择模型",availableModels:"可用模型",searchModels:"搜索模型...",getModelsCount:"获取到 {count} 个可用模型",default:"默认",setAsDefault:"设为默认",currentDefault:"当前默认",setDefaultSuccess:"已成功设置为默认模型",setDefaultFailed:"设置默认模型失败",validatingBeforeSave:"保存前正在校验API密钥...",validationFailedCannotSave:"API密钥校验失败,无法保存",temperature:"温度",temperaturePlaceholder:"留空使用模型默认值",topP:"Top P",topPPlaceholder:"留空使用模型默认值",completionsPath:"Completions Path",completionsPathPlaceholder:"聊天模型端点,各平台路径不同。如未填写默认配置是:/v1/chat/completions"},mcpConfig:{title:"MCP服务器配置",mcpServers:"MCP服务器",addMcpServer:"添加MCP服务器",serverList:"服务器列表",noServers:"暂无MCP服务器配置",connectionType:"连接类型",configJsonLabel:"mcp json配置:",configJsonPlaceholder:"请输入或粘贴MCP配置的JSON内容...",instructions:"使用说明:",instructionStep1:"找到你要用的mcp server的配置json:",instructionStep1Local:"本地(STDIO)",instructionStep1LocalDesc:"本地mcp server,目前市面上主流的是这个",instructionStep1Remote:"远程服务(SSE/STREAMING)",instructionStep1RemoteDesc:"mcp.higress.ai/ 上可以找到,有SSE和STREAMING两种,目前STREAM协议更完备一些",instructionStep2:"将json配置复制到上面的输入框,本地选STUDIO,远程选STREAMING或SSE,提交",instructionStep3:"这样mcp tools就注册成功了。",instructionStep4:"然后需要在Agent配置里面,新建一个agent,然后增加指定你刚才添加的mcp tools,这样可以极大减少冲突,增强tools被agent选择的准确性",configRequired:"请输入MCP服务器配置",invalidJson:"配置JSON格式不正确,请检查语法",addFailed:"添加失败",deleteFailed:"删除失败",deleteConfirm:"确定要删除这个MCP服务器配置吗?此操作不可恢复。",addSuccess:"添加成功",deleteSuccess:"删除成功",formatJson:"格式化JSON",jsonStatusEmpty:"请输入JSON配置...",jsonStatusValid:"JSON格式有效",jsonStatusInvalid:"JSON格式无效",missingMcpServers:"❌ 缺少mcpServers属性 - 请确保JSON包含mcpServers对象",invalidServerConfig:"❌ 服务器配置无效: {serverId} - 服务器配置必须是对象",invalidArgs:"❌ args字段必须是数组: {serverId} - 请将args改为数组格式",invalidEnv:"❌ env字段必须是对象: {serverId} - 请将env改为对象格式",invalidArgsType:"❌ args数组元素必须是字符串: {serverId}, 索引: {index} - 请确保所有参数都是字符串",invalidEnvType:"❌ env对象值必须是字符串: {serverId}, 键: {key} - 环境变量值必须是字符串",missingUrl:"❌ 缺少url字段: {serverId} - 没有command时必须有url",invalidUrl:"❌ url格式无效: {serverId} - 请检查URL格式是否正确",studioExample:`请输入MCP服务器配置JSON。
@@ -600,6 +602,8 @@ MYSQL_USER:root`,connectionTypePlaceholder:"请选择连接类型",argsFormatErr
当前版本数:{versionCount}`,saveSuccess:`保存成功:{message}
-当前版本数:{versionCount}`,saveStatus:"保存状态:{message}",saveFailed:"保存计划修改失败",generateSuccess:"计划生成成功!模板ID: {templateId}",generateFailed:"生成计划失败",updateSuccess:"计划更新成功!",updateFailed:"更新计划失败",executeFailed:"执行计划失败",unknown:"未知",newTemplateName:"新建的执行计划",newTemplateDescription:"请使用计划生成器创建新的计划模板",generatedTemplateDescription:"通过生成器创建的计划模板",defaultExecutionPlanTitle:"执行计划",planId:"计划模板ID",steps:"步骤",tasks:"任务列表",subtask:"子任务",agent:"智能体",stepRequirement:"任务需求",stepRequirementPlaceholder:"请输入任务的具体需求和描述...",terminateColumns:"任务输出要求描述",terminateColumnsPlaceholder:"请输入任务输出要求描述...",titlePlaceholder:"请输入计划标题...",moveUp:"上移",moveDown:"下移",removeStep:"删除步骤",addStep:"添加步骤",addFirstStep:"添加第一个步骤",noSteps:"暂无步骤,点击下方按钮开始添加",jsonPreview:"JSON预览",showJson:"显示JSON",hideJson:"隐藏JSON",refreshAgents:"刷新智能体",agentLoadError:"加载智能体失败",retryLoadAgents:"重新加载智能体",availableTools:"可用工具",loadingFailed:"加载失败",networkError:"网络错误",apiError:"API调用失败",resizeHint:"拖拽调整大小"},toolSelection:{title:"选择工具",searchPlaceholder:"搜索工具...",sortByGroup:"按服务组排序",sortByName:"按名称排序",sortByStatus:"按启用状态排序",summary:"共 {groups} 个服务组,{tools} 个工具 (已选择 {selected} 个)",enableAll:"启用全部",noToolsFound:"没有找到工具"},direct:{planTemplateIdNotFound:"没有找到计划模板ID",executionFailedNoPlanId:"执行计划失败:未返回有效的计划ID",executionFailed:"执行计划失败",configuration:"设置",panelResizeHint:"拖拽调整面板大小"},modal:{close:"关闭",cancel:"取消",confirm:"确认",save:"保存",delete:"删除",edit:"编辑"},editor:{format:"格式化",undo:"撤销",redo:"重做",find:"查找",replace:"替换",gotoLine:"跳转到行",selectAll:"全选",toggleWordWrap:"切换自动换行",toggleMinimap:"切换迷你地图",increaseFontSize:"增大字体",decreaseFontSize:"减小字体",resetFontSize:"重置字体大小"},validation:{required:"内容不能为空"},theme:{switch:"切换主题",light:"浅色主题",dark:"深色主题",auto:"跟随系统"},error:{notFound:"页面未找到",notFoundDescription:"抱歉,您访问的页面不存在",serverError:"服务器错误",serverErrorDescription:"服务器出现了一些问题,请稍后再试",networkError:"网络错误",networkErrorDescription:"网络连接失败,请检查您的网络设置",backToHome:"返回首页",retry:"重试"},time:{now:"刚刚",unknown:"未知时间",minuteAgo:"{count} 分钟前",hourAgo:"{count} 小时前",dayAgo:"{count} 天前",weekAgo:"{count} 周前",monthAgo:"{count} 个月前",yearAgo:"{count} 年前",today:"今天",yesterday:"昨天",tomorrow:"明天",thisWeek:"本周",lastWeek:"上周",nextWeek:"下周",thisMonth:"本月",lastMonth:"上月",nextMonth:"下月",thisYear:"今年",lastYear:"去年",nextYear:"明年"},stats:{total:"总计",count:"数量",percentage:"百分比",average:"平均",median:"中位数",min:"最小值",max:"最大值",sum:"总和",growth:"增长",decline:"下降",noData:"暂无数据",loading:"数据加载中...",error:"数据加载失败"},home:{welcomeTitle:"欢迎使用 JManus!",welcomeSubtitle:"您的 Java AI 智能助手,帮助您构建和完成各种任务。",tagline:"Java AI 智能体",inputPlaceholder:"描述您想构建或完成的内容...",directButton:"直接进入工作台",examples:{stockPrice:{title:"查询股价",description:"获取今天阿里巴巴的最新股价(Agent可以使用浏览器工具)",prompt:"用浏览器基于百度,查询今天阿里巴巴的股价,并返回最新股价"},weather:{title:"查询天气",description:"获取北京今天的天气情况(Agent可以使用MCP工具服务)",prompt:"用浏览器,基于百度,查询北京今天的天气"},queryplan:{title:"查询一个人的信息",description:"查询 沈询 阿里的所有信息(用于展示无限上下文能力)",prompt:"用浏览器,基于百度,查询计划",planTitle:"查询 沈询 阿里的所有信息(用于展示无限上下文能力)",step1:"[BROWSER_AGENT] 通过 百度 查询 沈询 阿里 , 获取第一页的html 百度数据,合并聚拢 到 html_data 的目录里",step1Output:"存放的目录路径",step2:"[BROWSER_AGENT] 从 html_data 目录中找到所有的有效关于沈询 阿里 的网页链接,输出到 link.md里面",step2Output:"url地址,说明"},ainovel:{title:"AI小说创作",description:"人工智能逐步击败人类主题小说(用于展示超长内容的输出)",prompt:"创建一个关于人工智能逐步击败人类的小说,包含10个章节",planTitle:"人工智能逐步击败人类小说创作计划",step1:"[TEXT_FILE_AGENT] 创建小说的大标题和子章节标题的文件,期望是一有10个子章节的的小说,提纲输出到novel.md里,每一个子章节用二级标题,在当前步骤只需要写章节的标题即可,小说的大标题是《人工智能逐步击败人类》",step1Output:"文件的名字",step2:"[TEXT_FILE_AGENT] 从novel.md文件获取子标题信息,然后依次完善每一个章节的具体内容,每个轮次只完善一个子章节的内容,用replace来更新内容,每个章节要求有3000字的内容,不要每更新一个章节就查询一下文档的全部内容",step2Output:"文件的名字"},formInputDemo:{title:"AI智能动态表单演示",description:"体验AI智能分析用户需求并动态生成相关表单字段的能力",prompt:"演示AI如何根据用户问题智能生成针对性的表单字段",planTitle:"AI智能动态表单演示计划",step1:"[INTELLIGENT_FORM_AGENT] 启动智能动态表单演示,主动分析用户需求并动态生成相关表单字段,展示AI智能表单生成能力",step1Output:"演示结果,用户交互数据"}}},rightPanel:{stepExecutionDetails:"步骤执行详情",noStepSelected:"未选择执行步骤",selectStepHint:"请在左侧聊天区域选择一个执行步骤查看详情",stepExecuting:"步骤正在执行中,请稍候...",step:"步骤",executingAgent:"执行智能体",description:"描述",request:"请求",callingModel:"调用模型",executionResult:"执行结果",executing:"执行中...",thinkAndActionSteps:"思考与行动步骤",thinking:"思考",action:"行动",input:"输入",output:"输出",tool:"工具",toolParameters:"工具参数",noStepDetails:"暂无详细步骤信息",scrollToBottom:"滚动到底部",stepInfo:"步骤信息",stepName:"步骤名称",noExecutionInfo:"该步骤暂无详细执行信息",subPlan:"子执行计划",subStep:"子步骤",subPlanId:"子计划ID",title:"标题",stepNumber:"步骤 {number}",status:{label:"状态",completed:"已完成",executing:"执行中",pending:"待执行"},tabs:{details:"步骤执行详情",chat:"Chat",code:"Code"},chatBubbles:{analyzeRequirements:{title:"分析需求",content:"将您的请求分解为可操作的步骤:1) 创建用户实体,2) 实现用户服务,3) 构建 REST 端点,4) 添加验证和错误处理。"},generateCode:{title:"生成代码",content:"创建具有用户管理 CRUD 操作的 Spring Boot REST API。包括正确的 HTTP 状态代码和错误处理。"},codeGenerated:{title:"代码已生成",content:"成功生成具有所有 CRUD 操作的 UserController。代码包含正确的 REST 约定、错误处理,并遵循 Spring Boot 最佳实践。"}},timeAgo:{justNow:"刚刚",minutesAgo:"{n} 分钟前",hoursAgo:"{n} 小时前",daysAgo:"{n} 天前"},defaultStepTitle:"步骤 {number}"},cronTask:{title:"定时任务管理",addTask:"定时任务",noTasks:"暂无定时任务",taskName:"任务名称",taskNamePlaceholder:"请输入任务名称",cronExpression:"Cron表达式",cronExpressionPlaceholder:"例如: 0 0 12 * * ?",cronExpressionHelp:"格式: 秒 分 时 日 月 周 年",taskDescription:"任务描述",taskDescriptionPlaceholder:"请输入任务描述",taskStatus:"任务状态",taskDetail:"任务详情",executeOnce:"执行一次",edit:"编辑",operations:"操作",enable:"启用",disable:"禁用",delete:"删除",deleteConfirm:"确认删除",deleteConfirmMessage:'确定要删除任务 "{taskName}" 吗?此操作不可撤销。',nextExecution:"下次执行时间",createTime:"创建时间",updateTime:"更新时间",active:"启用",inactive:"禁用",template:"示例:每天帮我早上8点,帮我收集当天的AI新闻吧",planTemplate:"计划模板",linkTemplate:"关联模板",noTemplate:"不关联",selectTemplate:"请选择模板",templateHelpText:"选择后,定时任务将按照制定好的计划执行",createTask:"创建定时任务",selectCreateMethod:"请选择创建方式",createWithJmanus:"让Jmanus帮忙创建",createWithJmanusDesc:"通过AI助手引导创建定时任务",createManually:"手动创建",createManuallyDesc:"自己填写定时任务信息"},memory:{title:"记忆管理",searchPlaceholder:"搜索记忆...",size:"条记忆",newNamePlaceholder:"输入新名称...",changeName:"修改名称",save:"保存",cancel:"关闭",delete:"删除",deleteHint:"删除提示",deleteHintPrefix:"你确定要删除ID为",deleteHintSuffix:"的消息吗?此操作不可撤销。",selectMemory:"选择记忆",clearMemory:"清除记忆",newChat:"新建对话"},selectCommon:{pleaseSelect:"请选择..."}},W7="LOCAL_STORAGE_LOCALE",V7=rt({locale:localStorage.getItem(W7)??"en",opts:[{value:"en",title:"English"},{value:"zh",title:"中文"}]}),K7=J1e({legacy:!1,locale:V7.locale,fallbackLocale:"en",messages:{en:sSe,zh:cSe}}),uSe=async e=>{localStorage.setItem(W7,e),K7.global.locale.value=e,V7.locale=e,console.log(`Successfully switched frontend language to: ${e}`)},xPe=async e=>{await uSe(e);try{const t=await fetch(`/admin/prompts/switch-language?language=${e}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(t.ok)console.log(`Successfully reset prompts to language: ${e}`);else{const o=await t.text();console.error(`Failed to reset prompts to language: ${e}`,o)}const n=await fetch("/api/agent-management/initialize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({language:e})});if(n.ok){const o=await n.json();console.log(`Successfully initialized agents with language: ${e}`,o)}else{const o=await n.json();throw console.error(`Failed to initialize agents with language: ${e}`,o),new Error(o.error||"Failed to initialize agents")}}catch(t){throw console.error("Error initializing agents and prompts during language change:",t),t}};function U7(e){return Vh()?(rS(e),!0):!1}function Yl(e){return typeof e=="function"?e():Bt(e)}const Pm=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const dSe=Object.prototype.toString,fSe=e=>dSe.call(e)==="[object Object]",cc=()=>{},pSe=gSe();function gSe(){var e,t;return Pm&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function G7(e,t){function n(...o){return new Promise((r,a)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(r).catch(a)})}return n}const X7=e=>e();function hSe(e,t={}){let n,o,r=cc;const a=l=>{clearTimeout(l),r(),r=cc};return l=>{const s=Yl(e),u=Yl(t.maxWait);return n&&a(n),s<=0||u!==void 0&&u<=0?(o&&(a(o),o=null),Promise.resolve(l())):new Promise((c,d)=>{r=t.rejectOnCancel?d:c,u&&!o&&(o=setTimeout(()=>{n&&a(n),o=null,c(l())},u)),n=setTimeout(()=>{o&&a(o),o=null,c(l())},s)})}}function vSe(e=X7){const t=ie(!0);function n(){t.value=!1}function o(){t.value=!0}const r=(...a)=>{t.value&&e(...a)};return{isActive:Uh(t),pause:n,resume:o,eventFilter:r}}function mSe(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const o=t;t=void 0,o&&await o},n}function bSe(e){return Jt()}function Va(e,t=200,n={}){return G7(hSe(t,n),e)}function ySe(e,t,n={}){const{eventFilter:o=X7,...r}=n;return be(e,G7(o,t),r)}function SSe(e,t,n={}){const{eventFilter:o,...r}=n,{eventFilter:a,pause:i,resume:l,isActive:s}=vSe(o);return{stop:ySe(e,t,{...r,eventFilter:a}),pause:i,resume:l,isActive:s}}function fs(e,t=!0,n){bSe()?Ke(e,n):t?e():ot(e)}function CSe(e,t,n={}){const{immediate:o=!0}=n,r=ie(!1);let a=null;function i(){a&&(clearTimeout(a),a=null)}function l(){r.value=!1,i()}function s(...u){i(),r.value=!0,a=setTimeout(()=>{r.value=!1,a=null,e(...u)},Yl(t))}return o&&(r.value=!0,Pm&&s()),U7(l),{isPending:Uh(r),start:s,stop:l}}function ao(e,t,n){const o=be(e,(r,a,i)=>{r&&(n!=null&&n.once&&ot(()=>o()),t(r,a,i))},{...n,once:!1});return o}function Au(e){var t;const n=Yl(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ud=Pm?window:void 0,Y7=Pm?window.navigator:void 0;function kl(...e){let t,n,o,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,o,r]=e,t=Ud):[t,n,o,r]=e,!t)return cc;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const a=[],i=()=>{a.forEach(c=>c()),a.length=0},l=(c,d,f,p)=>(c.addEventListener(d,f,p),()=>c.removeEventListener(d,f,p)),s=be(()=>[Au(t),Yl(r)],([c,d])=>{if(i(),!c)return;const f=fSe(d)?{...d}:d;a.push(...n.flatMap(p=>o.map(v=>l(c,p,v,f))))},{immediate:!0,flush:"post"}),u=()=>{s(),i()};return U7(u),u}let K4=!1;function xSe(e,t,n={}){const{window:o=Ud,ignore:r=[],capture:a=!0,detectIframe:i=!1}=n;if(!o)return cc;pSe&&!K4&&(K4=!0,Array.from(o.document.body.children).forEach(f=>f.addEventListener("click",cc)),o.document.documentElement.addEventListener("click",cc));let l=!0;const s=f=>r.some(p=>{if(typeof p=="string")return Array.from(o.document.querySelectorAll(p)).some(v=>v===f.target||f.composedPath().includes(v));{const v=Au(p);return v&&(f.target===v||f.composedPath().includes(v))}}),c=[kl(o,"click",f=>{const p=Au(e);if(!(!p||p===f.target||f.composedPath().includes(p))){if(f.detail===0&&(l=!s(f)),!l){l=!0;return}t(f)}},{passive:!0,capture:a}),kl(o,"pointerdown",f=>{const p=Au(e);l=!s(f)&&!!(p&&!f.composedPath().includes(p))},{passive:!0}),i&&kl(o,"blur",f=>{setTimeout(()=>{var p;const v=Au(e);((p=o.document.activeElement)==null?void 0:p.tagName)==="IFRAME"&&!(v!=null&&v.contains(o.document.activeElement))&&t(f)},0)})].filter(Boolean);return()=>c.forEach(f=>f())}function $Se(){const e=ie(!1),t=Jt();return t&&Ke(()=>{e.value=!0},t),e}function q7(e){const t=$Se();return E(()=>(t.value,!!e()))}function U4(e,t={}){const{controls:n=!1,navigator:o=Y7}=t,r=q7(()=>o&&"permissions"in o);let a;const i=typeof e=="string"?{name:e}:e,l=ie(),s=()=>{a&&(l.value=a.state)},u=mSe(async()=>{if(r.value){if(!a)try{a=await o.permissions.query(i),kl(a,"change",s),s()}catch{l.value="prompt"}return a}});return u(),n?{state:l,isSupported:r,query:u}:l}function wSe(e={}){const{navigator:t=Y7,read:n=!1,source:o,copiedDuring:r=1500,legacy:a=!1}=e,i=q7(()=>t&&"clipboard"in t),l=U4("clipboard-read"),s=U4("clipboard-write"),u=E(()=>i.value||a),c=ie(""),d=ie(!1),f=CSe(()=>d.value=!1,r);function p(){i.value&&b(l.value)?t.clipboard.readText().then(S=>{c.value=S}):c.value=m()}u.value&&n&&kl(["copy","cut"],p);async function v(S=Yl(o)){u.value&&S!=null&&(i.value&&b(s.value)?await t.clipboard.writeText(S):h(S),c.value=S,d.value=!0,f.start())}function h(S){const C=document.createElement("textarea");C.value=S??"",C.style.position="absolute",C.style.opacity="0",document.body.appendChild(C),C.select(),document.execCommand("copy"),C.remove()}function m(){var S,C,$;return($=(C=(S=document==null?void 0:document.getSelection)==null?void 0:S.call(document))==null?void 0:C.toString())!=null?$:""}function b(S){return S==="granted"||S==="prompt"}return{isSupported:u,text:c,copied:d,copy:v}}const bp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},yp="__vueuse_ssr_handlers__",PSe=OSe();function OSe(){return yp in bp||(bp[yp]=bp[yp]||{}),bp[yp]}function ISe(e,t){return PSe[e]||t}function TSe(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const ESe={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},G4="vueuse-storage";function _Se(e,t,n,o={}){var r;const{flush:a="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:s=!0,mergeDefaults:u=!1,shallow:c,window:d=Ud,eventFilter:f,onError:p=_=>{console.error(_)},initOnMounted:v}=o,h=(c?se:ie)(typeof t=="function"?t():t);if(!n)try{n=ISe("getDefaultStorage",()=>{var _;return(_=Ud)==null?void 0:_.localStorage})()}catch(_){p(_)}if(!n)return h;const m=Yl(t),b=TSe(m),S=(r=o.serializer)!=null?r:ESe[b],{pause:C,resume:$}=SSe(h,()=>P(h.value),{flush:a,deep:i,eventFilter:f});d&&l&&fs(()=>{kl(d,"storage",O),kl(d,G4,I),v&&O()}),v||O();function x(_,T){d&&d.dispatchEvent(new CustomEvent(G4,{detail:{key:e,oldValue:_,newValue:T,storageArea:n}}))}function P(_){try{const T=n.getItem(e);if(_==null)x(T,null),n.removeItem(e);else{const A=S.write(_);T!==A&&(n.setItem(e,A),x(T,A))}}catch(T){p(T)}}function w(_){const T=_?_.newValue:n.getItem(e);if(T==null)return s&&m!=null&&n.setItem(e,S.write(m)),m;if(!_&&u){const A=S.read(T);return typeof u=="function"?u(A,m):b==="object"&&!Array.isArray(A)?{...m,...A}:A}else return typeof T!="string"?T:S.read(T)}function O(_){if(!(_&&_.storageArea!==n)){if(_&&_.key==null){h.value=m;return}if(!(_&&_.key!==e)){C();try{(_==null?void 0:_.newValue)!==S.write(h.value)&&(h.value=w(_))}catch(T){p(T)}finally{_?ot($):$()}}}}function I(_){O(_.detail)}return h}function k$(e,t,n={}){const{window:o=Ud}=n;return _Se(e,t,o==null?void 0:o.localStorage,n)}function Th(e){"@babel/helpers - typeof";return Th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Th(e)}var MSe=/^\s+/,ASe=/\s+$/;function ke(e,t){if(e=e||"",t=t||{},e instanceof ke)return e;if(!(this instanceof ke))return new ke(e,t);var n=RSe(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}ke.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},getLuminance:function(){var t=this.toRgb(),n,o,r,a,i,l;return n=t.r/255,o=t.g/255,r=t.b/255,n<=.03928?a=n/12.92:a=Math.pow((n+.055)/1.055,2.4),o<=.03928?i=o/12.92:i=Math.pow((o+.055)/1.055,2.4),r<=.03928?l=r/12.92:l=Math.pow((r+.055)/1.055,2.4),.2126*a+.7152*i+.0722*l},setAlpha:function(t){return this._a=J7(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=Y4(this._r,this._g,this._b);return{h:t.h*360,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=Y4(this._r,this._g,this._b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.v*100);return this._a==1?"hsv("+n+", "+o+"%, "+r+"%)":"hsva("+n+", "+o+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var t=X4(this._r,this._g,this._b);return{h:t.h*360,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=X4(this._r,this._g,this._b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.l*100);return this._a==1?"hsl("+n+", "+o+"%, "+r+"%)":"hsla("+n+", "+o+"%, "+r+"%, "+this._roundA+")"},toHex:function(t){return q4(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return LSe(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(Zt(this._r,255)*100)+"%",g:Math.round(Zt(this._g,255)*100)+"%",b:Math.round(Zt(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(Zt(this._r,255)*100)+"%, "+Math.round(Zt(this._g,255)*100)+"%, "+Math.round(Zt(this._b,255)*100)+"%)":"rgba("+Math.round(Zt(this._r,255)*100)+"%, "+Math.round(Zt(this._g,255)*100)+"%, "+Math.round(Zt(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:YSe[q4(this._r,this._g,this._b,!0)]||!1},toFilter:function(t){var n="#"+J4(this._r,this._g,this._b,this._a),o=n,r=this._gradientType?"GradientType = 1, ":"";if(t){var a=ke(t);o="#"+J4(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+n+",endColorstr="+o+")"},toString:function(t){var n=!!t;t=t||this._format;var o=!1,r=this._a<1&&this._a>=0,a=!n&&r&&(t==="hex"||t==="hex6"||t==="hex3"||t==="hex4"||t==="hex8"||t==="name");return a?t==="name"&&this._a===0?this.toName():this.toRgbString():(t==="rgb"&&(o=this.toRgbString()),t==="prgb"&&(o=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(o=this.toHexString()),t==="hex3"&&(o=this.toHexString(!0)),t==="hex4"&&(o=this.toHex8String(!0)),t==="hex8"&&(o=this.toHex8String()),t==="name"&&(o=this.toName()),t==="hsl"&&(o=this.toHslString()),t==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},clone:function(){return ke(this.toString())},_applyModification:function(t,n){var o=t.apply(null,[this].concat([].slice.call(n)));return this._r=o._r,this._g=o._g,this._b=o._b,this.setAlpha(o._a),this},lighten:function(){return this._applyModification(zSe,arguments)},brighten:function(){return this._applyModification(jSe,arguments)},darken:function(){return this._applyModification(WSe,arguments)},desaturate:function(){return this._applyModification(FSe,arguments)},saturate:function(){return this._applyModification(BSe,arguments)},greyscale:function(){return this._applyModification(HSe,arguments)},spin:function(){return this._applyModification(VSe,arguments)},_applyCombination:function(t,n){return t.apply(null,[this].concat([].slice.call(n)))},analogous:function(){return this._applyCombination(GSe,arguments)},complement:function(){return this._applyCombination(KSe,arguments)},monochromatic:function(){return this._applyCombination(XSe,arguments)},splitcomplement:function(){return this._applyCombination(USe,arguments)},triad:function(){return this._applyCombination(Z4,[3])},tetrad:function(){return this._applyCombination(Z4,[4])}};ke.fromRatio=function(e,t){if(Th(e)=="object"){var n={};for(var o in e)e.hasOwnProperty(o)&&(o==="a"?n[o]=e[o]:n[o]=Ru(e[o]));e=n}return ke(e,t)};function RSe(e){var t={r:0,g:0,b:0},n=1,o=null,r=null,a=null,i=!1,l=!1;return typeof e=="string"&&(e=QSe(e)),Th(e)=="object"&&(Oa(e.r)&&Oa(e.g)&&Oa(e.b)?(t=DSe(e.r,e.g,e.b),i=!0,l=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Oa(e.h)&&Oa(e.s)&&Oa(e.v)?(o=Ru(e.s),r=Ru(e.v),t=kSe(e.h,o,r),i=!0,l="hsv"):Oa(e.h)&&Oa(e.s)&&Oa(e.l)&&(o=Ru(e.s),a=Ru(e.l),t=NSe(e.h,o,a),i=!0,l="hsl"),e.hasOwnProperty("a")&&(n=e.a)),n=J7(n),{ok:i,format:e.format||l,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}function DSe(e,t,n){return{r:Zt(e,255)*255,g:Zt(t,255)*255,b:Zt(n,255)*255}}function X4(e,t,n){e=Zt(e,255),t=Zt(t,255),n=Zt(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),a,i,l=(o+r)/2;if(o==r)a=i=0;else{var s=o-r;switch(i=l>.5?s/(2-o-r):s/(o+r),o){case e:a=(t-n)/s+(t1&&(d-=1),d<1/6?u+(c-u)*6*d:d<1/2?c:d<2/3?u+(c-u)*(2/3-d)*6:u}if(t===0)o=r=a=n;else{var l=n<.5?n*(1+t):n+t-n*t,s=2*n-l;o=i(s,l,e+1/3),r=i(s,l,e),a=i(s,l,e-1/3)}return{r:o*255,g:r*255,b:a*255}}function Y4(e,t,n){e=Zt(e,255),t=Zt(t,255),n=Zt(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),a,i,l=o,s=o-r;if(i=o===0?0:s/o,o==r)a=0;else{switch(o){case e:a=(t-n)/s+(t>1)+720)%360;--t;)o.h=(o.h+r)%360,a.push(ke(o));return a}function XSe(e,t){t=t||6;for(var n=ke(e).toHsv(),o=n.h,r=n.s,a=n.v,i=[],l=1/t;t--;)i.push(ke({h:o,s:r,v:a})),a=(a+l)%1;return i}ke.mix=function(e,t,n){n=n===0?0:n||50;var o=ke(e).toRgb(),r=ke(t).toRgb(),a=n/100,i={r:(r.r-o.r)*a+o.r,g:(r.g-o.g)*a+o.g,b:(r.b-o.b)*a+o.b,a:(r.a-o.a)*a+o.a};return ke(i)};ke.readability=function(e,t){var n=ke(e),o=ke(t);return(Math.max(n.getLuminance(),o.getLuminance())+.05)/(Math.min(n.getLuminance(),o.getLuminance())+.05)};ke.isReadable=function(e,t,n){var o=ke.readability(e,t),r,a;switch(a=!1,r=eCe(n),r.level+r.size){case"AAsmall":case"AAAlarge":a=o>=4.5;break;case"AAlarge":a=o>=3;break;case"AAAsmall":a=o>=7;break}return a};ke.mostReadable=function(e,t,n){var o=null,r=0,a,i,l,s;n=n||{},i=n.includeFallbackColors,l=n.level,s=n.size;for(var u=0;ur&&(r=a,o=ke(t[u]));return ke.isReadable(e,o,{level:l,size:s})||!i?o:(n.includeFallbackColors=!1,ke.mostReadable(e,["#fff","#000"],n))};var z1=ke.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},YSe=ke.hexNames=qSe(z1);function qSe(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function J7(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Zt(e,t){JSe(e)&&(e="100%");var n=ZSe(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function Om(e){return Math.min(1,Math.max(0,e))}function jo(e){return parseInt(e,16)}function JSe(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function ZSe(e){return typeof e=="string"&&e.indexOf("%")!=-1}function Nr(e){return e.length==1?"0"+e:""+e}function Ru(e){return e<=1&&(e=e*100+"%"),e}function Z7(e){return Math.round(parseFloat(e)*255).toString(16)}function Q4(e){return jo(e)/255}var Mr=function(){var e="[-\\+]?\\d+%?",t="[-\\+]?\\d*\\.\\d+%?",n="(?:"+t+")|(?:"+e+")",o="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?",r="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?";return{CSS_UNIT:new RegExp(n),rgb:new RegExp("rgb"+o),rgba:new RegExp("rgba"+r),hsl:new RegExp("hsl"+o),hsla:new RegExp("hsla"+r),hsv:new RegExp("hsv"+o),hsva:new RegExp("hsva"+r),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Oa(e){return!!Mr.CSS_UNIT.exec(e)}function QSe(e){e=e.replace(MSe,"").replace(ASe,"").toLowerCase();var t=!1;if(z1[e])e=z1[e],t=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=Mr.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=Mr.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=Mr.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=Mr.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=Mr.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=Mr.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=Mr.hex8.exec(e))?{r:jo(n[1]),g:jo(n[2]),b:jo(n[3]),a:Q4(n[4]),format:t?"name":"hex8"}:(n=Mr.hex6.exec(e))?{r:jo(n[1]),g:jo(n[2]),b:jo(n[3]),format:t?"name":"hex"}:(n=Mr.hex4.exec(e))?{r:jo(n[1]+""+n[1]),g:jo(n[2]+""+n[2]),b:jo(n[3]+""+n[3]),a:Q4(n[4]+""+n[4]),format:t?"name":"hex8"}:(n=Mr.hex3.exec(e))?{r:jo(n[1]+""+n[1]),g:jo(n[2]+""+n[2]),b:jo(n[3]+""+n[3]),format:t?"name":"hex"}:!1}function eCe(e){var t,n;return e=e||{level:"AA",size:"small"},t=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),t!=="AA"&&t!=="AAA"&&(t="AA"),n!=="small"&&n!=="large"&&(n="small"),{level:t,size:n}}var ps=ps||{};ps.stringify=function(){var e={"visit_linear-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return e.visit_gradient(t)},"visit_radial-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return e.visit_gradient(t)},visit_gradient:function(t){var n=e.visit(t.orientation);return n&&(n+=", "),t.type+"("+n+e.visit(t.colorStops)+")"},visit_shape:function(t){var n=t.value,o=e.visit(t.at),r=e.visit(t.style);return r&&(n+=" "+r),o&&(n+=" at "+o),n},"visit_default-radial":function(t){var n="",o=e.visit(t.at);return o&&(n+=o),n},"visit_extent-keyword":function(t){var n=t.value,o=e.visit(t.at);return o&&(n+=" at "+o),n},"visit_position-keyword":function(t){return t.value},visit_position:function(t){return e.visit(t.value.x)+" "+e.visit(t.value.y)},"visit_%":function(t){return t.value+"%"},visit_em:function(t){return t.value+"em"},visit_px:function(t){return t.value+"px"},visit_calc:function(t){return"calc("+t.value+")"},visit_literal:function(t){return e.visit_color(t.value,t)},visit_hex:function(t){return e.visit_color("#"+t.value,t)},visit_rgb:function(t){return e.visit_color("rgb("+t.value.join(", ")+")",t)},visit_rgba:function(t){return e.visit_color("rgba("+t.value.join(", ")+")",t)},visit_hsl:function(t){return e.visit_color("hsl("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%)",t)},visit_hsla:function(t){return e.visit_color("hsla("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%, "+t.value[3]+")",t)},visit_var:function(t){return e.visit_color("var("+t.value+")",t)},visit_color:function(t,n){var o=t,r=e.visit(n.length);return r&&(o+=" "+r),o},visit_angular:function(t){return t.value+"deg"},visit_directional:function(t){return"to "+t.value},visit_array:function(t){var n="",o=t.length;return t.forEach(function(r,a){n+=e.visit(r),a0&&n("Invalid input not EOF"),z}function r(){return C(a)}function a(){return i("linear-gradient",e.linearGradient,s)||i("repeating-linear-gradient",e.repeatingLinearGradient,s)||i("radial-gradient",e.radialGradient,d)||i("repeating-radial-gradient",e.repeatingRadialGradient,d)}function i(z,G,Q){return l(G,function(Y){var oe=Q();return oe&&(B(e.comma)||n("Missing comma before color stops")),{type:z,orientation:oe,colorStops:C($)}})}function l(z,G){var Q=B(z);if(Q){B(e.startCall)||n("Missing (");var Y=G(Q);return B(e.endCall)||n("Missing )"),Y}}function s(){var z=u();if(z)return z;var G=F("position-keyword",e.positionKeywords,1);return G?{type:"directional",value:G.value}:c()}function u(){return F("directional",e.sideOrCorner,1)}function c(){return F("angular",e.angleValue,1)||F("angular",e.radianValue,1)}function d(){var z,G=f(),Q;return G&&(z=[],z.push(G),Q=t,B(e.comma)&&(G=f(),G?z.push(G):t=Q)),z}function f(){var z=p()||v();if(z)z.at=m();else{var G=h();if(G){z=G;var Q=m();Q&&(z.at=Q)}else{var Y=m();if(Y)z={type:"default-radial",at:Y};else{var oe=b();oe&&(z={type:"default-radial",at:oe})}}}return z}function p(){var z=F("shape",/^(circle)/i,0);return z&&(z.style=L()||h()),z}function v(){var z=F("shape",/^(ellipse)/i,0);return z&&(z.style=b()||M()||h()),z}function h(){return F("extent-keyword",e.extentKeywords,1)}function m(){if(F("position",/^at/,0)){var z=b();return z||n("Missing positioning value"),z}}function b(){var z=S();if(z.x||z.y)return{type:"position",value:z}}function S(){return{x:M(),y:M()}}function C(z){var G=z(),Q=[];if(G)for(Q.push(G);B(e.comma);)G=z(),G?Q.push(G):n("One extra comma");return Q}function $(){var z=x();return z||n("Expected color definition"),z.length=M(),z}function x(){return w()||A()||T()||I()||O()||_()||P()}function P(){return F("literal",e.literalColor,0)}function w(){return F("hex",e.hexColor,1)}function O(){return l(e.rgbColor,function(){return{type:"rgb",value:C(H)}})}function I(){return l(e.rgbaColor,function(){return{type:"rgba",value:C(H)}})}function _(){return l(e.varColor,function(){return{type:"var",value:R()}})}function T(){return l(e.hslColor,function(){var z=B(e.percentageValue);z&&n("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");var G=H();B(e.comma);var Q=B(e.percentageValue),Y=Q?Q[1]:null;B(e.comma),Q=B(e.percentageValue);var oe=Q?Q[1]:null;return(!Y||!oe)&&n("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[G,Y,oe]}})}function A(){return l(e.hslaColor,function(){var z=H();B(e.comma);var G=B(e.percentageValue),Q=G?G[1]:null;B(e.comma),G=B(e.percentageValue);var Y=G?G[1]:null;B(e.comma);var oe=H();return(!Q||!Y)&&n("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[z,Q,Y,oe]}})}function R(){return B(e.variableName)[1]}function H(){return B(e.number)[1]}function M(){return F("%",e.percentageValue,1)||D()||N()||L()}function D(){return F("position-keyword",e.positionKeywords,1)}function N(){return l(e.calcValue,function(){for(var z=1,G=0;z>0&&G0&&n("Missing closing parenthesis in calc() expression");var Y=t.substring(0,G-1);return j(G-1),{type:"calc",value:Y}})}function L(){return F("px",e.pixelValue,1)||F("em",e.emValue,1)}function F(z,G,Q){var Y=B(G);if(Y)return{type:z,value:Y[Q]}}function B(z){var G,Q;return Q=/^[\n\r\t\s]+/.exec(t),Q&&j(Q[0].length),G=z.exec(t),G&&j(G[0].length),G}function j(z){t=t.substr(z)}return function(z){return t=z.toString().trim(),t.endsWith(";")&&(t=t.slice(0,-1)),o()}}();var tCe=ps.parse,nCe=ps.stringify,Ro="top",Cr="bottom",xr="right",Do="left",L$="auto",Of=[Ro,Cr,xr,Do],Ec="start",Gd="end",oCe="clippingParents",Q7="viewport",xu="popper",rCe="reference",e3=Of.reduce(function(e,t){return e.concat([t+"-"+Ec,t+"-"+Gd])},[]),ek=[].concat(Of,[L$]).reduce(function(e,t){return e.concat([t,t+"-"+Ec,t+"-"+Gd])},[]),aCe="beforeRead",iCe="read",lCe="afterRead",sCe="beforeMain",cCe="main",uCe="afterMain",dCe="beforeWrite",fCe="write",pCe="afterWrite",gCe=[aCe,iCe,lCe,sCe,cCe,uCe,dCe,fCe,pCe];function va(e){return e?(e.nodeName||"").toLowerCase():null}function qo(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ql(e){var t=qo(e).Element;return e instanceof t||e instanceof Element}function gr(e){var t=qo(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function F$(e){if(typeof ShadowRoot>"u")return!1;var t=qo(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function hCe(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var o=t.styles[n]||{},r=t.attributes[n]||{},a=t.elements[n];!gr(a)||!va(a)||(Object.assign(a.style,o),Object.keys(r).forEach(function(i){var l=r[i];l===!1?a.removeAttribute(i):a.setAttribute(i,l===!0?"":l)}))})}function vCe(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(o){var r=t.elements[o],a=t.attributes[o]||{},i=Object.keys(t.styles.hasOwnProperty(o)?t.styles[o]:n[o]),l=i.reduce(function(s,u){return s[u]="",s},{});!gr(r)||!va(r)||(Object.assign(r.style,l),Object.keys(a).forEach(function(s){r.removeAttribute(s)}))})}}const mCe={name:"applyStyles",enabled:!0,phase:"write",fn:hCe,effect:vCe,requires:["computeStyles"]};function fa(e){return e.split("-")[0]}var Ll=Math.max,Eh=Math.min,_c=Math.round;function j1(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function tk(){return!/^((?!chrome|android).)*safari/i.test(j1())}function Mc(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var o=e.getBoundingClientRect(),r=1,a=1;t&&gr(e)&&(r=e.offsetWidth>0&&_c(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&_c(o.height)/e.offsetHeight||1);var i=ql(e)?qo(e):window,l=i.visualViewport,s=!tk()&&n,u=(o.left+(s&&l?l.offsetLeft:0))/r,c=(o.top+(s&&l?l.offsetTop:0))/a,d=o.width/r,f=o.height/a;return{width:d,height:f,top:c,right:u+d,bottom:c+f,left:u,x:u,y:c}}function B$(e){var t=Mc(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function nk(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&F$(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Ja(e){return qo(e).getComputedStyle(e)}function bCe(e){return["table","td","th"].indexOf(va(e))>=0}function el(e){return((ql(e)?e.ownerDocument:e.document)||window.document).documentElement}function Im(e){return va(e)==="html"?e:e.assignedSlot||e.parentNode||(F$(e)?e.host:null)||el(e)}function t3(e){return!gr(e)||Ja(e).position==="fixed"?null:e.offsetParent}function yCe(e){var t=/firefox/i.test(j1()),n=/Trident/i.test(j1());if(n&&gr(e)){var o=Ja(e);if(o.position==="fixed")return null}var r=Im(e);for(F$(r)&&(r=r.host);gr(r)&&["html","body"].indexOf(va(r))<0;){var a=Ja(r);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return r;r=r.parentNode}return null}function If(e){for(var t=qo(e),n=t3(e);n&&bCe(n)&&Ja(n).position==="static";)n=t3(n);return n&&(va(n)==="html"||va(n)==="body"&&Ja(n).position==="static")?t:n||yCe(e)||t}function H$(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ld(e,t,n){return Ll(e,Eh(t,n))}function SCe(e,t,n){var o=ld(e,t,n);return o>n?n:o}function ok(){return{top:0,right:0,bottom:0,left:0}}function rk(e){return Object.assign({},ok(),e)}function ak(e,t){return t.reduce(function(n,o){return n[o]=e,n},{})}var CCe=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,rk(typeof t!="number"?t:ak(t,Of))};function xCe(e){var t,n=e.state,o=e.name,r=e.options,a=n.elements.arrow,i=n.modifiersData.popperOffsets,l=fa(n.placement),s=H$(l),u=[Do,xr].indexOf(l)>=0,c=u?"height":"width";if(!(!a||!i)){var d=CCe(r.padding,n),f=B$(a),p=s==="y"?Ro:Do,v=s==="y"?Cr:xr,h=n.rects.reference[c]+n.rects.reference[s]-i[s]-n.rects.popper[c],m=i[s]-n.rects.reference[s],b=If(a),S=b?s==="y"?b.clientHeight||0:b.clientWidth||0:0,C=h/2-m/2,$=d[p],x=S-f[c]-d[v],P=S/2-f[c]/2+C,w=ld($,P,x),O=s;n.modifiersData[o]=(t={},t[O]=w,t.centerOffset=w-P,t)}}function $Ce(e){var t=e.state,n=e.options,o=n.element,r=o===void 0?"[data-popper-arrow]":o;r!=null&&(typeof r=="string"&&(r=t.elements.popper.querySelector(r),!r)||nk(t.elements.popper,r)&&(t.elements.arrow=r))}const wCe={name:"arrow",enabled:!0,phase:"main",fn:xCe,effect:$Ce,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ac(e){return e.split("-")[1]}var PCe={top:"auto",right:"auto",bottom:"auto",left:"auto"};function OCe(e,t){var n=e.x,o=e.y,r=t.devicePixelRatio||1;return{x:_c(n*r)/r||0,y:_c(o*r)/r||0}}function n3(e){var t,n=e.popper,o=e.popperRect,r=e.placement,a=e.variation,i=e.offsets,l=e.position,s=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,f=i.x,p=f===void 0?0:f,v=i.y,h=v===void 0?0:v,m=typeof c=="function"?c({x:p,y:h}):{x:p,y:h};p=m.x,h=m.y;var b=i.hasOwnProperty("x"),S=i.hasOwnProperty("y"),C=Do,$=Ro,x=window;if(u){var P=If(n),w="clientHeight",O="clientWidth";if(P===qo(n)&&(P=el(n),Ja(P).position!=="static"&&l==="absolute"&&(w="scrollHeight",O="scrollWidth")),P=P,r===Ro||(r===Do||r===xr)&&a===Gd){$=Cr;var I=d&&P===x&&x.visualViewport?x.visualViewport.height:P[w];h-=I-o.height,h*=s?1:-1}if(r===Do||(r===Ro||r===Cr)&&a===Gd){C=xr;var _=d&&P===x&&x.visualViewport?x.visualViewport.width:P[O];p-=_-o.width,p*=s?1:-1}}var T=Object.assign({position:l},u&&PCe),A=c===!0?OCe({x:p,y:h},qo(n)):{x:p,y:h};if(p=A.x,h=A.y,s){var R;return Object.assign({},T,(R={},R[$]=S?"0":"",R[C]=b?"0":"",R.transform=(x.devicePixelRatio||1)<=1?"translate("+p+"px, "+h+"px)":"translate3d("+p+"px, "+h+"px, 0)",R))}return Object.assign({},T,(t={},t[$]=S?h+"px":"",t[C]=b?p+"px":"",t.transform="",t))}function ICe(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=o===void 0?!0:o,a=n.adaptive,i=a===void 0?!0:a,l=n.roundOffsets,s=l===void 0?!0:l,u={placement:fa(t.placement),variation:Ac(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,n3(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:s})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,n3(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const TCe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:ICe,data:{}};var Sp={passive:!0};function ECe(e){var t=e.state,n=e.instance,o=e.options,r=o.scroll,a=r===void 0?!0:r,i=o.resize,l=i===void 0?!0:i,s=qo(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(c){c.addEventListener("scroll",n.update,Sp)}),l&&s.addEventListener("resize",n.update,Sp),function(){a&&u.forEach(function(c){c.removeEventListener("scroll",n.update,Sp)}),l&&s.removeEventListener("resize",n.update,Sp)}}const _Ce={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ECe,data:{}};var MCe={left:"right",right:"left",bottom:"top",top:"bottom"};function hg(e){return e.replace(/left|right|bottom|top/g,function(t){return MCe[t]})}var ACe={start:"end",end:"start"};function o3(e){return e.replace(/start|end/g,function(t){return ACe[t]})}function z$(e){var t=qo(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}}function j$(e){return Mc(el(e)).left+z$(e).scrollLeft}function RCe(e,t){var n=qo(e),o=el(e),r=n.visualViewport,a=o.clientWidth,i=o.clientHeight,l=0,s=0;if(r){a=r.width,i=r.height;var u=tk();(u||!u&&t==="fixed")&&(l=r.offsetLeft,s=r.offsetTop)}return{width:a,height:i,x:l+j$(e),y:s}}function DCe(e){var t,n=el(e),o=z$(e),r=(t=e.ownerDocument)==null?void 0:t.body,a=Ll(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),i=Ll(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),l=-o.scrollLeft+j$(e),s=-o.scrollTop;return Ja(r||n).direction==="rtl"&&(l+=Ll(n.clientWidth,r?r.clientWidth:0)-a),{width:a,height:i,x:l,y:s}}function W$(e){var t=Ja(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function ik(e){return["html","body","#document"].indexOf(va(e))>=0?e.ownerDocument.body:gr(e)&&W$(e)?e:ik(Im(e))}function sd(e,t){var n;t===void 0&&(t=[]);var o=ik(e),r=o===((n=e.ownerDocument)==null?void 0:n.body),a=qo(o),i=r?[a].concat(a.visualViewport||[],W$(o)?o:[]):o,l=t.concat(i);return r?l:l.concat(sd(Im(i)))}function W1(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function NCe(e,t){var n=Mc(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function r3(e,t,n){return t===Q7?W1(RCe(e,n)):ql(t)?NCe(t,n):W1(DCe(el(e)))}function kCe(e){var t=sd(Im(e)),n=["absolute","fixed"].indexOf(Ja(e).position)>=0,o=n&&gr(e)?If(e):e;return ql(o)?t.filter(function(r){return ql(r)&&nk(r,o)&&va(r)!=="body"}):[]}function LCe(e,t,n,o){var r=t==="clippingParents"?kCe(e):[].concat(t),a=[].concat(r,[n]),i=a[0],l=a.reduce(function(s,u){var c=r3(e,u,o);return s.top=Ll(c.top,s.top),s.right=Eh(c.right,s.right),s.bottom=Eh(c.bottom,s.bottom),s.left=Ll(c.left,s.left),s},r3(e,i,o));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function lk(e){var t=e.reference,n=e.element,o=e.placement,r=o?fa(o):null,a=o?Ac(o):null,i=t.x+t.width/2-n.width/2,l=t.y+t.height/2-n.height/2,s;switch(r){case Ro:s={x:i,y:t.y-n.height};break;case Cr:s={x:i,y:t.y+t.height};break;case xr:s={x:t.x+t.width,y:l};break;case Do:s={x:t.x-n.width,y:l};break;default:s={x:t.x,y:t.y}}var u=r?H$(r):null;if(u!=null){var c=u==="y"?"height":"width";switch(a){case Ec:s[u]=s[u]-(t[c]/2-n[c]/2);break;case Gd:s[u]=s[u]+(t[c]/2-n[c]/2);break}}return s}function Xd(e,t){t===void 0&&(t={});var n=t,o=n.placement,r=o===void 0?e.placement:o,a=n.strategy,i=a===void 0?e.strategy:a,l=n.boundary,s=l===void 0?oCe:l,u=n.rootBoundary,c=u===void 0?Q7:u,d=n.elementContext,f=d===void 0?xu:d,p=n.altBoundary,v=p===void 0?!1:p,h=n.padding,m=h===void 0?0:h,b=rk(typeof m!="number"?m:ak(m,Of)),S=f===xu?rCe:xu,C=e.rects.popper,$=e.elements[v?S:f],x=LCe(ql($)?$:$.contextElement||el(e.elements.popper),s,c,i),P=Mc(e.elements.reference),w=lk({reference:P,element:C,placement:r}),O=W1(Object.assign({},C,w)),I=f===xu?O:P,_={top:x.top-I.top+b.top,bottom:I.bottom-x.bottom+b.bottom,left:x.left-I.left+b.left,right:I.right-x.right+b.right},T=e.modifiersData.offset;if(f===xu&&T){var A=T[r];Object.keys(_).forEach(function(R){var H=[xr,Cr].indexOf(R)>=0?1:-1,M=[Ro,Cr].indexOf(R)>=0?"y":"x";_[R]+=A[M]*H})}return _}function FCe(e,t){t===void 0&&(t={});var n=t,o=n.placement,r=n.boundary,a=n.rootBoundary,i=n.padding,l=n.flipVariations,s=n.allowedAutoPlacements,u=s===void 0?ek:s,c=Ac(o),d=c?l?e3:e3.filter(function(v){return Ac(v)===c}):Of,f=d.filter(function(v){return u.indexOf(v)>=0});f.length===0&&(f=d);var p=f.reduce(function(v,h){return v[h]=Xd(e,{placement:h,boundary:r,rootBoundary:a,padding:i})[fa(h)],v},{});return Object.keys(p).sort(function(v,h){return p[v]-p[h]})}function BCe(e){if(fa(e)===L$)return[];var t=hg(e);return[o3(e),t,o3(t)]}function HCe(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var r=n.mainAxis,a=r===void 0?!0:r,i=n.altAxis,l=i===void 0?!0:i,s=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,v=p===void 0?!0:p,h=n.allowedAutoPlacements,m=t.options.placement,b=fa(m),S=b===m,C=s||(S||!v?[hg(m)]:BCe(m)),$=[m].concat(C).reduce(function(Q,Y){return Q.concat(fa(Y)===L$?FCe(t,{placement:Y,boundary:c,rootBoundary:d,padding:u,flipVariations:v,allowedAutoPlacements:h}):Y)},[]),x=t.rects.reference,P=t.rects.popper,w=new Map,O=!0,I=$[0],_=0;_<$.length;_++){var T=$[_],A=fa(T),R=Ac(T)===Ec,H=[Ro,Cr].indexOf(A)>=0,M=H?"width":"height",D=Xd(t,{placement:T,boundary:c,rootBoundary:d,altBoundary:f,padding:u}),N=H?R?xr:Do:R?Cr:Ro;x[M]>P[M]&&(N=hg(N));var L=hg(N),F=[];if(a&&F.push(D[A]<=0),l&&F.push(D[N]<=0,D[L]<=0),F.every(function(Q){return Q})){I=T,O=!1;break}w.set(T,F)}if(O)for(var B=v?3:1,j=function(Y){var oe=$.find(function(Z){var re=w.get(Z);if(re)return re.slice(0,Y).every(function(ne){return ne})});if(oe)return I=oe,"break"},z=B;z>0;z--){var G=j(z);if(G==="break")break}t.placement!==I&&(t.modifiersData[o]._skip=!0,t.placement=I,t.reset=!0)}}const zCe={name:"flip",enabled:!0,phase:"main",fn:HCe,requiresIfExists:["offset"],data:{_skip:!1}};function a3(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function i3(e){return[Ro,xr,Cr,Do].some(function(t){return e[t]>=0})}function jCe(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,a=t.modifiersData.preventOverflow,i=Xd(t,{elementContext:"reference"}),l=Xd(t,{altBoundary:!0}),s=a3(i,o),u=a3(l,r,a),c=i3(s),d=i3(u);t.modifiersData[n]={referenceClippingOffsets:s,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const WCe={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:jCe};function VCe(e,t,n){var o=fa(e),r=[Do,Ro].indexOf(o)>=0?-1:1,a=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,i=a[0],l=a[1];return i=i||0,l=(l||0)*r,[Do,xr].indexOf(o)>=0?{x:l,y:i}:{x:i,y:l}}function KCe(e){var t=e.state,n=e.options,o=e.name,r=n.offset,a=r===void 0?[0,0]:r,i=ek.reduce(function(c,d){return c[d]=VCe(d,t.rects,a),c},{}),l=i[t.placement],s=l.x,u=l.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=u),t.modifiersData[o]=i}const UCe={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:KCe};function GCe(e){var t=e.state,n=e.name;t.modifiersData[n]=lk({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const XCe={name:"popperOffsets",enabled:!0,phase:"read",fn:GCe,data:{}};function YCe(e){return e==="x"?"y":"x"}function qCe(e){var t=e.state,n=e.options,o=e.name,r=n.mainAxis,a=r===void 0?!0:r,i=n.altAxis,l=i===void 0?!1:i,s=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,v=n.tetherOffset,h=v===void 0?0:v,m=Xd(t,{boundary:s,rootBoundary:u,padding:d,altBoundary:c}),b=fa(t.placement),S=Ac(t.placement),C=!S,$=H$(b),x=YCe($),P=t.modifiersData.popperOffsets,w=t.rects.reference,O=t.rects.popper,I=typeof h=="function"?h(Object.assign({},t.rects,{placement:t.placement})):h,_=typeof I=="number"?{mainAxis:I,altAxis:I}:Object.assign({mainAxis:0,altAxis:0},I),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,A={x:0,y:0};if(P){if(a){var R,H=$==="y"?Ro:Do,M=$==="y"?Cr:xr,D=$==="y"?"height":"width",N=P[$],L=N+m[H],F=N-m[M],B=p?-O[D]/2:0,j=S===Ec?w[D]:O[D],z=S===Ec?-O[D]:-w[D],G=t.elements.arrow,Q=p&&G?B$(G):{width:0,height:0},Y=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:ok(),oe=Y[H],Z=Y[M],re=ld(0,w[D],Q[D]),ne=C?w[D]/2-B-re-oe-_.mainAxis:j-re-oe-_.mainAxis,X=C?-w[D]/2+B+re+Z+_.mainAxis:z+re+Z+_.mainAxis,te=t.elements.arrow&&If(t.elements.arrow),W=te?$==="y"?te.clientTop||0:te.clientLeft||0:0,U=(R=T==null?void 0:T[$])!=null?R:0,J=N+ne-U-W,de=N+X-U,fe=ld(p?Eh(L,J):L,N,p?Ll(F,de):F);P[$]=fe,A[$]=fe-N}if(l){var pe,ve=$==="x"?Ro:Do,he=$==="x"?Cr:xr,V=P[x],q=x==="y"?"height":"width",ae=V+m[ve],me=V-m[he],Se=[Ro,Do].indexOf(b)!==-1,ce=(pe=T==null?void 0:T[x])!=null?pe:0,ee=Se?ae:V-w[q]-O[q]-ce+_.altAxis,ue=Se?V+w[q]+O[q]-ce-_.altAxis:me,xe=p&&Se?SCe(ee,V,ue):ld(p?ee:ae,V,p?ue:me);P[x]=xe,A[x]=xe-V}t.modifiersData[o]=A}}const JCe={name:"preventOverflow",enabled:!0,phase:"main",fn:qCe,requiresIfExists:["offset"]};function ZCe(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function QCe(e){return e===qo(e)||!gr(e)?z$(e):ZCe(e)}function exe(e){var t=e.getBoundingClientRect(),n=_c(t.width)/e.offsetWidth||1,o=_c(t.height)/e.offsetHeight||1;return n!==1||o!==1}function txe(e,t,n){n===void 0&&(n=!1);var o=gr(t),r=gr(t)&&exe(t),a=el(t),i=Mc(e,r,n),l={scrollLeft:0,scrollTop:0},s={x:0,y:0};return(o||!o&&!n)&&((va(t)!=="body"||W$(a))&&(l=QCe(t)),gr(t)?(s=Mc(t,!0),s.x+=t.clientLeft,s.y+=t.clientTop):a&&(s.x=j$(a))),{x:i.left+l.scrollLeft-s.x,y:i.top+l.scrollTop-s.y,width:i.width,height:i.height}}function nxe(e){var t=new Map,n=new Set,o=[];e.forEach(function(a){t.set(a.name,a)});function r(a){n.add(a.name);var i=[].concat(a.requires||[],a.requiresIfExists||[]);i.forEach(function(l){if(!n.has(l)){var s=t.get(l);s&&r(s)}}),o.push(a)}return e.forEach(function(a){n.has(a.name)||r(a)}),o}function oxe(e){var t=nxe(e);return gCe.reduce(function(n,o){return n.concat(t.filter(function(r){return r.phase===o}))},[])}function rxe(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function axe(e){var t=e.reduce(function(n,o){var r=n[o.name];return n[o.name]=r?Object.assign({},r,o,{options:Object.assign({},r.options,o.options),data:Object.assign({},r.data,o.data)}):o,n},{});return Object.keys(t).map(function(n){return t[n]})}var l3={placement:"bottom",modifiers:[],strategy:"absolute"};function s3(){for(var e=arguments.length,t=new Array(e),n=0;n0?$xe:xxe)(e)},wxe=Math.min,Jo=function(e){return e>0?wxe(iu(e),9007199254740991):0},Pxe=Math.max,Oxe=Math.min,Ah=function(e,t){var n=iu(e);return n<0?Pxe(n+t,0):Oxe(n,t)},Ixe=function(e){return function(t,n,o){var r,a=au(t),i=Jo(a.length),l=Ah(o,i);if(e&&n!=n){for(;i>l;)if((r=a[l++])!=r)return!0}else for(;i>l;l++)if((e||l in a)&&a[l]===n)return e||l||0;return!e&&-1}},fk={indexOf:Ixe(!1)},Txe=fk.indexOf,pk=function(e,t){var n,o=au(e),r=0,a=[];for(n in o)!$n(_m,n)&&$n(o,n)&&a.push(n);for(;t.length>r;)$n(o,n=t[r++])&&(~Txe(a,n)||a.push(n));return a},Rh=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Exe=Rh.concat("length","prototype"),_xe={f:Object.getOwnPropertyNames||function(e){return pk(e,Exe)}},Mxe={f:Object.getOwnPropertySymbols},Axe=Mm("Reflect","ownKeys")||function(e){var t=_xe.f(Co(e)),n=Mxe.f;return n?t.concat(n(e)):t},Rxe=function(e,t){for(var n=Axe(t),o=ri.f,r=U$.f,a=0;a1?arguments[1]:void 0)}});(function(){function e(){gs(this,e)}return hs(e,null,[{key:"isInBrowser",value:function(){return typeof window<"u"}},{key:"isServer",value:function(){return typeof window>"u"}},{key:"getUA",value:function(){return e.isInBrowser()?window.navigator.userAgent.toLowerCase():""}},{key:"isMobile",value:function(){return/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(navigator.appVersion)}},{key:"isOpera",value:function(){return navigator.userAgent.indexOf("Opera")!==-1}},{key:"isIE",value:function(){var t=e.getUA();return t!==""&&t.indexOf("msie")>0}},{key:"isIE9",value:function(){var t=e.getUA();return t!==""&&t.indexOf("msie 9.0")>0}},{key:"isEdge",value:function(){var t=e.getUA();return t!==""&&t.indexOf("edge/")>0}},{key:"isChrome",value:function(){var t=e.getUA();return t!==""&&/chrome\/\d+/.test(t)&&!e.isEdge()}},{key:"isPhantomJS",value:function(){var t=e.getUA();return t!==""&&/phantomjs/.test(t)}},{key:"isFirefox",value:function(){var t=e.getUA();return t!==""&&/firefox/.test(t)}}]),e})();var Kxe=[].join,Uxe=Em!=Object,Gxe=q$("join",",");po({target:"Array",proto:!0,forced:Uxe||!Gxe},{join:function(e){return Kxe.call(au(this),e===void 0?",":e)}});var Is,Dh,ai=function(e){return Object(Hi(e))},Rc=Array.isArray||function(e){return Ka(e)=="Array"},hk=!!Object.getOwnPropertySymbols&&!qt(function(){return!String(Symbol())}),Xxe=hk&&!Symbol.sham&&typeof Symbol.iterator=="symbol",xp=dk("wks"),ud=An.Symbol,Yxe=Xxe?ud:ud&&ud.withoutSetter||X$,dn=function(e){return $n(xp,e)||(hk&&$n(ud,e)?xp[e]=ud[e]:xp[e]=Yxe("Symbol."+e)),xp[e]},qxe=dn("species"),Am=function(e,t){var n;return Rc(e)&&(typeof(n=e.constructor)!="function"||n!==Array&&!Rc(n.prototype)?jn(n)&&(n=n[qxe])===null&&(n=void 0):n=void 0),new(n===void 0?Array:n)(t===0?0:t)},Dc=function(e,t,n){var o=K$(t);o in e?ri.f(e,o,Tm(0,n)):e[o]=n},xb=Mm("navigator","userAgent")||"",y3=An.process,S3=y3&&y3.versions,C3=S3&&S3.v8;C3?Dh=(Is=C3.split("."))[0]+Is[1]:xb&&(!(Is=xb.match(/Edge\/(\d+)/))||Is[1]>=74)&&(Is=xb.match(/Chrome\/(\d+)/))&&(Dh=Is[1]);var Nh=Dh&&+Dh,Jxe=dn("species"),J$=function(e){return Nh>=51||!qt(function(){var t=[];return(t.constructor={})[Jxe]=function(){return{foo:1}},t[e](Boolean).foo!==1})},Zxe=J$("splice"),Qxe=lu("splice",{ACCESSORS:!0,0:0,1:2}),e$e=Math.max,t$e=Math.min;po({target:"Array",proto:!0,forced:!Zxe||!Qxe},{splice:function(e,t){var n,o,r,a,i,l,s=ai(this),u=Jo(s.length),c=Ah(e,u),d=arguments.length;if(d===0?n=o=0:d===1?(n=0,o=u-c):(n=d-2,o=t$e(e$e(iu(t),0),u-c)),u+n-o>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(r=Am(s,o),a=0;au-o+n;a--)delete s[a-1]}else if(n>o)for(a=u-o;a>c;a--)l=a+n-1,(i=a+o-1)in s?s[l]=s[i]:delete s[l];for(a=0;a0&&(!a.multiline||a.multiline&&e[a.lastIndex-1]!==`
+当前版本数:{versionCount}`,saveStatus:"保存状态:{message}",saveFailed:"保存计划修改失败",generateSuccess:"计划生成成功!模板ID: {templateId}",generateFailed:"生成计划失败",updateSuccess:"计划更新成功!",updateFailed:"更新计划失败",executeFailed:"执行计划失败",unknown:"未知",newTemplateName:"新建的执行计划",newTemplateDescription:"请使用计划生成器创建新的计划模板",generatedTemplateDescription:"通过生成器创建的计划模板",defaultExecutionPlanTitle:"执行计划",planId:"计划模板ID",steps:"步骤",tasks:"任务列表",subtask:"子任务",agent:"智能体",stepRequirement:"任务需求",stepRequirementPlaceholder:"请输入任务的具体需求和描述...",terminateColumns:"任务输出要求描述",terminateColumnsPlaceholder:"请输入任务输出要求描述...",titlePlaceholder:"请输入计划标题...",moveUp:"上移",moveDown:"下移",removeStep:"删除步骤",addStep:"添加步骤",addFirstStep:"添加第一个步骤",noSteps:"暂无步骤,点击下方按钮开始添加",jsonPreview:"JSON预览",showJson:"显示JSON",hideJson:"隐藏JSON",refreshAgents:"刷新智能体",agentLoadError:"加载智能体失败",retryLoadAgents:"重新加载智能体",availableTools:"可用工具",loadingFailed:"加载失败",networkError:"网络错误",apiError:"API调用失败",resizeHint:"拖拽调整大小"},toolSelection:{title:"选择工具",searchPlaceholder:"搜索工具...",sortByGroup:"按服务组排序",sortByName:"按名称排序",sortByStatus:"按启用状态排序",summary:"共 {groups} 个服务组,{tools} 个工具 (已选择 {selected} 个)",enableAll:"启用全部",noToolsFound:"没有找到工具"},direct:{planTemplateIdNotFound:"没有找到计划模板ID",executionFailedNoPlanId:"执行计划失败:未返回有效的计划ID",executionFailed:"执行计划失败",configuration:"设置",panelResizeHint:"拖拽调整面板大小"},modal:{close:"关闭",cancel:"取消",confirm:"确认",save:"保存",delete:"删除",edit:"编辑"},editor:{format:"格式化",undo:"撤销",redo:"重做",find:"查找",replace:"替换",gotoLine:"跳转到行",selectAll:"全选",toggleWordWrap:"切换自动换行",toggleMinimap:"切换迷你地图",increaseFontSize:"增大字体",decreaseFontSize:"减小字体",resetFontSize:"重置字体大小"},validation:{required:"内容不能为空"},theme:{switch:"切换主题",light:"浅色主题",dark:"深色主题",auto:"跟随系统"},error:{notFound:"页面未找到",notFoundDescription:"抱歉,您访问的页面不存在",serverError:"服务器错误",serverErrorDescription:"服务器出现了一些问题,请稍后再试",networkError:"网络错误",networkErrorDescription:"网络连接失败,请检查您的网络设置",backToHome:"返回首页",retry:"重试"},time:{now:"刚刚",unknown:"未知时间",minuteAgo:"{count} 分钟前",hourAgo:"{count} 小时前",dayAgo:"{count} 天前",weekAgo:"{count} 周前",monthAgo:"{count} 个月前",yearAgo:"{count} 年前",today:"今天",yesterday:"昨天",tomorrow:"明天",thisWeek:"本周",lastWeek:"上周",nextWeek:"下周",thisMonth:"本月",lastMonth:"上月",nextMonth:"下月",thisYear:"今年",lastYear:"去年",nextYear:"明年"},stats:{total:"总计",count:"数量",percentage:"百分比",average:"平均",median:"中位数",min:"最小值",max:"最大值",sum:"总和",growth:"增长",decline:"下降",noData:"暂无数据",loading:"数据加载中...",error:"数据加载失败"},home:{welcomeTitle:"欢迎使用 JManus!",welcomeSubtitle:"您的 Java AI 智能助手,帮助您构建和完成各种任务。",tagline:"Java AI 智能体",inputPlaceholder:"描述您想构建或完成的内容...",directButton:"直接进入工作台",examples:{stockPrice:{title:"查询股价",description:"获取今天阿里巴巴的最新股价(Agent可以使用浏览器工具)",prompt:"用浏览器基于百度,查询今天阿里巴巴的股价,并返回最新股价"},weather:{title:"查询天气",description:"获取北京今天的天气情况(Agent可以使用MCP工具服务)",prompt:"用浏览器,基于百度,查询北京今天的天气"},queryplan:{title:"查询一个人的信息",description:"查询 沈询 阿里的所有信息(用于展示无限上下文能力)",prompt:"用浏览器,基于百度,查询计划",planTitle:"查询 沈询 阿里的所有信息(用于展示无限上下文能力)",step1:"[BROWSER_AGENT] 通过 百度 查询 沈询 阿里 , 获取第一页的html 百度数据,合并聚拢 到 html_data 的目录里",step1Output:"存放的目录路径",step2:"[BROWSER_AGENT] 从 html_data 目录中找到所有的有效关于沈询 阿里 的网页链接,输出到 link.md里面",step2Output:"url地址,说明"},ainovel:{title:"AI小说创作",description:"人工智能逐步击败人类主题小说(用于展示超长内容的输出)",prompt:"创建一个关于人工智能逐步击败人类的小说,包含10个章节",planTitle:"人工智能逐步击败人类小说创作计划",step1:"[TEXT_FILE_AGENT] 创建小说的大标题和子章节标题的文件,期望是一有10个子章节的的小说,提纲输出到novel.md里,每一个子章节用二级标题,在当前步骤只需要写章节的标题即可,小说的大标题是《人工智能逐步击败人类》",step1Output:"文件的名字",step2:"[TEXT_FILE_AGENT] 从novel.md文件获取子标题信息,然后依次完善每一个章节的具体内容,每个轮次只完善一个子章节的内容,用replace来更新内容,每个章节要求有3000字的内容,不要每更新一个章节就查询一下文档的全部内容",step2Output:"文件的名字"},formInputDemo:{title:"AI智能动态表单演示",description:"体验AI智能分析用户需求并动态生成相关表单字段的能力",prompt:"演示AI如何根据用户问题智能生成针对性的表单字段",planTitle:"AI智能动态表单演示计划",step1:"[INTELLIGENT_FORM_AGENT] 要求用户输入咨询类型,咨询类型有三种,一个是业务咨询,一个是技术咨询,还有一个是架构咨询",step1Output:"业务类型",step2:`[DEFAULT_AGENT] 如果是技术咨询,则输出:技术咨询请拨打10086
+如果是架构咨询,则输出:架构咨询可以联系沈询
+其他则输出空,不属于我的范围`,step2Output:"",step3:"[DEFAULT_AGENT] 如果是业务咨询,则输出:业务咨询,可以通过官网链接 www.yida.com 来提交",step3Output:""}}},rightPanel:{stepExecutionDetails:"步骤执行详情",noStepSelected:"未选择执行步骤",selectStepHint:"请在左侧聊天区域选择一个执行步骤查看详情",stepExecuting:"步骤正在执行中,请稍候...",step:"步骤",executingAgent:"执行智能体",description:"描述",request:"请求",callingModel:"调用模型",executionResult:"执行结果",executing:"执行中...",thinkAndActionSteps:"思考与行动步骤",thinking:"思考",action:"行动",input:"输入",output:"输出",tool:"工具",toolParameters:"工具参数",noStepDetails:"暂无详细步骤信息",scrollToBottom:"滚动到底部",stepInfo:"步骤信息",stepName:"步骤名称",noExecutionInfo:"该步骤暂无详细执行信息",subPlan:"子执行计划",subStep:"子步骤",subPlanId:"子计划ID",title:"标题",stepNumber:"步骤 {number}",status:{label:"状态",completed:"已完成",executing:"执行中",pending:"待执行"},tabs:{details:"步骤执行详情",chat:"Chat",code:"Code"},chatBubbles:{analyzeRequirements:{title:"分析需求",content:"将您的请求分解为可操作的步骤:1) 创建用户实体,2) 实现用户服务,3) 构建 REST 端点,4) 添加验证和错误处理。"},generateCode:{title:"生成代码",content:"创建具有用户管理 CRUD 操作的 Spring Boot REST API。包括正确的 HTTP 状态代码和错误处理。"},codeGenerated:{title:"代码已生成",content:"成功生成具有所有 CRUD 操作的 UserController。代码包含正确的 REST 约定、错误处理,并遵循 Spring Boot 最佳实践。"}},timeAgo:{justNow:"刚刚",minutesAgo:"{n} 分钟前",hoursAgo:"{n} 小时前",daysAgo:"{n} 天前"},defaultStepTitle:"步骤 {number}"},cronTask:{title:"定时任务管理",addTask:"定时任务",noTasks:"暂无定时任务",taskName:"任务名称",taskNamePlaceholder:"请输入任务名称",cronExpression:"Cron表达式",cronExpressionPlaceholder:"例如: 0 0 12 * * ?",cronExpressionHelp:"格式: 秒 分 时 日 月 周 年",taskDescription:"任务描述",taskDescriptionPlaceholder:"请输入任务描述",taskStatus:"任务状态",taskDetail:"任务详情",executeOnce:"执行一次",edit:"编辑",operations:"操作",enable:"启用",disable:"禁用",delete:"删除",deleteConfirm:"确认删除",deleteConfirmMessage:'确定要删除任务 "{taskName}" 吗?此操作不可撤销。',nextExecution:"下次执行时间",createTime:"创建时间",updateTime:"更新时间",active:"启用",inactive:"禁用",template:"示例:每天帮我早上8点,帮我收集当天的AI新闻吧",planTemplate:"计划模板",linkTemplate:"关联模板",noTemplate:"不关联",selectTemplate:"请选择模板",templateHelpText:"选择后,定时任务将按照制定好的计划执行",createTask:"创建定时任务",selectCreateMethod:"请选择创建方式",createWithJmanus:"让Jmanus帮忙创建",createWithJmanusDesc:"通过AI助手引导创建定时任务",createManually:"手动创建",createManuallyDesc:"自己填写定时任务信息"},memory:{title:"记忆管理",searchPlaceholder:"搜索记忆...",size:"条记忆",newNamePlaceholder:"输入新名称...",changeName:"修改名称",save:"保存",cancel:"关闭",delete:"删除",deleteHint:"删除提示",deleteHintPrefix:"你确定要删除ID为",deleteHintSuffix:"的消息吗?此操作不可撤销。",selectMemory:"选择记忆",clearMemory:"清除记忆",newChat:"新建对话"},selectCommon:{pleaseSelect:"请选择..."}},W7="LOCAL_STORAGE_LOCALE",V7=rt({locale:localStorage.getItem(W7)??"en",opts:[{value:"en",title:"English"},{value:"zh",title:"中文"}]}),K7=J1e({legacy:!1,locale:V7.locale,fallbackLocale:"en",messages:{en:sSe,zh:cSe}}),uSe=async e=>{localStorage.setItem(W7,e),K7.global.locale.value=e,V7.locale=e,console.log(`Successfully switched frontend language to: ${e}`)},xPe=async e=>{await uSe(e);try{const t=await fetch(`/admin/prompts/switch-language?language=${e}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(t.ok)console.log(`Successfully reset prompts to language: ${e}`);else{const o=await t.text();console.error(`Failed to reset prompts to language: ${e}`,o)}const n=await fetch("/api/agent-management/initialize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({language:e})});if(n.ok){const o=await n.json();console.log(`Successfully initialized agents with language: ${e}`,o)}else{const o=await n.json();throw console.error(`Failed to initialize agents with language: ${e}`,o),new Error(o.error||"Failed to initialize agents")}}catch(t){throw console.error("Error initializing agents and prompts during language change:",t),t}};function U7(e){return Vh()?(rS(e),!0):!1}function Yl(e){return typeof e=="function"?e():Bt(e)}const Pm=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const dSe=Object.prototype.toString,fSe=e=>dSe.call(e)==="[object Object]",cc=()=>{},pSe=gSe();function gSe(){var e,t;return Pm&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function G7(e,t){function n(...o){return new Promise((r,a)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(r).catch(a)})}return n}const X7=e=>e();function hSe(e,t={}){let n,o,r=cc;const a=l=>{clearTimeout(l),r(),r=cc};return l=>{const s=Yl(e),u=Yl(t.maxWait);return n&&a(n),s<=0||u!==void 0&&u<=0?(o&&(a(o),o=null),Promise.resolve(l())):new Promise((c,d)=>{r=t.rejectOnCancel?d:c,u&&!o&&(o=setTimeout(()=>{n&&a(n),o=null,c(l())},u)),n=setTimeout(()=>{o&&a(o),o=null,c(l())},s)})}}function vSe(e=X7){const t=ie(!0);function n(){t.value=!1}function o(){t.value=!0}const r=(...a)=>{t.value&&e(...a)};return{isActive:Uh(t),pause:n,resume:o,eventFilter:r}}function mSe(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const o=t;t=void 0,o&&await o},n}function bSe(e){return Jt()}function Va(e,t=200,n={}){return G7(hSe(t,n),e)}function ySe(e,t,n={}){const{eventFilter:o=X7,...r}=n;return be(e,G7(o,t),r)}function SSe(e,t,n={}){const{eventFilter:o,...r}=n,{eventFilter:a,pause:i,resume:l,isActive:s}=vSe(o);return{stop:ySe(e,t,{...r,eventFilter:a}),pause:i,resume:l,isActive:s}}function fs(e,t=!0,n){bSe()?Ke(e,n):t?e():ot(e)}function CSe(e,t,n={}){const{immediate:o=!0}=n,r=ie(!1);let a=null;function i(){a&&(clearTimeout(a),a=null)}function l(){r.value=!1,i()}function s(...u){i(),r.value=!0,a=setTimeout(()=>{r.value=!1,a=null,e(...u)},Yl(t))}return o&&(r.value=!0,Pm&&s()),U7(l),{isPending:Uh(r),start:s,stop:l}}function ao(e,t,n){const o=be(e,(r,a,i)=>{r&&(n!=null&&n.once&&ot(()=>o()),t(r,a,i))},{...n,once:!1});return o}function Au(e){var t;const n=Yl(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ud=Pm?window:void 0,Y7=Pm?window.navigator:void 0;function kl(...e){let t,n,o,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,o,r]=e,t=Ud):[t,n,o,r]=e,!t)return cc;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const a=[],i=()=>{a.forEach(c=>c()),a.length=0},l=(c,d,f,p)=>(c.addEventListener(d,f,p),()=>c.removeEventListener(d,f,p)),s=be(()=>[Au(t),Yl(r)],([c,d])=>{if(i(),!c)return;const f=fSe(d)?{...d}:d;a.push(...n.flatMap(p=>o.map(v=>l(c,p,v,f))))},{immediate:!0,flush:"post"}),u=()=>{s(),i()};return U7(u),u}let K4=!1;function xSe(e,t,n={}){const{window:o=Ud,ignore:r=[],capture:a=!0,detectIframe:i=!1}=n;if(!o)return cc;pSe&&!K4&&(K4=!0,Array.from(o.document.body.children).forEach(f=>f.addEventListener("click",cc)),o.document.documentElement.addEventListener("click",cc));let l=!0;const s=f=>r.some(p=>{if(typeof p=="string")return Array.from(o.document.querySelectorAll(p)).some(v=>v===f.target||f.composedPath().includes(v));{const v=Au(p);return v&&(f.target===v||f.composedPath().includes(v))}}),c=[kl(o,"click",f=>{const p=Au(e);if(!(!p||p===f.target||f.composedPath().includes(p))){if(f.detail===0&&(l=!s(f)),!l){l=!0;return}t(f)}},{passive:!0,capture:a}),kl(o,"pointerdown",f=>{const p=Au(e);l=!s(f)&&!!(p&&!f.composedPath().includes(p))},{passive:!0}),i&&kl(o,"blur",f=>{setTimeout(()=>{var p;const v=Au(e);((p=o.document.activeElement)==null?void 0:p.tagName)==="IFRAME"&&!(v!=null&&v.contains(o.document.activeElement))&&t(f)},0)})].filter(Boolean);return()=>c.forEach(f=>f())}function $Se(){const e=ie(!1),t=Jt();return t&&Ke(()=>{e.value=!0},t),e}function q7(e){const t=$Se();return E(()=>(t.value,!!e()))}function U4(e,t={}){const{controls:n=!1,navigator:o=Y7}=t,r=q7(()=>o&&"permissions"in o);let a;const i=typeof e=="string"?{name:e}:e,l=ie(),s=()=>{a&&(l.value=a.state)},u=mSe(async()=>{if(r.value){if(!a)try{a=await o.permissions.query(i),kl(a,"change",s),s()}catch{l.value="prompt"}return a}});return u(),n?{state:l,isSupported:r,query:u}:l}function wSe(e={}){const{navigator:t=Y7,read:n=!1,source:o,copiedDuring:r=1500,legacy:a=!1}=e,i=q7(()=>t&&"clipboard"in t),l=U4("clipboard-read"),s=U4("clipboard-write"),u=E(()=>i.value||a),c=ie(""),d=ie(!1),f=CSe(()=>d.value=!1,r);function p(){i.value&&b(l.value)?t.clipboard.readText().then(S=>{c.value=S}):c.value=m()}u.value&&n&&kl(["copy","cut"],p);async function v(S=Yl(o)){u.value&&S!=null&&(i.value&&b(s.value)?await t.clipboard.writeText(S):h(S),c.value=S,d.value=!0,f.start())}function h(S){const C=document.createElement("textarea");C.value=S??"",C.style.position="absolute",C.style.opacity="0",document.body.appendChild(C),C.select(),document.execCommand("copy"),C.remove()}function m(){var S,C,$;return($=(C=(S=document==null?void 0:document.getSelection)==null?void 0:S.call(document))==null?void 0:C.toString())!=null?$:""}function b(S){return S==="granted"||S==="prompt"}return{isSupported:u,text:c,copied:d,copy:v}}const bp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},yp="__vueuse_ssr_handlers__",PSe=OSe();function OSe(){return yp in bp||(bp[yp]=bp[yp]||{}),bp[yp]}function ISe(e,t){return PSe[e]||t}function TSe(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const ESe={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},G4="vueuse-storage";function _Se(e,t,n,o={}){var r;const{flush:a="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:s=!0,mergeDefaults:u=!1,shallow:c,window:d=Ud,eventFilter:f,onError:p=_=>{console.error(_)},initOnMounted:v}=o,h=(c?se:ie)(typeof t=="function"?t():t);if(!n)try{n=ISe("getDefaultStorage",()=>{var _;return(_=Ud)==null?void 0:_.localStorage})()}catch(_){p(_)}if(!n)return h;const m=Yl(t),b=TSe(m),S=(r=o.serializer)!=null?r:ESe[b],{pause:C,resume:$}=SSe(h,()=>P(h.value),{flush:a,deep:i,eventFilter:f});d&&l&&fs(()=>{kl(d,"storage",O),kl(d,G4,I),v&&O()}),v||O();function x(_,T){d&&d.dispatchEvent(new CustomEvent(G4,{detail:{key:e,oldValue:_,newValue:T,storageArea:n}}))}function P(_){try{const T=n.getItem(e);if(_==null)x(T,null),n.removeItem(e);else{const A=S.write(_);T!==A&&(n.setItem(e,A),x(T,A))}}catch(T){p(T)}}function w(_){const T=_?_.newValue:n.getItem(e);if(T==null)return s&&m!=null&&n.setItem(e,S.write(m)),m;if(!_&&u){const A=S.read(T);return typeof u=="function"?u(A,m):b==="object"&&!Array.isArray(A)?{...m,...A}:A}else return typeof T!="string"?T:S.read(T)}function O(_){if(!(_&&_.storageArea!==n)){if(_&&_.key==null){h.value=m;return}if(!(_&&_.key!==e)){C();try{(_==null?void 0:_.newValue)!==S.write(h.value)&&(h.value=w(_))}catch(T){p(T)}finally{_?ot($):$()}}}}function I(_){O(_.detail)}return h}function k$(e,t,n={}){const{window:o=Ud}=n;return _Se(e,t,o==null?void 0:o.localStorage,n)}function Th(e){"@babel/helpers - typeof";return Th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Th(e)}var MSe=/^\s+/,ASe=/\s+$/;function ke(e,t){if(e=e||"",t=t||{},e instanceof ke)return e;if(!(this instanceof ke))return new ke(e,t);var n=RSe(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=n.ok}ke.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},getLuminance:function(){var t=this.toRgb(),n,o,r,a,i,l;return n=t.r/255,o=t.g/255,r=t.b/255,n<=.03928?a=n/12.92:a=Math.pow((n+.055)/1.055,2.4),o<=.03928?i=o/12.92:i=Math.pow((o+.055)/1.055,2.4),r<=.03928?l=r/12.92:l=Math.pow((r+.055)/1.055,2.4),.2126*a+.7152*i+.0722*l},setAlpha:function(t){return this._a=J7(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=Y4(this._r,this._g,this._b);return{h:t.h*360,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=Y4(this._r,this._g,this._b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.v*100);return this._a==1?"hsv("+n+", "+o+"%, "+r+"%)":"hsva("+n+", "+o+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var t=X4(this._r,this._g,this._b);return{h:t.h*360,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=X4(this._r,this._g,this._b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.l*100);return this._a==1?"hsl("+n+", "+o+"%, "+r+"%)":"hsla("+n+", "+o+"%, "+r+"%, "+this._roundA+")"},toHex:function(t){return q4(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return LSe(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(Zt(this._r,255)*100)+"%",g:Math.round(Zt(this._g,255)*100)+"%",b:Math.round(Zt(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+Math.round(Zt(this._r,255)*100)+"%, "+Math.round(Zt(this._g,255)*100)+"%, "+Math.round(Zt(this._b,255)*100)+"%)":"rgba("+Math.round(Zt(this._r,255)*100)+"%, "+Math.round(Zt(this._g,255)*100)+"%, "+Math.round(Zt(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:YSe[q4(this._r,this._g,this._b,!0)]||!1},toFilter:function(t){var n="#"+J4(this._r,this._g,this._b,this._a),o=n,r=this._gradientType?"GradientType = 1, ":"";if(t){var a=ke(t);o="#"+J4(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+n+",endColorstr="+o+")"},toString:function(t){var n=!!t;t=t||this._format;var o=!1,r=this._a<1&&this._a>=0,a=!n&&r&&(t==="hex"||t==="hex6"||t==="hex3"||t==="hex4"||t==="hex8"||t==="name");return a?t==="name"&&this._a===0?this.toName():this.toRgbString():(t==="rgb"&&(o=this.toRgbString()),t==="prgb"&&(o=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(o=this.toHexString()),t==="hex3"&&(o=this.toHexString(!0)),t==="hex4"&&(o=this.toHex8String(!0)),t==="hex8"&&(o=this.toHex8String()),t==="name"&&(o=this.toName()),t==="hsl"&&(o=this.toHslString()),t==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},clone:function(){return ke(this.toString())},_applyModification:function(t,n){var o=t.apply(null,[this].concat([].slice.call(n)));return this._r=o._r,this._g=o._g,this._b=o._b,this.setAlpha(o._a),this},lighten:function(){return this._applyModification(zSe,arguments)},brighten:function(){return this._applyModification(jSe,arguments)},darken:function(){return this._applyModification(WSe,arguments)},desaturate:function(){return this._applyModification(FSe,arguments)},saturate:function(){return this._applyModification(BSe,arguments)},greyscale:function(){return this._applyModification(HSe,arguments)},spin:function(){return this._applyModification(VSe,arguments)},_applyCombination:function(t,n){return t.apply(null,[this].concat([].slice.call(n)))},analogous:function(){return this._applyCombination(GSe,arguments)},complement:function(){return this._applyCombination(KSe,arguments)},monochromatic:function(){return this._applyCombination(XSe,arguments)},splitcomplement:function(){return this._applyCombination(USe,arguments)},triad:function(){return this._applyCombination(Z4,[3])},tetrad:function(){return this._applyCombination(Z4,[4])}};ke.fromRatio=function(e,t){if(Th(e)=="object"){var n={};for(var o in e)e.hasOwnProperty(o)&&(o==="a"?n[o]=e[o]:n[o]=Ru(e[o]));e=n}return ke(e,t)};function RSe(e){var t={r:0,g:0,b:0},n=1,o=null,r=null,a=null,i=!1,l=!1;return typeof e=="string"&&(e=QSe(e)),Th(e)=="object"&&(Oa(e.r)&&Oa(e.g)&&Oa(e.b)?(t=DSe(e.r,e.g,e.b),i=!0,l=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Oa(e.h)&&Oa(e.s)&&Oa(e.v)?(o=Ru(e.s),r=Ru(e.v),t=kSe(e.h,o,r),i=!0,l="hsv"):Oa(e.h)&&Oa(e.s)&&Oa(e.l)&&(o=Ru(e.s),a=Ru(e.l),t=NSe(e.h,o,a),i=!0,l="hsl"),e.hasOwnProperty("a")&&(n=e.a)),n=J7(n),{ok:i,format:e.format||l,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}function DSe(e,t,n){return{r:Zt(e,255)*255,g:Zt(t,255)*255,b:Zt(n,255)*255}}function X4(e,t,n){e=Zt(e,255),t=Zt(t,255),n=Zt(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),a,i,l=(o+r)/2;if(o==r)a=i=0;else{var s=o-r;switch(i=l>.5?s/(2-o-r):s/(o+r),o){case e:a=(t-n)/s+(t1&&(d-=1),d<1/6?u+(c-u)*6*d:d<1/2?c:d<2/3?u+(c-u)*(2/3-d)*6:u}if(t===0)o=r=a=n;else{var l=n<.5?n*(1+t):n+t-n*t,s=2*n-l;o=i(s,l,e+1/3),r=i(s,l,e),a=i(s,l,e-1/3)}return{r:o*255,g:r*255,b:a*255}}function Y4(e,t,n){e=Zt(e,255),t=Zt(t,255),n=Zt(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),a,i,l=o,s=o-r;if(i=o===0?0:s/o,o==r)a=0;else{switch(o){case e:a=(t-n)/s+(t>1)+720)%360;--t;)o.h=(o.h+r)%360,a.push(ke(o));return a}function XSe(e,t){t=t||6;for(var n=ke(e).toHsv(),o=n.h,r=n.s,a=n.v,i=[],l=1/t;t--;)i.push(ke({h:o,s:r,v:a})),a=(a+l)%1;return i}ke.mix=function(e,t,n){n=n===0?0:n||50;var o=ke(e).toRgb(),r=ke(t).toRgb(),a=n/100,i={r:(r.r-o.r)*a+o.r,g:(r.g-o.g)*a+o.g,b:(r.b-o.b)*a+o.b,a:(r.a-o.a)*a+o.a};return ke(i)};ke.readability=function(e,t){var n=ke(e),o=ke(t);return(Math.max(n.getLuminance(),o.getLuminance())+.05)/(Math.min(n.getLuminance(),o.getLuminance())+.05)};ke.isReadable=function(e,t,n){var o=ke.readability(e,t),r,a;switch(a=!1,r=eCe(n),r.level+r.size){case"AAsmall":case"AAAlarge":a=o>=4.5;break;case"AAlarge":a=o>=3;break;case"AAAsmall":a=o>=7;break}return a};ke.mostReadable=function(e,t,n){var o=null,r=0,a,i,l,s;n=n||{},i=n.includeFallbackColors,l=n.level,s=n.size;for(var u=0;ur&&(r=a,o=ke(t[u]));return ke.isReadable(e,o,{level:l,size:s})||!i?o:(n.includeFallbackColors=!1,ke.mostReadable(e,["#fff","#000"],n))};var z1=ke.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},YSe=ke.hexNames=qSe(z1);function qSe(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function J7(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Zt(e,t){JSe(e)&&(e="100%");var n=ZSe(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function Om(e){return Math.min(1,Math.max(0,e))}function jo(e){return parseInt(e,16)}function JSe(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function ZSe(e){return typeof e=="string"&&e.indexOf("%")!=-1}function Nr(e){return e.length==1?"0"+e:""+e}function Ru(e){return e<=1&&(e=e*100+"%"),e}function Z7(e){return Math.round(parseFloat(e)*255).toString(16)}function Q4(e){return jo(e)/255}var Mr=function(){var e="[-\\+]?\\d+%?",t="[-\\+]?\\d*\\.\\d+%?",n="(?:"+t+")|(?:"+e+")",o="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?",r="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?";return{CSS_UNIT:new RegExp(n),rgb:new RegExp("rgb"+o),rgba:new RegExp("rgba"+r),hsl:new RegExp("hsl"+o),hsla:new RegExp("hsla"+r),hsv:new RegExp("hsv"+o),hsva:new RegExp("hsva"+r),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Oa(e){return!!Mr.CSS_UNIT.exec(e)}function QSe(e){e=e.replace(MSe,"").replace(ASe,"").toLowerCase();var t=!1;if(z1[e])e=z1[e],t=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=Mr.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=Mr.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=Mr.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=Mr.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=Mr.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=Mr.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=Mr.hex8.exec(e))?{r:jo(n[1]),g:jo(n[2]),b:jo(n[3]),a:Q4(n[4]),format:t?"name":"hex8"}:(n=Mr.hex6.exec(e))?{r:jo(n[1]),g:jo(n[2]),b:jo(n[3]),format:t?"name":"hex"}:(n=Mr.hex4.exec(e))?{r:jo(n[1]+""+n[1]),g:jo(n[2]+""+n[2]),b:jo(n[3]+""+n[3]),a:Q4(n[4]+""+n[4]),format:t?"name":"hex8"}:(n=Mr.hex3.exec(e))?{r:jo(n[1]+""+n[1]),g:jo(n[2]+""+n[2]),b:jo(n[3]+""+n[3]),format:t?"name":"hex"}:!1}function eCe(e){var t,n;return e=e||{level:"AA",size:"small"},t=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),t!=="AA"&&t!=="AAA"&&(t="AA"),n!=="small"&&n!=="large"&&(n="small"),{level:t,size:n}}var ps=ps||{};ps.stringify=function(){var e={"visit_linear-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return e.visit_gradient(t)},"visit_radial-gradient":function(t){return e.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return e.visit_gradient(t)},visit_gradient:function(t){var n=e.visit(t.orientation);return n&&(n+=", "),t.type+"("+n+e.visit(t.colorStops)+")"},visit_shape:function(t){var n=t.value,o=e.visit(t.at),r=e.visit(t.style);return r&&(n+=" "+r),o&&(n+=" at "+o),n},"visit_default-radial":function(t){var n="",o=e.visit(t.at);return o&&(n+=o),n},"visit_extent-keyword":function(t){var n=t.value,o=e.visit(t.at);return o&&(n+=" at "+o),n},"visit_position-keyword":function(t){return t.value},visit_position:function(t){return e.visit(t.value.x)+" "+e.visit(t.value.y)},"visit_%":function(t){return t.value+"%"},visit_em:function(t){return t.value+"em"},visit_px:function(t){return t.value+"px"},visit_calc:function(t){return"calc("+t.value+")"},visit_literal:function(t){return e.visit_color(t.value,t)},visit_hex:function(t){return e.visit_color("#"+t.value,t)},visit_rgb:function(t){return e.visit_color("rgb("+t.value.join(", ")+")",t)},visit_rgba:function(t){return e.visit_color("rgba("+t.value.join(", ")+")",t)},visit_hsl:function(t){return e.visit_color("hsl("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%)",t)},visit_hsla:function(t){return e.visit_color("hsla("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%, "+t.value[3]+")",t)},visit_var:function(t){return e.visit_color("var("+t.value+")",t)},visit_color:function(t,n){var o=t,r=e.visit(n.length);return r&&(o+=" "+r),o},visit_angular:function(t){return t.value+"deg"},visit_directional:function(t){return"to "+t.value},visit_array:function(t){var n="",o=t.length;return t.forEach(function(r,a){n+=e.visit(r),a0&&n("Invalid input not EOF"),z}function r(){return C(a)}function a(){return i("linear-gradient",e.linearGradient,s)||i("repeating-linear-gradient",e.repeatingLinearGradient,s)||i("radial-gradient",e.radialGradient,d)||i("repeating-radial-gradient",e.repeatingRadialGradient,d)}function i(z,G,Q){return l(G,function(Y){var oe=Q();return oe&&(B(e.comma)||n("Missing comma before color stops")),{type:z,orientation:oe,colorStops:C($)}})}function l(z,G){var Q=B(z);if(Q){B(e.startCall)||n("Missing (");var Y=G(Q);return B(e.endCall)||n("Missing )"),Y}}function s(){var z=u();if(z)return z;var G=F("position-keyword",e.positionKeywords,1);return G?{type:"directional",value:G.value}:c()}function u(){return F("directional",e.sideOrCorner,1)}function c(){return F("angular",e.angleValue,1)||F("angular",e.radianValue,1)}function d(){var z,G=f(),Q;return G&&(z=[],z.push(G),Q=t,B(e.comma)&&(G=f(),G?z.push(G):t=Q)),z}function f(){var z=p()||v();if(z)z.at=m();else{var G=h();if(G){z=G;var Q=m();Q&&(z.at=Q)}else{var Y=m();if(Y)z={type:"default-radial",at:Y};else{var oe=b();oe&&(z={type:"default-radial",at:oe})}}}return z}function p(){var z=F("shape",/^(circle)/i,0);return z&&(z.style=L()||h()),z}function v(){var z=F("shape",/^(ellipse)/i,0);return z&&(z.style=b()||M()||h()),z}function h(){return F("extent-keyword",e.extentKeywords,1)}function m(){if(F("position",/^at/,0)){var z=b();return z||n("Missing positioning value"),z}}function b(){var z=S();if(z.x||z.y)return{type:"position",value:z}}function S(){return{x:M(),y:M()}}function C(z){var G=z(),Q=[];if(G)for(Q.push(G);B(e.comma);)G=z(),G?Q.push(G):n("One extra comma");return Q}function $(){var z=x();return z||n("Expected color definition"),z.length=M(),z}function x(){return w()||A()||T()||I()||O()||_()||P()}function P(){return F("literal",e.literalColor,0)}function w(){return F("hex",e.hexColor,1)}function O(){return l(e.rgbColor,function(){return{type:"rgb",value:C(H)}})}function I(){return l(e.rgbaColor,function(){return{type:"rgba",value:C(H)}})}function _(){return l(e.varColor,function(){return{type:"var",value:R()}})}function T(){return l(e.hslColor,function(){var z=B(e.percentageValue);z&&n("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");var G=H();B(e.comma);var Q=B(e.percentageValue),Y=Q?Q[1]:null;B(e.comma),Q=B(e.percentageValue);var oe=Q?Q[1]:null;return(!Y||!oe)&&n("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[G,Y,oe]}})}function A(){return l(e.hslaColor,function(){var z=H();B(e.comma);var G=B(e.percentageValue),Q=G?G[1]:null;B(e.comma),G=B(e.percentageValue);var Y=G?G[1]:null;B(e.comma);var oe=H();return(!Q||!Y)&&n("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[z,Q,Y,oe]}})}function R(){return B(e.variableName)[1]}function H(){return B(e.number)[1]}function M(){return F("%",e.percentageValue,1)||D()||N()||L()}function D(){return F("position-keyword",e.positionKeywords,1)}function N(){return l(e.calcValue,function(){for(var z=1,G=0;z>0&&G0&&n("Missing closing parenthesis in calc() expression");var Y=t.substring(0,G-1);return j(G-1),{type:"calc",value:Y}})}function L(){return F("px",e.pixelValue,1)||F("em",e.emValue,1)}function F(z,G,Q){var Y=B(G);if(Y)return{type:z,value:Y[Q]}}function B(z){var G,Q;return Q=/^[\n\r\t\s]+/.exec(t),Q&&j(Q[0].length),G=z.exec(t),G&&j(G[0].length),G}function j(z){t=t.substr(z)}return function(z){return t=z.toString().trim(),t.endsWith(";")&&(t=t.slice(0,-1)),o()}}();var tCe=ps.parse,nCe=ps.stringify,Ro="top",Cr="bottom",xr="right",Do="left",L$="auto",Of=[Ro,Cr,xr,Do],Ec="start",Gd="end",oCe="clippingParents",Q7="viewport",xu="popper",rCe="reference",e3=Of.reduce(function(e,t){return e.concat([t+"-"+Ec,t+"-"+Gd])},[]),ek=[].concat(Of,[L$]).reduce(function(e,t){return e.concat([t,t+"-"+Ec,t+"-"+Gd])},[]),aCe="beforeRead",iCe="read",lCe="afterRead",sCe="beforeMain",cCe="main",uCe="afterMain",dCe="beforeWrite",fCe="write",pCe="afterWrite",gCe=[aCe,iCe,lCe,sCe,cCe,uCe,dCe,fCe,pCe];function va(e){return e?(e.nodeName||"").toLowerCase():null}function qo(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function ql(e){var t=qo(e).Element;return e instanceof t||e instanceof Element}function gr(e){var t=qo(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function F$(e){if(typeof ShadowRoot>"u")return!1;var t=qo(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function hCe(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var o=t.styles[n]||{},r=t.attributes[n]||{},a=t.elements[n];!gr(a)||!va(a)||(Object.assign(a.style,o),Object.keys(r).forEach(function(i){var l=r[i];l===!1?a.removeAttribute(i):a.setAttribute(i,l===!0?"":l)}))})}function vCe(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(o){var r=t.elements[o],a=t.attributes[o]||{},i=Object.keys(t.styles.hasOwnProperty(o)?t.styles[o]:n[o]),l=i.reduce(function(s,u){return s[u]="",s},{});!gr(r)||!va(r)||(Object.assign(r.style,l),Object.keys(a).forEach(function(s){r.removeAttribute(s)}))})}}const mCe={name:"applyStyles",enabled:!0,phase:"write",fn:hCe,effect:vCe,requires:["computeStyles"]};function fa(e){return e.split("-")[0]}var Ll=Math.max,Eh=Math.min,_c=Math.round;function j1(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function tk(){return!/^((?!chrome|android).)*safari/i.test(j1())}function Mc(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var o=e.getBoundingClientRect(),r=1,a=1;t&&gr(e)&&(r=e.offsetWidth>0&&_c(o.width)/e.offsetWidth||1,a=e.offsetHeight>0&&_c(o.height)/e.offsetHeight||1);var i=ql(e)?qo(e):window,l=i.visualViewport,s=!tk()&&n,u=(o.left+(s&&l?l.offsetLeft:0))/r,c=(o.top+(s&&l?l.offsetTop:0))/a,d=o.width/r,f=o.height/a;return{width:d,height:f,top:c,right:u+d,bottom:c+f,left:u,x:u,y:c}}function B$(e){var t=Mc(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function nk(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&F$(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Ja(e){return qo(e).getComputedStyle(e)}function bCe(e){return["table","td","th"].indexOf(va(e))>=0}function el(e){return((ql(e)?e.ownerDocument:e.document)||window.document).documentElement}function Im(e){return va(e)==="html"?e:e.assignedSlot||e.parentNode||(F$(e)?e.host:null)||el(e)}function t3(e){return!gr(e)||Ja(e).position==="fixed"?null:e.offsetParent}function yCe(e){var t=/firefox/i.test(j1()),n=/Trident/i.test(j1());if(n&&gr(e)){var o=Ja(e);if(o.position==="fixed")return null}var r=Im(e);for(F$(r)&&(r=r.host);gr(r)&&["html","body"].indexOf(va(r))<0;){var a=Ja(r);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return r;r=r.parentNode}return null}function If(e){for(var t=qo(e),n=t3(e);n&&bCe(n)&&Ja(n).position==="static";)n=t3(n);return n&&(va(n)==="html"||va(n)==="body"&&Ja(n).position==="static")?t:n||yCe(e)||t}function H$(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function ld(e,t,n){return Ll(e,Eh(t,n))}function SCe(e,t,n){var o=ld(e,t,n);return o>n?n:o}function ok(){return{top:0,right:0,bottom:0,left:0}}function rk(e){return Object.assign({},ok(),e)}function ak(e,t){return t.reduce(function(n,o){return n[o]=e,n},{})}var CCe=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,rk(typeof t!="number"?t:ak(t,Of))};function xCe(e){var t,n=e.state,o=e.name,r=e.options,a=n.elements.arrow,i=n.modifiersData.popperOffsets,l=fa(n.placement),s=H$(l),u=[Do,xr].indexOf(l)>=0,c=u?"height":"width";if(!(!a||!i)){var d=CCe(r.padding,n),f=B$(a),p=s==="y"?Ro:Do,v=s==="y"?Cr:xr,h=n.rects.reference[c]+n.rects.reference[s]-i[s]-n.rects.popper[c],m=i[s]-n.rects.reference[s],b=If(a),S=b?s==="y"?b.clientHeight||0:b.clientWidth||0:0,C=h/2-m/2,$=d[p],x=S-f[c]-d[v],P=S/2-f[c]/2+C,w=ld($,P,x),O=s;n.modifiersData[o]=(t={},t[O]=w,t.centerOffset=w-P,t)}}function $Ce(e){var t=e.state,n=e.options,o=n.element,r=o===void 0?"[data-popper-arrow]":o;r!=null&&(typeof r=="string"&&(r=t.elements.popper.querySelector(r),!r)||nk(t.elements.popper,r)&&(t.elements.arrow=r))}const wCe={name:"arrow",enabled:!0,phase:"main",fn:xCe,effect:$Ce,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Ac(e){return e.split("-")[1]}var PCe={top:"auto",right:"auto",bottom:"auto",left:"auto"};function OCe(e,t){var n=e.x,o=e.y,r=t.devicePixelRatio||1;return{x:_c(n*r)/r||0,y:_c(o*r)/r||0}}function n3(e){var t,n=e.popper,o=e.popperRect,r=e.placement,a=e.variation,i=e.offsets,l=e.position,s=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,f=i.x,p=f===void 0?0:f,v=i.y,h=v===void 0?0:v,m=typeof c=="function"?c({x:p,y:h}):{x:p,y:h};p=m.x,h=m.y;var b=i.hasOwnProperty("x"),S=i.hasOwnProperty("y"),C=Do,$=Ro,x=window;if(u){var P=If(n),w="clientHeight",O="clientWidth";if(P===qo(n)&&(P=el(n),Ja(P).position!=="static"&&l==="absolute"&&(w="scrollHeight",O="scrollWidth")),P=P,r===Ro||(r===Do||r===xr)&&a===Gd){$=Cr;var I=d&&P===x&&x.visualViewport?x.visualViewport.height:P[w];h-=I-o.height,h*=s?1:-1}if(r===Do||(r===Ro||r===Cr)&&a===Gd){C=xr;var _=d&&P===x&&x.visualViewport?x.visualViewport.width:P[O];p-=_-o.width,p*=s?1:-1}}var T=Object.assign({position:l},u&&PCe),A=c===!0?OCe({x:p,y:h},qo(n)):{x:p,y:h};if(p=A.x,h=A.y,s){var R;return Object.assign({},T,(R={},R[$]=S?"0":"",R[C]=b?"0":"",R.transform=(x.devicePixelRatio||1)<=1?"translate("+p+"px, "+h+"px)":"translate3d("+p+"px, "+h+"px, 0)",R))}return Object.assign({},T,(t={},t[$]=S?h+"px":"",t[C]=b?p+"px":"",t.transform="",t))}function ICe(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=o===void 0?!0:o,a=n.adaptive,i=a===void 0?!0:a,l=n.roundOffsets,s=l===void 0?!0:l,u={placement:fa(t.placement),variation:Ac(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,n3(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:s})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,n3(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const TCe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:ICe,data:{}};var Sp={passive:!0};function ECe(e){var t=e.state,n=e.instance,o=e.options,r=o.scroll,a=r===void 0?!0:r,i=o.resize,l=i===void 0?!0:i,s=qo(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(c){c.addEventListener("scroll",n.update,Sp)}),l&&s.addEventListener("resize",n.update,Sp),function(){a&&u.forEach(function(c){c.removeEventListener("scroll",n.update,Sp)}),l&&s.removeEventListener("resize",n.update,Sp)}}const _Ce={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ECe,data:{}};var MCe={left:"right",right:"left",bottom:"top",top:"bottom"};function hg(e){return e.replace(/left|right|bottom|top/g,function(t){return MCe[t]})}var ACe={start:"end",end:"start"};function o3(e){return e.replace(/start|end/g,function(t){return ACe[t]})}function z$(e){var t=qo(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}}function j$(e){return Mc(el(e)).left+z$(e).scrollLeft}function RCe(e,t){var n=qo(e),o=el(e),r=n.visualViewport,a=o.clientWidth,i=o.clientHeight,l=0,s=0;if(r){a=r.width,i=r.height;var u=tk();(u||!u&&t==="fixed")&&(l=r.offsetLeft,s=r.offsetTop)}return{width:a,height:i,x:l+j$(e),y:s}}function DCe(e){var t,n=el(e),o=z$(e),r=(t=e.ownerDocument)==null?void 0:t.body,a=Ll(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),i=Ll(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),l=-o.scrollLeft+j$(e),s=-o.scrollTop;return Ja(r||n).direction==="rtl"&&(l+=Ll(n.clientWidth,r?r.clientWidth:0)-a),{width:a,height:i,x:l,y:s}}function W$(e){var t=Ja(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function ik(e){return["html","body","#document"].indexOf(va(e))>=0?e.ownerDocument.body:gr(e)&&W$(e)?e:ik(Im(e))}function sd(e,t){var n;t===void 0&&(t=[]);var o=ik(e),r=o===((n=e.ownerDocument)==null?void 0:n.body),a=qo(o),i=r?[a].concat(a.visualViewport||[],W$(o)?o:[]):o,l=t.concat(i);return r?l:l.concat(sd(Im(i)))}function W1(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function NCe(e,t){var n=Mc(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function r3(e,t,n){return t===Q7?W1(RCe(e,n)):ql(t)?NCe(t,n):W1(DCe(el(e)))}function kCe(e){var t=sd(Im(e)),n=["absolute","fixed"].indexOf(Ja(e).position)>=0,o=n&&gr(e)?If(e):e;return ql(o)?t.filter(function(r){return ql(r)&&nk(r,o)&&va(r)!=="body"}):[]}function LCe(e,t,n,o){var r=t==="clippingParents"?kCe(e):[].concat(t),a=[].concat(r,[n]),i=a[0],l=a.reduce(function(s,u){var c=r3(e,u,o);return s.top=Ll(c.top,s.top),s.right=Eh(c.right,s.right),s.bottom=Eh(c.bottom,s.bottom),s.left=Ll(c.left,s.left),s},r3(e,i,o));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function lk(e){var t=e.reference,n=e.element,o=e.placement,r=o?fa(o):null,a=o?Ac(o):null,i=t.x+t.width/2-n.width/2,l=t.y+t.height/2-n.height/2,s;switch(r){case Ro:s={x:i,y:t.y-n.height};break;case Cr:s={x:i,y:t.y+t.height};break;case xr:s={x:t.x+t.width,y:l};break;case Do:s={x:t.x-n.width,y:l};break;default:s={x:t.x,y:t.y}}var u=r?H$(r):null;if(u!=null){var c=u==="y"?"height":"width";switch(a){case Ec:s[u]=s[u]-(t[c]/2-n[c]/2);break;case Gd:s[u]=s[u]+(t[c]/2-n[c]/2);break}}return s}function Xd(e,t){t===void 0&&(t={});var n=t,o=n.placement,r=o===void 0?e.placement:o,a=n.strategy,i=a===void 0?e.strategy:a,l=n.boundary,s=l===void 0?oCe:l,u=n.rootBoundary,c=u===void 0?Q7:u,d=n.elementContext,f=d===void 0?xu:d,p=n.altBoundary,v=p===void 0?!1:p,h=n.padding,m=h===void 0?0:h,b=rk(typeof m!="number"?m:ak(m,Of)),S=f===xu?rCe:xu,C=e.rects.popper,$=e.elements[v?S:f],x=LCe(ql($)?$:$.contextElement||el(e.elements.popper),s,c,i),P=Mc(e.elements.reference),w=lk({reference:P,element:C,placement:r}),O=W1(Object.assign({},C,w)),I=f===xu?O:P,_={top:x.top-I.top+b.top,bottom:I.bottom-x.bottom+b.bottom,left:x.left-I.left+b.left,right:I.right-x.right+b.right},T=e.modifiersData.offset;if(f===xu&&T){var A=T[r];Object.keys(_).forEach(function(R){var H=[xr,Cr].indexOf(R)>=0?1:-1,M=[Ro,Cr].indexOf(R)>=0?"y":"x";_[R]+=A[M]*H})}return _}function FCe(e,t){t===void 0&&(t={});var n=t,o=n.placement,r=n.boundary,a=n.rootBoundary,i=n.padding,l=n.flipVariations,s=n.allowedAutoPlacements,u=s===void 0?ek:s,c=Ac(o),d=c?l?e3:e3.filter(function(v){return Ac(v)===c}):Of,f=d.filter(function(v){return u.indexOf(v)>=0});f.length===0&&(f=d);var p=f.reduce(function(v,h){return v[h]=Xd(e,{placement:h,boundary:r,rootBoundary:a,padding:i})[fa(h)],v},{});return Object.keys(p).sort(function(v,h){return p[v]-p[h]})}function BCe(e){if(fa(e)===L$)return[];var t=hg(e);return[o3(e),t,o3(t)]}function HCe(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var r=n.mainAxis,a=r===void 0?!0:r,i=n.altAxis,l=i===void 0?!0:i,s=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,v=p===void 0?!0:p,h=n.allowedAutoPlacements,m=t.options.placement,b=fa(m),S=b===m,C=s||(S||!v?[hg(m)]:BCe(m)),$=[m].concat(C).reduce(function(Q,Y){return Q.concat(fa(Y)===L$?FCe(t,{placement:Y,boundary:c,rootBoundary:d,padding:u,flipVariations:v,allowedAutoPlacements:h}):Y)},[]),x=t.rects.reference,P=t.rects.popper,w=new Map,O=!0,I=$[0],_=0;_<$.length;_++){var T=$[_],A=fa(T),R=Ac(T)===Ec,H=[Ro,Cr].indexOf(A)>=0,M=H?"width":"height",D=Xd(t,{placement:T,boundary:c,rootBoundary:d,altBoundary:f,padding:u}),N=H?R?xr:Do:R?Cr:Ro;x[M]>P[M]&&(N=hg(N));var L=hg(N),F=[];if(a&&F.push(D[A]<=0),l&&F.push(D[N]<=0,D[L]<=0),F.every(function(Q){return Q})){I=T,O=!1;break}w.set(T,F)}if(O)for(var B=v?3:1,j=function(Y){var oe=$.find(function(Z){var re=w.get(Z);if(re)return re.slice(0,Y).every(function(ne){return ne})});if(oe)return I=oe,"break"},z=B;z>0;z--){var G=j(z);if(G==="break")break}t.placement!==I&&(t.modifiersData[o]._skip=!0,t.placement=I,t.reset=!0)}}const zCe={name:"flip",enabled:!0,phase:"main",fn:HCe,requiresIfExists:["offset"],data:{_skip:!1}};function a3(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function i3(e){return[Ro,xr,Cr,Do].some(function(t){return e[t]>=0})}function jCe(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,a=t.modifiersData.preventOverflow,i=Xd(t,{elementContext:"reference"}),l=Xd(t,{altBoundary:!0}),s=a3(i,o),u=a3(l,r,a),c=i3(s),d=i3(u);t.modifiersData[n]={referenceClippingOffsets:s,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const WCe={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:jCe};function VCe(e,t,n){var o=fa(e),r=[Do,Ro].indexOf(o)>=0?-1:1,a=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,i=a[0],l=a[1];return i=i||0,l=(l||0)*r,[Do,xr].indexOf(o)>=0?{x:l,y:i}:{x:i,y:l}}function KCe(e){var t=e.state,n=e.options,o=e.name,r=n.offset,a=r===void 0?[0,0]:r,i=ek.reduce(function(c,d){return c[d]=VCe(d,t.rects,a),c},{}),l=i[t.placement],s=l.x,u=l.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=u),t.modifiersData[o]=i}const UCe={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:KCe};function GCe(e){var t=e.state,n=e.name;t.modifiersData[n]=lk({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const XCe={name:"popperOffsets",enabled:!0,phase:"read",fn:GCe,data:{}};function YCe(e){return e==="x"?"y":"x"}function qCe(e){var t=e.state,n=e.options,o=e.name,r=n.mainAxis,a=r===void 0?!0:r,i=n.altAxis,l=i===void 0?!1:i,s=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,v=n.tetherOffset,h=v===void 0?0:v,m=Xd(t,{boundary:s,rootBoundary:u,padding:d,altBoundary:c}),b=fa(t.placement),S=Ac(t.placement),C=!S,$=H$(b),x=YCe($),P=t.modifiersData.popperOffsets,w=t.rects.reference,O=t.rects.popper,I=typeof h=="function"?h(Object.assign({},t.rects,{placement:t.placement})):h,_=typeof I=="number"?{mainAxis:I,altAxis:I}:Object.assign({mainAxis:0,altAxis:0},I),T=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,A={x:0,y:0};if(P){if(a){var R,H=$==="y"?Ro:Do,M=$==="y"?Cr:xr,D=$==="y"?"height":"width",N=P[$],L=N+m[H],F=N-m[M],B=p?-O[D]/2:0,j=S===Ec?w[D]:O[D],z=S===Ec?-O[D]:-w[D],G=t.elements.arrow,Q=p&&G?B$(G):{width:0,height:0},Y=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:ok(),oe=Y[H],Z=Y[M],re=ld(0,w[D],Q[D]),ne=C?w[D]/2-B-re-oe-_.mainAxis:j-re-oe-_.mainAxis,X=C?-w[D]/2+B+re+Z+_.mainAxis:z+re+Z+_.mainAxis,te=t.elements.arrow&&If(t.elements.arrow),W=te?$==="y"?te.clientTop||0:te.clientLeft||0:0,U=(R=T==null?void 0:T[$])!=null?R:0,J=N+ne-U-W,de=N+X-U,fe=ld(p?Eh(L,J):L,N,p?Ll(F,de):F);P[$]=fe,A[$]=fe-N}if(l){var pe,ve=$==="x"?Ro:Do,he=$==="x"?Cr:xr,V=P[x],q=x==="y"?"height":"width",ae=V+m[ve],me=V-m[he],Se=[Ro,Do].indexOf(b)!==-1,ce=(pe=T==null?void 0:T[x])!=null?pe:0,ee=Se?ae:V-w[q]-O[q]-ce+_.altAxis,ue=Se?V+w[q]+O[q]-ce-_.altAxis:me,xe=p&&Se?SCe(ee,V,ue):ld(p?ee:ae,V,p?ue:me);P[x]=xe,A[x]=xe-V}t.modifiersData[o]=A}}const JCe={name:"preventOverflow",enabled:!0,phase:"main",fn:qCe,requiresIfExists:["offset"]};function ZCe(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function QCe(e){return e===qo(e)||!gr(e)?z$(e):ZCe(e)}function exe(e){var t=e.getBoundingClientRect(),n=_c(t.width)/e.offsetWidth||1,o=_c(t.height)/e.offsetHeight||1;return n!==1||o!==1}function txe(e,t,n){n===void 0&&(n=!1);var o=gr(t),r=gr(t)&&exe(t),a=el(t),i=Mc(e,r,n),l={scrollLeft:0,scrollTop:0},s={x:0,y:0};return(o||!o&&!n)&&((va(t)!=="body"||W$(a))&&(l=QCe(t)),gr(t)?(s=Mc(t,!0),s.x+=t.clientLeft,s.y+=t.clientTop):a&&(s.x=j$(a))),{x:i.left+l.scrollLeft-s.x,y:i.top+l.scrollTop-s.y,width:i.width,height:i.height}}function nxe(e){var t=new Map,n=new Set,o=[];e.forEach(function(a){t.set(a.name,a)});function r(a){n.add(a.name);var i=[].concat(a.requires||[],a.requiresIfExists||[]);i.forEach(function(l){if(!n.has(l)){var s=t.get(l);s&&r(s)}}),o.push(a)}return e.forEach(function(a){n.has(a.name)||r(a)}),o}function oxe(e){var t=nxe(e);return gCe.reduce(function(n,o){return n.concat(t.filter(function(r){return r.phase===o}))},[])}function rxe(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function axe(e){var t=e.reduce(function(n,o){var r=n[o.name];return n[o.name]=r?Object.assign({},r,o,{options:Object.assign({},r.options,o.options),data:Object.assign({},r.data,o.data)}):o,n},{});return Object.keys(t).map(function(n){return t[n]})}var l3={placement:"bottom",modifiers:[],strategy:"absolute"};function s3(){for(var e=arguments.length,t=new Array(e),n=0;n0?$xe:xxe)(e)},wxe=Math.min,Jo=function(e){return e>0?wxe(iu(e),9007199254740991):0},Pxe=Math.max,Oxe=Math.min,Ah=function(e,t){var n=iu(e);return n<0?Pxe(n+t,0):Oxe(n,t)},Ixe=function(e){return function(t,n,o){var r,a=au(t),i=Jo(a.length),l=Ah(o,i);if(e&&n!=n){for(;i>l;)if((r=a[l++])!=r)return!0}else for(;i>l;l++)if((e||l in a)&&a[l]===n)return e||l||0;return!e&&-1}},fk={indexOf:Ixe(!1)},Txe=fk.indexOf,pk=function(e,t){var n,o=au(e),r=0,a=[];for(n in o)!$n(_m,n)&&$n(o,n)&&a.push(n);for(;t.length>r;)$n(o,n=t[r++])&&(~Txe(a,n)||a.push(n));return a},Rh=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Exe=Rh.concat("length","prototype"),_xe={f:Object.getOwnPropertyNames||function(e){return pk(e,Exe)}},Mxe={f:Object.getOwnPropertySymbols},Axe=Mm("Reflect","ownKeys")||function(e){var t=_xe.f(Co(e)),n=Mxe.f;return n?t.concat(n(e)):t},Rxe=function(e,t){for(var n=Axe(t),o=ri.f,r=U$.f,a=0;a1?arguments[1]:void 0)}});(function(){function e(){gs(this,e)}return hs(e,null,[{key:"isInBrowser",value:function(){return typeof window<"u"}},{key:"isServer",value:function(){return typeof window>"u"}},{key:"getUA",value:function(){return e.isInBrowser()?window.navigator.userAgent.toLowerCase():""}},{key:"isMobile",value:function(){return/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(navigator.appVersion)}},{key:"isOpera",value:function(){return navigator.userAgent.indexOf("Opera")!==-1}},{key:"isIE",value:function(){var t=e.getUA();return t!==""&&t.indexOf("msie")>0}},{key:"isIE9",value:function(){var t=e.getUA();return t!==""&&t.indexOf("msie 9.0")>0}},{key:"isEdge",value:function(){var t=e.getUA();return t!==""&&t.indexOf("edge/")>0}},{key:"isChrome",value:function(){var t=e.getUA();return t!==""&&/chrome\/\d+/.test(t)&&!e.isEdge()}},{key:"isPhantomJS",value:function(){var t=e.getUA();return t!==""&&/phantomjs/.test(t)}},{key:"isFirefox",value:function(){var t=e.getUA();return t!==""&&/firefox/.test(t)}}]),e})();var Kxe=[].join,Uxe=Em!=Object,Gxe=q$("join",",");po({target:"Array",proto:!0,forced:Uxe||!Gxe},{join:function(e){return Kxe.call(au(this),e===void 0?",":e)}});var Is,Dh,ai=function(e){return Object(Hi(e))},Rc=Array.isArray||function(e){return Ka(e)=="Array"},hk=!!Object.getOwnPropertySymbols&&!qt(function(){return!String(Symbol())}),Xxe=hk&&!Symbol.sham&&typeof Symbol.iterator=="symbol",xp=dk("wks"),ud=An.Symbol,Yxe=Xxe?ud:ud&&ud.withoutSetter||X$,dn=function(e){return $n(xp,e)||(hk&&$n(ud,e)?xp[e]=ud[e]:xp[e]=Yxe("Symbol."+e)),xp[e]},qxe=dn("species"),Am=function(e,t){var n;return Rc(e)&&(typeof(n=e.constructor)!="function"||n!==Array&&!Rc(n.prototype)?jn(n)&&(n=n[qxe])===null&&(n=void 0):n=void 0),new(n===void 0?Array:n)(t===0?0:t)},Dc=function(e,t,n){var o=K$(t);o in e?ri.f(e,o,Tm(0,n)):e[o]=n},xb=Mm("navigator","userAgent")||"",y3=An.process,S3=y3&&y3.versions,C3=S3&&S3.v8;C3?Dh=(Is=C3.split("."))[0]+Is[1]:xb&&(!(Is=xb.match(/Edge\/(\d+)/))||Is[1]>=74)&&(Is=xb.match(/Chrome\/(\d+)/))&&(Dh=Is[1]);var Nh=Dh&&+Dh,Jxe=dn("species"),J$=function(e){return Nh>=51||!qt(function(){var t=[];return(t.constructor={})[Jxe]=function(){return{foo:1}},t[e](Boolean).foo!==1})},Zxe=J$("splice"),Qxe=lu("splice",{ACCESSORS:!0,0:0,1:2}),e$e=Math.max,t$e=Math.min;po({target:"Array",proto:!0,forced:!Zxe||!Qxe},{splice:function(e,t){var n,o,r,a,i,l,s=ai(this),u=Jo(s.length),c=Ah(e,u),d=arguments.length;if(d===0?n=o=0:d===1?(n=0,o=u-c):(n=d-2,o=t$e(e$e(iu(t),0),u-c)),u+n-o>9007199254740991)throw TypeError("Maximum allowed length exceeded");for(r=Am(s,o),a=0;au-o+n;a--)delete s[a-1]}else if(n>o)for(a=u-o;a>c;a--)l=a+n-1,(i=a+o-1)in s?s[l]=s[i]:delete s[l];for(a=0;a0&&(!a.multiline||a.multiline&&e[a.lastIndex-1]!==`
`)&&(s="(?: "+s+")",c=" "+c,u++),n=new RegExp("^(?:"+s+")",l)),Ob&&(n=new RegExp("^"+s+"$(?!\\s)",l)),Pb&&(t=a.lastIndex),o=kh.call(i?n:a,c),i?o?(o.input=o.input.slice(u),o[0]=o[0].slice(u),o.index=a.lastIndex,a.lastIndex+=o[0].length):a.lastIndex=0:Pb&&o&&(a.lastIndex=a.global?o.index+o[0].length:t),Ob&&o&&o.length>1&&a$e.call(o[0],n,function(){for(r=1;r")!=="7"}),P3="a".replace(/./,"$0")==="$0",O3=dn("replace"),I3=!!/./[O3]&&/./[O3]("a","$0")==="",u$e=!qt(function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return n.length!==2||n[0]!=="a"||n[1]!=="b"}),xk=function(e,t,n,o){var r=dn(e),a=!qt(function(){var d={};return d[r]=function(){return 7},""[e](d)!=7}),i=a&&!qt(function(){var d=!1,f=/a/;return e==="split"&&((f={}).constructor={},f.constructor[s$e]=function(){return f},f.flags="",f[r]=/./[r]),f.exec=function(){return d=!0,null},f[r](""),!d});if(!a||!i||e==="replace"&&(!c$e||!P3||I3)||e==="split"&&!u$e){var l=/./[r],s=n(r,""[e],function(d,f,p,v,h){return f.exec===Yd?a&&!h?{done:!0,value:l.call(f,p,v)}:{done:!0,value:d.call(p,f,v)}:{done:!1}},{REPLACE_KEEPS_$0:P3,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:I3}),u=s[0],c=s[1];ji(String.prototype,e,u),ji(RegExp.prototype,r,function(d,f){return c.call(d,this,f)})}o&&hr(RegExp.prototype[r],"sham",!0)},d$e=dn("match"),$k=function(e){var t;return jn(e)&&((t=e[d$e])!==void 0?!!t:Ka(e)=="RegExp")},Q$=function(e){if(typeof e!="function")throw TypeError(String(e)+" is not a function");return e},f$e=dn("species"),p$e=function(e){return function(t,n){var o,r,a=String(Hi(t)),i=iu(n),l=a.length;return i<0||i>=l?e?"":void 0:(o=a.charCodeAt(i))<55296||o>56319||i+1===l||(r=a.charCodeAt(i+1))<56320||r>57343?e?a.charAt(i):o:e?a.slice(i,i+2):r-56320+(o-55296<<10)+65536}},wk={charAt:p$e(!0)},g$e=wk.charAt,Pk=function(e,t,n){return t+(n?g$e(e,t).length:1)},U1=function(e,t){var n=e.exec;if(typeof n=="function"){var o=n.call(e,t);if(typeof o!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return o}if(Ka(e)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return Yd.call(e,t)},h$e=[].push,v$e=Math.min,Ts=!qt(function(){return!RegExp(4294967295,"y")});xk("split",2,function(e,t,n){var o;return o="abbc".split(/(b)*/)[1]=="c"||"test".split(/(?:)/,-1).length!=4||"ab".split(/(?:ab)*/).length!=2||".".split(/(.?)(.?)/).length!=4||".".split(/()()/).length>1||"".split(/.?/).length?function(r,a){var i=String(Hi(this)),l=a===void 0?4294967295:a>>>0;if(l===0)return[];if(r===void 0)return[i];if(!$k(r))return t.call(i,r,l);for(var s,u,c,d=[],f=(r.ignoreCase?"i":"")+(r.multiline?"m":"")+(r.unicode?"u":"")+(r.sticky?"y":""),p=0,v=new RegExp(r.source,f+"g");(s=Yd.call(v,i))&&!((u=v.lastIndex)>p&&(d.push(i.slice(p,s.index)),s.length>1&&s.index=l));)v.lastIndex===s.index&&v.lastIndex++;return p===i.length?!c&&v.test("")||d.push(""):d.push(i.slice(p)),d.length>l?d.slice(0,l):d}:"0".split(void 0,0).length?function(r,a){return r===void 0&&a===0?[]:t.call(this,r,a)}:t,[function(r,a){var i=Hi(this),l=r==null?void 0:r[e];return l!==void 0?l.call(r,i,a):o.call(String(i),r,a)},function(r,a){var i=n(o,r,this,a,o!==t);if(i.done)return i.value;var l=Co(r),s=String(this),u=function($,x){var P,w=Co($).constructor;return w===void 0||(P=Co(w)[f$e])==null?x:Q$(P)}(l,RegExp),c=l.unicode,d=(l.ignoreCase?"i":"")+(l.multiline?"m":"")+(l.unicode?"u":"")+(Ts?"y":"g"),f=new u(Ts?l:"^(?:"+l.source+")",d),p=a===void 0?4294967295:a>>>0;if(p===0)return[];if(s.length===0)return U1(f,s)===null?[s]:[];for(var v=0,h=0,m=[];h1?arguments[1]:void 0,t.length)),o=String(e);return T3?T3.call(t,o,n):t.slice(n,n+o.length)===o}});var Es=function(e){return typeof e=="string"},_s=function(e){return e!==null&&Ik(e)==="object"},qd=function(){function e(){gs(this,e)}return hs(e,null,[{key:"isWindow",value:function(t){return t===window}},{key:"addEventListener",value:function(t,n,o){var r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];t&&n&&o&&t.addEventListener(n,o,r)}},{key:"removeEventListener",value:function(t,n,o){var r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];t&&n&&o&&t.removeEventListener(n,o,r)}},{key:"triggerDragEvent",value:function(t,n){var o=!1,r=function(i){var l;(l=n.drag)===null||l===void 0||l.call(n,i)},a=function i(l){var s;e.removeEventListener(document,"mousemove",r),e.removeEventListener(document,"mouseup",i),document.onselectstart=null,document.ondragstart=null,o=!1,(s=n.end)===null||s===void 0||s.call(n,l)};e.addEventListener(t,"mousedown",function(i){var l;o||(document.onselectstart=function(){return!1},document.ondragstart=function(){return!1},e.addEventListener(document,"mousemove",r),e.addEventListener(document,"mouseup",a),o=!0,(l=n.start)===null||l===void 0||l.call(n,i))})}},{key:"getBoundingClientRect",value:function(t){return t&&_s(t)&&t.nodeType===1?t.getBoundingClientRect():null}},{key:"hasClass",value:function(t,n){return!!(t&&_s(t)&&Es(n)&&t.nodeType===1)&&t.classList.contains(n.trim())}},{key:"addClass",value:function(t,n){if(t&&_s(t)&&Es(n)&&t.nodeType===1&&(n=n.trim(),!e.hasClass(t,n))){var o=t.className;t.className=o?o+" "+n:n}}},{key:"removeClass",value:function(t,n){if(t&&_s(t)&&Es(n)&&t.nodeType===1&&typeof t.className=="string"){n=n.trim();for(var o=t.className.trim().split(" "),r=o.length-1;r>=0;r--)o[r]=o[r].trim(),o[r]&&o[r]!==n||o.splice(r,1);t.className=o.join(" ")}}},{key:"toggleClass",value:function(t,n,o){t&&_s(t)&&Es(n)&&t.nodeType===1&&t.classList.toggle(n,o)}},{key:"replaceClass",value:function(t,n,o){t&&_s(t)&&Es(n)&&Es(o)&&t.nodeType===1&&(n=n.trim(),o=o.trim(),e.removeClass(t,n),e.addClass(t,o))}},{key:"getScrollTop",value:function(t){var n="scrollTop"in t?t.scrollTop:t.pageYOffset;return Math.max(n,0)}},{key:"setScrollTop",value:function(t,n){"scrollTop"in t?t.scrollTop=n:t.scrollTo(t.scrollX,n)}},{key:"getRootScrollTop",value:function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}},{key:"setRootScrollTop",value:function(t){e.setScrollTop(window,t),e.setScrollTop(document.body,t)}},{key:"getElementTop",value:function(t,n){if(e.isWindow(t))return 0;var o=n?e.getScrollTop(n):e.getRootScrollTop();return t.getBoundingClientRect().top+o}},{key:"getVisibleHeight",value:function(t){return e.isWindow(t)?t.innerHeight:t.getBoundingClientRect().height}},{key:"isHidden",value:function(t){if(!t)return!1;var n=window.getComputedStyle(t),o=n.display==="none",r=t.offsetParent===null&&n.position!=="fixed";return o||r}},{key:"triggerEvent",value:function(t,n){if("createEvent"in document){var o=document.createEvent("HTMLEvents");o.initEvent(n,!1,!0),t.dispatchEvent(o)}}},{key:"calcAngle",value:function(t,n){var o=t.getBoundingClientRect(),r=o.left+o.width/2,a=o.top+o.height/2,i=Math.abs(r-n.clientX),l=Math.abs(a-n.clientY),s=l/Math.sqrt(Math.pow(i,2)+Math.pow(l,2)),u=Math.acos(s),c=Math.floor(180/(Math.PI/u));return n.clientX>r&&n.clientY>a&&(c=180-c),n.clientX==r&&n.clientY>a&&(c=180),n.clientX>r&&n.clientY==a&&(c=90),n.clientXa&&(c=180+c),n.clientX1?o-1:0),a=1;a]*>)/g,k$e=/\$([$&'`]|\d\d?)/g,L$e=function(e,t,n,o,r,a){var i=n+e.length,l=o.length,s=k$e;return r!==void 0&&(r=ai(r),s=N$e),D$e.call(a,s,function(u,c){var d;switch(c.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(i);case"<":d=r[c.slice(1,-1)];break;default:var f=+c;if(f===0)return u;if(f>l){var p=R$e(f/10);return p===0?u:p<=l?o[p-1]===void 0?c.charAt(1):o[p-1]+c.charAt(1):u}d=o[f-1]}return d===void 0?"":d})},F$e=Math.max,B$e=Math.min;xk("replace",2,function(e,t,n,o){var r=o.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,a=o.REPLACE_KEEPS_$0,i=r?"$":"$0";return[function(l,s){var u=Hi(this),c=l==null?void 0:l[e];return c!==void 0?c.call(l,u,s):t.call(String(u),l,s)},function(l,s){if(!r&&a||typeof s=="string"&&s.indexOf(i)===-1){var u=n(t,l,this,s);if(u.done)return u.value}var c=Co(l),d=String(this),f=typeof s=="function";f||(s=String(s));var p=c.global;if(p){var v=c.unicode;c.lastIndex=0}for(var h=[];;){var m=U1(c,d);if(m===null||(h.push(m),!p))break;String(m[0])===""&&(c.lastIndex=Pk(d,Jo(c.lastIndex),v))}for(var b,S="",C=0,$=0;$=C&&(S+=d.slice(C,P)+T,C=P+x.length)}return S+d.slice(C)}]});(function(){function e(){gs(this,e)}return hs(e,null,[{key:"camelize",value:function(t){return t.replace(/-(\w)/g,function(n,o){return o?o.toUpperCase():""})}},{key:"capitalize",value:function(t){return t.charAt(0).toUpperCase()+t.slice(1)}}]),e})();(function(){function e(){gs(this,e)}return hs(e,null,[{key:"_clone",value:function(){}}]),e})();var Tk=dn("isConcatSpreadable"),H$e=Nh>=51||!qt(function(){var e=[];return e[Tk]=!1,e.concat()[0]!==e}),z$e=J$("concat"),j$e=function(e){if(!jn(e))return!1;var t=e[Tk];return t!==void 0?!!t:Rc(e)};po({target:"Array",proto:!0,forced:!H$e||!z$e},{concat:function(e){var t,n,o,r,a,i=ai(this),l=Am(i,0),s=0;for(t=-1,o=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n=9007199254740991)throw TypeError("Maximum allowed index exceeded");Dc(l,s++,a)}return l.length=s,l}});var Tb,Ef=function(e,t,n){if(Q$(e),t===void 0)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(o){return e.call(t,o)};case 2:return function(o,r){return e.call(t,o,r)};case 3:return function(o,r,a){return e.call(t,o,r,a)}}return function(){return e.apply(t,arguments)}},E3=[].push,_3=function(e){var t=e==1,n=e==2,o=e==3,r=e==4,a=e==6,i=e==7,l=e==5||a;return function(s,u,c,d){for(var f,p,v=ai(s),h=Em(v),m=Ef(u,c,3),b=Jo(h.length),S=0,C=d||Am,$=t?C(s,b):n||i?C(s,0):void 0;b>S;S++)if((l||S in h)&&(p=m(f=h[S],S,v),e))if(t)$[S]=p;else if(p)switch(e){case 3:return!0;case 5:return f;case 6:return S;case 2:E3.call($,f)}else switch(e){case 4:return!1;case 7:E3.call($,f)}return a?-1:o||r?r:$}},Ek={find:_3(5),findIndex:_3(6)},W$e=sr?Object.defineProperties:function(e,t){Co(e);for(var n,o=ew(t),r=o.length,a=0;r>a;)ri.f(e,n=o[a++],t[n]);return e},V$e=Mm("document","documentElement"),_k=Y$("IE_PROTO"),Eb=function(){},M3=function(e){return"
+