@loop_ouroboros/mcp-hub-lite 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +405 -331
  3. package/dist/client/assets/{HomeView-Bi2bkUKf.js → HomeView-DplI3V-h.js} +1 -1
  4. package/dist/client/assets/{ResourceDetailView-DyuSovH9.js → ResourceDetailView-CeHPn99Y.js} +1 -1
  5. package/dist/client/assets/ResourcesView-C1ObRhYS.js +1 -0
  6. package/dist/client/assets/{ServerDashboard-BGyyZAti.js → ServerDashboard-D7wG4Gvt.js} +1 -1
  7. package/dist/client/assets/ServerDetail-G23phOcJ.js +2 -0
  8. package/dist/client/assets/{ServerListView-yQPVJFHG.js → ServerListView-BFiZLtPO.js} +1 -1
  9. package/dist/client/assets/{ServerStatusTags.vue_vue_type_script_setup_true_lang-C8gQlxGE.js → ServerStatusTags.vue_vue_type_script_setup_true_lang-Deb_SbFw.js} +1 -1
  10. package/dist/client/assets/SettingsView-QBFLZ6fP.js +1 -0
  11. package/dist/client/assets/ToolCallDialog-DYS-ADCL.js +1 -0
  12. package/dist/client/assets/ToolsView-DYwgtm7W.js +1 -0
  13. package/dist/client/assets/_baseClone-DQno9YO3.js +1 -0
  14. package/dist/client/assets/{el-form-item-DfWq_kSy.js → el-form-item-DF0zzQdH.js} +2 -2
  15. package/dist/client/assets/el-input-C_p2Qw42.js +1 -0
  16. package/dist/client/assets/el-loading-BaenpNzU.js +1 -0
  17. package/dist/client/assets/el-overlay-MbIUXSQ7.js +1 -0
  18. package/dist/client/assets/el-radio-group-COnCjCcz.js +1 -0
  19. package/dist/client/assets/el-skeleton-item-qj0eQP4s.js +1 -0
  20. package/dist/client/assets/el-switch-BZbXqB3_.js +1 -0
  21. package/dist/client/assets/el-tab-pane-w7RltRLd.js +1 -0
  22. package/dist/client/assets/el-table-column-OD8zhFcD.js +1 -0
  23. package/dist/client/assets/index-DwhULJXZ.js +2 -0
  24. package/dist/client/assets/{index-Bzz3tYbS.css → index-UtsV0Cvh.css} +1 -1
  25. package/dist/client/assets/{omit-BIIebEYo.js → omit-BAJQlviJ.js} +1 -1
  26. package/dist/client/assets/raf-B1Ry7ruA.js +1 -0
  27. package/dist/client/assets/{vue-vendor-Dwcr0jep.js → vue-vendor-ClSvefnQ.js} +1 -1
  28. package/dist/client/index.html +3 -3
  29. package/dist/server/shared/models/constants.d.ts +5 -0
  30. package/dist/server/shared/models/constants.d.ts.map +1 -1
  31. package/dist/server/shared/models/constants.js +4 -0
  32. package/dist/server/shared/models/server.model.d.ts +14 -0
  33. package/dist/server/shared/models/server.model.d.ts.map +1 -1
  34. package/dist/server/shared/models/server.model.js +27 -4
  35. package/dist/server/src/api/mcp/gateway.d.ts +10 -6
  36. package/dist/server/src/api/mcp/gateway.d.ts.map +1 -1
  37. package/dist/server/src/api/mcp/gateway.js +235 -69
  38. package/dist/server/src/api/web/sessions.d.ts +1 -27
  39. package/dist/server/src/api/web/sessions.d.ts.map +1 -1
  40. package/dist/server/src/api/web/sessions.js +8 -97
  41. package/dist/server/src/app.d.ts.map +1 -1
  42. package/dist/server/src/app.js +5 -0
  43. package/dist/server/src/cli/commands/status.js +39 -1
  44. package/dist/server/src/cli/commands/use-guide.d.ts +0 -8
  45. package/dist/server/src/cli/commands/use-guide.d.ts.map +1 -1
  46. package/dist/server/src/cli/commands/use-guide.js +28 -170
  47. package/dist/server/src/cli/server.d.ts +10 -0
  48. package/dist/server/src/cli/server.d.ts.map +1 -1
  49. package/dist/server/src/cli/server.js +31 -1
  50. package/dist/server/src/server/dev-server.js +2 -0
  51. package/dist/server/src/server/runner.d.ts.map +1 -1
  52. package/dist/server/src/server/runner.js +2 -0
  53. package/dist/server/src/services/connection/connection-manager.d.ts +2 -0
  54. package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -1
  55. package/dist/server/src/services/connection/connection-manager.js +14 -7
  56. package/dist/server/src/services/gateway/gateway.service.d.ts +13 -0
  57. package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -1
  58. package/dist/server/src/services/gateway/gateway.service.js +72 -0
  59. package/dist/server/src/services/gateway/global-transport.d.ts +20 -10
  60. package/dist/server/src/services/gateway/global-transport.d.ts.map +1 -1
  61. package/dist/server/src/services/gateway/global-transport.js +50 -34
  62. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -1
  63. package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +22 -6
  64. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -1
  65. package/dist/server/src/services/gateway/request-handlers/resources-handler.js +5 -1
  66. package/dist/server/src/services/gateway/session-manager.d.ts +101 -0
  67. package/dist/server/src/services/gateway/session-manager.d.ts.map +1 -0
  68. package/dist/server/src/services/gateway/session-manager.js +256 -0
  69. package/dist/server/src/services/hub-tools/resource-generator.d.ts +1 -1
  70. package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -1
  71. package/dist/server/src/services/hub-tools/resource-generator.js +11 -9
  72. package/dist/server/src/services/hub-tools.service.d.ts.map +1 -1
  73. package/dist/server/src/services/hub-tools.service.js +3 -1
  74. package/dist/server/src/utils/json-utils.d.ts +9 -0
  75. package/dist/server/src/utils/json-utils.d.ts.map +1 -1
  76. package/dist/server/src/utils/json-utils.js +19 -0
  77. package/dist/server/src/utils/logger/index.d.ts +1 -1
  78. package/dist/server/src/utils/logger/index.d.ts.map +1 -1
  79. package/dist/server/src/utils/logger/index.js +1 -1
  80. package/dist/server/src/utils/logger/log-context.d.ts +1 -0
  81. package/dist/server/src/utils/logger/log-context.d.ts.map +1 -1
  82. package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -1
  83. package/dist/server/src/utils/logger/log-formatter.js +25 -11
  84. package/dist/server/src/utils/logger/log-output.d.ts +17 -1
  85. package/dist/server/src/utils/logger/log-output.d.ts.map +1 -1
  86. package/dist/server/src/utils/logger/log-output.js +46 -40
  87. package/dist/server/src/utils/logger/logger.d.ts.map +1 -1
  88. package/dist/server/src/utils/logger/logger.js +18 -2
  89. package/dist/server/src/utils/request-context.d.ts +8 -70
  90. package/dist/server/src/utils/request-context.d.ts.map +1 -1
  91. package/dist/server/src/utils/request-context.js +11 -70
  92. package/dist/server/tests/unit/config/config.schema.test.js +2 -1
  93. package/dist/server/tests/unit/server/runner.test.js +14 -7
  94. package/dist/server/tests/unit/services/gateway-session-mode.test.d.ts +2 -0
  95. package/dist/server/tests/unit/services/gateway-session-mode.test.d.ts.map +1 -0
  96. package/dist/server/tests/unit/services/gateway-session-mode.test.js +174 -0
  97. package/dist/server/tests/unit/services/hub-tools.service.test.js +4 -4
  98. package/dist/server/tests/unit/utils/config.test.js +14 -7
  99. package/dist/server/tests/unit/utils/log-output.test.d.ts +2 -0
  100. package/dist/server/tests/unit/utils/log-output.test.d.ts.map +1 -0
  101. package/dist/server/tests/unit/utils/log-output.test.js +198 -0
  102. package/dist/server/vitest.config.d.ts.map +1 -1
  103. package/dist/server/vitest.config.js +0 -2
  104. package/package.json +1 -1
  105. package/dist/client/assets/ResourcesView-CU0VbNy5.js +0 -1
  106. package/dist/client/assets/ServerDetail-bcQ8BVXR.js +0 -2
  107. package/dist/client/assets/SettingsView-B1DxbFP3.js +0 -1
  108. package/dist/client/assets/ToolCallDialog-DEapCO06.js +0 -1
  109. package/dist/client/assets/ToolsView-DA0u_bCw.js +0 -1
  110. package/dist/client/assets/_baseClone-B991Lvrt.js +0 -1
  111. package/dist/client/assets/el-input-5YzZrwir.js +0 -1
  112. package/dist/client/assets/el-loading-DE3FcxNH.js +0 -1
  113. package/dist/client/assets/el-overlay-BTeTueuN.js +0 -1
  114. package/dist/client/assets/el-radio-group-Y1E2bxIW.js +0 -1
  115. package/dist/client/assets/el-skeleton-item-DhgR50Jx.js +0 -1
  116. package/dist/client/assets/el-switch-fF--nMSD.js +0 -1
  117. package/dist/client/assets/el-tab-pane-rvS_KTwP.js +0 -1
  118. package/dist/client/assets/el-table-column-B1O8mY47.js +0 -1
  119. package/dist/client/assets/index-DkqV9kH4.js +0 -2
  120. package/dist/client/assets/raf-Cj-gATZv.js +0 -1
