diff --git a/.github/workflows/check-chinese-content.yml b/.github/workflows/check-chinese-content.yml
index 2382a9d0fc..7bbcabdefb 100644
--- a/.github/workflows/check-chinese-content.yml
+++ b/.github/workflows/check-chinese-content.yml
@@ -1,4 +1,5 @@
-# Copyright 2024-2026 the original author or authors.
+#
+# Copyright 2024-2025 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -11,21 +12,26 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-name: Check Chinese Content in Jmanus
+#
+name: 🔍 Check Chinese Content in Jmanus
on:
pull_request:
paths:
- 'spring-ai-alibaba-jmanus/src/main/java/**/*.java'
+ - 'spring-ai-alibaba-jmanus/ui-vue3/src/**'
+
+permissions:
+ contents: read
jobs:
check-chinese-content:
runs-on: ubuntu-latest
- name: Check for Chinese content in Java files
+ name: Check for Chinese content in Jmanus
steps:
- name: Checkout code
- uses: actions/checkout@v4
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
@@ -34,22 +40,24 @@ jobs:
with:
python-version: '3.9'
- - name: Check Chinese content in Jmanus Java files
+ - name: Check Chinese content in Jmanus
run: |
- cd spring-ai-alibaba-jmanus
- echo "🔍 Checking for Chinese content in Java files..."
+ echo "🔍 Checking for Chinese content in Jmanus Java and frontend files..."
+ echo "📁 Checking directories:"
+ echo " - spring-ai-alibaba-jmanus/src/main/java"
+ echo " - spring-ai-alibaba-jmanus/ui-vue3/src (excluding i18n files)"
echo ""
- if python scripts/check-chinese-content.py --dir src/main/java --fail-on-found; then
+ if python tools/scripts/check-chinese-content.py --fail-on-found; then
echo "✅ No Chinese content found - Check passed!"
else
echo ""
- echo "## 🚨 Chinese Content Detected"
+ echo "## 🚨 Chinese Content Detected in Jmanus"
echo ""
- echo "Chinese content has been detected in Java files under spring-ai-alibaba-jmanus/src/main/java directory."
+ echo "Chinese content has been detected in Jmanus Java or frontend files."
echo ""
echo "### Detailed Check Results:"
- python scripts/check-chinese-content.py --dir src/main/java
+ python tools/scripts/check-chinese-content.py
echo ""
echo "### Modification Suggestions:"
echo ""
@@ -60,21 +68,21 @@ jobs:
echo ""
echo "2. **Chinese Strings** → Extract to resource files or use English"
echo " Example:"
- echo " // ❌ Incorrect: throw new RuntimeException(\"用户不存在\");"
- echo " // ✅ Correct: throw new RuntimeException(\"User not found\");"
+ echo " // ❌ Incorrect: String message = \"用户不存在\";"
+ echo " // ✅ Correct: String message = messageSource.getMessage(\"user.not.found\", null, locale);"
echo ""
- echo "3. **Chinese Identifiers** → Change to English Identifiers"
+ echo "3. **Chinese Identifiers** → Use English identifiers"
echo " Example:"
echo " // ❌ Incorrect: String 用户名 = \"admin\";"
echo " // ✅ Correct: String username = \"admin\";"
echo ""
- echo "### Why Avoid Chinese Content?"
+ echo "4. **Vue Template Content** → Use i18n for internationalization"
+ echo " Example:"
+ echo " "
+ echo " "
echo ""
- echo "- 🌍 Internationalization Friendly: Facilitates project internationalization"
- echo "- 🔧 Development Environment Compatibility: Avoids encoding issues"
- echo "- 👥 Team Collaboration: Enables international team members to understand code"
- echo "- 📚 Code Standards: Follows open source project best practices"
+ echo "**Note:** i18n configuration files are automatically excluded from this check."
echo ""
- echo "❌ Please modify the relevant files and resubmit."
+ echo "Please fix the Chinese content issues and commit the changes."
exit 1
fi
diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-dU5ExThW.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-CRvchvYB.js
similarity index 99%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-dU5ExThW.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-CRvchvYB.js
index 64813c2f04..98f3c22692 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-dU5ExThW.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/cssMode-CRvchvYB.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-H3fwLZKf.js";import"./index-SarmArA2.js";import"./iconify-B5kZhuXP.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-BDFqrfR1.js";import"./index-BPwnW1su.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-DOvRfojN.js";import"./index-W4k7xcj8.js";import"./iconify-bZOkqtWv.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-QCjbpgZx.js";import"./index-0-ztzQqN.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-CkAicm6I.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-C7VanfqX.js
similarity index 98%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-CkAicm6I.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-C7VanfqX.js
index 3cb84c2beb..13f13d738c 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-CkAicm6I.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/freemarker2-C7VanfqX.js
@@ -1,4 +1,4 @@
-import{m as f}from"./index-H3fwLZKf.js";import"./index-SarmArA2.js";import"./iconify-B5kZhuXP.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-BDFqrfR1.js";import"./index-BPwnW1su.js";/*!-----------------------------------------------------------------------------
+import{m as f}from"./index-DOvRfojN.js";import"./index-W4k7xcj8.js";import"./iconify-bZOkqtWv.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-QCjbpgZx.js";import"./index-0-ztzQqN.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-C5uyFx9F.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-Ce5o-Jd2.js
similarity index 96%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-C5uyFx9F.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-Ce5o-Jd2.js
index 6c1502d351..d41672d2b3 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-C5uyFx9F.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/handlebars-Ce5o-Jd2.js
@@ -1,4 +1,4 @@
-import{m as i}from"./index-H3fwLZKf.js";import"./index-SarmArA2.js";import"./iconify-B5kZhuXP.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-BDFqrfR1.js";import"./index-BPwnW1su.js";/*!-----------------------------------------------------------------------------
+import{m as i}from"./index-DOvRfojN.js";import"./index-W4k7xcj8.js";import"./iconify-bZOkqtWv.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-QCjbpgZx.js";import"./index-0-ztzQqN.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-D2gt6e4j.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-BQBqHUj9.js
similarity index 95%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-D2gt6e4j.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-BQBqHUj9.js
index e58b7b5da9..33894a755c 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-D2gt6e4j.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/html-BQBqHUj9.js
@@ -1,4 +1,4 @@
-import{m as s}from"./index-H3fwLZKf.js";import"./index-SarmArA2.js";import"./iconify-B5kZhuXP.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-BDFqrfR1.js";import"./index-BPwnW1su.js";/*!-----------------------------------------------------------------------------
+import{m as s}from"./index-DOvRfojN.js";import"./index-W4k7xcj8.js";import"./iconify-bZOkqtWv.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-QCjbpgZx.js";import"./index-0-ztzQqN.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-Cl5XUd21.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-k6nyQsqC.js
similarity index 99%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-Cl5XUd21.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-k6nyQsqC.js
index f5c4b8f790..931533d887 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-Cl5XUd21.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/htmlMode-k6nyQsqC.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-H3fwLZKf.js";import"./index-SarmArA2.js";import"./iconify-B5kZhuXP.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-BDFqrfR1.js";import"./index-BPwnW1su.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-DOvRfojN.js";import"./index-W4k7xcj8.js";import"./iconify-bZOkqtWv.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./useMessage-QCjbpgZx.js";import"./index-0-ztzQqN.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/iconify-B5kZhuXP.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/iconify-bZOkqtWv.js
similarity index 93%
rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/iconify-B5kZhuXP.js
rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/iconify-bZOkqtWv.js
index 4dfa103a54..f981ee4b35 100644
--- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/iconify-B5kZhuXP.js
+++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/iconify-bZOkqtWv.js
@@ -1 +1 @@
-import{d as me,S as G}from"./index-SarmArA2.js";const se=/^[a-z0-9]+(-[a-z0-9]+)*$/,M=(e,n,o,i="")=>{const t=e.split(":");if(e.slice(0,1)==="@"){if(t.length<2||t.length>3)return null;i=t.shift().slice(1)}if(t.length>3||!t.length)return null;if(t.length>1){const c=t.pop(),l=t.pop(),f={provider:t.length>0?t[0]:i,prefix:l,name:c};return n&&!L(f)?null:f}const s=t[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=(e,n)=>e?!!((n&&e.prefix===""||e.prefix)&&e.name):!1,re=Object.freeze({left:0,top:0,width:16,height:16}),A=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),N=Object.freeze({...re,...A}),z=Object.freeze({...N,body:"",hidden:!1});function ye(e,n){const o={};!e.hFlip!=!n.hFlip&&(o.hFlip=!0),!e.vFlip!=!n.vFlip&&(o.vFlip=!0);const i=((e.rotate||0)+(n.rotate||0))%4;return i&&(o.rotate=i),o}function B(e,n){const o=ye(e,n);for(const i in z)i in A?i in e&&!(i in o)&&(o[i]=A[i]):i in n?o[i]=n[i]:i in e&&(o[i]=e[i]);return o}function be(e,n){const o=e.icons,i=e.aliases||Object.create(null),t=Object.create(null);function s(r){if(o[r])return t[r]=[];if(!(r in t)){t[r]=null;const c=i[r]&&i[r].parent,l=c&&s(c);l&&(t[r]=[c].concat(l))}return t[r]}return Object.keys(o).concat(Object.keys(i)).forEach(s),t}function xe(e,n,o){const i=e.icons,t=e.aliases||Object.create(null);let s={};function r(c){s=B(i[c]||t[c],s)}return r(n),o.forEach(r),B(e,s)}function ce(e,n){const o=[];if(typeof e!="object"||typeof e.icons!="object")return o;e.not_found instanceof Array&&e.not_found.forEach(t=>{n(t,null),o.push(t)});const i=be(e);for(const t in i){const s=i[t];s&&(n(t,xe(e,t,s)),o.push(t))}return o}const Ie={provider:"",aliases:{},not_found:{},...re};function D(e,n){for(const o in n)if(o in e&&typeof e[o]!=typeof n[o])return!1;return!0}function le(e){if(typeof e!="object"||e===null)return null;const n=e;if(typeof n.prefix!="string"||!e.icons||typeof e.icons!="object"||!D(e,Ie))return null;const o=n.icons;for(const t in o){const s=o[t];if(!t||typeof s.body!="string"||!D(s,z))return null}const i=n.aliases||Object.create(null);for(const t in i){const s=i[t],r=s.parent;if(!t||typeof r!="string"||!o[r]&&!i[r]||!D(s,z))return null}return n}const K=Object.create(null);function we(e,n){return{provider:e,prefix:n,icons:Object.create(null),missing:new Set}}function k(e,n){const o=K[e]||(K[e]=Object.create(null));return o[n]||(o[n]=we(e,n))}function fe(e,n){return le(n)?ce(n,(o,i)=>{i?e.icons[o]=i:e.missing.add(o)}):[]}function ve(e,n,o){try{if(typeof o.body=="string")return e.icons[n]={...o},!0}catch{}return!1}let j=!1;function ue(e){return typeof e=="boolean"&&(j=e),j}function Se(e){const n=typeof e=="string"?M(e,!0,j):e;if(n){const o=k(n.provider,n.prefix),i=n.name;return o.icons[i]||(o.missing.has(i)?null:void 0)}}function ke(e,n){const o=M(e,!0,j);if(!o)return!1;const i=k(o.provider,o.prefix);return n?ve(i,o.name,n):(i.missing.add(o.name),!0)}function Te(e,n){if(typeof e!="object")return!1;if(typeof n!="string"&&(n=e.provider||""),j&&!n&&!e.prefix){let t=!1;return le(e)&&(e.prefix="",ce(e,(s,r)=>{ke(s,r)&&(t=!0)})),t}const o=e.prefix;if(!L({prefix:o,name:"a"}))return!1;const i=k(n,o);return!!fe(i,e)}const ae=Object.freeze({width:null,height:null}),de=Object.freeze({...ae,...A}),Ce=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Pe=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function W(e,n,o){if(n===1)return e;if(o=o||100,typeof e=="number")return Math.ceil(e*n*o)/o;if(typeof e!="string")return e;const i=e.split(Ce);if(i===null||!i.length)return e;const t=[];let s=i.shift(),r=Pe.test(s);for(;;){if(r){const c=parseFloat(s);isNaN(c)?t.push(s):t.push(Math.ceil(c*n*o)/o)}else t.push(s);if(s=i.shift(),s===void 0)return t.join("");r=!r}}function je(e,n="defs"){let o="";const i=e.indexOf("<"+n);for(;i>=0;){const t=e.indexOf(">",i),s=e.indexOf(""+n);if(t===-1||s===-1)break;const r=e.indexOf(">",s);if(r===-1)break;o+=e.slice(t+1,s).trim(),e=e.slice(0,i).trim()+e.slice(r+1)}return{defs:o,content:e}}function Ee(e,n){return e?"
").replace(/\n/g,"
");return t=t.replace(/(
)/g,"
"),t.includes("
")&&(t=`
${t}
`),t},I=async a=>{var t;if(!((t=a.planExecution)!=null&&t.currentPlanId)||!a.planExecution.userInputWaitState){console.error("[ChatComponent] 缺少planExecution.currentPlanId或userInputWaitState");return}try{const r={},d=a.planExecution.userInputWaitState.formInputs;d&&d.length>0?Object.entries(G[a.id]).forEach(([N,Z])=>{var M;const j=parseInt(N,10),H=((M=d[j])==null?void 0:M.label)||`input_${N}`;r[H]=Z}):r.genericInput=a.genericInput??"",console.log("[ChatComponent] 提交用户输入:",r);const W=await qe.submitFormInput(a.planExecution.currentPlanId,r);delete a.planExecution.userInputWaitState,delete a.genericInput,delete G[a.id],_.startPolling(),console.log("[ChatComponent] 用户输入提交成功:",W)}catch(r){console.error("[ChatComponent] 用户输入提交失败:",r),alert(`提交失败: ${(r==null?void 0:r.message)||"未知错误"}`)}};return $e(()=>u.initialPrompt,(a,t)=>{console.log("[ChatComponent] initialPrompt changed from:",t,"to:",a),a&&typeof a=="string"&&a.trim()&&a!==t&&(console.log("[ChatComponent] Processing changed initial prompt:",a),ne(()=>{C(a)}))},{immediate:!1}),Se(()=>{console.log("[ChatComponent] Mounted, setting up event listeners"),oe.setEventCallbacks({onPlanUpdate:me,onPlanCompleted:v,onDialogRoundStart:se,onChatInputUpdateState:a=>{console.log("[ChatComponent] Chat input state update for rootPlanId:",a)},onChatInputClear:()=>{console.log("[ChatComponent] Chat input clear requested")},onPlanError:c}),ne(()=>{ce()}),u.initialPrompt&&typeof u.initialPrompt=="string"&&u.initialPrompt.trim()&&(console.log("[ChatComponent] Processing initial prompt:",u.initialPrompt),ne(()=>{C(u.initialPrompt)}))}),De(()=>{console.log("[ChatComponent] Unmounting, cleaning up resources"),be(),B.value&&clearInterval(B.value),_.cleanup(),Object.keys(G).forEach(a=>delete G[a])}),n({handleSendMessage:C,handlePlanUpdate:me,handlePlanCompleted:v,handleDialogRoundStart:se,addMessage:o,handlePlanError:c}),(a,t)=>(p(),g("div",Ns,[e("div",{class:"messages",ref_key:"messagesRef",ref:x},[(p(!0),g(ge,null,ve($.value,r=>{var d,W,N,Z,j,H,M,z,ae;return p(),g("div",{key:r.id,class:te(["message",{user:r.type==="user",assistant:r.type==="assistant"}])},[e("div",Us,[r.type==="user"?(p(),g("div",Ls,i(r.content),1)):(p(),g("div",Vs,[r.thinking||((d=r.planExecution)==null?void 0:d.progress)!==void 0||(((N=(W=r.planExecution)==null?void 0:W.steps)==null?void 0:N.length)??0)>0?(p(),g("div",qs,[e("div",Fs,[e("div",Os,[b(l(P),{icon:"carbon:thinking",class:"thinking-icon"})]),e("div",Bs,i(a.$t("chat.thinkingLabel")),1)]),e("div",Ws,[r.thinking?(p(),g("div",js,[b(l(P),{icon:"carbon:thinking",class:"thinking-icon"}),e("span",null,i(r.thinking),1)])):q("",!0),((Z=r.planExecution)==null?void 0:Z.progress)!==void 0?(p(),g("div",Hs,[e("div",zs,[e("div",{class:"progress-fill",style:Ue({width:r.planExecution.progress+"%"})},null,4)]),e("span",Js,i(r.planExecution.progressText??a.$t("chat.processing")+"..."),1)])):q("",!0),(((H=(j=r.planExecution)==null?void 0:j.steps)==null?void 0:H.length)??0)>0?(p(),g("div",Gs,[e("h4",Xs,i(a.$t("chat.stepExecutionDetails")),1),(p(!0),g(ge,null,ve((M=r.planExecution)==null?void 0:M.steps,(Ee,J)=>{var Me,Fe,Oe,Be,We,je,He,ze,Je,Ge,Xe,Ke,Qe,Ye,Ze,et,tt,nt,st;return p(),g("div",{key:J,class:te(["ai-section",{running:S(r,J)==="RUNNING",completed:S(r,J)==="FINISHED",pending:S(r,J)==="IDLE"}]),onClick:ie(pe=>L(r,J),["stop"])},[e("div",Qs,[e("span",Ys,i(S(r,J)==="FINISHED"?"✓":S(r,J)==="RUNNING"?"▶":"○"),1),e("span",Zs,i(Ee||`${a.$t("chat.step")} ${J+1}`),1),S(r,J)==="RUNNING"?(p(),g("span",eo,i(a.$t("chat.status.executing")),1)):S(r,J)==="FINISHED"?(p(),g("span",to,i(a.$t("chat.status.completed")),1)):(p(),g("span",no,i(a.$t("chat.status.pending")),1))]),r.stepActions&&r.stepActions[J]?(p(),g("div",so,[e("div",oo,[e("span",ao,i(((Me=r.stepActions[J])==null?void 0:Me.status)==="current"?"🔄":((Fe=r.stepActions[J])==null?void 0:Fe.status)==="completed"?"✓":"⏳"),1),e("strong",null,i((Oe=r.stepActions[J])==null?void 0:Oe.actionDescription),1)]),(Be=r.stepActions[J])!=null&&Be.toolParameters?(p(),g("div",lo,[t[0]||(t[0]=e("span",{class:"tool-icon"},"⚙️",-1)),e("span",io,i(a.$t("common.parameters"))+":",1),e("pre",co,i((We=r.stepActions[J])==null?void 0:We.toolParameters),1)])):q("",!0),(je=r.stepActions[J])!=null&&je.thinkOutput?(p(),g("div",ro,[e("div",uo,[t[1]||(t[1]=e("span",{class:"think-icon"},"💭",-1)),e("span",po,i(a.$t("chat.thinkingOutput"))+":",1)]),e("div",ho,[e("pre",go,i((He=r.stepActions[J])==null?void 0:He.thinkOutput),1)])])):q("",!0)])):q("",!0),((ze=R(r,J))==null?void 0:ze.length)>0?(p(),g("div",mo,[e("div",vo,[b(l(P),{icon:"carbon:tree-view",class:"sub-plan-icon"}),t[2]||(t[2]=e("span",{class:"sub-plan-title"},"子执行计划",-1))]),e("div",fo,[(p(!0),g(ge,null,ve(R(r,J),(pe,le)=>(p(),g("div",{key:`sub-${J}-${le}`,class:te(["sub-plan-step-item",{completed:E(r,J,le)==="completed",current:E(r,J,le)==="current",pending:E(r,J,le)==="pending"}]),onClick:ie(ot=>A(r,J,le),["stop"])},[e("div",ko,[e("span",_o,i(E(r,J,le)==="completed"?"✓":E(r,J,le)==="current"?"▶":"○"),1),e("span",$o,i(le+1),1)]),e("div",Po,[e("span",Co,i(pe),1),t[3]||(t[3]=e("span",{class:"sub-step-badge"},"子步骤",-1))])],10,bo))),128))])])):q("",!0),(Je=r.planExecution)!=null&&Je.userInputWaitState&&S(r,J)==="RUNNING"?(p(),g("div",So,[e("p",yo,i(((Xe=(Ge=r.planExecution)==null?void 0:Ge.userInputWaitState)==null?void 0:Xe.message)??a.$t("chat.userInput.message")),1),(Qe=(Ke=r.planExecution)==null?void 0:Ke.userInputWaitState)!=null&&Qe.formDescription?(p(),g("p",Eo,i((Ze=(Ye=r.planExecution)==null?void 0:Ye.userInputWaitState)==null?void 0:Ze.formDescription),1)):q("",!0),e("form",{onSubmit:ie(pe=>I(r),["prevent"]),class:"user-input-form"},[(tt=(et=r.planExecution)==null?void 0:et.userInputWaitState)!=null&&tt.formInputs&&r.planExecution.userInputWaitState.formInputs.length>0?(p(!0),g(ge,{key:0},ve((st=(nt=r.planExecution)==null?void 0:nt.userInputWaitState)==null?void 0:st.formInputs,(pe,le)=>(p(),g("div",{key:le,class:"form-group"},[e("label",{for:`form-input-${pe.label.replace(/\W+/g,"_")}`},i(pe.label)+": ",9,To),de(e("input",{type:"text",id:`form-input-${pe.label.replace(/\W+/g,"_")}`,name:pe.label,"onUpdate:modelValue":ot=>G[r.id][le]=ot,class:"form-input"},null,8,Io),[[fe,G[r.id][le]]])]))),128)):(p(),g("div",Do,[e("label",xo,i(a.$t("common.input"))+":",1),de(e("input",{type:"text",id:"form-input-genericInput",name:"genericInput","onUpdate:modelValue":pe=>r.genericInput=pe,class:"form-input"},null,8,Ro),[[fe,r.genericInput]])])),e("button",Ao,i(a.$t("chat.userInput.submit")),1)],40,wo)])):q("",!0)],10,Ks)}),128))])):!r.content&&(r.thinking||((z=r.planExecution)==null?void 0:z.progress)!==void 0&&(((ae=r.planExecution)==null?void 0:ae.progress)??0)<100)?(p(),g("div",Mo,[e("div",No,[t[4]||(t[4]=e("div",{class:"thinking-dots"},[e("span"),e("span"),e("span")],-1)),e("span",null,i(r.thinking??a.$t("chat.thinkingProcessing")),1)])])):q("",!0)])])):q("",!0),e("div",Uo,[e("div",Lo,[e("div",Vo,[b(l(P),{icon:"carbon:bot",class:"bot-icon"})]),e("div",qo,i(a.$t("chat.botName")),1)]),e("div",Fo,[r.content?(p(),g("div",Oo,[e("div",{class:"response-text",innerHTML:k(r.content)},null,8,Bo)])):(p(),g("div",Wo,[e("div",jo,[t[5]||(t[5]=e("div",{class:"typing-dots"},[e("span"),e("span"),e("span")],-1)),e("span",Ho,i(a.$t("chat.thinkingResponse")),1)])]))])])]))])],2)}),128)),F.value?(p(),g("div",zo,[e("div",Jo,[e("div",Go,[e("div",Xo,[e("div",Ko,[e("div",Qo,[b(l(P),{icon:"carbon:thinking",class:"thinking-icon"})]),e("div",Yo,i(a.$t("chat.thinkingLabel")),1)]),e("div",Zo,[e("div",ea,[e("div",ta,[t[6]||(t[6]=e("div",{class:"thinking-dots"},[e("span"),e("span"),e("span")],-1)),e("span",null,i(a.$t("chat.thinking")),1)])])])]),e("div",na,[e("div",sa,[e("div",oa,[b(l(P),{icon:"carbon:bot",class:"bot-icon"})]),e("div",aa,i(a.$t("chat.botName")),1)]),e("div",la,[e("div",ia,[e("div",ca,[t[7]||(t[7]=e("div",{class:"typing-dots"},[e("span"),e("span"),e("span")],-1)),e("span",ra,i(a.$t("chat.thinkingResponse")),1)])])])])])])])):q("",!0)],512),X.value?(p(),g("div",{key:0,class:"scroll-to-bottom-btn",onClick:O,title:a.$t("chat.scrollToBottom")},[b(l(P),{icon:"carbon:chevron-down"})],8,ua)):q("",!0)]))}}),pa=ye(da,[["__scopeId","data-v-46f87864"]]),ha={class:"input-area"},ga={class:"input-container"},ma={class:"attach-btn",title:"附加文件"},va=["placeholder","disabled"],fa=["title"],ba=["disabled","title"],ka=Ce({__name:"index",props:{placeholder:{default:""},disabled:{type:Boolean,default:!1},initialValue:{default:""}},emits:["send","clear","update-state","plan-mode-clicked"],setup(w,{expose:n,emit:s}){const{t:u}=Ie(),T=w,f=s,_=D(),x=D(""),F=_e(()=>T.placeholder||u("input.placeholder")),$=D(F.value),B=_e(()=>!!T.disabled),X=()=>{ne(()=>{_.value&&(_.value.style.height="auto",_.value.style.height=Math.min(_.value.scrollHeight,120)+"px")})},G=O=>{O.key==="Enter"&&!O.shiftKey&&(O.preventDefault(),o())},o=()=>{if(!x.value.trim()||B.value)return;const O=x.value.trim();f("send",O),y()},h=()=>{f("plan-mode-clicked")},y=()=>{x.value="",X(),f("clear")},K=(O,Q)=>{Q&&($.value=O?Q:u("input.waiting")),f("update-state",O,Q)},U=O=>{x.value=O,X()},V=()=>x.value.trim();return $e(()=>T.initialValue,O=>{O&&O.trim()&&(x.value=O,X())},{immediate:!0}),n({clearInput:y,updateState:K,setInputValue:U,getQuery:V,focus:()=>{var O;return(O=_.value)==null?void 0:O.focus()}}),Se(()=>{}),De(()=>{}),(O,Q)=>(p(),g("div",ha,[e("div",ga,[e("button",ma,[b(l(P),{icon:"carbon:attachment"})]),de(e("textarea",{"onUpdate:modelValue":Q[0]||(Q[0]=ce=>x.value=ce),ref_key:"inputRef",ref:_,class:"chat-input",placeholder:$.value,disabled:B.value,onKeydown:G,onInput:X},null,40,va),[[fe,x.value]]),e("button",{class:"plan-mode-btn",title:O.$t("input.planMode"),onClick:h},[b(l(P),{icon:"carbon:document"}),Y(" "+i(O.$t("input.planMode")),1)],8,fa),e("button",{class:"send-button",disabled:!x.value.trim()||B.value,onClick:o,title:O.$t("input.send")},[b(l(P),{icon:"carbon:send-alt"}),Y(" "+i(O.$t("input.send")),1)],8,ba)])]))}}),_a=ye(ka,[["__scopeId","data-v-639c8b2a"]]);class we{static async getAllCronTasks(){try{const n=await fetch(this.BASE_URL);return await(await this.handleResponse(n)).json()}catch(n){throw console.error("Failed to get cron tasks:",n),n}}static async getCronTaskById(n){try{const s=await fetch(`${this.BASE_URL}/${n}`);return await(await this.handleResponse(s)).json()}catch(s){throw console.error("Failed to get cron task by id:",s),s}}static async createCronTask(n){try{const s=await fetch(this.BASE_URL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return await(await this.handleResponse(s)).json()}catch(s){throw console.error("Failed to create cron task:",s),s}}static async updateCronTask(n,s){try{const u=await fetch(`${this.BASE_URL}/${n}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});return await(await this.handleResponse(u)).json()}catch(u){throw console.error("Failed to update cron task:",u),u}}static async updateTaskStatus(n,s){try{const u=await fetch(`${this.BASE_URL}/${n}/status?status=${s}`,{method:"PUT"});await this.handleResponse(u)}catch(u){throw console.error("Failed to update task status:",u),u}}static async deleteCronTask(n){try{const s=await fetch(`${this.BASE_URL}/${n}`,{method:"DELETE"});await this.handleResponse(s)}catch(s){throw console.error("Failed to delete cron task:",s),s}}static async handleResponse(n){if(!n.ok)try{const s=await n.json();throw new Error(s.message||`API request failed: ${n.status}`)}catch{throw new Error(`API request failed: ${n.status} ${n.statusText}`)}return n}}he(we,"BASE_URL","/api/cron-tasks");const Te={validateCronExpression(w){const n=w.trim().split(/\s+/);return n.length>=5&&n.length<=6},formatTime(w){return new Date(w).toLocaleString()},async saveTask(w){try{let n;return w.id?n=await we.updateCronTask(Number(w.id),w):n=await we.createCronTask(w),n}catch(n){throw console.error("Failed to save cron task:",n),n}},async deleteTask(w){try{await we.deleteCronTask(String(w))}catch(n){throw console.error("Failed to delete cron task:",n),n}},async toggleTaskStatus(w){if(!w.id)throw new Error("Task ID is required");const n=w.status===0?1:0;return await we.updateCronTask(Number(w.id),{...w,status:n})},prepareTaskExecution(w){return w.planTemplateId?{useTemplate:!0,planData:{title:w.cronName||"定时任务执行",planData:{id:w.planTemplateId,planTemplateId:w.planTemplateId,planId:w.planTemplateId},params:w.executionParams||void 0}}:{useTemplate:!1,taskContent:w.planDesc||w.cronName||""}}},$a={class:"modal-header"},Pa={class:"header-actions"},Ca={class:"status-switch"},Sa={class:"status-label"},ya={class:"toggle-switch"},Ea=["checked"],wa={class:"modal-content"},Ta={class:"form-group"},Ia={class:"form-label"},Da=["placeholder"],xa={class:"form-group"},Ra={class:"form-label"},Aa=["placeholder"],Ma={class:"form-help"},Na={class:"form-group"},Ua={class:"form-label"},La=["placeholder"],Va={class:"form-group"},qa={class:"form-label"},Fa={class:"template-toggle"},Oa={key:0,class:"template-selector"},Ba={value:""},Wa=["value"],ja={class:"form-help"},Ha={key:0,class:"form-group"},za={class:"time-info"},Ja={class:"time-label"},Ga={class:"time-value"},Xa={key:1,class:"form-group"},Ka={class:"time-info"},Qa={class:"time-label"},Ya={class:"time-value"},Za={class:"modal-footer"},el=["disabled"],tl=Ce({__name:"TaskDetailModal",props:{modelValue:{type:Boolean},task:{}},emits:["update:modelValue","save"],setup(w,{emit:n}){const s=w,u=n,T=D(!1),f=D([]),_=D({cronName:"",cronTime:"",planDesc:"",status:1,linkTemplate:!1,templateId:"",planTemplateId:""});Se(async()=>{try{const o=await Ae.getAllPlanTemplates();o&&o.templates&&(f.value=o.templates.map(h=>({id:h.id,name:h.title||"Unnamed Template"})))}catch(o){console.error("Failed to get template list:",o)}});const F=o=>{o.target===o.currentTarget&&u("update:modelValue",!1)},$=()=>{_.value.linkTemplate=!1,_.value.templateId="",_.value.planTemplateId=""},B=()=>_.value.cronName.trim()?_.value.cronTime.trim()?Te.validateCronExpression(_.value.cronTime)?_.value.planDesc.trim()?_.value.linkTemplate&&!_.value.templateId?(alert("Please select a plan template"),!1):!0:(alert("Task description cannot be empty"),!1):(alert("Invalid Cron expression format, should be 5-6 parts separated by spaces"),!1):(alert("Cron expression cannot be empty"),!1):(alert("Task name cannot be empty"),!1),X=o=>Te.formatTime(o),G=async()=>{var o;if(B()){T.value=!0;try{const h={..._.value,...((o=s.task)==null?void 0:o.id)!==void 0&&{id:s.task.id},cronName:_.value.cronName.trim(),cronTime:_.value.cronTime.trim(),planDesc:_.value.planDesc.trim(),status:_.value.status,planTemplateId:_.value.linkTemplate&&_.value.templateId||""};u("save",h)}finally{T.value=!1}}};return $e(()=>s.task,o=>{if(o){const h=o.templateId||o.planTemplateId||"";_.value={cronName:o.cronName||"",cronTime:o.cronTime||"",planDesc:o.planDesc||"",status:o.status??1,linkTemplate:!!h,templateId:h,planTemplateId:h}}else _.value={cronName:"",cronTime:"",planDesc:"",status:1,linkTemplate:!1,templateId:"",planTemplateId:""}},{immediate:!0}),$e(()=>s.modelValue,o=>{o||(_.value={cronName:"",cronTime:"",planDesc:"",status:1,linkTemplate:!1,templateId:"",planTemplateId:""})}),(o,h)=>(p(),ue(Ne,{to:"body"},[b(xe,{name:"modal"},{default:Re(()=>{var y,K,U;return[o.modelValue?(p(),g("div",{key:0,class:"modal-overlay",onClick:F},[e("div",{class:"modal-container",onClick:h[8]||(h[8]=ie(()=>{},["stop"]))},[e("div",$a,[e("h3",null,i(o.$t("cronTask.taskDetail")),1),e("div",Pa,[e("div",Ca,[e("span",Sa,i(o.$t("cronTask.taskStatus")),1),e("label",ya,[e("input",{type:"checkbox",checked:_.value.status===0,onChange:h[0]||(h[0]=V=>_.value.status=_.value.status===0?1:0)},null,40,Ea),h[9]||(h[9]=e("span",{class:"toggle-slider"},null,-1))])]),e("button",{class:"close-btn",onClick:h[1]||(h[1]=V=>o.$emit("update:modelValue",!1))},[b(l(P),{icon:"carbon:close"})])])]),e("div",wa,[e("form",{onSubmit:ie(G,["prevent"]),class:"task-form"},[e("div",Ta,[e("label",Ia,i(o.$t("cronTask.taskName")),1),de(e("input",{"onUpdate:modelValue":h[2]||(h[2]=V=>_.value.cronName=V),type:"text",class:"form-input",placeholder:o.$t("cronTask.taskNamePlaceholder"),required:""},null,8,Da),[[fe,_.value.cronName]])]),e("div",xa,[e("label",Ra,i(o.$t("cronTask.cronExpression")),1),de(e("input",{"onUpdate:modelValue":h[3]||(h[3]=V=>_.value.cronTime=V),type:"text",class:"form-input",placeholder:o.$t("cronTask.cronExpressionPlaceholder"),required:""},null,8,Aa),[[fe,_.value.cronTime]]),e("div",Ma,i(o.$t("cronTask.cronExpressionHelp")),1)]),e("div",Na,[e("label",Ua,i(o.$t("cronTask.taskDescription")),1),de(e("textarea",{"onUpdate:modelValue":h[4]||(h[4]=V=>_.value.planDesc=V),class:"form-textarea",placeholder:o.$t("cronTask.taskDescriptionPlaceholder"),rows:"4",required:""},null,8,La),[[fe,_.value.planDesc]])]),e("div",Va,[e("label",qa,i(o.$t("cronTask.planTemplate")),1),e("div",Fa,[e("button",{type:"button",class:te(["template-btn",_.value.linkTemplate?"active":""]),onClick:h[5]||(h[5]=V=>_.value.linkTemplate=!0)},[b(l(P),{icon:"carbon:checkmark"}),Y(" "+i(o.$t("cronTask.linkTemplate")),1)],2),e("button",{type:"button",class:te(["template-btn",_.value.linkTemplate?"":"active"]),onClick:$},[b(l(P),{icon:"carbon:close"}),Y(" "+i(o.$t("cronTask.noTemplate")),1)],2)]),_.value.linkTemplate?(p(),g("div",Oa,[de(e("select",{"onUpdate:modelValue":h[6]||(h[6]=V=>_.value.templateId=V),class:"form-select"},[e("option",Ba,i(o.$t("cronTask.selectTemplate")),1),(p(!0),g(ge,null,ve(f.value,V=>(p(),g("option",{key:V.id,value:V.id},i(V.name),9,Wa))),128))],512),[[ut,_.value.templateId]]),e("div",ja,i(o.$t("cronTask.templateHelpText")),1)])):q("",!0)]),(y=o.task)!=null&&y.createTime?(p(),g("div",Ha,[e("div",za,[e("span",Ja,i(o.$t("cronTask.createTime"))+":",1),e("span",Ga,i(X(o.task.createTime)),1)])])):q("",!0),(K=o.task)!=null&&K.updateTime?(p(),g("div",Xa,[e("div",Ka,[e("span",Qa,i(o.$t("cronTask.updateTime"))+":",1),e("span",Ya,i(X(o.task.updateTime)),1)])])):q("",!0)],32)]),e("div",Za,[e("button",{type:"button",class:"cancel-btn",onClick:h[7]||(h[7]=V=>o.$emit("update:modelValue",!1))},i(o.$t("common.cancel")),1),e("button",{type:"button",class:"save-btn",onClick:G,disabled:T.value},[T.value?(p(),ue(l(P),{key:0,icon:"carbon:loading",class:"loading-icon"})):q("",!0),Y(" "+i((U=s.task)!=null&&U.id?o.$t("common.save"):o.$t("common.create")),1)],8,el)])])])):q("",!0)]}),_:1})]))}}),nl=ye(tl,[["__scopeId","data-v-5b32448e"]]),sl={class:"modal-header"},ol={class:"header-actions"},al={class:"modal-content"},ll={key:0,class:"loading-container"},il={key:1,class:"empty-container"},cl={key:2,class:"task-list"},rl=["onClick"],ul={class:"task-main"},dl={class:"task-info"},pl={class:"task-header"},hl={class:"task-name"},gl={class:"task-description"},ml={class:"task-time"},vl=["onClick"],fl=["onClick","disabled","title"],bl=["onClick","title"],kl={class:"dropdown-menu"},_l=["onClick"],$l=["onClick","disabled"],Pl=["onClick","disabled"],Cl={class:"confirm-header"},Sl={class:"confirm-content"},yl={class:"confirm-actions"},El=["disabled"],wl={class:"confirm-header"},Tl={class:"confirm-content"},Il={class:"create-options"},Dl={class:"option-content"},xl={class:"option-title"},Rl={class:"option-desc"},Al={class:"option-content"},Ml={class:"option-title"},Nl={class:"option-desc"},Ul={class:"confirm-actions"},Ll=Ce({__name:"index",props:{modelValue:{type:Boolean,required:!0}},emits:["update:modelValue"],setup(w,{emit:n}){const s=lt(),u=it(),T=mt(),{t:f}=Ie(),_=w,x=n,F=D([]),$=D(!1),B=D(null),X=D(null),G=D(null),o=D(null),h=D(!1),y=D(null),K=D(!1),U=D(null),V=D(!1),O=c=>{c.target===c.currentTarget&&x("update:modelValue",!1)},Q=async()=>{$.value=!0;try{F.value=await we.getAllCronTasks()}catch(c){console.error("Failed to load cron tasks:",c),T.error(`Failed to load tasks: ${c instanceof Error?c.message:String(c)}`)}finally{$.value=!1}},ce=async c=>{B.value=c;try{const k=F.value.find(t=>t.id===c);if(!k){console.error("Task not found:",c);return}x("update:modelValue",!1);const I=Date.now().toString();await s.push({name:"direct",params:{id:I}}),await new Promise(t=>setTimeout(t,100));const a=Te.prepareTaskExecution(k);a.useTemplate&&a.planData?u.emitPlanExecutionRequested(a.planData):a.taskContent&&u.setTask(a.taskContent)}catch(k){console.error("Failed to execute task:",k),T.error(`Execution failed: ${k instanceof Error?k.message:String(k)}`)}finally{B.value=null}},be=c=>{y.value={...c},h.value=!0,o.value=null},C=async c=>{try{await Te.saveTask(c),await Q(),h.value=!1,T.success("Task saved successfully")}catch(k){console.error("Failed to save task:",k),T.error(`Save failed: ${k instanceof Error?k.message:String(k)}`)}},S=c=>{U.value=c,K.value=!0},L=async()=>{var c;if((c=U.value)!=null&&c.id){X.value=U.value.id;try{await Te.deleteTask(U.value.id),await Q(),K.value=!1,U.value=null,T.success("Task deleted successfully")}catch(k){console.error("Failed to delete task:",k),T.error(`Delete failed: ${k instanceof Error?k.message:String(k)}`)}finally{X.value=null}}},R=()=>{K.value=!1,U.value=null},E=c=>{o.value=o.value===c?null:c},A=async c=>{if(c.id){G.value=c.id;try{await Te.toggleTaskStatus(c),await Q(),o.value=null,T.success(`Task ${c.status===0?"disabled":"enabled"} successfully`)}catch(k){console.error("Failed to toggle task status:",k),T.error(`Status toggle failed: ${k instanceof Error?k.message:String(k)}`)}finally{G.value=null}}},ee=async c=>{try{await navigator.clipboard.writeText(c),T.success("Cron expression copied successfully")}catch(k){T.error(`Copy failed: ${k instanceof Error?k.message:String(k)}`)}},se=()=>{V.value=!0},me=()=>{V.value=!1;try{x("update:modelValue",!1);const c=f("cronTask.template");u.setTaskToInput(c);const k=Date.now().toString();s.push({name:"direct",params:{id:k}})}catch(c){console.error("Error in createWithJmanus:",c),T.error(`Creation failed: ${c instanceof Error?c.message:String(c)}`)}},ke=()=>{V.value=!1,y.value={cronName:"",cronTime:"",planDesc:"",status:0,planTemplateId:""},h.value=!0},re=()=>{V.value=!1},v=c=>{const k=c.target;!k.closest(".action-dropdown")&&!k.closest(".dropdown-menu")&&(o.value=null)};return Se(()=>{document.addEventListener("click",v,!0)}),De(()=>{document.removeEventListener("click",v,!0)}),$e(()=>_.modelValue,c=>{c&&Q()}),(c,k)=>(p(),g(ge,null,[(p(),ue(Ne,{to:"body"},[b(xe,{name:"modal"},{default:Re(()=>[w.modelValue?(p(),g("div",{key:0,class:"modal-overlay",onClick:O},[e("div",{class:"modal-container",onClick:k[3]||(k[3]=ie(()=>{},["stop"]))},[e("div",sl,[e("h3",null,i(c.$t("cronTask.title")),1),e("div",ol,[e("button",{class:"add-task-btn",onClick:[se,k[0]||(k[0]=ie(()=>{},["stop"]))]},[b(l(P),{icon:"carbon:add"}),Y(" "+i(c.$t("cronTask.addTask")),1)]),e("button",{class:"close-btn",onClick:k[1]||(k[1]=I=>c.$emit("update:modelValue",!1))},[b(l(P),{icon:"carbon:close"})])])]),e("div",al,[$.value?(p(),g("div",ll,[b(l(P),{icon:"carbon:loading",class:"loading-icon"}),e("span",null,i(c.$t("common.loading")),1)])):F.value.length===0?(p(),g("div",il,[b(l(P),{icon:"carbon:time",class:"empty-icon"}),e("span",null,i(c.$t("cronTask.noTasks")),1)])):(p(),g("div",cl,[(p(!0),g(ge,null,ve(F.value,I=>(p(),g("div",{key:I.id||"",class:"task-item",onClick:a=>be(I)},[e("div",ul,[e("div",dl,[e("div",pl,[e("div",hl,i(I.cronName),1),e("div",{class:te(["task-status-badge",I.status===0?"active":"inactive"])},[b(l(P),{icon:I.status===0?"carbon:checkmark-filled":"carbon:pause-filled"},null,8,["icon"]),e("span",null,i(I.status===0?c.$t("cronTask.active"):c.$t("cronTask.inactive")),1)],2)]),e("div",gl,i(I.planDesc),1),e("div",ml,[b(l(P),{icon:"carbon:time"}),e("span",{class:"cron-readable",style:{cursor:"pointer"},onClick:ie(a=>ee(I.cronTime),["stop"])},i(I.cronTime),9,vl)])])]),e("div",{class:"task-actions",onClick:k[2]||(k[2]=ie(()=>{},["stop"]))},[e("button",{class:"action-btn execute-btn",onClick:a=>ce(I.id),disabled:B.value===I.id,title:c.$t("cronTask.executeOnce")},[b(l(P),{icon:B.value===I.id?"carbon:loading":"carbon:play-filled"},null,8,["icon"]),Y(" "+i(c.$t("cronTask.executeOnce")),1)],8,fl),e("div",{class:te(["action-dropdown",{active:o.value===I.id}])},[e("button",{class:"action-btn dropdown-btn",onClick:a=>E(I.id),title:c.$t("cronTask.operations")},[b(l(P),{icon:"carbon:overflow-menu-horizontal"}),Y(" "+i(c.$t("cronTask.operations")),1)],8,bl),de(e("div",kl,[e("button",{class:"dropdown-item edit-btn",onClick:a=>be(I)},[b(l(P),{icon:"carbon:edit"}),Y(" "+i(c.$t("cronTask.edit")),1)],8,_l),e("button",{class:"dropdown-item toggle-btn",onClick:a=>A(I),disabled:G.value===I.id},[b(l(P),{icon:G.value===I.id?"carbon:loading":I.status===0?"carbon:pause-filled":"carbon:play-filled"},null,8,["icon"]),Y(" "+i(I.status===0?c.$t("cronTask.disable"):c.$t("cronTask.enable")),1)],8,$l),e("button",{class:"dropdown-item delete-btn",onClick:a=>S(I),disabled:X.value===I.id},[b(l(P),{icon:X.value===I.id?"carbon:loading":"carbon:trash-can"},null,8,["icon"]),Y(" "+i(c.$t("cronTask.delete")),1)],8,Pl)],512),[[dt,o.value===I.id]])],2)])],8,rl))),128))]))])])])):q("",!0)]),_:1})])),b(nl,{modelValue:h.value,"onUpdate:modelValue":k[4]||(k[4]=I=>h.value=I),task:y.value,onSave:C},null,8,["modelValue","task"]),(p(),ue(Ne,{to:"body"},[b(xe,{name:"modal"},{default:Re(()=>{var I,a,t,r;return[K.value?(p(),g("div",{key:0,class:"modal-overlay",onClick:R},[e("div",{class:"confirm-modal",onClick:k[5]||(k[5]=ie(()=>{},["stop"]))},[e("div",Cl,[b(l(P),{icon:"carbon:warning",class:"warning-icon"}),e("h3",null,i(c.$t("cronTask.deleteConfirm")),1)]),e("div",Sl,[e("p",null,i(c.$t("cronTask.deleteConfirmMessage",{taskName:((I=U.value)==null?void 0:I.cronName)||((a=U.value)==null?void 0:a.planDesc)||""})),1)]),e("div",yl,[e("button",{class:"confirm-btn cancel-btn",onClick:R},i(c.$t("common.cancel")),1),e("button",{class:"confirm-btn delete-btn",onClick:L,disabled:X.value===((t=U.value)==null?void 0:t.id)},[b(l(P),{icon:X.value===((r=U.value)==null?void 0:r.id)?"carbon:loading":"carbon:trash-can"},null,8,["icon"]),Y(" "+i(c.$t("cronTask.delete")),1)],8,El)])])])):q("",!0)]}),_:1})])),(p(),ue(Ne,{to:"body"},[b(xe,{name:"modal"},{default:Re(()=>[V.value?(p(),g("div",{key:0,class:"modal-overlay",onClick:re},[e("div",{class:"confirm-modal create-options-modal",onClick:k[6]||(k[6]=ie(()=>{},["stop"]))},[e("div",wl,[b(l(P),{icon:"carbon:time",class:"create-icon"}),e("h3",null,i(c.$t("cronTask.createTask")),1)]),e("div",Tl,[e("p",null,i(c.$t("cronTask.selectCreateMethod")),1),e("div",Il,[e("button",{class:"create-option-btn jmanus-btn",onClick:me},[b(l(P),{icon:"carbon:ai-status"}),e("div",Dl,[e("span",xl,i(c.$t("cronTask.createWithJmanus")),1),e("span",Rl,i(c.$t("cronTask.createWithJmanusDesc")),1)])]),e("button",{class:"create-option-btn manual-btn",onClick:ke},[b(l(P),{icon:"carbon:edit"}),e("div",Al,[e("span",Ml,i(c.$t("cronTask.createManually")),1),e("span",Nl,i(c.$t("cronTask.createManuallyDesc")),1)])])])]),e("div",Ul,[e("button",{class:"confirm-btn cancel-btn",onClick:re},i(c.$t("common.cancel")),1)])])])):q("",!0)]),_:1})]))],64))}}),Vl=ye(Ll,[["__scopeId","data-v-f31a9ce7"]]),ql={class:"direct-page"},Fl={class:"direct-chat"},Ol={class:"chat-header"},Bl={class:"header-actions"},Wl=["title"],jl=["title"],Hl={class:"chat-content"},zl=["title"],Jl={class:"message-content"},Gl=Ce({__name:"index",setup(w){const n=pt(),s=lt(),u=it(),{t:T}=Ie(),{message:f}=vt(),_=D(""),x=D(""),F=D(),$=D(),B=D(),X=D(!1),G=D(!1),o=D(null),h=D(!1),y=D(50),K=D(!1),U=D(0),V=D(0);Se(()=>{if(console.log("[Direct] onMounted called"),console.log("[Direct] taskStore.currentTask:",u.currentTask),console.log("[Direct] taskStore.hasUnprocessedTask():",u.hasUnprocessedTask()),oe.setEventCallbacks({onPlanUpdate:c=>{console.log("[Direct] Plan update event received for rootPlanId:",c),C(c)&&(console.log("[Direct] Processing plan update for current rootPlanId:",c),$.value&&typeof $.value.handlePlanUpdate=="function"?(console.log("[Direct] Calling chatRef.handlePlanUpdate with rootPlanId:",c),$.value.handlePlanUpdate(c)):console.warn("[Direct] chatRef.handlePlanUpdate method not available"),F.value&&typeof F.value.updateDisplayedPlanProgress=="function"?(console.log("[Direct] Calling rightPanelRef.updateDisplayedPlanProgress with rootPlanId:",c),F.value.updateDisplayedPlanProgress(c)):console.warn("[Direct] rightPanelRef.updateDisplayedPlanProgress method not available"))},onPlanCompleted:c=>{if(console.log("[Direct] Plan completed event received for rootPlanId:",c),!!C(c)){if(console.log("[Direct] Processing plan completion for current rootPlanId:",c),$.value&&typeof $.value.handlePlanCompleted=="function"){const k=oe.getCachedPlanRecord(c);console.log("[Direct] Calling chatRef.handlePlanCompleted with details:",k),$.value.handlePlanCompleted(k??{planId:c})}else console.warn("[Direct] chatRef.handlePlanCompleted method not available");o.value=null,console.log("[Direct] Cleared currentRootPlanId after plan completion")}},onDialogRoundStart:c=>{console.log("[Direct] Dialog round start event received for rootPlanId:",c),o.value=c,console.log("[Direct] Set currentRootPlanId to:",c),$.value&&typeof $.value.handleDialogRoundStart=="function"?(console.log("[Direct] Calling chatRef.handleDialogRoundStart with planId:",c),$.value.handleDialogRoundStart(c)):console.warn("[Direct] chatRef.handleDialogRoundStart method not available")},onChatInputClear:()=>{console.log("[Direct] Chat input clear event received"),L()},onChatInputUpdateState:c=>{if(console.log("[Direct] Chat input update state event received for rootPlanId:",c),!C(c,!0))return;const k=oe.getCachedUIState(c);k&&E(k.enabled,k.placeholder)},onPlanError:c=>{$.value.handlePlanError(c)}}),console.log("[Direct] Event callbacks registered to planExecutionManager"),m.loadPlanTemplateList(),u.hasUnprocessedTask()&&u.currentTask){const c=u.currentTask.prompt;console.log("[Direct] Found unprocessed task from store:",c),u.markTaskAsProcessed(),ne(()=>{$.value&&typeof $.value.handleSendMessage=="function"?(console.log("[Direct] Directly executing task via chatRef.handleSendMessage:",c),$.value.handleSendMessage(c)):(console.warn("[Direct] chatRef.handleSendMessage method not available, falling back to prompt"),_.value=c)})}else{const c=u.getAndClearTaskToInput();c?(x.value=c,console.log("[Direct] Setting inputOnlyContent for input only:",x.value)):(_.value=n.query.prompt||"",console.log("[Direct] Received task from URL:",_.value),console.log("[Direct] No unprocessed task in store"))}const v=localStorage.getItem("directPanelWidth");v&&(y.value=parseFloat(v)),console.log("[Direct] Final prompt value:",_.value),x.value&&ne(()=>{B.value&&typeof B.value.setInputValue=="function"&&(B.value.setInputValue(x.value),console.log("[Direct] Set input value:",x.value),x.value="")}),window.addEventListener("plan-execution-requested",c=>{console.log("[DirectView] Received plan-execution-requested event:",c.detail),re(c.detail)})}),$e(()=>u.currentTask,v=>{if(console.log("[Direct] Watch taskStore.currentTask triggered, newTask:",v),v&&!v.processed){const c=v.prompt;u.markTaskAsProcessed(),console.log("[Direct] Received new task from store:",c),ne(()=>{$.value&&typeof $.value.handleSendMessage=="function"?(console.log("[Direct] Directly executing new task via chatRef.handleSendMessage:",c),$.value.handleSendMessage(c)):console.warn("[Direct] chatRef.handleSendMessage method not available for new task")})}else console.log("[Direct] Task is null or already processed, ignoring")},{immediate:!1}),$e(()=>_.value,(v,c)=>{console.log("[Direct] prompt value changed from:",c,"to:",v)},{immediate:!1}),$e(()=>u.taskToInput,v=>{console.log("[Direct] Watch taskStore.taskToInput triggered, newTaskToInput:",v),v&&v.trim()&&(console.log("[Direct] Setting input value from taskToInput:",v),ne(()=>{B.value&&typeof B.value.setInputValue=="function"&&(B.value.setInputValue(v.trim()),console.log("[Direct] Input value set from taskToInput watch:",v.trim()),u.getAndClearTaskToInput())}))},{immediate:!1}),De(()=>{console.log("[Direct] onUnmounted called, cleaning up resources"),o.value=null,oe.cleanup(),document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",ce),window.removeEventListener("plan-execution-requested",v=>{re(v.detail)})});const O=v=>{K.value=!0,U.value=v.clientX,V.value=y.value,document.addEventListener("mousemove",Q),document.addEventListener("mouseup",ce),document.body.style.cursor="col-resize",document.body.style.userSelect="none",v.preventDefault()},Q=v=>{if(!K.value)return;const c=window.innerWidth,I=(v.clientX-U.value)/c*100;let a=V.value+I;a=Math.max(20,Math.min(80,a)),y.value=a},ce=()=>{K.value=!1,document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",ce),document.body.style.cursor="",document.body.style.userSelect="",localStorage.setItem("directPanelWidth",y.value.toString())},be=()=>{y.value=50,localStorage.setItem("directPanelWidth","50")},C=(v,c=!1)=>!o.value||v===o.value||c&&(v==="ui-state"||v==="error")?!0:(console.log("[Direct] Ignoring event for non-current rootPlanId:",v,"current:",o.value),!1),S=v=>{console.log("[DirectView] Send message from input:",v),$.value&&typeof $.value.handleSendMessage=="function"?(console.log("[DirectView] Calling chatRef.handleSendMessage:",v),$.value.handleSendMessage(v)):console.warn("[DirectView] chatRef.handleSendMessage method not available")},L=()=>{console.log("[DirectView] Input cleared"),B.value&&typeof B.value.clear=="function"&&B.value.clear()},R=()=>{console.log("[DirectView] Input focused")},E=(v,c)=>{console.log("[DirectView] Input state updated:",v,c),G.value=!v},A=(v,c)=>{console.log("[DirectView] Step selected:",v,c),F.value&&typeof F.value.handleStepSelected=="function"?(console.log("[DirectView] Forwarding step selection to right panel:",v,c),F.value.handleStepSelected(v,c)):console.warn("[DirectView] rightPanelRef.handleStepSelected method not available")},ee=(v,c,k,I)=>{console.log("[DirectView] Sub plan step selected:",{parentPlanId:v,subPlanId:c,stepIndex:k,subStepIndex:I}),F.value&&typeof F.value.handleSubPlanStepSelected=="function"?(console.log("[DirectView] Forwarding sub plan step selection to right panel:",{parentPlanId:v,subPlanId:c,stepIndex:k,subStepIndex:I}),F.value.handleSubPlanStepSelected(v,c,k,I)):console.warn("[DirectView] rightPanelRef.handleSubPlanStepSelected method not available")},se=()=>{console.log("[DirectView] Plan mode button clicked"),m.toggleSidebar(),console.log("[DirectView] Sidebar toggled, isCollapsed:",m.isCollapsed)},me=()=>{s.push("/home")},ke=()=>{s.push("/configs")},re=async v=>{var k,I,a,t;if(console.log("[DirectView] Plan execution requested:",v),X.value){console.log("[DirectView] Plan execution already in progress, ignoring request");return}X.value=!0;let c=!1;$.value&&typeof $.value.addMessage=="function"?(console.log("[DirectView] Calling chatRef.addMessage for plan execution:",v.title),$.value.addMessage("user",v.title),c=!0):console.warn("[DirectView] chatRef.addMessage method not available");try{const r=((k=v.planData)==null?void 0:k.planTemplateId)||((I=v.planData)==null?void 0:I.id)||((a=v.planData)==null?void 0:a.planId);if(!r)throw new Error("没有找到计划模板ID");console.log("[Direct] Executing plan with templateId:",r,"params:",v.params),console.log("[Direct] About to call PlanActApiService.executePlan");let d;if((t=v.params)!=null&&t.trim()?(console.log("[Direct] Calling executePlan with params:",v.params.trim()),d=await Ae.executePlan(r,v.params.trim())):(console.log("[Direct] Calling executePlan without params"),d=await Ae.executePlan(r)),console.log("[Direct] Plan execution API response:",d),d.planId)console.log("[Direct] Got planId from response:",d.planId,"starting plan execution"),o.value=d.planId,console.log("[Direct] Set currentRootPlanId to:",d.planId),console.log("[Direct] Delegating plan execution to planExecutionManager"),oe.handlePlanExecutionRequested(d.planId,v.title);else throw console.error("[Direct] No planId in response:",d),new Error("执行计划失败:未返回有效的计划ID")}catch(r){console.error("[Direct] Plan execution failed:",r),console.error("[Direct] Error details:",{message:r.message,stack:r.stack}),o.value=null,$.value&&typeof $.value.addMessage=="function"?(console.log("[Direct] Adding error messages to chat"),c||$.value.addMessage("user",v.title),$.value.addMessage("assistant",`执行计划失败: ${r.message||"未知错误"}`,{thinking:void 0})):(console.error("[Direct] Chat ref not available, showing alert"),alert(`执行计划失败: ${r.message||"未知错误"}`))}finally{console.log("[Direct] Plan execution finished, resetting isExecutingPlan flag"),X.value=!1}};return(v,c)=>(p(),g("div",ql,[e("div",Fl,[b(fn,{onPlanExecutionRequested:re}),e("div",{class:"left-panel",style:Ue({width:y.value+"%"})},[e("div",Ol,[e("button",{class:"back-button",onClick:me},[b(l(P),{icon:"carbon:arrow-left"})]),e("h2",null,i(v.$t("conversation")),1),e("div",Bl,[b(gt),e("button",{class:"config-button",onClick:ke,title:v.$t("direct.configuration")},[b(l(P),{icon:"carbon:settings-adjust",width:"20"})],8,Wl),e("button",{class:"cron-task-btn",onClick:c[0]||(c[0]=k=>h.value=!0),title:v.$t("cronTask.title")},[b(l(P),{icon:"carbon:alarm",width:"20"})],8,jl)])]),e("div",Hl,[b(pa,{ref_key:"chatRef",ref:$,mode:"direct","initial-prompt":_.value||"",onStepSelected:A,onSubPlanStepSelected:ee},null,8,["initial-prompt"])]),(p(),ue(_a,{key:v.$i18n.locale,ref_key:"inputRef",ref:B,disabled:G.value,placeholder:G.value?l(T)("input.waiting"):l(T)("input.placeholder"),"initial-value":_.value,onSend:S,onClear:L,onFocus:R,onUpdateState:E,onPlanModeClicked:se},null,8,["disabled","placeholder","initial-value"]))],4),e("div",{class:"panel-resizer",onMousedown:O,onDblclick:be,title:v.$t("direct.panelResizeHint")},c[2]||(c[2]=[e("div",{class:"resizer-line"},null,-1)]),40,zl),b(As,{ref_key:"rightPanelRef",ref:F,style:Ue({width:100-y.value+"%"})},null,8,["style"])]),b(Vl,{modelValue:h.value,"onUpdate:modelValue":c[1]||(c[1]=k=>h.value=k)},null,8,["modelValue"]),l(f).show?(p(),g("div",{key:0,class:te(["message-toast",l(f).type])},[e("div",Jl,[e("span",null,i(l(f).text),1)])],2)):q("",!0)]))}}),si=ye(Gl,[["__scopeId","data-v-ea79c7eb"]]);export{si as default}; diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BSRSmj5D.css b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Bve1G_0I.css similarity index 76% rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BSRSmj5D.css rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Bve1G_0I.css index 0bed525dba..a3ec3d9427 100644 --- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BSRSmj5D.css +++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Bve1G_0I.css @@ -1 +1 @@ -.switch[data-v-d484b4a3]{position:relative;display:inline-flex;align-items:center;cursor:pointer}.switch input[data-v-d484b4a3]{opacity:0;width:0;height:0}.switch .slider[data-v-d484b4a3]{position:relative;display:inline-block;width:40px;height:20px;background:#ea66661a;border:1px solid rgba(234,102,102,.2);border-radius:20px;transition:all .3s;flex-shrink:0;vertical-align:middle}.switch .slider[data-v-d484b4a3]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:1px;background:#ea6666;border-radius:50%;transition:all .3s}.switch .switch-label[data-v-d484b4a3]{margin-left:8px;font-size:14px;line-height:20px;height:20px;color:#fff9;transition:color .3s}.switch .checkbox-label[data-v-d484b4a3]{display:flex;align-items:center;gap:8px;cursor:pointer}.switch .checkbox-label input[type=checkbox][data-v-d484b4a3]{width:16px;height:16px}.switch input:checked+.slider[data-v-d484b4a3]{background:#667eea1a;border-color:#667eea33}.switch input:checked+.slider[data-v-d484b4a3]:before{transform:translate(20px);background:#667eea}.switch input:checked+.slider+.switch-label[data-v-d484b4a3]{color:#667eea}.switch input:not(:checked)+.slider+.switch-label[data-v-d484b4a3]{color:#ea6666}.config-panel[data-v-5e6536ac]{position:relative}.config-header[data-v-5e6536ac]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.config-header h2[data-v-5e6536ac]{margin:0;font-size:20px;font-weight:500}.config-actions[data-v-5e6536ac]{display:flex;gap:12px}.loading-container[data-v-5e6536ac]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffffb3}.loading-spinner[data-v-5e6536ac]{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #667eea;border-radius:50%;animation:spin-5e6536ac 1s linear infinite;margin-bottom:16px}@keyframes spin-5e6536ac{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.config-groups[data-v-5e6536ac]{display:flex;flex-direction:column;gap:32px}.config-group[data-v-5e6536ac]{background:#ffffff08;border-radius:12px;padding:24px;border:1px solid rgba(255,255,255,.1);transition:all .3s ease}.config-group[data-v-5e6536ac]:hover{background:#ffffff0d;border-color:#ffffff26}.group-header[data-v-5e6536ac]{display:flex;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.group-icon[data-v-5e6536ac]{font-size:20px;margin-right:12px;opacity:.8}.group-divider[data-v-5e6536ac]{flex:1;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.1) 0%,transparent 100%);margin-left:16px}.config-items[data-v-5e6536ac]{display:flex;flex-direction:column;gap:20px;padding:16px}.config-item[data-v-5e6536ac]{position:relative;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:16px;transition:all .3s ease}.config-item[data-v-5e6536ac]:hover{border-color:#ffffff26;background:#ffffff05}.config-item.modified[data-v-5e6536ac]{border-left:3px solid #f9a825}.config-item-content[data-v-5e6536ac]{padding:14px 16px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.config-item-content.vertical-layout[data-v-5e6536ac]{flex-direction:column;align-items:stretch;gap:12px}.config-item-content.vertical-layout .config-item-info[data-v-5e6536ac]{width:100%}.config-item-content.vertical-layout .config-control[data-v-5e6536ac]{width:100%;min-width:auto}.config-item-header[data-v-5e6536ac]{display:flex;flex-direction:column;gap:6px}.config-item-info[data-v-5e6536ac]{flex:1;min-width:0}.config-label[data-v-5e6536ac]{font-weight:500;color:#ffffffe6;margin-bottom:4px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.vertical-layout .config-label[data-v-5e6536ac]{margin-bottom:0;font-size:14px;line-height:1.4}.config-key[data-v-5e6536ac]{display:block;font-size:12px;color:#ffffff80;margin-bottom:6px;font-family:monospace;background:#ffffff0d;padding:2px 6px;border-radius:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vertical-layout .config-key[data-v-5e6536ac]{margin-bottom:0;display:inline-block;max-width:fit-content}.config-description[data-v-5e6536ac]{font-size:13px;color:#ffffffb3;margin:6px 0;line-height:1.4}.type-badge[data-v-5e6536ac]{font-size:12px;padding:2px 6px;border-radius:3px;color:#ffffffe6;font-weight:400}.type-badge.boolean[data-v-5e6536ac]{background:#2196f333;color:#90caf9}.type-badge.number[data-v-5e6536ac]{background:#4caf5033;color:#a5d6a7}.type-badge.string[data-v-5e6536ac]{background:#9c27b033;color:#ce93d8}.type-badge.select[data-v-5e6536ac]{background:#ff980033;color:#ffcc80}.modified-badge[data-v-5e6536ac]{background:#f9a82533;color:#ffcc80;font-size:12px;padding:2px 6px;border-radius:3px;font-weight:400}.range-info[data-v-5e6536ac]{font-size:12px;color:#fff9;background:#ffffff0d;padding:3px 8px;border-radius:4px;display:inline-block;margin-top:6px;font-family:monospace}.config-control[data-v-5e6536ac]{min-width:160px}.vertical-layout .config-control[data-v-5e6536ac]{min-width:auto;max-width:400px}.config-input[data-v-5e6536ac]{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:8px 12px;color:#ffffffe6;transition:all .3s}.config-input[data-v-5e6536ac]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.config-input[data-v-5e6536ac]::placeholder{color:#fff6}.config-input.number-input[data-v-5e6536ac]{font-family:monospace;text-align:right}.empty-state[data-v-5e6536ac]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffff80}.message-toast[data-v-5e6536ac]{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:8px;color:#fff;font-weight:500;z-index:1000;box-shadow:0 4px 12px #0000004d;transform:translate(100%);animation:slide-in-5e6536ac .3s ease-out forwards}.message-toast.success[data-v-5e6536ac]{background:#10b981}.message-toast.error[data-v-5e6536ac]{background:#ef4444}.message-fade-enter-active[data-v-5e6536ac],.message-fade-leave-active[data-v-5e6536ac]{transition:all .3s ease}.message-fade-enter-from[data-v-5e6536ac],.message-fade-leave-to[data-v-5e6536ac]{transform:translate(100%);opacity:0}@keyframes slide-in-5e6536ac{0%{transform:translate(100%)}to{transform:translate(0)}}.sub-group[data-v-5e6536ac]{margin-bottom:24px;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;background:#ffffff05}.sub-group-header[data-v-5e6536ac]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#ffffff0d;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .3s ease}.sub-group-header[data-v-5e6536ac]:hover{background:#ffffff14}.sub-group-info[data-v-5e6536ac]{display:flex;align-items:center;gap:8px}.sub-group-icon[data-v-5e6536ac]{font-size:14px}.sub-group-title[data-v-5e6536ac]{margin:0;font-size:14px;font-weight:500;color:#ffffffe6}.item-count[data-v-5e6536ac]{font-size:12px;color:#fff9;background:#ffffff1a;padding:2px 6px;border-radius:10px}.collapse-icon[data-v-5e6536ac]{font-size:12px;color:#fff9;transition:transform .3s ease}.collapse-icon.collapsed[data-v-5e6536ac]{transform:rotate(-90deg)}.config-stats[data-v-5e6536ac]{margin-top:24px;color:#fff9}.header-left[data-v-5e6536ac],.header-right[data-v-5e6536ac]{display:flex;align-items:center}.config-stats[data-v-5e6536ac]{display:flex;margin-left:16px;gap:12px}.stat-item[data-v-5e6536ac]{display:flex;align-items:center;background:#ffffff0d;padding:4px 8px;border-radius:4px;font-size:12px}.stat-label[data-v-5e6536ac]{color:#fff9;margin-right:4px}.stat-value[data-v-5e6536ac]{color:#ffffffe6;font-weight:500}.stat-value.modified[data-v-5e6536ac]{color:#f9a825}.search-box[data-v-5e6536ac]{position:relative;margin-right:16px}.search-input[data-v-5e6536ac]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:6px 12px 6px 32px;color:#ffffffe6;width:220px;font-size:14px;transition:all .3s}.search-input[data-v-5e6536ac]:focus{outline:none;border-color:#667eea80;background:#ffffff14;width:260px}.search-input[data-v-5e6536ac]::placeholder{color:#fff6}.search-icon[data-v-5e6536ac]{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.6}.toggle-btn[data-v-5e6536ac]{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#ffffffb3;padding:6px 12px;margin-right:12px;font-size:14px;cursor:pointer;transition:all .3s}.toggle-btn[data-v-5e6536ac]:hover{background:#ffffff26;color:#ffffffe6}.toggle-btn.active[data-v-5e6536ac]{background:#667eea33;border-color:#667eea80;color:#667eea}.group-info[data-v-5e6536ac]{display:flex;align-items:center}.group-actions[data-v-5e6536ac]{display:flex;gap:8px;margin-left:auto;margin-right:16px}.reset-btn[data-v-5e6536ac]{background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:4px;color:#ef5350;padding:4px 8px;font-size:12px;cursor:pointer;transition:all .3s}.reset-btn[data-v-5e6536ac]:hover:not(:disabled){background:#f4433633;border-color:#f4433680}.reset-btn[data-v-5e6536ac]:disabled{opacity:.5;cursor:not-allowed}.import-export-actions[data-v-5e6536ac]{display:flex;gap:8px;margin-right:16px}.action-btn[data-v-5e6536ac]{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fffc;padding:6px 10px;font-size:12px;cursor:pointer;transition:all .3s;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.action-btn[data-v-5e6536ac]:hover{background:#ffffff1f;color:#fffffff2;border-color:#ffffff40}.config-config[data-v-c91688e7]{height:100%;overflow:hidden;display:flex;flex-direction:column}.panel-header[data-v-c91688e7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1)}.panel-actions[data-v-c91688e7]{display:flex;gap:12px}[data-v-c91688e7] .panel-header h2{margin-bottom:0!important}.modal-overlay[data-v-baaf1c89]{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}.modal-container[data-v-baaf1c89]{background:linear-gradient(135deg,#667eea1a,#764ba226);border:1px solid rgba(255,255,255,.1);border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0006}.modal-header[data-v-baaf1c89]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h3[data-v-baaf1c89]{margin:0;font-size:18px;font-weight:500;color:#ffffffe6}.close-btn[data-v-baaf1c89]{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-baaf1c89]:hover{color:#ffffffe6}.modal-content[data-v-baaf1c89]{padding:24px}.modal-footer[data-v-baaf1c89]{padding:20px 24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:flex-end;gap:12px}.cancel-btn[data-v-baaf1c89],.confirm-btn[data-v-baaf1c89]{padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .3s}.cancel-btn[data-v-baaf1c89]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fffc}.cancel-btn[data-v-baaf1c89]:hover{background:#ffffff1a}.confirm-btn[data-v-baaf1c89]{background:#667eea1a;border:1px solid rgba(102,126,234,.2);color:#667eea}.confirm-btn[data-v-baaf1c89]:hover{background:#667eea33}.modal-enter-active[data-v-baaf1c89],.modal-leave-active[data-v-baaf1c89]{transition:opacity .3s ease}.modal-enter-from[data-v-baaf1c89],.modal-leave-to[data-v-baaf1c89]{opacity:0}.tool-selection-content[data-v-79f6a572]{min-height:400px;max-height:600px;overflow-y:auto}.tool-controls[data-v-79f6a572]{display:flex;gap:12px;margin-bottom:16px;padding:12px;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.search-container[data-v-79f6a572]{flex:1}.search-input[data-v-79f6a572]{width:100%;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff0d;color:#ffffffe6;font-size:14px;transition:all .3s}.search-input[data-v-79f6a572]:focus{outline:none;border-color:#667eea80;background:#ffffff1a}.search-input[data-v-79f6a572]::placeholder{color:#ffffff80}.sort-container[data-v-79f6a572]{min-width:140px}.sort-select[data-v-79f6a572]{width:100%;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff0d;color:#ffffffe6;font-size:14px;cursor:pointer}.tool-summary[data-v-79f6a572]{margin-bottom:16px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}.summary-text[data-v-79f6a572]{color:#ffffffb3;font-size:13px}.tool-group[data-v-79f6a572]{border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;margin-bottom:8px}.tool-group-header[data-v-79f6a572]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#ffffff0d;cursor:pointer;transition:all .3s;border-bottom:1px solid rgba(255,255,255,.1)}.tool-group-header[data-v-79f6a572]:hover{background:#ffffff14}.tool-group-header.collapsed[data-v-79f6a572]{border-bottom:none}.group-title-area[data-v-79f6a572]{display:flex;align-items:center;gap:8px;flex:1}.collapse-icon[data-v-79f6a572]{color:#fff9;transition:transform .3s}.group-icon[data-v-79f6a572]{color:#fffc}.group-name[data-v-79f6a572]{font-weight:500;color:#ffffffe6}.group-count[data-v-79f6a572]{color:#fff9;font-size:13px}.group-actions[data-v-79f6a572]{display:flex;align-items:center}.group-enable-all[data-v-79f6a572]{display:flex;align-items:center;gap:6px;cursor:pointer;color:#fffc;font-size:13px}.group-enable-checkbox[data-v-79f6a572]{cursor:pointer}.tool-group-content[data-v-79f6a572]{max-height:300px;overflow-y:auto;transition:all .3s}.tool-group-content.collapsed[data-v-79f6a572]{max-height:0;overflow:hidden}.tool-selection-item[data-v-79f6a572]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05);transition:background-color .3s}.tool-selection-item[data-v-79f6a572]:hover{background:#ffffff08}.tool-selection-item[data-v-79f6a572]:last-child{border-bottom:none}.tool-info[data-v-79f6a572]{flex:1}.tool-selection-name[data-v-79f6a572]{font-weight:500;color:#ffffffe6;margin-bottom:4px}.tool-selection-desc[data-v-79f6a572]{color:#fff9;font-size:13px;line-height:1.4}.tool-actions[data-v-79f6a572]{margin-left:12px}.tool-enable-switch[data-v-79f6a572]{position:relative;display:inline-block;width:44px;height:24px;cursor:pointer}.tool-enable-checkbox[data-v-79f6a572]{opacity:0;width:0;height:0}.tool-enable-slider[data-v-79f6a572]{position:absolute;top:0;left:0;right:0;bottom:0;background:#fff3;border-radius:24px;transition:all .3s}.tool-enable-slider[data-v-79f6a572]:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .3s}.tool-enable-checkbox:checked+.tool-enable-slider[data-v-79f6a572]{background:#667eeacc}.tool-enable-checkbox:checked+.tool-enable-slider[data-v-79f6a572]:before{transform:translate(20px)}.empty-state[data-v-79f6a572]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffff80}.empty-icon[data-v-79f6a572]{font-size:48px;margin-bottom:16px;opacity:.6}.agent-layout[data-v-0eaff650]{display:flex;gap:30px;flex:1;min-height:0}.agent-list[data-v-0eaff650]{width:320px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-0eaff650]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-0eaff650]{margin:0;font-size:18px}.agent-count[data-v-0eaff650]{color:#fff9;font-size:14px}.agents-container[data-v-0eaff650]{flex:1;overflow-y:auto;margin-bottom:16px}.loading-state[data-v-0eaff650]{display:flex;align-items:center;gap:8px;justify-content:center;padding:40px 0;color:#fff9}.empty-state[data-v-0eaff650]{text-align:center;padding:60px 20px;color:#fff9}.empty-icon[data-v-0eaff650]{font-size:48px;margin-bottom:16px;opacity:.4}.empty-tip[data-v-0eaff650]{font-size:14px;margin-top:8px}.agent-card[data-v-0eaff650]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease}.agent-card[data-v-0eaff650]:hover{background:#ffffff0d;border-color:#fff3}.agent-card.active[data-v-0eaff650]{border-color:#667eea;background:#667eea1a}.agent-card-header[data-v-0eaff650]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.agent-name[data-v-0eaff650]{font-weight:500;font-size:16px}.agent-desc[data-v-0eaff650]{color:#ffffffb3;font-size:14px;line-height:1.4;margin-bottom:12px}.agent-model[data-v-0eaff650]{display:flex;flex-wrap:wrap;gap:6px}.model-tag[data-v-0eaff650]{display:inline-block;padding:4px 8px;margin-bottom:10px;background:#b566ea33;border-radius:4px;font-size:12px;color:#a8b3ff}.agent-tools[data-v-0eaff650]{display:flex;flex-wrap:wrap;gap:6px}.tool-tag[data-v-0eaff650]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.tool-more[data-v-0eaff650]{color:#ffffff80;font-size:12px;padding:4px 8px}.no-tools-indicator[data-v-0eaff650]{color:#fff6;font-size:12px;font-style:italic}.add-btn[data-v-0eaff650]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-0eaff650]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.agent-detail[data-v-0eaff650]{flex:1;background:#ffffff08;border-radius:12px;padding:24px;overflow-y:auto}.no-selection[data-v-0eaff650]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff9}.placeholder-icon[data-v-0eaff650]{font-size:64px;margin-bottom:24px;opacity:.3}.detail-header[data-v-0eaff650]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-0eaff650]{margin:0;font-size:20px}.detail-actions[data-v-0eaff650]{display:flex;gap:12px}.form-section[data-v-0eaff650]{margin-bottom:32px}.form-item[data-v-0eaff650]{margin-bottom:20px}.form-item label[data-v-0eaff650]{display:block;margin-bottom:8px;color:#ffffffe6;font-weight:500}.form-item input[data-v-0eaff650],.form-item textarea[data-v-0eaff650]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;transition:all .3s ease}.form-item input[data-v-0eaff650]:focus,.form-item textarea[data-v-0eaff650]:focus{border-color:#667eea;outline:none;background:#ffffff14}.form-item input[data-v-0eaff650]::placeholder,.form-item textarea[data-v-0eaff650]::placeholder{color:#fff6}.form-item textarea[data-v-0eaff650]{resize:vertical;min-height:80px;line-height:1.5}.required[data-v-0eaff650]{color:#ff6b6b}.model-section h4[data-v-0eaff650],.tools-section h4[data-v-0eaff650]{margin:0 0 20px;font-size:18px;color:#ffffffe6}.section-header[data-v-0eaff650]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header span[data-v-0eaff650]{font-weight:500;color:#fffc}.tools-grid[data-v-0eaff650]{display:flex;flex-direction:column;gap:8px}.tool-item[data-v-0eaff650]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;transition:all .3s ease}.tool-item.assigned[data-v-0eaff650]{border-color:#667eea4d;background:#667eea1a}.tool-info[data-v-0eaff650]{flex:1}.tool-info .tool-name[data-v-0eaff650]{display:block;font-weight:500;margin-bottom:4px}.tool-info .tool-desc[data-v-0eaff650]{font-size:12px;color:#fff9;line-height:1.3}.no-tools[data-v-0eaff650]{display:flex;align-items:center;justify-content:center;gap:8px;padding:40px;color:#fff6;font-style:italic}.action-btn[data-v-0eaff650]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-0eaff650]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-0eaff650]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-0eaff650]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-0eaff650]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-0eaff650]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-0eaff650]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-0eaff650]{padding:6px 12px;font-size:12px}.modal-form[data-v-0eaff650]{display:flex;flex-direction:column;gap:16px}.delete-confirm[data-v-0eaff650]{text-align:center;padding:20px 0}.delete-confirm p[data-v-0eaff650]{color:#fffc;margin:8px 0}.delete-confirm .warning-text[data-v-0eaff650]{color:#fff9;font-size:14px}.warning-icon[data-v-0eaff650]{font-size:48px;color:#ffa726;margin-bottom:16px}.confirm-btn[data-v-0eaff650],.cancel-btn[data-v-0eaff650]{padding:10px 20px;border-radius:6px;cursor:pointer;transition:all .3s ease}.confirm-btn.danger[data-v-0eaff650],.cancel-btn.danger[data-v-0eaff650]{background:#ea666633;border:1px solid rgba(234,102,102,.3);color:#ff8a8a}.confirm-btn.danger[data-v-0eaff650]:hover,.cancel-btn.danger[data-v-0eaff650]:hover{background:#ea66664d}.cancel-btn[data-v-0eaff650]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff}.cancel-btn[data-v-0eaff650]:hover{background:#ffffff1a}.error-toast[data-v-0eaff650],.success-toast[data-v-0eaff650]{position:fixed;top:20px;right:20px;display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;color:#fff;cursor:pointer;z-index:1000;animation:slideIn-0eaff650 .3s ease}.error-toast[data-v-0eaff650]{background:#ea6666e6;border:1px solid rgba(234,102,102,.5)}.success-toast[data-v-0eaff650]{background:#66ea66e6;border:1px solid rgba(102,234,102,.5)}@keyframes slideIn-0eaff650{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.model-chooser[data-v-0eaff650]{position:relative;display:inline-block}.model-btn[data-v-0eaff650]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:1.5px solid #667eea;border-radius:8px;color:#8da2fb;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:600;outline:none}.model-btn[data-v-0eaff650]:hover{background:#667eea26;border-color:#7c9eff;color:#a3bffa;box-shadow:0 0 15px #667eea33}.model-btn[data-v-0eaff650]:focus{box-shadow:0 0 0 3px #667eea80}.current-model[data-v-0eaff650]{color:inherit;font-weight:600;min-width:40px;text-align:left;text-shadow:none}.chevron[data-v-0eaff650]{transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.9;filter:none}.model-dropdown[data-v-0eaff650]{position:absolute;top:100%;left:0;z-index:9999;margin-top:4px;background:linear-gradient(135deg,#282832f2,#1e1e28f2);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(102,126,234,.3);border-radius:8px;box-shadow:0 8px 32px #0006,0 0 0 1px #667eea33;min-width:300px;animation:slideDown-0eaff650 .2s ease}.dropdown-header[data-v-0eaff650]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(102,126,234,.2);font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea1a,#667eea0d)}.close-btn[data-v-0eaff650]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.close-btn[data-v-0eaff650]:hover{background:#ffffff1a;color:#fffc}.model-options[data-v-0eaff650]{padding:8px 0}.model-option[data-v-0eaff650]{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:none;border:none;color:#ffffffb3;cursor:pointer;transition:all .2s ease;text-align:left}.model-option[data-v-0eaff650]:hover{background:#ffffff0d;color:#ffffffe6}.model-option.active[data-v-0eaff650]{background:linear-gradient(135deg,#667eea33,#667eea1a);color:#7c9eff;border-left:3px solid #667eea;padding-left:13px}.model-type[data-v-0eaff650]{display:inline-block;min-width:24px;font-size:12px;font-weight:600;opacity:.8}.model-name[data-v-0eaff650]{flex:1;font-size:14px;font-weight:500}.check-icon[data-v-0eaff650]{color:#667eea;opacity:.8}.spacer[data-v-0eaff650]{display:inline-block;width:12px}.backdrop[data-v-0eaff650]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998;background:transparent}@keyframes slideDown-0eaff650{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.multi-language-content[data-v-0eaff650]{display:flex;flex-direction:column;gap:20px;padding:20px 0}.stats-section[data-v-0eaff650]{display:flex;gap:20px;padding:15px;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.stat-item[data-v-0eaff650]{display:flex;flex-direction:column;gap:5px}.stat-label[data-v-0eaff650]{font-size:12px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.stat-value[data-v-0eaff650]{font-size:16px;font-weight:600;color:#fff}.language-selection[data-v-0eaff650]{display:flex;flex-direction:column;gap:10px}.selection-label[data-v-0eaff650]{font-size:14px;font-weight:500;color:#fffc}.language-select[data-v-0eaff650]{padding:10px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:14px;outline:none;transition:all .2s ease}.language-select[data-v-0eaff650]:focus{border-color:#007acc;background:#ffffff26}.language-select option[data-v-0eaff650]{background:#2d2d2d;color:#fff}.warning-section[data-v-0eaff650]{margin:10px 0}.warning-box[data-v-0eaff650]{display:flex;align-items:flex-start;gap:12px;padding:15px;background:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-radius:8px}.warning-icon[data-v-0eaff650]{color:#ffc107;font-size:20px;flex-shrink:0;margin-top:2px}.warning-text[data-v-0eaff650]{flex:1}.warning-text p[data-v-0eaff650]{margin:0;color:#ffffffe6;font-size:14px;line-height:1.5}.loading-icon[data-v-0eaff650]{animation:spin-0eaff650 1s linear infinite}@keyframes spin-0eaff650{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.model-dropdown[data-v-0eaff650]{right:-8px;left:-8px;width:auto;min-width:auto}.model-btn[data-v-0eaff650]{padding:6px 10px;font-size:13px}.current-model[data-v-0eaff650]{min-width:35px}}@media (prefers-color-scheme: light){.model-dropdown[data-v-0eaff650]{background:#fffffff2;border-color:#0000001a;box-shadow:0 8px 32px #0000001a}.dropdown-header[data-v-0eaff650]{color:#000c;border-bottom-color:#0000001a}.close-btn[data-v-0eaff650]{color:#0009}.close-btn[data-v-0eaff650]:hover{background:#0000001a;color:#000c}.model-option[data-v-0eaff650]{color:#000000b3}.model-option[data-v-0eaff650]:hover{background:#0000000d;color:#000000e6}}.custom-select[data-v-579d8359]{position:relative;display:inline-block}.select-btn[data-v-579d8359]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:1.5px solid #667eea;border-radius:8px;color:#8da2fb;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:600;outline:none}.select-btn[data-v-579d8359]:hover{background:#667eea26;border-color:#7c9eff;color:#a3bffa;box-shadow:0 0 15px #667eea33}.select-btn[data-v-579d8359]:focus{box-shadow:0 0 0 3px #667eea80}.current-option[data-v-579d8359]{color:inherit;font-weight:600;min-width:40px;text-align:left;text-shadow:none;display:flex;align-items:center;gap:0}.current-option .option-icon[data-v-579d8359]{color:inherit;opacity:.8}.chevron[data-v-579d8359]{transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.9;filter:none}.select-dropdown[data-v-579d8359]{position:absolute;top:100%;z-index:99999;margin-top:4px;background:linear-gradient(135deg,#282832f2,#1e1e28f2);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(102,126,234,.3);border-radius:8px;box-shadow:0 8px 32px #0006,0 0 0 1px #667eea33;min-width:300px}.select-dropdown.dropdown-top[data-v-579d8359]{top:auto;bottom:100%;margin-top:0;margin-bottom:4px}.dropdown-header[data-v-579d8359]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(102,126,234,.2);font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea1a,#667eea0d)}.close-btn[data-v-579d8359]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.close-btn[data-v-579d8359]:hover{background:#ffffff1a;color:#fffc}.select-options[data-v-579d8359]{padding:8px 0}.select-option[data-v-579d8359]{display:flex;align-items:center;gap:0;width:100%;padding:10px 16px;background:none;border:none;color:#ffffffb3;cursor:pointer;transition:all .2s ease;text-align:left}.select-option[data-v-579d8359]:hover{background:#ffffff0d;color:#ffffffe6}.select-option.active[data-v-579d8359]{background:linear-gradient(135deg,#667eea33,#667eea1a);color:#7c9eff;border-left:3px solid #667eea;padding-left:13px}.option-type[data-v-579d8359]{display:inline-block;min-width:24px;font-size:12px;font-weight:600;opacity:.8}.option-name[data-v-579d8359]{flex:1;font-size:14px;font-weight:500}.option-icon[data-v-579d8359]{color:#fff9;margin-right:0}.check-icon[data-v-579d8359]{color:#667eea;opacity:.8}.spacer[data-v-579d8359]{display:inline-block;width:12px}.backdrop[data-v-579d8359]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99998;background:transparent}.slideDown-enter-active[data-v-579d8359],.slideDown-leave-active[data-v-579d8359]{transition:all .2s ease;transform-origin:top}.slideDown-enter-from[data-v-579d8359],.slideDown-leave-to[data-v-579d8359]{opacity:0;transform:translateY(-8px) scale(.95)}.grouped-select[data-v-8fbda373]{position:relative;width:100%}.select-btn[data-v-8fbda373]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffffe6;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .3s ease;font-size:14px}.select-btn[data-v-8fbda373]:hover{background:#ffffff1a;border-color:#fff3}.selected-text[data-v-8fbda373]{display:flex;align-items:center;gap:8px;flex:1}.placeholder-text[data-v-8fbda373]{color:#ffffff80;flex:1}.model-category[data-v-8fbda373]{color:#a8b3ff;font-size:12px;font-weight:500}.chevron[data-v-8fbda373]{color:#fff9;transition:transform .3s ease}.chevron.rotated[data-v-8fbda373]{transform:rotate(180deg)}.dropdown-overlay[data-v-8fbda373]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999}.dropdown-content[data-v-8fbda373]{position:absolute;top:100%;left:0;right:0;background:#1a1a1a;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 8px 32px #0006;z-index:1000;max-height:500px;overflow:hidden;display:flex;flex-direction:column}.dropdown-header[data-v-8fbda373]{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid rgba(255,255,255,.1)}.dropdown-header h3[data-v-8fbda373]{margin:0;color:#ffffffe6;font-size:16px;font-weight:600}.close-btn[data-v-8fbda373]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;transition:all .3s ease}.close-btn[data-v-8fbda373]:hover{background:#ffffff1a;color:#ffffffe6}.search-container[data-v-8fbda373]{position:relative;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.search-input[data-v-8fbda373]{width:100%;padding:8px 12px 8px 36px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ffffffe6;font-size:14px;outline:none;transition:all .3s ease}.search-input[data-v-8fbda373]:focus{border-color:#a8b3ff;background:#ffffff1a}.search-input[data-v-8fbda373]::placeholder{color:#ffffff80}.search-icon[data-v-8fbda373]{position:absolute;left:24px;top:50%;transform:translateY(-50%);color:#ffffff80;font-size:16px}.groups-container[data-v-8fbda373]{flex:1;overflow-y:auto;padding:8px}.model-group[data-v-8fbda373]{margin-bottom:16px}.group-header[data-v-8fbda373]{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:0 8px}.group-title[data-v-8fbda373]{color:#a8b3ff;font-weight:600;font-size:14px}.group-count[data-v-8fbda373]{color:#ffffff80;font-size:12px}.models-grid[data-v-8fbda373]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;padding:0 8px}.model-option[data-v-8fbda373]{display:flex;flex-direction:column;align-items:flex-start;padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ffffffe6;cursor:pointer;transition:all .3s ease;text-align:left;min-height:60px}.model-option[data-v-8fbda373]:hover{background:#ffffff1a;border-color:#fff3}.model-option.selected[data-v-8fbda373]{background:#a8b3ff33;border-color:#a8b3ff}.model-info[data-v-8fbda373]{flex:1;width:100%}.model-name[data-v-8fbda373]{font-weight:500;font-size:14px;margin-bottom:4px;color:#ffffffe6}.model-description[data-v-8fbda373]{font-size:12px;color:#fff9;line-height:1.3}.model-category-tag[data-v-8fbda373]{align-self:flex-end;color:#a8b3ff;font-size:11px;font-weight:500;margin-top:4px}@media (max-width: 768px){.models-grid[data-v-8fbda373]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media (max-width: 480px){.models-grid[data-v-8fbda373]{grid-template-columns:1fr}}.model-layout[data-v-31d9fbd5]{display:flex;gap:30px;flex:1;min-height:0}.model-list[data-v-31d9fbd5]{width:320px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-31d9fbd5]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-31d9fbd5]{margin:0;font-size:18px}.model-count[data-v-31d9fbd5]{color:#fff9;font-size:14px}.models-container[data-v-31d9fbd5]{flex:1;overflow-y:auto;margin-bottom:16px}.loading-state[data-v-31d9fbd5]{display:flex;align-items:center;gap:8px;justify-content:center;padding:40px 0;color:#fff9}.empty-state[data-v-31d9fbd5]{text-align:center;padding:60px 20px;color:#fff9}.empty-icon[data-v-31d9fbd5]{font-size:48px;margin-bottom:16px;opacity:.4}.model-card[data-v-31d9fbd5]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease}.model-card[data-v-31d9fbd5]:hover{background:#ffffff0d;border-color:#fff3}.model-card.active[data-v-31d9fbd5]{border-color:#667eea;background:#667eea1a}.model-card-header[data-v-31d9fbd5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.model-name[data-v-31d9fbd5]{font-weight:500;font-size:16px}.model-desc[data-v-31d9fbd5]{color:#ffffffb3;font-size:14px;line-height:1.4;margin-bottom:12px}.add-btn[data-v-31d9fbd5]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-31d9fbd5]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.model-detail[data-v-31d9fbd5]{flex:1;background:#ffffff08;border-radius:12px;padding:24px;overflow-y:auto}.no-selection[data-v-31d9fbd5]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff9}.placeholder-icon[data-v-31d9fbd5]{font-size:64px;margin-bottom:24px;opacity:.3}.detail-header[data-v-31d9fbd5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-31d9fbd5]{margin:0;font-size:20px}.detail-actions[data-v-31d9fbd5]{display:flex;gap:12px}.form-item[data-v-31d9fbd5]{margin-bottom:20px}.form-item label[data-v-31d9fbd5]{display:block;margin-bottom:8px;color:#ffffffe6;font-weight:500}.form-item input[data-v-31d9fbd5],.form-item textarea[data-v-31d9fbd5]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;transition:all .3s ease}.form-item input[data-v-31d9fbd5]:focus,.form-item textarea[data-v-31d9fbd5]:focus{border-color:#667eea;outline:none;background:#ffffff14}.form-item input[data-v-31d9fbd5]::placeholder,.form-item textarea[data-v-31d9fbd5]::placeholder{color:#fff6}.form-item textarea[data-v-31d9fbd5]{resize:vertical;min-height:80px;line-height:1.5}.required[data-v-31d9fbd5]{color:#ff6b6b}.action-btn[data-v-31d9fbd5]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-31d9fbd5]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-31d9fbd5]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-31d9fbd5]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-31d9fbd5]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-31d9fbd5]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-31d9fbd5]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-31d9fbd5]{padding:6px 12px;font-size:12px}.modal-form[data-v-31d9fbd5]{display:flex;flex-direction:column;gap:16px}.delete-confirm[data-v-31d9fbd5]{text-align:center;padding:20px 0}.delete-confirm p[data-v-31d9fbd5]{color:#fffc;margin:8px 0}.delete-confirm .warning-text[data-v-31d9fbd5]{color:#fff9;font-size:14px}.warning-icon[data-v-31d9fbd5]{font-size:48px;color:#ffa726;margin-bottom:16px}.confirm-btn[data-v-31d9fbd5],.cancel-btn[data-v-31d9fbd5]{padding:10px 20px;border-radius:6px;cursor:pointer;transition:all .3s ease}.confirm-btn.danger[data-v-31d9fbd5],.cancel-btn.danger[data-v-31d9fbd5]{background:#ea666633;border:1px solid rgba(234,102,102,.3);color:#ff8a8a}.confirm-btn.danger[data-v-31d9fbd5]:hover,.cancel-btn.danger[data-v-31d9fbd5]:hover{background:#ea66664d}.cancel-btn[data-v-31d9fbd5]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff}.cancel-btn[data-v-31d9fbd5]:hover{background:#ffffff1a}.model-type[data-v-31d9fbd5]{display:flex;flex-wrap:wrap;gap:6px}.model-tag[data-v-31d9fbd5]{display:inline-block;padding:4px 8px;background:#b566ea33;border-radius:4px;font-size:12px;color:#a8b3ff}.model-status[data-v-31d9fbd5]{display:flex;align-items:center;gap:8px}.default-badge[data-v-31d9fbd5]{display:flex;align-items:center;gap:4px;padding:2px 6px;background:#ffc10733;border:1px solid rgba(255,193,7,.3);border-radius:12px;font-size:11px;color:#ffc107;font-weight:500}.current-default[data-v-31d9fbd5]{display:flex;align-items:center;gap:4px;padding:8px 12px;background:#ffc10733;border:1px solid rgba(255,193,7,.3);border-radius:8px;font-size:12px;color:#ffc107;font-weight:500}.action-btn.default[data-v-31d9fbd5]{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);color:#ffc107}.action-btn.default[data-v-31d9fbd5]:hover:not(:disabled){background:#ffc10733;border-color:#ffc10780}.action-btn.default[data-v-31d9fbd5]:disabled{opacity:.5;cursor:not-allowed}.api-key-container[data-v-31d9fbd5]{display:flex;gap:8px;align-items:center}.api-key-container input[data-v-31d9fbd5]{flex:1}.check-btn[data-v-31d9fbd5]{padding:12px 16px;background:#a8b3ff1a;border:1px solid rgba(168,179,255,.3);border-radius:8px;color:#a8b3ff;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:48px}.check-btn[data-v-31d9fbd5]:hover:not(:disabled){background:#a8b3ff33;border-color:#a8b3ff80}.check-btn[data-v-31d9fbd5]:disabled{opacity:.5;cursor:not-allowed}.loading-icon[data-v-31d9fbd5]{animation:spin-31d9fbd5 1s linear infinite}@keyframes spin-31d9fbd5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-toast[data-v-31d9fbd5],.success-toast[data-v-31d9fbd5]{position:fixed;top:20px;right:20px;display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;color:#fff;cursor:pointer;z-index:1000;animation:slideIn-31d9fbd5 .3s ease}.error-toast[data-v-31d9fbd5]{background:#ea6666e6;border:1px solid rgba(234,102,102,.5)}.success-toast[data-v-31d9fbd5]{background:#66ea66e6;border:1px solid rgba(102,234,102,.5)}@keyframes slideIn-31d9fbd5{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.readonly-field[data-v-31d9fbd5]{width:100%;padding:12px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffffe6;font-size:14px;min-height:48px;display:flex;align-items:center;cursor:default;-webkit-user-select:none;user-select:none}.readonly-field.description-field[data-v-31d9fbd5]{min-height:80px;align-items:flex-start;padding-top:12px;line-height:1.5;white-space:pre-wrap}.description-field[data-v-31d9fbd5]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffffe6;font-size:14px;min-height:80px;resize:vertical;transition:all .3s ease;font-family:inherit}.description-field[data-v-31d9fbd5]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.description-field[data-v-31d9fbd5]::placeholder{color:#fff6}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace}.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);background-color:var(--vscode-editor-background)}.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground, inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .margin-view-overlays .line-numbers{font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .view-overlays .current-line,.monaco-editor .margin-view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box}.mtkcontrol{color:#fff!important;background:#960000!important}.mtkoverflow{background-color:var(--vscode-button-background, var(--vscode-editor-background));color:var(--vscode-button-foreground, var(--vscode-editor-foreground));border-width:1px;border-style:solid;border-color:var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkw{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .minimap.slider-mouseover .minimap-slider.active{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground)!important}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-single,.monaco-list.selection-multiple{outline:0!important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-select-box-dropdown-padding{--dropdown-padding-top: 1px;--dropdown-padding-bottom: 1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top: 3px;--dropdown-padding-bottom: 4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:.7}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{overflow:hidden;max-height:0px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:5px}.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .icon,.monaco-action-bar .action-item .codicon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.6}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:solid 1px rgba(204,204,204,.4);border-bottom-color:#bbb6;box-shadow:inset 0 -1px #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px rgb(111,195,223);box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px #0F4A85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:solid 1px rgba(51,51,51,.6);border-bottom-color:#4449;box-shadow:inset 0 -1px #4449;color:#ccc}:root{--vscode-sash-size: 4px;--vscode-sash-hover-size: 4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";height:calc(var(--vscode-sash-size) * 2);width:calc(var(--vscode-sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size) * -.5);top:calc(var(--vscode-sash-size) * -1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size) * -.5);bottom:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size) * -.5);left:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size) * -.5);right:calc(var(--vscode-sash-size) * -1)}.monaco-sash:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.hover:before,.monaco-sash.active:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - (var(--vscode-sash-hover-size) / 2))}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - (var(--vscode-sash-hover-size) / 2))}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:initial}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:initial;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-th,.monaco-table-td{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:"";position:absolute;left:calc(var(--vscode-sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-light .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls,.hc-light .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls,.hc-light .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:#fdff00cc}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:#fdff00cc}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:#ffffff70}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:#ffffff70}99%{background:transparent}}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-twistie,.monaco-tl-contents{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translate(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{display:flex!important;align-items:center;justify-content:center;cursor:grab;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1!important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border, transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled:focus,.monaco-button.disabled{opacity:.4!important;cursor:default}.monaco-text-button .codicon{margin:0 .2em;color:inherit!important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus,.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border, transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-label,.monaco-description-button .monaco-button-description{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-label>.codicon,.monaco-description-button .monaco-button-description>.codicon{margin:0 .2em;color:inherit!important}.monaco-button.default-colors,.monaco-button-dropdown.default-colors>.monaco-button{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button.default-colors:hover,.monaco-button-dropdown.default-colors>.monaco-button:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button.default-colors.secondary,.monaco-button-dropdown.default-colors>.monaco-button.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button.default-colors.secondary:hover,.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;margin-left:-300px;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{display:flex;align-items:center;border-top-left-radius:5px;border-top-right-radius:5px}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:center;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{display:flex;padding:8px 6px 6px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;height:100%;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px}.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{font-weight:600;font-size:12px}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0px;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines .bottom.dragging{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .top,.monaco-editor .diff-hidden-lines .bottom{transition:background-color .1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom){cursor:n-resize!important}.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom{cursor:s-resize!important}.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedOriginal,.monaco-editor .movedModified{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedOriginal.currentMove,.monaco-editor .movedModified.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:solid var(--vscode-diffEditor-removedTextBackground) 3px}.monaco-editor .char-insert.diff-range-empty{border-left:solid var(--vscode-diffEditor-insertedTextBackground) 3px}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-editor .insert-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-diff-editor .delete-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-editor.hc-black .insert-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .delete-sign,.monaco-editor.hc-light .insert-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .delete-sign{opacity:1}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .inline-added-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-editor .char-insert,.monaco-diff-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .line-insert,.monaco-diff-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .line-insert,.monaco-editor .char-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .line-insert,.monaco-editor.hc-black .char-insert,.monaco-editor.hc-light .char-insert{border-style:dashed}.monaco-editor .line-delete,.monaco-editor .char-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .line-delete,.monaco-editor.hc-black .char-delete,.monaco-editor.hc-light .char-delete{border-style:dashed}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .gutter-insert,.monaco-diff-editor .gutter-insert{background-color:var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-delete,.monaco-diff-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .line-delete,.monaco-diff-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground))}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .gutter-delete,.monaco-diff-editor .gutter-delete{background-color:var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-diff-editor .revertButton{cursor:pointer}.monaco-component .multiDiffEntry{display:flex;flex-direction:column}.monaco-component .multiDiffEntry .editorParent{border-left:2px var(--vscode-tab-inactiveBackground) solid}.monaco-component .multiDiffEntry.focused .editorParent{border-left:2px var(--vscode-notebook-focusedCellBorder) solid}.monaco-component .multiDiffEntry .editorParent .editorContainer{border-left:17px var(--vscode-tab-inactiveBackground) solid}.monaco-component .multiDiffEntry .collapse-button{margin:0 5px;cursor:pointer}.monaco-component .multiDiffEntry .collapse-button a{display:block}.monaco-component .multiDiffEntry .header{display:flex;align-items:center;padding:8px 5px;color:var(--vscode-foreground);background:var(--vscode-editor-background);z-index:1000;border-bottom:1px var(--vscode-sideBarSectionHeader-border) solid;border-top:1px var(--vscode-sideBarSectionHeader-border) solid;border-left:2px var(--vscode-editor-background) solid}.monaco-component .multiDiffEntry.focused .header{border-left:2px var(--vscode-notebook-focusedCellBorder) solid}.monaco-component .multiDiffEntry .header.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component .multiDiffEntry .header .title{flex:1;font-size:14px;line-height:22px}.monaco-component .multiDiffEntry .header .actions{padding:0 8px}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}@font-face{font-family:codicon;font-display:block;src:url(/ui/assets/codicon-Hscy-R9e.ttf) format("truetype")}.codicon[class*=codicon-]{font: 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(360deg)}}.codicon-sync.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-gear.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-value,.monaco-editor .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-enum{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:"";display:block;width:100%;height:100%;opacity:.3;background-color:var(--vscode-editor-background);z-index:1}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0px}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;border-color:transparent;border-style:solid;z-index:1000;border-width:8px;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.action-widget{font-size:13px;min-width:160px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground)}.context-view-block{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:-1}.context-view-pointerBlock{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:none!important;border-width:0!important}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 10px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled:before,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before{cursor:default!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent!important;outline:0 solid!important}.action-widget .monaco-list-row.action{display:flex;gap:6px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{display:block;content:"";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration>span,.monaco-editor .codelens-decoration>a{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:solid .1em #000;box-sizing:border-box;margin:.1em .2em 0;width:.8em;height:.8em;line-height:.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:solid .1em #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid rgb(255,255,255);border-radius:100%;box-shadow:0 0 2px #000c;position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid rgba(255,255,255,.71);box-shadow:0 0 1px #000000d9}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder, transparent);box-sizing:border-box}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;animation:fadein .1s linear;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace, normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth, 500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover p,.monaco-hover .code,.monaco-hover ul,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0px;border-right:0px;margin:4px -8px -4px;height:1px}.monaco-hover p:first-child,.monaco-hover .code:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover p:last-child,.monaco-hover .code:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ul,.monaco-hover ol{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace, pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link:hover,.monaco-hover .hover-contents a.code-link{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{margin-bottom:4px;display:inline-block}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:.4;cursor:default}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer}.monaco-editor .zone-widget .codicon.codicon-error,.markers-panel .marker-icon.error,.markers-panel .marker-icon .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.extension-editor .codicon.codicon-error,.preferences-editor .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-warning,.markers-panel .marker-icon.warning,.markers-panel .marker-icon .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.extension-editor .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-info,.markers-panel .marker-icon.info,.markers-panel .marker-icon .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.extension-editor .codicon.codicon-info,.preferences-editor .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .dnd-target,.monaco-editor.hc-light .dnd-target{border-right:2px dotted black;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #AEAFAD;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines{cursor:default}.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines,.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines{cursor:copy}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex!important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{font-size:90%!important;animation:none}.inline-progress-widget:hover .icon:before{content:""}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border, transparent);border-radius:4px;background-color:var(--vscode-editorWidget-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:center center;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-collapsed{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed{transition:initial}.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons{opacity:1}.monaco-editor .inline-folded:after{color:gray;margin:.1em .2em 0;content:"⋯";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder, transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-widget,.monaco-editor .suggest-details{flex:0 1 auto;width:100%;border-style:solid;border-width:1px;border-color:var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-light .suggest-widget,.monaco-editor.hc-light .suggest-details{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:12px;opacity:.4;font-size:85%;line-height:initial;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:initial;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ul,.monaco-editor .suggest-details ol{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:"";display:block;height:100%;position:absolute;opacity:.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .monaco-scrollable-element,.monaco-editor .parameter-hints-widget .body{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:"";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:initial}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input{padding:3px;border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{float:left;background-color:inherit}.monaco-editor .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit}.monaco-editor .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-line-number,.monaco-editor .sticky-line-content{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-line-number .codicon-folding-expanded,.monaco-editor .sticky-line-number .codicon-folding-collapsed{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor.hc-black .sticky-widget,.monaco-editor.hc-light .sticky-widget{border-bottom:1px solid var(--vscode-contrastBorder)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 3px 2px -2px;z-index:4;background-color:var(--vscode-editorStickyScroll-background)}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:center center;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #F6F6F6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;padding:10px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{height:1px;border:0;background-color:var(--vscode-editorHoverWidget-border)}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.monaco-editor-container[data-v-df421d9b]{position:relative;border:none;border-radius:0;overflow:hidden;background:#ffffff0d}.editor-wrapper[data-v-df421d9b]{height:100%;min-height:300px}[data-v-df421d9b] .monaco-editor{border-radius:0}[data-v-df421d9b] .monaco-editor .margin{background-color:#ffffff0d!important}[data-v-df421d9b] .monaco-editor .line-numbers{color:#9ca3afcc!important}[data-v-df421d9b] .monaco-editor .current-line{background-color:#37415180!important}[data-v-df421d9b] .monaco-editor .selection{background-color:#3b82f64d!important}[data-v-df421d9b] .monaco-editor .cursor{border-left-color:#f9fafbe6!important}[data-v-df421d9b] .monaco-editor .scrollbar .slider{background-color:#9ca3af4d!important}[data-v-df421d9b] .monaco-editor .scrollbar .slider:hover{background-color:#9ca3af80!important}[data-v-df421d9b] .monaco-editor .scrollbar .slider.active{background-color:#9ca3afb3!important}.mcp-config-form[data-v-c7dc6c11]{width:100%}.form-item[data-v-c7dc6c11]{margin-bottom:20px}.form-item label[data-v-c7dc6c11]{display:block;margin-bottom:8px;font-weight:500;color:#e5e7eb}.required[data-v-c7dc6c11]{color:#ef4444}.config-input[data-v-c7dc6c11],.config-textarea[data-v-c7dc6c11]{width:100%;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:4px;background:#ffffff0d;color:#ffffffe6;font-size:14px;transition:all .3s}.config-input[data-v-c7dc6c11]:focus,.config-textarea[data-v-c7dc6c11]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.config-textarea[data-v-c7dc6c11]{resize:vertical;min-height:80px}.config-input[data-v-c7dc6c11]::placeholder,.config-textarea[data-v-c7dc6c11]::placeholder{color:#fff6}.usage-instructions[data-v-c7dc6c11]{margin-top:24px;padding:16px;background:#ffffff08;border:1px solid rgba(102,126,234,.5);border-radius:8px;box-shadow:0 2px 8px #0000001a;position:relative}.usage-instructions[data-v-c7dc6c11]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:#667eeacc;border-radius:8px 8px 0 0}.instructions-header[data-v-c7dc6c11]{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.instructions-icon[data-v-c7dc6c11]{font-size:16px;color:#667eea}.instructions-header h4[data-v-c7dc6c11]{margin:0;font-size:16px;font-weight:600;color:#ffffffe6}.instructions-content[data-v-c7dc6c11]{color:#fffc;line-height:1.5;font-size:14px}.instructions-list[data-v-c7dc6c11]{margin:0;padding-left:16px}.instructions-list>li[data-v-c7dc6c11]{margin-bottom:12px;position:relative;padding-left:4px}.instructions-list>li[data-v-c7dc6c11]::marker{color:#667eea;font-weight:600;font-size:14px}.instructions-list>li[data-v-c7dc6c11]:last-child{margin-bottom:0}.instructions-list strong[data-v-c7dc6c11]{color:#fffffff2;font-weight:600;display:block;margin-bottom:6px;font-size:14px}.instructions-list ul[data-v-c7dc6c11]{margin:6px 0 0;padding-left:16px;list-style-type:disc}.instructions-list ul li[data-v-c7dc6c11]{margin-bottom:3px;color:#ffffffbf;font-size:13px;line-height:1.4}.instructions-list ul li strong[data-v-c7dc6c11]{color:#ffffffe6;font-weight:500;display:inline;margin-bottom:0}.instructions-list code[data-v-c7dc6c11]{background:#667eea26;color:#a8b3ff;padding:1px 4px;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;border:1px solid rgba(102,126,234,.2)}@media (max-width: 768px){.usage-instructions[data-v-c7dc6c11]{margin-top:20px;padding:12px}.instructions-header h4[data-v-c7dc6c11]{font-size:15px}.instructions-content[data-v-c7dc6c11]{font-size:13px}.instructions-list[data-v-c7dc6c11]{padding-left:12px}.instructions-list>li[data-v-c7dc6c11]{margin-bottom:10px}.instructions-list ul li[data-v-c7dc6c11]{font-size:12px}}.tab-panel[data-v-dd5c9237]{width:100%}.tab-header[data-v-dd5c9237]{display:flex;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px}.tab-button[data-v-dd5c9237]{padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;color:#fff9;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.tab-button[data-v-dd5c9237]:hover{color:#fffc;background-color:#ffffff0d}.tab-button.active[data-v-dd5c9237]{color:#3b82f6;border-bottom-color:#3b82f6;background-color:#ffffff08}.tab-content[data-v-dd5c9237]{min-height:200px;background-color:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:16px}.tab-pane[data-v-dd5c9237]{width:100%}.json-import-panel[data-v-db4635ee]{height:100%;display:flex;flex-direction:column}.form-item[data-v-db4635ee]{flex:1;display:flex;flex-direction:column}.json-tab-panel[data-v-db4635ee]{margin-top:8px}.validation-errors[data-v-db4635ee]{margin-top:12px;padding:12px;background:#ff00001a;border:1px solid rgba(255,0,0,.3);border-radius:4px}.error-item[data-v-db4635ee]{color:#f44;font-size:14px;margin-bottom:4px}.error-item[data-v-db4635ee]:last-child{margin-bottom:0}.example-json[data-v-db4635ee]{margin:0;padding:12px;background:#ffffff08;overflow-x:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4}.example-json code[data-v-db4635ee]{color:#ffffffe6;background:none;padding:0;border:none;border-radius:0;font-family:inherit;font-size:inherit}.example-json .string[data-v-db4635ee]{color:#a78bfa}.example-json .number[data-v-db4635ee]{color:#fbbf24}.example-json .boolean[data-v-db4635ee]{color:#f87171}.example-json .null[data-v-db4635ee]{color:#fff9}.example-json .key[data-v-db4635ee]{color:#34d399}.json-config-container[data-v-db4635ee]{display:flex;flex-direction:column;height:100%}.usage-instructions[data-v-db4635ee]{margin-top:16px;padding:16px;background:#ffffff08;border:1px solid rgba(102,126,234,.5);border-radius:8px;box-shadow:0 2px 8px #0000001a;position:relative}.usage-instructions[data-v-db4635ee]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:#667eeacc;border-radius:8px 8px 0 0}.instructions-header[data-v-db4635ee]{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.instructions-icon[data-v-db4635ee]{font-size:16px;color:#667eea}.instructions-header h4[data-v-db4635ee]{margin:0;font-size:16px;font-weight:600;color:#ffffffe6}.instructions-content[data-v-db4635ee]{color:#fffc;line-height:1.5;font-size:14px}.instructions-list[data-v-db4635ee]{margin:0;padding-left:16px}.instructions-list>li[data-v-db4635ee]{margin-bottom:12px;position:relative;padding-left:4px}.instructions-list>li[data-v-db4635ee]::marker{color:#667eea;font-weight:600;font-size:14px}.instructions-list>li[data-v-db4635ee]:last-child{margin-bottom:0}.instructions-list strong[data-v-db4635ee]{color:#fffffff2;font-weight:600;display:block;margin-bottom:6px;font-size:14px}.instructions-list ul[data-v-db4635ee]{margin:6px 0 0;padding-left:16px;list-style-type:disc}.instructions-list ul li[data-v-db4635ee]{margin-bottom:3px;color:#ffffffbf;font-size:13px;line-height:1.4}.instructions-list ul li strong[data-v-db4635ee]{color:#ffffffe6;font-weight:500;display:inline;margin-bottom:0}.instructions-list code[data-v-db4635ee]{background:#667eea26;color:#a8b3ff;padding:1px 4px;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;border:1px solid rgba(102,126,234,.2)}.mcp-config-panel[data-v-163c5416]{position:relative}.mcp-header[data-v-163c5416]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.mcp-header h2[data-v-163c5416]{margin:0;font-size:20px;font-weight:500}.header-left[data-v-163c5416],.header-right[data-v-163c5416]{display:flex;align-items:center}.mcp-stats[data-v-163c5416]{display:flex;margin-left:16px;gap:12px}.stat-item[data-v-163c5416]{display:flex;align-items:center;background:#ffffff0d;padding:4px 8px;border-radius:4px;font-size:12px}.stat-label[data-v-163c5416]{color:#fff9;margin-right:4px}.stat-value[data-v-163c5416]{color:#ffffffe6;font-weight:500}.loading-container[data-v-163c5416]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffffb3}.loading-spinner[data-v-163c5416]{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #667eea;border-radius:50%;animation:spin-163c5416 1s linear infinite;margin-bottom:16px}@keyframes spin-163c5416{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mcp-layout[data-v-163c5416]{display:flex;gap:30px;flex:1;min-height:0}.server-list[data-v-163c5416]{width:320px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-163c5416]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-163c5416]{margin:0;font-size:18px}.server-count[data-v-163c5416]{font-size:14px;color:#fff9}.search-box[data-v-163c5416]{position:relative;margin-bottom:20px}.search-input[data-v-163c5416]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:6px 12px 6px 32px;color:#ffffffe6;width:100%;font-size:14px;transition:all .3s}.search-input[data-v-163c5416]:focus{outline:none;border-color:#667eea80;background:#ffffff14;width:100%}.search-input[data-v-163c5416]::placeholder{color:#fff6}.search-icon[data-v-163c5416]{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.6}.servers-container[data-v-163c5416]{flex:1;overflow-y:auto;margin-bottom:16px}.servers-container[data-v-163c5416]::-webkit-scrollbar{width:6px}.servers-container[data-v-163c5416]::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.servers-container[data-v-163c5416]::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.servers-container[data-v-163c5416]::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.server-card[data-v-163c5416]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;gap:8px}.server-card[data-v-163c5416]:hover:not(.active){background:#ffffff0d;border-color:#fff3}.server-card.active[data-v-163c5416]{border-color:#667eea;background:#667eea1a}.server-card-header[data-v-163c5416]{display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:500;color:#ffffffe6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;gap:10px}.server-name[data-v-163c5416]{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-connection-type[data-v-163c5416]{font-size:12px;color:#ffffffb3;display:flex;align-items:center;gap:6px}.connection-type-icon[data-v-163c5416]{font-size:14px;opacity:.8}.connection-type-badge[data-v-163c5416]{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#9e9e9e33;color:#bdbdbd}.connection-type-badge.studio[data-v-163c5416]{background:#2196f333;color:#90caf9}.connection-type-badge.sse[data-v-163c5416]{background:#4caf5033;color:#a5d6a7}.connection-type-badge.streaming[data-v-163c5416]{background:#9c27b033;color:#ce93d8}.server-config-summary[data-v-163c5416]{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.config-item[data-v-163c5416]{display:flex;align-items:flex-start;margin-bottom:6px;font-size:12px;line-height:1.4}.config-label[data-v-163c5416]{color:#fff9;font-weight:500;min-width:50px;margin-right:8px}.config-value[data-v-163c5416]{color:#fffc;word-break:break-all;flex:1}.server-config-preview[data-v-163c5416]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 12px;max-height:120px;overflow-y:auto;overflow-x:auto}.config-preview[data-v-163c5416]{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px;line-height:1.3;color:#ffffffe6;white-space:pre-wrap;word-break:break-all}.config-preview .json-key[data-v-163c5416]{color:#90caf9}.config-preview .json-string[data-v-163c5416]{color:#a5d6a7}.config-preview .json-number[data-v-163c5416]{color:#f39c12}.config-preview .json-boolean[data-v-163c5416]{color:#e74c3c}.config-preview .json-null[data-v-163c5416]{color:#95a5a6}.loading-state[data-v-163c5416]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffffb3}.loading-icon[data-v-163c5416]{font-size:32px;margin-bottom:16px}.empty-state[data-v-163c5416]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#ffffff80;text-align:center}.empty-icon[data-v-163c5416]{font-size:48px;margin-bottom:16px;opacity:.5}.add-config-button-container[data-v-163c5416]{margin-top:0}.add-btn[data-v-163c5416]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-163c5416]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.add-btn[data-v-163c5416]:disabled{opacity:.5;cursor:not-allowed}.add-btn.primary[data-v-163c5416]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.add-btn.primary[data-v-163c5416]:hover:not(:disabled){background:#667eea4d}.add-btn.danger[data-v-163c5416]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.add-btn.danger[data-v-163c5416]:hover:not(:disabled){background:#ea666633}.add-btn.small[data-v-163c5416]{padding:6px 12px;font-size:12px}.form-row[data-v-163c5416]{display:flex;gap:20px}.form-actions[data-v-163c5416]{display:flex;gap:12px;justify-content:flex-end}.server-detail[data-v-163c5416]{flex:1;background:#ffffff08;border-radius:12px;padding:24px;overflow-y:auto}.detail-header[data-v-163c5416]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-163c5416]{margin:0;font-size:20px}.detail-actions[data-v-163c5416]{display:flex;gap:12px}.detail-content[data-v-163c5416]{display:flex;flex-direction:column;gap:20px;flex:1;overflow-y:auto;padding-right:4px}.detail-content[data-v-163c5416]::-webkit-scrollbar{width:6px}.detail-content[data-v-163c5416]::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.detail-content[data-v-163c5416]::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.detail-content[data-v-163c5416]::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.action-btn[data-v-163c5416]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-163c5416]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-163c5416]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-163c5416]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-163c5416]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-163c5416]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-163c5416]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-163c5416]{padding:6px 12px;font-size:12px}.form-item[data-v-163c5416]{margin-bottom:20px}.form-item label[data-v-163c5416]{display:block;margin-bottom:8px;font-weight:500;color:#ffffffe6;font-size:14px}.form-item .required[data-v-163c5416]{color:#ef5350;margin-left:4px}.json-editor-container[data-v-163c5416]{position:relative}.json-editor-header[data-v-163c5416]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.json-status[data-v-163c5416]{font-size:12px;padding:8px 12px;border-radius:4px;font-weight:500;max-width:400px;word-wrap:break-word;white-space:pre-line;line-height:1.4;min-height:20px}.json-status.valid[data-v-163c5416]{background:#10b98133;color:#34d399}.json-status.invalid[data-v-163c5416]{background:#ef444433;color:#f87171}.format-btn[data-v-163c5416]{display:flex;align-items:center;gap:4px;background:#667eea1a;border:1px solid rgba(102,126,234,.3);border-radius:4px;color:#a8b3ff;padding:4px 8px;font-size:12px;cursor:pointer;transition:all .3s}.format-btn[data-v-163c5416]:hover:not(:disabled){background:#667eea33;border-color:#667eea80}.format-btn[data-v-163c5416]:disabled{opacity:.5;cursor:not-allowed}.format-icon[data-v-163c5416]{font-size:12px}.json-editor-wrapper[data-v-163c5416]{position:relative;border:1px solid rgba(255,255,255,.1);border-radius:4px;overflow:hidden;background:#ffffff0d;min-height:300px}.json-editor[data-v-163c5416]{height:100%;min-height:280px}.config-textarea[data-v-163c5416]{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:12px;color:#ffffffe6;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;resize:vertical;transition:all .3s}.config-textarea[data-v-163c5416]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.config-textarea[data-v-163c5416]::placeholder{color:#fff6}.config-input[data-v-163c5416]{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:12px;color:#ffffffe6;font-size:14px;transition:all .3s}.config-input[data-v-163c5416]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.config-input[data-v-163c5416]::placeholder{color:#fff6}.no-selection[data-v-163c5416]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffff80;text-align:center}.placeholder-icon[data-v-163c5416]{font-size:48px;margin-bottom:16px;opacity:.5}.message-toast[data-v-163c5416]{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:8px;color:#fff;font-weight:500;z-index:9999;box-shadow:0 4px 12px #0000004d;max-width:400px;word-wrap:break-word;white-space:pre-line;line-height:1.4}.message-toast.success[data-v-163c5416]{background:#10b981}.message-toast.error[data-v-163c5416]{background:#ef4444}.message-toast.info[data-v-163c5416]{background:#667eea}.message-fade-enter-active[data-v-163c5416],.message-fade-leave-active[data-v-163c5416]{transition:all .3s ease}.message-fade-enter-from[data-v-163c5416],.message-fade-leave-to[data-v-163c5416]{transform:translate(100%);opacity:0}@media (max-width: 1200px){.mcp-layout[data-v-163c5416]{flex-direction:column}.server-list[data-v-163c5416],.server-detail[data-v-163c5416]{width:100%}.server-list[data-v-163c5416]{order:2}.server-detail[data-v-163c5416]{order:1}}.wide-modal[data-v-163c5416]{width:80vw!important;max-width:1200px!important}.form-row[data-v-163c5416]{display:flex;gap:20px;margin-bottom:20px}.form-row .form-item[data-v-163c5416]{flex:1}.narrow-input[data-v-163c5416]{width:70%}.narrow-input .config-input[data-v-163c5416],.narrow-input .config-textarea[data-v-163c5416]{width:100%}.status-toggle-container[data-v-163c5416]{display:flex;align-items:center}.status-toggle[data-v-163c5416]{position:relative;width:60px;height:30px;background:#6b7280;border-radius:15px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:space-between;padding:0 8px}.status-toggle.enabled[data-v-163c5416]{background:#10b981}.toggle-thumb[data-v-163c5416]{position:absolute;width:24px;height:24px;background:#fff;border-radius:50%;top:3px;left:3px;transition:all .3s ease;box-shadow:0 2px 4px #0003}.status-toggle.enabled .toggle-thumb[data-v-163c5416]{left:33px}.toggle-label[data-v-163c5416]{color:#fff;font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none}.server-status-toggle[data-v-163c5416]{display:flex;align-items:center}.server-card-header .status-toggle[data-v-163c5416]{width:50px;height:24px}.server-card-header .toggle-thumb[data-v-163c5416]{width:18px;height:18px;top:3px;left:3px}.server-card-header .status-toggle.enabled .toggle-thumb[data-v-163c5416]{left:29px}.server-card-header .toggle-label[data-v-163c5416]{font-size:10px}@media (max-width: 768px){.mcp-header[data-v-163c5416]{flex-direction:column;gap:16px;align-items:stretch}.search-input[data-v-163c5416]{width:100%}.search-input[data-v-163c5416]:focus{width:100%}.mcp-table-wrapper[data-v-163c5416]{overflow-x:scroll}.mcp-table[data-v-163c5416]{min-width:600px}.connection-type-options[data-v-163c5416],.mcp-form-actions[data-v-163c5416]{flex-direction:column;gap:12px}.mcp-form-actions button[data-v-163c5416]{width:100%}.form-row[data-v-163c5416]{flex-direction:column;gap:15px}.narrow-input[data-v-163c5416]{width:100%}.server-detail[data-v-163c5416]{padding:16px}.detail-header[data-v-163c5416]{margin-bottom:16px}.detail-content[data-v-163c5416]{gap:16px}.form-row[data-v-163c5416]{flex-direction:column;gap:16px}.form-actions[data-v-163c5416]{flex-direction:column;gap:8px}.form-actions .action-btn[data-v-163c5416]{width:100%}}.json-actions[data-v-163c5416]{display:flex;gap:8px;align-items:center}.json-import-form[data-v-163c5416]{height:100%;display:flex;flex-direction:column}.json-import-form .form-item[data-v-163c5416]{flex:1;display:flex;flex-direction:column}.json-import-form .form-item label[data-v-163c5416]{margin-bottom:8px}.json-import-form .monaco-editor[data-v-163c5416]{flex:1;min-height:600px;border:none;border-radius:0}.validation-errors[data-v-163c5416]{margin-top:12px;padding:12px;background:#ff00001a;border:1px solid rgba(255,0,0,.3);border-radius:4px}.error-item[data-v-163c5416]{color:#f44;font-size:14px;margin-bottom:4px}.error-item[data-v-163c5416]:last-child{margin-bottom:0}.json-tab-panel[data-v-163c5416]{margin-top:8px}.example-json[data-v-163c5416]{margin:0;padding:12px;background:#ffffff08;overflow-x:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4}.example-json code[data-v-163c5416]{color:#ffffffe6;background:none;padding:0;border:none;border-radius:0;font-family:inherit;font-size:inherit}.example-json .string[data-v-163c5416]{color:#a78bfa}.example-json .number[data-v-163c5416]{color:#fbbf24}.example-json .boolean[data-v-163c5416]{color:#f87171}.example-json .null[data-v-163c5416]{color:#fff9}.example-json .key[data-v-163c5416]{color:#34d399}.custom-select[data-v-4c6d676f]{position:relative;display:inline-block}.select-btn[data-v-4c6d676f]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(80 78 78);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:600;outline:none}.select-btn[data-v-4c6d676f]:hover{background:#667eea26;border-color:#7c9eff;color:#a3bffa;box-shadow:0 0 15px #667eea33}.select-btn[data-v-4c6d676f]:focus{box-shadow:0 0 0 3px #667eea80}.current-option[data-v-4c6d676f]{color:inherit;font-weight:600;min-width:40px;text-align:left;text-shadow:none}.chevron[data-v-4c6d676f]{transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.9;filter:none}.select-dropdown[data-v-4c6d676f]{position:absolute;top:100%;left:0;z-index:9999;margin-top:4px;background:linear-gradient(135deg,#282832f2,#1e1e28f2);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(102,126,234,.3);border-radius:8px;box-shadow:0 8px 32px #0006,0 0 0 1px #667eea33;min-width:300px}.dropdown-header[data-v-4c6d676f]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(102,126,234,.2);font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea1a,#667eea0d)}.close-btn[data-v-4c6d676f]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.close-btn[data-v-4c6d676f]:hover{background:#ffffff1a;color:#fffc}.select-options[data-v-4c6d676f]{padding:8px 0}.select-option[data-v-4c6d676f]{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:none;border:none;color:#ffffffb3;cursor:pointer;transition:all .2s ease;text-align:left}.select-option[data-v-4c6d676f]:hover{background:#ffffff0d;color:#ffffffe6}.select-option.active[data-v-4c6d676f]{background:linear-gradient(135deg,#667eea33,#667eea1a);color:#7c9eff;border-left:3px solid #667eea;padding-left:13px}.option-type[data-v-4c6d676f]{display:inline-block;min-width:24px;font-size:12px;font-weight:600;opacity:.8}.option-name[data-v-4c6d676f]{flex:1;font-size:14px;font-weight:500}.check-icon[data-v-4c6d676f]{color:#667eea;opacity:.8}.spacer[data-v-4c6d676f]{display:inline-block;width:12px}.backdrop[data-v-4c6d676f]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998;background:transparent}.slideDown-enter-active[data-v-4c6d676f],.slideDown-leave-active[data-v-4c6d676f]{transition:all .2s ease;transform-origin:top}.slideDown-enter-from[data-v-4c6d676f],.slideDown-leave-to[data-v-4c6d676f]{opacity:0;transform:translateY(-8px) scale(.95)}.actions-container[data-v-86dcf751]{display:flex;align-items:center;gap:16px}.action-btn.warning[data-v-86dcf751]{background:#f59e0b;color:#fff}.action-btn.warning[data-v-86dcf751]:hover{background:#d97706}.action-btn.info[data-v-86dcf751]{background:#3b82f6;color:#fff}.action-btn.info[data-v-86dcf751]:hover{background:#2563eb}.import-language-dropdown[data-v-86dcf751]{display:inline-block}.language-select-modal[data-v-86dcf751]{width:100%;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:#ffffff0d;color:#fff;font-size:14px;outline:none}.language-select-modal[data-v-86dcf751]:focus{border-color:#409eff}.warning-notice[data-v-86dcf751]{display:flex;align-items:flex-start;gap:8px;padding:12px;margin-top:16px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:6px}.warning-icon-small[data-v-86dcf751]{color:#f59e0b;font-size:16px;margin-top:2px;flex-shrink:0}.warning-notice p[data-v-86dcf751]{margin:0;font-size:14px;color:#fffc}.prompt-layout[data-v-86dcf751]{display:flex;gap:12px;flex:1;min-height:0}.prompt-list[data-v-86dcf751]{width:336px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-86dcf751]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-86dcf751]{margin:0;font-size:18px}.prompt-count[data-v-86dcf751]{color:#fff9;font-size:14px}.prompts-container[data-v-86dcf751]{flex:1;overflow-y:auto;margin-bottom:16px;padding-right:6px}.loading-state[data-v-86dcf751]{display:flex;align-items:center;gap:8px;justify-content:center;padding:40px 0;color:#fff9}.loading-icon[data-v-86dcf751]{animation:spin-86dcf751 1s linear infinite}@keyframes spin-86dcf751{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state[data-v-86dcf751]{text-align:center;padding:60px 20px;color:#fff9}.empty-icon[data-v-86dcf751]{font-size:48px;margin-bottom:16px;opacity:.4}.empty-tip[data-v-86dcf751]{font-size:14px;margin-top:8px}.prompt-card[data-v-86dcf751]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease}.prompt-card[data-v-86dcf751]:hover{background:#ffffff0d;border-color:#fff3}.prompt-card.active[data-v-86dcf751]{border-color:#667eea;background:#667eea1a}.prompt-card-header[data-v-86dcf751]{display:flex;justify-content:space-between;align-items:center}.prompt-name[data-v-86dcf751]{font-weight:500;font-size:16px}.prompt-desc[data-v-86dcf751]{color:#ffffffb3;font-size:14px;line-height:1.4;margin-bottom:0;margin-top:8px}.prompt-tools[data-v-86dcf751]{display:flex;flex-wrap:wrap;gap:6px}.tool-tag[data-v-86dcf751]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.tool-more[data-v-86dcf751]{color:#ffffff80;font-size:12px;padding:4px 8px}.no-tools-indicator[data-v-86dcf751]{color:#fff6;font-size:12px;font-style:italic}.add-btn[data-v-86dcf751]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-86dcf751]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.prompt-detail[data-v-86dcf751]{flex:1;background:#ffffff08;border-radius:12px;padding:12px 24px;overflow-y:auto}.no-selection[data-v-86dcf751]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff9}.placeholder-icon[data-v-86dcf751]{font-size:64px;margin-bottom:24px;opacity:.3}.detail-header[data-v-86dcf751]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-86dcf751]{margin:0;font-size:20px}.detail-actions[data-v-86dcf751]{display:flex;gap:12px}.form-section[data-v-86dcf751]{margin-bottom:32px}.form-item[data-v-86dcf751]{margin-bottom:20px}.form-item label[data-v-86dcf751]{display:block;margin-bottom:8px;color:#ffffffe6;font-weight:500}.form-item input[data-v-86dcf751],.form-item textarea[data-v-86dcf751]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;transition:all .3s ease}.form-item input[data-v-86dcf751]:focus,.form-item textarea[data-v-86dcf751]:focus{border-color:#667eea;outline:none;background:#ffffff14}.form-item input[data-v-86dcf751]::placeholder,.form-item textarea[data-v-86dcf751]::placeholder{color:#fff6}.form-item input[data-v-86dcf751]:disabled,.form-item textarea[data-v-86dcf751]:disabled{cursor:not-allowed;background:#ffffff08;color:#fff;border-color:#ffffff0d;opacity:.6}.form-item textarea[data-v-86dcf751]{resize:vertical;min-height:80px;line-height:1.5}.required[data-v-86dcf751]{color:#ff6b6b}.section-header[data-v-86dcf751]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header span[data-v-86dcf751]{font-weight:500;color:#fffc}.action-btn[data-v-86dcf751]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-86dcf751]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-86dcf751]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-86dcf751]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-86dcf751]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-86dcf751]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-86dcf751]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-86dcf751]{padding:6px 12px;font-size:12px}.modal-form[data-v-86dcf751]{display:flex;flex-direction:column;gap:16px}.delete-confirm[data-v-86dcf751]{text-align:center;padding:20px 0}.delete-confirm p[data-v-86dcf751]{color:#fffc;margin:8px 0}.delete-confirm .warning-text[data-v-86dcf751]{color:#fff9;font-size:14px}.warning-icon[data-v-86dcf751]{font-size:48px;color:#ffa726;margin-bottom:16px}.confirm-btn[data-v-86dcf751],.cancel-btn[data-v-86dcf751]{padding:10px 20px;border-radius:6px;cursor:pointer;transition:all .3s ease}.confirm-btn.danger[data-v-86dcf751],.cancel-btn.danger[data-v-86dcf751]{background:#ea666633;border:1px solid rgba(234,102,102,.3);color:#ff8a8a}.confirm-btn.danger[data-v-86dcf751]:hover,.cancel-btn.danger[data-v-86dcf751]:hover{background:#ea66664d}.tags[data-v-86dcf751]{margin-top:8px}.tags .tag[data-v-86dcf751]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.cancel-btn[data-v-86dcf751]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff}.cancel-btn[data-v-86dcf751]:hover{background:#ffffff1a}@keyframes slideIn-86dcf751{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.namespace-layout[data-v-c4f8fbf9]{display:flex;gap:12px;flex:1;min-height:0}.namespace-list[data-v-c4f8fbf9]{width:336px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-c4f8fbf9]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-c4f8fbf9]{margin:0;font-size:18px}.namespace-count[data-v-c4f8fbf9]{color:#fff9;font-size:14px}.namespaces-container[data-v-c4f8fbf9]{flex:1;overflow-y:auto;margin-bottom:16px;padding-right:6px}.loading-state[data-v-c4f8fbf9]{display:flex;align-items:center;gap:8px;justify-content:center;padding:40px 0;color:#fff9}.loading-icon[data-v-c4f8fbf9]{animation:spin-c4f8fbf9 1s linear infinite}@keyframes spin-c4f8fbf9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state[data-v-c4f8fbf9]{text-align:center;padding:60px 20px;color:#fff9}.empty-icon[data-v-c4f8fbf9]{font-size:48px;margin-bottom:16px;opacity:.4}.empty-tip[data-v-c4f8fbf9]{font-size:14px;margin-top:8px}.namespace-card[data-v-c4f8fbf9]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease}.namespace-card[data-v-c4f8fbf9]:hover{background:#ffffff0d;border-color:#fff3}.namespace-card.active[data-v-c4f8fbf9]{border-color:#667eea;background:#667eea1a}.namespace-card-header[data-v-c4f8fbf9]{display:flex;justify-content:space-between;align-items:center}.namespace-name[data-v-c4f8fbf9]{font-weight:500;font-size:16px}.namespace-desc[data-v-c4f8fbf9]{color:#ffffffb3;font-size:14px;line-height:1.4;margin-bottom:0;margin-top:8px}.namespace-tools[data-v-c4f8fbf9]{display:flex;flex-wrap:wrap;gap:6px}.tool-tag[data-v-c4f8fbf9]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.tool-more[data-v-c4f8fbf9]{color:#ffffff80;font-size:12px;padding:4px 8px}.no-tools-indicator[data-v-c4f8fbf9]{color:#fff6;font-size:12px;font-style:italic}.add-btn[data-v-c4f8fbf9]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-c4f8fbf9]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.namespace-detail[data-v-c4f8fbf9]{flex:1;background:#ffffff08;border-radius:12px;padding:12px 24px;overflow-y:auto}.no-selection[data-v-c4f8fbf9]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff9}.placeholder-icon[data-v-c4f8fbf9]{font-size:64px;margin-bottom:24px;opacity:.3}.detail-header[data-v-c4f8fbf9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-c4f8fbf9]{margin:0;font-size:20px}.detail-actions[data-v-c4f8fbf9]{display:flex;gap:12px}.form-section[data-v-c4f8fbf9]{margin-bottom:32px}.form-item[data-v-c4f8fbf9]{margin-bottom:20px}.form-item label[data-v-c4f8fbf9]{display:block;margin-bottom:8px;color:#ffffffe6;font-weight:500}.form-item input[data-v-c4f8fbf9],.form-item textarea[data-v-c4f8fbf9]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;transition:all .3s ease}.form-item input[data-v-c4f8fbf9]:focus,.form-item textarea[data-v-c4f8fbf9]:focus{border-color:#667eea;outline:none;background:#ffffff14}.form-item input[data-v-c4f8fbf9]::placeholder,.form-item textarea[data-v-c4f8fbf9]::placeholder{color:#fff6}.form-item input[data-v-c4f8fbf9]:disabled,.form-item textarea[data-v-c4f8fbf9]:disabled{cursor:not-allowed;background:#ffffff08;color:#fff;border-color:#ffffff0d;opacity:.6}.form-item textarea[data-v-c4f8fbf9]{resize:vertical;min-height:80px;line-height:1.5}.required[data-v-c4f8fbf9]{color:#ff6b6b}.section-header[data-v-c4f8fbf9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header span[data-v-c4f8fbf9]{font-weight:500;color:#fffc}.action-btn[data-v-c4f8fbf9]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-c4f8fbf9]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-c4f8fbf9]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-c4f8fbf9]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-c4f8fbf9]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-c4f8fbf9]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-c4f8fbf9]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-c4f8fbf9]{padding:6px 12px;font-size:12px}.modal-form[data-v-c4f8fbf9]{display:flex;flex-direction:column;gap:16px}.delete-confirm[data-v-c4f8fbf9]{text-align:center;padding:20px 0}.delete-confirm p[data-v-c4f8fbf9]{color:#fffc;margin:8px 0}.delete-confirm .warning-text[data-v-c4f8fbf9]{color:#fff9;font-size:14px}.warning-icon[data-v-c4f8fbf9]{font-size:48px;color:#ffa726;margin-bottom:16px}.confirm-btn[data-v-c4f8fbf9],.cancel-btn[data-v-c4f8fbf9]{padding:10px 20px;border-radius:6px;cursor:pointer;transition:all .3s ease}.confirm-btn.danger[data-v-c4f8fbf9],.cancel-btn.danger[data-v-c4f8fbf9]{background:#ea666633;border:1px solid rgba(234,102,102,.3);color:#ff8a8a}.confirm-btn.danger[data-v-c4f8fbf9]:hover,.cancel-btn.danger[data-v-c4f8fbf9]:hover{background:#ea66664d}.tags[data-v-c4f8fbf9]{margin-top:8px}.tags .tag[data-v-c4f8fbf9]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.cancel-btn[data-v-c4f8fbf9]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff}.cancel-btn[data-v-c4f8fbf9]:hover{background:#ffffff1a}@keyframes slideIn-c4f8fbf9{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.setting-icon[data-v-4727c0a4]{color:#667eea;margin-left:4px;cursor:pointer}.config-container[data-v-29da4edc]{height:100vh;background:#ffffff05;color:#fff}.config-header[data-v-29da4edc]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid rgba(255,255,255,.1)}.header-actions[data-v-29da4edc]{display:flex;justify-content:space-between;align-items:center;width:100%}.header-actions-left[data-v-29da4edc]{display:flex;align-items:center;gap:14px}.config-header h1[data-v-29da4edc]{background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:24px;font-weight:600}.config-content[data-v-29da4edc]{display:flex;height:calc(100vh - 80px)}.config-nav[data-v-29da4edc]{width:242px;padding:20px;border-right:1px solid rgba(255,255,255,.1)}.nav-item[data-v-29da4edc]{display:flex;align-items:center;gap:10px;padding:12px;margin-bottom:8px;border-radius:8px;cursor:pointer;transition:all .3s}.nav-item[data-v-29da4edc]:hover{background:#ffffff0d}.nav-item.active[data-v-29da4edc]{background:#667eea1a;border:1px solid rgba(102,126,234,.2)}.config-details[data-v-29da4edc]{flex:1;padding:24px 30px;overflow-y:auto}.action-btn[data-v-29da4edc]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s}.action-btn[data-v-29da4edc]:hover{background:#ffffff1a} +.switch[data-v-d484b4a3]{position:relative;display:inline-flex;align-items:center;cursor:pointer}.switch input[data-v-d484b4a3]{opacity:0;width:0;height:0}.switch .slider[data-v-d484b4a3]{position:relative;display:inline-block;width:40px;height:20px;background:#ea66661a;border:1px solid rgba(234,102,102,.2);border-radius:20px;transition:all .3s;flex-shrink:0;vertical-align:middle}.switch .slider[data-v-d484b4a3]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:1px;background:#ea6666;border-radius:50%;transition:all .3s}.switch .switch-label[data-v-d484b4a3]{margin-left:8px;font-size:14px;line-height:20px;height:20px;color:#fff9;transition:color .3s}.switch .checkbox-label[data-v-d484b4a3]{display:flex;align-items:center;gap:8px;cursor:pointer}.switch .checkbox-label input[type=checkbox][data-v-d484b4a3]{width:16px;height:16px}.switch input:checked+.slider[data-v-d484b4a3]{background:#667eea1a;border-color:#667eea33}.switch input:checked+.slider[data-v-d484b4a3]:before{transform:translate(20px);background:#667eea}.switch input:checked+.slider+.switch-label[data-v-d484b4a3]{color:#667eea}.switch input:not(:checked)+.slider+.switch-label[data-v-d484b4a3]{color:#ea6666}.config-panel[data-v-cf54ca62]{position:relative}.config-header[data-v-cf54ca62]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.config-header h2[data-v-cf54ca62]{margin:0;font-size:20px;font-weight:500}.config-actions[data-v-cf54ca62]{display:flex;gap:12px}.loading-container[data-v-cf54ca62]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffffb3}.loading-spinner[data-v-cf54ca62]{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #667eea;border-radius:50%;animation:spin-cf54ca62 1s linear infinite;margin-bottom:16px}@keyframes spin-cf54ca62{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.config-groups[data-v-cf54ca62]{display:flex;flex-direction:column;gap:32px}.config-group[data-v-cf54ca62]{background:#ffffff08;border-radius:12px;padding:24px;border:1px solid rgba(255,255,255,.1);transition:all .3s ease}.config-group[data-v-cf54ca62]:hover{background:#ffffff0d;border-color:#ffffff26}.group-header[data-v-cf54ca62]{display:flex;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.group-icon[data-v-cf54ca62]{font-size:20px;margin-right:12px;opacity:.8}.group-divider[data-v-cf54ca62]{flex:1;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.1) 0%,transparent 100%);margin-left:16px}.config-items[data-v-cf54ca62]{display:flex;flex-direction:column;gap:20px;padding:16px}.config-item[data-v-cf54ca62]{position:relative;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:16px;transition:all .3s ease}.config-item[data-v-cf54ca62]:hover{border-color:#ffffff26;background:#ffffff05}.config-item.modified[data-v-cf54ca62]{border-left:3px solid #f9a825}.config-item-content[data-v-cf54ca62]{padding:14px 16px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.config-item-content.vertical-layout[data-v-cf54ca62]{flex-direction:column;align-items:stretch;gap:12px}.config-item-content.vertical-layout .config-item-info[data-v-cf54ca62]{width:100%}.config-item-content.vertical-layout .config-control[data-v-cf54ca62]{width:100%;min-width:auto}.config-item-header[data-v-cf54ca62]{display:flex;flex-direction:column;gap:6px}.config-item-info[data-v-cf54ca62]{flex:1;min-width:0}.config-label[data-v-cf54ca62]{font-weight:500;color:#ffffffe6;margin-bottom:4px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.vertical-layout .config-label[data-v-cf54ca62]{margin-bottom:0;font-size:14px;line-height:1.4}.config-key[data-v-cf54ca62]{display:block;font-size:12px;color:#ffffff80;margin-bottom:6px;font-family:monospace;background:#ffffff0d;padding:2px 6px;border-radius:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vertical-layout .config-key[data-v-cf54ca62]{margin-bottom:0;display:inline-block;max-width:fit-content}.config-description[data-v-cf54ca62]{font-size:13px;color:#ffffffb3;margin:6px 0;line-height:1.4}.type-badge[data-v-cf54ca62]{font-size:12px;padding:2px 6px;border-radius:3px;color:#ffffffe6;font-weight:400}.type-badge.boolean[data-v-cf54ca62]{background:#2196f333;color:#90caf9}.type-badge.number[data-v-cf54ca62]{background:#4caf5033;color:#a5d6a7}.type-badge.string[data-v-cf54ca62]{background:#9c27b033;color:#ce93d8}.type-badge.select[data-v-cf54ca62]{background:#ff980033;color:#ffcc80}.modified-badge[data-v-cf54ca62]{background:#f9a82533;color:#ffcc80;font-size:12px;padding:2px 6px;border-radius:3px;font-weight:400}.range-info[data-v-cf54ca62]{font-size:12px;color:#fff9;background:#ffffff0d;padding:3px 8px;border-radius:4px;display:inline-block;margin-top:6px;font-family:monospace}.config-control[data-v-cf54ca62]{min-width:160px}.vertical-layout .config-control[data-v-cf54ca62]{min-width:auto;max-width:400px}.config-input[data-v-cf54ca62]{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:8px 12px;color:#ffffffe6;transition:all .3s}.config-input[data-v-cf54ca62]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.config-input[data-v-cf54ca62]::placeholder{color:#fff6}.config-input.number-input[data-v-cf54ca62]{font-family:monospace;text-align:right}.empty-state[data-v-cf54ca62]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffff80}.message-toast[data-v-cf54ca62]{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:8px;color:#fff;font-weight:500;z-index:1000;box-shadow:0 4px 12px #0000004d;transform:translate(100%);animation:slide-in-cf54ca62 .3s ease-out forwards}.message-toast.success[data-v-cf54ca62]{background:#10b981}.message-toast.error[data-v-cf54ca62]{background:#ef4444}.message-fade-enter-active[data-v-cf54ca62],.message-fade-leave-active[data-v-cf54ca62]{transition:all .3s ease}.message-fade-enter-from[data-v-cf54ca62],.message-fade-leave-to[data-v-cf54ca62]{transform:translate(100%);opacity:0}@keyframes slide-in-cf54ca62{0%{transform:translate(100%)}to{transform:translate(0)}}.sub-group[data-v-cf54ca62]{margin-bottom:24px;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;background:#ffffff05}.sub-group-header[data-v-cf54ca62]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#ffffff0d;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .3s ease}.sub-group-header[data-v-cf54ca62]:hover{background:#ffffff14}.sub-group-info[data-v-cf54ca62]{display:flex;align-items:center;gap:8px}.sub-group-icon[data-v-cf54ca62]{font-size:14px}.sub-group-title[data-v-cf54ca62]{margin:0;font-size:14px;font-weight:500;color:#ffffffe6}.item-count[data-v-cf54ca62]{font-size:12px;color:#fff9;background:#ffffff1a;padding:2px 6px;border-radius:10px}.collapse-icon[data-v-cf54ca62]{font-size:12px;color:#fff9;transition:transform .3s ease}.collapse-icon.collapsed[data-v-cf54ca62]{transform:rotate(-90deg)}.config-stats[data-v-cf54ca62]{margin-top:24px;color:#fff9}.header-left[data-v-cf54ca62],.header-right[data-v-cf54ca62]{display:flex;align-items:center}.config-stats[data-v-cf54ca62]{display:flex;margin-left:16px;gap:12px}.stat-item[data-v-cf54ca62]{display:flex;align-items:center;background:#ffffff0d;padding:4px 8px;border-radius:4px;font-size:12px}.stat-label[data-v-cf54ca62]{color:#fff9;margin-right:4px}.stat-value[data-v-cf54ca62]{color:#ffffffe6;font-weight:500}.stat-value.modified[data-v-cf54ca62]{color:#f9a825}.search-box[data-v-cf54ca62]{position:relative;margin-right:16px}.search-input[data-v-cf54ca62]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:6px 12px 6px 32px;color:#ffffffe6;width:220px;font-size:14px;transition:all .3s}.search-input[data-v-cf54ca62]:focus{outline:none;border-color:#667eea80;background:#ffffff14;width:260px}.search-input[data-v-cf54ca62]::placeholder{color:#fff6}.search-icon[data-v-cf54ca62]{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.6}.toggle-btn[data-v-cf54ca62]{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#ffffffb3;padding:6px 12px;margin-right:12px;font-size:14px;cursor:pointer;transition:all .3s}.toggle-btn[data-v-cf54ca62]:hover{background:#ffffff26;color:#ffffffe6}.toggle-btn.active[data-v-cf54ca62]{background:#667eea33;border-color:#667eea80;color:#667eea}.group-info[data-v-cf54ca62]{display:flex;align-items:center}.group-actions[data-v-cf54ca62]{display:flex;gap:8px;margin-left:auto;margin-right:16px}.reset-btn[data-v-cf54ca62]{background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:4px;color:#ef5350;padding:4px 8px;font-size:12px;cursor:pointer;transition:all .3s}.reset-btn[data-v-cf54ca62]:hover:not(:disabled){background:#f4433633;border-color:#f4433680}.reset-btn[data-v-cf54ca62]:disabled{opacity:.5;cursor:not-allowed}.import-export-actions[data-v-cf54ca62]{display:flex;gap:8px;margin-right:16px}.action-btn[data-v-cf54ca62]{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fffc;padding:6px 10px;font-size:12px;cursor:pointer;transition:all .3s;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.action-btn[data-v-cf54ca62]:hover{background:#ffffff1f;color:#fffffff2;border-color:#ffffff40}.config-config[data-v-c91688e7]{height:100%;overflow:hidden;display:flex;flex-direction:column}.panel-header[data-v-c91688e7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1)}.panel-actions[data-v-c91688e7]{display:flex;gap:12px}[data-v-c91688e7] .panel-header h2{margin-bottom:0!important}.modal-overlay[data-v-baaf1c89]{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}.modal-container[data-v-baaf1c89]{background:linear-gradient(135deg,#667eea1a,#764ba226);border:1px solid rgba(255,255,255,.1);border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0006}.modal-header[data-v-baaf1c89]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h3[data-v-baaf1c89]{margin:0;font-size:18px;font-weight:500;color:#ffffffe6}.close-btn[data-v-baaf1c89]{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-baaf1c89]:hover{color:#ffffffe6}.modal-content[data-v-baaf1c89]{padding:24px}.modal-footer[data-v-baaf1c89]{padding:20px 24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:flex-end;gap:12px}.cancel-btn[data-v-baaf1c89],.confirm-btn[data-v-baaf1c89]{padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .3s}.cancel-btn[data-v-baaf1c89]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fffc}.cancel-btn[data-v-baaf1c89]:hover{background:#ffffff1a}.confirm-btn[data-v-baaf1c89]{background:#667eea1a;border:1px solid rgba(102,126,234,.2);color:#667eea}.confirm-btn[data-v-baaf1c89]:hover{background:#667eea33}.modal-enter-active[data-v-baaf1c89],.modal-leave-active[data-v-baaf1c89]{transition:opacity .3s ease}.modal-enter-from[data-v-baaf1c89],.modal-leave-to[data-v-baaf1c89]{opacity:0}.tool-selection-content[data-v-0237b039]{min-height:400px;max-height:600px;overflow-y:auto}.tool-controls[data-v-0237b039]{display:flex;gap:12px;margin-bottom:16px;padding:12px;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.search-container[data-v-0237b039]{flex:1}.search-input[data-v-0237b039]{width:100%;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff0d;color:#ffffffe6;font-size:14px;transition:all .3s}.search-input[data-v-0237b039]:focus{outline:none;border-color:#667eea80;background:#ffffff1a}.search-input[data-v-0237b039]::placeholder{color:#ffffff80}.sort-container[data-v-0237b039]{min-width:140px}.sort-select[data-v-0237b039]{width:100%;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff0d;color:#ffffffe6;font-size:14px;cursor:pointer}.tool-summary[data-v-0237b039]{margin-bottom:16px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1)}.summary-text[data-v-0237b039]{color:#ffffffb3;font-size:13px}.tool-group[data-v-0237b039]{border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;margin-bottom:8px}.tool-group-header[data-v-0237b039]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#ffffff0d;cursor:pointer;transition:all .3s;border-bottom:1px solid rgba(255,255,255,.1)}.tool-group-header[data-v-0237b039]:hover{background:#ffffff14}.tool-group-header.collapsed[data-v-0237b039]{border-bottom:none}.group-title-area[data-v-0237b039]{display:flex;align-items:center;gap:8px;flex:1}.collapse-icon[data-v-0237b039]{color:#fff9;transition:transform .3s}.group-icon[data-v-0237b039]{color:#fffc}.group-name[data-v-0237b039]{font-weight:500;color:#ffffffe6}.group-count[data-v-0237b039]{color:#fff9;font-size:13px}.group-actions[data-v-0237b039]{display:flex;align-items:center}.group-enable-all[data-v-0237b039]{display:flex;align-items:center;gap:6px;cursor:pointer;color:#fffc;font-size:13px}.group-enable-checkbox[data-v-0237b039]{cursor:pointer}.tool-group-content[data-v-0237b039]{max-height:300px;overflow-y:auto;transition:all .3s}.tool-group-content.collapsed[data-v-0237b039]{max-height:0;overflow:hidden}.tool-selection-item[data-v-0237b039]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05);transition:background-color .3s}.tool-selection-item[data-v-0237b039]:hover{background:#ffffff08}.tool-selection-item[data-v-0237b039]:last-child{border-bottom:none}.tool-info[data-v-0237b039]{flex:1}.tool-selection-name[data-v-0237b039]{font-weight:500;color:#ffffffe6;margin-bottom:4px}.tool-selection-desc[data-v-0237b039]{color:#fff9;font-size:13px;line-height:1.4}.tool-actions[data-v-0237b039]{margin-left:12px}.tool-enable-switch[data-v-0237b039]{position:relative;display:inline-block;width:44px;height:24px;cursor:pointer}.tool-enable-checkbox[data-v-0237b039]{opacity:0;width:0;height:0}.tool-enable-slider[data-v-0237b039]{position:absolute;top:0;left:0;right:0;bottom:0;background:#fff3;border-radius:24px;transition:all .3s}.tool-enable-slider[data-v-0237b039]:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .3s}.tool-enable-checkbox:checked+.tool-enable-slider[data-v-0237b039]{background:#667eeacc}.tool-enable-checkbox:checked+.tool-enable-slider[data-v-0237b039]:before{transform:translate(20px)}.empty-state[data-v-0237b039]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffff80}.empty-icon[data-v-0237b039]{font-size:48px;margin-bottom:16px;opacity:.6}.agent-layout[data-v-c305016e]{display:flex;gap:30px;flex:1;min-height:0}.agent-list[data-v-c305016e]{width:320px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-c305016e]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-c305016e]{margin:0;font-size:18px}.agent-count[data-v-c305016e]{color:#fff9;font-size:14px}.agents-container[data-v-c305016e]{flex:1;overflow-y:auto;margin-bottom:16px}.loading-state[data-v-c305016e]{display:flex;align-items:center;gap:8px;justify-content:center;padding:40px 0;color:#fff9}.empty-state[data-v-c305016e]{text-align:center;padding:60px 20px;color:#fff9}.empty-icon[data-v-c305016e]{font-size:48px;margin-bottom:16px;opacity:.4}.empty-tip[data-v-c305016e]{font-size:14px;margin-top:8px}.agent-card[data-v-c305016e]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease}.agent-card[data-v-c305016e]:hover{background:#ffffff0d;border-color:#fff3}.agent-card.active[data-v-c305016e]{border-color:#667eea;background:#667eea1a}.agent-card-header[data-v-c305016e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.agent-name[data-v-c305016e]{font-weight:500;font-size:16px}.agent-desc[data-v-c305016e]{color:#ffffffb3;font-size:14px;line-height:1.4;margin-bottom:12px}.agent-model[data-v-c305016e]{display:flex;flex-wrap:wrap;gap:6px}.model-tag[data-v-c305016e]{display:inline-block;padding:4px 8px;margin-bottom:10px;background:#b566ea33;border-radius:4px;font-size:12px;color:#a8b3ff}.agent-tools[data-v-c305016e]{display:flex;flex-wrap:wrap;gap:6px}.tool-tag[data-v-c305016e]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.tool-more[data-v-c305016e]{color:#ffffff80;font-size:12px;padding:4px 8px}.no-tools-indicator[data-v-c305016e]{color:#fff6;font-size:12px;font-style:italic}.add-btn[data-v-c305016e]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-c305016e]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.agent-detail[data-v-c305016e]{flex:1;background:#ffffff08;border-radius:12px;padding:24px;overflow-y:auto}.no-selection[data-v-c305016e]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff9}.placeholder-icon[data-v-c305016e]{font-size:64px;margin-bottom:24px;opacity:.3}.detail-header[data-v-c305016e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-c305016e]{margin:0;font-size:20px}.detail-actions[data-v-c305016e]{display:flex;gap:12px}.form-section[data-v-c305016e]{margin-bottom:32px}.form-item[data-v-c305016e]{margin-bottom:20px}.form-item label[data-v-c305016e]{display:block;margin-bottom:8px;color:#ffffffe6;font-weight:500}.form-item input[data-v-c305016e],.form-item textarea[data-v-c305016e]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;transition:all .3s ease}.form-item input[data-v-c305016e]:focus,.form-item textarea[data-v-c305016e]:focus{border-color:#667eea;outline:none;background:#ffffff14}.form-item input[data-v-c305016e]::placeholder,.form-item textarea[data-v-c305016e]::placeholder{color:#fff6}.form-item textarea[data-v-c305016e]{resize:vertical;min-height:80px;line-height:1.5}.required[data-v-c305016e]{color:#ff6b6b}.model-section h4[data-v-c305016e],.tools-section h4[data-v-c305016e]{margin:0 0 20px;font-size:18px;color:#ffffffe6}.section-header[data-v-c305016e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header span[data-v-c305016e]{font-weight:500;color:#fffc}.tools-grid[data-v-c305016e]{display:flex;flex-direction:column;gap:8px}.tool-item[data-v-c305016e]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;transition:all .3s ease}.tool-item.assigned[data-v-c305016e]{border-color:#667eea4d;background:#667eea1a}.tool-info[data-v-c305016e]{flex:1}.tool-info .tool-name[data-v-c305016e]{display:block;font-weight:500;margin-bottom:4px}.tool-info .tool-desc[data-v-c305016e]{font-size:12px;color:#fff9;line-height:1.3}.no-tools[data-v-c305016e]{display:flex;align-items:center;justify-content:center;gap:8px;padding:40px;color:#fff6;font-style:italic}.action-btn[data-v-c305016e]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-c305016e]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-c305016e]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-c305016e]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-c305016e]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-c305016e]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-c305016e]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-c305016e]{padding:6px 12px;font-size:12px}.modal-form[data-v-c305016e]{display:flex;flex-direction:column;gap:16px}.delete-confirm[data-v-c305016e]{text-align:center;padding:20px 0}.delete-confirm p[data-v-c305016e]{color:#fffc;margin:8px 0}.delete-confirm .warning-text[data-v-c305016e]{color:#fff9;font-size:14px}.warning-icon[data-v-c305016e]{font-size:48px;color:#ffa726;margin-bottom:16px}.confirm-btn[data-v-c305016e],.cancel-btn[data-v-c305016e]{padding:10px 20px;border-radius:6px;cursor:pointer;transition:all .3s ease}.confirm-btn.danger[data-v-c305016e],.cancel-btn.danger[data-v-c305016e]{background:#ea666633;border:1px solid rgba(234,102,102,.3);color:#ff8a8a}.confirm-btn.danger[data-v-c305016e]:hover,.cancel-btn.danger[data-v-c305016e]:hover{background:#ea66664d}.cancel-btn[data-v-c305016e]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff}.cancel-btn[data-v-c305016e]:hover{background:#ffffff1a}.error-toast[data-v-c305016e],.success-toast[data-v-c305016e]{position:fixed;top:20px;right:20px;display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;color:#fff;cursor:pointer;z-index:1000;animation:slideIn-c305016e .3s ease}.error-toast[data-v-c305016e]{background:#ea6666e6;border:1px solid rgba(234,102,102,.5)}.success-toast[data-v-c305016e]{background:#66ea66e6;border:1px solid rgba(102,234,102,.5)}@keyframes slideIn-c305016e{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.model-chooser[data-v-c305016e]{position:relative;display:inline-block}.model-btn[data-v-c305016e]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:1.5px solid #667eea;border-radius:8px;color:#8da2fb;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:600;outline:none}.model-btn[data-v-c305016e]:hover{background:#667eea26;border-color:#7c9eff;color:#a3bffa;box-shadow:0 0 15px #667eea33}.model-btn[data-v-c305016e]:focus{box-shadow:0 0 0 3px #667eea80}.current-model[data-v-c305016e]{color:inherit;font-weight:600;min-width:40px;text-align:left;text-shadow:none}.chevron[data-v-c305016e]{transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.9;filter:none}.model-dropdown[data-v-c305016e]{position:absolute;top:100%;left:0;z-index:9999;margin-top:4px;background:linear-gradient(135deg,#282832f2,#1e1e28f2);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(102,126,234,.3);border-radius:8px;box-shadow:0 8px 32px #0006,0 0 0 1px #667eea33;min-width:300px;animation:slideDown-c305016e .2s ease}.dropdown-header[data-v-c305016e]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(102,126,234,.2);font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea1a,#667eea0d)}.close-btn[data-v-c305016e]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.close-btn[data-v-c305016e]:hover{background:#ffffff1a;color:#fffc}.model-options[data-v-c305016e]{padding:8px 0}.model-option[data-v-c305016e]{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:none;border:none;color:#ffffffb3;cursor:pointer;transition:all .2s ease;text-align:left}.model-option[data-v-c305016e]:hover{background:#ffffff0d;color:#ffffffe6}.model-option.active[data-v-c305016e]{background:linear-gradient(135deg,#667eea33,#667eea1a);color:#7c9eff;border-left:3px solid #667eea;padding-left:13px}.model-type[data-v-c305016e]{display:inline-block;min-width:24px;font-size:12px;font-weight:600;opacity:.8}.model-name[data-v-c305016e]{flex:1;font-size:14px;font-weight:500}.check-icon[data-v-c305016e]{color:#667eea;opacity:.8}.spacer[data-v-c305016e]{display:inline-block;width:12px}.backdrop[data-v-c305016e]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998;background:transparent}@keyframes slideDown-c305016e{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.multi-language-content[data-v-c305016e]{display:flex;flex-direction:column;gap:20px;padding:20px 0}.stats-section[data-v-c305016e]{display:flex;gap:20px;padding:15px;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.stat-item[data-v-c305016e]{display:flex;flex-direction:column;gap:5px}.stat-label[data-v-c305016e]{font-size:12px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.stat-value[data-v-c305016e]{font-size:16px;font-weight:600;color:#fff}.language-selection[data-v-c305016e]{display:flex;flex-direction:column;gap:10px}.selection-label[data-v-c305016e]{font-size:14px;font-weight:500;color:#fffc}.language-select[data-v-c305016e]{padding:10px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:14px;outline:none;transition:all .2s ease}.language-select[data-v-c305016e]:focus{border-color:#007acc;background:#ffffff26}.language-select option[data-v-c305016e]{background:#2d2d2d;color:#fff}.warning-section[data-v-c305016e]{margin:10px 0}.warning-box[data-v-c305016e]{display:flex;align-items:flex-start;gap:12px;padding:15px;background:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-radius:8px}.warning-icon[data-v-c305016e]{color:#ffc107;font-size:20px;flex-shrink:0;margin-top:2px}.warning-text[data-v-c305016e]{flex:1}.warning-text p[data-v-c305016e]{margin:0;color:#ffffffe6;font-size:14px;line-height:1.5}.loading-icon[data-v-c305016e]{animation:spin-c305016e 1s linear infinite}@keyframes spin-c305016e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.model-dropdown[data-v-c305016e]{right:-8px;left:-8px;width:auto;min-width:auto}.model-btn[data-v-c305016e]{padding:6px 10px;font-size:13px}.current-model[data-v-c305016e]{min-width:35px}}@media (prefers-color-scheme: light){.model-dropdown[data-v-c305016e]{background:#fffffff2;border-color:#0000001a;box-shadow:0 8px 32px #0000001a}.dropdown-header[data-v-c305016e]{color:#000c;border-bottom-color:#0000001a}.close-btn[data-v-c305016e]{color:#0009}.close-btn[data-v-c305016e]:hover{background:#0000001a;color:#000c}.model-option[data-v-c305016e]{color:#000000b3}.model-option[data-v-c305016e]:hover{background:#0000000d;color:#000000e6}}.custom-select[data-v-579d8359]{position:relative;display:inline-block}.select-btn[data-v-579d8359]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:1.5px solid #667eea;border-radius:8px;color:#8da2fb;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:600;outline:none}.select-btn[data-v-579d8359]:hover{background:#667eea26;border-color:#7c9eff;color:#a3bffa;box-shadow:0 0 15px #667eea33}.select-btn[data-v-579d8359]:focus{box-shadow:0 0 0 3px #667eea80}.current-option[data-v-579d8359]{color:inherit;font-weight:600;min-width:40px;text-align:left;text-shadow:none;display:flex;align-items:center;gap:0}.current-option .option-icon[data-v-579d8359]{color:inherit;opacity:.8}.chevron[data-v-579d8359]{transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.9;filter:none}.select-dropdown[data-v-579d8359]{position:absolute;top:100%;z-index:99999;margin-top:4px;background:linear-gradient(135deg,#282832f2,#1e1e28f2);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(102,126,234,.3);border-radius:8px;box-shadow:0 8px 32px #0006,0 0 0 1px #667eea33;min-width:300px}.select-dropdown.dropdown-top[data-v-579d8359]{top:auto;bottom:100%;margin-top:0;margin-bottom:4px}.dropdown-header[data-v-579d8359]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(102,126,234,.2);font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea1a,#667eea0d)}.close-btn[data-v-579d8359]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.close-btn[data-v-579d8359]:hover{background:#ffffff1a;color:#fffc}.select-options[data-v-579d8359]{padding:8px 0}.select-option[data-v-579d8359]{display:flex;align-items:center;gap:0;width:100%;padding:10px 16px;background:none;border:none;color:#ffffffb3;cursor:pointer;transition:all .2s ease;text-align:left}.select-option[data-v-579d8359]:hover{background:#ffffff0d;color:#ffffffe6}.select-option.active[data-v-579d8359]{background:linear-gradient(135deg,#667eea33,#667eea1a);color:#7c9eff;border-left:3px solid #667eea;padding-left:13px}.option-type[data-v-579d8359]{display:inline-block;min-width:24px;font-size:12px;font-weight:600;opacity:.8}.option-name[data-v-579d8359]{flex:1;font-size:14px;font-weight:500}.option-icon[data-v-579d8359]{color:#fff9;margin-right:0}.check-icon[data-v-579d8359]{color:#667eea;opacity:.8}.spacer[data-v-579d8359]{display:inline-block;width:12px}.backdrop[data-v-579d8359]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99998;background:transparent}.slideDown-enter-active[data-v-579d8359],.slideDown-leave-active[data-v-579d8359]{transition:all .2s ease;transform-origin:top}.slideDown-enter-from[data-v-579d8359],.slideDown-leave-to[data-v-579d8359]{opacity:0;transform:translateY(-8px) scale(.95)}.grouped-select[data-v-08a99d28]{position:relative;width:100%}.select-btn[data-v-08a99d28]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffffe6;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .3s ease;font-size:14px}.select-btn[data-v-08a99d28]:hover{background:#ffffff1a;border-color:#fff3}.selected-text[data-v-08a99d28]{display:flex;align-items:center;gap:8px;flex:1}.placeholder-text[data-v-08a99d28]{color:#ffffff80;flex:1}.model-category[data-v-08a99d28]{color:#a8b3ff;font-size:12px;font-weight:500}.chevron[data-v-08a99d28]{color:#fff9;transition:transform .3s ease}.chevron.rotated[data-v-08a99d28]{transform:rotate(180deg)}.dropdown-overlay[data-v-08a99d28]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999}.dropdown-content[data-v-08a99d28]{position:absolute;top:100%;left:0;right:0;background:#1a1a1a;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 8px 32px #0006;z-index:1000;max-height:500px;overflow:hidden;display:flex;flex-direction:column}.dropdown-header[data-v-08a99d28]{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid rgba(255,255,255,.1)}.dropdown-header h3[data-v-08a99d28]{margin:0;color:#ffffffe6;font-size:16px;font-weight:600}.close-btn[data-v-08a99d28]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;transition:all .3s ease}.close-btn[data-v-08a99d28]:hover{background:#ffffff1a;color:#ffffffe6}.search-container[data-v-08a99d28]{position:relative;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.search-input[data-v-08a99d28]{width:100%;padding:8px 12px 8px 36px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ffffffe6;font-size:14px;outline:none;transition:all .3s ease}.search-input[data-v-08a99d28]:focus{border-color:#a8b3ff;background:#ffffff1a}.search-input[data-v-08a99d28]::placeholder{color:#ffffff80}.search-icon[data-v-08a99d28]{position:absolute;left:24px;top:50%;transform:translateY(-50%);color:#ffffff80;font-size:16px}.groups-container[data-v-08a99d28]{flex:1;overflow-y:auto;padding:8px}.model-group[data-v-08a99d28]{margin-bottom:16px}.group-header[data-v-08a99d28]{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:0 8px}.group-title[data-v-08a99d28]{color:#a8b3ff;font-weight:600;font-size:14px}.group-count[data-v-08a99d28]{color:#ffffff80;font-size:12px}.models-grid[data-v-08a99d28]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;padding:0 8px}.model-option[data-v-08a99d28]{display:flex;flex-direction:column;align-items:flex-start;padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ffffffe6;cursor:pointer;transition:all .3s ease;text-align:left;min-height:60px}.model-option[data-v-08a99d28]:hover{background:#ffffff1a;border-color:#fff3}.model-option.selected[data-v-08a99d28]{background:#a8b3ff33;border-color:#a8b3ff}.model-info[data-v-08a99d28]{flex:1;width:100%}.model-name[data-v-08a99d28]{font-weight:500;font-size:14px;margin-bottom:4px;color:#ffffffe6}.model-description[data-v-08a99d28]{font-size:12px;color:#fff9;line-height:1.3}.model-category-tag[data-v-08a99d28]{align-self:flex-end;color:#a8b3ff;font-size:11px;font-weight:500;margin-top:4px}@media (max-width: 768px){.models-grid[data-v-08a99d28]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media (max-width: 480px){.models-grid[data-v-08a99d28]{grid-template-columns:1fr}}.model-layout[data-v-be6fda70]{display:flex;gap:30px;flex:1;min-height:0}.model-list[data-v-be6fda70]{width:320px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-be6fda70]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-be6fda70]{margin:0;font-size:18px}.model-count[data-v-be6fda70]{color:#fff9;font-size:14px}.models-container[data-v-be6fda70]{flex:1;overflow-y:auto;margin-bottom:16px}.loading-state[data-v-be6fda70]{display:flex;align-items:center;gap:8px;justify-content:center;padding:40px 0;color:#fff9}.empty-state[data-v-be6fda70]{text-align:center;padding:60px 20px;color:#fff9}.empty-icon[data-v-be6fda70]{font-size:48px;margin-bottom:16px;opacity:.4}.model-card[data-v-be6fda70]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease}.model-card[data-v-be6fda70]:hover{background:#ffffff0d;border-color:#fff3}.model-card.active[data-v-be6fda70]{border-color:#667eea;background:#667eea1a}.model-card-header[data-v-be6fda70]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.model-name[data-v-be6fda70]{font-weight:500;font-size:16px}.model-desc[data-v-be6fda70]{color:#ffffffb3;font-size:14px;line-height:1.4;margin-bottom:12px}.add-btn[data-v-be6fda70]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-be6fda70]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.model-detail[data-v-be6fda70]{flex:1;background:#ffffff08;border-radius:12px;padding:24px;overflow-y:auto}.no-selection[data-v-be6fda70]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff9}.placeholder-icon[data-v-be6fda70]{font-size:64px;margin-bottom:24px;opacity:.3}.detail-header[data-v-be6fda70]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-be6fda70]{margin:0;font-size:20px}.detail-actions[data-v-be6fda70]{display:flex;gap:12px}.form-item[data-v-be6fda70]{margin-bottom:20px}.form-item label[data-v-be6fda70]{display:block;margin-bottom:8px;color:#ffffffe6;font-weight:500}.form-item input[data-v-be6fda70],.form-item textarea[data-v-be6fda70]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;transition:all .3s ease}.form-item input[data-v-be6fda70]:focus,.form-item textarea[data-v-be6fda70]:focus{border-color:#667eea;outline:none;background:#ffffff14}.form-item input[data-v-be6fda70]::placeholder,.form-item textarea[data-v-be6fda70]::placeholder{color:#fff6}.form-item textarea[data-v-be6fda70]{resize:vertical;min-height:80px;line-height:1.5}.required[data-v-be6fda70]{color:#ff6b6b}.action-btn[data-v-be6fda70]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-be6fda70]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-be6fda70]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-be6fda70]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-be6fda70]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-be6fda70]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-be6fda70]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-be6fda70]{padding:6px 12px;font-size:12px}.modal-form[data-v-be6fda70]{display:flex;flex-direction:column;gap:16px}.delete-confirm[data-v-be6fda70]{text-align:center;padding:20px 0}.delete-confirm p[data-v-be6fda70]{color:#fffc;margin:8px 0}.delete-confirm .warning-text[data-v-be6fda70]{color:#fff9;font-size:14px}.warning-icon[data-v-be6fda70]{font-size:48px;color:#ffa726;margin-bottom:16px}.confirm-btn[data-v-be6fda70],.cancel-btn[data-v-be6fda70]{padding:10px 20px;border-radius:6px;cursor:pointer;transition:all .3s ease}.confirm-btn.danger[data-v-be6fda70],.cancel-btn.danger[data-v-be6fda70]{background:#ea666633;border:1px solid rgba(234,102,102,.3);color:#ff8a8a}.confirm-btn.danger[data-v-be6fda70]:hover,.cancel-btn.danger[data-v-be6fda70]:hover{background:#ea66664d}.cancel-btn[data-v-be6fda70]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff}.cancel-btn[data-v-be6fda70]:hover{background:#ffffff1a}.model-type[data-v-be6fda70]{display:flex;flex-wrap:wrap;gap:6px}.model-tag[data-v-be6fda70]{display:inline-block;padding:4px 8px;background:#b566ea33;border-radius:4px;font-size:12px;color:#a8b3ff}.model-status[data-v-be6fda70]{display:flex;align-items:center;gap:8px}.default-badge[data-v-be6fda70]{display:flex;align-items:center;gap:4px;padding:2px 6px;background:#ffc10733;border:1px solid rgba(255,193,7,.3);border-radius:12px;font-size:11px;color:#ffc107;font-weight:500}.current-default[data-v-be6fda70]{display:flex;align-items:center;gap:4px;padding:8px 12px;background:#ffc10733;border:1px solid rgba(255,193,7,.3);border-radius:8px;font-size:12px;color:#ffc107;font-weight:500}.action-btn.default[data-v-be6fda70]{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);color:#ffc107}.action-btn.default[data-v-be6fda70]:hover:not(:disabled){background:#ffc10733;border-color:#ffc10780}.action-btn.default[data-v-be6fda70]:disabled{opacity:.5;cursor:not-allowed}.api-key-container[data-v-be6fda70]{display:flex;gap:8px;align-items:center}.api-key-container input[data-v-be6fda70]{flex:1}.check-btn[data-v-be6fda70]{padding:12px 16px;background:#a8b3ff1a;border:1px solid rgba(168,179,255,.3);border-radius:8px;color:#a8b3ff;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:48px}.check-btn[data-v-be6fda70]:hover:not(:disabled){background:#a8b3ff33;border-color:#a8b3ff80}.check-btn[data-v-be6fda70]:disabled{opacity:.5;cursor:not-allowed}.loading-icon[data-v-be6fda70]{animation:spin-be6fda70 1s linear infinite}@keyframes spin-be6fda70{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-toast[data-v-be6fda70],.success-toast[data-v-be6fda70]{position:fixed;top:20px;right:20px;display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;color:#fff;cursor:pointer;z-index:1000;animation:slideIn-be6fda70 .3s ease}.error-toast[data-v-be6fda70]{background:#ea6666e6;border:1px solid rgba(234,102,102,.5)}.success-toast[data-v-be6fda70]{background:#66ea66e6;border:1px solid rgba(102,234,102,.5)}@keyframes slideIn-be6fda70{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.readonly-field[data-v-be6fda70]{width:100%;padding:12px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffffe6;font-size:14px;min-height:48px;display:flex;align-items:center;cursor:default;-webkit-user-select:none;user-select:none}.readonly-field.description-field[data-v-be6fda70]{min-height:80px;align-items:flex-start;padding-top:12px;line-height:1.5;white-space:pre-wrap}.description-field[data-v-be6fda70]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffffe6;font-size:14px;min-height:80px;resize:vertical;transition:all .3s ease;font-family:inherit}.description-field[data-v-be6fda70]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.description-field[data-v-be6fda70]::placeholder{color:#fff6}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace}.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);background-color:var(--vscode-editor-background)}.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground, inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .margin-view-overlays .line-numbers{font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .view-overlays .current-line,.monaco-editor .margin-view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box}.mtkcontrol{color:#fff!important;background:#960000!important}.mtkoverflow{background-color:var(--vscode-button-background, var(--vscode-editor-background));color:var(--vscode-button-foreground, var(--vscode-editor-foreground));border-width:1px;border-style:solid;border-color:var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkw{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .minimap.slider-mouseover .minimap-slider.active{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground)!important}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-single,.monaco-list.selection-multiple{outline:0!important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-select-box-dropdown-padding{--dropdown-padding-top: 1px;--dropdown-padding-bottom: 1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top: 3px;--dropdown-padding-bottom: 4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:.7}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{overflow:hidden;max-height:0px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:5px}.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .icon,.monaco-action-bar .action-item .codicon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.6}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:solid 1px rgba(204,204,204,.4);border-bottom-color:#bbb6;box-shadow:inset 0 -1px #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px rgb(111,195,223);box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px #0F4A85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:solid 1px rgba(51,51,51,.6);border-bottom-color:#4449;box-shadow:inset 0 -1px #4449;color:#ccc}:root{--vscode-sash-size: 4px;--vscode-sash-hover-size: 4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";height:calc(var(--vscode-sash-size) * 2);width:calc(var(--vscode-sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size) * -.5);top:calc(var(--vscode-sash-size) * -1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size) * -.5);bottom:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size) * -.5);left:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size) * -.5);right:calc(var(--vscode-sash-size) * -1)}.monaco-sash:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.hover:before,.monaco-sash.active:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - (var(--vscode-sash-hover-size) / 2))}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - (var(--vscode-sash-hover-size) / 2))}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:initial}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:initial;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-th,.monaco-table-td{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:"";position:absolute;left:calc(var(--vscode-sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-light .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls,.hc-light .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls,.hc-light .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:#fdff00cc}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:#fdff00cc}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:#ffffff70}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:#ffffff70}99%{background:transparent}}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-twistie,.monaco-tl-contents{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translate(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{display:flex!important;align-items:center;justify-content:center;cursor:grab;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1!important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border, transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled:focus,.monaco-button.disabled{opacity:.4!important;cursor:default}.monaco-text-button .codicon{margin:0 .2em;color:inherit!important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus,.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border, transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-label,.monaco-description-button .monaco-button-description{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-label>.codicon,.monaco-description-button .monaco-button-description>.codicon{margin:0 .2em;color:inherit!important}.monaco-button.default-colors,.monaco-button-dropdown.default-colors>.monaco-button{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button.default-colors:hover,.monaco-button-dropdown.default-colors>.monaco-button:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button.default-colors.secondary,.monaco-button-dropdown.default-colors>.monaco-button.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button.default-colors.secondary:hover,.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;margin-left:-300px;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{display:flex;align-items:center;border-top-left-radius:5px;border-top-right-radius:5px}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:center;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{display:flex;padding:8px 6px 6px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;height:100%;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px}.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{font-weight:600;font-size:12px}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0px;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines .bottom.dragging{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .top,.monaco-editor .diff-hidden-lines .bottom{transition:background-color .1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom){cursor:n-resize!important}.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom{cursor:s-resize!important}.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedOriginal,.monaco-editor .movedModified{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedOriginal.currentMove,.monaco-editor .movedModified.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:solid var(--vscode-diffEditor-removedTextBackground) 3px}.monaco-editor .char-insert.diff-range-empty{border-left:solid var(--vscode-diffEditor-insertedTextBackground) 3px}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-editor .insert-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-diff-editor .delete-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-editor.hc-black .insert-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .delete-sign,.monaco-editor.hc-light .insert-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .delete-sign{opacity:1}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .inline-added-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-editor .char-insert,.monaco-diff-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .line-insert,.monaco-diff-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .line-insert,.monaco-editor .char-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .line-insert,.monaco-editor.hc-black .char-insert,.monaco-editor.hc-light .char-insert{border-style:dashed}.monaco-editor .line-delete,.monaco-editor .char-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .line-delete,.monaco-editor.hc-black .char-delete,.monaco-editor.hc-light .char-delete{border-style:dashed}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .gutter-insert,.monaco-diff-editor .gutter-insert{background-color:var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-delete,.monaco-diff-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .line-delete,.monaco-diff-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground))}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .gutter-delete,.monaco-diff-editor .gutter-delete{background-color:var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-diff-editor .revertButton{cursor:pointer}.monaco-component .multiDiffEntry{display:flex;flex-direction:column}.monaco-component .multiDiffEntry .editorParent{border-left:2px var(--vscode-tab-inactiveBackground) solid}.monaco-component .multiDiffEntry.focused .editorParent{border-left:2px var(--vscode-notebook-focusedCellBorder) solid}.monaco-component .multiDiffEntry .editorParent .editorContainer{border-left:17px var(--vscode-tab-inactiveBackground) solid}.monaco-component .multiDiffEntry .collapse-button{margin:0 5px;cursor:pointer}.monaco-component .multiDiffEntry .collapse-button a{display:block}.monaco-component .multiDiffEntry .header{display:flex;align-items:center;padding:8px 5px;color:var(--vscode-foreground);background:var(--vscode-editor-background);z-index:1000;border-bottom:1px var(--vscode-sideBarSectionHeader-border) solid;border-top:1px var(--vscode-sideBarSectionHeader-border) solid;border-left:2px var(--vscode-editor-background) solid}.monaco-component .multiDiffEntry.focused .header{border-left:2px var(--vscode-notebook-focusedCellBorder) solid}.monaco-component .multiDiffEntry .header.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component .multiDiffEntry .header .title{flex:1;font-size:14px;line-height:22px}.monaco-component .multiDiffEntry .header .actions{padding:0 8px}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}@font-face{font-family:codicon;font-display:block;src:url(/ui/assets/codicon-Hscy-R9e.ttf) format("truetype")}.codicon[class*=codicon-]{font: 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(360deg)}}.codicon-sync.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-gear.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-value,.monaco-editor .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-enum{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:"";display:block;width:100%;height:100%;opacity:.3;background-color:var(--vscode-editor-background);z-index:1}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0px}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;border-color:transparent;border-style:solid;z-index:1000;border-width:8px;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.action-widget{font-size:13px;min-width:160px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground)}.context-view-block{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:-1}.context-view-pointerBlock{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:none!important;border-width:0!important}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 10px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled:before,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before{cursor:default!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent!important;outline:0 solid!important}.action-widget .monaco-list-row.action{display:flex;gap:6px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{display:block;content:"";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration>span,.monaco-editor .codelens-decoration>a{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:solid .1em #000;box-sizing:border-box;margin:.1em .2em 0;width:.8em;height:.8em;line-height:.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:solid .1em #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid rgb(255,255,255);border-radius:100%;box-shadow:0 0 2px #000c;position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid rgba(255,255,255,.71);box-shadow:0 0 1px #000000d9}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder, transparent);box-sizing:border-box}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;animation:fadein .1s linear;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace, normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth, 500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover p,.monaco-hover .code,.monaco-hover ul,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0px;border-right:0px;margin:4px -8px -4px;height:1px}.monaco-hover p:first-child,.monaco-hover .code:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover p:last-child,.monaco-hover .code:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ul,.monaco-hover ol{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace, pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link:hover,.monaco-hover .hover-contents a.code-link{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{margin-bottom:4px;display:inline-block}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:.4;cursor:default}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer}.monaco-editor .zone-widget .codicon.codicon-error,.markers-panel .marker-icon.error,.markers-panel .marker-icon .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.extension-editor .codicon.codicon-error,.preferences-editor .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-warning,.markers-panel .marker-icon.warning,.markers-panel .marker-icon .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.extension-editor .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-info,.markers-panel .marker-icon.info,.markers-panel .marker-icon .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.extension-editor .codicon.codicon-info,.preferences-editor .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .dnd-target,.monaco-editor.hc-light .dnd-target{border-right:2px dotted black;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #AEAFAD;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines{cursor:default}.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines,.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines{cursor:copy}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex!important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{font-size:90%!important;animation:none}.inline-progress-widget:hover .icon:before{content:""}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border, transparent);border-radius:4px;background-color:var(--vscode-editorWidget-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:center center;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-collapsed{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed{transition:initial}.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons{opacity:1}.monaco-editor .inline-folded:after{color:gray;margin:.1em .2em 0;content:"⋯";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder, transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-widget,.monaco-editor .suggest-details{flex:0 1 auto;width:100%;border-style:solid;border-width:1px;border-color:var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-light .suggest-widget,.monaco-editor.hc-light .suggest-details{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:12px;opacity:.4;font-size:85%;line-height:initial;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:initial;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ul,.monaco-editor .suggest-details ol{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:"";display:block;height:100%;position:absolute;opacity:.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .monaco-scrollable-element,.monaco-editor .parameter-hints-widget .body{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:"";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:initial}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input{padding:3px;border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{float:left;background-color:inherit}.monaco-editor .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit}.monaco-editor .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-line-number,.monaco-editor .sticky-line-content{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-line-number .codicon-folding-expanded,.monaco-editor .sticky-line-number .codicon-folding-collapsed{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor.hc-black .sticky-widget,.monaco-editor.hc-light .sticky-widget{border-bottom:1px solid var(--vscode-contrastBorder)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 3px 2px -2px;z-index:4;background-color:var(--vscode-editorStickyScroll-background)}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:center center;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #F6F6F6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;padding:10px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{height:1px;border:0;background-color:var(--vscode-editorHoverWidget-border)}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.monaco-editor-container[data-v-df421d9b]{position:relative;border:none;border-radius:0;overflow:hidden;background:#ffffff0d}.editor-wrapper[data-v-df421d9b]{height:100%;min-height:300px}[data-v-df421d9b] .monaco-editor{border-radius:0}[data-v-df421d9b] .monaco-editor .margin{background-color:#ffffff0d!important}[data-v-df421d9b] .monaco-editor .line-numbers{color:#9ca3afcc!important}[data-v-df421d9b] .monaco-editor .current-line{background-color:#37415180!important}[data-v-df421d9b] .monaco-editor .selection{background-color:#3b82f64d!important}[data-v-df421d9b] .monaco-editor .cursor{border-left-color:#f9fafbe6!important}[data-v-df421d9b] .monaco-editor .scrollbar .slider{background-color:#9ca3af4d!important}[data-v-df421d9b] .monaco-editor .scrollbar .slider:hover{background-color:#9ca3af80!important}[data-v-df421d9b] .monaco-editor .scrollbar .slider.active{background-color:#9ca3afb3!important}.mcp-config-form[data-v-7a2b7153]{width:100%}.form-item[data-v-7a2b7153]{margin-bottom:20px}.form-item label[data-v-7a2b7153]{display:block;margin-bottom:8px;font-weight:500;color:#e5e7eb}.required[data-v-7a2b7153]{color:#ef4444}.config-input[data-v-7a2b7153],.config-textarea[data-v-7a2b7153]{width:100%;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:4px;background:#ffffff0d;color:#ffffffe6;font-size:14px;transition:all .3s}.config-input[data-v-7a2b7153]:focus,.config-textarea[data-v-7a2b7153]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.config-textarea[data-v-7a2b7153]{resize:vertical;min-height:80px}.config-input[data-v-7a2b7153]::placeholder,.config-textarea[data-v-7a2b7153]::placeholder{color:#fff6}.usage-instructions[data-v-7a2b7153]{margin-top:24px;padding:16px;background:#ffffff08;border:1px solid rgba(102,126,234,.5);border-radius:8px;box-shadow:0 2px 8px #0000001a;position:relative}.usage-instructions[data-v-7a2b7153]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:#667eeacc;border-radius:8px 8px 0 0}.instructions-header[data-v-7a2b7153]{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.instructions-icon[data-v-7a2b7153]{font-size:16px;color:#667eea}.instructions-header h4[data-v-7a2b7153]{margin:0;font-size:16px;font-weight:600;color:#ffffffe6}.instructions-content[data-v-7a2b7153]{color:#fffc;line-height:1.5;font-size:14px}.instructions-list[data-v-7a2b7153]{margin:0;padding-left:16px}.instructions-list>li[data-v-7a2b7153]{margin-bottom:12px;position:relative;padding-left:4px}.instructions-list>li[data-v-7a2b7153]::marker{color:#667eea;font-weight:600;font-size:14px}.instructions-list>li[data-v-7a2b7153]:last-child{margin-bottom:0}.instructions-list strong[data-v-7a2b7153]{color:#fffffff2;font-weight:600;display:block;margin-bottom:6px;font-size:14px}.instructions-list ul[data-v-7a2b7153]{margin:6px 0 0;padding-left:16px;list-style-type:disc}.instructions-list ul li[data-v-7a2b7153]{margin-bottom:3px;color:#ffffffbf;font-size:13px;line-height:1.4}.instructions-list ul li strong[data-v-7a2b7153]{color:#ffffffe6;font-weight:500;display:inline;margin-bottom:0}.instructions-list code[data-v-7a2b7153]{background:#667eea26;color:#a8b3ff;padding:1px 4px;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;border:1px solid rgba(102,126,234,.2)}@media (max-width: 768px){.usage-instructions[data-v-7a2b7153]{margin-top:20px;padding:12px}.instructions-header h4[data-v-7a2b7153]{font-size:15px}.instructions-content[data-v-7a2b7153]{font-size:13px}.instructions-list[data-v-7a2b7153]{padding-left:12px}.instructions-list>li[data-v-7a2b7153]{margin-bottom:10px}.instructions-list ul li[data-v-7a2b7153]{font-size:12px}}.tab-panel[data-v-dd5c9237]{width:100%}.tab-header[data-v-dd5c9237]{display:flex;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px}.tab-button[data-v-dd5c9237]{padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;color:#fff9;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.tab-button[data-v-dd5c9237]:hover{color:#fffc;background-color:#ffffff0d}.tab-button.active[data-v-dd5c9237]{color:#3b82f6;border-bottom-color:#3b82f6;background-color:#ffffff08}.tab-content[data-v-dd5c9237]{min-height:200px;background-color:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:16px}.tab-pane[data-v-dd5c9237]{width:100%}.json-import-panel[data-v-acbd9f22]{height:100%;display:flex;flex-direction:column}.form-item[data-v-acbd9f22]{flex:1;display:flex;flex-direction:column}.json-tab-panel[data-v-acbd9f22]{margin-top:8px}.validation-errors[data-v-acbd9f22]{margin-top:12px;padding:12px;background:#ff00001a;border:1px solid rgba(255,0,0,.3);border-radius:4px}.error-item[data-v-acbd9f22]{color:#f44;font-size:14px;margin-bottom:4px}.error-item[data-v-acbd9f22]:last-child{margin-bottom:0}.example-json[data-v-acbd9f22]{margin:0;padding:12px;background:#ffffff08;overflow-x:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4}.example-json code[data-v-acbd9f22]{color:#ffffffe6;background:none;padding:0;border:none;border-radius:0;font-family:inherit;font-size:inherit}.example-json .string[data-v-acbd9f22]{color:#a78bfa}.example-json .number[data-v-acbd9f22]{color:#fbbf24}.example-json .boolean[data-v-acbd9f22]{color:#f87171}.example-json .null[data-v-acbd9f22]{color:#fff9}.example-json .key[data-v-acbd9f22]{color:#34d399}.json-config-container[data-v-acbd9f22]{display:flex;flex-direction:column;height:100%}.usage-instructions[data-v-acbd9f22]{margin-top:16px;padding:16px;background:#ffffff08;border:1px solid rgba(102,126,234,.5);border-radius:8px;box-shadow:0 2px 8px #0000001a;position:relative}.usage-instructions[data-v-acbd9f22]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:#667eeacc;border-radius:8px 8px 0 0}.instructions-header[data-v-acbd9f22]{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.instructions-icon[data-v-acbd9f22]{font-size:16px;color:#667eea}.instructions-header h4[data-v-acbd9f22]{margin:0;font-size:16px;font-weight:600;color:#ffffffe6}.instructions-content[data-v-acbd9f22]{color:#fffc;line-height:1.5;font-size:14px}.instructions-list[data-v-acbd9f22]{margin:0;padding-left:16px}.instructions-list>li[data-v-acbd9f22]{margin-bottom:12px;position:relative;padding-left:4px}.instructions-list>li[data-v-acbd9f22]::marker{color:#667eea;font-weight:600;font-size:14px}.instructions-list>li[data-v-acbd9f22]:last-child{margin-bottom:0}.instructions-list strong[data-v-acbd9f22]{color:#fffffff2;font-weight:600;display:block;margin-bottom:6px;font-size:14px}.instructions-list ul[data-v-acbd9f22]{margin:6px 0 0;padding-left:16px;list-style-type:disc}.instructions-list ul li[data-v-acbd9f22]{margin-bottom:3px;color:#ffffffbf;font-size:13px;line-height:1.4}.instructions-list ul li strong[data-v-acbd9f22]{color:#ffffffe6;font-weight:500;display:inline;margin-bottom:0}.instructions-list code[data-v-acbd9f22]{background:#667eea26;color:#a8b3ff;padding:1px 4px;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;border:1px solid rgba(102,126,234,.2)}.mcp-config-panel[data-v-05c331dc]{position:relative}.mcp-header[data-v-05c331dc]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.mcp-header h2[data-v-05c331dc]{margin:0;font-size:20px;font-weight:500}.header-left[data-v-05c331dc],.header-right[data-v-05c331dc]{display:flex;align-items:center}.mcp-stats[data-v-05c331dc]{display:flex;margin-left:16px;gap:12px}.stat-item[data-v-05c331dc]{display:flex;align-items:center;background:#ffffff0d;padding:4px 8px;border-radius:4px;font-size:12px}.stat-label[data-v-05c331dc]{color:#fff9;margin-right:4px}.stat-value[data-v-05c331dc]{color:#ffffffe6;font-weight:500}.loading-container[data-v-05c331dc]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffffb3}.loading-spinner[data-v-05c331dc]{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #667eea;border-radius:50%;animation:spin-05c331dc 1s linear infinite;margin-bottom:16px}@keyframes spin-05c331dc{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mcp-layout[data-v-05c331dc]{display:flex;gap:30px;flex:1;min-height:0}.server-list[data-v-05c331dc]{width:320px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-05c331dc]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-05c331dc]{margin:0;font-size:18px}.server-count[data-v-05c331dc]{font-size:14px;color:#fff9}.search-box[data-v-05c331dc]{position:relative;margin-bottom:20px}.search-input[data-v-05c331dc]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:6px 12px 6px 32px;color:#ffffffe6;width:100%;font-size:14px;transition:all .3s}.search-input[data-v-05c331dc]:focus{outline:none;border-color:#667eea80;background:#ffffff14;width:100%}.search-input[data-v-05c331dc]::placeholder{color:#fff6}.search-icon[data-v-05c331dc]{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.6}.servers-container[data-v-05c331dc]{flex:1;overflow-y:auto;margin-bottom:16px}.servers-container[data-v-05c331dc]::-webkit-scrollbar{width:6px}.servers-container[data-v-05c331dc]::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.servers-container[data-v-05c331dc]::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.servers-container[data-v-05c331dc]::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.server-card[data-v-05c331dc]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;gap:8px}.server-card[data-v-05c331dc]:hover:not(.active){background:#ffffff0d;border-color:#fff3}.server-card.active[data-v-05c331dc]{border-color:#667eea;background:#667eea1a}.server-card-header[data-v-05c331dc]{display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:500;color:#ffffffe6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;gap:10px}.server-name[data-v-05c331dc]{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-connection-type[data-v-05c331dc]{font-size:12px;color:#ffffffb3;display:flex;align-items:center;gap:6px}.connection-type-icon[data-v-05c331dc]{font-size:14px;opacity:.8}.connection-type-badge[data-v-05c331dc]{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#9e9e9e33;color:#bdbdbd}.connection-type-badge.studio[data-v-05c331dc]{background:#2196f333;color:#90caf9}.connection-type-badge.sse[data-v-05c331dc]{background:#4caf5033;color:#a5d6a7}.connection-type-badge.streaming[data-v-05c331dc]{background:#9c27b033;color:#ce93d8}.server-config-summary[data-v-05c331dc]{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.config-item[data-v-05c331dc]{display:flex;align-items:flex-start;margin-bottom:6px;font-size:12px;line-height:1.4}.config-label[data-v-05c331dc]{color:#fff9;font-weight:500;min-width:50px;margin-right:8px}.config-value[data-v-05c331dc]{color:#fffc;word-break:break-all;flex:1}.server-config-preview[data-v-05c331dc]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 12px;max-height:120px;overflow-y:auto;overflow-x:auto}.config-preview[data-v-05c331dc]{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:10px;line-height:1.3;color:#ffffffe6;white-space:pre-wrap;word-break:break-all}.config-preview .json-key[data-v-05c331dc]{color:#90caf9}.config-preview .json-string[data-v-05c331dc]{color:#a5d6a7}.config-preview .json-number[data-v-05c331dc]{color:#f39c12}.config-preview .json-boolean[data-v-05c331dc]{color:#e74c3c}.config-preview .json-null[data-v-05c331dc]{color:#95a5a6}.loading-state[data-v-05c331dc]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffffb3}.loading-icon[data-v-05c331dc]{font-size:32px;margin-bottom:16px}.empty-state[data-v-05c331dc]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#ffffff80;text-align:center}.empty-icon[data-v-05c331dc]{font-size:48px;margin-bottom:16px;opacity:.5}.add-config-button-container[data-v-05c331dc]{margin-top:0}.add-btn[data-v-05c331dc]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-05c331dc]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.add-btn[data-v-05c331dc]:disabled{opacity:.5;cursor:not-allowed}.add-btn.primary[data-v-05c331dc]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.add-btn.primary[data-v-05c331dc]:hover:not(:disabled){background:#667eea4d}.add-btn.danger[data-v-05c331dc]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.add-btn.danger[data-v-05c331dc]:hover:not(:disabled){background:#ea666633}.add-btn.small[data-v-05c331dc]{padding:6px 12px;font-size:12px}.form-row[data-v-05c331dc]{display:flex;gap:20px}.form-actions[data-v-05c331dc]{display:flex;gap:12px;justify-content:flex-end}.server-detail[data-v-05c331dc]{flex:1;background:#ffffff08;border-radius:12px;padding:24px;overflow-y:auto}.detail-header[data-v-05c331dc]{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-05c331dc]{margin:0;font-size:20px}.detail-actions[data-v-05c331dc]{display:flex;gap:12px}.detail-content[data-v-05c331dc]{display:flex;flex-direction:column;gap:20px;flex:1;overflow-y:auto;padding-right:4px}.detail-content[data-v-05c331dc]::-webkit-scrollbar{width:6px}.detail-content[data-v-05c331dc]::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.detail-content[data-v-05c331dc]::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.detail-content[data-v-05c331dc]::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.action-btn[data-v-05c331dc]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-05c331dc]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-05c331dc]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-05c331dc]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-05c331dc]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-05c331dc]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-05c331dc]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-05c331dc]{padding:6px 12px;font-size:12px}.form-item[data-v-05c331dc]{margin-bottom:20px}.form-item label[data-v-05c331dc]{display:block;margin-bottom:8px;font-weight:500;color:#ffffffe6;font-size:14px}.form-item .required[data-v-05c331dc]{color:#ef5350;margin-left:4px}.json-editor-container[data-v-05c331dc]{position:relative}.json-editor-header[data-v-05c331dc]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.json-status[data-v-05c331dc]{font-size:12px;padding:8px 12px;border-radius:4px;font-weight:500;max-width:400px;word-wrap:break-word;white-space:pre-line;line-height:1.4;min-height:20px}.json-status.valid[data-v-05c331dc]{background:#10b98133;color:#34d399}.json-status.invalid[data-v-05c331dc]{background:#ef444433;color:#f87171}.format-btn[data-v-05c331dc]{display:flex;align-items:center;gap:4px;background:#667eea1a;border:1px solid rgba(102,126,234,.3);border-radius:4px;color:#a8b3ff;padding:4px 8px;font-size:12px;cursor:pointer;transition:all .3s}.format-btn[data-v-05c331dc]:hover:not(:disabled){background:#667eea33;border-color:#667eea80}.format-btn[data-v-05c331dc]:disabled{opacity:.5;cursor:not-allowed}.format-icon[data-v-05c331dc]{font-size:12px}.json-editor-wrapper[data-v-05c331dc]{position:relative;border:1px solid rgba(255,255,255,.1);border-radius:4px;overflow:hidden;background:#ffffff0d;min-height:300px}.json-editor[data-v-05c331dc]{height:100%;min-height:280px}.config-textarea[data-v-05c331dc]{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:12px;color:#ffffffe6;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;resize:vertical;transition:all .3s}.config-textarea[data-v-05c331dc]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.config-textarea[data-v-05c331dc]::placeholder{color:#fff6}.config-input[data-v-05c331dc]{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:12px;color:#ffffffe6;font-size:14px;transition:all .3s}.config-input[data-v-05c331dc]:focus{outline:none;border-color:#667eea80;background:#ffffff14}.config-input[data-v-05c331dc]::placeholder{color:#fff6}.no-selection[data-v-05c331dc]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#ffffff80;text-align:center}.placeholder-icon[data-v-05c331dc]{font-size:48px;margin-bottom:16px;opacity:.5}.message-toast[data-v-05c331dc]{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:8px;color:#fff;font-weight:500;z-index:9999;box-shadow:0 4px 12px #0000004d;max-width:400px;word-wrap:break-word;white-space:pre-line;line-height:1.4}.message-toast.success[data-v-05c331dc]{background:#10b981}.message-toast.error[data-v-05c331dc]{background:#ef4444}.message-toast.info[data-v-05c331dc]{background:#667eea}.message-fade-enter-active[data-v-05c331dc],.message-fade-leave-active[data-v-05c331dc]{transition:all .3s ease}.message-fade-enter-from[data-v-05c331dc],.message-fade-leave-to[data-v-05c331dc]{transform:translate(100%);opacity:0}@media (max-width: 1200px){.mcp-layout[data-v-05c331dc]{flex-direction:column}.server-list[data-v-05c331dc],.server-detail[data-v-05c331dc]{width:100%}.server-list[data-v-05c331dc]{order:2}.server-detail[data-v-05c331dc]{order:1}}.wide-modal[data-v-05c331dc]{width:80vw!important;max-width:1200px!important}.form-row[data-v-05c331dc]{display:flex;gap:20px;margin-bottom:20px}.form-row .form-item[data-v-05c331dc]{flex:1}.narrow-input[data-v-05c331dc]{width:70%}.narrow-input .config-input[data-v-05c331dc],.narrow-input .config-textarea[data-v-05c331dc]{width:100%}.status-toggle-container[data-v-05c331dc]{display:flex;align-items:center}.status-toggle[data-v-05c331dc]{position:relative;width:60px;height:30px;background:#6b7280;border-radius:15px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:space-between;padding:0 8px}.status-toggle.enabled[data-v-05c331dc]{background:#10b981}.toggle-thumb[data-v-05c331dc]{position:absolute;width:24px;height:24px;background:#fff;border-radius:50%;top:3px;left:3px;transition:all .3s ease;box-shadow:0 2px 4px #0003}.status-toggle.enabled .toggle-thumb[data-v-05c331dc]{left:33px}.toggle-label[data-v-05c331dc]{color:#fff;font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none}.server-status-toggle[data-v-05c331dc]{display:flex;align-items:center}.server-card-header .status-toggle[data-v-05c331dc]{width:50px;height:24px}.server-card-header .toggle-thumb[data-v-05c331dc]{width:18px;height:18px;top:3px;left:3px}.server-card-header .status-toggle.enabled .toggle-thumb[data-v-05c331dc]{left:29px}.server-card-header .toggle-label[data-v-05c331dc]{font-size:10px}@media (max-width: 768px){.mcp-header[data-v-05c331dc]{flex-direction:column;gap:16px;align-items:stretch}.search-input[data-v-05c331dc]{width:100%}.search-input[data-v-05c331dc]:focus{width:100%}.mcp-table-wrapper[data-v-05c331dc]{overflow-x:scroll}.mcp-table[data-v-05c331dc]{min-width:600px}.connection-type-options[data-v-05c331dc],.mcp-form-actions[data-v-05c331dc]{flex-direction:column;gap:12px}.mcp-form-actions button[data-v-05c331dc]{width:100%}.form-row[data-v-05c331dc]{flex-direction:column;gap:15px}.narrow-input[data-v-05c331dc]{width:100%}.server-detail[data-v-05c331dc]{padding:16px}.detail-header[data-v-05c331dc]{margin-bottom:16px}.detail-content[data-v-05c331dc]{gap:16px}.form-row[data-v-05c331dc]{flex-direction:column;gap:16px}.form-actions[data-v-05c331dc]{flex-direction:column;gap:8px}.form-actions .action-btn[data-v-05c331dc]{width:100%}}.json-actions[data-v-05c331dc]{display:flex;gap:8px;align-items:center}.json-import-form[data-v-05c331dc]{height:100%;display:flex;flex-direction:column}.json-import-form .form-item[data-v-05c331dc]{flex:1;display:flex;flex-direction:column}.json-import-form .form-item label[data-v-05c331dc]{margin-bottom:8px}.json-import-form .monaco-editor[data-v-05c331dc]{flex:1;min-height:600px;border:none;border-radius:0}.validation-errors[data-v-05c331dc]{margin-top:12px;padding:12px;background:#ff00001a;border:1px solid rgba(255,0,0,.3);border-radius:4px}.error-item[data-v-05c331dc]{color:#f44;font-size:14px;margin-bottom:4px}.error-item[data-v-05c331dc]:last-child{margin-bottom:0}.json-tab-panel[data-v-05c331dc]{margin-top:8px}.example-json[data-v-05c331dc]{margin:0;padding:12px;background:#ffffff08;overflow-x:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4}.example-json code[data-v-05c331dc]{color:#ffffffe6;background:none;padding:0;border:none;border-radius:0;font-family:inherit;font-size:inherit}.example-json .string[data-v-05c331dc]{color:#a78bfa}.example-json .number[data-v-05c331dc]{color:#fbbf24}.example-json .boolean[data-v-05c331dc]{color:#f87171}.example-json .null[data-v-05c331dc]{color:#fff9}.example-json .key[data-v-05c331dc]{color:#34d399}.custom-select[data-v-4c6d676f]{position:relative;display:inline-block}.select-btn[data-v-4c6d676f]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(80 78 78);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:600;outline:none}.select-btn[data-v-4c6d676f]:hover{background:#667eea26;border-color:#7c9eff;color:#a3bffa;box-shadow:0 0 15px #667eea33}.select-btn[data-v-4c6d676f]:focus{box-shadow:0 0 0 3px #667eea80}.current-option[data-v-4c6d676f]{color:inherit;font-weight:600;min-width:40px;text-align:left;text-shadow:none}.chevron[data-v-4c6d676f]{transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.9;filter:none}.select-dropdown[data-v-4c6d676f]{position:absolute;top:100%;left:0;z-index:9999;margin-top:4px;background:linear-gradient(135deg,#282832f2,#1e1e28f2);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(102,126,234,.3);border-radius:8px;box-shadow:0 8px 32px #0006,0 0 0 1px #667eea33;min-width:300px}.dropdown-header[data-v-4c6d676f]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(102,126,234,.2);font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea1a,#667eea0d)}.close-btn[data-v-4c6d676f]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.close-btn[data-v-4c6d676f]:hover{background:#ffffff1a;color:#fffc}.select-options[data-v-4c6d676f]{padding:8px 0}.select-option[data-v-4c6d676f]{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:none;border:none;color:#ffffffb3;cursor:pointer;transition:all .2s ease;text-align:left}.select-option[data-v-4c6d676f]:hover{background:#ffffff0d;color:#ffffffe6}.select-option.active[data-v-4c6d676f]{background:linear-gradient(135deg,#667eea33,#667eea1a);color:#7c9eff;border-left:3px solid #667eea;padding-left:13px}.option-type[data-v-4c6d676f]{display:inline-block;min-width:24px;font-size:12px;font-weight:600;opacity:.8}.option-name[data-v-4c6d676f]{flex:1;font-size:14px;font-weight:500}.check-icon[data-v-4c6d676f]{color:#667eea;opacity:.8}.spacer[data-v-4c6d676f]{display:inline-block;width:12px}.backdrop[data-v-4c6d676f]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998;background:transparent}.slideDown-enter-active[data-v-4c6d676f],.slideDown-leave-active[data-v-4c6d676f]{transition:all .2s ease;transform-origin:top}.slideDown-enter-from[data-v-4c6d676f],.slideDown-leave-to[data-v-4c6d676f]{opacity:0;transform:translateY(-8px) scale(.95)}.actions-container[data-v-7add0284]{display:flex;align-items:center;gap:16px}.action-btn.warning[data-v-7add0284]{background:#f59e0b;color:#fff}.action-btn.warning[data-v-7add0284]:hover{background:#d97706}.action-btn.info[data-v-7add0284]{background:#3b82f6;color:#fff}.action-btn.info[data-v-7add0284]:hover{background:#2563eb}.import-language-dropdown[data-v-7add0284]{display:inline-block}.language-select-modal[data-v-7add0284]{width:100%;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:#ffffff0d;color:#fff;font-size:14px;outline:none}.language-select-modal[data-v-7add0284]:focus{border-color:#409eff}.warning-notice[data-v-7add0284]{display:flex;align-items:flex-start;gap:8px;padding:12px;margin-top:16px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:6px}.warning-icon-small[data-v-7add0284]{color:#f59e0b;font-size:16px;margin-top:2px;flex-shrink:0}.warning-notice p[data-v-7add0284]{margin:0;font-size:14px;color:#fffc}.prompt-layout[data-v-7add0284]{display:flex;gap:12px;flex:1;min-height:0}.prompt-list[data-v-7add0284]{width:336px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-7add0284]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-7add0284]{margin:0;font-size:18px}.prompt-count[data-v-7add0284]{color:#fff9;font-size:14px}.prompts-container[data-v-7add0284]{flex:1;overflow-y:auto;margin-bottom:16px;padding-right:6px}.loading-state[data-v-7add0284]{display:flex;align-items:center;gap:8px;justify-content:center;padding:40px 0;color:#fff9}.loading-icon[data-v-7add0284]{animation:spin-7add0284 1s linear infinite}@keyframes spin-7add0284{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state[data-v-7add0284]{text-align:center;padding:60px 20px;color:#fff9}.empty-icon[data-v-7add0284]{font-size:48px;margin-bottom:16px;opacity:.4}.empty-tip[data-v-7add0284]{font-size:14px;margin-top:8px}.prompt-card[data-v-7add0284]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease}.prompt-card[data-v-7add0284]:hover{background:#ffffff0d;border-color:#fff3}.prompt-card.active[data-v-7add0284]{border-color:#667eea;background:#667eea1a}.prompt-card-header[data-v-7add0284]{display:flex;justify-content:space-between;align-items:center}.prompt-name[data-v-7add0284]{font-weight:500;font-size:16px}.prompt-desc[data-v-7add0284]{color:#ffffffb3;font-size:14px;line-height:1.4;margin-bottom:0;margin-top:8px}.prompt-tools[data-v-7add0284]{display:flex;flex-wrap:wrap;gap:6px}.tool-tag[data-v-7add0284]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.tool-more[data-v-7add0284]{color:#ffffff80;font-size:12px;padding:4px 8px}.no-tools-indicator[data-v-7add0284]{color:#fff6;font-size:12px;font-style:italic}.add-btn[data-v-7add0284]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-7add0284]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.prompt-detail[data-v-7add0284]{flex:1;background:#ffffff08;border-radius:12px;padding:12px 24px;overflow-y:auto}.no-selection[data-v-7add0284]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff9}.placeholder-icon[data-v-7add0284]{font-size:64px;margin-bottom:24px;opacity:.3}.detail-header[data-v-7add0284]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-7add0284]{margin:0;font-size:20px}.detail-actions[data-v-7add0284]{display:flex;gap:12px}.form-section[data-v-7add0284]{margin-bottom:32px}.form-item[data-v-7add0284]{margin-bottom:20px}.form-item label[data-v-7add0284]{display:block;margin-bottom:8px;color:#ffffffe6;font-weight:500}.form-item input[data-v-7add0284],.form-item textarea[data-v-7add0284]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;transition:all .3s ease}.form-item input[data-v-7add0284]:focus,.form-item textarea[data-v-7add0284]:focus{border-color:#667eea;outline:none;background:#ffffff14}.form-item input[data-v-7add0284]::placeholder,.form-item textarea[data-v-7add0284]::placeholder{color:#fff6}.form-item input[data-v-7add0284]:disabled,.form-item textarea[data-v-7add0284]:disabled{cursor:not-allowed;background:#ffffff08;color:#fff;border-color:#ffffff0d;opacity:.6}.form-item textarea[data-v-7add0284]{resize:vertical;min-height:80px;line-height:1.5}.required[data-v-7add0284]{color:#ff6b6b}.section-header[data-v-7add0284]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header span[data-v-7add0284]{font-weight:500;color:#fffc}.action-btn[data-v-7add0284]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-7add0284]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-7add0284]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-7add0284]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-7add0284]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-7add0284]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-7add0284]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-7add0284]{padding:6px 12px;font-size:12px}.modal-form[data-v-7add0284]{display:flex;flex-direction:column;gap:16px}.delete-confirm[data-v-7add0284]{text-align:center;padding:20px 0}.delete-confirm p[data-v-7add0284]{color:#fffc;margin:8px 0}.delete-confirm .warning-text[data-v-7add0284]{color:#fff9;font-size:14px}.warning-icon[data-v-7add0284]{font-size:48px;color:#ffa726;margin-bottom:16px}.confirm-btn[data-v-7add0284],.cancel-btn[data-v-7add0284]{padding:10px 20px;border-radius:6px;cursor:pointer;transition:all .3s ease}.confirm-btn.danger[data-v-7add0284],.cancel-btn.danger[data-v-7add0284]{background:#ea666633;border:1px solid rgba(234,102,102,.3);color:#ff8a8a}.confirm-btn.danger[data-v-7add0284]:hover,.cancel-btn.danger[data-v-7add0284]:hover{background:#ea66664d}.tags[data-v-7add0284]{margin-top:8px}.tags .tag[data-v-7add0284]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.cancel-btn[data-v-7add0284]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff}.cancel-btn[data-v-7add0284]:hover{background:#ffffff1a}@keyframes slideIn-7add0284{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.namespace-layout[data-v-1399730e]{display:flex;gap:12px;flex:1;min-height:0}.namespace-list[data-v-1399730e]{width:336px;flex-shrink:0;display:flex;flex-direction:column}.list-header[data-v-1399730e]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.list-header h3[data-v-1399730e]{margin:0;font-size:18px}.namespace-count[data-v-1399730e]{color:#fff9;font-size:14px}.namespaces-container[data-v-1399730e]{flex:1;overflow-y:auto;margin-bottom:16px;padding-right:6px}.loading-state[data-v-1399730e]{display:flex;align-items:center;gap:8px;justify-content:center;padding:40px 0;color:#fff9}.loading-icon[data-v-1399730e]{animation:spin-1399730e 1s linear infinite}@keyframes spin-1399730e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state[data-v-1399730e]{text-align:center;padding:60px 20px;color:#fff9}.empty-icon[data-v-1399730e]{font-size:48px;margin-bottom:16px;opacity:.4}.empty-tip[data-v-1399730e]{font-size:14px;margin-top:8px}.namespace-card[data-v-1399730e]{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .3s ease}.namespace-card[data-v-1399730e]:hover{background:#ffffff0d;border-color:#fff3}.namespace-card.active[data-v-1399730e]{border-color:#667eea;background:#667eea1a}.namespace-card-header[data-v-1399730e]{display:flex;justify-content:space-between;align-items:center}.namespace-name[data-v-1399730e]{font-weight:500;font-size:16px}.namespace-desc[data-v-1399730e]{color:#ffffffb3;font-size:14px;line-height:1.4;margin-bottom:0;margin-top:8px}.namespace-tools[data-v-1399730e]{display:flex;flex-wrap:wrap;gap:6px}.tool-tag[data-v-1399730e]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.tool-more[data-v-1399730e]{color:#ffffff80;font-size:12px;padding:4px 8px}.no-tools-indicator[data-v-1399730e]{color:#fff6;font-size:12px;font-style:italic}.add-btn[data-v-1399730e]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px;background:#ffffff08;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .3s ease;font-size:14px}.add-btn[data-v-1399730e]:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fff}.namespace-detail[data-v-1399730e]{flex:1;background:#ffffff08;border-radius:12px;padding:12px 24px;overflow-y:auto}.no-selection[data-v-1399730e]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff9}.placeholder-icon[data-v-1399730e]{font-size:64px;margin-bottom:24px;opacity:.3}.detail-header[data-v-1399730e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.detail-header h3[data-v-1399730e]{margin:0;font-size:20px}.detail-actions[data-v-1399730e]{display:flex;gap:12px}.form-section[data-v-1399730e]{margin-bottom:32px}.form-item[data-v-1399730e]{margin-bottom:20px}.form-item label[data-v-1399730e]{display:block;margin-bottom:8px;color:#ffffffe6;font-weight:500}.form-item input[data-v-1399730e],.form-item textarea[data-v-1399730e]{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:14px;transition:all .3s ease}.form-item input[data-v-1399730e]:focus,.form-item textarea[data-v-1399730e]:focus{border-color:#667eea;outline:none;background:#ffffff14}.form-item input[data-v-1399730e]::placeholder,.form-item textarea[data-v-1399730e]::placeholder{color:#fff6}.form-item input[data-v-1399730e]:disabled,.form-item textarea[data-v-1399730e]:disabled{cursor:not-allowed;background:#ffffff08;color:#fff;border-color:#ffffff0d;opacity:.6}.form-item textarea[data-v-1399730e]{resize:vertical;min-height:80px;line-height:1.5}.required[data-v-1399730e]{color:#ff6b6b}.section-header[data-v-1399730e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header span[data-v-1399730e]{font-weight:500;color:#fffc}.action-btn[data-v-1399730e]{display:flex;align-items:center;gap:6px;padding:10px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s ease;font-size:14px}.action-btn[data-v-1399730e]:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.action-btn[data-v-1399730e]:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary[data-v-1399730e]{background:#667eea33;border-color:#667eea4d;color:#a8b3ff}.action-btn.primary[data-v-1399730e]:hover:not(:disabled){background:#667eea4d}.action-btn.danger[data-v-1399730e]{background:#ea66661a;border-color:#ea666633;color:#ff8a8a}.action-btn.danger[data-v-1399730e]:hover:not(:disabled){background:#ea666633}.action-btn.small[data-v-1399730e]{padding:6px 12px;font-size:12px}.modal-form[data-v-1399730e]{display:flex;flex-direction:column;gap:16px}.delete-confirm[data-v-1399730e]{text-align:center;padding:20px 0}.delete-confirm p[data-v-1399730e]{color:#fffc;margin:8px 0}.delete-confirm .warning-text[data-v-1399730e]{color:#fff9;font-size:14px}.warning-icon[data-v-1399730e]{font-size:48px;color:#ffa726;margin-bottom:16px}.confirm-btn[data-v-1399730e],.cancel-btn[data-v-1399730e]{padding:10px 20px;border-radius:6px;cursor:pointer;transition:all .3s ease}.confirm-btn.danger[data-v-1399730e],.cancel-btn.danger[data-v-1399730e]{background:#ea666633;border:1px solid rgba(234,102,102,.3);color:#ff8a8a}.confirm-btn.danger[data-v-1399730e]:hover,.cancel-btn.danger[data-v-1399730e]:hover{background:#ea66664d}.tags[data-v-1399730e]{margin-top:8px}.tags .tag[data-v-1399730e]{display:inline-block;padding:4px 8px;background:#667eea33;border-radius:4px;font-size:12px;color:#a8b3ff}.cancel-btn[data-v-1399730e]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff}.cancel-btn[data-v-1399730e]:hover{background:#ffffff1a}@keyframes slideIn-1399730e{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.setting-icon[data-v-4727c0a4]{color:#667eea;margin-left:4px;cursor:pointer}.config-container[data-v-29da4edc]{height:100vh;background:#ffffff05;color:#fff}.config-header[data-v-29da4edc]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid rgba(255,255,255,.1)}.header-actions[data-v-29da4edc]{display:flex;justify-content:space-between;align-items:center;width:100%}.header-actions-left[data-v-29da4edc]{display:flex;align-items:center;gap:14px}.config-header h1[data-v-29da4edc]{background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:24px;font-weight:600}.config-content[data-v-29da4edc]{display:flex;height:calc(100vh - 80px)}.config-nav[data-v-29da4edc]{width:242px;padding:20px;border-right:1px solid rgba(255,255,255,.1)}.nav-item[data-v-29da4edc]{display:flex;align-items:center;gap:10px;padding:12px;margin-bottom:8px;border-radius:8px;cursor:pointer;transition:all .3s}.nav-item[data-v-29da4edc]:hover{background:#ffffff0d}.nav-item.active[data-v-29da4edc]{background:#667eea1a;border:1px solid rgba(102,126,234,.2)}.config-details[data-v-29da4edc]{flex:1;padding:24px 30px;overflow-y:auto}.action-btn[data-v-29da4edc]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;cursor:pointer;transition:all .3s}.action-btn[data-v-29da4edc]:hover{background:#ffffff1a} diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CXUcGEY4.css b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Bve_wuYa.css similarity index 54% rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CXUcGEY4.css rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Bve_wuYa.css index ac5ca29662..b7dbae04e7 100644 --- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CXUcGEY4.css +++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Bve_wuYa.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-8a1c50e1]{width:100%;height:100vh;position:relative;overflow-y:auto}.welcome-container[data-v-8a1c50e1]{flex:1;height:100vh;background:#0a0a0a;position:relative;display:flex;flex-direction:column}.background-effects[data-v-8a1c50e1]{position:fixed;width:100vw;height:100vh;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0}.gradient-orb[data-v-8a1c50e1]{position:absolute;border-radius:50%;filter:blur(100px);opacity:.3;animation:float-8a1c50e1 6s ease-in-out infinite}.gradient-orb.orb-1[data-v-8a1c50e1]{width:400px;height:400px;background:linear-gradient(135deg,#667eea,#764ba2);top:-200px;right:-200px;animation-delay:0s}.gradient-orb.orb-2[data-v-8a1c50e1]{width:300px;height:300px;background:linear-gradient(135deg,#f093fb,#f5576c);bottom:-150px;left:-150px;animation-delay:2s}.gradient-orb.orb-3[data-v-8a1c50e1]{width:250px;height:250px;background:linear-gradient(135deg,#4facfe,#00f2fe);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:4s}@keyframes float-8a1c50e1{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-20px) rotate(120deg)}66%{transform:translateY(10px) rotate(240deg)}}.header[data-v-8a1c50e1]{position:relative;z-index:1000;padding:32px 32px 0}.header-top[data-v-8a1c50e1]{display:flex;justify-content:flex-end;margin-bottom:20px;position:relative;z-index:1001}.logo-container[data-v-8a1c50e1]{text-align:center}.logo-container .logo[data-v-8a1c50e1]{display:flex;align-items:center;justify-content:center}.logo-container img[data-v-8a1c50e1]{height:52px;margin-bottom:12px}.logo-container h1[data-v-8a1c50e1]{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-8a1c50e1]{color:#888;font-size:16px;font-weight:400}.main-content[data-v-8a1c50e1]{flex:1;display:flex;align-items:center;justify-content:center;padding:0 32px 32px;position:relative;z-index:1}.conversation-container[data-v-8a1c50e1]{width:100%;max-width:800px}.welcome-section[data-v-8a1c50e1]{text-align:center;margin-bottom:48px}.welcome-title[data-v-8a1c50e1]{font-size:32px;font-weight:600;color:#fff;margin:0 0 16px}.welcome-subtitle[data-v-8a1c50e1]{font-size:18px;color:#888;margin:0;line-height:1.5}.input-section[data-v-8a1c50e1]{margin-bottom:48px}.input-container[data-v-8a1c50e1]{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-8a1c50e1]:focus-within{border-color:#667eea;box-shadow:0 8px 32px #667eea33}.main-input[data-v-8a1c50e1]{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-8a1c50e1]::placeholder{color:#666}.send-button[data-v-8a1c50e1]{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-8a1c50e1]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.send-button[data-v-8a1c50e1]:disabled{opacity:.5;cursor:not-allowed}.send-button svg[data-v-8a1c50e1]{font-size:18px}.examples-section[data-v-8a1c50e1]{margin-bottom:48px}.examples-section .examples-grid[data-v-8a1c50e1]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.examples-section .examples-grid .card-with-type[data-v-8a1c50e1]{width:100%;min-width:300px}.examples-section .examples-grid .card-with-type:hover .card-type[data-v-8a1c50e1]{transform:translateY(-1px);box-shadow:0 8px 25px #8297f666}.card-with-type[data-v-8a1c50e1]{position:relative}.card-type[data-v-8a1c50e1]{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-8a1c50e1]{flex:1;height:100vh;background:#0a0a0a;display:flex;flex-direction:column;position:relative}.config-header-bar[data-v-8a1c50e1]{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-8a1c50e1]{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-8a1c50e1]:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.config-header-bar .config-title[data-v-8a1c50e1]{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-8a1c50e1]{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-8a1c50e1]: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-5aee9964]{width:100%;height:100vh;position:relative;overflow-y:auto}.welcome-container[data-v-5aee9964]{flex:1;height:100vh;background:#0a0a0a;position:relative;display:flex;flex-direction:column}.background-effects[data-v-5aee9964]{position:fixed;width:100vw;height:100vh;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0}.gradient-orb[data-v-5aee9964]{position:absolute;border-radius:50%;filter:blur(100px);opacity:.3;animation:float-5aee9964 6s ease-in-out infinite}.gradient-orb.orb-1[data-v-5aee9964]{width:400px;height:400px;background:linear-gradient(135deg,#667eea,#764ba2);top:-200px;right:-200px;animation-delay:0s}.gradient-orb.orb-2[data-v-5aee9964]{width:300px;height:300px;background:linear-gradient(135deg,#f093fb,#f5576c);bottom:-150px;left:-150px;animation-delay:2s}.gradient-orb.orb-3[data-v-5aee9964]{width:250px;height:250px;background:linear-gradient(135deg,#4facfe,#00f2fe);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:4s}@keyframes float-5aee9964{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-20px) rotate(120deg)}66%{transform:translateY(10px) rotate(240deg)}}.header[data-v-5aee9964]{position:relative;z-index:1000;padding:32px 32px 0}.header-top[data-v-5aee9964]{display:flex;justify-content:flex-end;margin-bottom:20px;position:relative;z-index:1001}.logo-container[data-v-5aee9964]{text-align:center}.logo-container .logo[data-v-5aee9964]{display:flex;align-items:center;justify-content:center}.logo-container img[data-v-5aee9964]{height:52px;margin-bottom:12px}.logo-container h1[data-v-5aee9964]{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-5aee9964]{color:#888;font-size:16px;font-weight:400}.main-content[data-v-5aee9964]{flex:1;display:flex;align-items:center;justify-content:center;padding:0 32px 32px;position:relative;z-index:1}.conversation-container[data-v-5aee9964]{width:100%;max-width:800px}.welcome-section[data-v-5aee9964]{text-align:center;margin-bottom:48px}.welcome-title[data-v-5aee9964]{font-size:32px;font-weight:600;color:#fff;margin:0 0 16px}.welcome-subtitle[data-v-5aee9964]{font-size:18px;color:#888;margin:0;line-height:1.5}.input-section[data-v-5aee9964]{margin-bottom:48px}.input-container[data-v-5aee9964]{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-5aee9964]:focus-within{border-color:#667eea;box-shadow:0 8px 32px #667eea33}.main-input[data-v-5aee9964]{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-5aee9964]::placeholder{color:#666}.send-button[data-v-5aee9964]{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-5aee9964]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.send-button[data-v-5aee9964]:disabled{opacity:.5;cursor:not-allowed}.send-button svg[data-v-5aee9964]{font-size:18px}.examples-section[data-v-5aee9964]{margin-bottom:48px}.examples-section .examples-grid[data-v-5aee9964]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.examples-section .examples-grid .card-with-type[data-v-5aee9964]{width:100%;min-width:300px}.examples-section .examples-grid .card-with-type:hover .card-type[data-v-5aee9964]{transform:translateY(-1px);box-shadow:0 8px 25px #8297f666}.card-with-type[data-v-5aee9964]{position:relative}.card-type[data-v-5aee9964]{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-5aee9964]{flex:1;height:100vh;background:#0a0a0a;display:flex;flex-direction:column;position:relative}.config-header-bar[data-v-5aee9964]{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-5aee9964]{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-5aee9964]:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.config-header-bar .config-title[data-v-5aee9964]{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-5aee9964]{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-5aee9964]:hover{transform:translateY(-2px);box-shadow:0 8px 25px #667eea66} diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BxnqWDJP.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BxnqWDJP.js new file mode 100644 index 0000000000..1fa54fd85d --- /dev/null +++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-BxnqWDJP.js @@ -0,0 +1,3 @@ +var ct=Object.defineProperty;var rt=(T,n,s)=>n in T?ct(T,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):T[n]=s;var he=(T,n,s)=>rt(T,typeof n!="symbol"?n+"":n,s);import{d as Ce,u as Ie,c as _e,o as Se,a as m,b as h,n as te,x as i,e,f as F,t as l,g as k,i as Y,F as ge,l as ve,h as ie,w as de,j as fe,z as at,r as D,y as ne,A as De,s as ue,T as xe,k as Re,B as $e,q as Ue,C as Ne,D as ut,E as dt,p as lt,G as pt}from"./index-W4k7xcj8.js";import{I as C}from"./iconify-bZOkqtWv.js";import{s as f,P as Ae,u as it}from"./sidebar-Cklmpi9w.js";import{_ as ye}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{L as ht}from"./llm-check-BVkAKrj3.js";import{L as gt}from"./index-0-ztzQqN.js";import{u as mt,a as vt}from"./useMessage-QCjbpgZx.js";const ft={class:"sidebar-content"},bt={class:"sidebar-content-header"},kt={class:"sidebar-content-title"},_t={class:"tab-switcher"},$t=["disabled"],Pt={key:0,class:"tab-content"},Ct={class:"new-task-section"},St={class:"sidebar-content-list"},yt={key:0,class:"loading-state"},Et={key:1,class:"error-state"},wt={key:2,class:"empty-state"},Tt=["onClick"],It={class:"task-icon"},Dt={class:"task-details"},xt={class:"task-title"},Rt={class:"task-preview"},At={class:"task-time"},Mt={class:"task-actions"},Nt=["title","onClick"],Ut={key:1,class:"tab-content config-tab"},Lt={key:0,class:"config-container"},qt={class:"template-info-header"},Ft={class:"template-info"},Vt={class:"template-id"},Ot={class:"config-section"},Bt={class:"section-header"},Wt={class:"generator-content"},jt=["placeholder"],Ht={class:"generator-actions"},zt=["disabled"],Jt=["disabled"],Gt={class:"config-section"},Xt={class:"section-header"},Kt={class:"section-actions"},Qt=["disabled","title"],Yt=["disabled","title"],Zt=["disabled"],en=["placeholder"],tn={class:"config-section"},nn={class:"section-header"},sn={class:"execution-content"},on={class:"params-input-group"},an={class:"params-help-text"},ln={class:"params-input-container"},cn=["placeholder"],rn=["title"],un={class:"api-url-display"},dn={class:"api-url-label"},pn={class:"api-url"},hn={class:"api-url-display"},gn={class:"api-url-label"},mn=["disabled"],vn=Ce({__name:"index",emits:["planExecutionRequested"],setup(T,{expose:n,emit:s}){const{t:d}=Ie(),E=["currentPlanId","userRequest","rootPlanId"],u=_e({get(){try{if(!f.jsonContent)return"";const g={...JSON.parse(f.jsonContent)};return E.forEach(S=>{delete g[S]}),JSON.stringify(g,null,2)}catch{return f.jsonContent}},set(o){try{if(!o.trim()){f.jsonContent="";return}const g=JSON.parse(o);let S={};try{S=JSON.parse(f.jsonContent||"{}")}catch{}const K={...g};E.forEach(U=>{S[U]!==void 0&&(K[U]=S[U])}),f.jsonContent=JSON.stringify(K)}catch{f.jsonContent=o}}}),$=s,x=async()=>{try{const o=await f.saveTemplate();o!=null&&o.duplicate?alert(d("sidebar.saveCompleted",{message:o.message,versionCount:o.versionCount})):o!=null&&o.saved?alert(d("sidebar.saveSuccess",{message:o.message,versionCount:o.versionCount})):o!=null&&o.message&&alert(d("sidebar.saveStatus",{message:o.message}))}catch(o){console.error("Failed to save plan modifications:",o),alert(o.message||d("sidebar.saveFailed"))}},O=async()=>{var o;try{await f.generatePlan(),alert(d("sidebar.generateSuccess",{templateId:((o=f.selectedTemplate)==null?void 0:o.id)??d("sidebar.unknown")}))}catch(g){console.error("Failed to generate plan:",g),alert(d("sidebar.generateFailed")+": "+g.message)}},P=async()=>{try{await f.updatePlan(),alert(d("sidebar.updateSuccess"))}catch(o){console.error("Failed to update plan:",o),alert(d("sidebar.updateFailed")+": "+o.message)}},B=async()=>{console.log("[Sidebar] handleExecutePlan called");try{const o=f.preparePlanExecution();if(!o){console.log("[Sidebar] No plan data available, returning");return}console.log("[Sidebar] Triggering plan execution request:",o),console.log("[Sidebar] Emitting planExecutionRequested event"),$("planExecutionRequested",o),console.log("[Sidebar] Event emitted")}catch(o){console.error("Error executing plan:",o),alert(d("sidebar.executeFailed")+": "+o.message)}finally{f.finishPlanExecution()}},X=o=>{if(isNaN(o.getTime()))return console.warn("Invalid date received:",o),d("time.unknown");const S=new Date().getTime()-o.getTime(),K=Math.floor(S/6e4),U=Math.floor(S/36e5),q=Math.floor(S/864e5);return K<1?d("time.now"):K<60?d("time.minuteAgo",{count:K}):U<24?d("time.hourAgo",{count:U}):q<30?d("time.dayAgo",{count:q}):o.toLocaleDateString("zh-CN")},G=(o,g)=>!o||o.length<=g?o:o.substring(0,g)+"...";return Se(()=>{f.loadPlanTemplateList()}),n({loadPlanTemplateList:f.loadPlanTemplateList,toggleSidebar:f.toggleSidebar,currentPlanTemplateId:f.currentPlanTemplateId}),(o,g)=>(h(),m("div",{class:te(["sidebar-wrapper",{"sidebar-wrapper-collapsed":i(f).isCollapsed}])},[e("div",ft,[e("div",bt,[e("div",kt,l(o.$t("sidebar.title")),1)]),e("div",_t,[e("button",{class:te(["tab-button",{active:i(f).currentTab==="list"}]),onClick:g[0]||(g[0]=S=>i(f).switchToTab("list"))},[k(i(C),{icon:"carbon:list",width:"16"}),Y(" "+l(o.$t("sidebar.templateList")),1)],2),e("button",{class:te(["tab-button",{active:i(f).currentTab==="config"}]),onClick:g[1]||(g[1]=S=>i(f).switchToTab("config")),disabled:!i(f).selectedTemplate},[k(i(C),{icon:"carbon:settings",width:"16"}),Y(" "+l(o.$t("sidebar.configuration")),1)],10,$t)]),i(f).currentTab==="list"?(h(),m("div",Pt,[e("div",Ct,[e("button",{class:"new-task-btn",onClick:g[2]||(g[2]=S=>i(f).createNewTemplate())},[k(i(C),{icon:"carbon:add",width:"16"}),Y(" "+l(o.$t("sidebar.newPlan"))+" ",1),g[11]||(g[11]=e("span",{class:"shortcut"},"⌘ K",-1))])]),e("div",St,[i(f).isLoading?(h(),m("div",yt,[k(i(C),{icon:"carbon:circle-dash",width:"20",class:"spinning"}),e("span",null,l(o.$t("sidebar.loading")),1)])):i(f).errorMessage?(h(),m("div",Et,[k(i(C),{icon:"carbon:warning",width:"20"}),e("span",null,l(i(f).errorMessage),1),e("button",{onClick:g[3]||(g[3]=(...S)=>i(f).loadPlanTemplateList&&i(f).loadPlanTemplateList(...S)),class:"retry-btn"},l(o.$t("sidebar.retry")),1)])):i(f).planTemplateList.length===0?(h(),m("div",wt,[k(i(C),{icon:"carbon:document",width:"32"}),e("span",null,l(o.$t("sidebar.noTemplates")),1)])):(h(!0),m(ge,{key:3},ve(i(f).sortedTemplates,S=>(h(),m("div",{key:S.id,class:te(["sidebar-content-list-item",{"sidebar-content-list-item-active":S.id===i(f).currentPlanTemplateId}]),onClick:K=>i(f).selectTemplate(S)},[e("div",It,[k(i(C),{icon:"carbon:document",width:"20"})]),e("div",Dt,[e("div",xt,l(S.title||o.$t("sidebar.unnamedPlan")),1),e("div",Rt,l(G(S.description||o.$t("sidebar.noDescription"),40)),1)]),e("div",At,l(X(i(f).parseDateTime(S.updateTime||S.createTime))),1),e("div",Mt,[e("button",{class:"delete-task-btn",title:o.$t("sidebar.deleteTemplate"),onClick:ie(K=>i(f).deleteTemplate(S),["stop"])},[k(i(C),{icon:"carbon:close",width:"16"})],8,Nt)])],10,Tt))),128))])])):i(f).currentTab==="config"?(h(),m("div",Ut,[i(f).selectedTemplate?(h(),m("div",Lt,[e("div",qt,[e("div",Ft,[e("h3",null,l(i(f).selectedTemplate.title||o.$t("sidebar.unnamedPlan")),1),e("span",Vt,"ID: "+l(i(f).selectedTemplate.id),1)]),e("button",{class:"back-to-list-btn",onClick:g[4]||(g[4]=S=>i(f).switchToTab("list"))},[k(i(C),{icon:"carbon:arrow-left",width:"16"})])]),e("div",Ot,[e("div",Bt,[k(i(C),{icon:"carbon:generate",width:"16"}),e("span",null,l(o.$t("sidebar.planGenerator")),1)]),e("div",Wt,[de(e("textarea",{"onUpdate:modelValue":g[5]||(g[5]=S=>i(f).generatorPrompt=S),class:"prompt-input",placeholder:o.$t("sidebar.generatorPlaceholder"),rows:"3"},null,8,jt),[[fe,i(f).generatorPrompt]]),e("div",Ht,[e("button",{class:"btn btn-primary btn-sm",onClick:O,disabled:i(f).isGenerating||!i(f).generatorPrompt.trim()},[k(i(C),{icon:i(f).isGenerating?"carbon:circle-dash":"carbon:generate",width:"14",class:te({spinning:i(f).isGenerating})},null,8,["icon","class"]),Y(" "+l(i(f).isGenerating?o.$t("sidebar.generating"):o.$t("sidebar.generatePlan")),1)],8,zt),e("button",{class:"btn btn-secondary btn-sm",onClick:P,disabled:i(f).isGenerating||!i(f).generatorPrompt.trim()||!i(f).jsonContent.trim()},[k(i(C),{icon:"carbon:edit",width:"14"}),Y(" "+l(o.$t("sidebar.updatePlan")),1)],8,Jt)])])]),e("div",Gt,[e("div",Xt,[k(i(C),{icon:"carbon:code",width:"16"}),e("span",null,l(o.$t("sidebar.jsonTemplate")),1),e("div",Kt,[e("button",{class:"btn btn-sm",onClick:g[6]||(g[6]=(...S)=>i(f).rollbackVersion&&i(f).rollbackVersion(...S)),disabled:!i(f).canRollback,title:o.$t("sidebar.rollback")},[k(i(C),{icon:"carbon:undo",width:"14"})],8,Qt),e("button",{class:"btn btn-sm",onClick:g[7]||(g[7]=(...S)=>i(f).restoreVersion&&i(f).restoreVersion(...S)),disabled:!i(f).canRestore,title:o.$t("sidebar.restore")},[k(i(C),{icon:"carbon:redo",width:"14"})],8,Yt),e("button",{class:"btn btn-primary btn-sm",onClick:x,disabled:i(f).isGenerating||i(f).isExecuting},[k(i(C),{icon:"carbon:save",width:"14"})],8,Zt)])]),de(e("textarea",{"onUpdate:modelValue":g[8]||(g[8]=S=>u.value=S),class:"json-editor",placeholder:o.$t("sidebar.jsonPlaceholder"),rows:"12"},null,8,en),[[fe,u.value]])]),e("div",tn,[e("div",nn,[k(i(C),{icon:"carbon:play",width:"16"}),e("span",null,l(o.$t("sidebar.executionController")),1)]),e("div",sn,[e("div",on,[e("label",null,l(o.$t("sidebar.executionParams")),1),e("div",an,l(o.$t("sidebar.executionParamsHelp")),1),e("div",ln,[de(e("input",{"onUpdate:modelValue":g[9]||(g[9]=S=>i(f).executionParams=S),class:"params-input",placeholder:o.$t("sidebar.executionParamsPlaceholder")},null,8,cn),[[fe,i(f).executionParams]]),e("button",{class:"clear-params-btn",onClick:g[10]||(g[10]=(...S)=>i(f).clearExecutionParams&&i(f).clearExecutionParams(...S)),title:o.$t("sidebar.clearParams")},[k(i(C),{icon:"carbon:close",width:"12"})],8,rn)])]),e("div",un,[e("span",dn,l(o.$t("sidebar.apiUrl"))+":",1),e("code",pn,l(i(f).computedApiUrl),1)]),e("div",hn,[e("span",gn,l(o.$t("sidebar.statusApiUrl"))+":",1),g[12]||(g[12]=e("code",{class:"api-url"},"/api/executor/details/{planId}",-1))]),e("button",{class:"btn btn-primary execute-btn",onClick:B,disabled:i(f).isExecuting||i(f).isGenerating},[k(i(C),{icon:i(f).isExecuting?"carbon:circle-dash":"carbon:play",width:"16",class:te({spinning:i(f).isExecuting})},null,8,["icon","class"]),Y(" "+l(i(f).isExecuting?o.$t("sidebar.executing"):o.$t("sidebar.executePlan")),1)],8,mn)])])])):F("",!0)])):F("",!0)])],2))}}),fn=ye(vn,[["__scopeId","data-v-3c0cf310"]]);class qe{static async sendMessage(n){return ht.withLlmCheck(async()=>{const s=await fetch(`${this.BASE_URL}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:n})});if(!s.ok)throw new Error(`API request failed: ${s.status}`);return await s.json()})}}he(qe,"BASE_URL","/api/executor");class Fe{static async getDetails(n){try{const s=await fetch(`${this.BASE_URL}/details/${n}`);if(s.status===404)return null;if(!s.ok){const u=await s.text();throw new Error(`Failed to get detailed information: ${s.status} - ${u}`)}const d=await s.text(),E=JSON.parse(d);return E&&typeof E=="object"&&!E.currentPlanId&&(E.currentPlanId=n),E}catch(s){return console.error("[CommonApiService] Failed to get plan details:",s),{currentPlanId:n,status:"failed",message:s instanceof Error?s.message:"Failed to save, please retry"}}}static async submitFormInput(n,s){const d=await fetch(`${this.BASE_URL}/submit-input/${n}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!d.ok){let u;try{u=await d.json()}catch{u={message:`Failed to submit form input: ${d.status}`}}throw new Error(u.message||`Failed to submit form input: ${d.status}`)}const E=d.headers.get("content-type");return E&&E.indexOf("application/json")!==-1?await d.json():{success:!0}}static async getAllPrompts(){try{const n=await fetch(this.BASE_URL);return await(await this.handleResponse(n)).json()}catch(n){throw console.error("Failed to get Prompt list:",n),n}}static async handleResponse(n){if(!n.ok)try{const s=await n.json();throw new Error(s.message||`API request failed: ${n.status}`)}catch{throw new Error(`API request failed: ${n.status} ${n.statusText}`)}return n}}he(Fe,"BASE_URL","/api/executor");const Pe=class Pe{constructor(){he(this,"POLL_INTERVAL",5e3);he(this,"state",at({activePlanId:null,lastSequenceSize:0,isPolling:!1,pollTimer:null}));he(this,"callbacks",{});he(this,"planExecutionCache",new Map);he(this,"uiStateCache",new Map);console.log("[PlanExecutionManager] Initialized with callback-based event system")}getCachedPlanRecord(n){return this.planExecutionCache.get(n)}getCachedUIState(n){return this.uiStateCache.get(n)}setCachedUIState(n,s){this.uiStateCache.set(n,s),console.log(`[PlanExecutionManager] Cached UI state for rootPlanId: ${n}`)}getAllCachedRecords(){return new Map(this.planExecutionCache)}hasCachedPlanRecord(n){return this.planExecutionCache.has(n)}setCachedPlanRecord(n,s){this.planExecutionCache.set(n,s),console.log(`[PlanExecutionManager] Cached plan execution record for rootPlanId: ${n}`)}clearCachedPlanRecord(n){const s=this.planExecutionCache.delete(n);return s&&console.log(`[PlanExecutionManager] Cleared cached plan execution record for rootPlanId: ${n}`),s}clearAllCachedRecords(){const n=this.planExecutionCache.size,s=this.uiStateCache.size;this.planExecutionCache.clear(),this.uiStateCache.clear(),console.log(`[PlanExecutionManager] Cleared all caches - Plans: ${n}, UI States: ${s}`)}static getInstance(){return Pe.instance||(Pe.instance=new Pe),Pe.instance}getActivePlanId(){return this.state.activePlanId}getState(){return this.state}setEventCallbacks(n){this.callbacks={...this.callbacks,...n},console.log("[PlanExecutionManager] Event callbacks set:",Object.keys(n))}async handleUserMessageSendRequested(n){if(this.validateAndPrepareUIForNewRequest(n))try{if(await this.sendUserMessageAndSetPlanId(n),this.state.activePlanId)this.initiatePlanExecutionSequence(n,this.state.activePlanId);else throw new Error("Failed to get valid plan ID")}catch(s){console.error("[PlanExecutionManager] Failed to send user message:",s);const d=this.state.activePlanId??"error";this.setCachedUIState(d,{enabled:!0}),this.emitChatInputUpdateState(d),this.state.activePlanId=null}}handlePlanExecutionRequested(n,s){console.log("[PlanExecutionManager] Received plan execution request:",{planId:n,query:s}),n?(this.state.activePlanId=n,this.initiatePlanExecutionSequence(s??"Execute Plan",n)):console.error("[PlanExecutionManager] Invalid plan execution request: missing planId")}handleCachedPlanExecution(n,s){const d=this.getCachedPlanRecord(n);return d!=null&&d.currentPlanId?(console.log(`[PlanExecutionManager] Found cached plan execution record for rootPlanId: ${n}`),this.handlePlanExecutionRequested(d.currentPlanId,s),!0):(console.log(`[PlanExecutionManager] No cached plan execution record found for rootPlanId: ${n}`),!1)}validateAndPrepareUIForNewRequest(n){if(!n)return console.warn("[PlanExecutionManager] Query is empty"),!1;if(this.state.activePlanId)return!1;this.emitChatInputClear();const s=this.state.activePlanId??"ui-state";return this.setCachedUIState(s,{enabled:!1,placeholder:"Processing..."}),this.emitChatInputUpdateState(s),!0}async sendUserMessageAndSetPlanId(n){try{const s=await qe.sendMessage(n);if(s!=null&&s.planId)return this.state.activePlanId=s.planId,s;if(s!=null&&s.planTemplateId)return this.state.activePlanId=s.planTemplateId,{...s,planId:s.planTemplateId};throw console.error("[PlanExecutionManager] Failed to get planId from response:",s),new Error("Failed to get valid planId from API response")}catch(s){throw console.error("[PlanExecutionManager] API call failed:",s),s}}initiatePlanExecutionSequence(n,s){console.log(`[PlanExecutionManager] Starting plan execution sequence for query: "${n}", planId: ${s}`);const d=s;this.emitDialogRoundStart(d),this.startPolling()}handlePlanCompletion(n){this.emitPlanCompleted(n.rootPlanId??""),this.state.lastSequenceSize=0,this.stopPolling();try{setTimeout(async()=>{if(this.state.activePlanId)try{await Ae.deletePlanTemplate(this.state.activePlanId),console.log(`[PlanExecutionManager] Plan template ${this.state.activePlanId} deleted successfully`)}catch(s){console.log(`Delete plan execution record failed: ${s.message}`)}},5e3)}catch(s){console.log(`Delete plan execution record failed: ${s.message}`)}n.completed&&(this.state.activePlanId=null,this.emitChatInputUpdateState(n.rootPlanId??""))}handlePlanError(n){this.emitPlanError(n.message??""),this.state.lastSequenceSize=0,this.stopPolling();try{setTimeout(async()=>{if(this.state.activePlanId)try{await Ae.deletePlanTemplate(this.state.activePlanId),console.log(`[PlanExecutionManager] Plan template ${this.state.activePlanId} deleted successfully`)}catch(s){console.log(`Delete plan execution record failed: ${s.message}`)}},5e3)}catch(s){console.log(`Delete plan execution record failed: ${s.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 n=await this.getPlanDetails(this.state.activePlanId);if(!n){console.warn("[PlanExecutionManager] No details received from API");return}if(n.status&&n.status==="failed"){this.handlePlanError(n);return}if(n.rootPlanId&&this.setCachedPlanRecord(n.rootPlanId,n),!n.steps||n.steps.length===0){console.log("[PlanExecutionManager] Simple response without steps detected, handling as completed"),this.emitPlanUpdate(n.rootPlanId??""),this.handlePlanCompletion(n);return}this.emitPlanUpdate(n.rootPlanId??""),n.completed&&this.handlePlanCompletion(n)}catch(n){console.error("[PlanExecutionManager] Failed to poll plan status:",n)}finally{this.state.isPolling=!1}}}async getPlanDetails(n){try{const s=await Fe.getDetails(n);return s!=null&&s.rootPlanId&&(this.planExecutionCache.set(s.rootPlanId,s),console.log(`[PlanExecutionManager] Cached plan execution record for rootPlanId: ${s.rootPlanId}`)),s}catch(s){return console.error("[PlanExecutionManager] Failed to get plan details:",s),{currentPlanId:n,status:"failed",message:s instanceof Error?s.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(n){this.callbacks.onChatInputUpdateState&&this.callbacks.onChatInputUpdateState(n)}emitDialogRoundStart(n){this.callbacks.onDialogRoundStart&&this.callbacks.onDialogRoundStart(n)}emitPlanUpdate(n){this.callbacks.onPlanUpdate&&this.callbacks.onPlanUpdate(n)}emitPlanCompleted(n){this.callbacks.onPlanCompleted&&this.callbacks.onPlanCompleted(n)}emitPlanError(n){this.callbacks.onPlanError&&this.callbacks.onPlanError(n)}};he(Pe,"instance",null);let Le=Pe;const oe=Le.getInstance(),bn={class:"right-panel"},kn={class:"preview-header"},_n={class:"preview-tabs"},$n={class:"tab-button active"},Pn={class:"preview-content"},Cn={class:"step-details"},Sn={key:0,class:"step-info-fixed"},yn={key:0,class:"agent-info"},En={class:"info-item"},wn={class:"label"},Tn={class:"value"},In={class:"info-item"},Dn={class:"label"},xn={class:"value"},Rn={class:"info-item"},An={class:"label"},Mn={class:"value"},Nn={class:"info-item"},Un={class:"label"},Ln={class:"value"},qn={class:"info-item"},Fn={class:"label"},Vn={class:"execution-status"},On={class:"status-item"},Bn={class:"status-text"},Wn={key:0},jn={key:0,class:"think-act-steps"},Hn={class:"steps-container"},zn={class:"step-header"},Jn={class:"step-number"},Gn={class:"think-section"},Xn={class:"think-content"},Kn={class:"input"},Qn={class:"label"},Yn={class:"output"},Zn={class:"label"},es={key:0,class:"action-section"},ts={class:"action-content"},ns={class:"tool-info"},ss={class:"label"},os={class:"value"},as={class:"input"},ls={class:"label"},is={class:"output"},cs={class:"label"},rs={key:0,class:"sub-plan-section"},us={class:"sub-plan-content"},ds={class:"sub-plan-header"},ps={class:"sub-plan-info"},hs={class:"label"},gs={class:"value"},ms={key:0,class:"sub-plan-info"},vs={class:"label"},fs={class:"value"},bs={class:"sub-plan-status"},ks={class:"status-text"},_s={key:0,class:"no-steps-message"},$s={key:1,class:"no-execution-message"},Ps={class:"step-basic-info"},Cs={class:"info-item"},Ss={class:"label"},ys={class:"value"},Es={key:0,class:"info-item"},ws={class:"label"},Ts={class:"value"},Is={class:"info-item"},Ds={class:"label"},xs={class:"no-execution-hint"},Rs={key:2,class:"execution-indicator"},As={class:"execution-text"},Ms={key:1,class:"no-selection"},Ns=["title"],Us=Ce({__name:"index",setup(T,{expose:n}){const{t:s}=Ie(),d=D(),E=D(),u=D(),$=D(null),x=D(!1),O=D(!0),P=D(!0),B=_e(()=>u.value?u.value.completed?s("rightPanel.status.completed"):u.value.current?s("rightPanel.status.executing"):s("rightPanel.status.waiting"):""),X=v=>{var L;if(console.log(`[RightPanel] updateDisplayedPlanProgress called with rootPlanId: ${v}`),u.value&&$.value){const R=$.value.rootPlanId??E.value;if(R&&R!==v){console.log(`[RightPanel] Plan ID mismatch - skipping update. Current: ${R}, Requested: ${v}`);return}}console.log(`[RightPanel] Plan ID validation passed - proceeding with update for rootPlanId: ${v}`);const w=oe.getCachedPlanRecord(v);if(!w){console.warn(`[RightPanel] Plan data not found for rootPlanId: ${v}`);return}if(w.steps&&w.steps.length>0){const R=w.steps.length,y=(w.currentStepIndex??0)+1;console.log(`[RightPanel] Progress: ${y} / ${R}`)}if(u.value&&E.value&&(E.value===v||((L=$.value)==null?void 0:L.rootPlanId)===v)&&(console.log(`[RightPanel] Refreshing selected step details for plan: ${v}`),$.value)){const y=$.value,A=o(y.planId,y.rootPlanId,y.subPlanId);A?(g(A,y.stepIndex,y.planId,y.isSubPlan),V()):console.warn("[RightPanel] Could not find plan record for refresh:",y)}},G=(v,w,L,R,y)=>{console.log("[RightPanel] Step selected:",{planId:v,stepIndex:w,rootPlanId:L,subPlanId:R,subStepIndex:y});const A=!!(L&&R&&y!==void 0);$.value={planId:v,stepIndex:w,isSubPlan:A,...A&&{rootPlanId:L,subPlanId:R,subStepIndex:y}};const ee=o(v,L,R);if(!ee){console.warn("[RightPanel] Plan data not found:",{planId:v,rootPlanId:L,subPlanId:R}),u.value=null,$.value=null;return}g(ee,w,v,A)},o=(v,w,L)=>{var A;if(!w||!L)return oe.getCachedPlanRecord(v)??null;const R=oe.getCachedPlanRecord(v);if(R)return R;const y=oe.getCachedPlanRecord(w);if(!(y!=null&&y.agentExecutionSequence))return null;for(const ee of y.agentExecutionSequence)if(ee.thinkActSteps){for(const se of ee.thinkActSteps)if(((A=se.subPlanExecutionRecord)==null?void 0:A.currentPlanId)===L)return se.subPlanExecutionRecord}return null},g=(v,w,L,R)=>{var ke,re,b,c,_;if(!v.steps||w>=v.steps.length){u.value=null,$.value=null,console.warn("[RightPanel] Invalid step data:",{planId:L,stepIndex:w,hasSteps:!!v.steps,stepsLength:(ke=v.steps)==null?void 0:ke.length,message:"Invalid step index"});return}E.value=L;const y=v.steps[w],A=(re=v.agentExecutionSequence)==null?void 0:re[w];console.log("[RightPanel] Step data details:",{planId:L,stepIndex:w,step:y,hasAgentExecutionSequence:!!v.agentExecutionSequence,agentExecutionSequenceLength:(b=v.agentExecutionSequence)==null?void 0:b.length,agentExecution:A,hasThinkActSteps:!!(A!=null&&A.thinkActSteps),thinkActStepsLength:(c=A==null?void 0:A.thinkActSteps)==null?void 0:c.length,isSubPlan:R});const ee=(A==null?void 0:A.status)==="FINISHED",se=!ee&&w===v.currentStepIndex&&!v.completed,me={planId:L,index:w,title:typeof y=="string"?y:y.title||y.description||y.name||`${R?"Sub ":""}Step ${w+1}`,description:typeof y=="string"?y:y.description||y,completed:ee,current:se};A&&(me.agentExecution=A),u.value=me,console.log("[RightPanel] Step details updated:",{planId:L,stepIndex:w,stepTitle:u.value.title,hasAgentExecution:!!A,hasThinkActSteps:(((_=A==null?void 0:A.thinkActSteps)==null?void 0:_.length)??0)>0,completed:ee,current:se,planCurrentStep:v.currentStepIndex,planCompleted:v.completed,isSubPlan:R}),A!=null&&A.thinkActSteps&&A.thinkActSteps.forEach((I,t)=>{I.subPlanExecutionRecord&&console.log(`[RightPanel] Found sub-plan in thinkActStep ${t}:`,I.subPlanExecutionRecord)}),setTimeout(()=>{U()},100),V()},S=(v,w,L,R)=>{console.log("[RightPanel] Sub plan step selected (delegating to unified handler):",{rootPlanId:v,subPlanId:w,stepIndex:L,subStepIndex:R}),G(w,R,v,w,R)},K=v=>{d.value=v??void 0},U=()=>{if(!d.value)return;const{scrollTop:v,scrollHeight:w,clientHeight:L}=d.value,R=w-v-L<50,y=w>L;O.value=R,x.value=y&&!R,R?P.value=!0:w-v-L>100&&(P.value=!1),console.log("[RightPanel] Scroll state check:",{scrollTop:v,scrollHeight:w,clientHeight:L,isAtBottom:R,hasScrollableContent:y,showButton:x.value,shouldAutoScroll:P.value})},q=()=>{d.value&&(d.value.scrollTo({top:d.value.scrollHeight,behavior:"smooth"}),ne(()=>{P.value=!0,U()}))},V=()=>{!P.value||!d.value||ne(()=>{d.value&&(d.value.scrollTop=d.value.scrollHeight,console.log("[RightPanel] Auto scroll to bottom"))})},Q=v=>{if(v===null||typeof v>"u"||v==="")return"N/A";try{const w=typeof v=="object"?v:JSON.parse(v);return JSON.stringify(w,null,2)}catch{return String(v)}},ce=()=>{u.value=null,E.value=void 0,P.value=!0,d.value&&d.value.removeEventListener("scroll",U)},be=()=>{const v=()=>{const w=d.value;return w?(K(w),w.addEventListener("scroll",U),P.value=!0,U(),console.log("[RightPanel] Scroll listener initialized successfully"),!0):(console.log("[RightPanel] Scroll container not found, retrying..."),!1)};ne(()=>{v()||setTimeout(()=>{v()},100)})};return Se(()=>{console.log("[RightPanel] Component mounted"),ne(()=>{be()})}),De(()=>{console.log("[RightPanel] Component unmounting, cleaning up..."),$.value=null,ce()}),n({updateDisplayedPlanProgress:X,handleStepSelected:G,handleSubPlanStepSelected:S}),(v,w)=>{var L,R;return h(),m("div",bn,[e("div",kn,[e("div",_n,[e("button",$n,[k(i(C),{icon:"carbon:events"}),Y(" "+l(i(s)("rightPanel.stepExecutionDetails")),1)])])]),e("div",Pn,[e("div",Cn,[u.value?(h(),m("div",Sn,[e("h3",null,l(u.value.title||u.value.description||i(s)("rightPanel.defaultStepTitle",{number:u.value.index+1})),1),u.value.agentExecution?(h(),m("div",yn,[e("div",En,[e("span",wn,l(i(s)("rightPanel.executingAgent"))+":",1),e("span",Tn,l(u.value.agentExecution.agentName),1)]),e("div",In,[e("span",Dn,l(i(s)("rightPanel.description"))+":",1),e("span",xn,l(u.value.agentExecution.agentDescription||""),1)]),e("div",Rn,[e("span",An,l(i(s)("rightPanel.callingModel"))+":",1),e("span",Mn,l(u.value.agentExecution.modelName),1)]),e("div",Nn,[e("span",Un,l(i(s)("rightPanel.request"))+":",1),e("span",Ln,l(u.value.agentExecution.agentRequest||""),1)]),e("div",qn,[e("span",Fn,l(i(s)("rightPanel.executionResult"))+":",1),e("span",{class:te(["value",{success:u.value.agentExecution.status==="FINISHED"}])},l(u.value.agentExecution.status||i(s)("rightPanel.executing")),3)])])):F("",!0),e("div",Vn,[e("div",On,[u.value.completed?(h(),ue(i(C),{key:0,icon:"carbon:checkmark-filled",class:"status-icon success"})):u.value.current?(h(),ue(i(C),{key:1,icon:"carbon:in-progress",class:"status-icon progress"})):(h(),ue(i(C),{key:2,icon:"carbon:time",class:"status-icon pending"})),e("span",Bn,l(B.value),1)])])])):F("",!0),e("div",{ref_key:"scrollContainer",ref:d,class:"step-details-scroll-container",onScroll:U},[u.value?(h(),m("div",Wn,[(L=u.value.agentExecution)!=null&&L.thinkActSteps&&u.value.agentExecution.thinkActSteps.length>0?(h(),m("div",jn,[e("h4",null,l(i(s)("rightPanel.thinkAndActionSteps")),1),e("div",Hn,[(h(!0),m(ge,null,ve(u.value.agentExecution.thinkActSteps,(y,A)=>(h(),m("div",{key:A,class:"think-act-step"},[e("div",zn,[e("span",Jn,"#"+l(A+1),1),e("span",{class:te(["step-status",y.status])},l(y.status||i(s)("rightPanel.executing")),3)]),e("div",Gn,[e("h5",null,[k(i(C),{icon:"carbon:thinking"}),Y(" "+l(i(s)("rightPanel.thinking")),1)]),e("div",Xn,[e("div",Kn,[e("span",Qn,l(i(s)("rightPanel.input"))+":",1),e("pre",null,l(Q(y.thinkInput)),1)]),e("div",Yn,[e("span",Zn,l(i(s)("rightPanel.output"))+":",1),e("pre",null,l(Q(y.thinkOutput)),1)])])]),y.actionNeeded?(h(),m("div",es,[e("h5",null,[k(i(C),{icon:"carbon:play"}),Y(" "+l(i(s)("rightPanel.action")),1)]),e("div",ts,[(h(!0),m(ge,null,ve(y.actToolInfoList,(ee,se)=>(h(),m("div",{key:se},[e("div",ns,[e("span",ss,l(i(s)("rightPanel.tool"))+":",1),e("span",os,l(ee.name||""),1)]),e("div",as,[e("span",ls,l(i(s)("rightPanel.toolParameters"))+":",1),e("pre",null,l(Q(ee.parameters)),1)]),e("div",is,[e("span",cs,l(i(s)("rightPanel.executionResult"))+":",1),e("pre",null,l(Q(ee.result)),1)])]))),128))]),y.subPlanExecutionRecord?(h(),m("div",rs,[e("h5",null,[k(i(C),{icon:"carbon:tree-view"}),Y(" "+l(i(s)("rightPanel.subPlan")),1)]),e("div",us,[e("div",ds,[e("div",ps,[e("span",hs,l(v.$t("rightPanel.subPlanId"))+":",1),e("span",gs,l(y.subPlanExecutionRecord.currentPlanId),1)]),y.subPlanExecutionRecord.title?(h(),m("div",ms,[e("span",vs,l(v.$t("rightPanel.title"))+":",1),e("span",fs,l(y.subPlanExecutionRecord.title),1)])):F("",!0),e("div",bs,[y.subPlanExecutionRecord.completed?(h(),ue(i(C),{key:0,icon:"carbon:checkmark-filled",class:"status-icon success"})):(h(),ue(i(C),{key:1,icon:"carbon:in-progress",class:"status-icon progress"})),e("span",ks,l(y.subPlanExecutionRecord.completed?v.$t("rightPanel.status.completed"):v.$t("rightPanel.status.executing")),1)])])])])):F("",!0)])):F("",!0)]))),128))]),u.value.agentExecution&&!((R=u.value.agentExecution.thinkActSteps)!=null&&R.length)?(h(),m("div",_s,[e("p",null,l(i(s)("rightPanel.noStepDetails")),1)])):u.value.agentExecution?F("",!0):(h(),m("div",$s,[k(i(C),{icon:"carbon:information",class:"info-icon"}),e("h4",null,l(i(s)("rightPanel.stepInfo")),1),e("div",Ps,[e("div",Cs,[e("span",Ss,l(i(s)("rightPanel.stepName"))+":",1),e("span",ys,l(u.value.title||u.value.description||v.$t("rightPanel.stepNumber",{number:u.value.index+1})),1)]),u.value.description?(h(),m("div",Es,[e("span",ws,l(v.$t("rightPanel.description"))+":",1),e("span",Ts,l(u.value.description),1)])):F("",!0),e("div",Is,[e("span",Ds,l(v.$t("rightPanel.status.label"))+":",1),e("span",{class:te(["value",{"status-completed":u.value.completed,"status-current":u.value.current,"status-pending":!u.value.completed&&!u.value.current}])},l(u.value.completed?v.$t("rightPanel.status.completed"):u.value.current?v.$t("rightPanel.status.executing"):v.$t("rightPanel.status.pending")),3)])]),e("p",xs,l(i(s)("rightPanel.noExecutionInfo")),1)])),u.value.current&&!u.value.completed?(h(),m("div",Rs,[w[0]||(w[0]=e("div",{class:"execution-waves"},[e("div",{class:"wave wave-1"}),e("div",{class:"wave wave-2"}),e("div",{class:"wave wave-3"})],-1)),e("p",As,[k(i(C),{icon:"carbon:in-progress",class:"rotating-icon"}),Y(" "+l(i(s)("rightPanel.stepExecuting")),1)])])):F("",!0)])):(h(),m("div",Ms,[k(i(C),{icon:"carbon:events",class:"empty-icon"}),e("h3",null,l(i(s)("rightPanel.noStepSelected")),1),e("p",null,l(i(s)("rightPanel.selectStepHint")),1)]))])):F("",!0),k(xe,{name:"scroll-button"},{default:Re(()=>[x.value?(h(),m("button",{key:0,onClick:q,class:"scroll-to-bottom-btn",title:i(s)("rightPanel.scrollToBottom")},[k(i(C),{icon:"carbon:chevron-down"})],8,Ns)):F("",!0)]),_:1})],544)])])])}}}),Ls=ye(Us,[["__scopeId","data-v-3c3758b3"]]);function qs(){const T=oe,n=_e(()=>T.getActivePlanId()),s=_e(()=>T.getState()),d=_e(()=>s.value.isPolling),E=_e(()=>!!n.value),u=(P,B)=>{T.initiatePlanExecutionSequence(P,B)},$=()=>{T.stopPolling()},x=()=>{T.startPolling()},O=()=>{T.cleanup()};return De(()=>{O()}),{activePlanId:n,state:s,isPolling:d,hasActivePlan:E,startExecution:u,stopPolling:$,startPolling:x,cleanup:O}}const Fs={class:"chat-container"},Vs={class:"message-content"},Os={key:0,class:"user-message"},Bs={key:1,class:"assistant-message"},Ws={key:0,class:"thinking-section"},js={class:"thinking-header"},Hs={class:"thinking-avatar"},zs={class:"thinking-label"},Js={class:"thinking-content"},Gs={key:0,class:"thinking"},Xs={key:1,class:"progress"},Ks={class:"progress-bar"},Qs={class:"progress-text"},Ys={key:2,class:"steps-container"},Zs={class:"steps-title"},eo=["onClick"],to={class:"section-header"},no={class:"step-icon"},so={class:"step-title"},oo={key:0,class:"step-status current"},ao={key:1,class:"step-status completed"},lo={key:2,class:"step-status pending"},io={key:0,class:"action-info"},co={class:"action-description"},ro={class:"action-icon"},uo={key:0,class:"tool-params"},po={class:"param-label"},ho={class:"param-content"},go={key:1,class:"think-details"},mo={class:"think-header"},vo={class:"think-label"},fo={class:"think-output"},bo={class:"think-content"},ko={key:1,class:"sub-plan-steps"},_o={class:"sub-plan-header"},$o={class:"sub-plan-title"},Po={class:"sub-plan-step-list"},Co=["onClick"],So={class:"sub-step-indicator"},yo={class:"sub-step-icon"},Eo={class:"sub-step-number"},wo={class:"sub-step-content"},To={class:"sub-step-title"},Io={class:"sub-step-badge"},Do={key:2,class:"user-input-form-container"},xo={class:"user-input-message"},Ro={key:0,class:"form-description"},Ao=["onSubmit"],Mo=["for"],No=["id","name","onUpdate:modelValue"],Uo={key:1,class:"form-group"},Lo={for:"form-input-genericInput"},qo=["onUpdate:modelValue"],Fo={type:"submit",class:"submit-user-input-btn"},Vo={key:3,class:"default-processing"},Oo={class:"processing-indicator"},Bo={class:"response-section"},Wo={class:"response-header"},jo={class:"response-avatar"},Ho={class:"response-name"},zo={class:"response-content"},Jo={key:0,class:"final-response"},Go=["innerHTML"],Xo={key:1,class:"response-placeholder"},Ko={class:"typing-indicator"},Qo={class:"typing-text"},Yo={key:0,class:"message assistant"},Zo={class:"message-content"},ea={class:"assistant-message"},ta={class:"thinking-section"},na={class:"thinking-header"},sa={class:"thinking-avatar"},oa={class:"thinking-label"},aa={class:"thinking-content"},la={class:"default-processing"},ia={class:"processing-indicator"},ca={class:"response-section"},ra={class:"response-header"},ua={class:"response-avatar"},da={class:"response-name"},pa={class:"response-content"},ha={class:"response-placeholder"},ga={class:"typing-indicator"},ma={class:"typing-text"},va=["title"],fa=Ce({__name:"index",props:{mode:{default:"plan"},initialPrompt:{default:""}},emits:["step-selected","sub-plan-step-selected"],setup(T,{expose:n,emit:s}){const d=T,E=s,{t:u}=Ie(),$=qs(),x=D(),O=D(!1),P=D([]),B=D(),X=D(!1),G=at({}),o=(t,a,r)=>{const p={id:Date.now().toString(),type:t,content:a,timestamp:new Date,...r};return t==="assistant"&&!p.thinking&&!p.content&&(p.thinking=u("chat.thinking")),P.value.push(p),p},g=t=>{const a=P.value[P.value.length-1];a.type==="assistant"&&Object.assign(a,t)},S=async t=>{try{O.value=!0;const a=o("assistant","",{thinking:u("chat.thinkingProcessing")}),r=await qe.sendMessage(t);if(r.planId)console.log("[ChatComponent] Received planId from direct execution:",r.planId),a.planExecution||(a.planExecution={}),a.planExecution.currentPlanId=r.planId,oe.handlePlanExecutionRequested(r.planId,t),delete a.thinking,console.log("[ChatComponent] Started polling for plan execution updates");else{delete a.thinking;const p=K(r,t);a.content=p}}catch(a){console.error("Direct mode error:",a),g({content:U(a)})}finally{O.value=!1}},K=(t,a)=>t.result??t.message??t.content??"",U=t=>{const a=(t==null?void 0:t.message)??(t==null?void 0:t.toString())??u("chat.unknownError");return a.includes("network")||a.includes("timeout")?u("chat.networkError"):a.includes("auth")||a.includes("unauthorized")?u("chat.authError"):a.includes("invalid")||a.includes("format")||a.includes("parameter")?u("chat.formatError"):`${u("chat.unknownError")} (${a})`},q=(t=!1)=>{ne(()=>{if(x.value){const a=x.value;(t||a.scrollHeight-a.scrollTop-a.clientHeight<150)&&a.scrollTo({top:a.scrollHeight,behavior:t?"auto":"smooth"})}})},V=()=>{q(!0),X.value=!1},Q=()=>{if(x.value){const t=x.value,a=t.scrollHeight-t.scrollTop-t.clientHeight<150;X.value=!a&&P.value.length>0}},ce=()=>{x.value&&x.value.addEventListener("scroll",Q)},be=()=>{x.value&&x.value.removeEventListener("scroll",Q)},v=t=>{o("user",t),d.mode==="plan"?console.log("[ChatComponent] Plan mode message sent, parent should handle:",t):S(t)},w=(t,a)=>{var W;const r=((W=t.planExecution)==null?void 0:W.agentExecutionSequence)??[];return a<0||a>=r.length?"IDLE":r[a].status??"IDLE"},L=(t,a)=>{var r,p;if(!((r=t.planExecution)!=null&&r.currentPlanId)){console.warn("[ChatComponent] Cannot handle step click: missing currentPlanId");return}console.log("[ChatComponent] Step clicked:",{planId:t.planExecution.currentPlanId,stepIndex:a,stepTitle:(p=t.planExecution.steps)==null?void 0:p[a]}),E("step-selected",t.planExecution.currentPlanId,a)},R=(t,a)=>{var r;try{const p=(r=t.planExecution)==null?void 0:r.agentExecutionSequence;if(!(p!=null&&p.length))return console.log("[ChatComponent] No agentExecutionSequence found"),[];const W=p[a];if(!W)return console.log(`[ChatComponent] No agentExecution found for step ${a}`),[];if(!W.thinkActSteps)return console.log(`[ChatComponent] No thinkActSteps found for step ${a}`),[];for(const N of W.thinkActSteps)if(N.subPlanExecutionRecord)return console.log(`[ChatComponent] Found sub-plan for step ${a}:`,N.subPlanExecutionRecord),(N.subPlanExecutionRecord.steps??[]).map(j=>typeof j=="string"?j:typeof j=="object"&&j!==null&&(j.title||j.description)||u("rightPanel.subStep"));return[]}catch(p){return console.warn("[ChatComponent] Error getting sub-plan steps:",p),[]}},y=(t,a,r)=>{var p;try{const W=(p=t.planExecution)==null?void 0:p.agentExecutionSequence;if(!(W!=null&&W.length))return"pending";const N=W[a];if(!N||!N.thinkActSteps)return"pending";let Z=null;for(const H of N.thinkActSteps)if(H.subPlanExecutionRecord){Z=H.subPlanExecutionRecord;break}if(!Z)return"pending";const j=Z.currentStepIndex;return Z.completed?"completed":j==null?r===0?"current":"pending":r"),a.includes("
")&&(a=`
${a}
`),a},I=async t=>{var a;if(!((a=t.planExecution)!=null&&a.currentPlanId)||!t.planExecution.userInputWaitState){console.error("[ChatComponent] Missing planExecution.currentPlanId or userInputWaitState");return}try{const r={},p=t.planExecution.userInputWaitState.formInputs;p&&p.length>0?Object.entries(G[t.id]).forEach(([N,Z])=>{var M;const j=parseInt(N,10),H=((M=p[j])==null?void 0:M.label)||`input_${N}`;r[H]=Z}):r.genericInput=t.genericInput??"",console.log("[ChatComponent] Submitting user input:",r);const W=await Fe.submitFormInput(t.planExecution.currentPlanId,r);delete t.planExecution.userInputWaitState,delete t.genericInput,delete G[t.id],$.startPolling(),console.log("[ChatComponent] User input submitted successfully:",W)}catch(r){console.error("[ChatComponent] User input submission failed:",r),alert(`${u("common.submitFailed")}: ${(r==null?void 0:r.message)||u("common.unknownError")}`)}};return $e(()=>d.initialPrompt,(t,a)=>{console.log("[ChatComponent] initialPrompt changed from:",a,"to:",t),t&&typeof t=="string"&&t.trim()&&t!==a&&(console.log("[ChatComponent] Processing changed initial prompt:",t),ne(()=>{v(t)}))},{immediate:!1}),Se(()=>{console.log("[ChatComponent] Mounted, setting up event listeners"),oe.setEventCallbacks({onPlanUpdate:me,onPlanCompleted:b,onDialogRoundStart:se,onChatInputUpdateState:t=>{console.log("[ChatComponent] Chat input state update for rootPlanId:",t)},onChatInputClear:()=>{console.log("[ChatComponent] Chat input clear requested")},onPlanError:c}),ne(()=>{ce()}),d.initialPrompt&&typeof d.initialPrompt=="string"&&d.initialPrompt.trim()&&(console.log("[ChatComponent] Processing initial prompt:",d.initialPrompt),ne(()=>{v(d.initialPrompt)}))}),De(()=>{console.log("[ChatComponent] Unmounting, cleaning up resources"),be(),B.value&&clearInterval(B.value),$.cleanup(),Object.keys(G).forEach(t=>delete G[t])}),n({handleSendMessage:v,handlePlanUpdate:me,handlePlanCompleted:b,handleDialogRoundStart:se,addMessage:o,handlePlanError:c}),(t,a)=>(h(),m("div",Fs,[e("div",{class:"messages",ref_key:"messagesRef",ref:x},[(h(!0),m(ge,null,ve(P.value,r=>{var p,W,N,Z,j,H,M,z,ae;return h(),m("div",{key:r.id,class:te(["message",{user:r.type==="user",assistant:r.type==="assistant"}])},[e("div",Vs,[r.type==="user"?(h(),m("div",Os,l(r.content),1)):(h(),m("div",Bs,[r.thinking||((p=r.planExecution)==null?void 0:p.progress)!==void 0||(((N=(W=r.planExecution)==null?void 0:W.steps)==null?void 0:N.length)??0)>0?(h(),m("div",Ws,[e("div",js,[e("div",Hs,[k(i(C),{icon:"carbon:thinking",class:"thinking-icon"})]),e("div",zs,l(t.$t("chat.thinkingLabel")),1)]),e("div",Js,[r.thinking?(h(),m("div",Gs,[k(i(C),{icon:"carbon:thinking",class:"thinking-icon"}),e("span",null,l(r.thinking),1)])):F("",!0),((Z=r.planExecution)==null?void 0:Z.progress)!==void 0?(h(),m("div",Xs,[e("div",Ks,[e("div",{class:"progress-fill",style:Ue({width:r.planExecution.progress+"%"})},null,4)]),e("span",Qs,l(r.planExecution.progressText??t.$t("chat.processing")+"..."),1)])):F("",!0),(((H=(j=r.planExecution)==null?void 0:j.steps)==null?void 0:H.length)??0)>0?(h(),m("div",Ys,[e("h4",Zs,l(t.$t("chat.stepExecutionDetails")),1),(h(!0),m(ge,null,ve((M=r.planExecution)==null?void 0:M.steps,(Ee,J)=>{var Me,Ve,Oe,Be,We,je,He,ze,Je,Ge,Xe,Ke,Qe,Ye,Ze,et,tt,nt,st;return h(),m("div",{key:J,class:te(["ai-section",{running:w(r,J)==="RUNNING",completed:w(r,J)==="FINISHED",pending:w(r,J)==="IDLE"}]),onClick:ie(pe=>L(r,J),["stop"])},[e("div",to,[e("span",no,l(w(r,J)==="FINISHED"?"✓":w(r,J)==="RUNNING"?"▶":"○"),1),e("span",so,l(Ee||`${t.$t("chat.step")} ${J+1}`),1),w(r,J)==="RUNNING"?(h(),m("span",oo,l(t.$t("chat.status.executing")),1)):w(r,J)==="FINISHED"?(h(),m("span",ao,l(t.$t("chat.status.completed")),1)):(h(),m("span",lo,l(t.$t("chat.status.pending")),1))]),r.stepActions&&r.stepActions[J]?(h(),m("div",io,[e("div",co,[e("span",ro,l(((Me=r.stepActions[J])==null?void 0:Me.status)==="current"?"🔄":((Ve=r.stepActions[J])==null?void 0:Ve.status)==="completed"?"✓":"⏳"),1),e("strong",null,l((Oe=r.stepActions[J])==null?void 0:Oe.actionDescription),1)]),(Be=r.stepActions[J])!=null&&Be.toolParameters?(h(),m("div",uo,[a[0]||(a[0]=e("span",{class:"tool-icon"},"⚙️",-1)),e("span",po,l(t.$t("common.parameters"))+":",1),e("pre",ho,l((We=r.stepActions[J])==null?void 0:We.toolParameters),1)])):F("",!0),(je=r.stepActions[J])!=null&&je.thinkOutput?(h(),m("div",go,[e("div",mo,[a[1]||(a[1]=e("span",{class:"think-icon"},"💭",-1)),e("span",vo,l(t.$t("chat.thinkingOutput"))+":",1)]),e("div",fo,[e("pre",bo,l((He=r.stepActions[J])==null?void 0:He.thinkOutput),1)])])):F("",!0)])):F("",!0),((ze=R(r,J))==null?void 0:ze.length)>0?(h(),m("div",ko,[e("div",_o,[k(i(C),{icon:"carbon:tree-view",class:"sub-plan-icon"}),e("span",$o,l(t.$t("rightPanel.subPlan")),1)]),e("div",Po,[(h(!0),m(ge,null,ve(R(r,J),(pe,le)=>(h(),m("div",{key:`sub-${J}-${le}`,class:te(["sub-plan-step-item",{completed:y(r,J,le)==="completed",current:y(r,J,le)==="current",pending:y(r,J,le)==="pending"}]),onClick:ie(ot=>A(r,J,le),["stop"])},[e("div",So,[e("span",yo,l(y(r,J,le)==="completed"?"✓":y(r,J,le)==="current"?"▶":"○"),1),e("span",Eo,l(le+1),1)]),e("div",wo,[e("span",To,l(pe),1),e("span",Io,l(t.$t("rightPanel.subStep")),1)])],10,Co))),128))])])):F("",!0),(Je=r.planExecution)!=null&&Je.userInputWaitState&&w(r,J)==="RUNNING"?(h(),m("div",Do,[e("p",xo,l(((Xe=(Ge=r.planExecution)==null?void 0:Ge.userInputWaitState)==null?void 0:Xe.message)??t.$t("chat.userInput.message")),1),(Qe=(Ke=r.planExecution)==null?void 0:Ke.userInputWaitState)!=null&&Qe.formDescription?(h(),m("p",Ro,l((Ze=(Ye=r.planExecution)==null?void 0:Ye.userInputWaitState)==null?void 0:Ze.formDescription),1)):F("",!0),e("form",{onSubmit:ie(pe=>I(r),["prevent"]),class:"user-input-form"},[(tt=(et=r.planExecution)==null?void 0:et.userInputWaitState)!=null&&tt.formInputs&&r.planExecution.userInputWaitState.formInputs.length>0?(h(!0),m(ge,{key:0},ve((st=(nt=r.planExecution)==null?void 0:nt.userInputWaitState)==null?void 0:st.formInputs,(pe,le)=>(h(),m("div",{key:le,class:"form-group"},[e("label",{for:`form-input-${pe.label.replace(/\W+/g,"_")}`},l(pe.label)+": ",9,Mo),de(e("input",{type:"text",id:`form-input-${pe.label.replace(/\W+/g,"_")}`,name:pe.label,"onUpdate:modelValue":ot=>G[r.id][le]=ot,class:"form-input"},null,8,No),[[fe,G[r.id][le]]])]))),128)):(h(),m("div",Uo,[e("label",Lo,l(t.$t("common.input"))+":",1),de(e("input",{type:"text",id:"form-input-genericInput",name:"genericInput","onUpdate:modelValue":pe=>r.genericInput=pe,class:"form-input"},null,8,qo),[[fe,r.genericInput]])])),e("button",Fo,l(t.$t("chat.userInput.submit")),1)],40,Ao)])):F("",!0)],10,eo)}),128))])):!r.content&&(r.thinking||((z=r.planExecution)==null?void 0:z.progress)!==void 0&&(((ae=r.planExecution)==null?void 0:ae.progress)??0)<100)?(h(),m("div",Vo,[e("div",Oo,[a[2]||(a[2]=e("div",{class:"thinking-dots"},[e("span"),e("span"),e("span")],-1)),e("span",null,l(r.thinking??t.$t("chat.thinkingProcessing")),1)])])):F("",!0)])])):F("",!0),e("div",Bo,[e("div",Wo,[e("div",jo,[k(i(C),{icon:"carbon:bot",class:"bot-icon"})]),e("div",Ho,l(t.$t("chat.botName")),1)]),e("div",zo,[r.content?(h(),m("div",Jo,[e("div",{class:"response-text",innerHTML:_(r.content)},null,8,Go)])):(h(),m("div",Xo,[e("div",Ko,[a[3]||(a[3]=e("div",{class:"typing-dots"},[e("span"),e("span"),e("span")],-1)),e("span",Qo,l(t.$t("chat.thinkingResponse")),1)])]))])])]))])],2)}),128)),O.value?(h(),m("div",Yo,[e("div",Zo,[e("div",ea,[e("div",ta,[e("div",na,[e("div",sa,[k(i(C),{icon:"carbon:thinking",class:"thinking-icon"})]),e("div",oa,l(t.$t("chat.thinkingLabel")),1)]),e("div",aa,[e("div",la,[e("div",ia,[a[4]||(a[4]=e("div",{class:"thinking-dots"},[e("span"),e("span"),e("span")],-1)),e("span",null,l(t.$t("chat.thinking")),1)])])])]),e("div",ca,[e("div",ra,[e("div",ua,[k(i(C),{icon:"carbon:bot",class:"bot-icon"})]),e("div",da,l(t.$t("chat.botName")),1)]),e("div",pa,[e("div",ha,[e("div",ga,[a[5]||(a[5]=e("div",{class:"typing-dots"},[e("span"),e("span"),e("span")],-1)),e("span",ma,l(t.$t("chat.thinkingResponse")),1)])])])])])])])):F("",!0)],512),X.value?(h(),m("div",{key:0,class:"scroll-to-bottom-btn",onClick:V,title:t.$t("chat.scrollToBottom")},[k(i(C),{icon:"carbon:chevron-down"})],8,va)):F("",!0)]))}}),ba=ye(fa,[["__scopeId","data-v-717f23cf"]]),ka={class:"input-area"},_a={class:"input-container"},$a=["title"],Pa=["placeholder","disabled"],Ca=["title"],Sa=["disabled","title"],ya=Ce({__name:"index",props:{placeholder:{default:""},disabled:{type:Boolean,default:!1},initialValue:{default:""}},emits:["send","clear","update-state","plan-mode-clicked"],setup(T,{expose:n,emit:s}){const{t:d}=Ie(),E=T,u=s,$=D(),x=D(""),O=_e(()=>E.placeholder||d("input.placeholder")),P=D(O.value),B=_e(()=>!!E.disabled),X=()=>{ne(()=>{$.value&&($.value.style.height="auto",$.value.style.height=Math.min($.value.scrollHeight,120)+"px")})},G=V=>{V.key==="Enter"&&!V.shiftKey&&(V.preventDefault(),o())},o=()=>{if(!x.value.trim()||B.value)return;const V=x.value.trim();u("send",V),S()},g=()=>{u("plan-mode-clicked")},S=()=>{x.value="",X(),u("clear")},K=(V,Q)=>{Q&&(P.value=V?Q:d("input.waiting")),u("update-state",V,Q)},U=V=>{x.value=V,X()},q=()=>x.value.trim();return $e(()=>E.initialValue,V=>{V&&V.trim()&&(x.value=V,X())},{immediate:!0}),n({clearInput:S,updateState:K,setInputValue:U,getQuery:q,focus:()=>{var V;return(V=$.value)==null?void 0:V.focus()}}),Se(()=>{}),De(()=>{}),(V,Q)=>(h(),m("div",ka,[e("div",_a,[e("button",{class:"attach-btn",title:V.$t("input.attachFile")},[k(i(C),{icon:"carbon:attachment"})],8,$a),de(e("textarea",{"onUpdate:modelValue":Q[0]||(Q[0]=ce=>x.value=ce),ref_key:"inputRef",ref:$,class:"chat-input",placeholder:P.value,disabled:B.value,onKeydown:G,onInput:X},null,40,Pa),[[fe,x.value]]),e("button",{class:"plan-mode-btn",title:V.$t("input.planMode"),onClick:g},[k(i(C),{icon:"carbon:document"}),Y(" "+l(V.$t("input.planMode")),1)],8,Ca),e("button",{class:"send-button",disabled:!x.value.trim()||B.value,onClick:o,title:V.$t("input.send")},[k(i(C),{icon:"carbon:send-alt"}),Y(" "+l(V.$t("input.send")),1)],8,Sa)])]))}}),Ea=ye(ya,[["__scopeId","data-v-4b2cba42"]]);class we{static async getAllCronTasks(){try{const n=await fetch(this.BASE_URL);return await(await this.handleResponse(n)).json()}catch(n){throw console.error("Failed to get cron tasks:",n),n}}static async getCronTaskById(n){try{const s=await fetch(`${this.BASE_URL}/${n}`);return await(await this.handleResponse(s)).json()}catch(s){throw console.error("Failed to get cron task by id:",s),s}}static async createCronTask(n){try{const s=await fetch(this.BASE_URL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return await(await this.handleResponse(s)).json()}catch(s){throw console.error("Failed to create cron task:",s),s}}static async updateCronTask(n,s){try{const d=await fetch(`${this.BASE_URL}/${n}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});return await(await this.handleResponse(d)).json()}catch(d){throw console.error("Failed to update cron task:",d),d}}static async updateTaskStatus(n,s){try{const d=await fetch(`${this.BASE_URL}/${n}/status?status=${s}`,{method:"PUT"});await this.handleResponse(d)}catch(d){throw console.error("Failed to update task status:",d),d}}static async deleteCronTask(n){try{const s=await fetch(`${this.BASE_URL}/${n}`,{method:"DELETE"});await this.handleResponse(s)}catch(s){throw console.error("Failed to delete cron task:",s),s}}static async handleResponse(n){if(!n.ok)try{const s=await n.json();throw new Error(s.message||`API request failed: ${n.status}`)}catch{throw new Error(`API request failed: ${n.status} ${n.statusText}`)}return n}}he(we,"BASE_URL","/api/cron-tasks");const Te={validateCronExpression(T){const n=T.trim().split(/\s+/);return n.length>=5&&n.length<=6},formatTime(T){return new Date(T).toLocaleString()},async saveTask(T){try{let n;return T.id?n=await we.updateCronTask(Number(T.id),T):n=await we.createCronTask(T),n}catch(n){throw console.error("Failed to save cron task:",n),n}},async deleteTask(T){try{await we.deleteCronTask(String(T))}catch(n){throw console.error("Failed to delete cron task:",n),n}},async toggleTaskStatus(T){if(!T.id)throw new Error("Task ID is required");const n=T.status===0?1:0;return await we.updateCronTask(Number(T.id),{...T,status:n})},prepareTaskExecution(T){return T.planTemplateId?{useTemplate:!0,planData:{title:T.cronName||"Scheduled Task Execution",planData:{id:T.planTemplateId,planTemplateId:T.planTemplateId,planId:T.planTemplateId},params:T.executionParams||void 0}}:{useTemplate:!1,taskContent:T.planDesc||T.cronName||""}}},wa={class:"modal-header"},Ta={class:"header-actions"},Ia={class:"status-switch"},Da={class:"status-label"},xa={class:"toggle-switch"},Ra=["checked"],Aa={class:"modal-content"},Ma={class:"form-group"},Na={class:"form-label"},Ua=["placeholder"],La={class:"form-group"},qa={class:"form-label"},Fa=["placeholder"],Va={class:"form-help"},Oa={class:"form-group"},Ba={class:"form-label"},Wa=["placeholder"],ja={class:"form-group"},Ha={class:"form-label"},za={class:"template-toggle"},Ja={key:0,class:"template-selector"},Ga={value:""},Xa=["value"],Ka={class:"form-help"},Qa={key:0,class:"form-group"},Ya={class:"time-info"},Za={class:"time-label"},el={class:"time-value"},tl={key:1,class:"form-group"},nl={class:"time-info"},sl={class:"time-label"},ol={class:"time-value"},al={class:"modal-footer"},ll=["disabled"],il=Ce({__name:"TaskDetailModal",props:{modelValue:{type:Boolean},task:{}},emits:["update:modelValue","save"],setup(T,{emit:n}){const s=T,d=n,E=D(!1),u=D([]),$=D({cronName:"",cronTime:"",planDesc:"",status:1,linkTemplate:!1,templateId:"",planTemplateId:""});Se(async()=>{try{const o=await Ae.getAllPlanTemplates();o&&o.templates&&(u.value=o.templates.map(g=>({id:g.id,name:g.title||"Unnamed Template"})))}catch(o){console.error("Failed to get template list:",o)}});const O=o=>{o.target===o.currentTarget&&d("update:modelValue",!1)},P=()=>{$.value.linkTemplate=!1,$.value.templateId="",$.value.planTemplateId=""},B=()=>$.value.cronName.trim()?$.value.cronTime.trim()?Te.validateCronExpression($.value.cronTime)?$.value.planDesc.trim()?$.value.linkTemplate&&!$.value.templateId?(alert("Please select a plan template"),!1):!0:(alert("Task description cannot be empty"),!1):(alert("Invalid Cron expression format, should be 5-6 parts separated by spaces"),!1):(alert("Cron expression cannot be empty"),!1):(alert("Task name cannot be empty"),!1),X=o=>Te.formatTime(o),G=async()=>{var o;if(B()){E.value=!0;try{const g={...$.value,...((o=s.task)==null?void 0:o.id)!==void 0&&{id:s.task.id},cronName:$.value.cronName.trim(),cronTime:$.value.cronTime.trim(),planDesc:$.value.planDesc.trim(),status:$.value.status,planTemplateId:$.value.linkTemplate&&$.value.templateId||""};d("save",g)}finally{E.value=!1}}};return $e(()=>s.task,o=>{if(o){const g=o.templateId||o.planTemplateId||"";$.value={cronName:o.cronName||"",cronTime:o.cronTime||"",planDesc:o.planDesc||"",status:o.status??1,linkTemplate:!!g,templateId:g,planTemplateId:g}}else $.value={cronName:"",cronTime:"",planDesc:"",status:1,linkTemplate:!1,templateId:"",planTemplateId:""}},{immediate:!0}),$e(()=>s.modelValue,o=>{o||($.value={cronName:"",cronTime:"",planDesc:"",status:1,linkTemplate:!1,templateId:"",planTemplateId:""})}),(o,g)=>(h(),ue(Ne,{to:"body"},[k(xe,{name:"modal"},{default:Re(()=>{var S,K,U;return[o.modelValue?(h(),m("div",{key:0,class:"modal-overlay",onClick:O},[e("div",{class:"modal-container",onClick:g[8]||(g[8]=ie(()=>{},["stop"]))},[e("div",wa,[e("h3",null,l(o.$t("cronTask.taskDetail")),1),e("div",Ta,[e("div",Ia,[e("span",Da,l(o.$t("cronTask.taskStatus")),1),e("label",xa,[e("input",{type:"checkbox",checked:$.value.status===0,onChange:g[0]||(g[0]=q=>$.value.status=$.value.status===0?1:0)},null,40,Ra),g[9]||(g[9]=e("span",{class:"toggle-slider"},null,-1))])]),e("button",{class:"close-btn",onClick:g[1]||(g[1]=q=>o.$emit("update:modelValue",!1))},[k(i(C),{icon:"carbon:close"})])])]),e("div",Aa,[e("form",{onSubmit:ie(G,["prevent"]),class:"task-form"},[e("div",Ma,[e("label",Na,l(o.$t("cronTask.taskName")),1),de(e("input",{"onUpdate:modelValue":g[2]||(g[2]=q=>$.value.cronName=q),type:"text",class:"form-input",placeholder:o.$t("cronTask.taskNamePlaceholder"),required:""},null,8,Ua),[[fe,$.value.cronName]])]),e("div",La,[e("label",qa,l(o.$t("cronTask.cronExpression")),1),de(e("input",{"onUpdate:modelValue":g[3]||(g[3]=q=>$.value.cronTime=q),type:"text",class:"form-input",placeholder:o.$t("cronTask.cronExpressionPlaceholder"),required:""},null,8,Fa),[[fe,$.value.cronTime]]),e("div",Va,l(o.$t("cronTask.cronExpressionHelp")),1)]),e("div",Oa,[e("label",Ba,l(o.$t("cronTask.taskDescription")),1),de(e("textarea",{"onUpdate:modelValue":g[4]||(g[4]=q=>$.value.planDesc=q),class:"form-textarea",placeholder:o.$t("cronTask.taskDescriptionPlaceholder"),rows:"4",required:""},null,8,Wa),[[fe,$.value.planDesc]])]),e("div",ja,[e("label",Ha,l(o.$t("cronTask.planTemplate")),1),e("div",za,[e("button",{type:"button",class:te(["template-btn",$.value.linkTemplate?"active":""]),onClick:g[5]||(g[5]=q=>$.value.linkTemplate=!0)},[k(i(C),{icon:"carbon:checkmark"}),Y(" "+l(o.$t("cronTask.linkTemplate")),1)],2),e("button",{type:"button",class:te(["template-btn",$.value.linkTemplate?"":"active"]),onClick:P},[k(i(C),{icon:"carbon:close"}),Y(" "+l(o.$t("cronTask.noTemplate")),1)],2)]),$.value.linkTemplate?(h(),m("div",Ja,[de(e("select",{"onUpdate:modelValue":g[6]||(g[6]=q=>$.value.templateId=q),class:"form-select"},[e("option",Ga,l(o.$t("cronTask.selectTemplate")),1),(h(!0),m(ge,null,ve(u.value,q=>(h(),m("option",{key:q.id,value:q.id},l(q.name),9,Xa))),128))],512),[[ut,$.value.templateId]]),e("div",Ka,l(o.$t("cronTask.templateHelpText")),1)])):F("",!0)]),(S=o.task)!=null&&S.createTime?(h(),m("div",Qa,[e("div",Ya,[e("span",Za,l(o.$t("cronTask.createTime"))+":",1),e("span",el,l(X(o.task.createTime)),1)])])):F("",!0),(K=o.task)!=null&&K.updateTime?(h(),m("div",tl,[e("div",nl,[e("span",sl,l(o.$t("cronTask.updateTime"))+":",1),e("span",ol,l(X(o.task.updateTime)),1)])])):F("",!0)],32)]),e("div",al,[e("button",{type:"button",class:"cancel-btn",onClick:g[7]||(g[7]=q=>o.$emit("update:modelValue",!1))},l(o.$t("common.cancel")),1),e("button",{type:"button",class:"save-btn",onClick:G,disabled:E.value},[E.value?(h(),ue(i(C),{key:0,icon:"carbon:loading",class:"loading-icon"})):F("",!0),Y(" "+l((U=s.task)!=null&&U.id?o.$t("common.save"):o.$t("common.create")),1)],8,ll)])])])):F("",!0)]}),_:1})]))}}),cl=ye(il,[["__scopeId","data-v-5b32448e"]]),rl={class:"modal-header"},ul={class:"header-actions"},dl={class:"modal-content"},pl={key:0,class:"loading-container"},hl={key:1,class:"empty-container"},gl={key:2,class:"task-list"},ml=["onClick"],vl={class:"task-main"},fl={class:"task-info"},bl={class:"task-header"},kl={class:"task-name"},_l={class:"task-description"},$l={class:"task-time"},Pl=["onClick"],Cl=["onClick","disabled","title"],Sl=["onClick","title"],yl={class:"dropdown-menu"},El=["onClick"],wl=["onClick","disabled"],Tl=["onClick","disabled"],Il={class:"confirm-header"},Dl={class:"confirm-content"},xl={class:"confirm-actions"},Rl=["disabled"],Al={class:"confirm-header"},Ml={class:"confirm-content"},Nl={class:"create-options"},Ul={class:"option-content"},Ll={class:"option-title"},ql={class:"option-desc"},Fl={class:"option-content"},Vl={class:"option-title"},Ol={class:"option-desc"},Bl={class:"confirm-actions"},Wl=Ce({__name:"index",props:{modelValue:{type:Boolean,required:!0}},emits:["update:modelValue"],setup(T,{emit:n}){const s=lt(),d=it(),E=mt(),{t:u}=Ie(),$=T,x=n,O=D([]),P=D(!1),B=D(null),X=D(null),G=D(null),o=D(null),g=D(!1),S=D(null),K=D(!1),U=D(null),q=D(!1),V=c=>{c.target===c.currentTarget&&x("update:modelValue",!1)},Q=async()=>{P.value=!0;try{O.value=await we.getAllCronTasks()}catch(c){console.error("Failed to load cron tasks:",c),E.error(`Failed to load tasks: ${c instanceof Error?c.message:String(c)}`)}finally{P.value=!1}},ce=async c=>{B.value=c;try{const _=O.value.find(a=>a.id===c);if(!_){console.error("Task not found:",c);return}x("update:modelValue",!1);const I=Date.now().toString();await s.push({name:"direct",params:{id:I}}),await new Promise(a=>setTimeout(a,100));const t=Te.prepareTaskExecution(_);t.useTemplate&&t.planData?d.emitPlanExecutionRequested(t.planData):t.taskContent&&d.setTask(t.taskContent)}catch(_){console.error("Failed to execute task:",_),E.error(`Execution failed: ${_ instanceof Error?_.message:String(_)}`)}finally{B.value=null}},be=c=>{S.value={...c},g.value=!0,o.value=null},v=async c=>{try{await Te.saveTask(c),await Q(),g.value=!1,E.success("Task saved successfully")}catch(_){console.error("Failed to save task:",_),E.error(`Save failed: ${_ instanceof Error?_.message:String(_)}`)}},w=c=>{U.value=c,K.value=!0},L=async()=>{var c;if((c=U.value)!=null&&c.id){X.value=U.value.id;try{await Te.deleteTask(U.value.id),await Q(),K.value=!1,U.value=null,E.success("Task deleted successfully")}catch(_){console.error("Failed to delete task:",_),E.error(`Delete failed: ${_ instanceof Error?_.message:String(_)}`)}finally{X.value=null}}},R=()=>{K.value=!1,U.value=null},y=c=>{o.value=o.value===c?null:c},A=async c=>{if(c.id){G.value=c.id;try{await Te.toggleTaskStatus(c),await Q(),o.value=null,E.success(`Task ${c.status===0?"disabled":"enabled"} successfully`)}catch(_){console.error("Failed to toggle task status:",_),E.error(`Status toggle failed: ${_ instanceof Error?_.message:String(_)}`)}finally{G.value=null}}},ee=async c=>{try{await navigator.clipboard.writeText(c),E.success("Cron expression copied successfully")}catch(_){E.error(`Copy failed: ${_ instanceof Error?_.message:String(_)}`)}},se=()=>{q.value=!0},me=()=>{q.value=!1;try{x("update:modelValue",!1);const c=u("cronTask.template");d.setTaskToInput(c);const _=Date.now().toString();s.push({name:"direct",params:{id:_}})}catch(c){console.error("Error in createWithJmanus:",c),E.error(`Creation failed: ${c instanceof Error?c.message:String(c)}`)}},ke=()=>{q.value=!1,S.value={cronName:"",cronTime:"",planDesc:"",status:0,planTemplateId:""},g.value=!0},re=()=>{q.value=!1},b=c=>{const _=c.target;!_.closest(".action-dropdown")&&!_.closest(".dropdown-menu")&&(o.value=null)};return Se(()=>{document.addEventListener("click",b,!0)}),De(()=>{document.removeEventListener("click",b,!0)}),$e(()=>$.modelValue,c=>{c&&Q()}),(c,_)=>(h(),m(ge,null,[(h(),ue(Ne,{to:"body"},[k(xe,{name:"modal"},{default:Re(()=>[T.modelValue?(h(),m("div",{key:0,class:"modal-overlay",onClick:V},[e("div",{class:"modal-container",onClick:_[3]||(_[3]=ie(()=>{},["stop"]))},[e("div",rl,[e("h3",null,l(c.$t("cronTask.title")),1),e("div",ul,[e("button",{class:"add-task-btn",onClick:[se,_[0]||(_[0]=ie(()=>{},["stop"]))]},[k(i(C),{icon:"carbon:add"}),Y(" "+l(c.$t("cronTask.addTask")),1)]),e("button",{class:"close-btn",onClick:_[1]||(_[1]=I=>c.$emit("update:modelValue",!1))},[k(i(C),{icon:"carbon:close"})])])]),e("div",dl,[P.value?(h(),m("div",pl,[k(i(C),{icon:"carbon:loading",class:"loading-icon"}),e("span",null,l(c.$t("common.loading")),1)])):O.value.length===0?(h(),m("div",hl,[k(i(C),{icon:"carbon:time",class:"empty-icon"}),e("span",null,l(c.$t("cronTask.noTasks")),1)])):(h(),m("div",gl,[(h(!0),m(ge,null,ve(O.value,I=>(h(),m("div",{key:I.id||"",class:"task-item",onClick:t=>be(I)},[e("div",vl,[e("div",fl,[e("div",bl,[e("div",kl,l(I.cronName),1),e("div",{class:te(["task-status-badge",I.status===0?"active":"inactive"])},[k(i(C),{icon:I.status===0?"carbon:checkmark-filled":"carbon:pause-filled"},null,8,["icon"]),e("span",null,l(I.status===0?c.$t("cronTask.active"):c.$t("cronTask.inactive")),1)],2)]),e("div",_l,l(I.planDesc),1),e("div",$l,[k(i(C),{icon:"carbon:time"}),e("span",{class:"cron-readable",style:{cursor:"pointer"},onClick:ie(t=>ee(I.cronTime),["stop"])},l(I.cronTime),9,Pl)])])]),e("div",{class:"task-actions",onClick:_[2]||(_[2]=ie(()=>{},["stop"]))},[e("button",{class:"action-btn execute-btn",onClick:t=>ce(I.id),disabled:B.value===I.id,title:c.$t("cronTask.executeOnce")},[k(i(C),{icon:B.value===I.id?"carbon:loading":"carbon:play-filled"},null,8,["icon"]),Y(" "+l(c.$t("cronTask.executeOnce")),1)],8,Cl),e("div",{class:te(["action-dropdown",{active:o.value===I.id}])},[e("button",{class:"action-btn dropdown-btn",onClick:t=>y(I.id),title:c.$t("cronTask.operations")},[k(i(C),{icon:"carbon:overflow-menu-horizontal"}),Y(" "+l(c.$t("cronTask.operations")),1)],8,Sl),de(e("div",yl,[e("button",{class:"dropdown-item edit-btn",onClick:t=>be(I)},[k(i(C),{icon:"carbon:edit"}),Y(" "+l(c.$t("cronTask.edit")),1)],8,El),e("button",{class:"dropdown-item toggle-btn",onClick:t=>A(I),disabled:G.value===I.id},[k(i(C),{icon:G.value===I.id?"carbon:loading":I.status===0?"carbon:pause-filled":"carbon:play-filled"},null,8,["icon"]),Y(" "+l(I.status===0?c.$t("cronTask.disable"):c.$t("cronTask.enable")),1)],8,wl),e("button",{class:"dropdown-item delete-btn",onClick:t=>w(I),disabled:X.value===I.id},[k(i(C),{icon:X.value===I.id?"carbon:loading":"carbon:trash-can"},null,8,["icon"]),Y(" "+l(c.$t("cronTask.delete")),1)],8,Tl)],512),[[dt,o.value===I.id]])],2)])],8,ml))),128))]))])])])):F("",!0)]),_:1})])),k(cl,{modelValue:g.value,"onUpdate:modelValue":_[4]||(_[4]=I=>g.value=I),task:S.value,onSave:v},null,8,["modelValue","task"]),(h(),ue(Ne,{to:"body"},[k(xe,{name:"modal"},{default:Re(()=>{var I,t,a,r;return[K.value?(h(),m("div",{key:0,class:"modal-overlay",onClick:R},[e("div",{class:"confirm-modal",onClick:_[5]||(_[5]=ie(()=>{},["stop"]))},[e("div",Il,[k(i(C),{icon:"carbon:warning",class:"warning-icon"}),e("h3",null,l(c.$t("cronTask.deleteConfirm")),1)]),e("div",Dl,[e("p",null,l(c.$t("cronTask.deleteConfirmMessage",{taskName:((I=U.value)==null?void 0:I.cronName)||((t=U.value)==null?void 0:t.planDesc)||""})),1)]),e("div",xl,[e("button",{class:"confirm-btn cancel-btn",onClick:R},l(c.$t("common.cancel")),1),e("button",{class:"confirm-btn delete-btn",onClick:L,disabled:X.value===((a=U.value)==null?void 0:a.id)},[k(i(C),{icon:X.value===((r=U.value)==null?void 0:r.id)?"carbon:loading":"carbon:trash-can"},null,8,["icon"]),Y(" "+l(c.$t("cronTask.delete")),1)],8,Rl)])])])):F("",!0)]}),_:1})])),(h(),ue(Ne,{to:"body"},[k(xe,{name:"modal"},{default:Re(()=>[q.value?(h(),m("div",{key:0,class:"modal-overlay",onClick:re},[e("div",{class:"confirm-modal create-options-modal",onClick:_[6]||(_[6]=ie(()=>{},["stop"]))},[e("div",Al,[k(i(C),{icon:"carbon:time",class:"create-icon"}),e("h3",null,l(c.$t("cronTask.createTask")),1)]),e("div",Ml,[e("p",null,l(c.$t("cronTask.selectCreateMethod")),1),e("div",Nl,[e("button",{class:"create-option-btn jmanus-btn",onClick:me},[k(i(C),{icon:"carbon:ai-status"}),e("div",Ul,[e("span",Ll,l(c.$t("cronTask.createWithJmanus")),1),e("span",ql,l(c.$t("cronTask.createWithJmanusDesc")),1)])]),e("button",{class:"create-option-btn manual-btn",onClick:ke},[k(i(C),{icon:"carbon:edit"}),e("div",Fl,[e("span",Vl,l(c.$t("cronTask.createManually")),1),e("span",Ol,l(c.$t("cronTask.createManuallyDesc")),1)])])])]),e("div",Bl,[e("button",{class:"confirm-btn cancel-btn",onClick:re},l(c.$t("common.cancel")),1)])])])):F("",!0)]),_:1})]))],64))}}),jl=ye(Wl,[["__scopeId","data-v-837947df"]]),Hl={class:"direct-page"},zl={class:"direct-chat"},Jl={class:"chat-header"},Gl={class:"header-actions"},Xl=["title"],Kl=["title"],Ql={class:"chat-content"},Yl=["title"],Zl={class:"message-content"},ei=Ce({__name:"index",setup(T){const n=pt(),s=lt(),d=it(),{t:E}=Ie(),{message:u}=vt(),$=D(""),x=D(""),O=D(),P=D(),B=D(),X=D(!1),G=D(!1),o=D(null),g=D(!1),S=D(50),K=D(!1),U=D(0),q=D(0);Se(()=>{if(console.log("[Direct] onMounted called"),console.log("[Direct] taskStore.currentTask:",d.currentTask),console.log("[Direct] taskStore.hasUnprocessedTask():",d.hasUnprocessedTask()),oe.setEventCallbacks({onPlanUpdate:c=>{console.log("[Direct] Plan update event received for rootPlanId:",c),v(c)&&(console.log("[Direct] Processing plan update for current rootPlanId:",c),P.value&&typeof P.value.handlePlanUpdate=="function"?(console.log("[Direct] Calling chatRef.handlePlanUpdate with rootPlanId:",c),P.value.handlePlanUpdate(c)):console.warn("[Direct] chatRef.handlePlanUpdate method not available"),O.value&&typeof O.value.updateDisplayedPlanProgress=="function"?(console.log("[Direct] Calling rightPanelRef.updateDisplayedPlanProgress with rootPlanId:",c),O.value.updateDisplayedPlanProgress(c)):console.warn("[Direct] rightPanelRef.updateDisplayedPlanProgress method not available"))},onPlanCompleted:c=>{if(console.log("[Direct] Plan completed event received for rootPlanId:",c),!!v(c)){if(console.log("[Direct] Processing plan completion for current rootPlanId:",c),P.value&&typeof P.value.handlePlanCompleted=="function"){const _=oe.getCachedPlanRecord(c);console.log("[Direct] Calling chatRef.handlePlanCompleted with details:",_),P.value.handlePlanCompleted(_??{planId:c})}else console.warn("[Direct] chatRef.handlePlanCompleted method not available");o.value=null,console.log("[Direct] Cleared currentRootPlanId after plan completion")}},onDialogRoundStart:c=>{console.log("[Direct] Dialog round start event received for rootPlanId:",c),o.value=c,console.log("[Direct] Set currentRootPlanId to:",c),P.value&&typeof P.value.handleDialogRoundStart=="function"?(console.log("[Direct] Calling chatRef.handleDialogRoundStart with planId:",c),P.value.handleDialogRoundStart(c)):console.warn("[Direct] chatRef.handleDialogRoundStart method not available")},onChatInputClear:()=>{console.log("[Direct] Chat input clear event received"),L()},onChatInputUpdateState:c=>{if(console.log("[Direct] Chat input update state event received for rootPlanId:",c),!v(c,!0))return;const _=oe.getCachedUIState(c);_&&y(_.enabled,_.placeholder)},onPlanError:c=>{P.value.handlePlanError(c)}}),console.log("[Direct] Event callbacks registered to planExecutionManager"),f.loadPlanTemplateList(),d.hasUnprocessedTask()&&d.currentTask){const c=d.currentTask.prompt;console.log("[Direct] Found unprocessed task from store:",c),d.markTaskAsProcessed(),ne(()=>{P.value&&typeof P.value.handleSendMessage=="function"?(console.log("[Direct] Directly executing task via chatRef.handleSendMessage:",c),P.value.handleSendMessage(c)):(console.warn("[Direct] chatRef.handleSendMessage method not available, falling back to prompt"),$.value=c)})}else{const c=d.getAndClearTaskToInput();c?(x.value=c,console.log("[Direct] Setting inputOnlyContent for input only:",x.value)):($.value=n.query.prompt||"",console.log("[Direct] Received task from URL:",$.value),console.log("[Direct] No unprocessed task in store"))}const b=localStorage.getItem("directPanelWidth");b&&(S.value=parseFloat(b)),console.log("[Direct] Final prompt value:",$.value),x.value&&ne(()=>{B.value&&typeof B.value.setInputValue=="function"&&(B.value.setInputValue(x.value),console.log("[Direct] Set input value:",x.value),x.value="")}),window.addEventListener("plan-execution-requested",c=>{console.log("[DirectView] Received plan-execution-requested event:",c.detail),re(c.detail)})}),$e(()=>d.currentTask,b=>{if(console.log("[Direct] Watch taskStore.currentTask triggered, newTask:",b),b&&!b.processed){const c=b.prompt;d.markTaskAsProcessed(),console.log("[Direct] Received new task from store:",c),ne(()=>{P.value&&typeof P.value.handleSendMessage=="function"?(console.log("[Direct] Directly executing new task via chatRef.handleSendMessage:",c),P.value.handleSendMessage(c)):console.warn("[Direct] chatRef.handleSendMessage method not available for new task")})}else console.log("[Direct] Task is null or already processed, ignoring")},{immediate:!1}),$e(()=>$.value,(b,c)=>{console.log("[Direct] prompt value changed from:",c,"to:",b)},{immediate:!1}),$e(()=>d.taskToInput,b=>{console.log("[Direct] Watch taskStore.taskToInput triggered, newTaskToInput:",b),b&&b.trim()&&(console.log("[Direct] Setting input value from taskToInput:",b),ne(()=>{B.value&&typeof B.value.setInputValue=="function"&&(B.value.setInputValue(b.trim()),console.log("[Direct] Input value set from taskToInput watch:",b.trim()),d.getAndClearTaskToInput())}))},{immediate:!1}),De(()=>{console.log("[Direct] onUnmounted called, cleaning up resources"),o.value=null,oe.cleanup(),document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",ce),window.removeEventListener("plan-execution-requested",b=>{re(b.detail)})});const V=b=>{K.value=!0,U.value=b.clientX,q.value=S.value,document.addEventListener("mousemove",Q),document.addEventListener("mouseup",ce),document.body.style.cursor="col-resize",document.body.style.userSelect="none",b.preventDefault()},Q=b=>{if(!K.value)return;const c=window.innerWidth,I=(b.clientX-U.value)/c*100;let t=q.value+I;t=Math.max(20,Math.min(80,t)),S.value=t},ce=()=>{K.value=!1,document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",ce),document.body.style.cursor="",document.body.style.userSelect="",localStorage.setItem("directPanelWidth",S.value.toString())},be=()=>{S.value=50,localStorage.setItem("directPanelWidth","50")},v=(b,c=!1)=>!o.value||b===o.value||c&&(b==="ui-state"||b==="error")?!0:(console.log("[Direct] Ignoring event for non-current rootPlanId:",b,"current:",o.value),!1),w=b=>{console.log("[DirectView] Send message from input:",b),P.value&&typeof P.value.handleSendMessage=="function"?(console.log("[DirectView] Calling chatRef.handleSendMessage:",b),P.value.handleSendMessage(b)):console.warn("[DirectView] chatRef.handleSendMessage method not available")},L=()=>{console.log("[DirectView] Input cleared"),B.value&&typeof B.value.clear=="function"&&B.value.clear()},R=()=>{console.log("[DirectView] Input focused")},y=(b,c)=>{console.log("[DirectView] Input state updated:",b,c),G.value=!b},A=(b,c)=>{console.log("[DirectView] Step selected:",b,c),O.value&&typeof O.value.handleStepSelected=="function"?(console.log("[DirectView] Forwarding step selection to right panel:",b,c),O.value.handleStepSelected(b,c)):console.warn("[DirectView] rightPanelRef.handleStepSelected method not available")},ee=(b,c,_,I)=>{console.log("[DirectView] Sub plan step selected:",{parentPlanId:b,subPlanId:c,stepIndex:_,subStepIndex:I}),O.value&&typeof O.value.handleSubPlanStepSelected=="function"?(console.log("[DirectView] Forwarding sub plan step selection to right panel:",{parentPlanId:b,subPlanId:c,stepIndex:_,subStepIndex:I}),O.value.handleSubPlanStepSelected(b,c,_,I)):console.warn("[DirectView] rightPanelRef.handleSubPlanStepSelected method not available")},se=()=>{console.log("[DirectView] Plan mode button clicked"),f.toggleSidebar(),console.log("[DirectView] Sidebar toggled, isCollapsed:",f.isCollapsed)},me=()=>{s.push("/home")},ke=()=>{s.push("/configs")},re=async b=>{var _,I,t,a;if(console.log("[DirectView] Plan execution requested:",b),X.value){console.log("[DirectView] Plan execution already in progress, ignoring request");return}X.value=!0;let c=!1;P.value&&typeof P.value.addMessage=="function"?(console.log("[DirectView] Calling chatRef.addMessage for plan execution:",b.title),P.value.addMessage("user",b.title),c=!0):console.warn("[DirectView] chatRef.addMessage method not available");try{const r=((_=b.planData)==null?void 0:_.planTemplateId)||((I=b.planData)==null?void 0:I.id)||((t=b.planData)==null?void 0:t.planId);if(!r)throw new Error(E("direct.planTemplateIdNotFound"));console.log("[Direct] Executing plan with templateId:",r,"params:",b.params),console.log("[Direct] About to call PlanActApiService.executePlan");let p;if((a=b.params)!=null&&a.trim()?(console.log("[Direct] Calling executePlan with params:",b.params.trim()),p=await Ae.executePlan(r,b.params.trim())):(console.log("[Direct] Calling executePlan without params"),p=await Ae.executePlan(r)),console.log("[Direct] Plan execution API response:",p),p.planId)console.log("[Direct] Got planId from response:",p.planId,"starting plan execution"),o.value=p.planId,console.log("[Direct] Set currentRootPlanId to:",p.planId),console.log("[Direct] Delegating plan execution to planExecutionManager"),oe.handlePlanExecutionRequested(p.planId,b.title);else throw console.error("[Direct] No planId in response:",p),new Error(E("direct.executionFailedNoPlanId"))}catch(r){console.error("[Direct] Plan execution failed:",r),console.error("[Direct] Error details:",{message:r.message,stack:r.stack}),o.value=null,P.value&&typeof P.value.addMessage=="function"?(console.log("[Direct] Adding error messages to chat"),c||P.value.addMessage("user",b.title),P.value.addMessage("assistant",`${E("direct.executionFailed")}: ${r.message||E("common.unknownError")}`,{thinking:void 0})):(console.error("[Direct] Chat ref not available, showing alert"),alert(`${E("direct.executionFailed")}: ${r.message||E("common.unknownError")}`))}finally{console.log("[Direct] Plan execution finished, resetting isExecutingPlan flag"),X.value=!1}};return(b,c)=>(h(),m("div",Hl,[e("div",zl,[k(fn,{onPlanExecutionRequested:re}),e("div",{class:"left-panel",style:Ue({width:S.value+"%"})},[e("div",Jl,[e("button",{class:"back-button",onClick:me},[k(i(C),{icon:"carbon:arrow-left"})]),e("h2",null,l(b.$t("conversation")),1),e("div",Gl,[k(gt),e("button",{class:"config-button",onClick:ke,title:b.$t("direct.configuration")},[k(i(C),{icon:"carbon:settings-adjust",width:"20"})],8,Xl),e("button",{class:"cron-task-btn",onClick:c[0]||(c[0]=_=>g.value=!0),title:b.$t("cronTask.title")},[k(i(C),{icon:"carbon:alarm",width:"20"})],8,Kl)])]),e("div",Ql,[k(ba,{ref_key:"chatRef",ref:P,mode:"direct","initial-prompt":$.value||"",onStepSelected:A,onSubPlanStepSelected:ee},null,8,["initial-prompt"])]),(h(),ue(Ea,{key:b.$i18n.locale,ref_key:"inputRef",ref:B,disabled:G.value,placeholder:G.value?i(E)("input.waiting"):i(E)("input.placeholder"),"initial-value":$.value,onSend:w,onClear:L,onFocus:R,onUpdateState:y,onPlanModeClicked:se},null,8,["disabled","placeholder","initial-value"]))],4),e("div",{class:"panel-resizer",onMousedown:V,onDblclick:be,title:b.$t("direct.panelResizeHint")},c[2]||(c[2]=[e("div",{class:"resizer-line"},null,-1)]),40,Yl),k(Ls,{ref_key:"rightPanelRef",ref:O,style:Ue({width:100-S.value+"%"})},null,8,["style"])]),k(jl,{modelValue:g.value,"onUpdate:modelValue":c[1]||(c[1]=_=>g.value=_)},null,8,["modelValue"]),i(u).show?(h(),m("div",{key:0,class:te(["message-toast",i(u).type])},[e("div",Zl,[e("span",null,l(i(u).text),1)])],2)):F("",!0)]))}}),ri=ye(ei,[["__scopeId","data-v-eab98c50"]]);export{ri as default}; diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CAOqiiSi.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CAOqiiSi.js new file mode 100644 index 0000000000..04dbaf55eb --- /dev/null +++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CAOqiiSi.js @@ -0,0 +1 @@ +import{d as q,u as T,r as f,c as A,o as I,L as R,a as u,b as c,e,f as m,g as k,t,n as g,w as p,v as y,h as z,i as b,j as h,k as U,T as K,F as P,l as E,m as F,p as O}from"./index-W4k7xcj8.js";import{L as j}from"./llm-check-BVkAKrj3.js";import{_ as B}from"./_plugin-vue_export-helper-DlAUqK2U.js";const H={class:"init-container"},J={class:"init-card"},G={class:"init-header"},W={class:"description"},Q={class:"step-indicator"},X={class:"step-label"},Y={class:"step-label"},Z={key:0,class:"init-form language-selection"},x={class:"form-group"},ee={class:"form-label"},se={class:"language-options"},ae={class:"language-content"},le={class:"language-text"},te={class:"form-actions single"},oe=["disabled"],ie={key:1,class:"init-form"},ne={class:"form-group"},de={class:"form-label"},re={class:"config-mode-selection"},ue={class:"radio-text"},ce={class:"radio-text"},pe={key:0,class:"form-group"},me={for:"apiKey",class:"form-label"},ve=["placeholder","disabled"],fe={class:"form-hint"},ge={href:"https://bailian.console.aliyun.com/?tab=model#/api-key",target:"_blank",class:"help-link"},be={key:1,class:"custom-config-section"},he={class:"form-group"},ye={for:"baseUrl",class:"form-label"},_e=["placeholder","disabled"],$e={class:"form-hint"},Ne={class:"form-group"},Me={for:"customApiKey",class:"form-label"},ke=["placeholder","disabled"],Ue={class:"form-group"},Ke={for:"modelName",class:"form-label"},Le=["placeholder","disabled"],Se={class:"form-hint"},we={class:"form-group"},Ce={for:"modelDisplayName",class:"form-label"},De=["placeholder","disabled"],Ve={class:"form-actions"},qe=["disabled"],Te=["disabled"],Ae={key:0,class:"loading-spinner"},Ie={key:0,class:"error-message"},Re={key:0,class:"success-message"},ze={class:"background-animation"},Pe=q({__name:"index",setup(Ee){const{t:v,locale:$}=T(),_=O(),n=f(1),d=f($.value||"en"),l=f({configMode:"dashscope",apiKey:"",baseUrl:"",modelName:"",modelDisplayName:""}),i=f(!1),r=f(""),N=f(!1),L=A(()=>l.value.apiKey.trim()?l.value.configMode==="custom"?l.value.baseUrl.trim()&&l.value.modelName.trim():!0:!1),S=async()=>{if(d.value)try{i.value=!0,await F(d.value),n.value=2}catch(s){console.warn("Failed to switch language:",s),n.value=2}finally{i.value=!1}},w=()=>{n.value=1},M=()=>{l.value.apiKey="",l.value.baseUrl="",l.value.modelName="",l.value.modelDisplayName="",r.value=""},C=()=>{if(!l.value.apiKey.trim())return r.value=v("init.apiKeyRequired"),!1;if(l.value.configMode==="custom"){if(!l.value.baseUrl.trim())return r.value=v("init.baseUrlRequired"),!1;if(!l.value.modelName.trim())return r.value=v("init.modelNameRequired"),!1}return!0},D=async()=>{if(C())try{i.value=!0,r.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());const o=await(await fetch("/api/init/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();o.success?(N.value=!0,localStorage.setItem("hasInitialized","true"),localStorage.setItem("hasVisitedHome","true"),j.clearCache(),o.requiresRestart?setTimeout(()=>{confirm(v("init.restartRequired"))?window.location.reload():_.push("/home")},2e3):setTimeout(()=>{_.push("/home")},2e3)):r.value=o.error||v("init.saveFailed")}catch(s){console.error("Save config failed:",s),r.value=v("init.networkError")}finally{i.value=!1}},V=async()=>{try{const a=await(await fetch("/api/init/status")).json();a.success&&a.initialized&&(localStorage.setItem("hasInitialized","true"),_.push("/home"))}catch(s){console.error("Check init status failed:",s)}};return I(()=>{const s=localStorage.getItem(R);s&&(s==="zh"||s==="en")&&(d.value=s,$.value=s),V()}),(s,a)=>(c(),u("div",H,[e("div",J,[e("div",G,[a[9]||(a[9]=e("div",{class:"logo"},[e("h1",null,"🤖 JManus")],-1)),e("h2",null,t(n.value===1?s.$t("init.welcomeStep"):s.$t("init.welcome")),1),e("p",W,t(n.value===1?s.$t("init.languageStepDescription"):s.$t("init.description")),1)]),e("div",Q,[e("div",{class:g(["step",{active:n.value>=1,completed:n.value>1}])},[a[10]||(a[10]=e("span",{class:"step-number"},"1",-1)),e("span",X,t(s.$t("init.stepLanguage")),1)],2),a[12]||(a[12]=e("div",{class:"step-divider"},null,-1)),e("div",{class:g(["step",{active:n.value>=2,completed:n.value>2}])},[a[11]||(a[11]=e("span",{class:"step-number"},"2",-1)),e("span",Y,t(s.$t("init.stepModel")),1)],2)]),n.value===1?(c(),u("div",Z,[e("div",x,[e("label",ee,t(s.$t("init.selectLanguageLabel")),1),e("div",se,[e("label",{class:g(["language-option",{active:d.value==="zh"}])},[p(e("input",{type:"radio","onUpdate:modelValue":a[0]||(a[0]=o=>d.value=o),value:"zh"},null,512),[[y,d.value]]),e("span",ae,[a[13]||(a[13]=e("span",{class:"language-flag"},"🇨🇳",-1)),e("span",le,[e("strong",null,t(s.$t("language.zh")),1),e("small",null,t(s.$t("init.simplifiedChinese")),1)])])],2),e("label",{class:g(["language-option",{active:d.value==="en"}])},[p(e("input",{type:"radio","onUpdate:modelValue":a[1]||(a[1]=o=>d.value=o),value:"en"},null,512),[[y,d.value]]),a[14]||(a[14]=e("span",{class:"language-content"},[e("span",{class:"language-flag"},"🇺🇸"),e("span",{class:"language-text"},[e("strong",null,"English"),e("small",null,"English (US)")])],-1))],2)])]),e("div",te,[e("button",{type:"button",class:"submit-btn",disabled:!d.value,onClick:S},t(s.$t("init.continueToModel")),9,oe)])])):m("",!0),n.value===2?(c(),u("div",ie,[e("form",{onSubmit:z(D,["prevent"])},[e("div",ne,[e("label",de,t(s.$t("init.configModeLabel")),1),e("div",re,[e("label",{class:g(["radio-option",{active:l.value.configMode==="dashscope"}])},[p(e("input",{type:"radio","onUpdate:modelValue":a[2]||(a[2]=o=>l.value.configMode=o),value:"dashscope",onChange:M},null,544),[[y,l.value.configMode]]),e("span",ue,[e("strong",null,t(s.$t("init.dashscopeMode")),1),e("small",null,t(s.$t("init.dashscopeModeDesc")),1)])],2),e("label",{class:g(["radio-option",{active:l.value.configMode==="custom"}])},[p(e("input",{type:"radio","onUpdate:modelValue":a[3]||(a[3]=o=>l.value.configMode=o),value:"custom",onChange:M},null,544),[[y,l.value.configMode]]),e("span",ce,[e("strong",null,t(s.$t("init.customMode")),1),e("small",null,t(s.$t("init.customModeDesc")),1)])],2)])]),l.value.configMode==="dashscope"?(c(),u("div",pe,[e("label",me,[b(t(s.$t("init.apiKeyLabel"))+" ",1),a[15]||(a[15]=e("span",{class:"required"},"*",-1))]),p(e("input",{id:"apiKey","onUpdate:modelValue":a[4]||(a[4]=o=>l.value.apiKey=o),type:"password",class:"form-input",placeholder:s.$t("init.apiKeyPlaceholder"),disabled:i.value,required:""},null,8,ve),[[h,l.value.apiKey]]),e("div",fe,[b(t(s.$t("init.apiKeyHint"))+" ",1),e("a",ge,t(s.$t("init.getApiKey")),1)])])):m("",!0),l.value.configMode==="custom"?(c(),u("div",be,[e("div",he,[e("label",ye,[b(t(s.$t("init.baseUrlLabel"))+" ",1),a[16]||(a[16]=e("span",{class:"required"},"*",-1))]),p(e("input",{id:"baseUrl","onUpdate:modelValue":a[5]||(a[5]=o=>l.value.baseUrl=o),type:"url",class:"form-input",placeholder:s.$t("init.baseUrlPlaceholder"),disabled:i.value,required:""},null,8,_e),[[h,l.value.baseUrl]]),e("div",$e,t(s.$t("init.baseUrlHint")),1)]),e("div",Ne,[e("label",Me,[b(t(s.$t("init.customApiKeyLabel"))+" ",1),a[17]||(a[17]=e("span",{class:"required"},"*",-1))]),p(e("input",{id:"customApiKey","onUpdate:modelValue":a[6]||(a[6]=o=>l.value.apiKey=o),type:"password",class:"form-input",placeholder:s.$t("init.customApiKeyPlaceholder"),disabled:i.value,required:""},null,8,ke),[[h,l.value.apiKey]])]),e("div",Ue,[e("label",Ke,[b(t(s.$t("init.modelNameLabel"))+" ",1),a[18]||(a[18]=e("span",{class:"required"},"*",-1))]),p(e("input",{id:"modelName","onUpdate:modelValue":a[7]||(a[7]=o=>l.value.modelName=o),type:"text",class:"form-input",placeholder:s.$t("init.modelNamePlaceholder"),disabled:i.value,required:""},null,8,Le),[[h,l.value.modelName]]),e("div",Se,t(s.$t("init.modelNameHint")),1)]),e("div",we,[e("label",Ce,t(s.$t("init.modelDisplayNameLabel")),1),p(e("input",{id:"modelDisplayName","onUpdate:modelValue":a[8]||(a[8]=o=>l.value.modelDisplayName=o),type:"text",class:"form-input",placeholder:s.$t("init.modelDisplayNamePlaceholder"),disabled:i.value},null,8,De),[[h,l.value.modelDisplayName]])])])):m("",!0),e("div",Ve,[e("button",{type:"button",class:"back-btn",onClick:w,disabled:i.value},t(s.$t("init.back")),9,qe),e("button",{type:"submit",class:"submit-btn",disabled:i.value||!L.value},[i.value?(c(),u("span",Ae)):m("",!0),b(" "+t(i.value?s.$t("init.saving"):s.$t("init.saveAndContinue")),1)],8,Te)])],32)])):m("",!0),k(K,{name:"error-fade"},{default:U(()=>[r.value?(c(),u("div",Ie,t(r.value),1)):m("",!0)]),_:1}),k(K,{name:"success-fade"},{default:U(()=>[N.value?(c(),u("div",Re,t(s.$t("init.successMessage")),1)):m("",!0)]),_:1})]),e("div",ze,[(c(),u(P,null,E(6,o=>e("div",{class:"floating-shape",key:o})),64))]),a[19]||(a[19]=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))]))}}),Be=B(Pe,[["__scopeId","data-v-e11ff624"]]);export{Be as default}; diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CZriWw3M.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CZriWw3M.js new file mode 100644 index 0000000000..18ffc65486 --- /dev/null +++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CZriWw3M.js @@ -0,0 +1 @@ +import{d as I,a as u,b as m,q as $,s as j,f as C,x as q,e as s,t as c,r as T,u as M,c as _,o as L,g as f,w as O,j as V,F,l as K,p as R,y as H}from"./index-W4k7xcj8.js";import{_ as z}from"./Java-AI-BYpq8IxI.js";import{I as P}from"./iconify-bZOkqtWv.js";import{_ as N}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{L as U}from"./index-0-ztzQqN.js";import{u as A,s as r}from"./sidebar-Cklmpi9w.js";import"./llm-check-BVkAKrj3.js";const G={key:1,class:"blur-card-content"},Q=I({__name:"index",props:{content:{},wrapperStyle:{}},emits:["clickCard"],setup(x,{emit:p}){const n=x,l=p,i=()=>{console.log("[BlurCard] handleClick called with content:",n.content),l("clickCard",n.content),console.log("[BlurCard] clickCard event emitted")};return(e,S)=>{var d,h,g,v,b;return m(),u("button",{class:"blur-card",onClick:i,style:$(e.wrapperStyle)},[(d=e.content)!=null&&d.icon?(m(),j(q(P),{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=N(Q,[["__scopeId","data-v-48da0039"]]),X={class:"home-page"},Y={class:"welcome-container"},Z={class:"header"},ee={class:"header-top"},oe={class:"logo-container"},te={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(x){const p=R(),n=A(),l=T(""),i=T(),{t:e}=M(),S=()=>{const t=Date.now().toString();p.push({name:"direct",params:{id:t}}).then(()=>{console.log("[Home] jump to direct page"+e("common.success"))}).catch(o=>{console.error("[Home] jump to direct page"+e("common.error"),o)})},d=_(()=>[{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=_(()=>[{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"}}]),g=_(()=>[...d.value,...h.value]),v=t=>{t.type==="message"?E(t):t.type==="plan-act"&&J(t)};L(()=>{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 t=>{try{r.createNewTemplate(),r.jsonContent=JSON.stringify(t);const o=await r.saveTemplate();o!=null&&o.duplicate?console.log("[Sidebar] "+e("sidebar.saveCompleted",{message:o.message,versionCount:o.versionCount})):o!=null&&o.saved?console.log("[Sidebar] "+e("sidebar.saveSuccess",{message:o.message,versionCount:o.versionCount})):o!=null&&o.message&&console.log("[Sidebar] "+e("sidebar.saveStatus",{message:o.message}))}catch(o){console.error("[Sidebar] Failed to save the plan to the template library:",o),alert(o.message||e("sidebar.saveFailed"))}},B=()=>{H(()=>{i.value&&(i.value.style.height="auto",i.value.style.height=Math.min(i.value.scrollHeight,200)+"px")})},D=t=>{console.log("[Home] handleKeydown called, key:",t.key),t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),console.log("[Home] Enter key pressed, calling handleSend"),w())},w=()=>{if(console.log("[Home] handleSend called, userInput:",l.value),!l.value.trim()){console.log("[Home] handleSend aborted - empty input");return}const t=l.value.trim();console.log("[Home] Setting task to store:",t),n.setTask(t),console.log("[Home] Task set to store, current task:",n.currentTask);const o=Date.now().toString();console.log("[Home] Navigating to direct page with chatId:",o),p.push({name:"direct",params:{id:o}}).then(()=>{console.log("[Home] Navigation to direct page completed")}).catch(a=>{console.error("[Home] Navigation error:",a)})},E=t=>{console.log("[Home] selectExample called with example:",t),console.log("[Home] Example prompt:",t.prompt),n.setTask(t.prompt),console.log("[Home] Task set to store from example, current task:",n.currentTask);const o=Date.now().toString();console.log("[Home] Navigating to direct page with chatId:",o),p.push({name:"direct",params:{id:o}}).then(()=>{console.log("[Home] Navigation to direct page completed (from example)")}).catch(a=>{console.error("[Home] Navigation error (from example):",a)})},J=async t=>{console.log("[Home] selectPlan called with plan:",t);try{await b(t.planJson),console.log("[Home] Plan saved to templates");const o=Date.now().toString();await p.push({name:"direct",params:{id:o}}),H(async()=>{await new Promise(k=>setTimeout(k,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(k=>k.id===t.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(o){console.error("[Home] Error in selectPlan:",o)}};return(t,o)=>(m(),u("div",X,[s("div",Y,[o[2]||(o[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,[f(U)]),s("div",oe,[o[1]||(o[1]=s("div",{class:"logo"},[s("img",{src:z,alt:"JManus",class:"java-logo"}),s("h1",null,"JManus")],-1)),s("span",te,c(t.$t("home.tagline")),1)])]),s("main",se,[s("div",ae,[s("div",ne,[s("h2",le,c(t.$t("home.welcomeTitle")),1),s("p",re,c(t.$t("home.welcomeSubtitle")),1),s("button",{class:"direct-button",onClick:S},c(t.$t("home.directButton")),1)]),s("div",ie,[s("div",ce,[O(s("textarea",{"onUpdate:modelValue":o[0]||(o[0]=a=>l.value=a),ref_key:"textareaRef",ref:i,class:"main-input",placeholder:t.$t("home.inputPlaceholder"),onKeydown:D,onInput:B},null,40,pe),[[V,l.value]]),s("button",{class:"send-button",disabled:!l.value.trim(),onClick:w},[f(q(P),{icon:"carbon:send-alt"})],8,me)])]),s("div",de,[s("div",ue,[(m(!0),u(F,null,K(g.value,a=>(m(),u("div",{key:a.title,class:"card-with-type"},[f(W,{content:a,onClickCard:y=>v(a)},null,8,["content","onClickCard"]),s("span",he,c(a.type),1)]))),128))])])])])])]))}}),Se=N(ge,[["__scopeId","data-v-5aee9964"]]);export{Se as default}; diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Clz_zCtn.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Clz_zCtn.js deleted file mode 100644 index 615e07f9ec..0000000000 --- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-Clz_zCtn.js +++ /dev/null @@ -1 +0,0 @@ -import{d as q,u as T,r as f,c as A,o as I,L as R,a as u,b as c,e,f as m,g as k,t,n as g,w as p,v as y,h as z,i as b,j as h,k as U,T as K,F as P,l as E,m as F,p as O}from"./index-SarmArA2.js";import{L as j}from"./llm-check-D2idVWhZ.js";import{_ as B}from"./_plugin-vue_export-helper-DlAUqK2U.js";const H={class:"init-container"},J={class:"init-card"},G={class:"init-header"},W={class:"description"},Q={class:"step-indicator"},X={class:"step-label"},Y={class:"step-label"},Z={key:0,class:"init-form language-selection"},x={class:"form-group"},ee={class:"form-label"},se={class:"language-options"},ae={class:"form-actions single"},le=["disabled"],te={key:1,class:"init-form"},oe={class:"form-group"},ie={class:"form-label"},ne={class:"config-mode-selection"},de={class:"radio-text"},re={class:"radio-text"},ue={key:0,class:"form-group"},ce={for:"apiKey",class:"form-label"},pe=["placeholder","disabled"],me={class:"form-hint"},ve={href:"https://bailian.console.aliyun.com/?tab=model#/api-key",target:"_blank",class:"help-link"},fe={key:1,class:"custom-config-section"},ge={class:"form-group"},be={for:"baseUrl",class:"form-label"},he=["placeholder","disabled"],ye={class:"form-hint"},_e={class:"form-group"},Ne={for:"customApiKey",class:"form-label"},$e=["placeholder","disabled"],Me={class:"form-group"},ke={for:"modelName",class:"form-label"},Ue=["placeholder","disabled"],Ke={class:"form-hint"},Le={class:"form-group"},Se={for:"modelDisplayName",class:"form-label"},we=["placeholder","disabled"],Ce={class:"form-actions"},De=["disabled"],Ve=["disabled"],qe={key:0,class:"loading-spinner"},Te={key:0,class:"error-message"},Ae={key:0,class:"success-message"},Ie={class:"background-animation"},Re=q({__name:"index",setup(ze){const{t:v,locale:N}=T(),_=O(),n=f(1),d=f(N.value||"en"),l=f({configMode:"dashscope",apiKey:"",baseUrl:"",modelName:"",modelDisplayName:""}),i=f(!1),r=f(""),$=f(!1),L=A(()=>l.value.apiKey.trim()?l.value.configMode==="custom"?l.value.baseUrl.trim()&&l.value.modelName.trim():!0:!1),S=async()=>{if(d.value)try{i.value=!0,await F(d.value),n.value=2}catch(s){console.warn("Failed to switch language:",s),n.value=2}finally{i.value=!1}},w=()=>{n.value=1},M=()=>{l.value.apiKey="",l.value.baseUrl="",l.value.modelName="",l.value.modelDisplayName="",r.value=""},C=()=>{if(!l.value.apiKey.trim())return r.value=v("init.apiKeyRequired"),!1;if(l.value.configMode==="custom"){if(!l.value.baseUrl.trim())return r.value=v("init.baseUrlRequired"),!1;if(!l.value.modelName.trim())return r.value=v("init.modelNameRequired"),!1}return!0},D=async()=>{if(C())try{i.value=!0,r.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());const o=await(await fetch("/api/init/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();o.success?($.value=!0,localStorage.setItem("hasInitialized","true"),localStorage.setItem("hasVisitedHome","true"),j.clearCache(),o.requiresRestart?setTimeout(()=>{confirm(v("init.restartRequired"))?window.location.reload():_.push("/home")},2e3):setTimeout(()=>{_.push("/home")},2e3)):r.value=o.error||v("init.saveFailed")}catch(s){console.error("Save config failed:",s),r.value=v("init.networkError")}finally{i.value=!1}},V=async()=>{try{const a=await(await fetch("/api/init/status")).json();a.success&&a.initialized&&(localStorage.setItem("hasInitialized","true"),_.push("/home"))}catch(s){console.error("Check init status failed:",s)}};return I(()=>{const s=localStorage.getItem(R);s&&(s==="zh"||s==="en")&&(d.value=s,N.value=s),V()}),(s,a)=>(c(),u("div",H,[e("div",J,[e("div",G,[a[9]||(a[9]=e("div",{class:"logo"},[e("h1",null,"🤖 JManus")],-1)),e("h2",null,t(n.value===1?s.$t("init.welcomeStep"):s.$t("init.welcome")),1),e("p",W,t(n.value===1?s.$t("init.languageStepDescription"):s.$t("init.description")),1)]),e("div",Q,[e("div",{class:g(["step",{active:n.value>=1,completed:n.value>1}])},[a[10]||(a[10]=e("span",{class:"step-number"},"1",-1)),e("span",X,t(s.$t("init.stepLanguage")),1)],2),a[12]||(a[12]=e("div",{class:"step-divider"},null,-1)),e("div",{class:g(["step",{active:n.value>=2,completed:n.value>2}])},[a[11]||(a[11]=e("span",{class:"step-number"},"2",-1)),e("span",Y,t(s.$t("init.stepModel")),1)],2)]),n.value===1?(c(),u("div",Z,[e("div",x,[e("label",ee,t(s.$t("init.selectLanguageLabel")),1),e("div",se,[e("label",{class:g(["language-option",{active:d.value==="zh"}])},[p(e("input",{type:"radio","onUpdate:modelValue":a[0]||(a[0]=o=>d.value=o),value:"zh"},null,512),[[y,d.value]]),a[13]||(a[13]=e("span",{class:"language-content"},[e("span",{class:"language-flag"},"🇨🇳"),e("span",{class:"language-text"},[e("strong",null,"中文"),e("small",null,"简体中文")])],-1))],2),e("label",{class:g(["language-option",{active:d.value==="en"}])},[p(e("input",{type:"radio","onUpdate:modelValue":a[1]||(a[1]=o=>d.value=o),value:"en"},null,512),[[y,d.value]]),a[14]||(a[14]=e("span",{class:"language-content"},[e("span",{class:"language-flag"},"🇺🇸"),e("span",{class:"language-text"},[e("strong",null,"English"),e("small",null,"English (US)")])],-1))],2)])]),e("div",ae,[e("button",{type:"button",class:"submit-btn",disabled:!d.value,onClick:S},t(s.$t("init.continueToModel")),9,le)])])):m("",!0),n.value===2?(c(),u("div",te,[e("form",{onSubmit:z(D,["prevent"])},[e("div",oe,[e("label",ie,t(s.$t("init.configModeLabel")),1),e("div",ne,[e("label",{class:g(["radio-option",{active:l.value.configMode==="dashscope"}])},[p(e("input",{type:"radio","onUpdate:modelValue":a[2]||(a[2]=o=>l.value.configMode=o),value:"dashscope",onChange:M},null,544),[[y,l.value.configMode]]),e("span",de,[e("strong",null,t(s.$t("init.dashscopeMode")),1),e("small",null,t(s.$t("init.dashscopeModeDesc")),1)])],2),e("label",{class:g(["radio-option",{active:l.value.configMode==="custom"}])},[p(e("input",{type:"radio","onUpdate:modelValue":a[3]||(a[3]=o=>l.value.configMode=o),value:"custom",onChange:M},null,544),[[y,l.value.configMode]]),e("span",re,[e("strong",null,t(s.$t("init.customMode")),1),e("small",null,t(s.$t("init.customModeDesc")),1)])],2)])]),l.value.configMode==="dashscope"?(c(),u("div",ue,[e("label",ce,[b(t(s.$t("init.apiKeyLabel"))+" ",1),a[15]||(a[15]=e("span",{class:"required"},"*",-1))]),p(e("input",{id:"apiKey","onUpdate:modelValue":a[4]||(a[4]=o=>l.value.apiKey=o),type:"password",class:"form-input",placeholder:s.$t("init.apiKeyPlaceholder"),disabled:i.value,required:""},null,8,pe),[[h,l.value.apiKey]]),e("div",me,[b(t(s.$t("init.apiKeyHint"))+" ",1),e("a",ve,t(s.$t("init.getApiKey")),1)])])):m("",!0),l.value.configMode==="custom"?(c(),u("div",fe,[e("div",ge,[e("label",be,[b(t(s.$t("init.baseUrlLabel"))+" ",1),a[16]||(a[16]=e("span",{class:"required"},"*",-1))]),p(e("input",{id:"baseUrl","onUpdate:modelValue":a[5]||(a[5]=o=>l.value.baseUrl=o),type:"url",class:"form-input",placeholder:s.$t("init.baseUrlPlaceholder"),disabled:i.value,required:""},null,8,he),[[h,l.value.baseUrl]]),e("div",ye,t(s.$t("init.baseUrlHint")),1)]),e("div",_e,[e("label",Ne,[b(t(s.$t("init.customApiKeyLabel"))+" ",1),a[17]||(a[17]=e("span",{class:"required"},"*",-1))]),p(e("input",{id:"customApiKey","onUpdate:modelValue":a[6]||(a[6]=o=>l.value.apiKey=o),type:"password",class:"form-input",placeholder:s.$t("init.customApiKeyPlaceholder"),disabled:i.value,required:""},null,8,$e),[[h,l.value.apiKey]])]),e("div",Me,[e("label",ke,[b(t(s.$t("init.modelNameLabel"))+" ",1),a[18]||(a[18]=e("span",{class:"required"},"*",-1))]),p(e("input",{id:"modelName","onUpdate:modelValue":a[7]||(a[7]=o=>l.value.modelName=o),type:"text",class:"form-input",placeholder:s.$t("init.modelNamePlaceholder"),disabled:i.value,required:""},null,8,Ue),[[h,l.value.modelName]]),e("div",Ke,t(s.$t("init.modelNameHint")),1)]),e("div",Le,[e("label",Se,t(s.$t("init.modelDisplayNameLabel")),1),p(e("input",{id:"modelDisplayName","onUpdate:modelValue":a[8]||(a[8]=o=>l.value.modelDisplayName=o),type:"text",class:"form-input",placeholder:s.$t("init.modelDisplayNamePlaceholder"),disabled:i.value},null,8,we),[[h,l.value.modelDisplayName]])])])):m("",!0),e("div",Ce,[e("button",{type:"button",class:"back-btn",onClick:w,disabled:i.value},t(s.$t("init.back")),9,De),e("button",{type:"submit",class:"submit-btn",disabled:i.value||!L.value},[i.value?(c(),u("span",qe)):m("",!0),b(" "+t(i.value?s.$t("init.saving"):s.$t("init.saveAndContinue")),1)],8,Ve)])],32)])):m("",!0),k(K,{name:"error-fade"},{default:U(()=>[r.value?(c(),u("div",Te,t(r.value),1)):m("",!0)]),_:1}),k(K,{name:"success-fade"},{default:U(()=>[$.value?(c(),u("div",Ae,t(s.$t("init.successMessage")),1)):m("",!0)]),_:1})]),e("div",Ie,[(c(),u(P,null,E(6,o=>e("div",{class:"floating-shape",key:o})),64))]),a[19]||(a[19]=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))]))}}),Oe=B(Re,[["__scopeId","data-v-104afced"]]);export{Oe as default}; diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CxnUfhp1.css b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CxnUfhp1.css new file mode 100644 index 0000000000..5b5d12beff --- /dev/null +++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-CxnUfhp1.css @@ -0,0 +1 @@ +.language-switcher[data-v-25f759dc]{position:relative;display:inline-block}.language-btn[data-v-25f759dc]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:transparent;border:1.5px solid #667eea;border-radius:8px;color:#8da2fb;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:600;outline:none}.language-btn[data-v-25f759dc]:hover{background:#667eea26;border-color:#7c9eff;color:#a3bffa;box-shadow:0 0 15px #667eea33}.language-btn[data-v-25f759dc]:focus{box-shadow:0 0 0 3px #667eea80}.current-lang[data-v-25f759dc]{color:inherit;font-weight:600;min-width:40px;text-align:left;text-shadow:none}.chevron[data-v-25f759dc]{transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.9;filter:none}.language-dropdown[data-v-25f759dc]{position:absolute;top:100%;right:0;z-index:9999;margin-top:4px;background:linear-gradient(135deg,#282832f2,#1e1e28f2);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(102,126,234,.3);border-radius:8px;box-shadow:0 8px 32px #0006,0 0 0 1px #667eea33;min-width:200px;animation:slideDown-25f759dc .2s ease}.dropdown-header[data-v-25f759dc]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(102,126,234,.2);font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea1a,#667eea0d)}.close-btn[data-v-25f759dc]{background:none;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.close-btn[data-v-25f759dc]:hover{background:#ffffff1a;color:#fffc}.language-options[data-v-25f759dc]{padding:8px 0}.language-option[data-v-25f759dc]{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:none;border:none;color:#ffffffb3;cursor:pointer;transition:all .2s ease;text-align:left}.language-option[data-v-25f759dc]:hover{background:#ffffff0d;color:#ffffffe6}.language-option.active[data-v-25f759dc]{background:linear-gradient(135deg,#667eea33,#667eea1a);color:#7c9eff;border-left:3px solid #667eea;padding-left:13px}.language-option.loading[data-v-25f759dc]{opacity:.6;cursor:not-allowed}.language-option[data-v-25f759dc]:disabled{cursor:not-allowed;opacity:.6}.lang-code[data-v-25f759dc]{display:inline-block;min-width:24px;font-size:12px;font-weight:600;text-transform:uppercase;opacity:.8}.lang-name[data-v-25f759dc]{flex:1;font-size:14px;font-weight:500}.check-icon[data-v-25f759dc]{color:#667eea;opacity:.8}.loading-icon[data-v-25f759dc]{color:#667eea;opacity:.8;animation:spin-25f759dc 1s linear infinite}@keyframes spin-25f759dc{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.backdrop[data-v-25f759dc]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998;background:transparent}@keyframes slideDown-25f759dc{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.language-dropdown[data-v-25f759dc]{right:-8px;left:-8px;width:auto;min-width:auto}.language-btn[data-v-25f759dc]{padding:6px 10px;font-size:13px}.current-lang[data-v-25f759dc]{min-width:35px}}@media (prefers-color-scheme: light){.language-dropdown[data-v-25f759dc]{background:#fffffff2;border-color:#0000001a;box-shadow:0 8px 32px #0000001a}.dropdown-header[data-v-25f759dc]{color:#000c;border-bottom-color:#0000001a}.close-btn[data-v-25f759dc]{color:#0009}.close-btn[data-v-25f759dc]:hover{background:#0000001a;color:#000c}.language-option[data-v-25f759dc]{color:#000000b3}.language-option[data-v-25f759dc]:hover{background:#0000000d;color:#000000e6}} diff --git a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-H3fwLZKf.js b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-DOvRfojN.js similarity index 86% rename from spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-H3fwLZKf.js rename to spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-DOvRfojN.js index 4579d3467c..4f31ea8674 100644 --- a/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-H3fwLZKf.js +++ b/spring-ai-alibaba-jmanus/src/main/resources/static/ui/assets/index-DOvRfojN.js @@ -1,38 +1,38 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/freemarker2-CkAicm6I.js","assets/index-SarmArA2.js","assets/index-DN-vOy2S.css","assets/iconify-B5kZhuXP.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/useMessage-BDFqrfR1.js","assets/useMessage-B772OobR.css","assets/index-BPwnW1su.js","assets/index-TjSmldwt.css","assets/handlebars-C5uyFx9F.js","assets/html-D2gt6e4j.js","assets/javascript-DjmYe7rk.js","assets/typescript-BfLRVFnk.js","assets/liquid-BpyfeEKH.js","assets/mdx-DyHo1t2K.js","assets/python-DPicRBVQ.js","assets/razor-B_0SmNCn.js","assets/xml-BJKkYGLb.js","assets/yaml-DXnlxOOm.js","assets/cssMode-dU5ExThW.js","assets/htmlMode-Cl5XUd21.js","assets/jsonMode-DrXkewyD.js","assets/tsMode-CA06cS6L.js"])))=>i.map(i=>d[i]); -var xz=Object.defineProperty;var kz=(o,e,t)=>e in o?xz(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var ri=(o,e,t)=>kz(o,typeof e!="symbol"?e+"":e,t);import{d as Ss,a as ue,b as ne,e as D,t as B,u as Pa,r as Ye,z as ar,c as Xn,o as Kd,g as xe,f as at,i as Ae,w as Vt,j as ti,F as Ji,l as ln,n as Nn,E as ny,s as In,k as Zt,T as qb,J as Gf,C as Iz,x as P,h as Zh,B as cr,D as X1,y as I9,H as Ez,K as K2,q as Nz,A as E9,_ as Oe,M as Tz,N as Mz,p as N9,G as T9,O as Az}from"./index-SarmArA2.js";import{I as Pe}from"./iconify-B5kZhuXP.js";import{_ as us}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as Rz,u as M9}from"./useMessage-BDFqrfR1.js";import{L as Pz}from"./index-BPwnW1su.js";const Oz={class:"switch"},Fz=["checked"],Bz={class:"switch-label"},Wz=Ss({__name:"index",props:{enabled:{type:Boolean},label:{}},emits:["update:switchValue"],setup(o,{emit:e}){const t=e,i=n=>{const s=n.target.checked;t("update:switchValue",s)};return(n,s)=>(ne(),ue("label",Oz,[D("input",{type:"checkbox",checked:n.enabled,onChange:i},null,40,Fz),s[0]||(s[0]=D("span",{class:"slider"},null,-1)),D("span",Bz,B(n.label),1)]))}}),Vz=us(Wz,[["__scopeId","data-v-d484b4a3"]]);class u_{static async getConfigsByGroup(e){try{const t=await fetch(`${this.BASE_URL}/group/${e}`);if(!t.ok)throw new Error(`Failed to get ${e} group configuration: ${t.status}`);return await t.json()}catch(t){throw console.error(`Failed to get ${e} group configuration:`,t),t}}static async batchUpdateConfigs(e){if(e.length===0)return{success:!0,message:"No configuration needs to be updated"};try{const t=await fetch(`${this.BASE_URL}/batch-update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Batch update configuration failed: ${t.status}`);return{success:!0,message:"Configuration saved successfully"}}catch(t){return console.error("Batch update configuration failed:",t),{success:!1,message:t instanceof Error?t.message:"Update failed, please try again"}}}static async getConfigById(e){try{const t=await fetch(`${this.BASE_URL}/${e}`);if(!t.ok)throw new Error(`Failed to get configuration item: ${t.status}`);return await t.json()}catch(t){throw console.error(`Failed to get configuration item[${e}]:`,t),t}}static async updateConfig(e){try{const t=await fetch(`${this.BASE_URL}/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update configuration item: ${t.status}`);return{success:!0,message:"Configuration updated successfully"}}catch(t){return console.error("Failed to update configuration item:",t),{success:!1,message:t instanceof Error?t.message:"Update failed, please try again"}}}}ri(u_,"BASE_URL","/api/config");const Hz={class:"config-panel"},zz={class:"config-header"},$z={class:"header-left"},Uz={class:"config-stats"},jz={class:"stat-item"},Kz={class:"stat-label"},qz={class:"stat-value"},Gz={key:0,class:"stat-item"},Zz={class:"stat-label"},Yz={class:"stat-value modified"},Xz={class:"header-right"},Qz={class:"import-export-actions"},Jz=["title"],e$=["title"],t$={class:"search-box"},i$=["placeholder"],n$={key:0,class:"loading-container"},s$={key:1,class:"config-groups"},o$={class:"group-header"},r$={class:"group-info"},a$={class:"group-icon"},l$={class:"group-actions"},d$=["onClick","disabled","title"],c$={class:"sub-groups"},u$=["onClick"],h$={class:"sub-group-info"},g$={class:"sub-group-title"},f$={class:"item-count"},p$={class:"config-items"},m$={key:0,class:"config-item-content vertical-layout"},_$={class:"config-item-info"},v$={class:"config-item-header"},b$={class:"config-label"},C$={class:"type-badge boolean"},w$={key:0,class:"modified-badge"},S$=["title"],y$={class:"config-control"},L$=["value","onChange"],D$=["value"],x$={key:1,class:"config-item-content vertical-layout"},k$={class:"config-item-info"},I$={class:"config-item-header"},E$={class:"config-label"},N$={class:"type-badge select"},T$={key:0,class:"modified-badge"},M$=["title"],A$={class:"config-control"},R$=["value","onChange"],P$=["value"],O$={key:2,class:"config-item-content vertical-layout"},F$={class:"config-item-info"},B$={class:"config-item-header"},W$={class:"config-label"},V$={class:"type-badge textarea"},H$={key:0,class:"modified-badge"},z$=["title"],$$={class:"config-control"},U$=["value","onInput"],j$={key:3,class:"config-item-content vertical-layout"},K$={class:"config-item-info"},q$={class:"config-item-header"},G$={class:"config-label"},Z$={class:"type-badge number"},Y$={key:0,class:"modified-badge"},X$=["title"],Q$={key:0,class:"config-meta"},J$={class:"range-info"},eU={class:"config-control"},tU=["value","onInput","min","max"],iU={key:4,class:"config-item-content vertical-layout"},nU={class:"config-item-info"},sU={class:"config-item-header"},oU={class:"config-label"},rU={class:"type-badge string"},aU={key:0,class:"modified-badge"},lU=["title"],dU={class:"config-control"},cU=["value","onInput"],uU={key:2,class:"empty-state"},hU=Ss({__name:"basicConfig",setup(o){const{t:e}=Pa(),t=Ye(!0),i=Ye(!1),n=Ye([]),s=Ye(new Map),r=Ye(new Set),a=ar({show:!1,text:"",type:"success"}),l=Ye(""),d={headless:"config.basicConfig.browserSettings.headless",requestTimeout:"config.basicConfig.browserSettings.requestTimeout",debugDetail:"config.basicConfig.general.debugDetail",baseDir:"config.basicConfig.general.baseDir",openBrowser:"config.basicConfig.interactionSettings.openBrowser",maxSteps:"config.basicConfig.agentSettings.maxSteps",userInputTimeout:"config.basicConfig.agentSettings.userInputTimeout",maxMemory:"config.basicConfig.agentSettings.maxMemory",parallelToolCalls:"config.basicConfig.agentSettings.parallelToolCalls",forceOverrideFromYaml:"config.basicConfig.agents.forceOverrideFromYaml",enabled:"config.basicConfig.infiniteContext.enabled",parallelThreads:"config.basicConfig.infiniteContext.parallelThreads",taskContextSize:"config.basicConfig.infiniteContext.taskContextSize",allowExternalAccess:"config.basicConfig.fileSystem.allowExternalAccess",connectionTimeoutSeconds:"config.basicConfig.mcpServiceLoader.connectionTimeoutSeconds",maxRetryCount:"config.basicConfig.mcpServiceLoader.maxRetryCount",maxConcurrentConnections:"config.basicConfig.mcpServiceLoader.maxConcurrentConnections"},c={manus:"config.basicConfig.groupDisplayNames.manus"},u={manus:"🤖",browser:"🌐",interaction:"🖥️",system:"⚙️",performance:"⚡"},h={agent:"config.subGroupDisplayNames.agent",browser:"config.subGroupDisplayNames.browser",interaction:"config.subGroupDisplayNames.interaction",agents:"config.subGroupDisplayNames.agents",infiniteContext:"config.subGroupDisplayNames.infiniteContext",general:"config.subGroupDisplayNames.general",filesystem:"config.subGroupDisplayNames.filesystem",mcpServiceLoader:"config.subGroupDisplayNames.mcpServiceLoader"},g=Xn(()=>n.value.some(V=>V.subGroups.some(Q=>Q.items.some(H=>s.value.get(H.id)!==H.configValue)))),f=V=>V==="true",m=V=>parseFloat(V)||0,v=V=>({maxSteps:1,browserTimeout:1,maxThreads:1,timeoutSeconds:5,maxMemory:1})[V]||1,_=V=>({maxSteps:100,browserTimeout:600,maxThreads:32,timeoutSeconds:300,maxMemory:1e3})[V]||1e4,b=V=>typeof V=="string"?V:V.value,C=V=>typeof V=="string"?V:V.label,w=(V,Q)=>{if(typeof Q=="boolean")return Q.toString();if(typeof Q=="string"){if(V.options&&V.options.length>0){const H=V.options.find(G=>(typeof G=="string"?G:G.label)===Q||(typeof G=="string"?G:G.value)===Q);if(H)return typeof H=="string"?H:H.value}return Q}return String(Q)},S=(V,Q,H=!1)=>{let G;V.inputType==="BOOLEAN"||V.inputType==="CHECKBOX"?G=w(V,Q):G=String(Q),V.configValue!==G&&(V.configValue=G,V._modified=!0,(H||V.inputType==="BOOLEAN"||V.inputType==="CHECKBOX"||V.inputType==="SELECT")&&y())};let x=null;const y=()=>{x&&clearTimeout(x),x=window.setTimeout(()=>{R()},500)},I=(V,Q="success")=>{a.text=V,a.type=Q,a.show=!0,setTimeout(()=>{a.show=!1},3e3)},E=async()=>{try{t.value=!0;const Q=["manus"].map(async G=>{try{const Z=await u_.getConfigsByGroup(G);if(Z.length===0)return null;const $e=Z.map(Ce=>({...Ce,displayName:d[Ce.configKey]||Ce.configKey,min:v(Ce.configKey),max:_(Ce.configKey)}));$e.forEach(Ce=>{s.value.set(Ce.id,Ce.configValue)});const ft=new Map;$e.forEach(Ce=>{const re=Ce.configSubGroup??"general";ft.has(re)||ft.set(re,[]),ft.get(re).push(Ce)});const Bt=Array.from(ft.entries()).map(([Ce,re])=>({name:Ce,displayName:h[Ce]||Ce,items:re}));return{name:G,displayName:c[G]||G,subGroups:Bt}}catch(Z){return console.warn(`加载配置组 ${G} 失败,跳过:`,Z),null}}),H=await Promise.all(Q);n.value=H.filter(G=>G!==null),console.log(e("config.basicConfig.loadConfigSuccess"),n.value)}catch(V){console.error(e("config.basicConfig.loadConfigFailed"),V),I(e("config.basicConfig.loadConfigFailed"),"error")}finally{t.value=!1}},R=async()=>{if(!(i.value||!g.value))try{i.value=!0;const V=[];if(n.value.forEach(H=>{H.subGroups.forEach(G=>{const Z=G.items.filter($e=>$e._modified);V.push(...Z)})}),V.length===0){I(e("config.basicConfig.noModified"));return}const Q=await u_.batchUpdateConfigs(V);Q.success?(V.forEach(H=>{s.value.set(H.id,H.configValue),H._modified=!1}),I(e("config.basicConfig.saveSuccess"))):I(Q.message||e("config.basicConfig.saveFailed"),"error")}catch(V){console.error(e("config.basicConfig.saveFailed"),V),I(e("config.basicConfig.saveFailed"),"error")}finally{i.value=!1}},j=async V=>{if(confirm(e("config.basicConfig.resetGroupConfirm",c[V]||V)))try{i.value=!0;const H=n.value.find($e=>$e.name===V);if(!H)return;const G=[];if(H.subGroups.forEach($e=>{$e.items.forEach(ft=>{const Bt=O(ft.configKey);Bt!==ft.configValue&&G.push({...ft,configValue:Bt})})}),G.length===0){I(e("config.basicConfig.isDefault"));return}const Z=await u_.batchUpdateConfigs(G);Z.success?(await E(),I(e("config.basicConfig.resetSuccess",G.length))):I(Z.message||e("config.basicConfig.resetFailed"),"error")}catch(H){console.error(e("config.basicConfig.resetFailed"),H),I(e("config.basicConfig.resetFailed"),"error")}finally{i.value=!1}},O=V=>({systemName:"JManus",language:"zh-CN",maxThreads:"8",timeoutSeconds:"60",autoOpenBrowser:"false",headlessBrowser:"true",maxMemory:"1000"})[V]||"",$=(V,Q)=>{const H=`${V}-${Q}`;r.value.has(H)?r.value.delete(H):r.value.add(H)},K=(V,Q)=>r.value.has(`${V}-${Q}`),oe=Xn(()=>{const V=n.value.reduce((H,G)=>H+G.subGroups.reduce((Z,$e)=>Z+$e.items.length,0),0),Q=n.value.reduce((H,G)=>H+G.subGroups.reduce((Z,$e)=>Z+$e.items.filter(ft=>s.value.get(ft.id)!==ft.configValue).length,0),0);return{total:V,modified:Q}}),Le=Xn(()=>{if(!l.value.trim())return n.value;const V=l.value.toLowerCase();return n.value.map(Q=>({...Q,subGroups:Q.subGroups.map(H=>({...H,items:H.items.filter(G=>G.displayName.toLowerCase().includes(V)||G.configKey.toLowerCase().includes(V)||G.description&&G.description.toLowerCase().includes(V))})).filter(H=>H.items.length>0)})).filter(Q=>Q.subGroups.length>0)}),he=()=>{try{const V={timestamp:new Date().toISOString(),version:"1.0",configs:n.value.reduce((Z,$e)=>($e.subGroups.forEach(ft=>{ft.items.forEach(Bt=>{Z[Bt.configKey]=Bt.configValue})}),Z),{})},Q=JSON.stringify(V,null,2),H=new Blob([Q],{type:"application/json"}),G=document.createElement("a");G.href=URL.createObjectURL(H),G.download=`config-export-${new Date().toISOString().split("T")[0]}.json`,G.click(),I(e("config.basicConfig.exportSuccess"))}catch(V){console.error(e("config.basicConfig.exportFailed"),V),I(e("config.basicConfig.exportFailed"),"error")}},se=V=>{var Z;const Q=V.target,H=(Z=Q.files)==null?void 0:Z[0];if(!H)return;const G=new FileReader;G.onload=async $e=>{var ft;try{const Bt=JSON.parse((ft=$e.target)==null?void 0:ft.result);if(!Bt.configs)throw new Error(e("config.basicConfig.invalidFormat"));if(!confirm(e("config.importConfirm")))return;i.value=!0;const re=[];if(n.value.forEach(ce=>{ce.subGroups.forEach(Ie=>{Ie.items.forEach(mt=>{Object.prototype.hasOwnProperty.call(Bt.configs,mt.configKey)&&re.push({...mt,configValue:Bt.configs[mt.configKey]})})})}),re.length===0){I(e("config.basicConfig.notFound"));return}const ke=await u_.batchUpdateConfigs(re);ke.success?(await E(),I(e("config.basicConfig.importSuccess"))):I(ke.message||e("config.basicConfig.importFailed"),"error")}catch(Bt){console.error(e("config.basicConfig.importFailed"),Bt),I(e("config.basicConfig.importFailed"),"error")}finally{i.value=!1,Q.value=""}},G.readAsText(H)};return Kd(()=>{E()}),(V,Q)=>(ne(),ue("div",Hz,[D("div",zz,[D("div",$z,[D("h2",null,B(V.$t("config.basicConfig.title")),1),D("div",Uz,[D("span",jz,[D("span",Kz,B(V.$t("config.basicConfig.totalConfigs"))+":",1),D("span",qz,B(oe.value.total),1)]),oe.value.modified>0?(ne(),ue("span",Gz,[D("span",Zz,B(V.$t("config.basicConfig.modified"))+":",1),D("span",Yz,B(oe.value.modified),1)])):at("",!0)])]),D("div",Xz,[D("div",Qz,[D("button",{onClick:he,class:"action-btn",title:V.$t("config.basicConfig.exportConfigs")}," 📤 ",8,Jz),D("label",{class:"action-btn",title:V.$t("config.basicConfig.importConfigs")},[Q[1]||(Q[1]=Ae(" 📥 ")),D("input",{type:"file",accept:".json",onChange:se,style:{display:"none"}},null,32)],8,e$)]),D("div",t$,[Vt(D("input",{"onUpdate:modelValue":Q[0]||(Q[0]=H=>l.value=H),type:"text",placeholder:V.$t("config.search"),class:"search-input"},null,8,i$),[[ti,l.value]]),Q[2]||(Q[2]=D("span",{class:"search-icon"},"🔍",-1))])])]),t.value?(ne(),ue("div",n$,[Q[3]||(Q[3]=D("div",{class:"loading-spinner"},null,-1)),D("p",null,B(V.$t("config.loading")),1)])):Le.value.length>0?(ne(),ue("div",s$,[(ne(!0),ue(Ji,null,ln(Le.value,H=>(ne(),ue("div",{key:H.name,class:"config-group"},[D("div",o$,[D("div",r$,[D("span",a$,B(u[H.name]||"⚙️"),1)]),D("div",l$,[D("button",{onClick:G=>j(H.name),class:"reset-btn",disabled:i.value,title:V.$t("config.resetGroupConfirm")},B(V.$t("config.reset")),9,d$)]),Q[4]||(Q[4]=D("div",{class:"group-divider"},null,-1))]),D("div",c$,[(ne(!0),ue(Ji,null,ln(H.subGroups,G=>(ne(),ue("div",{key:G.name,class:"sub-group"},[D("div",{class:"sub-group-header",onClick:Z=>$(H.name,G.name)},[D("div",h$,[Q[5]||(Q[5]=D("span",{class:"sub-group-icon"},"📁",-1)),D("h4",g$,B(V.$t(G.displayName)),1),D("span",f$,"("+B(G.items.length)+")",1)]),D("span",{class:Nn(["collapse-icon",{collapsed:K(H.name,G.name)}])}," ▼ ",2)],8,u$),Vt(D("div",p$,[(ne(!0),ue(Ji,null,ln(G.items,Z=>(ne(),ue("div",{key:Z.id,class:Nn(["config-item",{modified:s.value.get(Z.id)!==Z.configValue}])},[Z.inputType==="BOOLEAN"||Z.inputType==="CHECKBOX"?(ne(),ue("div",m$,[D("div",_$,[D("div",v$,[D("label",b$,[Ae(B(V.$t(Z.displayName)||Z.description)+" ",1),D("span",C$,B(Z.inputType==="CHECKBOX"?V.$t("config.types.checkbox"):V.$t("config.types.boolean")),1),s.value.get(Z.id)!==Z.configValue?(ne(),ue("span",w$,B(V.$t("config.modified")),1)):at("",!0)]),D("span",{class:"config-key",title:Z.configKey},B(Z.configKey),9,S$)])]),D("div",y$,[Z.options&&Z.options.length>0?(ne(),ue("select",{key:0,class:"config-input select-input",value:Z.configValue,onChange:$e=>{var ft;return S(Z,((ft=$e.target)==null?void 0:ft.value)||"")}},[(ne(!0),ue(Ji,null,ln(Z.options,$e=>(ne(),ue("option",{key:b($e),value:b($e)},B(C($e)),9,D$))),128))],40,L$)):(ne(),In(Vz,{key:1,enabled:f(Z.configValue),label:"","onUpdate:switchValue":$e=>S(Z,$e)},null,8,["enabled","onUpdate:switchValue"]))])])):Z.inputType==="SELECT"?(ne(),ue("div",x$,[D("div",k$,[D("div",I$,[D("label",E$,[Ae(B(V.$t(Z.displayName)||Z.description)+" ",1),D("span",N$,B(V.$t("config.types.select")),1),s.value.get(Z.id)!==Z.configValue?(ne(),ue("span",T$,B(V.$t("config.modified")),1)):at("",!0)]),D("span",{class:"config-key",title:Z.configKey},B(Z.configKey),9,M$)])]),D("div",A$,[D("select",{class:"config-input select-input",value:Z.configValue,onChange:$e=>{var ft;return S(Z,((ft=$e.target)==null?void 0:ft.value)||"")}},[(ne(!0),ue(Ji,null,ln(Z.options||[],$e=>(ne(),ue("option",{key:b($e),value:b($e)},B(C($e)),9,P$))),128))],40,R$)])])):Z.inputType==="TEXTAREA"?(ne(),ue("div",O$,[D("div",F$,[D("div",B$,[D("label",W$,[Ae(B(V.$t(Z.displayName)||Z.description)+" ",1),D("span",V$,B(V.$t("config.types.textarea")),1),s.value.get(Z.id)!==Z.configValue?(ne(),ue("span",H$,B(V.$t("config.modified")),1)):at("",!0)]),D("span",{class:"config-key",title:Z.configKey},B(Z.configKey),9,z$)])]),D("div",$$,[D("textarea",{class:"config-input textarea-input",value:Z.configValue,onInput:$e=>{var ft;return S(Z,((ft=$e.target)==null?void 0:ft.value)||"")},onBlur:y,rows:"3"},null,40,U$)])])):Z.inputType==="NUMBER"?(ne(),ue("div",j$,[D("div",K$,[D("div",q$,[D("label",G$,[Ae(B(V.$t(Z.displayName)||Z.description)+" ",1),D("span",Z$,B(V.$t("config.types.number")),1),s.value.get(Z.id)!==Z.configValue?(ne(),ue("span",Y$,B(V.$t("config.modified")),1)):at("",!0)]),D("span",{class:"config-key",title:Z.configKey},B(Z.configKey),9,X$),Z.min||Z.max?(ne(),ue("div",Q$,[D("span",J$,B(V.$t("config.range"))+": "+B(Z.min||0)+" - "+B(Z.max||"∞"),1)])):at("",!0)])]),D("div",eU,[D("input",{type:"number",class:"config-input number-input",value:m(Z.configValue),onInput:$e=>{var ft;return S(Z,((ft=$e.target)==null?void 0:ft.value)||"")},onBlur:y,min:Z.min||1,max:Z.max||1e4},null,40,tU)])])):(ne(),ue("div",iU,[D("div",nU,[D("div",sU,[D("label",oU,[Ae(B(V.$t(Z.displayName)||Z.description)+" ",1),D("span",rU,B(Z.inputType==="TEXT"?V.$t("config.types.text"):V.$t("config.types.string")),1),s.value.get(Z.id)!==Z.configValue?(ne(),ue("span",aU,B(V.$t("config.modified")),1)):at("",!0)]),D("span",{class:"config-key",title:Z.configKey},B(Z.configKey),9,lU)])]),D("div",dU,[D("input",{type:"text",class:"config-input text-input",value:Z.configValue,onInput:$e=>{var ft;return S(Z,((ft=$e.target)==null?void 0:ft.value)||"")},onBlur:y},null,40,cU)])]))],2))),128))],512),[[ny,!K(H.name,G.name)]])]))),128))])]))),128))])):(ne(),ue("div",uU,[D("p",null,B(V.$t("config.notFound")),1)])),xe(qb,{name:"message-fade"},{default:Zt(()=>[a.show?(ne(),ue("div",{key:0,class:Nn(["message-toast",a.type])},B(a.text),3)):at("",!0)]),_:1})]))}}),xP=us(hU,[["__scopeId","data-v-5e6536ac"]]),gU={},fU={class:"config-config"},pU={class:"panel-header"},mU={class:"panel-actions"};function _U(o,e){return ne(),ue("div",fU,[D("div",pU,[Gf(o.$slots,"title",{},void 0),D("div",mU,[Gf(o.$slots,"actions",{},void 0)])]),Gf(o.$slots,"default",{},void 0)])}const Gb=us(gU,[["render",_U],["__scopeId","data-v-c91688e7"]]),vU={class:"modal-header"},bU={class:"modal-content"},CU={class:"modal-footer"},wU=Ss({__name:"index",props:{modelValue:{type:Boolean,required:!0},title:{type:String,default:""}},emits:["update:modelValue","confirm"],setup(o){const e=t=>{t.target===t.currentTarget&&(t.stopPropagation(),t.preventDefault())};return(t,i)=>(ne(),In(Iz,{to:"body"},[xe(qb,{name:"modal"},{default:Zt(()=>[o.modelValue?(ne(),ue("div",{key:0,class:"modal-overlay",onClick:e},[D("div",{class:"modal-container",onClick:i[3]||(i[3]=Zh(()=>{},["stop"]))},[D("div",vU,[D("h3",null,B(o.title),1),D("button",{class:"close-btn",onClick:i[0]||(i[0]=n=>t.$emit("update:modelValue",!1))},[xe(P(Pe),{icon:"carbon:close"})])]),D("div",bU,[Gf(t.$slots,"default",{},void 0,!0)]),D("div",CU,[Gf(t.$slots,"footer",{},()=>[D("button",{class:"cancel-btn",onClick:i[1]||(i[1]=n=>t.$emit("update:modelValue",!1))},B(t.$t("common.cancel")),1),D("button",{class:"confirm-btn",onClick:i[2]||(i[2]=n=>t.$emit("confirm"))},B(t.$t("common.confirm")),1)],!0)])])])):at("",!0)]),_:3})]))}}),Wo=us(wU,[["__scopeId","data-v-baaf1c89"]]),SU={class:"tool-selection-content"},yU={class:"tool-controls"},LU={class:"search-container"},DU={class:"sort-container"},xU={class:"tool-summary"},kU={class:"summary-text"},IU={key:0,class:"tool-groups"},EU=["onClick"],NU={class:"group-title-area"},TU={class:"group-name"},MU={class:"group-count"},AU={class:"group-enable-all"},RU=["checked","onChange","data-group"],PU={class:"tool-info"},OU={class:"tool-selection-name"},FU={key:0,class:"tool-selection-desc"},BU={class:"tool-actions"},WU=["checked","onChange"],VU={key:1,class:"empty-state"},HU=Ss({__name:"index",props:{modelValue:{type:Boolean},tools:{},selectedToolIds:{}},emits:["update:modelValue","confirm"],setup(o,{emit:e}){const t=o,i=e,n=Xn({get:()=>t.modelValue,set:x=>i("update:modelValue",x)}),s=Ye(""),r=Ye("group"),a=Ye(new Set),l=Ye([]),d=(x,y)=>{const I=document.querySelector(`input[data-group="${x}"]`);I&&(I.indeterminate=_(y))};cr(()=>t.selectedToolIds,x=>{l.value=[...x]},{immediate:!0});const c=Xn(()=>{let x=t.tools.filter(y=>y.key);if(s.value){const y=s.value.toLowerCase();x=x.filter(I=>{var E;return I.name.toLowerCase().includes(y)||I.description.toLowerCase().includes(y)||(((E=I.serviceGroup)==null?void 0:E.toLowerCase().includes(y))??!1)})}switch(r.value){case"name":x=[...x].sort((y,I)=>y.name.localeCompare(I.name));break;case"enabled":x=[...x].sort((y,I)=>{const E=l.value.includes(y.key),R=l.value.includes(I.key);return E&&!R?-1:!E&&R?1:y.name.localeCompare(I.name)});break;case"group":default:x=[...x].sort((y,I)=>{const E=y.serviceGroup??"未分组",R=I.serviceGroup??"未分组";return E!==R?E.localeCompare(R):y.name.localeCompare(I.name)});break}return x}),u=Xn(()=>{const x=new Map;return c.value.forEach(y=>{const I=y.serviceGroup??"未分组";x.has(I)||x.set(I,[]),x.get(I).push(y)}),new Map([...x.entries()].sort())}),h=Xn(()=>c.value.length);cr([l,u],()=>{I9(()=>{for(const[x,y]of u.value)d(x,y)})},{flush:"post",deep:!1});const g=x=>l.value.includes(x),f=(x,y)=>{y.stopPropagation();const E=y.target.checked;if(!x){console.error("toolKey is undefined, cannot proceed");return}E?l.value.includes(x)||(l.value=[...l.value,x]):l.value=l.value.filter(R=>R!==x)},m=x=>x.filter(y=>l.value.includes(y.key)),v=x=>x.length>0&&x.every(y=>l.value.includes(y.key)),_=x=>{const y=m(x).length;return y>0&&y