@@ -1 +1 @@
1
- import{u as s,E as t}from"./index-DkqV9kH4.js";import{t as a,j as n,h as c,A as l,C as i,O as _,a2 as f,x as u}from"./vue-vendor-Dwcr0jep.js";const d={class:"flex w-full h-full"},m={class:"flex-1 h-full overflow-hidden bg-gray-50 dark:bg-[#0f172a] relative transition-colors duration-300"},x=a({__name:"HomeView",setup(p){const o=s();return n(()=>{o.fetchServers()}),c(()=>o.error,e=>{e&&t.error(e)}),(e,h)=>{const r=f("router-view");return u(),l("div",d,[i("main",m,[_(r)])])}}});export{x as default};
1
+ import{u as s,E as t}from"./index-DwhULJXZ.js";import{t as a,j as n,h as c,A as l,C as i,O as _,a2 as f,x as u}from"./vue-vendor-ClSvefnQ.js";const d={class:"flex w-full h-full"},m={class:"flex-1 h-full overflow-hidden bg-gray-50 dark:bg-[#0f172a] relative transition-colors duration-300"},x=a({__name:"HomeView",setup(p){const o=s();return n(()=>{o.fetchServers()}),c(()=>o.error,e=>{e&&t.error(e)}),(e,h)=>{const r=f("router-view");return u(),l("div",d,[i("main",m,[_(r)])])}}});export{x as default};
@@ -1 +1 @@
1
- import{u as M,I as T,j as S,aM as $,b as O,Q as z,K as G,w as P}from"./index-DkqV9kH4.js";import{v as W}from"./el-loading-DE3FcxNH.js";import{E as F,b as H}from"./el-radio-group-Y1E2bxIW.js";import{t as K,aa as Q,c as d,r as x,j as J,A as r,C as t,O as l,G as u,u as s,$ as o,H as X,ac as Y,a0 as w,ab as Z,x as n}from"./vue-vendor-Dwcr0jep.js";import{_ as ee}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./event-BB_Ol6Sd.js";import"./omit-BIIebEYo.js";import"./_baseClone-B991Lvrt.js";const te={class:"resource-detail py-6 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto w-full h-full flex flex-col overflow-hidden"},oe={class:"flex items-center justify-between mb-6 shrink-0"},se={class:"flex items-center gap-4"},ae={class:"text-2xl font-bold text-gray-900 dark:text-white"},le={class:"flex-1 flex flex-col gap-6 overflow-hidden"},re={class:"bg-white dark:bg-[#1e1e1e] rounded-lg shadow p-6 shrink-0 border border-gray-200 dark:border-gray-700"},ne={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ce={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},ie={class:"font-mono text-sm break-all select-all"},de={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},ue={class:"font-mono text-sm"},fe={class:"md:col-span-2"},me={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},_e={class:"text-sm"},ve={class:"bg-white dark:bg-[#1e1e1e] rounded-lg shadow flex-1 flex flex-col overflow-hidden border border-gray-200 dark:border-gray-700"},pe={class:"px-6 py-4 border-b border-gray-200 dark:border-gray-700 flex justify-between items-center bg-gray-50 dark:bg-[#2d2d2d]"},be={class:"font-medium"},he={class:"flex gap-2"},ye={class:"flex-1 overflow-auto p-6 bg-gray-50 dark:bg-[#0f172a]"},ge={key:0,class:"h-full flex items-center justify-center text-gray-400"},xe={key:1,class:"h-full flex flex-col items-center justify-center text-red-500"},we={key:2,class:"h-full"},ke={key:0,class:"h-full"},je={key:0,class:"h-full flex items-center justify-center"},Re=["src"],Ce={key:1,class:"h-full"},Ve=["srcdoc"],Be={key:2,class:"bg-white dark:bg-[#1e1e1e] p-4 rounded shadow-sm h-full overflow-auto font-mono text-sm whitespace-pre-wrap"},Ue={key:1,class:"h-full"},Ee={class:"bg-gray-900 text-gray-100 p-4 rounded-lg h-full overflow-auto font-mono text-sm"},Ae=K({__name:"ResourceDetailView",setup(De){const m=Y(),E=Z(),A=M(),{t:c}=Q(),V=d(()=>{const e=m.params.name;return e.startsWith("hub://")&&e.replace("hub://","").split("/")[1]||e}),k=d(()=>m.query.uri),B=d(()=>{if(m.query.name)return m.query.name;const e=m.query.uri;if(e){const i=e.split("/"),a=i[i.length-1];if(a&&a.length>0)return a}return"Unknown Resource"}),_=d(()=>m.query.mimeType||"application/octet-stream"),h=x(!1),y=x(null),v=x(null),j=x("preview"),U=d(()=>_.value.startsWith("image/")),D=d(()=>_.value==="text/html;profile=mcp-app"),g=d(()=>{if(!v.value)return"";const e=v.value;return e&&typeof e=="object"&&"text"in e&&typeof e.text=="string"?e.text:e&&typeof e=="object"&&"blob"in e?"[Binary Data]":""}),N=d(()=>{if(!U.value||!v.value)return"";const e=v.value;return e&&typeof e=="object"&&"blob"in e&&typeof e.blob=="string"?`data:${_.value};base64,${e.blob}`:""});function q(){E.back()}async function I(){h.value=!0,y.value=null;try{v.value=await A.readResource(V.value,k.value)}catch(e){y.value=e.message||"Failed to load resource content"}finally{h.value=!1}}function L(){const e=document.createElement("a"),i=new Blob([g.value],{type:_.value}),a=v.value;if(a&&typeof a=="object"&&"blob"in a&&typeof a.blob=="string"){const f=atob(a.blob),b=new Array(f.length);for(let p=0;p<f.length;p++)b[p]=f.charCodeAt(p);const R=new Uint8Array(b),C=new Blob([R],{type:_.value});e.href=URL.createObjectURL(C)}else e.href=URL.createObjectURL(i);e.download=B.value,document.body.appendChild(e),e.click(),document.body.removeChild(e)}return J(()=>{k.value&&I()}),(e,i)=>{const a=S,f=O,b=H,R=F,C=W;return n(),r("div",te,[t("div",oe,[t("div",se,[l(a,{icon:s(T),plain:"",onClick:q,class:"shrink-0"},{default:u(()=>[w(o(s(c)("action.back")),1)]),_:1},8,["icon"]),t("h2",ae," Resource Details: "+o(B.value),1)])]),X((n(),r("div",le,[t("div",re,[t("div",ne,[t("div",null,[t("div",ce,o(s(c)("common.uri")),1),t("div",ie,o(k.value),1)]),t("div",null,[t("div",de,o(s(c)("common.mimeType")),1),t("div",ue,o(_.value),1)]),t("div",fe,[t("div",me,o(s(c)("resources.server")),1),t("div",_e,o(V.value),1)])])]),t("div",ve,[t("div",pe,[t("div",be,o(s(c)("resources.contentPreview")),1),t("div",he,[l(R,{modelValue:j.value,"onUpdate:modelValue":i[0]||(i[0]=p=>j.value=p),size:"small"},{default:u(()=>[l(b,{value:"preview"},{default:u(()=>[l(f,{class:"mr-1"},{default:u(()=>[l(s(z))]),_:1}),w(" "+o(s(c)("resources.preview")),1)]),_:1}),l(b,{value:"source"},{default:u(()=>[l(f,{class:"mr-1"},{default:u(()=>[l(s(G))]),_:1}),w(" "+o(s(c)("resources.source")),1)]),_:1})]),_:1},8,["modelValue"]),l(a,{size:"small",icon:s($),onClick:L},{default:u(()=>[w(o(s(c)("resources.download")),1)]),_:1},8,["icon"])])]),t("div",ye,[h.value?(n(),r("div",ge,o(s(c)("resources.loadingContent")),1)):y.value?(n(),r("div",xe,[l(f,{class:"text-4xl mb-2"},{default:u(()=>[l(s(P))]),_:1}),t("div",null,o(y.value),1)])):(n(),r("div",we,[j.value==="preview"?(n(),r("div",ke,[U.value?(n(),r("div",je,[t("img",{src:N.value,class:"max-w-full max-h-full object-contain rounded shadow-lg"},null,8,Re)])):D.value?(n(),r("div",Ce,[t("iframe",{srcdoc:g.value,sandbox:"allow-scripts allow-same-origin",class:"w-full h-full border-0 rounded"},null,8,Ve)])):(n(),r("div",Be,o(g.value),1))])):(n(),r("div",Ue,[t("pre",Ee,[t("code",null,o(g.value),1)])]))]))])])])),[[C,h.value]])])}}}),Oe=ee(Ae,[["__scopeId","data-v-f2e8d7ba"]]);export{Oe as default};
1
+ import{u as I,q as M,j as S,aG as $,b as G,F as O,y as z,w as F}from"./index-DwhULJXZ.js";import{v as P}from"./el-loading-BaenpNzU.js";import{E as W,b as H}from"./el-radio-group-COnCjCcz.js";import{t as J,aa as K,c as d,r as x,j as Q,A as r,C as t,O as l,G as u,u as s,$ as o,H as X,ac as Y,a0 as w,ab as Z,x as n}from"./vue-vendor-ClSvefnQ.js";import{_ as ee}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./event-BB_Ol6Sd.js";import"./omit-BAJQlviJ.js";import"./_baseClone-DQno9YO3.js";const te={class:"resource-detail py-6 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto w-full h-full flex flex-col overflow-hidden"},oe={class:"flex items-center justify-between mb-6 shrink-0"},se={class:"flex items-center gap-4"},ae={class:"text-2xl font-bold text-gray-900 dark:text-white"},le={class:"flex-1 flex flex-col gap-6 overflow-hidden"},re={class:"bg-white dark:bg-[#1e1e1e] rounded-lg shadow p-6 shrink-0 border border-gray-200 dark:border-gray-700"},ne={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ce={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},ie={class:"font-mono text-sm break-all select-all"},de={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},ue={class:"font-mono text-sm"},fe={class:"md:col-span-2"},me={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},_e={class:"text-sm"},ve={class:"bg-white dark:bg-[#1e1e1e] rounded-lg shadow flex-1 flex flex-col overflow-hidden border border-gray-200 dark:border-gray-700"},pe={class:"px-6 py-4 border-b border-gray-200 dark:border-gray-700 flex justify-between items-center bg-gray-50 dark:bg-[#2d2d2d]"},be={class:"font-medium"},he={class:"flex gap-2"},ye={class:"flex-1 overflow-auto p-6 bg-gray-50 dark:bg-[#0f172a]"},ge={key:0,class:"h-full flex items-center justify-center text-gray-400"},xe={key:1,class:"h-full flex flex-col items-center justify-center text-red-500"},we={key:2,class:"h-full"},ke={key:0,class:"h-full"},je={key:0,class:"h-full flex items-center justify-center"},Re=["src"],Ce={key:1,class:"h-full"},Ve=["srcdoc"],Be={key:2,class:"bg-white dark:bg-[#1e1e1e] p-4 rounded shadow-sm h-full overflow-auto font-mono text-sm whitespace-pre-wrap"},Ue={key:1,class:"h-full"},Ee={class:"bg-gray-900 text-gray-100 p-4 rounded-lg h-full overflow-auto font-mono text-sm"},qe=J({__name:"ResourceDetailView",setup(Ae){const m=Y(),E=Z(),q=I(),{t:c}=K(),V=d(()=>{const e=m.params.name;return e.startsWith("hub://")&&e.replace("hub://","").split("/")[1]||e}),k=d(()=>m.query.uri),B=d(()=>{if(m.query.name)return m.query.name;const e=m.query.uri;if(e){const i=e.split("/"),a=i[i.length-1];if(a&&a.length>0)return a}return"Unknown Resource"}),_=d(()=>m.query.mimeType||"application/octet-stream"),h=x(!1),y=x(null),v=x(null),j=x("preview"),U=d(()=>_.value.startsWith("image/")),A=d(()=>_.value==="text/html;profile=mcp-app"),g=d(()=>{if(!v.value)return"";const e=v.value;return e&&typeof e=="object"&&"text"in e&&typeof e.text=="string"?e.text:e&&typeof e=="object"&&"blob"in e?"[Binary Data]":""}),D=d(()=>{if(!U.value||!v.value)return"";const e=v.value;return e&&typeof e=="object"&&"blob"in e&&typeof e.blob=="string"?`data:${_.value};base64,${e.blob}`:""});function N(){E.back()}async function L(){h.value=!0,y.value=null;try{v.value=await q.readResource(V.value,k.value)}catch(e){y.value=e.message||"Failed to load resource content"}finally{h.value=!1}}function T(){const e=document.createElement("a"),i=new Blob([g.value],{type:_.value}),a=v.value;if(a&&typeof a=="object"&&"blob"in a&&typeof a.blob=="string"){const f=atob(a.blob),b=new Array(f.length);for(let p=0;p<f.length;p++)b[p]=f.charCodeAt(p);const R=new Uint8Array(b),C=new Blob([R],{type:_.value});e.href=URL.createObjectURL(C)}else e.href=URL.createObjectURL(i);e.download=B.value,document.body.appendChild(e),e.click(),document.body.removeChild(e)}return Q(()=>{k.value&&L()}),(e,i)=>{const a=S,f=G,b=H,R=W,C=P;return n(),r("div",te,[t("div",oe,[t("div",se,[l(a,{icon:s(M),plain:"",onClick:N,class:"shrink-0"},{default:u(()=>[w(o(s(c)("action.back")),1)]),_:1},8,["icon"]),t("h2",ae," Resource Details: "+o(B.value),1)])]),X((n(),r("div",le,[t("div",re,[t("div",ne,[t("div",null,[t("div",ce,o(s(c)("common.uri")),1),t("div",ie,o(k.value),1)]),t("div",null,[t("div",de,o(s(c)("common.mimeType")),1),t("div",ue,o(_.value),1)]),t("div",fe,[t("div",me,o(s(c)("resources.server")),1),t("div",_e,o(V.value),1)])])]),t("div",ve,[t("div",pe,[t("div",be,o(s(c)("resources.contentPreview")),1),t("div",he,[l(R,{modelValue:j.value,"onUpdate:modelValue":i[0]||(i[0]=p=>j.value=p),size:"small"},{default:u(()=>[l(b,{value:"preview"},{default:u(()=>[l(f,{class:"mr-1"},{default:u(()=>[l(s(O))]),_:1}),w(" "+o(s(c)("resources.preview")),1)]),_:1}),l(b,{value:"source"},{default:u(()=>[l(f,{class:"mr-1"},{default:u(()=>[l(s(z))]),_:1}),w(" "+o(s(c)("resources.source")),1)]),_:1})]),_:1},8,["modelValue"]),l(a,{size:"small",icon:s($),onClick:T},{default:u(()=>[w(o(s(c)("resources.download")),1)]),_:1},8,["icon"])])]),t("div",ye,[h.value?(n(),r("div",ge,o(s(c)("resources.loadingContent")),1)):y.value?(n(),r("div",xe,[l(f,{class:"text-4xl mb-2"},{default:u(()=>[l(s(F))]),_:1}),t("div",null,o(y.value),1)])):(n(),r("div",we,[j.value==="preview"?(n(),r("div",ke,[U.value?(n(),r("div",je,[t("img",{src:D.value,class:"max-w-full max-h-full object-contain rounded shadow-lg"},null,8,Re)])):A.value?(n(),r("div",Ce,[t("iframe",{srcdoc:g.value,sandbox:"allow-scripts allow-same-origin",class:"w-full h-full border-0 rounded"},null,8,Ve)])):(n(),r("div",Be,o(g.value),1))])):(n(),r("div",Ue,[t("pre",Ee,[t("code",null,o(g.value),1)])]))]))])])])),[[C,h.value]])])}}}),Ge=ee(qe,[["__scopeId","data-v-f2e8d7ba"]]);export{Ge as default};
@@ -0,0 +1 @@
1
+ import{u as T,I as $,b as E,R as V,y as N,j as B}from"./index-DwhULJXZ.js";import{a as j,b as z}from"./el-table-column-OD8zhFcD.js";import{E as I,a as L}from"./el-input-C_p2Qw42.js";import{t as S,r as _,j as q,c as A,A as h,C as l,$ as r,O as s,u,G as o,y as O,a0 as b,ab as D,x as m}from"./vue-vendor-ClSvefnQ.js";import{_ as F}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./_baseClone-DQno9YO3.js";import"./omit-BAJQlviJ.js";import"./event-BB_Ol6Sd.js";import"./raf-B1Ry7ruA.js";const G={class:"resources-view py-6 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto w-full h-full flex flex-col overflow-hidden bg-gray-50 dark:bg-[#0f172a] transition-colors duration-300"},M={class:"mb-6 shrink-0"},P={class:"text-2xl font-semibold text-gray-900 dark:text-white mb-4"},Q={class:"relative"},U={class:"flex-1 overflow-y-auto custom-scrollbar space-y-4 pr-2"},H={key:0,class:"flex flex-col items-center justify-center py-12 text-gray-400"},J={class:"flex items-center gap-2"},K=["title"],W=["title"],X=S({__name:"ResourcesView",setup(Y){const y=D(),v=T(),c=_(""),d=_({});q(async()=>{await w()});async function w(){try{d.value=await v.fetchAllResources()}catch(e){console.error("Failed to load resources:",e)}}const p=A(()=>{const e=[];for(const[,n]of Object.entries(d.value))e.push(...n);if(!c.value)return e;const a=c.value.toLowerCase();return e.filter(n=>n.name.toLowerCase().includes(a)||n.uri.toLowerCase().includes(a))});function x(e){const a=e.replace("hub://","").split("/");return a.length>=2?a[1]??"":""}function g(e){const a=e.serverName||x(e.uri);y.push({name:"resource-detail",params:{name:a},query:{uri:e.uri,name:e.name,mimeType:e.mimeType}})}return(e,a)=>{const n=I,f=E,i=z,k=L,R=B,C=j;return m(),h("div",G,[l("div",M,[l("h2",P,r(e.$t("resources.title")),1),l("div",Q,[s(n,{modelValue:c.value,"onUpdate:modelValue":a[0]||(a[0]=t=>c.value=t),placeholder:e.$t("resources.searchPlaceholder"),class:"w-full",size:"large","prefix-icon":u($),clearable:""},null,8,["modelValue","placeholder","prefix-icon"])])]),l("div",U,[p.value.length===0?(m(),h("div",H,[s(f,{size:48,class:"mb-4 opacity-50"},{default:o(()=>[s(u(V))]),_:1}),l("p",null,r(e.$t("resources.noResources")),1)])):(m(),O(C,{key:1,data:p.value,style:{width:"100%"},class:"custom-table"},{default:o(()=>[s(i,{prop:"name",label:e.$t("common.name"),"min-width":"350"},{default:o(({row:t})=>[l("div",J,[s(f,null,{default:o(()=>[s(u(N))]),_:1}),l("span",{class:"font-medium truncate",title:t.name},r(t.name),9,K)])]),_:1},8,["label"]),s(i,{prop:"uri",label:e.$t("common.uri"),"min-width":"350"},{default:o(({row:t})=>[l("span",{class:"truncate block",title:t.uri},r(t.uri),9,W)]),_:1},8,["label"]),s(i,{prop:"mimeType",label:e.$t("common.mimeType"),width:"180"},{default:o(({row:t})=>[s(k,{size:"small",type:"success",effect:"plain"},{default:o(()=>[b(r(t.mimeType||"unknown"),1)]),_:2},1024)]),_:1},8,["label"]),s(i,{label:"",width:"100",align:"right"},{default:o(({row:t})=>[s(R,{size:"small",plain:"",onClick:Z=>g(t)},{default:o(()=>[b(r(e.$t("action.view")),1)]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]))])])}}}),ie=F(X,[["__scopeId","data-v-f45ae935"]]);export{ie as default};
@@ -1 +1 @@
1
- import{u as y,a as $,i as E,b as D,c as g,w as f,v as I}from"./index-DkqV9kH4.js";import{E as N,a as A}from"./el-skeleton-item-DhgR50Jx.js";import{f as V}from"./ServerStatusTags.vue_vue_type_script_setup_true_lang-C8gQlxGE.js";import{t as v,r as B,j as z,h as p,c as L,A as n,C as t,$ as s,u as d,O as l,G as h,P as T,ai as j,V as O,x as a,y as b,U as F,J as G,n as H}from"./vue-vendor-Dwcr0jep.js";import{_ as J}from"./_plugin-vue_export-helper-DlAUqK2U.js";import M from"./ServerDetail-bcQ8BVXR.js";import"./el-tab-pane-rvS_KTwP.js";import"./raf-Cj-gATZv.js";import"./el-overlay-BTeTueuN.js";import"./event-BB_Ol6Sd.js";import"./el-input-5YzZrwir.js";import"./omit-BIIebEYo.js";import"./_baseClone-B991Lvrt.js";import"./el-switch-fF--nMSD.js";import"./el-radio-group-Y1E2bxIW.js";import"./el-table-column-B1O8mY47.js";import"./ToolCallDialog-DEapCO06.js";const P={class:"dashboard py-6 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto w-full h-full flex flex-col overflow-hidden transition-colors duration-300"},U={class:"text-2xl font-semibold text-gray-900 dark:text-white mb-6 shrink-0"},W={key:0,class:"grid grid-cols-3 gap-6 mb-8 shrink-0"},q={class:"p-6 rounded-xl border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#1e293b] h-32"},K={key:1,class:"grid grid-cols-3 gap-6 mb-8 shrink-0"},Q={class:"stat-card bg-white dark:bg-[#1e293b] p-6 rounded-xl border border-gray-200 dark:border-gray-700 shadow-sm transition-colors duration-300"},R={class:"text-gray-500 dark:text-gray-400 text-sm mb-2"},X={class:"text-4xl font-bold text-gray-900 dark:text-white"},Y={class:"stat-card bg-white dark:bg-[#1e293b] p-6 rounded-xl border border-gray-200 dark:border-gray-700 shadow-sm transition-colors duration-300"},Z={class:"text-gray-500 dark:text-gray-400 text-sm mb-2"},tt={class:"text-4xl font-bold text-gray-900 dark:text-white"},et={class:"stat-card bg-white dark:bg-[#1e293b] p-6 rounded-xl border border-gray-200 dark:border-gray-700 shadow-sm transition-colors duration-300"},rt={class:"text-gray-500 dark:text-gray-400 text-sm mb-2"},st={class:"text-4xl font-bold text-red-500"},at={class:"activity-section bg-white dark:bg-[#1e293b] rounded-xl border border-gray-200 dark:border-gray-700 flex flex-col flex-1 min-h-0 shadow-sm transition-colors duration-300"},ot={class:"p-4 border-b border-gray-200 dark:border-gray-700"},it={class:"text-lg font-medium text-gray-900 dark:text-white"},nt={class:"flex items-center gap-2 mb-1"},dt={class:"font-medium text-gray-700 dark:text-gray-200"},lt={class:"text-xs text-gray-400 ml-auto"},ct={class:"text-sm text-gray-600 dark:text-gray-400 font-mono pl-6 break-words"},mt={key:0,class:"flex flex-col items-center justify-center h-full text-gray-400 dark:text-gray-500"},ut=v({__name:"DashboardView",setup(k){const e=y();$();const c=B(null);z(()=>{!e.loading&&e.servers.length>0&&e.fetchAllLogs()}),p(()=>e.loading,r=>{!r&&e.servers.length>0&&e.fetchAllLogs()});const u=L(()=>{const r=[];return e.servers.forEach(o=>{o.logs.forEach((i,_)=>{r.push({serverName:o.name,serverStatus:o.status,message:i.message,time:V(i.timestamp),timestamp:i.timestamp,originalIndex:_})})}),r.sort((o,i)=>o.timestamp-i.timestamp)});p(()=>u.value.length,()=>{H(()=>{c.value&&(c.value.scrollTop=c.value.scrollHeight)})});function w(r){switch(r){case"online":return I;case"offline":return g;case"stopping":return g;case"error":return f;case"starting":return f;default:return g}}function S(r){switch(r){case"online":return"text-green-500";case"offline":return"text-gray-400";case"stopping":return"text-gray-400";case"error":return"text-yellow-500";case"starting":return"text-yellow-500";default:return"text-gray-400"}}return(r,o)=>{const i=N,_=A,x=D;return a(),n("div",P,[t("h2",U,s(r.$t("dashboard.title")),1),d(e).loading&&d(e).servers.length===0?(a(),n("div",W,[l(_,{animated:"",count:3,class:"w-full h-full"},{template:h(()=>[t("div",q,[l(i,{variant:"text",style:{width:"30%"},class:"mb-2"}),l(i,{variant:"h1",style:{width:"50%"}})])]),_:1})])):(a(),n("div",K,[t("div",Q,[t("div",R,s(r.$t("dashboard.totalServers")),1),t("div",X,s(d(e).stats.total),1)]),t("div",Y,[t("div",Z,s(r.$t("dashboard.running")),1),t("div",tt,s(d(e).stats.online),1)]),t("div",et,[t("div",rt,s(r.$t("dashboard.errors")),1),t("div",st,s(d(e).stats.errors),1)])])),t("div",at,[t("div",ot,[t("h3",it,s(r.$t("dashboard.recentActivity")),1)]),t("div",{ref_key:"activityContainer",ref:c,class:"p-4 overflow-y-auto flex-1 custom-scrollbar"},[(a(!0),n(T,null,j(u.value,(m,C)=>(a(),n("div",{key:C,class:"activity-item mb-4 pb-4 border-b border-gray-100 dark:border-gray-700/50 last:border-0"},[t("div",nt,[l(x,{size:16,class:G(S(m.serverStatus))},{default:h(()=>[(a(),b(F(w(m.serverStatus))))]),_:2},1032,["class"]),t("span",dt,s(m.serverName),1),t("span",lt,s(m.time),1)]),t("div",ct,s(m.message),1)]))),128)),u.value.length===0?(a(),n("div",mt,[l(x,{size:40,class:"mb-2 opacity-50"},{default:h(()=>[l(d(E))]),_:1}),o[0]||(o[0]=t("span",null,"No recent activity",-1))])):O("",!0)],512)])])}}}),_t=J(ut,[["__scopeId","data-v-37e9c2c3"]]),gt={class:"h-full w-full"},Vt=v({__name:"ServerDashboard",setup(k){const e=y();return(c,u)=>(a(),n("div",gt,[d(e).selectedServerId?(a(),b(M,{key:1})):(a(),b(_t,{key:0}))]))}});export{Vt as default};
1
+ import{u as y,a as $,i as E,b as D,c as g,w as f,v as I}from"./index-DwhULJXZ.js";import{E as N,a as A}from"./el-skeleton-item-qj0eQP4s.js";import{f as V}from"./ServerStatusTags.vue_vue_type_script_setup_true_lang-Deb_SbFw.js";import{t as v,r as B,j as z,h as p,c as L,A as n,C as t,$ as s,u as d,O as l,G as h,P as T,ai as j,V as O,x as a,y as b,U as F,J as G,n as H}from"./vue-vendor-ClSvefnQ.js";import{_ as J}from"./_plugin-vue_export-helper-DlAUqK2U.js";import M from"./ServerDetail-G23phOcJ.js";import"./el-tab-pane-w7RltRLd.js";import"./raf-B1Ry7ruA.js";import"./el-overlay-MbIUXSQ7.js";import"./event-BB_Ol6Sd.js";import"./el-input-C_p2Qw42.js";import"./omit-BAJQlviJ.js";import"./_baseClone-DQno9YO3.js";import"./el-switch-BZbXqB3_.js";import"./el-radio-group-COnCjCcz.js";import"./el-table-column-OD8zhFcD.js";import"./ToolCallDialog-DYS-ADCL.js";const P={class:"dashboard py-6 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto w-full h-full flex flex-col overflow-hidden transition-colors duration-300"},U={class:"text-2xl font-semibold text-gray-900 dark:text-white mb-6 shrink-0"},W={key:0,class:"grid grid-cols-3 gap-6 mb-8 shrink-0"},q={class:"p-6 rounded-xl border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#1e293b] h-32"},K={key:1,class:"grid grid-cols-3 gap-6 mb-8 shrink-0"},Q={class:"stat-card bg-white dark:bg-[#1e293b] p-6 rounded-xl border border-gray-200 dark:border-gray-700 shadow-sm transition-colors duration-300"},R={class:"text-gray-500 dark:text-gray-400 text-sm mb-2"},X={class:"text-4xl font-bold text-gray-900 dark:text-white"},Y={class:"stat-card bg-white dark:bg-[#1e293b] p-6 rounded-xl border border-gray-200 dark:border-gray-700 shadow-sm transition-colors duration-300"},Z={class:"text-gray-500 dark:text-gray-400 text-sm mb-2"},tt={class:"text-4xl font-bold text-gray-900 dark:text-white"},et={class:"stat-card bg-white dark:bg-[#1e293b] p-6 rounded-xl border border-gray-200 dark:border-gray-700 shadow-sm transition-colors duration-300"},rt={class:"text-gray-500 dark:text-gray-400 text-sm mb-2"},st={class:"text-4xl font-bold text-red-500"},at={class:"activity-section bg-white dark:bg-[#1e293b] rounded-xl border border-gray-200 dark:border-gray-700 flex flex-col flex-1 min-h-0 shadow-sm transition-colors duration-300"},ot={class:"p-4 border-b border-gray-200 dark:border-gray-700"},it={class:"text-lg font-medium text-gray-900 dark:text-white"},nt={class:"flex items-center gap-2 mb-1"},dt={class:"font-medium text-gray-700 dark:text-gray-200"},lt={class:"text-xs text-gray-400 ml-auto"},ct={class:"text-sm text-gray-600 dark:text-gray-400 font-mono pl-6 break-words"},mt={key:0,class:"flex flex-col items-center justify-center h-full text-gray-400 dark:text-gray-500"},ut=v({__name:"DashboardView",setup(k){const e=y();$();const c=B(null);z(()=>{!e.loading&&e.servers.length>0&&e.fetchAllLogs()}),p(()=>e.loading,r=>{!r&&e.servers.length>0&&e.fetchAllLogs()});const u=L(()=>{const r=[];return e.servers.forEach(o=>{o.logs.forEach((i,_)=>{r.push({serverName:o.name,serverStatus:o.status,message:i.message,time:V(i.timestamp),timestamp:i.timestamp,originalIndex:_})})}),r.sort((o,i)=>o.timestamp-i.timestamp)});p(()=>u.value.length,()=>{H(()=>{c.value&&(c.value.scrollTop=c.value.scrollHeight)})});function w(r){switch(r){case"online":return I;case"offline":return g;case"stopping":return g;case"error":return f;case"starting":return f;default:return g}}function S(r){switch(r){case"online":return"text-green-500";case"offline":return"text-gray-400";case"stopping":return"text-gray-400";case"error":return"text-yellow-500";case"starting":return"text-yellow-500";default:return"text-gray-400"}}return(r,o)=>{const i=N,_=A,x=D;return a(),n("div",P,[t("h2",U,s(r.$t("dashboard.title")),1),d(e).loading&&d(e).servers.length===0?(a(),n("div",W,[l(_,{animated:"",count:3,class:"w-full h-full"},{template:h(()=>[t("div",q,[l(i,{variant:"text",style:{width:"30%"},class:"mb-2"}),l(i,{variant:"h1",style:{width:"50%"}})])]),_:1})])):(a(),n("div",K,[t("div",Q,[t("div",R,s(r.$t("dashboard.totalServers")),1),t("div",X,s(d(e).stats.total),1)]),t("div",Y,[t("div",Z,s(r.$t("dashboard.running")),1),t("div",tt,s(d(e).stats.online),1)]),t("div",et,[t("div",rt,s(r.$t("dashboard.errors")),1),t("div",st,s(d(e).stats.errors),1)])])),t("div",at,[t("div",ot,[t("h3",it,s(r.$t("dashboard.recentActivity")),1)]),t("div",{ref_key:"activityContainer",ref:c,class:"p-4 overflow-y-auto flex-1 custom-scrollbar"},[(a(!0),n(T,null,j(u.value,(m,C)=>(a(),n("div",{key:C,class:"activity-item mb-4 pb-4 border-b border-gray-100 dark:border-gray-700/50 last:border-0"},[t("div",nt,[l(x,{size:16,class:G(S(m.serverStatus))},{default:h(()=>[(a(),b(F(w(m.serverStatus))))]),_:2},1032,["class"]),t("span",dt,s(m.serverName),1),t("span",lt,s(m.time),1)]),t("div",ct,s(m.message),1)]))),128)),u.value.length===0?(a(),n("div",mt,[l(x,{size:40,class:"mb-2 opacity-50"},{default:h(()=>[l(d(E))]),_:1}),o[0]||(o[0]=t("span",null,"No recent activity",-1))])):O("",!0)],512)])])}}}),_t=J(ut,[["__scopeId","data-v-37e9c2c3"]]),gt={class:"h-full w-full"},Vt=v({__name:"ServerDashboard",setup(k){const e=y();return(c,u)=>(a(),n("div",gt,[d(e).selectedServerId?(a(),b(M,{key:1})):(a(),b(_t,{key:0}))]))}});export{Vt as default};
@@ -0,0 +1,2 @@
1
+ import{j as ue,q as Be,v as Ne,r as Se,n as Pe,k as le,p as ce,x as Fe,b as _e,y as He,E as k,z as Je,A as Le,B as qe,C as Me,D as We,F as Qe,u as Ce,a as Ge,G as Ze,s as Ue,H as Xe,t as Ye,o as Ke}from"./index-DwhULJXZ.js";import{E as je,a as et,b as tt}from"./el-tab-pane-w7RltRLd.js";import{t as ne,aa as se,c as G,A as h,C as a,O as l,u as f,G as v,$ as s,y as Q,V as H,a0 as V,x as u,r as F,h as ae,P as Z,ai as K,J as fe,n as at,aj as Ae,I as lt,Z as nt,ac as st,ab as Ve,ak as ot,k as ke}from"./vue-vendor-ClSvefnQ.js";import{a as De,E as be}from"./el-input-C_p2Qw42.js";import{_ as rt,a as Re}from"./ServerStatusTags.vue_vue_type_script_setup_true_lang-Deb_SbFw.js";import{a as Ie,b as Te,E as Ee}from"./el-overlay-MbIUXSQ7.js";import{E as ze,a as Oe}from"./el-switch-BZbXqB3_.js";import{E as it,a as ct}from"./el-radio-group-COnCjCcz.js";import{_ as he}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{E as ut,a as dt,b as mt}from"./el-table-column-OD8zhFcD.js";import{T as vt}from"./ToolCallDialog-DYS-ADCL.js";import"./raf-B1Ry7ruA.js";import"./event-BB_Ol6Sd.js";import"./omit-BAJQlviJ.js";import"./_baseClone-DQno9YO3.js";const ft={class:"flex items-center justify-between shrink-0"},pt={class:"flex items-center gap-4"},gt={class:"flex flex-col items-start gap-2"},ht={class:"flex items-center gap-2"},yt={class:"text-2xl font-bold text-gray-900 dark:text-white"},_t={class:"flex gap-2"},bt=ne({__name:"ServerDetailHeader",props:{server:{}},emits:["back","delete","restart-all","start-all","stop-all"],setup(r,{emit:D}){const o=r,m=D;se();const e=G(()=>o.server.rawV11Config?.instances?.length?o.server.rawV11Config.instances.length:o.server.instances?.length?o.server.instances.length:1),x=G(()=>e.value),c=G(()=>o.server.instances?.length?o.server.instances.filter(_=>_.status==="online").length:o.server.status==="online"?1:0),T=G(()=>o.server.instances?.length?o.server.instances.filter(_=>_.status!=="online").length:e.value>1?e.value-c.value:o.server.status!=="online"?1:0);function R(){m("back")}function U(){m("delete")}function t(){m("restart-all")}function p(){m("start-all")}function I(){m("stop-all")}return(_,y)=>{const g=ue,P=De;return u(),h("div",ft,[a("div",pt,[l(g,{icon:f(Be),plain:"",onClick:R,class:"shrink-0"},{default:v(()=>[V(s(_.$t("action.back")),1)]),_:1},8,["icon"]),a("div",gt,[a("div",ht,[a("h2",yt,s(r.server.name),1),r.server.version?(u(),Q(P,{key:0,size:"small",class:"ml-2"},{default:v(()=>[V(s(r.server.version),1)]),_:1})):H("",!0)]),l(rt,{server:r.server},null,8,["server"])])]),a("div",_t,[T.value>0?(u(),Q(g,{key:0,type:"success",icon:f(Ne),onClick:p},{default:v(()=>[V(s(_.$t("action.startAll"))+" ("+s(T.value)+") ",1)]),_:1},8,["icon"])):H("",!0),c.value>0?(u(),Q(g,{key:1,type:"primary",icon:f(Se),onClick:t},{default:v(()=>[V(s(_.$t("action.restartAll"))+" ("+s(x.value)+") ",1)]),_:1},8,["icon"])):H("",!0),c.value>0?(u(),Q(g,{key:2,type:"warning",icon:f(Pe),onClick:I},{default:v(()=>[V(s(_.$t("action.stopAll"))+" ("+s(c.value)+") ",1)]),_:1},8,["icon"])):H("",!0),l(g,{type:"danger",icon:f(le),onClick:U},{default:v(()=>[V(s(_.$t("action.deleteServer")),1)]),_:1},8,["icon"])])])}}}),xt={class:"config-template-form h-full flex flex-col min-h-0"},$t={class:"space-y-4 flex-1 overflow-y-auto min-h-0"},wt={class:"px-4"},kt={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},St={key:0,class:"px-4"},Ct={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Vt={key:1,class:"px-4"},Dt={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},It={key:2,class:"px-4"},Tt={class:"flex items-center justify-between mb-2"},Et={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Ut={key:0,class:"space-y-2"},At={class:"px-4"},Nt={class:"flex items-center justify-between mb-2"},jt={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Rt={key:0,class:"space-y-2"},zt={key:3,class:"px-4"},Ot={class:"flex items-center justify-between mb-2"},Bt={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Pt={key:0,class:"space-y-2"},Ft={class:"px-4"},Ht={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Jt={class:"px-4"},Lt={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},qt={key:4,class:"px-4"},Mt={class:"flex items-center justify-between mb-2"},Wt={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Qt={key:0,class:"flex gap-2 items-start"},Gt={class:"px-4"},Zt={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Xt={class:"flex gap-2 pt-4 pb-4 border-t border-gray-200 dark:border-gray-700 px-4"},Yt=ne({__name:"ConfigTemplateForm",props:{config:{}},emits:["update:template","save","edit-json"],setup(r,{emit:D}){const o=r,m=D;se();const e=F({...o.config,template:{...o.config.template,instanceSelectionStrategy:o.config.template.instanceSelectionStrategy||"random"}});let x=0,c=0;const T=F({}),R=F({});ae(()=>o.config,d=>{e.value={...d,template:{...d.template,instanceSelectionStrategy:d.template.instanceSelectionStrategy||"random"}},t(),p()},{immediate:!0});const U=G({get:()=>e.value?.template?.timeout?e.value.template.timeout/1e3:60,set:d=>{e.value&&(e.value.template.timeout=d*1e3)}});function t(){e.value?.template?.env&&(T.value={},Object.keys(e.value.template.env).forEach(d=>{T.value[d]=`env-${x++}`}))}function p(){e.value?.template?.headers&&(R.value={},Object.keys(e.value.template.headers).forEach(d=>{R.value[d]=`header-${c++}`}))}function I(){e.value.template.args||(e.value.template.args=[]),e.value.template.args.push(""),m("update:template",{...e.value.template})}function _(d){e.value.template.args?.splice(d,1),m("update:template",{...e.value.template})}function y(){e.value.template.env||(e.value.template.env={});const d=`NEW_VAR_${Object.keys(e.value.template.env).length}`;e.value.template.env[d]="",T.value[d]=`env-${x++}`,m("update:template",{...e.value.template})}function g(d){delete e.value.template.env[d],delete T.value[d],m("update:template",{...e.value.template})}function P(d,O){if(d===O)return;const i=e.value.template.env[d]||"",b=T.value[d]||`env-${x++}`;delete e.value.template.env[d],delete T.value[d],e.value.template.env[O]=i,T.value[O]=b,m("update:template",{...e.value.template})}function E(){e.value.template.headers||(e.value.template.headers={});const d=`NEW_HEADER_${Object.keys(e.value.template.headers).length}`;e.value.template.headers[d]="",R.value[d]=`header-${c++}`,m("update:template",{...e.value.template})}function oe(d){delete e.value.template.headers[d],delete R.value[d],m("update:template",{...e.value.template})}function re(d,O){if(d===O)return;const i=e.value.template.headers[d]||"",b=R.value[d]||`header-${c++}`;delete e.value.template.headers[d],delete R.value[d],e.value.template.headers[O]=i,R.value[O]=b,m("update:template",{...e.value.template})}function ie(){e.value.template.proxy?e.value.template.proxy=void 0:e.value.template.proxy={url:""},m("update:template",{...e.value.template})}function de(){const d={command:e.value.template.command,args:e.value.template.args,env:e.value.template.env,headers:e.value.template.headers,type:e.value.template.type,timeout:e.value.template.timeout,url:e.value.template.url,aggregatedTools:e.value.template.aggregatedTools,description:e.value.template.description,proxy:e.value.template.proxy,instanceSelectionStrategy:e.value.template.instanceSelectionStrategy};m("update:template",d),m("save")}function z(){m("edit-json")}return(d,O)=>{const i=ct,b=it,B=be,S=ue,q=ze,ee=Te,me=Ie;return u(),h("div",xt,[a("div",$t,[a("div",wt,[a("label",kt,s(d.$t("serverDetail.config.transport")),1),l(b,{modelValue:e.value.template.type,"onUpdate:modelValue":O[0]||(O[0]=M=>e.value.template.type=M),class:"flex gap-4"},{default:v(()=>[l(i,{value:"stdio"},{default:v(()=>[V(s(d.$t("serverDetail.config.transportStdio")),1)]),_:1}),l(i,{value:"sse"},{default:v(()=>[V(s(d.$t("serverDetail.config.transportSse")),1)]),_:1}),l(i,{value:"streamable-http"},{default:v(()=>[V(s(d.$t("serverDetail.config.transportHttp")),1)]),_:1})]),_:1},8,["modelValue"])]),e.value.template.type==="stdio"?(u(),h("div",St,[a("label",Ct,s(d.$t("serverDetail.config.executable")),1),l(B,{modelValue:e.value.template.command,"onUpdate:modelValue":O[1]||(O[1]=M=>e.value.template.command=M)},null,8,["modelValue"])])):(u(),h("div",Vt,[a("label",Dt,s(d.$t("serverDetail.config.url")),1),l(B,{modelValue:e.value.template.url,"onUpdate:modelValue":O[2]||(O[2]=M=>e.value.template.url=M)},null,8,["modelValue"])])),e.value.template.type==="stdio"?(u(),h("div",It,[a("div",Tt,[a("label",Et,s(d.$t("serverDetail.config.args")),1),l(S,{size:"small",icon:f(ce),onClick:I},{default:v(()=>[V(s(d.$t("serverDetail.config.addArg")),1)]),_:1},8,["icon"])]),e.value.template.args&&e.value.template.args.length>0?(u(),h("div",Ut,[(u(!0),h(Z,null,K(e.value.template.args,(M,W)=>(u(),h("div",{key:W,class:"flex gap-2 px-4"},[l(B,{modelValue:e.value.template.args[W],"onUpdate:modelValue":X=>e.value.template.args[W]=X,class:"flex-1"},null,8,["modelValue","onUpdate:modelValue"]),l(S,{size:"small",type:"danger",icon:f(le),onClick:X=>_(W)},null,8,["icon","onClick"])]))),128))])):H("",!0)])):H("",!0),a("div",At,[a("div",Nt,[a("label",jt,s(d.$t("serverDetail.config.env")),1),l(S,{size:"small",icon:f(ce),onClick:y},{default:v(()=>[V(s(d.$t("serverDetail.config.addEnv")),1)]),_:1},8,["icon"])]),e.value.template.env&&Object.keys(e.value.template.env).length>0?(u(),h("div",Rt,[(u(!0),h(Z,null,K(e.value.template.env,(M,W)=>(u(),h("div",{key:T.value[W],class:"flex gap-2 items-start px-4",style:{display:"flex",gap:"0.5rem",width:"100%"}},[l(B,{"model-value":W,style:{width:"30%","min-width":"150px"},placeholder:d.$t("addServer.keyPlaceholder"),"onUpdate:modelValue":X=>P(W,X)},null,8,["model-value","placeholder","onUpdate:modelValue"]),l(B,{modelValue:e.value.template.env[W],"onUpdate:modelValue":X=>e.value.template.env[W]=X,style:{flex:"1"},placeholder:d.$t("addServer.valuePlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),l(S,{size:"small",type:"danger",icon:f(le),onClick:X=>g(W)},null,8,["icon","onClick"])]))),128))])):H("",!0)]),e.value.template.type!=="stdio"?(u(),h("div",zt,[a("div",Ot,[a("label",Bt,s(d.$t("serverDetail.config.headers")),1),l(S,{size:"small",icon:f(ce),onClick:E},{default:v(()=>[V(s(d.$t("serverDetail.config.addHeader")),1)]),_:1},8,["icon"])]),e.value.template.headers&&Object.keys(e.value.template.headers).length>0?(u(),h("div",Pt,[(u(!0),h(Z,null,K(e.value.template.headers,(M,W)=>(u(),h("div",{key:R.value[W],class:"flex gap-2 items-start px-4",style:{display:"flex",gap:"0.5rem",width:"100%"}},[l(B,{"model-value":W,style:{width:"30%","min-width":"150px"},placeholder:d.$t("addServer.keyPlaceholder"),"onUpdate:modelValue":X=>re(W,X)},null,8,["model-value","placeholder","onUpdate:modelValue"]),l(B,{modelValue:e.value.template.headers[W],"onUpdate:modelValue":X=>e.value.template.headers[W]=X,style:{flex:"1"},placeholder:d.$t("addServer.valuePlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),l(S,{size:"small",type:"danger",icon:f(le),onClick:X=>oe(W)},null,8,["icon","onClick"])]))),128))])):H("",!0)])):H("",!0),a("div",Ft,[a("label",Ht,s(d.$t("serverDetail.config.timeout")),1),l(q,{modelValue:U.value,"onUpdate:modelValue":O[3]||(O[3]=M=>U.value=M),min:1,max:3600},null,8,["modelValue"])]),a("div",Jt,[a("label",Lt,s(d.$t("common.description")),1),l(B,{modelValue:e.value.template.description,"onUpdate:modelValue":O[4]||(O[4]=M=>e.value.template.description=M),type:"textarea",rows:3,placeholder:d.$t("serverDetail.config.descriptionPlaceholder")},null,8,["modelValue","placeholder"])]),e.value.template.type!=="stdio"?(u(),h("div",qt,[a("div",Mt,[a("label",Wt,s(d.$t("serverDetail.config.proxy")),1),e.value.template.proxy?(u(),Q(S,{key:1,size:"small",type:"danger",icon:f(le),onClick:ie},{default:v(()=>[V(s(d.$t("serverDetail.config.removeProxy")),1)]),_:1},8,["icon"])):(u(),Q(S,{key:0,size:"small",icon:f(ce),onClick:ie},{default:v(()=>[V(s(d.$t("serverDetail.config.addProxy")),1)]),_:1},8,["icon"]))]),e.value.template.proxy?(u(),h("div",Qt,[l(B,{modelValue:e.value.template.proxy.url,"onUpdate:modelValue":O[5]||(O[5]=M=>e.value.template.proxy.url=M),placeholder:d.$t("serverDetail.config.proxyPlaceholder")},null,8,["modelValue","placeholder"])])):H("",!0)])):H("",!0),a("div",Gt,[a("label",Zt,s(d.$t("serverDetail.config.instanceSelectionStrategy")),1),l(me,{modelValue:e.value.template.instanceSelectionStrategy,"onUpdate:modelValue":O[6]||(O[6]=M=>e.value.template.instanceSelectionStrategy=M),placeholder:d.$t("serverDetail.config.strategyRandom")+"(默认)"},{default:v(()=>[l(ee,{value:"random",label:d.$t("serverDetail.config.strategyRandom")},null,8,["label"]),l(ee,{value:"round-robin",label:d.$t("serverDetail.config.strategyRoundRobin")},null,8,["label"]),l(ee,{value:"tag-match-unique",label:d.$t("serverDetail.config.strategyTagMatchUnique")},null,8,["label"])]),_:1},8,["modelValue","placeholder"])]),a("div",Xt,[l(S,{type:"primary",onClick:de},{default:v(()=>[V(s(d.$t("serverDetail.config.save")),1)]),_:1}),l(S,{onClick:z},{default:v(()=>[V(s(d.$t("serverDetail.config.editByJson")),1)]),_:1})])])])}}}),Kt=he(Yt,[["__scopeId","data-v-d857c695"]]),ea={class:"h-full flex flex-col"},ta={class:"flex items-center justify-between gap-2 mb-2 shrink-0"},aa={class:"flex items-center gap-2"},la=ne({__name:"LogViewer",props:{logs:{},autoScroll:{type:Boolean,default:!0}},emits:["update:autoScroll","clear","copy"],setup(r,{emit:D}){const o=r,m=D;se();const e=F(null),x=F(o.autoScroll);ae(()=>o.autoScroll,t=>{x.value=t}),ae(()=>o.logs.length,()=>{x.value&&at(()=>{e.value&&(e.value.scrollTop=e.value.scrollHeight)})});function c(t){const p=!!t;x.value=p,m("update:autoScroll",p)}function T(){m("clear")}function R(){m("copy")}function U(t){switch(t){case"debug":return"text-gray-400";case"info":return"text-blue-400";case"warn":return"text-yellow-400";case"error":return"text-red-400";default:return"text-gray-300"}}return(t,p)=>{const I=ut,_=ue;return u(),h("div",ea,[a("div",ta,[a("div",aa,[l(I,{modelValue:x.value,"onUpdate:modelValue":[p[0]||(p[0]=y=>x.value=y),c],label:t.$t("serverDetail.logs.autoScroll"),class:"text-gray-600 dark:text-gray-400"},null,8,["modelValue","label"]),l(_,{size:"small",icon:f(le),plain:"",onClick:T},{default:v(()=>[V(s(t.$t("serverDetail.logs.clear")),1)]),_:1},8,["icon"]),l(_,{size:"small",icon:f(Fe),plain:"",onClick:R},{default:v(()=>[V(s(t.$t("common.copy")),1)]),_:1},8,["icon"])])]),a("div",{class:"bg-gray-900 dark:bg-black p-4 rounded-lg font-mono text-sm flex-1 min-h-0 overflow-y-auto text-gray-300",ref_key:"logsContainer",ref:e},[(u(!0),h(Z,null,K(r.logs,(y,g)=>(u(),h("div",{key:g,class:"mb-1 break-words"},[a("span",{class:fe(U(y.level))},s(f(Re)(y.timestamp))+" ["+s(y.level.toUpperCase())+"] "+s(y.message),3)]))),128))],512)])}}}),na={class:"h-full flex flex-col"},sa={class:"flex h-full gap-4"},oa={class:"w-1/3 border-r border-gray-200 dark:border-gray-700 pr-4 overflow-y-auto"},ra={class:"flex items-center justify-between mb-3"},ia={class:"font-bold"},ca={class:"flex items-center gap-2"},ua={key:0,class:"space-y-2"},da=["onClick"],ma={class:"min-w-0 flex-1 mr-2"},va={class:"font-medium truncate"},fa={key:1,class:"text-gray-500 text-sm italic"},pa={class:"flex-1 min-h-0 overflow-y-auto px-4 flex flex-col"},ga={class:"flex justify-between items-center mb-4 shrink-0"},ha={class:"font-bold"},ya={key:0},_a={class:"mb-4 text-gray-600 dark:text-gray-300"},ba={class:"font-medium mb-2"},xa={class:"bg-gray-50 dark:bg-[#0f172a] p-4 rounded-lg overflow-x-auto text-sm font-mono border border-gray-200 dark:border-gray-700"},$a={key:1,class:"flex-1 flex items-center justify-center text-gray-400"},wa=ne({__name:"ToolsTab",props:{tools:{},allowedTools:{default:null}},emits:["select-tool","update-tool-visibility","call-tool","batch-toggle-all"],setup(r,{emit:D}){const o=r,m=D;se();const e=F(null);function x(p){e.value=p,m("select-tool",p)}function c(p){return o.allowedTools===void 0||o.allowedTools===null||o.allowedTools.length===0?!1:Array.isArray(o.allowedTools)?o.allowedTools.includes(p):!1}function T(p,I){m("update-tool-visibility",p,I)}function R(){m("batch-toggle-all",!0)}function U(){m("batch-toggle-all",!1)}function t(){e.value&&m("call-tool",e.value)}return(p,I)=>{const _=ue,y=Oe;return u(),h("div",na,[a("div",sa,[a("div",oa,[a("div",ra,[a("h3",ia,s(p.$t("serverDetail.tools.available")),1),a("div",ca,[l(_,{size:"small",onClick:R},{default:v(()=>[V(s(p.$t("serverDetail.tools.selectAll")),1)]),_:1}),l(_,{size:"small",onClick:U},{default:v(()=>[V(s(p.$t("serverDetail.tools.deselectAll")),1)]),_:1})])]),r.tools&&r.tools.length>0?(u(),h("div",ua,[(u(!0),h(Z,null,K(r.tools,g=>(u(),h("div",{key:g.name,class:fe(["p-3 rounded-lg cursor-pointer transition-colors flex items-center justify-between group",e.value?.name===g.name?"bg-blue-50 dark:bg-blue-900/30 border border-blue-200 dark:border-blue-800":"hover:bg-gray-100 dark:hover:bg-gray-800 border border-transparent"]),onClick:P=>x(g)},[a("div",ma,[a("div",va,s(g.name),1)]),l(y,{"model-value":c(g.name),"onUpdate:modelValue":P=>T(g.name,!!P),class:"mr-4","active-text":p.$t("serverDetail.tools.aggregated")},null,8,["model-value","onUpdate:modelValue","active-text"])],10,da))),128))])):(u(),h("div",fa,s(p.$t("serverDetail.tools.none")),1))]),a("div",pa,[a("div",ga,[a("h3",ha,s(p.$t("serverDetail.tools.details"))+": "+s(e.value?.name||""),1),e.value?(u(),Q(_,{key:0,type:"primary",size:"small",onClick:t},{default:v(()=>[V(s(p.$t("serverDetail.tools.call")),1)]),_:1})):H("",!0)]),e.value?(u(),h("div",ya,[a("p",_a,s(e.value.description),1),a("h4",ba,s(p.$t("serverDetail.tools.schema")),1),a("pre",xa,s(JSON.stringify(e.value.inputSchema,null,2)),1)])):(u(),h("div",$a,s(p.$t("serverDetail.tools.selectHint")),1))])])])}}}),ka={class:"h-full overflow-y-auto"},Sa={class:"flex items-center gap-2"},Ca={class:"font-medium"},Va={key:0,class:"text-center py-8 text-gray-500"},Da=ne({__name:"ResourcesTab",props:{resources:{}},emits:["view-resource"],setup(r,{emit:D}){const o=D;se();function m(e){o("view-resource",e)}return(e,x)=>{const c=_e,T=mt,R=ue,U=dt;return u(),h("div",ka,[l(U,{data:r.resources||[],style:{width:"100%"},class:"custom-table"},{default:v(()=>[l(T,{prop:"name",label:e.$t("common.name"),width:"200"},{default:v(({row:t})=>[a("div",Sa,[l(c,null,{default:v(()=>[l(f(He))]),_:1}),a("span",Ca,s(t.name),1)])]),_:1},8,["label"]),l(T,{prop:"uri",label:e.$t("common.uri"),"min-width":"300"},null,8,["label"]),l(T,{prop:"mimeType",label:e.$t("common.mimeType"),width:"150"},null,8,["label"]),l(T,{label:"",width:"100",align:"right"},{default:v(({row:t})=>[l(R,{size:"small",plain:"",onClick:p=>m(t)},{default:v(()=>[V(s(e.$t("action.view")),1)]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),!r.resources||r.resources.length===0?(u(),h("div",Va,s(e.$t("serverDetail.resources.none")),1)):H("",!0)])}}}),Ia={class:"dialog-footer"},Ta=ne({__name:"JsonConfigEditor",props:{modelValue:{type:Boolean},config:{},serverName:{}},emits:["update:modelValue","save"],setup(r,{emit:D}){const o=r,m=D,{t:e}=se(),x=F(""),c=G({get:()=>o.modelValue,set:p=>m("update:modelValue",p)}),T=G(()=>e("serverDetail.editJsonTitle")||"Edit JSON Config");ae(()=>o.modelValue,p=>{p&&R()});function R(){const p={env:o.config.env||{},enabled:o.config.enabled,description:o.config.description};o.config.headers&&Object.keys(o.config.headers).length>0&&(p.headers=o.config.headers),o.config.timeout&&(p.timeout=o.config.timeout),o.config.type==="stdio"?(p.command=o.config.command,p.args=o.config.args||[]):p.url=o.config.url;const I={mcpServers:{[o.serverName]:p}};x.value=JSON.stringify(I,null,2)}function U(){c.value=!1}function t(){try{const p=JSON.parse(x.value);if(!p.mcpServers)throw new Error("Missing mcpServers key");const I=Object.keys(p.mcpServers);if(I.length===0)throw new Error("No server config found");const _=I[0]||"",y=p.mcpServers[_],g={...o.config};y.command?(g.type="stdio",g.command=y.command,g.args=y.args||[],delete g.url):y.url&&(g.type=y.type==="sse"?"sse":"streamable-http",g.url=y.url,delete g.command,delete g.args),y.env&&(g.env=y.env),y.headers&&(g.headers=y.headers),y.timeout!==void 0&&(g.timeout=y.timeout),y.enabled!==void 0&&(g.enabled=y.enabled),y.description!==void 0&&(g.description=y.description),m("save",g),c.value=!1,k.success(e("action.configSaved"))}catch(p){p instanceof Error?k.error("Invalid JSON: "+p.message):k.error("Invalid JSON: "+String(p))}}return(p,I)=>{const _=be,y=ue,g=Ee;return u(),Q(g,{modelValue:c.value,"onUpdate:modelValue":I[1]||(I[1]=P=>c.value=P),title:T.value,width:"600px"},{footer:v(()=>[a("span",Ia,[l(y,{onClick:U},{default:v(()=>[V(s(p.$t("action.cancel")),1)]),_:1}),l(y,{type:"primary",onClick:t},{default:v(()=>[V(s(p.$t("action.save")),1)]),_:1})])]),default:v(()=>[l(_,{modelValue:x.value,"onUpdate:modelValue":I[0]||(I[0]=P=>x.value=P),type:"textarea",rows:15,"font-family":"monospace"},null,8,["modelValue"])]),_:1},8,["modelValue","title"])}}}),Ea={class:"dialog-footer"},Ua=ne({__name:"InstanceSelectDialog",props:{modelValue:{type:Boolean},instances:{},title:{default:""}},emits:["update:modelValue","confirm"],setup(r,{emit:D}){const o=r,m=D,{t:e}=se(),x=F(null),c=G({get:()=>o.modelValue,set:p=>m("update:modelValue",p)}),T=G(()=>o.title||e("serverDetail.selectInstanceTitle")||"Select Instance");function R(p){return`#${p.index??0} [${p.displayName||e("serverDetail.instances.unnamed")}]`}function U(){c.value=!1,x.value=null}function t(){x.value!==null&&(m("confirm",x.value),c.value=!1,x.value=null)}return(p,I)=>{const _=Te,y=Ie,g=ue,P=Ee;return u(),Q(P,{modelValue:c.value,"onUpdate:modelValue":I[1]||(I[1]=E=>c.value=E),title:T.value,width:"500px"},{footer:v(()=>[a("span",Ea,[l(g,{onClick:U},{default:v(()=>[V(s(p.$t("action.cancel")),1)]),_:1}),l(g,{type:"primary",onClick:t,disabled:x.value===null},{default:v(()=>[V(s(p.$t("action.confirm")),1)]),_:1},8,["disabled"])])]),default:v(()=>[l(y,{modelValue:x.value,"onUpdate:modelValue":I[0]||(I[0]=E=>x.value=E),placeholder:p.$t("serverDetail.selectInstancePlaceholder"),class:"w-full"},{default:v(()=>[(u(!0),h(Z,null,K(r.instances,E=>(u(),Q(_,{key:E.index??0,label:R(E),value:E.index??0},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])]),_:1},8,["modelValue","title"])}}}),Aa={class:"instance-card-list"},Na={class:"mb-4 flex justify-between items-center"},ja={class:"text-lg font-semibold text-gray-900 dark:text-white"},Ra={key:0,class:"mb-4"},za={class:"flex items-center justify-between"},Oa={class:"flex items-center gap-3"},Ba={class:"flex items-center gap-2"},Pa={class:"font-mono text-sm text-purple-600 dark:text-purple-400"},Fa={class:"flex flex-col gap-3 mb-4"},Ha=["onClick"],Ja={class:"flex items-center justify-between"},La={class:"flex items-center gap-3"},qa={class:"flex items-center gap-2"},Ma={class:"font-mono text-sm text-gray-500 dark:text-gray-400"},Wa={class:"font-medium text-gray-900 dark:text-white"},Qa={key:1,class:"px-2 py-0.5 rounded-full text-xs bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400"},Ga=ne({__name:"InstanceCardList",props:{instances:{},selectedIndex:{},serverName:{},showTemplateNode:{type:Boolean,default:!0},templateSelected:{type:Boolean,default:!1}},emits:["select","select-template","add","update-display-name","delete","reassign-indexes"],setup(r,{emit:D}){const o=r,m=D,e=F(!1),x=F(null),c=F(""),T=F(),R=G(()=>[...o.instances].sort((z,d)=>(z.index??0)-(d.index??0)));function U(z){return z.status||"offline"}function t(){return o.templateSelected?"border-purple-500 bg-purple-50 dark:bg-purple-900/20 shadow-md":"border-purple-200 dark:border-purple-800 hover:border-purple-300 dark:hover:border-purple-700 hover:shadow-sm bg-white dark:bg-gray-800"}function p(z){return o.selectedIndex===z?"border-blue-500 bg-blue-50 dark:bg-blue-900/20 shadow-md":"border-gray-200 dark:border-gray-700 hover:border-gray-300 dark:hover:border-gray-600 hover:shadow-sm"}function I(z){switch(z){case"online":return"bg-green-500";case"error":return"bg-red-500";case"starting":case"stopping":return"bg-yellow-500";default:return"bg-gray-400"}}function _(z){switch(z){case"online":return"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400";case"error":return"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400";case"starting":case"stopping":return"bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400";default:return"bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400"}}function y(){m("select-template")}function g(z){m("select",z)}function P(){m("add")}function E(z){e.value=!0,x.value=z.index??null,c.value=z.displayName||"",setTimeout(()=>{T.value?.focus()},100)}function oe(z){const d=c.value.trim();m("update-display-name",z,d),re()}function re(){e.value=!1,x.value=null,c.value=""}function ie(z){m("delete",z)}function de(){m("reassign-indexes")}return(z,d)=>{const O=ue,i=De,b=be,B=Je;return u(),h("div",Aa,[a("div",Na,[a("h3",ja,s(z.$t("serverDetail.instances.title")),1),l(O,{size:"small",icon:f(Se),plain:"",onClick:de},{default:v(()=>[V(s(z.$t("serverDetail.instances.reassignIndexes")),1)]),_:1},8,["icon"])]),r.showTemplateNode?(u(),h("div",Ra,[a("div",{class:fe(["template-card p-4 rounded-lg border transition-all duration-200 cursor-pointer",t()]),onClick:y},[a("div",za,[a("div",Oa,[d[2]||(d[2]=a("div",{class:"w-3 h-3 rounded-full bg-purple-500"},null,-1)),a("div",Ba,[a("span",Pa,s(z.$t("common.template")),1),l(i,{size:"small",type:"info"},{default:v(()=>[V(s(z.$t("serverDetail.instances.templateTag")),1)]),_:1})])])])],2)])):H("",!0),a("div",Fa,[(u(!0),h(Z,null,K(R.value,S=>(u(),h("div",{key:S.index??0,class:fe(["instance-card p-4 rounded-lg border transition-all duration-200 cursor-pointer",p(S.index??0)]),onClick:q=>g(S.index??0)},[a("div",Ja,[a("div",La,[a("div",{class:fe(["w-3 h-3 rounded-full",I(U(S))])},null,2),a("div",qa,[!e.value||x.value!==S.index?(u(),h(Z,{key:0},[a("span",Ma," #"+s(S.index??0),1),a("span",Wa," ["+s(S.displayName||z.$t("serverDetail.instances.unnamed"))+"] ",1)],64)):(u(),Q(b,{key:1,modelValue:c.value,"onUpdate:modelValue":d[0]||(d[0]=q=>c.value=q),size:"small",onKeyup:[Ae(q=>oe(S.index??0),["enter"]),Ae(re,["escape"])],ref_for:!0,ref_key:"displayNameInputRef",ref:T,onBlur:q=>oe(S.index??0),class:"max-w-xs"},null,8,["modelValue","onKeyup","onBlur"]))]),S.pid&&U(S)==="online"?H("",!0):(u(),h("div",{key:0,class:fe(["px-2 py-0.5 rounded-full text-xs",_(U(S))])},s(z.$t(`serverDetail.status.${U(S)}`)),3)),S.transportType==="stdio"&&S.pid&&U(S)==="online"?(u(),h("div",Qa," PID: "+s(S.pid),1)):H("",!0)]),a("div",{class:"flex items-center gap-2",onClick:d[1]||(d[1]=lt(()=>{},["stop"]))},[!e.value||x.value!==S.index?(u(),h(Z,{key:0},[l(B,{content:z.$t("serverDetail.instances.editDisplayName")||"Edit display name",placement:"top"},{default:v(()=>[l(O,{icon:f(Le),circle:"",plain:"",size:"small",onClick:q=>E(S)},null,8,["icon","onClick"])]),_:2},1032,["content"]),l(O,{icon:f(le),circle:"",plain:"",size:"small",type:"danger",onClick:q=>ie(S.index??0)},null,8,["icon","onClick"])],64)):H("",!0)])])],10,Ha))),128))]),l(O,{icon:f(ce),class:"w-full",onClick:P},{default:v(()=>[V(s(z.$t("serverDetail.instances.add")),1)]),_:1},8,["icon"])])}}}),Za=he(Ga,[["__scopeId","data-v-24e76b86"]]),Xa={class:"preview-content"},Ya={class:"action-bar flex justify-end mb-4"},Ka={class:"config-display"},el={class:"config-json"},tl=ne({__name:"MergedConfigPreviewDialog",props:{modelValue:{type:Boolean},mergedConfig:{}},emits:["update:modelValue"],setup(r){const D=r,{t:o}=se(),m=G(()=>JSON.stringify(D.mergedConfig,null,2));async function e(){try{await navigator.clipboard.writeText(m.value),k.success(o("action.copiedToClipboard"))}catch{k.error(o("action.copyFailed"))}}return(x,c)=>{const T=_e,R=ue,U=Ee;return u(),Q(U,{"model-value":r.modelValue,"onUpdate:modelValue":c[0]||(c[0]=t=>x.$emit("update:modelValue",t)),title:x.$t("serverDetail.instanceConfig.mergedPreview"),width:"70%","destroy-on-close":"",class:"merged-config-dialog"},{default:v(()=>[a("div",Xa,[a("div",Ya,[l(R,{type:"primary",onClick:e},{default:v(()=>[l(T,null,{default:v(()=>[l(f(qe))]),_:1}),V(" "+s(x.$t("common.copy")),1)]),_:1})]),a("div",Ka,[a("pre",el,s(m.value),1)])])]),_:1},8,["model-value","title"])}}}),al=he(tl,[["__scopeId","data-v-84fcda8e"]]),ll={class:"instance-config h-full flex flex-col min-h-0"},nl={class:"header-bar flex justify-between items-center mb-4 px-4 flex-shrink-0"},sl={class:"flex items-center gap-4"},ol={class:"text-lg font-semibold text-gray-900 dark:text-white"},rl={class:"flex gap-2"},il={class:"config-form space-y-4 flex-1 overflow-y-auto min-h-0 pb-4"},cl={class:"px-4"},ul={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},dl={class:"flex items-center gap-2"},ml={class:"text-xs text-gray-500 dark:text-gray-400"},vl={class:"px-4"},fl={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},pl={class:"flex gap-2 items-start"},gl={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},hl={key:0,class:"px-4"},yl={class:"flex items-center justify-between mb-2"},_l={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},bl={key:0,class:"space-y-2 mb-3"},xl={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},$l={key:1,class:"space-y-2"},wl={class:"px-4"},kl={class:"flex items-center justify-between mb-2"},Sl={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Cl={key:0,class:"space-y-2 mb-3"},Vl={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},Dl={key:1,class:"space-y-2"},Il={key:1,class:"px-4"},Tl={class:"flex items-center justify-between mb-2"},El={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Ul={key:0,class:"space-y-2 mb-3"},Al={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},Nl={key:1,class:"space-y-2"},jl={class:"px-4"},Rl={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},zl={class:"flex gap-2 items-center"},Ol={class:"text-xs text-gray-500 dark:text-gray-400"},Bl={class:"px-4"},Pl={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Fl={class:"flex gap-2 items-start"},Hl={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},Jl={key:2,class:"px-4"},Ll={class:"flex items-center justify-between mb-2"},ql={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Ml={key:0,class:"space-y-2 mb-3"},Wl={class:"flex gap-2 items-start"},Ql={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},Gl={key:1,class:"flex gap-2 items-start"},Zl={class:"px-4"},Xl={class:"flex items-center justify-between mb-2"},Yl={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Kl={key:0,class:"text-center py-4 text-gray-500"},en={key:1,class:"space-y-2"},tn={class:"text-xs text-gray-500 ml-2"},an={class:"px-4"},ln={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},nn={class:"flex gap-2 items-center"},sn={class:"flex gap-2 pt-4 pb-4 border-t border-gray-200 dark:border-gray-700 px-4"},on=ne({__name:"InstanceConfig",props:{templateConfig:{},instanceConfig:{},serverName:{},instanceStatus:{default:"offline"},systemTagDefinitions:{}},emits:["update","start-instance","stop-instance","restart-instance","view-logs"],setup(r,{emit:D}){const o=r,m=D,{t:e}=se();function x(){m("start-instance")}function c(){m("stop-instance")}function T(){m("restart-instance")}function R(){m("view-logs")}const U=F(!1),t=F({enabled:!0,...o.instanceConfig});let p=0,I=0,_=0;const y=F({}),g=F({}),P=F({}),E=F({}),oe=G(()=>o.templateConfig.args&&o.templateConfig.args.length>0),re=G(()=>o.templateConfig.env&&Object.keys(o.templateConfig.env).length>0),ie=G(()=>o.templateConfig.headers&&Object.keys(o.templateConfig.headers).length>0);ae(()=>o.instanceConfig,n=>{t.value={...n},y.value={},n.env&&Object.keys(n.env).forEach(C=>{y.value[C]=`env-${p++}`}),g.value={},n.headers&&Object.keys(n.headers).forEach(C=>{g.value[C]=`header-${I++}`}),P.value={},E.value={},n.tags&&Object.keys(n.tags).forEach(C=>{P.value[C]=`tag-${_++}`,o.systemTagDefinitions.some(te=>te.key===C)?E.value[C]=C:(E.value[C]=C,console.warn(`未定义的标签键: ${C}`))})},{immediate:!0});const de=G(()=>{const n={...o.templateConfig};return t.value.args&&t.value.args.length>0&&(n.args=[...o.templateConfig.args||[],...t.value.args]),t.value.env&&Object.keys(t.value.env).length>0&&(n.env={...o.templateConfig.env||{},...t.value.env}),t.value.headers&&Object.keys(t.value.headers).length>0&&(n.headers={...o.templateConfig.headers||{},...t.value.headers}),t.value.proxy&&(n.proxy=t.value.proxy),t.value.tags&&Object.keys(t.value.tags).length>0&&(n.tags=t.value.tags),t.value.displayName&&(n.displayName=t.value.displayName),t.value.enabled!==void 0&&(n.enabled=t.value.enabled),n});function z(n){switch(n){case"stdio":return e("serverDetail.config.transportStdio");case"sse":return e("serverDetail.config.transportSse");case"streamable-http":return e("serverDetail.config.transportHttp");default:return n}}function d(){m("update",t.value)}function O(){t.value.proxy?t.value.proxy=void 0:t.value.proxy={url:""}}function i(){t.value.args||(t.value.args=[]),t.value.args.push("")}function b(n){t.value.args&&t.value.args.splice(n,1)}function B(){t.value.env||(t.value.env={});const n=`NEW_ENV_${Date.now()}`;t.value.env[n]="",y.value[n]=`env-${p++}`}function S(n){t.value.env&&(delete t.value.env[n],delete y.value[n])}function q(n,C){if(!t.value.env||!n||!C||n===C)return;const A=t.value.env[n]??"",te=y.value[n]||`env-${p++}`;delete t.value.env[n],delete y.value[n],t.value.env[C]=A,y.value[C]=te}function ee(){t.value.headers||(t.value.headers={});const n=`X-New-Header-${Date.now()}`;t.value.headers[n]="",g.value[n]=`header-${I++}`}function me(n){t.value.headers&&(delete t.value.headers[n],delete g.value[n])}function M(n,C){if(!t.value.headers||!n||!C||n===C)return;const A=t.value.headers[n]??"",te=g.value[n]||`header-${I++}`;delete t.value.headers[n],delete g.value[n],t.value.headers[C]=A,g.value[C]=te}function W(){if(t.value.tags||(t.value.tags={}),o.systemTagDefinitions.length>0){const n=o.systemTagDefinitions[0];if(n){const C=n.key;let A=C,te=1;for(;t.value.tags&&Object.prototype.hasOwnProperty.call(t.value.tags,A);)A=`${C}-${te}`,te++;t.value.tags[A]="",P.value[A]=`tag-${_++}`,E.value[A]=C}}else{k.warning("请先在设置中定义标签");const n=`new-tag-${Date.now()}`;t.value.tags[n]="",P.value[n]=`tag-${_++}`,E.value[n]=n}}function X(n){t.value.tags&&(delete t.value.tags[n],delete P.value[n],delete E.value[n])}function pe(n,C){if(!t.value.tags||!C)return;const A=t.value.tags[n]??"",te=P.value[n]||`tag-${_++}`;delete t.value.tags[n],delete P.value[n],delete E.value[n],t.value.tags[C]=A,P.value[C]=te,E.value[C]=C}function ge(n){const C=o.systemTagDefinitions.find(A=>A.key===n);return C?C.type:null}function xe(n){const C=o.systemTagDefinitions.find(A=>A.key===n);return C?.type==="enum"?C.values||[]:[]}function $e(n){return o.systemTagDefinitions.find(A=>A.key===n)?.description||"输入标签值"}function we(){window.location.hash="#/settings/tags"}return(n,C)=>{const A=ue,te=_e,ve=De,Y=be,ye=ze,j=Te,N=Ie,L=Oe;return u(),h("div",ll,[a("div",nl,[a("div",sl,[a("h3",ol,s(n.$t("serverDetail.instanceConfig.title")),1),a("div",rl,[l(A,{icon:f(Se),plain:"",onClick:T},{default:v(()=>[V(s(n.$t("action.restart")),1)]),_:1},8,["icon"]),r.instanceStatus==="error"?(u(),Q(A,{key:0,type:"danger",plain:"",icon:f(Me),onClick:R},{default:v(()=>[V(s(n.$t("action.viewLogs")),1)]),_:1},8,["icon"])):r.instanceStatus==="online"?(u(),Q(A,{key:1,type:"warning",plain:"",icon:f(We),onClick:c},{default:v(()=>[V(s(n.$t("action.stop")),1)]),_:1},8,["icon"])):(u(),Q(A,{key:2,type:"success",icon:f(Ne),onClick:x},{default:v(()=>[V(s(n.$t("action.start")),1)]),_:1},8,["icon"]))])]),l(A,{onClick:C[0]||(C[0]=J=>U.value=!0)},{default:v(()=>[l(te,null,{default:v(()=>[l(f(Qe))]),_:1}),V(" "+s(n.$t("serverDetail.instanceConfig.viewMerged")),1)]),_:1})]),a("div",il,[a("div",cl,[a("label",ul,s(n.$t("serverDetail.config.transport")),1),a("div",dl,[l(ve,{size:"small",type:"info"},{default:v(()=>[V(s(z(r.templateConfig.type)),1)]),_:1}),a("span",ml,s(n.$t("serverDetail.instanceConfig.fromTemplate")),1)])]),a("div",vl,[a("label",fl,s(r.templateConfig.type==="stdio"?n.$t("serverDetail.config.executable"):n.$t("serverDetail.config.url")),1),a("div",pl,[l(Y,{"model-value":r.templateConfig.type==="stdio"?r.templateConfig.command:r.templateConfig.url,disabled:"",class:"flex-1"},null,8,["model-value"]),a("span",gl,s(n.$t("serverDetail.instanceConfig.fromTemplate")),1)])]),r.templateConfig.type==="stdio"?(u(),h("div",hl,[a("div",yl,[a("label",_l,s(n.$t("serverDetail.config.args")),1),l(A,{size:"small",icon:f(ce),onClick:i},{default:v(()=>[V(s(n.$t("serverDetail.config.addArg")),1)]),_:1},8,["icon"])]),oe.value?(u(),h("div",bl,[(u(!0),h(Z,null,K(r.templateConfig.args,(J,$)=>(u(),h("div",{key:`template-arg-${$}`,class:"flex gap-2 items-start"},[l(Y,{"model-value":J,disabled:"",class:"flex-1"},null,8,["model-value"]),a("span",xl,s(n.$t("serverDetail.instanceConfig.fromTemplate")),1)]))),128))])):H("",!0),t.value.args&&t.value.args.length>0?(u(),h("div",$l,[(u(!0),h(Z,null,K(t.value.args,(J,$)=>(u(),h("div",{key:`instance-arg-${$}`,class:"flex gap-2 items-start"},[l(Y,{modelValue:t.value.args[$],"onUpdate:modelValue":w=>t.value.args[$]=w,class:"flex-1"},null,8,["modelValue","onUpdate:modelValue"]),l(A,{size:"small",type:"danger",icon:f(le),onClick:w=>b($)},null,8,["icon","onClick"]),l(ve,{size:"small",type:"success"},{default:v(()=>[V(s(n.$t("common.instance")),1)]),_:1})]))),128))])):H("",!0)])):H("",!0),a("div",wl,[a("div",kl,[a("label",Sl,s(n.$t("serverDetail.config.env")),1),l(A,{size:"small",icon:f(ce),onClick:B},{default:v(()=>[V(s(n.$t("serverDetail.config.addEnv")),1)]),_:1},8,["icon"])]),re.value?(u(),h("div",Cl,[(u(!0),h(Z,null,K(r.templateConfig.env,(J,$)=>(u(),h("div",{key:`template-env-${$}`,class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[l(Y,{"model-value":$,disabled:"",style:{width:"30%","min-width":"150px"}},null,8,["model-value"]),l(Y,{"model-value":r.templateConfig.env[$],disabled:"",style:{flex:"1"}},null,8,["model-value"]),a("span",Vl,s(n.$t("serverDetail.instanceConfig.fromTemplate")),1)]))),128))])):H("",!0),t.value.env&&Object.keys(t.value.env).length>0?(u(),h("div",Dl,[(u(!0),h(Z,null,K(t.value.env,(J,$)=>(u(),h("div",{key:y.value[$],class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[l(Y,{"model-value":$,style:{width:"30%","min-width":"150px"},placeholder:n.$t("addServer.keyPlaceholder"),"onUpdate:modelValue":w=>q($,w)},null,8,["model-value","placeholder","onUpdate:modelValue"]),l(Y,{modelValue:t.value.env[$],"onUpdate:modelValue":w=>t.value.env[$]=w,style:{flex:"1"},placeholder:n.$t("addServer.valuePlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),l(A,{size:"small",type:"danger",icon:f(le),onClick:w=>S($)},null,8,["icon","onClick"]),l(ve,{size:"small",type:"success"},{default:v(()=>[V(s(n.$t("common.instance")),1)]),_:1})]))),128))])):H("",!0)]),r.templateConfig.type!=="stdio"?(u(),h("div",Il,[a("div",Tl,[a("label",El,s(n.$t("serverDetail.config.headers")),1),l(A,{size:"small",icon:f(ce),onClick:ee},{default:v(()=>[V(s(n.$t("serverDetail.config.addHeader")),1)]),_:1},8,["icon"])]),ie.value?(u(),h("div",Ul,[(u(!0),h(Z,null,K(r.templateConfig.headers,(J,$)=>(u(),h("div",{key:`template-header-${$}`,class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[l(Y,{"model-value":$,disabled:"",style:{width:"30%","min-width":"150px"}},null,8,["model-value"]),l(Y,{"model-value":r.templateConfig.headers[$],disabled:"",style:{flex:"1"}},null,8,["model-value"]),a("span",Al,s(n.$t("serverDetail.instanceConfig.fromTemplate")),1)]))),128))])):H("",!0),t.value.headers&&Object.keys(t.value.headers).length>0?(u(),h("div",Nl,[(u(!0),h(Z,null,K(t.value.headers,(J,$)=>(u(),h("div",{key:g.value[$],class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[l(Y,{"model-value":$,style:{width:"30%","min-width":"150px"},placeholder:n.$t("addServer.keyPlaceholder"),"onUpdate:modelValue":w=>M($,w)},null,8,["model-value","placeholder","onUpdate:modelValue"]),l(Y,{modelValue:t.value.headers[$],"onUpdate:modelValue":w=>t.value.headers[$]=w,style:{flex:"1"},placeholder:n.$t("addServer.valuePlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),l(A,{size:"small",type:"danger",icon:f(le),onClick:w=>me($)},null,8,["icon","onClick"]),l(ve,{size:"small",type:"success"},{default:v(()=>[V(s(n.$t("common.instance")),1)]),_:1})]))),128))])):H("",!0)])):H("",!0),a("div",jl,[a("label",Rl,s(n.$t("serverDetail.config.timeout")),1),a("div",zl,[l(ye,{"model-value":r.templateConfig.timeout?r.templateConfig.timeout/1e3:60,disabled:"",min:1,max:3600},null,8,["model-value"]),a("span",Ol,s(n.$t("serverDetail.instanceConfig.fromTemplate")),1)])]),a("div",Bl,[a("label",Pl,s(n.$t("common.description")),1),a("div",Fl,[l(Y,{"model-value":r.templateConfig.description,type:"textarea",rows:3,disabled:"",class:"flex-1"},null,8,["model-value"]),a("span",Hl,s(n.$t("serverDetail.instanceConfig.fromTemplate")),1)])]),r.templateConfig.type!=="stdio"?(u(),h("div",Jl,[a("div",Ll,[a("label",ql,s(n.$t("serverDetail.config.proxy")),1),t.value.proxy?(u(),Q(A,{key:1,size:"small",type:"danger",icon:f(le),onClick:O},{default:v(()=>[V(s(n.$t("serverDetail.config.removeProxy")),1)]),_:1},8,["icon"])):(u(),Q(A,{key:0,size:"small",icon:f(ce),onClick:O},{default:v(()=>[V(s(n.$t("serverDetail.config.addProxy")),1)]),_:1},8,["icon"]))]),r.templateConfig.proxy&&!t.value.proxy?(u(),h("div",Ml,[a("div",Wl,[l(Y,{"model-value":r.templateConfig.proxy.url,disabled:""},null,8,["model-value"]),a("span",Ql,s(n.$t("serverDetail.instanceConfig.fromTemplate")),1)])])):H("",!0),t.value.proxy?(u(),h("div",Gl,[l(Y,{modelValue:t.value.proxy.url,"onUpdate:modelValue":C[1]||(C[1]=J=>t.value.proxy.url=J),placeholder:n.$t("serverDetail.config.proxyPlaceholder")},null,8,["modelValue","placeholder"]),l(ve,{size:"small",type:"success"},{default:v(()=>[V(s(n.$t("common.instance")),1)]),_:1})])):H("",!0)])):H("",!0),a("div",Zl,[a("div",Xl,[a("label",Yl,s(n.$t("serverDetail.config.tags")),1),l(A,{size:"small",icon:f(ce),onClick:W},{default:v(()=>[V(s(n.$t("common.addTag")),1)]),_:1},8,["icon"])]),r.systemTagDefinitions.length===0?(u(),h("div",Kl,[C[5]||(C[5]=a("p",null,"暂无标签定义",-1)),l(A,{size:"small",type:"primary",onClick:we},{default:v(()=>[...C[4]||(C[4]=[V(" 前往标签设置 ",-1)])]),_:1})])):t.value.tags&&Object.keys(t.value.tags).length>0?(u(),h("div",en,[(u(!0),h(Z,null,K(t.value.tags,(J,$)=>(u(),h("div",{key:P.value[$],class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[l(N,{modelValue:E.value[$],"onUpdate:modelValue":w=>E.value[$]=w,style:{width:"30%","min-width":"150px"},filterable:"",placeholder:"选择标签键",onChange:w=>pe($,w)},{default:v(()=>[(u(!0),h(Z,null,K(r.systemTagDefinitions,w=>(u(),Q(j,{key:w.key,label:w.key,value:w.key},{default:v(()=>[a("span",null,s(w.key),1),a("span",tn,s(w.type),1)]),_:2},1032,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"]),E.value[$]&&ge(E.value[$])==="enum"?(u(),Q(N,{key:0,modelValue:t.value.tags[$],"onUpdate:modelValue":w=>t.value.tags[$]=w,style:{flex:"1"},filterable:"",placeholder:"选择标签值"},{default:v(()=>[(u(!0),h(Z,null,K(xe(E.value[$]),w=>(u(),Q(j,{key:w,label:w,value:w},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):E.value[$]&&ge(E.value[$])==="boolean"?(u(),Q(L,{key:1,modelValue:t.value.tags[$],"onUpdate:modelValue":w=>t.value.tags[$]=w,"active-value":"true","inactive-value":"false"},null,8,["modelValue","onUpdate:modelValue"])):E.value[$]&&ge(E.value[$])==="number"?(u(),Q(ye,{key:2,"model-value":t.value.tags[$]!==void 0&&t.value.tags[$]!==""?Number(t.value.tags[$]):void 0,"onUpdate:modelValue":w=>t.value.tags[$]=w!=null?String(w):"",style:{flex:"1"},placeholder:"输入数字值"},null,8,["model-value","onUpdate:modelValue"])):(u(),Q(Y,{key:3,modelValue:t.value.tags[$],"onUpdate:modelValue":w=>t.value.tags[$]=w,style:{flex:"1"},placeholder:E.value[$]?$e(E.value[$]):"输入标签值"},null,8,["modelValue","onUpdate:modelValue","placeholder"])),l(A,{size:"small",type:"danger",icon:f(le),onClick:w=>X($)},null,8,["icon","onClick"]),l(ve,{size:"small",type:"success"},{default:v(()=>[V(s(n.$t("common.instance")),1)]),_:1})]))),128))])):H("",!0)]),a("div",an,[a("label",ln,s(n.$t("serverDetail.config.autoStart")),1),a("div",nn,[l(L,{modelValue:t.value.enabled,"onUpdate:modelValue":C[2]||(C[2]=J=>t.value.enabled=J)},null,8,["modelValue"]),l(ve,{size:"small",type:"success"},{default:v(()=>[V(s(n.$t("common.instance")),1)]),_:1})])]),a("div",sn,[l(A,{type:"primary",onClick:d},{default:v(()=>[V(s(n.$t("serverDetail.config.save")),1)]),_:1})])]),l(al,{modelValue:U.value,"onUpdate:modelValue":C[3]||(C[3]=J=>U.value=J),"merged-config":de.value},null,8,["modelValue","merged-config"])])}}}),rn=he(on,[["__scopeId","data-v-e7b48052"]]);function cn(r){const D=Ve(),o=st(),m=Ce(),e=F("config"),x=F(null),c=F("config");function T(){const _=o.name;return _==="server-detail-tools"?"tools":_==="server-detail-resources"?"resources":"config"}function R(_){if(!r.value?.name)return;const y=_,g=y==="tools"?"server-detail-tools":y==="resources"?"server-detail-resources":"server-detail-config";D.push({name:g,params:{name:r.value.name}})}function U(){x.value=null}function t(_){x.value=_}function p(){o.query.selection==="template"?x.value=null:o.query.instanceIndex!==void 0?x.value=parseInt(o.query.instanceIndex,10):x.value=null}function I(){o.query.instanceTab==="logs"?c.value="logs":c.value="config"}return nt(()=>{const _=o.params.name;if(_){const y=m.servers.find(g=>g.name===_);y&&m.selectServer(y.id)}e.value=T(),p(),I()}),ae(()=>o.params.name,_=>{if(_){const y=m.servers.find(g=>g.name===_);y&&m.selectServer(y.id)}}),ae(()=>o.name,()=>{e.value=T(),p(),I()}),ae(c,_=>{if(!r.value?.name)return;const y={...o.query},g={};for(const[P,E]of Object.entries(y))E!=null&&(g[P]=E);_==="config"?delete g.instanceTab:g.instanceTab=_,D.replace({name:o.name,params:o.params,query:g})}),ae(()=>m.servers.length,()=>{const _=o.params.name;if(_&&!m.selectedServer){const y=m.servers.find(g=>g.name===_);y&&m.selectServer(y.id)}p(),I()}),ae(()=>r.value?.id,(_,y)=>{_&&_!==y&&(e.value=T())},{immediate:!0}),ae(x,_=>{if(!r.value?.name)return;const y={...o.query},g={};for(const[P,E]of Object.entries(y))E!=null&&(g[P]=E);_===null?(g.selection="template",delete g.instanceIndex):(g.instanceIndex=String(_),delete g.selection),D.replace({name:o.name,params:o.params,query:g})}),{activeTopTab:e,selectedInstanceIndex:x,activeInstanceTab:c,getTabFromRoute:T,navigateToTab:R,handleSelectTemplate:U,handleSelectInstance:t}}function un(r,D){const o=Ce(),{t:m}=se(),e=G(()=>(console.log("[useServerInstances] Computing allServers, store.servers:",o.servers),o.servers.filter(i=>i.name===r.value?.name))),x=G(()=>(console.log("[useServerInstances] Computing serverInstances"),r.value?.rawV11Config?.instances?r.value.rawV11Config.instances.map((i,b)=>{const S=e.value.find(M=>M.instances?.some(W=>W.id===i.id))?.instances?.find(M=>M.id===i.id);let q="offline",ee;const me=r.value?.rawV11Config?.template?.type;return S?.status?(q=S.status,ee=S.pid??void 0):q="offline",{id:i.id,timestamp:i.timestamp??Date.now(),index:i.index??b,displayName:i.displayName,status:q,pid:ee,transportType:me}}):(console.log("[useServerInstances] No instances found in rawV11Config"),[]))),c=G(()=>D.value===null?null:x.value.find(i=>i.index===D.value)||null),T=G(()=>{const i=c.value;if(!i||!r.value?.rawV11Config?.instances)return{args:[],env:{},headers:{},tags:{},enabled:!0};let b;return i.index!==void 0&&(b=r.value.rawV11Config.instances.find(B=>B.index===i.index)),b||(b=r.value.rawV11Config.instances.find(B=>B.id===i.id)),b?{args:b.args??[],env:b.env??{},headers:b.headers??{},tags:b.tags??{},displayName:b.displayName,enabled:b.enabled!==void 0?b.enabled:!0}:{args:[],env:{},headers:{},tags:{},displayName:i.displayName,enabled:!0}}),R=G(()=>r.value?.rawV11Config?.template?r.value.rawV11Config.template:{type:"stdio",args:[],env:{},headers:{},timeout:6e4,aggregatedTools:[]});function U(){return D.value===null?"offline":x.value.find(b=>b.index===D.value)?.status||"offline"}function t(){return D.value===null?null:x.value.find(b=>b.index===D.value)?.id||null}async function p(i){try{console.log("[startServerInstance] Starting instance:",i),o.updateServerStatus(i,"starting"),await o.startServer(i),k.success(m("action.started"))}catch(b){console.error("[startServerInstance] Error:",b),b instanceof Error?k.error(b.message):k.error(String(b))}}async function I(){const i=t();if(!i){k.warning(m("serverDetail.noInstanceSelected"));return}await p(i)}async function _(i){try{console.log("[stopServerInstance] Stopping instance:",i),await o.stopServer(i),k.success(m("action.stopped"))}catch(b){console.error("[stopServerInstance] Error:",b),b instanceof Error?k.error(b.message):k.error(String(b))}}async function y(){const i=t();if(!i){k.warning(m("serverDetail.noInstanceSelected"));return}await _(i)}async function g(i){try{console.log("[restartServerInstance] Restarting instance:",i),o.updateServerStatus(i,"starting");const b=x.value.find(B=>B.id===i);b&&b.status==="online"&&await o.stopServer(i),await o.startServer(i),k.success(m("action.restarted"))}catch(b){console.error("[restartServerInstance] Error:",b),b instanceof Error?k.error(b.message):k.error(String(b))}}async function P(){const i=t();if(!i){k.warning(m("serverDetail.noInstanceSelected"));return}await g(i)}async function E(){if(r.value?.name)try{await o.startAllServerInstances(r.value.name),k.success(m("action.started"))}catch(i){i instanceof Error?k.error(i.message):k.error(String(i))}}async function oe(){if(r.value?.name)try{await o.stopAllServerInstances(r.value.name),k.success(m("action.stopped"))}catch(i){i instanceof Error?k.error(i.message):k.error(String(i))}}async function re(){if(r.value?.name)try{await o.restartAllServerInstances(r.value.name),k.success(m("action.restarted"))}catch(i){i instanceof Error?k.error(i.message):k.error(String(i))}}async function ie(){if(r.value?.name)try{const i=`temp-${Date.now()}`,b=r.value.rawV11Config?.instances||[],B=b.length>0?Math.max(...b.map(q=>q.index??0)):-1,S={id:i,timestamp:Date.now(),index:B+1,enabled:!0,args:[],env:{},headers:{},tags:{}};r.value.rawV11Config&&(r.value.rawV11Config.instances||(r.value.rawV11Config.instances=[]),r.value.rawV11Config.instances.push(S)),await o.addServerInstance(r.value.name),k.success(m("action.instanceAdded"))}catch(i){i instanceof Error?k.error(i.message):k.error(String(i))}}async function de(i,b){if(r.value?.name)try{const S=r.value.rawV11Config?.instances?.find(q=>q.index===i);S&&(S.displayName=b),await o.updateServerInstance(r.value.name,i,{displayName:b}),k.success(m("action.displayNameUpdated"))}catch(B){B instanceof Error?k.error(B.message):k.error(String(B))}}async function z(i){if(r.value?.name)try{await je.confirm(m("serverDetail.deleteInstanceConfirm"),m("action.delete"),{confirmButtonText:m("action.delete"),cancelButtonText:m("action.cancel"),type:"warning"});const b=r.value.rawV11Config?.instances;if(b){const B=b.findIndex(S=>S.index===i);B!==-1&&b.splice(B,1)}D.value===i&&(D.value=null),await o.removeServerInstance(r.value.name,i),k.success(m("action.instanceDeleted"))}catch(b){b!=="cancel"&&(b instanceof Error?k.error(b.message||"Failed to delete instance"):k.error(String(b)||"Failed to delete instance"))}}async function d(){if(r.value?.name)try{await o.reassignInstanceIndexes(r.value.name),k.success(m("action.indexesReassigned"))}catch(i){i instanceof Error?k.error(i.message):k.error(String(i))}}async function O(i){if(!(!r.value?.name||D.value===null))try{const b=D.value,S=r.value.rawV11Config?.instances?.find(q=>q.index===b);S&&(i.args!==void 0&&(S.args=i.args),i.env!==void 0&&(S.env=i.env),i.headers!==void 0&&(S.headers=i.headers),i.tags!==void 0&&(S.tags=i.tags),i.proxy!==void 0&&(S.proxy=i.proxy),i.displayName!==void 0&&(S.displayName=i.displayName),i.enabled!==void 0&&(S.enabled=i.enabled)),await o.updateServerInstance(r.value.name,b,i),k.success(m("action.configSaved"))}catch(b){b instanceof Error?k.error(b.message):k.error(String(b))}}return{serverInstances:x,selectedInstance:c,selectedInstanceConfig:T,templateConfigForInstance:R,allServers:e,getSelectedInstanceStatus:U,getSelectedInstanceServerId:t,startSelectedInstance:I,stopSelectedInstance:y,restartSelectedInstance:P,startAllInstances:E,stopAllInstances:oe,restartAllInstances:re,handleAddInstance:ie,handleUpdateDisplayName:de,handleDeleteInstance:z,handleReassignIndexes:d,handleUpdateInstanceConfig:O}}function dn(r){const D=Ve(),o=F(null),m=F(!1),e=F(!1),x=F(null),c=F(!1),T=F(null),R=F(null);function U(I){if(!r.value)return;let _=I.uri;if(!_.startsWith("hub://")){const y=_.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:(\/\/)?/,""),g=I.serverIndex??0;_=`hub://servers/${r.value.name}/${g}/${y}`}D.push({name:"resource-detail",params:{name:r.value.name},query:{uri:_,name:I.name,mimeType:I.mimeType}})}function t(I){x.value=I,e.value=!1,m.value=!0}function p(I){const _=T.value;_&&U(_),T.value=null,c.value=!1,R.value=null}return ae(T,I=>{I!==null&&(c.value=!0)}),{showInstanceSelectForTool:e,selectedInstanceForTool:x,showCallDialog:m,pendingTool:o,showInstanceSelectForResourceDialog:c,showInstanceSelectForResource:T,selectedInstanceForResource:R,callToolWithInstance:t,viewResourceWithInstance:p}}const mn={key:0,class:"server-detail py-6 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto w-full h-full flex flex-col overflow-hidden transition-colors duration-300"},vn={class:"custom-tabs-label"},fn={class:"flex h-full gap-4 mt-4"},pn={class:"w-1/3 border-r border-gray-200 dark:border-gray-700 pr-4 overflow-y-auto"},gn={class:"flex-1 min-h-0 overflow-y-auto pl-4 pr-4"},hn={key:0,class:"h-full flex flex-col min-h-0"},yn={class:"flex-1 min-h-0 overflow-hidden"},_n={key:1,class:"h-full flex flex-col min-h-0"},bn={class:"flex-1 min-h-0 overflow-hidden"},xn={class:"custom-tabs-label"},$n={class:"flex-1 min-h-0 overflow-hidden"},wn={class:"custom-tabs-label"},kn={key:2,class:"flex-1 flex items-center justify-center text-gray-400"},Sn={class:"custom-tabs-label"},Cn={class:"custom-tabs-label"},Vn={key:1,class:"h-full flex items-center justify-center text-gray-400"},Dn=ne({__name:"ServerDetail",setup(r){const D=Ce();Ge();const o=Ze(),{config:m}=ot(o),{t:e}=se(),x=Ve(),c=G(()=>D.selectedServer),T=G(()=>m.value?.tagDefinitions||[]),{activeTopTab:R,selectedInstanceIndex:U,activeInstanceTab:t,navigateToTab:p,handleSelectTemplate:I,handleSelectInstance:_}=cn(c),{serverInstances:y,selectedInstanceConfig:g,templateConfigForInstance:P,getSelectedInstanceStatus:E,startSelectedInstance:oe,stopSelectedInstance:re,restartSelectedInstance:ie,startAllInstances:de,stopAllInstances:z,restartAllInstances:d,handleAddInstance:O,handleUpdateDisplayName:i,handleDeleteInstance:b,handleReassignIndexes:B,handleUpdateInstanceConfig:S}=un(c,U),{showCallDialog:q,pendingTool:ee,showInstanceSelectForResourceDialog:me,showInstanceSelectForResource:M,viewResourceWithInstance:W}=dn(c),X=F(!0),pe=F(!1),ge=F(null);ae([R,()=>c.value?.name],async([j,N])=>{N&&(j==="tools"?await D.fetchTools(N):j==="resources"&&await D.fetchResources(N))},{immediate:!0}),ae([t,()=>c.value?.name,U],([j,N,L])=>{N&&j==="logs"&&D.fetchLogs(N,L??0)});function xe(){D.selectedServerId=null,x.push({name:"servers"})}const $e=async()=>{if(c.value)try{await je.confirm(e("serverDetail.deleteConfirm"),e("action.delete"),{confirmButtonText:e("action.delete"),cancelButtonText:e("action.cancel"),type:"warning"}),await D.deleteServer(c.value.id),k.success(e("action.serverDeleted")),D.selectedServerId=null,x.push({name:"servers"})}catch(j){j!=="cancel"&&(j instanceof Error?k.error(j.message||"Failed to delete server"):k.error(String(j)||"Failed to delete server"))}},we=async(j,N)=>{if(!c.value)return;let L=c.value.config.aggregatedTools;L==null&&(c.value.tools?L=c.value.tools.map(J=>J.name):L=[]),N?L.includes(j)||(L=[...L,j]):L=L.filter(J=>J!==j),c.value.config.aggregatedTools=L;try{await D.updateServer(c.value.id,{config:c.value.config}),k.success(e("action.configSaved"))}catch(J){J instanceof Error?k.error(J.message):k.error(String(J))}},n=async j=>{if(!c.value)return;const N=j&&c.value.tools?c.value.tools.map(L=>L.name):[];c.value.config.aggregatedTools=N;try{await D.updateServer(c.value.id,{config:c.value.config}),k.success(e("action.configSaved"))}catch(L){L instanceof Error?k.error(L.message):k.error(String(L))}},C=async()=>{if(c.value)try{await D.updateServer(c.value.id,{config:c.value.rawV11Config?.template}),k.success(e("action.configSaved"))}catch(j){j instanceof Error?k.error(j.message):k.error(String(j))}},A=j=>{c.value?.rawV11Config&&(c.value.rawV11Config.template=j)},te=()=>{pe.value=!0},ve=async j=>{c.value&&(c.value.rawV11Config&&(c.value.rawV11Config.template={...c.value.rawV11Config.template,...j}),await D.updateServer(c.value.id,{config:c.value.rawV11Config?.template}))},Y=async()=>{c.value&&(await D.clearLogs(c.value.id),k.success(e("action.logsCleared")))},ye=()=>{if(c.value){const j=c.value.logs.map(N=>`${Re(N.timestamp)} [${N.level.toUpperCase()}] ${N.message}`).join(`
2
+ `);navigator.clipboard.writeText(j),k.success(e("action.logsCopied"))}};return(j,N)=>{const L=_e,J=tt,$=et;return c.value?(u(),h("div",mn,[l(bt,{server:c.value,onBack:xe,onDelete:$e,onRestartAll:f(d),onStartAll:f(de),onStopAll:f(z)},null,8,["server","onRestartAll","onStartAll","onStopAll"]),l($,{"model-value":f(R),onTabChange:N[6]||(N[6]=w=>f(p)(String(w))),class:"flex-1 flex flex-col overflow-hidden custom-tabs"},{default:v(()=>[l(J,{name:"config",class:"h-full flex flex-col"},{label:v(()=>[a("span",vn,[l(L,null,{default:v(()=>[l(f(Ue))]),_:1}),a("span",null,s(j.$t("common.config"))+" ("+s(f(y).length)+")",1)])]),default:v(()=>[a("div",fn,[a("div",pn,[l(Za,{instances:f(y),"selected-index":f(U),"server-name":c.value.name,"show-template-node":!0,"template-selected":f(U)===null,onSelect:f(_),onSelectTemplate:f(I),onAdd:f(O),onUpdateDisplayName:f(i),onDelete:f(b),onReassignIndexes:f(B)},null,8,["instances","selected-index","server-name","template-selected","onSelect","onSelectTemplate","onAdd","onUpdateDisplayName","onDelete","onReassignIndexes"])]),a("div",gn,[f(U)===null?(u(),h("div",hn,[a("div",yn,[l(Kt,{config:c.value.rawV11Config||{template:{type:"stdio",args:[],env:{},headers:{},timeout:6e4,aggregatedTools:[],instanceSelectionStrategy:"random"},instances:[],tagDefinitions:[]},"onUpdate:template":A,onSave:C,onEditJson:te},null,8,["config"])])])):f(U)!==null?(u(),h("div",_n,[a("div",bn,[l($,{modelValue:f(t),"onUpdate:modelValue":N[2]||(N[2]=w=>ke(t)?t.value=w:null),class:"instance-detail-tabs h-full flex flex-col"},{default:v(()=>[l(J,{name:"config",class:"h-full flex flex-col min-h-0"},{label:v(()=>[a("span",xn,[l(L,null,{default:v(()=>[l(f(Ue))]),_:1}),a("span",null,s(j.$t("common.config")),1)])]),default:v(()=>[a("div",$n,[l(rn,{"template-config":f(P),"instance-config":f(g),"server-name":c.value.name,"instance-status":f(E)(),"system-tag-definitions":T.value,onUpdate:f(S),onStartInstance:f(oe),onStopInstance:f(re),onRestartInstance:f(ie),onViewLogs:N[0]||(N[0]=w=>t.value="logs")},null,8,["template-config","instance-config","server-name","instance-status","system-tag-definitions","onUpdate","onStartInstance","onStopInstance","onRestartInstance"])])]),_:1}),l(J,{name:"logs",class:"h-full flex flex-col"},{label:v(()=>[a("span",wn,[l(L,null,{default:v(()=>[l(f(Xe))]),_:1}),a("span",null,s(j.$t("common.logs")),1)])]),default:v(()=>[l(la,{logs:c.value.logs,"auto-scroll":X.value,"onUpdate:autoScroll":N[1]||(N[1]=w=>X.value=w),onClear:Y,onCopy:ye},null,8,["logs","auto-scroll"])]),_:1})]),_:1},8,["modelValue"])])])):(u(),h("div",kn,s(j.$t("serverDetail.noSelection")),1))])])]),_:1}),l(J,{name:"tools",class:"h-full flex flex-col"},{label:v(()=>[a("span",Sn,[l(L,null,{default:v(()=>[l(f(Ye))]),_:1}),a("span",null,s(j.$t("common.tools"))+" ("+s(c.value.toolsCount||0)+")",1)])]),default:v(()=>[l(wa,{tools:c.value.tools||[],"allowed-tools":c.value.config.aggregatedTools,onSelectTool:N[3]||(N[3]=w=>ge.value=w),onUpdateToolVisibility:we,onBatchToggleAll:n,onCallTool:N[4]||(N[4]=w=>{ee.value=w,q.value=!0})},null,8,["tools","allowed-tools"])]),_:1}),l(J,{name:"resources",class:"h-full flex flex-col"},{label:v(()=>[a("span",Cn,[l(L,null,{default:v(()=>[l(f(Ke))]),_:1}),a("span",null,s(j.$t("common.resources"))+" ("+s(c.value.resourcesCount||0)+")",1)])]),default:v(()=>[l(Da,{resources:c.value.resources,onViewResource:N[5]||(N[5]=w=>{M.value=w})},null,8,["resources"])]),_:1})]),_:1},8,["model-value"]),l(Ta,{modelValue:pe.value,"onUpdate:modelValue":N[7]||(N[7]=w=>pe.value=w),config:c.value.config,"server-name":c.value.name,onSave:ve},null,8,["modelValue","config","server-name"]),l(Ua,{modelValue:f(me),"onUpdate:modelValue":N[8]||(N[8]=w=>ke(me)?me.value=w:null),instances:f(y),title:j.$t("serverDetail.selectInstanceForResource"),onConfirm:f(W)},null,8,["modelValue","instances","title","onConfirm"]),f(ee)?(u(),Q(vt,{key:0,modelValue:f(q),"onUpdate:modelValue":N[9]||(N[9]=w=>ke(q)?q.value=w:null),"server-name":c.value.name,"tool-name":f(ee).name,description:f(ee).description,"input-schema":f(ee).inputSchema},null,8,["modelValue","server-name","tool-name","description","input-schema"])):H("",!0)])):(u(),h("div",Vn,s(j.$t("serverDetail.noServerSelected")),1))}}}),Ln=he(Dn,[["__scopeId","data-v-fe4c54f6"]]);export{Ln as default};
@@ -1,4 +1,4 @@
1
- import{d as pe,e as ve,_ as fe,f as ge,g as ye,h as be,u as oe,j as re,k as Z,p as G,E as S,l as he,b as Se,m as $e,v as ke,r as _e,n as Ve,s as we,t as Ce,o as Ae}from"./index-DkqV9kH4.js";import{E as xe,a as Ee}from"./el-input-5YzZrwir.js";import{a as Ie,E as Ue}from"./el-skeleton-item-DhgR50Jx.js";import{t as le,x as u,A as y,J as N,u as v,v as ee,a0 as g,$ as n,V as U,C as s,K as Pe,aa as se,c as De,r as A,h as Te,y as H,G as r,O as t,P as O,ai as q,j as ze,ab as je,I as L}from"./vue-vendor-Dwcr0jep.js";import{E as Me,a as Je,b as Be}from"./el-overlay-BTeTueuN.js";import{E as Fe,a as Oe}from"./el-form-item-DfWq_kSy.js";import{E as Ne,a as He}from"./el-switch-fF--nMSD.js";import{_ as Re}from"./ServerStatusTags.vue_vue_type_script_setup_true_lang-C8gQlxGE.js";import{_ as Le}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./event-BB_Ol6Sd.js";import"./_baseClone-B991Lvrt.js";const qe=pe({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:ve([String,Object,Array]),default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}}),Ge=le({name:"ElCard",__name:"card",props:qe,setup(Q){const $=ge("card"),E=ye("card");return(f,_)=>{var P;return u(),y("div",{class:N([v(E).b(),v(E).is(`${f.shadow||((P=v($))==null?void 0:P.shadow)||"always"}-shadow`)])},[f.$slots.header||f.header?(u(),y("div",{key:0,class:N([v(E).e("header"),f.headerClass])},[ee(f.$slots,"header",{},()=>[g(n(f.header),1)])],2)):U("v-if",!0),s("div",{class:N([v(E).e("body"),f.bodyClass]),style:Pe(f.bodyStyle)},[ee(f.$slots,"default")],6),f.$slots.footer||f.footer?(u(),y("div",{key:1,class:N([v(E).e("footer"),f.footerClass])},[ee(f.$slots,"footer",{},()=>[g(n(f.footer),1)])],2)):U("v-if",!0)],2)}}});var Ke=fe(Ge,[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]);const Qe=be(Ke),We={class:"flex gap-4 w-full"},Xe={class:"text-xs text-gray-400"},Ye={class:"text-xs text-gray-400"},Ze={class:"text-xs text-gray-400"},el={class:"w-full flex flex-col gap-2",style:{display:"flex","flex-direction":"column",width:"100%"}},ll={class:"w-full flex flex-col gap-2",style:{display:"flex","flex-direction":"column",width:"100%"}},tl={class:"w-full flex flex-col gap-2",style:{display:"flex","flex-direction":"column",width:"100%"}},al={class:"dialog-footer flex justify-between w-full"},ol={class:"flex gap-2"},rl={key:0,class:"mb-4"},sl={class:"text-green-500 mb-2"},nl={class:"card-header"},il={class:"space-y-2"},dl={key:1,class:"mb-4"},ul={class:"text-red-500 mb-2"},cl={class:"card-header"},ml={class:"space-y-2"},pl={class:"font-bold"},vl={class:"text-sm text-gray-400"},ae=`{
1
+ import{d as pe,e as ve,_ as fe,f as ge,g as ye,h as be,u as oe,j as re,k as Z,p as G,E as S,l as he,b as Se,m as $e,v as ke,r as _e,n as Ve,s as we,t as Ce,o as Ae}from"./index-DwhULJXZ.js";import{E as xe,a as Ee}from"./el-input-C_p2Qw42.js";import{a as Ie,E as Ue}from"./el-skeleton-item-qj0eQP4s.js";import{t as le,x as u,A as y,J as N,u as v,v as ee,a0 as g,$ as n,V as U,C as s,K as Pe,aa as se,c as De,r as A,h as Te,y as H,G as r,O as t,P as O,ai as q,j as ze,ab as je,I as L}from"./vue-vendor-ClSvefnQ.js";import{E as Me,a as Je,b as Be}from"./el-overlay-MbIUXSQ7.js";import{E as Fe,a as Oe}from"./el-form-item-DF0zzQdH.js";import{E as Ne,a as He}from"./el-switch-BZbXqB3_.js";import{_ as Re}from"./ServerStatusTags.vue_vue_type_script_setup_true_lang-Deb_SbFw.js";import{_ as Le}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./event-BB_Ol6Sd.js";import"./_baseClone-DQno9YO3.js";const qe=pe({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:ve([String,Object,Array]),default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}}),Ge=le({name:"ElCard",__name:"card",props:qe,setup(Q){const $=ge("card"),E=ye("card");return(f,_)=>{var P;return u(),y("div",{class:N([v(E).b(),v(E).is(`${f.shadow||((P=v($))==null?void 0:P.shadow)||"always"}-shadow`)])},[f.$slots.header||f.header?(u(),y("div",{key:0,class:N([v(E).e("header"),f.headerClass])},[ee(f.$slots,"header",{},()=>[g(n(f.header),1)])],2)):U("v-if",!0),s("div",{class:N([v(E).e("body"),f.bodyClass]),style:Pe(f.bodyStyle)},[ee(f.$slots,"default")],6),f.$slots.footer||f.footer?(u(),y("div",{key:1,class:N([v(E).e("footer"),f.footerClass])},[ee(f.$slots,"footer",{},()=>[g(n(f.footer),1)])],2)):U("v-if",!0)],2)}}});var Ke=fe(Ge,[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]);const Qe=be(Ke),We={class:"flex gap-4 w-full"},Xe={class:"text-xs text-gray-400"},Ye={class:"text-xs text-gray-400"},Ze={class:"text-xs text-gray-400"},el={class:"w-full flex flex-col gap-2",style:{display:"flex","flex-direction":"column",width:"100%"}},ll={class:"w-full flex flex-col gap-2",style:{display:"flex","flex-direction":"column",width:"100%"}},tl={class:"w-full flex flex-col gap-2",style:{display:"flex","flex-direction":"column",width:"100%"}},al={class:"dialog-footer flex justify-between w-full"},ol={class:"flex gap-2"},rl={key:0,class:"mb-4"},sl={class:"text-green-500 mb-2"},nl={class:"card-header"},il={class:"space-y-2"},dl={key:1,class:"mb-4"},ul={class:"text-red-500 mb-2"},cl={class:"card-header"},ml={class:"space-y-2"},pl={class:"font-bold"},vl={class:"text-sm text-gray-400"},ae=`{
2
2
  "mcpServers": {
3
3
  }
4
4
  }`,fl=le({__name:"AddServerModal",props:{modelValue:{type:Boolean},initialMode:{}},emits:["update:modelValue"],setup(Q,{emit:$}){const E=Q,f=$,{t:_}=se(),P=oe(),M=De({get:()=>E.modelValue,set:l=>f("update:modelValue",l)}),V=A(!1),D=A(!1),I=A(!1);Te(M,l=>{l&&E.initialMode==="json"&&(V.value=!0)});const J=A(ae),B=A(`{
@@ -1 +1 @@
1
- import{t as b,A as o,C as d,J as u,a0 as i,$ as l,P as c,u as m,V as S,x as g}from"./vue-vendor-Dwcr0jep.js";function x(t){return t?t.split(/[/\\]/).pop()||t:"unknown"}function h(t){const e=new Date(t),a=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),n=String(e.getHours()).padStart(2,"0"),p=String(e.getMinutes()).padStart(2,"0"),f=String(e.getSeconds()).padStart(2,"0"),y=String(e.getMilliseconds()).padStart(3,"0");return`${a}-${s}-${r} ${n}:${p}:${f}.${y}`}function _(t){const e=new Date(t),a=String(e.getHours()).padStart(2,"0"),s=String(e.getMinutes()).padStart(2,"0"),r=String(e.getSeconds()).padStart(2,"0"),n=String(e.getMilliseconds()).padStart(3,"0");return`${a}:${s}:${r}.${n}`}const k={class:"flex flex-wrap items-center gap-2 w-full"},w={class:"flex items-center gap-2 px-3 py-1 rounded-full text-sm bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-gray-700 dark:text-gray-300"},v={class:"font-medium break-all max-w-full"},C=b({__name:"ServerStatusTags",props:{server:{}},setup(t){const e=t;function a(r){switch(r){case"online":return"bg-green-50 text-green-700 border-green-200 dark:bg-green-900/20 dark:text-green-400 dark:border-green-800";case"error":return"bg-red-50 text-red-700 border-red-200 dark:bg-red-900/20 dark:text-red-400 dark:border-red-800";case"starting":case"stopping":return"bg-yellow-50 text-yellow-700 border-yellow-200 dark:bg-yellow-900/20 dark:text-yellow-400 dark:border-yellow-800";default:return"bg-gray-100 text-gray-600 border-gray-200 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-700"}}function s(r){switch(r){case"online":return"bg-green-500";case"error":return"bg-red-500";case"starting":case"stopping":return"bg-yellow-500";default:return"bg-gray-400"}}return(r,n)=>(g(),o("div",k,[d("div",{class:u(["flex items-center gap-2 px-3 py-1 rounded-full text-sm transition-colors border border-transparent",a(e.server.status)])},[d("div",{class:u(["w-2 h-2 rounded-full",s(e.server.status)])},null,2),i(" "+l(r.$t(`serverDetail.status.${e.server.status}`)),1)],2),d("div",w,[d("span",v,[i(l(e.server.config.type)+" ",1),e.server.config.type==="stdio"?(g(),o(c,{key:0},[i(" - "+l(m(x)(e.server.config.command)),1)],64)):e.server.config.type==="sse"?(g(),o(c,{key:1},[],64)):e.server.config.type==="streamable-http"?(g(),o(c,{key:2},[],64)):S("",!0)])])]))}});export{C as _,h as a,_ as f};
1
+ import{t as b,A as o,C as d,J as u,a0 as i,$ as l,P as c,u as m,V as S,x as g}from"./vue-vendor-ClSvefnQ.js";function x(t){return t?t.split(/[/\\]/).pop()||t:"unknown"}function h(t){const e=new Date(t),a=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),n=String(e.getHours()).padStart(2,"0"),p=String(e.getMinutes()).padStart(2,"0"),f=String(e.getSeconds()).padStart(2,"0"),y=String(e.getMilliseconds()).padStart(3,"0");return`${a}-${s}-${r} ${n}:${p}:${f}.${y}`}function _(t){const e=new Date(t),a=String(e.getHours()).padStart(2,"0"),s=String(e.getMinutes()).padStart(2,"0"),r=String(e.getSeconds()).padStart(2,"0"),n=String(e.getMilliseconds()).padStart(3,"0");return`${a}:${s}:${r}.${n}`}const k={class:"flex flex-wrap items-center gap-2 w-full"},w={class:"flex items-center gap-2 px-3 py-1 rounded-full text-sm bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-gray-700 dark:text-gray-300"},v={class:"font-medium break-all max-w-full"},C=b({__name:"ServerStatusTags",props:{server:{}},setup(t){const e=t;function a(r){switch(r){case"online":return"bg-green-50 text-green-700 border-green-200 dark:bg-green-900/20 dark:text-green-400 dark:border-green-800";case"error":return"bg-red-50 text-red-700 border-red-200 dark:bg-red-900/20 dark:text-red-400 dark:border-red-800";case"starting":case"stopping":return"bg-yellow-50 text-yellow-700 border-yellow-200 dark:bg-yellow-900/20 dark:text-yellow-400 dark:border-yellow-800";default:return"bg-gray-100 text-gray-600 border-gray-200 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-700"}}function s(r){switch(r){case"online":return"bg-green-500";case"error":return"bg-red-500";case"starting":case"stopping":return"bg-yellow-500";default:return"bg-gray-400"}}return(r,n)=>(g(),o("div",k,[d("div",{class:u(["flex items-center gap-2 px-3 py-1 rounded-full text-sm transition-colors border border-transparent",a(e.server.status)])},[d("div",{class:u(["w-2 h-2 rounded-full",s(e.server.status)])},null,2),i(" "+l(r.$t(`serverDetail.status.${e.server.status}`)),1)],2),d("div",w,[d("span",v,[i(l(e.server.config.type)+" ",1),e.server.config.type==="stdio"?(g(),o(c,{key:0},[i(" - "+l(m(x)(e.server.config.command)),1)],64)):e.server.config.type==="sse"?(g(),o(c,{key:1},[],64)):e.server.config.type==="streamable-http"?(g(),o(c,{key:2},[],64)):S("",!0)])])]))}});export{C as _,h as a,_ as f};
@@ -0,0 +1 @@
1
+ import{j as ge,b as ce,p as we,A as Ce,k as Te,E as ne,G as Ue,aH as De,aI as Me,aJ as Re,aK as Ee,s as Ne,y as Pe,aL as Se,aM as ze,aN as je,L as Ae}from"./index-DwhULJXZ.js";import{v as Be}from"./el-loading-BaenpNzU.js";import{a as Ie,b as Ke,E as me}from"./el-tab-pane-w7RltRLd.js";import{E as Fe,a as Le}from"./el-radio-group-COnCjCcz.js";import{a as fe,E as pe}from"./el-input-C_p2Qw42.js";import{E as Oe,a as qe}from"./el-switch-BZbXqB3_.js";import{a as ye,E as ve}from"./el-form-item-DF0zzQdH.js";import{E as Ge,a as be,b as _e}from"./el-overlay-MbIUXSQ7.js";import{t as xe,aa as he,c as E,r as v,A as y,C as a,$ as u,O as t,G as n,u as i,a0 as b,P as q,ai as Q,V as U,y as N,x as m,h as He,ak as Ze,j as We,H as Je,aj as ue}from"./vue-vendor-ClSvefnQ.js";import"./raf-B1Ry7ruA.js";import"./event-BB_Ol6Sd.js";import"./omit-BAJQlviJ.js";import"./_baseClone-DQno9YO3.js";const Qe={class:"tag-manager"},Xe={class:"flex items-center justify-between mb-4"},Ye={class:"text-lg font-semibold text-gray-900 dark:text-white"},et={key:0,class:"text-center py-8 text-gray-500 dark:text-gray-400"},tt={key:1,class:"space-y-3"},st={class:"flex-1"},lt={class:"flex items-center gap-2"},at={class:"font-medium text-gray-900 dark:text-white"},nt={key:0,class:"text-sm text-gray-500 dark:text-gray-400 mt-1"},ot={key:1,class:"mt-2"},it={class:"flex flex-wrap gap-1"},ut={class:"flex items-center gap-2 ml-4"},dt={class:"flex justify-end gap-2"},rt={class:"text-gray-600 dark:text-gray-300"},mt={class:"flex justify-end gap-2"},gt=xe({__name:"TagManager",props:{modelValue:{}},emits:["update:modelValue"],setup(G,{emit:p}){const D=G,l=p,{t:H}=he(),x=E({get:()=>D.modelValue||[],set:d=>l("update:modelValue",d)}),z=v(!1),j=v(!1),$=v(!1),C=v(!1),P=v(),h=v(null),g=v({key:"",description:"",type:"string",values:[]}),X={key:[{required:!0,message:"Tag key is required",trigger:"blur"},{pattern:/^[a-zA-Z][a-zA-Z0-9-]*$/,message:"Key must start with a letter and contain only letters, numbers, and hyphens",trigger:"blur"}],type:[{required:!0,message:"Tag type is required",trigger:"change"}],values:[{validator:(d,c,_)=>{g.value.type==="enum"&&(!c||c.length===0)?_(new Error("At least one value is required for enum type")):_()},trigger:"change"}]};function A(){$.value=!1,h.value=null,g.value={key:"",description:"",type:"string",values:[]},z.value=!0}function Y(d){$.value=!0,h.value=d,g.value={...d},z.value=!0}function Z(){z.value=!1,P.value?.resetFields(),g.value={key:"",description:"",type:"string",values:[]},$.value=!1,h.value=null}function B(){P.value?.validate(d=>{if(d){C.value=!0;try{if($.value&&h.value){const c=x.value.findIndex(_=>_.key===h.value.key);if(c!==-1){const _=[...x.value];_[c]={...g.value},x.value=_}}else{if(x.value.some(c=>c.key===g.value.key)){ne.error("Tag key already exists"),C.value=!1;return}x.value=[...x.value,{...g.value}]}ne.success(H("action.saved")),Z()}finally{C.value=!1}}})}function ee(d){h.value=d,j.value=!0}function W(){if(h.value){C.value=!0;try{x.value=x.value.filter(d=>d.key!==h.value.key),ne.success(H("action.saved")),j.value=!1,h.value=null}finally{C.value=!1}}}return(d,c)=>{const _=ce,T=ge,K=fe,F=pe,L=ve,M=_e,te=be,oe=ye,s=Ge;return m(),y("div",Qe,[a("div",Xe,[a("h3",Ye,u(d.$t("settings.tagDefinitions")),1),t(T,{type:"primary",onClick:A},{default:n(()=>[t(_,{class:"mr-1"},{default:n(()=>[t(i(we))]),_:1}),b(" "+u(d.$t("common.addTag")),1)]),_:1})]),x.value.length===0?(m(),y("div",et,u(d.$t("settings.noTagsDefined")),1)):(m(),y("div",tt,[(m(!0),y(q,null,Q(x.value,e=>(m(),y("div",{key:e.key,class:"flex items-center justify-between p-4 border rounded-lg dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-800/50 transition-colors"},[a("div",st,[a("div",lt,[a("span",at,u(e.key),1),t(K,{size:"small",type:"info"},{default:n(()=>[b(u(e.type),1)]),_:2},1024)]),e.description?(m(),y("div",nt,u(e.description),1)):U("",!0),e.type==="enum"&&e.values&&e.values.length>0?(m(),y("div",ot,[a("div",it,[(m(!0),y(q,null,Q(e.values,r=>(m(),N(K,{key:r,size:"small",type:"success"},{default:n(()=>[b(u(r),1)]),_:2},1024))),128))])])):U("",!0)]),a("div",ut,[t(T,{size:"small",onClick:r=>Y(e)},{default:n(()=>[t(_,null,{default:n(()=>[t(i(Ce))]),_:1})]),_:1},8,["onClick"]),t(T,{size:"small",type:"danger",onClick:r=>ee(e)},{default:n(()=>[t(_,null,{default:n(()=>[t(i(Te))]),_:1})]),_:1},8,["onClick"])])]))),128))])),t(s,{modelValue:z.value,"onUpdate:modelValue":c[4]||(c[4]=e=>z.value=e),title:$.value?d.$t("common.editTag"):d.$t("common.addTag"),width:"500px",class:"custom-dialog","before-close":Z},{footer:n(()=>[a("div",dt,[t(T,{onClick:Z},{default:n(()=>[b(u(d.$t("action.cancel")),1)]),_:1}),t(T,{type:"primary",onClick:B,loading:C.value},{default:n(()=>[b(u(d.$t("action.save")),1)]),_:1},8,["loading"])])]),default:n(()=>[t(oe,{model:g.value,rules:X,ref_key:"formRef",ref:P,"label-position":"top"},{default:n(()=>[t(L,{label:d.$t("settings.tagKey"),prop:"key"},{default:n(()=>[t(F,{modelValue:g.value.key,"onUpdate:modelValue":c[0]||(c[0]=e=>g.value.key=e),placeholder:d.$t("settings.tagKeyPlaceholder"),disabled:$.value},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["label"]),t(L,{label:d.$t("settings.tagDescription"),prop:"description"},{default:n(()=>[t(F,{modelValue:g.value.description,"onUpdate:modelValue":c[1]||(c[1]=e=>g.value.description=e),type:"textarea",rows:2,placeholder:d.$t("settings.tagDescriptionPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),t(L,{label:d.$t("settings.tagType"),prop:"type"},{default:n(()=>[t(te,{modelValue:g.value.type,"onUpdate:modelValue":c[2]||(c[2]=e=>g.value.type=e),class:"w-full"},{default:n(()=>[t(M,{label:"String",value:"string"}),t(M,{label:"Number",value:"number"}),t(M,{label:"Boolean",value:"boolean"}),t(M,{label:"Enum",value:"enum"})]),_:1},8,["modelValue"])]),_:1},8,["label"]),g.value.type==="enum"?(m(),N(L,{key:0,label:d.$t("settings.tagValues"),prop:"values"},{default:n(()=>[t(te,{modelValue:g.value.values,"onUpdate:modelValue":c[3]||(c[3]=e=>g.value.values=e),multiple:"",filterable:"","allow-create":"","default-first-option":"","reserve-keyword":!1,placeholder:d.$t("settings.tagValuesPlaceholder"),class:"w-full"},{default:n(()=>[(m(!0),y(q,null,Q(g.value.values,e=>(m(),N(M,{key:e,label:e,value:e},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"])):U("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),t(s,{modelValue:j.value,"onUpdate:modelValue":c[6]||(c[6]=e=>j.value=e),title:d.$t("common.deleteTag"),width:"400px",class:"custom-dialog"},{footer:n(()=>[a("div",mt,[t(T,{onClick:c[5]||(c[5]=e=>j.value=!1)},{default:n(()=>[b(u(d.$t("action.cancel")),1)]),_:1}),t(T,{type:"danger",onClick:W,loading:C.value},{default:n(()=>[b(u(d.$t("action.delete")),1)]),_:1},8,["loading"])])]),default:n(()=>[a("p",rt,u(d.$t("settings.deleteTagConfirm")),1)]),_:1},8,["modelValue","title"])])}}}),k={seconds:1,minutes:60,hours:3600,days:86400},ct=["days","hours","minutes","seconds"];function S(G){for(const p of ct){const D=k[p];if(G>=D)return p}return"seconds"}function ae(G,p){He(G,(D,l)=>{if(l&&D!==l){const H=k[D]/k[l];p.value=Math.round(p.value/H)}})}const ft={class:"h-full w-full overflow-y-auto"},pt={class:"py-6 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto w-full"},yt={class:"mb-6 flex items-center justify-between"},vt={class:"text-2xl font-bold text-gray-900 dark:text-white"},bt={class:"pb-10"},_t={class:"flex items-center gap-2"},xt={class:"pt-4"},ht={class:"flex flex-col gap-2"},Vt={class:"flex items-center my-4"},kt={class:"text-sm font-medium text-gray-900 dark:text-gray-100 mr-4"},$t={class:"flex items-center gap-2"},wt={class:"flex items-center gap-2"},Ct={class:"flex items-center gap-2"},Tt={class:"flex items-center gap-2"},Ut={class:"pt-4"},Dt={class:"flex items-center my-4"},Mt={class:"text-sm font-medium text-gray-900 dark:text-gray-100 mr-4"},Rt={class:"flex items-center gap-2"},Et={class:"pt-4"},Nt={class:"mb-6"},Pt={class:"flex items-center justify-between mb-2"},St={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},zt={class:"flex items-center gap-2 mb-2"},jt={class:"border border-gray-200 dark:border-gray-700 rounded p-2 min-h-[36px] max-h-40 overflow-y-auto bg-gray-50 dark:bg-gray-800"},At={key:0,class:"text-gray-400 text-sm"},Bt={class:"text-xs text-gray-500 mt-1"},It={class:"space-y-4"},Kt={class:"flex items-center gap-4"},Ft={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},Lt={class:"flex items-center gap-4"},Ot={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},qt={class:"flex items-center gap-4"},Gt={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},Ht={class:"flex items-center gap-2"},Zt={class:"flex items-center gap-4"},Wt={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},Jt={class:"flex items-center gap-2"},Qt={class:"flex items-center gap-2"},Xt={class:"pt-4"},Yt={class:"flex items-center gap-4"},es={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},ts={class:"flex items-center gap-2"},ss={class:"flex items-center gap-4 mt-4"},ls={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},as={class:"flex items-center gap-2"},ns={class:"flex items-center gap-4 mt-4"},os={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},is={class:"flex items-center gap-4 mt-4"},us={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},ds={class:"flex items-center gap-2"},rs={class:"flex items-center gap-2"},ms={class:"pt-4"},gs={class:"flex items-center gap-2"},cs={class:"pt-4"},fs={class:"flex items-center my-4"},ps={class:"text-sm font-medium text-gray-900 dark:text-gray-100 mr-4"},ys={class:"mb-6"},vs={class:"flex items-center justify-between mb-2"},bs={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},_s={class:"flex items-center gap-2 mb-2"},xs={class:"border border-gray-200 dark:border-gray-700 rounded p-2 min-h-[36px] max-h-40 overflow-y-auto bg-gray-50 dark:bg-gray-800"},hs={key:0,class:"text-gray-400 text-sm"},Vs={class:"mb-2"},ks={class:"flex items-center justify-between mb-2"},$s={class:"text-sm font-medium text-gray-700 dark:text-gray-300"},ws={class:"flex items-center gap-2 mb-2"},Cs={class:"border border-gray-200 dark:border-gray-700 rounded p-2 min-h-[36px] max-h-40 overflow-y-auto bg-gray-50 dark:bg-gray-800"},Ts={key:0,class:"text-gray-400 text-sm"},Us={class:"text-xs text-gray-500 mt-1"},Fs=xe({__name:"SettingsView",setup(G){const{t:p}=he(),D=Ue(),{config:l,loading:H}=Ze(D),x=v(!1),z=v("system"),j=E({get:()=>{const s=l.value?.system?.logging?.rotationAge||"7d",e=parseInt(s.replace(/[^\d]/g,""))||7;return Number(Math.round(e))},set:s=>{l.value?.system?.logging&&s!==void 0&&s!==null&&(l.value.system.logging.rotationAge=`${s}d`)}}),$=v(S((l.value?.security?.connectionTimeout||3e4)/1e3)),C=E({get:()=>{const e=(l.value?.security?.connectionTimeout||3e4)/1e3,r=S(e),V=e/k[r];return Number(Math.round(V))},set:s=>{l.value?.security&&s!==void 0&&s!==null&&(l.value.security.connectionTimeout=Number(s)*k[$.value]*1e3)}}),P=v(S((l.value?.security?.idleConnectionTimeout||3e5)/1e3)),h=E({get:()=>{const e=(l.value?.security?.idleConnectionTimeout||3e5)/1e3,r=S(e),V=e/k[r];return Number(Math.round(V))},set:s=>{l.value?.security&&s!==void 0&&s!==null&&(l.value.security.idleConnectionTimeout=Number(s)*k[P.value]*1e3)}}),g=v("seconds"),X=E({get:()=>{const e=(l.value?.system?.startup?.startupDelay??3e3)/1e3;return Math.round(e/k[g.value])},set:s=>{if(l.value.system&&(l.value.system.startup||(l.value.system.startup={startupDelay:3e3,readyTimeout:12e4,maxConnectRetries:3,connectRetryDelay:5e3}),s!=null)){const e=s*k[g.value]*1e3,r=Math.max(0,Math.min(6e4,e));l.value.system.startup.startupDelay=r}}}),A=v("seconds"),Y=E({get:()=>{const e=(l.value?.system?.startup?.readyTimeout??12e4)/1e3;return Math.round(e/k[A.value])},set:s=>{if(l.value.system?.startup&&s!=null){const e=s*k[A.value]*1e3,r=Math.max(1e4,Math.min(3e5,e));l.value.system.startup.readyTimeout=r}}}),Z=E({get:()=>l.value?.system?.startup?.maxConnectRetries??3,set:s=>{l.value.system?.startup&&(l.value.system.startup.maxConnectRetries=s)}}),B=v("seconds"),ee=E({get:()=>{const e=(l.value?.system?.startup?.connectRetryDelay??5e3)/1e3;return Math.round(e/k[B.value])},set:s=>{if(l.value.system?.startup&&s!=null){const e=s*k[B.value]*1e3,r=Math.max(1e3,Math.min(3e4,e));l.value.system.startup.connectRetryDelay=r}}});ae($,C),ae(P,h),ae(g,X),ae(A,Y),ae(B,ee);const W=v("");function d(){const s=W.value.trim();if(!s)return;l.value?.security||(l.value.security={allowedNetworks:[],maxConcurrentConnections:50,connectionTimeout:3e4,idleConnectionTimeout:3e5,maxConnections:50});const e=l.value.security.allowedNetworks;e.includes(s)||(l.value.security.allowedNetworks=[...e,s]),W.value=""}async function c(s){try{await me.confirm(p("settings.allowedNetworkDeleteConfirm",{ip:s}),p("settings.allowedNetworkDeleteTitle"),{confirmButtonText:p("action.confirm"),cancelButtonText:p("action.cancel"),type:"warning"}),l.value.security.allowedNetworks=l.value.security.allowedNetworks.filter(e=>e!==s)}catch{}}const _=v(""),T=v(""),K=E({get:()=>l.value?.system?.session?.sessionModeRules?.stateful??[],set:s=>{l.value?.system?.session?.sessionModeRules&&(l.value.system.session.sessionModeRules.stateful=s)}}),F=E({get:()=>l.value?.system?.session?.sessionModeRules?.stateless??[],set:s=>{l.value?.system?.session?.sessionModeRules&&(l.value.system.session.sessionModeRules.stateless=s)}});function L(){l.value?.system?.session||(l.value.system.session={sessionModeRules:{stateful:[],stateless:[]},defaultSessionMode:"stateful"}),l.value.system.session?.sessionModeRules||(l.value.system.session.sessionModeRules={stateful:[],stateless:[]}),l.value.system.session?.sessionModeRules?.stateful||(l.value.system.session.sessionModeRules.stateful=[]),l.value.system.session?.sessionModeRules?.stateless||(l.value.system.session.sessionModeRules.stateless=[])}function M(s){const e=s==="stateful"?_:T,r=e.value.trim();if(!r)return;L();const V=s==="stateful"?K:F,O=V.value;O.includes(r)||(V.value=[...O,r]),e.value=""}async function te(s,e){try{await me.confirm(p("settings.sessionPatternDeleteConfirm",{pattern:e}),p("settings.sessionPatternDeleteTitle"),{confirmButtonText:p("action.confirm"),cancelButtonText:p("action.cancel"),type:"warning"}),L();const r=s==="stateful"?K:F;r.value=r.value.filter(V=>V!==e)}catch{}}We(async()=>{l.value.host||await D.fetchConfig(),l.value?.security&&($.value=S((l.value.security.connectionTimeout||3e4)/1e3),P.value=S((l.value.security.idleConnectionTimeout||3e5)/1e3)),l.value?.system?.startup&&(g.value=S((l.value.system.startup.startupDelay||3e3)/1e3),A.value=S((l.value.system.startup.readyTimeout||12e4)/1e3),B.value=S((l.value.system.startup.connectRetryDelay||5e3)/1e3))});async function oe(){x.value=!0;try{await D.updateConfig(l.value),ne.success(p("settings.saveSuccess"))}catch(s){ne.error(p("settings.saveError")+": "+s.message)}finally{x.value=!1}}return(s,e)=>{const r=ce,V=ge,O=pe,w=ve,R=Oe,f=_e,I=be,se=ye,J=Ke,le=qe,ie=fe,de=Le,Ve=Fe,ke=Ie,$e=Be;return m(),y("div",ft,[a("div",pt,[a("div",yt,[a("h1",vt,u(s.$t("settings.title")),1),t(V,{type:"primary",onClick:oe,loading:x.value},{default:n(()=>[t(r,{class:"mr-1"},{default:n(()=>[t(i(De))]),_:1}),b(" "+u(s.$t("settings.save")),1)]),_:1},8,["loading"])]),Je((m(),y("div",bt,[t(ke,{modelValue:z.value,"onUpdate:modelValue":e[33]||(e[33]=o=>z.value=o),class:"demo-tabs"},{default:n(()=>[t(J,{name:"system"},{label:n(()=>[a("span",_t,[t(r,null,{default:n(()=>[t(i(Ne))]),_:1}),a("span",null,u(s.$t("settings.systemTab")),1)])]),default:n(()=>[a("div",xt,[t(se,{model:i(l),"label-position":"left","label-width":"260px"},{default:n(()=>[a("div",ht,[t(w,{label:s.$t("settings.host")},{default:n(()=>[t(O,{modelValue:i(l).system.host,"onUpdate:modelValue":e[0]||(e[0]=o=>i(l).system.host=o),class:"w-[200px]"},null,8,["modelValue"])]),_:1},8,["label"]),t(w,{label:s.$t("settings.port")},{default:n(()=>[t(R,{modelValue:i(l).system.port,"onUpdate:modelValue":e[1]||(e[1]=o=>i(l).system.port=o),min:1,max:65535,class:"w-[200px]"},null,8,["modelValue"])]),_:1},8,["label"])]),a("div",Vt,[a("span",kt,u(s.$t("settings.appearance")),1),e[34]||(e[34]=a("div",{class:"h-px bg-gray-200 dark:bg-gray-700 flex-1"},null,-1))]),t(w,{label:s.$t("settings.theme")},{default:n(()=>[t(I,{modelValue:i(l).system.theme,"onUpdate:modelValue":e[2]||(e[2]=o=>i(l).system.theme=o),class:"w-[200px]"},{default:n(()=>[t(f,{label:s.$t("settings.themeLight"),value:"light"},{default:n(()=>[a("span",$t,[t(r,null,{default:n(()=>[t(i(Me))]),_:1}),a("span",null,u(s.$t("settings.themeLight")),1)])]),_:1},8,["label"]),t(f,{label:s.$t("settings.themeDark"),value:"dark"},{default:n(()=>[a("span",wt,[t(r,null,{default:n(()=>[t(i(Re))]),_:1}),a("span",null,u(s.$t("settings.themeDark")),1)])]),_:1},8,["label"]),t(f,{label:s.$t("settings.themeSystem"),value:"system"},{default:n(()=>[a("span",Ct,[t(r,null,{default:n(()=>[t(i(Ee))]),_:1}),a("span",null,u(s.$t("settings.themeSystem")),1)])]),_:1},8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),t(w,{label:s.$t("settings.language")},{default:n(()=>[t(I,{modelValue:i(l).system.language,"onUpdate:modelValue":e[3]||(e[3]=o=>i(l).system.language=o),class:"w-[200px]"},{default:n(()=>[t(f,{label:s.$t("settings.langEn"),value:"en"},null,8,["label"]),t(f,{label:s.$t("settings.langZh"),value:"zh"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"])]),_:1},8,["model"])])]),_:1}),t(J,{name:"logging"},{label:n(()=>[a("span",Tt,[t(r,null,{default:n(()=>[t(i(Pe))]),_:1}),a("span",null,u(s.$t("settings.logging")),1)])]),default:n(()=>[a("div",Ut,[i(l).system.logging?(m(),N(se,{key:0,model:i(l).system.logging,"label-position":"left","label-width":"260px"},{default:n(()=>[t(w,{label:s.$t("settings.logLevel")},{default:n(()=>[t(I,{modelValue:i(l).system.logging.level,"onUpdate:modelValue":e[4]||(e[4]=o=>i(l).system.logging.level=o),class:"w-full md:w-64"},{default:n(()=>[t(f,{label:"DEBUG",value:"debug"}),t(f,{label:"INFO",value:"info"}),t(f,{label:"WARN",value:"warn"}),t(f,{label:"ERROR",value:"error"})]),_:1},8,["modelValue"])]),_:1},8,["label"]),t(w,{label:s.$t("settings.maxAge")},{default:n(()=>[t(R,{modelValue:j.value,"onUpdate:modelValue":e[5]||(e[5]=o=>j.value=o),min:1,class:"w-[150px]"},null,8,["modelValue"])]),_:1},8,["label"]),a("div",Dt,[a("span",Mt,u(s.$t("settings.debugOptions")),1),e[35]||(e[35]=a("div",{class:"h-px bg-gray-200 dark:bg-gray-700 flex-1"},null,-1))]),i(l).system.logging.level==="debug"||i(l).isDevMode?(m(),y(q,{key:0},[t(w,{label:s.$t("settings.jsonPretty")},{default:n(()=>[t(le,{modelValue:i(l).system.logging.jsonPretty,"onUpdate:modelValue":e[6]||(e[6]=o=>i(l).system.logging.jsonPretty=o)},null,8,["modelValue"])]),_:1},8,["label"]),t(w,{label:s.$t("settings.mcpCommDebug")},{default:n(()=>[t(le,{modelValue:i(l).system.logging.mcpCommDebug,"onUpdate:modelValue":e[7]||(e[7]=o=>i(l).system.logging.mcpCommDebug=o)},null,8,["modelValue"])]),_:1},8,["label"]),t(w,{label:s.$t("settings.apiDebug")},{default:n(()=>[t(le,{modelValue:i(l).system.logging.apiDebug,"onUpdate:modelValue":e[8]||(e[8]=o=>i(l).system.logging.apiDebug=o)},null,8,["modelValue"])]),_:1},8,["label"]),t(w,{label:s.$t("settings.gatewayDebug")},{default:n(()=>[t(le,{modelValue:i(l).system.logging.gatewayDebug,"onUpdate:modelValue":e[9]||(e[9]=o=>i(l).system.logging.gatewayDebug=o)},null,8,["modelValue"])]),_:1},8,["label"]),t(w,{label:s.$t("settings.showTraceContext")},{default:n(()=>[t(le,{modelValue:i(l).system.logging.showTraceContext,"onUpdate:modelValue":e[10]||(e[10]=o=>i(l).system.logging.showTraceContext=o)},null,8,["modelValue"])]),_:1},8,["label"])],64)):U("",!0)]),_:1},8,["model"])):U("",!0)])]),_:1}),t(J,{name:"security"},{label:n(()=>[a("span",Rt,[t(r,null,{default:n(()=>[t(i(Se))]),_:1}),a("span",null,u(s.$t("settings.security")),1)])]),default:n(()=>[a("div",Et,[i(l).security?(m(),N(se,{key:0,model:i(l).security,"label-position":"left","label-width":"260px"},{default:n(()=>[a("div",Nt,[a("div",Pt,[a("h4",St,u(s.$t("settings.allowedNetworks")),1),t(V,{size:"small",onClick:d},{default:n(()=>[b(" + "+u(s.$t("action.add")),1)]),_:1})]),a("div",zt,[t(O,{modelValue:W.value,"onUpdate:modelValue":e[11]||(e[11]=o=>W.value=o),placeholder:"192.168.1.0/24",class:"flex-1",size:"small",onKeyup:ue(d,["enter"])},null,8,["modelValue"])]),a("div",jt,[i(l).security.allowedNetworks.length===0?(m(),y("span",At,u(s.$t("settings.sessionNoPatterns")),1)):U("",!0),(m(!0),y(q,null,Q(i(l).security.allowedNetworks,o=>(m(),N(ie,{key:o,closable:"",size:"default",class:"mr-1 mb-1",onClose:re=>c(o)},{default:n(()=>[b(u(o),1)]),_:2},1032,["onClose"]))),128))]),a("div",Bt,u(s.$t("settings.allowedNetworksHint")),1)]),a("div",It,[a("div",Kt,[a("span",Ft,u(s.$t("settings.maxConcurrentConnections")),1),t(R,{modelValue:i(l).security.maxConcurrentConnections,"onUpdate:modelValue":e[12]||(e[12]=o=>i(l).security.maxConcurrentConnections=o),min:1,max:1e3,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"])]),a("div",Lt,[a("span",Ot,u(s.$t("settings.maxConnections")),1),t(R,{modelValue:i(l).security.maxConnections,"onUpdate:modelValue":e[13]||(e[13]=o=>i(l).security.maxConnections=o),min:1,max:1e3,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"])]),a("div",qt,[a("span",Gt,u(s.$t("settings.connectionTimeout")),1),a("div",Ht,[t(R,{modelValue:C.value,"onUpdate:modelValue":e[14]||(e[14]=o=>C.value=o),min:1,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t(I,{modelValue:$.value,"onUpdate:modelValue":e[15]||(e[15]=o=>$.value=o),style:{width:"128px","flex-shrink":"0"}},{default:n(()=>[t(f,{label:s.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(f,{label:s.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"]),t(f,{label:s.$t("settings.timeUnits.hours"),value:"hours"},null,8,["label"]),t(f,{label:s.$t("settings.timeUnits.days"),value:"days"},null,8,["label"])]),_:1},8,["modelValue"])])]),a("div",Zt,[a("span",Wt,u(s.$t("settings.idleConnectionTimeout")),1),a("div",Jt,[t(R,{modelValue:h.value,"onUpdate:modelValue":e[16]||(e[16]=o=>h.value=o),min:1,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t(I,{modelValue:P.value,"onUpdate:modelValue":e[17]||(e[17]=o=>P.value=o),style:{width:"128px","flex-shrink":"0"}},{default:n(()=>[t(f,{label:s.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(f,{label:s.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"]),t(f,{label:s.$t("settings.timeUnits.hours"),value:"hours"},null,8,["label"]),t(f,{label:s.$t("settings.timeUnits.days"),value:"days"},null,8,["label"])]),_:1},8,["modelValue"])])])])]),_:1},8,["model"])):U("",!0)])]),_:1}),t(J,{name:"startup"},{label:n(()=>[a("span",Qt,[t(r,null,{default:n(()=>[t(i(ze))]),_:1}),a("span",null,u(s.$t("settings.startupTab")),1)])]),default:n(()=>[a("div",Xt,[i(l).system?(m(),N(se,{key:0,model:i(l).system,"label-position":"left","label-width":"260px"},{default:n(()=>[a("div",Yt,[a("span",es,u(s.$t("settings.startupDelay")),1),a("div",ts,[t(R,{modelValue:X.value,"onUpdate:modelValue":e[18]||(e[18]=o=>X.value=o),style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t(I,{modelValue:g.value,"onUpdate:modelValue":e[19]||(e[19]=o=>g.value=o),style:{width:"128px","flex-shrink":"0"}},{default:n(()=>[t(f,{label:s.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(f,{label:s.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"])]),_:1},8,["modelValue"])])]),a("div",ss,[a("span",ls,u(s.$t("settings.readyTimeout")),1),a("div",as,[t(R,{modelValue:Y.value,"onUpdate:modelValue":e[20]||(e[20]=o=>Y.value=o),style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t(I,{modelValue:A.value,"onUpdate:modelValue":e[21]||(e[21]=o=>A.value=o),style:{width:"128px","flex-shrink":"0"}},{default:n(()=>[t(f,{label:s.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(f,{label:s.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"])]),_:1},8,["modelValue"])])]),a("div",ns,[a("span",os,u(s.$t("settings.maxConnectRetries")),1),t(R,{modelValue:Z.value,"onUpdate:modelValue":e[22]||(e[22]=o=>Z.value=o),min:0,max:10,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"])]),a("div",is,[a("span",us,u(s.$t("settings.connectRetryDelay")),1),a("div",ds,[t(R,{modelValue:ee.value,"onUpdate:modelValue":e[23]||(e[23]=o=>ee.value=o),style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t(I,{modelValue:B.value,"onUpdate:modelValue":e[24]||(e[24]=o=>B.value=o),style:{width:"128px","flex-shrink":"0"}},{default:n(()=>[t(f,{label:s.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(f,{label:s.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"])]),_:1},8,["modelValue"])])])]),_:1},8,["model"])):U("",!0)])]),_:1}),t(J,{name:"tags"},{label:n(()=>[a("span",rs,[t(r,null,{default:n(()=>[t(i(je))]),_:1}),a("span",null,u(s.$t("settings.tagsTab")),1)])]),default:n(()=>[a("div",ms,[t(gt,{modelValue:i(l).tagDefinitions,"onUpdate:modelValue":e[25]||(e[25]=o=>i(l).tagDefinitions=o)},null,8,["modelValue"])])]),_:1}),t(J,{name:"gateway"},{label:n(()=>[a("span",gs,[t(r,null,{default:n(()=>[t(i(Ae))]),_:1}),a("span",null,u(s.$t("settings.sessionTab")),1)])]),default:n(()=>[a("div",cs,[i(l).system.session?(m(),N(se,{key:0,model:i(l).system.session,"label-position":"left","label-width":"260px"},{default:n(()=>[t(w,{label:s.$t("settings.sessionDefaultSessionMode")},{default:n(()=>[t(Ve,{modelValue:i(l).system.session.defaultSessionMode,"onUpdate:modelValue":e[26]||(e[26]=o=>i(l).system.session.defaultSessionMode=o)},{default:n(()=>[t(de,{value:"stateful"},{default:n(()=>[b(u(s.$t("settings.sessionStateful")),1)]),_:1}),t(de,{value:"stateless"},{default:n(()=>[b(u(s.$t("settings.sessionStateless")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"]),a("div",fs,[a("span",ps,u(s.$t("settings.sessionPatternRules")),1),e[36]||(e[36]=a("div",{class:"h-px bg-gray-200 dark:bg-gray-700 flex-1"},null,-1))]),a("div",ys,[a("div",vs,[a("h4",bs,u(s.$t("settings.sessionStatefulPatterns")),1),t(V,{size:"small",onClick:e[27]||(e[27]=o=>M("stateful"))},{default:n(()=>[b(" + "+u(s.$t("action.add")),1)]),_:1})]),a("div",_s,[t(O,{modelValue:_.value,"onUpdate:modelValue":e[28]||(e[28]=o=>_.value=o),placeholder:"claude-code",class:"flex-1",size:"small",onKeyup:e[29]||(e[29]=ue(o=>M("stateful"),["enter"]))},null,8,["modelValue"])]),a("div",xs,[K.value.length===0?(m(),y("span",hs,u(s.$t("settings.sessionNoPatterns")),1)):U("",!0),(m(!0),y(q,null,Q(K.value,o=>(m(),N(ie,{key:o,closable:"",size:"default",class:"mr-1 mb-1",onClose:re=>te("stateful",o)},{default:n(()=>[b(u(o),1)]),_:2},1032,["onClose"]))),128))])]),a("div",Vs,[a("div",ks,[a("h4",$s,u(s.$t("settings.sessionStatelessPatterns")),1),t(V,{size:"small",onClick:e[30]||(e[30]=o=>M("stateless"))},{default:n(()=>[b(" + "+u(s.$t("action.add")),1)]),_:1})]),a("div",ws,[t(O,{modelValue:T.value,"onUpdate:modelValue":e[31]||(e[31]=o=>T.value=o),placeholder:"cherrystudio",class:"flex-1",size:"small",onKeyup:e[32]||(e[32]=ue(o=>M("stateless"),["enter"]))},null,8,["modelValue"])]),a("div",Cs,[F.value.length===0?(m(),y("span",Ts,u(s.$t("settings.sessionNoPatterns")),1)):U("",!0),(m(!0),y(q,null,Q(F.value,o=>(m(),N(ie,{key:o,closable:"",size:"default",class:"mr-1 mb-1",onClose:re=>te("stateless",o)},{default:n(()=>[b(u(o),1)]),_:2},1032,["onClose"]))),128))]),a("div",Us,u(s.$t("settings.sessionPatternsHint")),1)])]),_:1},8,["model"])):U("",!0)])]),_:1})]),_:1},8,["modelValue"])])),[[$e,i(H)]])])])}}});export{Fs as default};
@@ -0,0 +1 @@
1
+ import{j as X,E as V,l as O,Q as Y}from"./index-DwhULJXZ.js";import{E as Z,b as ee,a as te}from"./el-overlay-MbIUXSQ7.js";import{a as ae,E as le}from"./el-input-C_p2Qw42.js";import{t as oe,aa as se,c as J,r as h,h as A,y as D,u as s,G as f,C as n,A as m,$ as o,V as k,O as w,P as z,ai as M,a0 as C,x as r}from"./vue-vendor-ClSvefnQ.js";import{_ as ne}from"./_plugin-vue_export-helper-DlAUqK2U.js";const F="mcp-hub-lite",re={class:"flex flex-col h-[60vh]"},ie={key:0,class:"mb-4 text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800/50 p-3 rounded-lg border border-gray-100 dark:border-gray-700/50 max-h-32 overflow-y-auto"},ce={key:1,class:"mb-4"},ue={class:"flex items-center"},de={class:"font-medium text-gray-700 dark:text-gray-300 mr-2 whitespace-nowrap"},me={key:0,class:"mt-1 flex items-center gap-1 flex-wrap"},pe={class:"text-xs text-gray-500"},fe={class:"flex-1 flex gap-4 min-h-0"},ge={class:"flex-1 flex flex-col min-w-0"},ve={class:"flex justify-between items-center mb-2"},ye={class:"font-medium text-gray-700 dark:text-gray-300"},he={class:"flex-1 flex flex-col min-w-0 border-l border-gray-200 dark:border-gray-700 pl-4"},_e={class:"flex justify-between items-center mb-2"},xe={class:"font-medium text-gray-700 dark:text-gray-300"},be={class:"flex-1 overflow-auto bg-gray-50 dark:bg-[#0f172a] rounded-lg border border-gray-200 dark:border-gray-700 p-4 font-mono text-sm"},ke={key:0,class:"whitespace-pre-wrap break-words text-gray-600 dark:text-gray-400"},we={key:1,class:"whitespace-pre-wrap break-words text-green-600 dark:text-green-400"},Ce={key:2,class:"whitespace-pre-wrap break-words text-red-600 dark:text-red-400"},Se={key:3,class:"whitespace-pre-wrap break-words text-gray-600 dark:text-gray-400"},Ne={class:"flex justify-between items-center"},Ve={class:"text-xs text-gray-500"},De={key:0},Ie={class:"flex gap-2"},Ee=oe({__name:"ToolCallDialog",props:{modelValue:{type:Boolean},serverName:{},toolName:{},description:{},inputSchema:{},hideInstanceSelect:{type:Boolean}},emits:["update:modelValue"],setup(g,{emit:U}){const{t:a}=se(),i=g,L=U,I=J({get:()=>i.modelValue,set:e=>L("update:modelValue",e)}),_=h("{}"),v=h(null),d=h(null),S=h(!1),y=h(!1),x=h([]),p=h(null),E=J(()=>{if(p.value)return x.value.find(e=>e.id===p.value)?.tags}),T=J(()=>i.inputSchema?JSON.stringify(i.inputSchema,null,2):"{}"),j=async()=>{if(i.serverName)try{const e=await O.get(`/web/server-instances/${i.serverName}`),t=Array.isArray(e)?e:[];x.value=t,t.length>0&&(p.value=t[0].id)}catch(e){console.error("Failed to fetch server instances:",e),x.value=[],p.value=null}};A(()=>i.serverName,()=>{j()}),A(()=>i.modelValue,e=>{if(e){const t=B(i.inputSchema);_.value=JSON.stringify(t,null,2),v.value=null,d.value=null,j()}},{immediate:!0});function B(e){if(!e||!e.properties)return{};const t={};for(const[l,b]of Object.entries(e.properties)){const c=b;c.default!==void 0?t[l]=c.default:c.type==="string"?t[l]=R(c.description)??"":c.type==="number"||c.type==="integer"?t[l]=0:c.type==="boolean"?t[l]=!1:c.type==="array"?t[l]=[]:c.type==="object"?t[l]=B(c):t[l]=null}return t}function R(e){return e?e.match(/Must be "(.+?)"/)?.[1]:void 0}function H(){try{const e=JSON.parse(_.value);_.value=JSON.stringify(e,null,2)}catch{V.warning(a("toolCallDialog.invalidJson"))}}function P(){y.value=!y.value}function q(e){const t=e.index??"?",l=e.displayName||e.id;return`#${t} [${l}]`}function G(){console.log("Selected instance:",p.value)}async function Q(){try{let e;try{e=JSON.parse(_.value)}catch{V.error(a("toolCallDialog.invalidJsonArguments"));return}S.value=!0,v.value=null,d.value=null,y.value=!1;let t;if(i.serverName&&i.serverName!==F){const l=p.value?x.value.find(b=>b.id===p.value):void 0;t=await O.post(`/web/hub-tools/servers/${i.serverName}/tools/${i.toolName}/call`,{toolArgs:e,requestOptions:l?{sessionId:l.id,tags:l.tags&&Object.keys(l.tags).length>0?l.tags:void 0}:void 0})}else t=await O.post(`/web/hub-tools/system/${i.toolName}/call`,{toolArgs:e});v.value=JSON.stringify(t,null,2),V.success(a("toolCallDialog.executionSuccessful"))}catch(e){console.error("Tool execution failed:",e),e instanceof Error?d.value=e.message||String(e):d.value=String(e),e instanceof Y&&e.data?d.value=typeof e.data=="string"?e.data:JSON.stringify(e.data,null,2):typeof e=="object"&&e!==null&&"response"in e&&e.response?.data&&(d.value=JSON.stringify(e.response.data,null,2)),V.error(a("toolCallDialog.executionFailed"))}finally{S.value=!1}}return(e,t)=>{const l=ee,b=te,c=ae,N=X,K=le,W=Z;return r(),D(W,{modelValue:I.value,"onUpdate:modelValue":t[3]||(t[3]=u=>I.value=u),title:s(a)("toolCallDialog.title",{toolName:g.toolName}),width:"800px",class:"tool-call-dialog","destroy-on-close":""},{footer:f(()=>[n("div",Ne,[n("div",Ve,[S.value?(r(),m("span",De,o(s(a)("toolCallDialog.executing")),1)):k("",!0)]),n("div",Ie,[w(N,{onClick:t[2]||(t[2]=u=>I.value=!1)},{default:f(()=>[C(o(s(a)("action.cancel")),1)]),_:1}),w(N,{type:"primary",loading:S.value,onClick:Q},{default:f(()=>[C(o(s(a)("toolCallDialog.execute")),1)]),_:1},8,["loading"])])])]),default:f(()=>[n("div",re,[g.description?(r(),m("div",ie,o(g.description),1)):k("",!0),g.serverName&&g.serverName!==s(F)&&!g.hideInstanceSelect?(r(),m("div",ce,[n("div",ue,[n("span",de,o(s(a)("toolCallDialog.instance")),1),w(b,{modelValue:p.value,"onUpdate:modelValue":t[0]||(t[0]=u=>p.value=u),placeholder:s(a)("toolCallDialog.selectInstance"),size:"small",class:"flex-1",onChange:G},{default:f(()=>[(r(!0),m(z,null,M(x.value,u=>(r(),D(l,{key:u.id,label:q(u),value:u.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])]),E.value&&Object.keys(E.value).length>0?(r(),m("div",me,[n("span",pe,o(s(a)("toolCallDialog.instanceTags"))+":",1),(r(!0),m(z,null,M(E.value,(u,$)=>(r(),D(c,{key:$,size:"small",type:"info"},{default:f(()=>[C(o($)+"="+o(u),1)]),_:2},1024))),128))])):k("",!0)])):k("",!0),n("div",fe,[n("div",ge,[n("div",ve,[n("span",ye,o(s(a)("toolCallDialog.arguments")),1),w(N,{link:"",type:"primary",size:"small",onClick:H},{default:f(()=>[C(o(s(a)("toolCallDialog.formatJson")),1)]),_:1})]),w(K,{modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=u=>_.value=u),type:"textarea",class:"flex-1 font-mono custom-textarea","input-style":{height:"100%",fontFamily:"monospace"},placeholder:'{"key": "value"}',resize:"none",maxlength:"1000000","show-word-limit":""},null,8,["modelValue"])]),n("div",he,[n("div",_e,[n("span",xe,o(y.value?s(a)("toolCallDialog.inputSchema"):v.value||d.value?s(a)("toolCallDialog.response"):s(a)("toolCallDialog.inputSchema")),1),v.value||d.value||y.value?(r(),D(N,{key:0,link:"",type:"info",size:"small",onClick:P},{default:f(()=>[C(o(y.value?s(a)("toolCallDialog.showResponse"):s(a)("toolCallDialog.showInputSchema")),1)]),_:1})):k("",!0)]),n("div",be,[y.value?(r(),m("pre",ke,o(T.value),1)):v.value?(r(),m("pre",we,o(v.value),1)):d.value?(r(),m("pre",Ce,o(d.value),1)):(r(),m("pre",Se,o(T.value),1))])])])])]),_:1},8,["modelValue","title"])}}}),$e=ne(Ee,[["__scopeId","data-v-60262496"]]);export{F as M,$e as T};
@@ -0,0 +1 @@
1
+ import{u as A,I as G,b as K,l as U,j as Q,J as W,K as j,s as X,L as Y}from"./index-DwhULJXZ.js";import{a as Z}from"./el-skeleton-item-qj0eQP4s.js";import{E as ee}from"./el-input-C_p2Qw42.js";import{t as P,A as i,C as s,J as E,$ as n,V as H,x as a,aa as te,r as u,c as se,j as oe,O as l,G as y,u as p,a0 as z,H as F,L,P as T,ai as S,y as V}from"./vue-vendor-ClSvefnQ.js";import{M as R,T as ae}from"./ToolCallDialog-DYS-ADCL.js";import{_ as le}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./event-BB_Ol6Sd.js";import"./el-overlay-MbIUXSQ7.js";const ne={class:"min-w-0 mb-3"},re={class:"flex items-center gap-2 mb-2"},ie=["title"],ce=["title"],M=P({__name:"ToolCard",props:{title:{},description:{},tagName:{},tagClass:{}},emits:["call"],setup(c){return(h,g)=>(a(),i("div",{class:"bg-white dark:bg-[#1e293b] border border-gray-200 dark:border-gray-700 rounded-lg p-4 flex flex-col justify-between shadow-sm hover:shadow-md transition-shadow h-full cursor-pointer",onClick:g[0]||(g[0]=_=>h.$emit("call"))},[s("div",ne,[s("div",re,[c.tagName?(a(),i("span",{key:0,class:E(["shrink-0 px-2 py-0.5 rounded-full text-xs font-medium whitespace-nowrap",c.tagClass||"bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300"])},n(c.tagName),3)):H("",!0),s("span",{class:"font-bold text-gray-900 dark:text-gray-100 font-mono text-base break-all",title:c.title},n(c.title),9,ie)]),s("p",{class:"text-sm text-gray-600 dark:text-gray-400 line-clamp-2",title:c.description},n(c.description||h.$t("tools.noDescription")),9,ce)])]))}}),de={class:"tools-view py-6 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto w-full h-full flex flex-col overflow-hidden bg-gray-50 dark:bg-[#0f172a] transition-colors duration-300"},me={class:"mb-6 shrink-0"},ue={class:"text-2xl font-semibold text-gray-900 dark:text-white mb-4"},ve={class:"relative"},pe={class:"flex-1 overflow-y-auto custom-scrollbar space-y-8 pr-2"},ge={class:"text-lg font-bold text-gray-900 dark:text-white"},he={class:"text-sm font-normal text-gray-500 ml-2"},fe={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-8 transition-all duration-300"},xe={class:"flex items-center gap-2 mb-4"},ye={class:"text-lg font-bold text-gray-900 dark:text-white"},_e={class:"text-sm font-normal text-gray-500 ml-2"},be={key:0,class:"space-y-4"},ke={key:1,class:"text-center py-8 text-gray-500"},we={key:2,class:"space-y-6"},Ce=["onClick"],Ne={class:"text-xs bg-gray-100 dark:bg-gray-800 px-2 py-0.5 rounded-full"},$e={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 transition-all duration-300"},Te=P({__name:"ToolsView",setup(c){const{t:h}=te(),g=u(""),_=u(!1),I=u([]),k=A(),w=u([]),C=u(!1),v=u(null),f=u(new Set),b=u(!1);function J(e){f.value.has(e)?f.value.delete(e):f.value.add(e)}async function O(){try{const e=await U.get("/web/hub-tools/system");w.value=e.map(t=>({...t,serverName:R})).sort((t,d)=>t.name.localeCompare(d.name))}catch(e){console.error("Failed to fetch system tools:",e)}}function B(e){v.value={...e,serverName:e.serverName},C.value=!0}async function D(){_.value=!0;try{const e=await U.get(`/web/search?q=${encodeURIComponent(g.value)}`);I.value=(e.results||[]).map(t=>({tool:{name:t.name,description:t.description,serverName:t.serverName,inputSchema:t.inputSchema},score:0}))}catch(e){console.error("Failed to fetch tools:",e)}finally{_.value=!1}}function q(){D()}const N=se(()=>{const e={};return I.value.forEach(t=>{if(!t?.tool)return;const x=k.servers.find($=>$.name===t.tool.serverName)?.status==="online"?h("tools.online"):h("tools.offline"),r=t.tool.serverName?`${t.tool.serverName} (${x})`:"Unknown";e[r]||(e[r]=[]),e[r].push(t)}),Object.entries(e).map(([t,d])=>({serverName:t,tools:d.sort((x,r)=>x.tool.name.localeCompare(r.tool.name))})).sort((t,d)=>t.serverName.localeCompare(d.serverName))});return oe(()=>{O(),D(),k.servers.length===0&&k.fetchServers()}),(e,t)=>{const d=Q,x=ee,r=K,$=Z;return a(),i("div",de,[s("div",me,[s("h2",ue,n(e.$t("tools.title")),1),s("div",ve,[l(x,{modelValue:g.value,"onUpdate:modelValue":t[0]||(t[0]=o=>g.value=o),placeholder:e.$t("tools.searchPlaceholder"),class:"w-full",size:"large","prefix-icon":p(G),onInput:q},{append:y(()=>[l(d,{icon:p(W)},null,8,["icon"])]),_:1},8,["modelValue","placeholder","prefix-icon"])])]),s("div",pe,[s("section",null,[s("div",{class:"flex items-center gap-2 mb-4 cursor-pointer select-none hover:text-gray-700 dark:hover:text-gray-200 transition-colors",onClick:t[1]||(t[1]=o=>b.value=!b.value)},[l(r,{class:E(["transition-transform duration-200",{"-rotate-90":b.value}])},{default:y(()=>[l(p(j))]),_:1},8,["class"]),l(r,{class:"text-gray-900 dark:text-white",size:20},{default:y(()=>[l(p(X))]),_:1}),s("h3",ge,[z(n(e.$t("tools.systemTools"))+" ",1),s("span",he,"("+n(w.value.length)+")",1)])]),F(s("div",fe,[(a(!0),i(T,null,S(w.value,o=>(a(),V(M,{key:o.name,title:o.name,description:o.description,"tag-name":e.$t("tools.systemTag"),"tag-class":"bg-blue-100 text-blue-700 dark:bg-blue-900/50 dark:text-blue-300",onCall:m=>B(o)},null,8,["title","description","tag-name","onCall"]))),128))],512),[[L,!b.value]])]),s("section",null,[s("div",xe,[l(r,{class:"text-gray-900 dark:text-white",size:20},{default:y(()=>[l(p(Y))]),_:1}),s("h3",ye,[z(n(e.$t("tools.aggregatedTools"))+" ",1),s("span",_e,"("+n(N.value.reduce((o,m)=>o+m.tools.length,0))+")",1)])]),_.value?(a(),i("div",be,[l($,{animated:"",count:3})])):N.value.length===0?(a(),i("div",ke,n(e.$t("tools.noToolsFound")),1)):(a(),i("div",we,[(a(!0),i(T,null,S(N.value,o=>(a(),i("div",{key:o.serverName,class:"space-y-3"},[s("div",{class:"flex items-center gap-2 text-sm font-medium text-gray-500 dark:text-gray-400 px-1 cursor-pointer select-none hover:text-gray-700 dark:hover:text-gray-200 transition-colors",onClick:m=>J(o.serverName)},[l(r,{class:E(["transition-transform duration-200",{"-rotate-90":f.value.has(o.serverName)}])},{default:y(()=>[l(p(j))]),_:1},8,["class"]),s("span",null,n(o.serverName),1),s("span",Ne,n(o.tools.length),1)],8,Ce),F(s("div",$e,[(a(!0),i(T,null,S(o.tools,m=>(a(),V(M,{key:m.tool.name,title:m.tool.name,description:m.tool.description,onCall:Se=>B(m.tool)},null,8,["title","description","onCall"]))),128))],512),[[L,!f.value.has(o.serverName)]])]))),128))]))])]),v.value?(a(),V(ae,{key:0,modelValue:C.value,"onUpdate:modelValue":t[2]||(t[2]=o=>C.value=o),"server-name":v.value.serverName,"tool-name":v.value.name,description:v.value.description,"input-schema":v.value.inputSchema,"hide-instance-select":v.value.serverName!==p(R)},null,8,["modelValue","server-name","tool-name","description","input-schema","hide-instance-select"])):H("",!0)])}}}),Fe=le(Te,[["__scopeId","data-v-c6b0680d"]]);export{Fe as default};
@@ -0,0 +1 @@
1
+ import{V as T,a0 as q,bA as U,bB as B,W as Q,bC as X,bD as V,Z as M,$ as z,bE as D,bF as k,bG as ee,bH as re,bI as w,bJ as m,a1 as G,bK as d,bL as K,bM as l,a2 as te,a7 as ne,a4 as ae,bN as oe}from"./index-DwhULJXZ.js";var S=Object.create,se=(function(){function e(){}return function(r){if(!T(r))return{};if(S)return S(r);e.prototype=r;var t=new e;return e.prototype=void 0,t}})();function ie(e,r){var t=-1,a=e.length;for(r||(r=Array(a));++t<a;)r[t]=e[t];return r}function ce(e,r){for(var t=-1,a=e==null?0:e.length;++t<a&&r(e[t],t,e)!==!1;);return e}function y(e,r,t,a){var b=!t;t||(t={});for(var s=-1,o=r.length;++s<o;){var c=r[s],i=void 0;i===void 0&&(i=e[c]),b?q(t,c,i):U(t,c,i)}return t}function fe(e){var r=[];if(e!=null)for(var t in Object(e))r.push(t);return r}var ue=Object.prototype,be=ue.hasOwnProperty;function ge(e){if(!T(e))return fe(e);var r=B(e),t=[];for(var a in e)a=="constructor"&&(r||!be.call(e,a))||t.push(a);return t}function A(e){return Q(e)?X(e,!0):ge(e)}var N=V(Object.getPrototypeOf,Object);function le(e,r){return e&&y(r,M(r),e)}function ye(e,r){return e&&y(r,A(r),e)}var _=typeof exports=="object"&&exports&&!exports.nodeType&&exports,I=_&&typeof module=="object"&&module&&!module.nodeType&&module,pe=I&&I.exports===_,x=pe?z.Buffer:void 0,C=x?x.allocUnsafe:void 0;function Te(e,r){if(r)return e.slice();var t=e.length,a=C?C(t):new e.constructor(t);return e.copy(a),a}function de(e,r){return y(e,D(e),r)}var Ae=Object.getOwnPropertySymbols,R=Ae?function(e){for(var r=[];e;)ee(r,D(e)),e=N(e);return r}:k;function je(e,r){return y(e,R(e),r)}function he(e){return re(e,A,R)}var Oe=Object.prototype,ve=Oe.hasOwnProperty;function $e(e){var r=e.length,t=new e.constructor(r);return r&&typeof e[0]=="string"&&ve.call(e,"index")&&(t.index=e.index,t.input=e.input),t}function j(e){var r=new e.constructor(e.byteLength);return new w(r).set(new w(e)),r}function we(e,r){var t=r?j(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.byteLength)}var me=/\w*$/;function Se(e){var r=new e.constructor(e.source,me.exec(e));return r.lastIndex=e.lastIndex,r}var E=m?m.prototype:void 0,F=E?E.valueOf:void 0;function Ie(e){return F?Object(F.call(e)):{}}function xe(e,r){var t=r?j(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.length)}var Ce="[object Boolean]",Ee="[object Date]",Fe="[object Map]",Le="[object Number]",Pe="[object RegExp]",Ue="[object Set]",Be="[object String]",Me="[object Symbol]",De="[object ArrayBuffer]",Ge="[object DataView]",Ke="[object Float32Array]",Ne="[object Float64Array]",_e="[object Int8Array]",Re="[object Int16Array]",We="[object Int32Array]",He="[object Uint8Array]",Je="[object Uint8ClampedArray]",Ye="[object Uint16Array]",Ze="[object Uint32Array]";function qe(e,r,t){var a=e.constructor;switch(r){case De:return j(e);case Ce:case Ee:return new a(+e);case Ge:return we(e,t);case Ke:case Ne:case _e:case Re:case We:case He:case Je:case Ye:case Ze:return xe(e,t);case Fe:return new a;case Le:case Be:return new a(e);case Pe:return Se(e);case Ue:return new a;case Me:return Ie(e)}}function Qe(e){return typeof e.constructor=="function"&&!B(e)?se(N(e)):{}}var Xe="[object Map]";function Ve(e){return G(e)&&d(e)==Xe}var L=l&&l.isMap,ze=L?K(L):Ve,ke="[object Set]";function er(e){return G(e)&&d(e)==ke}var P=l&&l.isSet,rr=P?K(P):er,tr=1,nr=2,ar=4,W="[object Arguments]",or="[object Array]",sr="[object Boolean]",ir="[object Date]",cr="[object Error]",H="[object Function]",fr="[object GeneratorFunction]",ur="[object Map]",br="[object Number]",J="[object Object]",gr="[object RegExp]",lr="[object Set]",yr="[object String]",pr="[object Symbol]",Tr="[object WeakMap]",dr="[object ArrayBuffer]",Ar="[object DataView]",jr="[object Float32Array]",hr="[object Float64Array]",Or="[object Int8Array]",vr="[object Int16Array]",$r="[object Int32Array]",wr="[object Uint8Array]",mr="[object Uint8ClampedArray]",Sr="[object Uint16Array]",Ir="[object Uint32Array]",n={};n[W]=n[or]=n[dr]=n[Ar]=n[sr]=n[ir]=n[jr]=n[hr]=n[Or]=n[vr]=n[$r]=n[ur]=n[br]=n[J]=n[gr]=n[lr]=n[yr]=n[pr]=n[wr]=n[mr]=n[Sr]=n[Ir]=!0;n[cr]=n[H]=n[Tr]=!1;function p(e,r,t,a,b,s){var o,c=r&tr,i=r&nr,Y=r&ar;if(t&&(o=b?t(e,a,b,s):t(e)),o!==void 0)return o;if(!T(e))return e;var h=ae(e);if(h){if(o=$e(e),!c)return ie(e,o)}else{var g=d(e),O=g==H||g==fr;if(te(e))return Te(e,c);if(g==J||g==W||O&&!b){if(o=i||O?{}:Qe(e),!c)return i?je(e,ye(o,e)):de(e,le(o,e))}else{if(!n[g])return b?e:{};o=qe(e,g,c)}}s||(s=new ne);var v=s.get(e);if(v)return v;s.set(e,o),rr(e)?e.forEach(function(f){o.add(p(f,r,t,f,e,s))}):ze(e)&&e.forEach(function(f,u){o.set(u,p(f,r,t,u,e,s))});var Z=Y?i?he:oe:i?A:M,$=h?void 0:Z(e);return ce($||e,function(f,u){$&&(u=f,f=e[u]),U(o,u,p(f,r,t,u,e,s))}),o}export{ie as a,Te as b,y as c,xe as d,p as e,he as f,N as g,Qe as i,A as k};