@loop_ouroboros/mcp-hub-lite 1.2.6 → 1.2.8

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 (101) hide show
  1. package/CHANGELOG.md +666 -640
  2. package/dist/client/assets/HomeView-CgEri1kD.js +1 -0
  3. package/dist/client/assets/{ResourceDetailView-BGBtmsyc.js → ResourceDetailView-B8Qo1_jK.js} +1 -1
  4. package/dist/client/assets/ResourcesView-B12FzUdo.js +1 -0
  5. package/dist/client/assets/ServerDashboard-B3O-crvv.js +1 -0
  6. package/dist/client/assets/ServerDetail-Bz5_9yOY.js +2 -0
  7. package/dist/client/assets/{ServerDetail-CtnNKJGx.css → ServerDetail-CXg8rI3q.css} +1 -1
  8. package/dist/client/assets/{ServerListView-C7kcd4GC.js → ServerListView-SlZN8ppC.js} +2 -2
  9. package/dist/client/assets/{ServerStatusTags.vue_vue_type_script_setup_true_lang-BHhwEuGe.js → ServerStatusTags.vue_vue_type_script_setup_true_lang-DmGg4uuV.js} +1 -1
  10. package/dist/client/assets/SettingsView-D8fiOG0O.js +1 -0
  11. package/dist/client/assets/ToolCallDialog-DYEdhnCk.js +1 -0
  12. package/dist/client/assets/ToolsView-BreAl-yn.js +1 -0
  13. package/dist/client/assets/{_baseClone-kbJbcBJT.js → _baseClone-BYxCbA_9.js} +1 -1
  14. package/dist/client/assets/{el-form-item-iQ0G8e97.js → el-form-item-ySymCPMr.js} +2 -2
  15. package/dist/client/assets/el-input-C85p6Nqj.js +1 -0
  16. package/dist/client/assets/el-loading-DIjKEx81.js +1 -0
  17. package/dist/client/assets/{el-overlay-Cy5xg31y.js → el-overlay-B_CxiSem.js} +1 -1
  18. package/dist/client/assets/el-radio-group-BjkTCPRf.js +1 -0
  19. package/dist/client/assets/el-skeleton-item-CupTKK6n.js +1 -0
  20. package/dist/client/assets/{el-switch-KpjV93lm.js → el-switch-BosIJ9jf.js} +1 -1
  21. package/dist/client/assets/el-tab-pane-BydxdJoc.js +1 -0
  22. package/dist/client/assets/{el-table-column-fofd_2n-.js → el-table-column-DV5TZOUW.js} +1 -1
  23. package/dist/client/assets/index-kC4mf0Vo.js +2 -0
  24. package/dist/client/assets/{index-DpH6ZSbs.css → index-xJkq2euk.css} +1 -1
  25. package/dist/client/assets/omit-DxDGRttI.js +1 -0
  26. package/dist/client/assets/{raf-MWAHt9ca.js → raf-Y9AoxecD.js} +1 -1
  27. package/dist/client/assets/{vue-vendor-CbgVSHIh.js → vue-vendor-Dwcr0jep.js} +1 -1
  28. package/dist/client/index.html +3 -3
  29. package/dist/server/shared/types/websocket.types.d.ts +28 -19
  30. package/dist/server/shared/types/websocket.types.d.ts.map +1 -1
  31. package/dist/server/shared/types/websocket.types.js +3 -2
  32. package/dist/server/src/api/web/health.d.ts.map +1 -1
  33. package/dist/server/src/api/web/health.js +5 -0
  34. package/dist/server/src/api/ws/ws-handler.d.ts.map +1 -1
  35. package/dist/server/src/api/ws/ws-handler.js +4 -3
  36. package/dist/server/src/app.d.ts +7 -0
  37. package/dist/server/src/app.d.ts.map +1 -1
  38. package/dist/server/src/app.js +87 -0
  39. package/dist/server/src/models/event.model.d.ts +0 -13
  40. package/dist/server/src/models/event.model.d.ts.map +1 -1
  41. package/dist/server/src/models/server.model.d.ts +0 -29
  42. package/dist/server/src/models/server.model.d.ts.map +1 -1
  43. package/dist/server/src/models/types.d.ts +1 -70
  44. package/dist/server/src/models/types.d.ts.map +1 -1
  45. package/dist/server/src/models/types.js +1 -67
  46. package/dist/server/src/server/dev-server.js +24 -6
  47. package/dist/server/src/services/connection/connection-manager.d.ts +13 -0
  48. package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -1
  49. package/dist/server/src/services/connection/connection-manager.js +122 -5
  50. package/dist/server/src/services/event-bus.service.d.ts +0 -4
  51. package/dist/server/src/services/event-bus.service.d.ts.map +1 -1
  52. package/dist/server/src/services/event-bus.service.js +1 -6
  53. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -1
  54. package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +1 -0
  55. package/dist/server/src/services/mcp-oauth/index.d.ts +5 -0
  56. package/dist/server/src/services/mcp-oauth/index.d.ts.map +1 -0
  57. package/dist/server/src/services/mcp-oauth/index.js +3 -0
  58. package/dist/server/src/services/mcp-oauth/oauth-callback-server.d.ts +19 -0
  59. package/dist/server/src/services/mcp-oauth/oauth-callback-server.d.ts.map +1 -0
  60. package/dist/server/src/services/mcp-oauth/oauth-callback-server.js +100 -0
  61. package/dist/server/src/services/mcp-oauth/oauth-provider.d.ts +42 -0
  62. package/dist/server/src/services/mcp-oauth/oauth-provider.d.ts.map +1 -0
  63. package/dist/server/src/services/mcp-oauth/oauth-provider.js +121 -0
  64. package/dist/server/src/services/mcp-oauth/oauth-token-storage.d.ts +23 -0
  65. package/dist/server/src/services/mcp-oauth/oauth-token-storage.d.ts.map +1 -0
  66. package/dist/server/src/services/mcp-oauth/oauth-token-storage.js +92 -0
  67. package/dist/server/src/services/mcp-oauth/oauth-types.d.ts +21 -0
  68. package/dist/server/src/services/mcp-oauth/oauth-types.d.ts.map +1 -0
  69. package/dist/server/src/services/mcp-oauth/oauth-types.js +4 -0
  70. package/dist/server/src/utils/network-security.d.ts +33 -0
  71. package/dist/server/src/utils/network-security.d.ts.map +1 -0
  72. package/dist/server/src/utils/network-security.js +83 -0
  73. package/dist/server/src/utils/transports/streamable-http-transport.d.ts +12 -1
  74. package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -1
  75. package/dist/server/src/utils/transports/streamable-http-transport.js +20 -1
  76. package/dist/server/src/utils/transports/transport-factory.d.ts +2 -0
  77. package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -1
  78. package/dist/server/src/utils/transports/transport-factory.js +17 -2
  79. package/dist/server/src/utils/transports/transport.interface.d.ts +2 -0
  80. package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -1
  81. package/dist/server/tests/unit/utils/network-security.test.d.ts +2 -0
  82. package/dist/server/tests/unit/utils/network-security.test.d.ts.map +1 -0
  83. package/dist/server/tests/unit/utils/network-security.test.js +123 -0
  84. package/dist/server/vite.config.js +1 -1
  85. package/package.json +111 -111
  86. package/dist/client/assets/HomeView-BnO4yIT9.js +0 -1
  87. package/dist/client/assets/ResourcesView-B5Xg0ynh.js +0 -1
  88. package/dist/client/assets/ServerDashboard-DYAVrrUk.js +0 -1
  89. package/dist/client/assets/ServerDetail-q94ZFfjL.js +0 -2
  90. package/dist/client/assets/SettingsView-BM6P5yrT.js +0 -1
  91. package/dist/client/assets/ToolCallDialog-BoAGxlB5.js +0 -1
  92. package/dist/client/assets/ToolsView-lqFhr7Bk.js +0 -1
  93. package/dist/client/assets/el-input-DkJq57wP.js +0 -1
  94. package/dist/client/assets/el-loading-C3v6a9xV.js +0 -1
  95. package/dist/client/assets/el-radio-group-C9QUL5mm.js +0 -1
  96. package/dist/client/assets/el-skeleton-item-Bbmpc0Xz.js +0 -1
  97. package/dist/client/assets/el-tab-pane-YsYuBcem.js +0 -1
  98. package/dist/client/assets/index-5tzIwwtS.js +0 -1
  99. package/dist/client/assets/index-MqHvQjDP.js +0 -2
  100. package/dist/client/assets/omit-CB4hTeTH.js +0 -1
  101. package/dist/client/assets/typescript-Bp3YSIOJ.js +0 -1
@@ -0,0 +1 @@
1
+ import{u as s,E as t}from"./index-kC4mf0Vo.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 +1 @@
1
- import{u as T,H as I,h as O,aK as S,E as $,O as M,J as z,w as G}from"./index-MqHvQjDP.js";import{v as H}from"./el-loading-C3v6a9xV.js";import{E as P,b as W}from"./el-radio-group-C9QUL5mm.js";import{t as F,a6 as J,c as f,r as g,j as K,A as n,C as t,O as l,G as d,u as s,$ as o,H as Q,a8 as X,a9 as x,a7 as Y,x as c}from"./vue-vendor-CbgVSHIh.js";import{_ as Z}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./event-BB_Ol6Sd.js";import"./omit-CB4hTeTH.js";import"./_baseClone-kbJbcBJT.js";const ee={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"},te={class:"flex items-center justify-between mb-6 shrink-0"},oe={class:"flex items-center gap-4"},se={class:"text-2xl font-bold text-gray-900 dark:text-white"},ae={class:"flex-1 flex flex-col gap-6 overflow-hidden"},le={class:"bg-white dark:bg-[#1e1e1e] rounded-lg shadow p-6 shrink-0 border border-gray-200 dark:border-gray-700"},re={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ne={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},ce={class:"font-mono text-sm break-all select-all"},ie={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},de={class:"font-mono text-sm"},ue={class:"md:col-span-2"},fe={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},me={class:"text-sm"},_e={class:"bg-white dark:bg-[#1e1e1e] rounded-lg shadow flex-1 flex flex-col overflow-hidden border border-gray-200 dark:border-gray-700"},ve={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]"},pe={class:"font-medium"},he={class:"flex gap-2"},be={class:"flex-1 overflow-auto p-6 bg-gray-50 dark:bg-[#0f172a]"},ye={key:0,class:"h-full flex items-center justify-center text-gray-400"},ge={key:1,class:"h-full flex flex-col items-center justify-center text-red-500"},xe={key:2,class:"h-full"},we={key:0,class:"h-full"},ke={key:0,class:"h-full flex items-center justify-center"},Re=["src"],je={key:1,class:"bg-white dark:bg-[#1e1e1e] p-4 rounded shadow-sm h-full overflow-auto font-mono text-sm whitespace-pre-wrap"},Ce={key:1,class:"h-full"},Ve={class:"bg-gray-900 text-gray-100 p-4 rounded-lg h-full overflow-auto font-mono text-sm"},Be=F({__name:"ResourceDetailView",setup(Ee){const m=X(),U=Y(),D=T(),{t:r}=J(),V=f(()=>{const e=m.params.name;return e.startsWith("hub://")&&e.replace("hub://","").split("/")[1]||e}),w=f(()=>m.query.uri),B=f(()=>{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"}),p=f(()=>m.query.mimeType||"application/octet-stream"),b=g(!1),y=g(null),_=g(null),k=g("preview"),E=f(()=>p.value.startsWith("image/")),R=f(()=>{if(!_.value)return"";const e=_.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=f(()=>{if(!E.value||!_.value)return"";const e=_.value;return e&&typeof e=="object"&&"blob"in e&&typeof e.blob=="string"?`data:${p.value};base64,${e.blob}`:""});function q(){U.back()}async function A(){b.value=!0,y.value=null;try{_.value=await D.readResource(V.value,w.value)}catch(e){y.value=e.message||"Failed to load resource content"}finally{b.value=!1}}function L(){const e=document.createElement("a"),i=new Blob([R.value],{type:p.value}),a=_.value;if(a&&typeof a=="object"&&"blob"in a&&typeof a.blob=="string"){const u=atob(a.blob),h=new Array(u.length);for(let v=0;v<u.length;v++)h[v]=u.charCodeAt(v);const j=new Uint8Array(h),C=new Blob([j],{type:p.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 K(()=>{w.value&&A()}),(e,i)=>{const a=O,u=$,h=W,j=P,C=H;return c(),n("div",ee,[t("div",te,[t("div",oe,[l(a,{icon:s(I),plain:"",onClick:q,class:"shrink-0"},{default:d(()=>[x(o(s(r)("action.back")),1)]),_:1},8,["icon"]),t("h2",se," Resource Details: "+o(B.value),1)])]),Q((c(),n("div",ae,[t("div",le,[t("div",re,[t("div",null,[t("div",ne,o(s(r)("common.uri")),1),t("div",ce,o(w.value),1)]),t("div",null,[t("div",ie,o(s(r)("common.mimeType")),1),t("div",de,o(p.value),1)]),t("div",ue,[t("div",fe,o(s(r)("resources.server")),1),t("div",me,o(V.value),1)])])]),t("div",_e,[t("div",ve,[t("div",pe,o(s(r)("resources.contentPreview")),1),t("div",he,[l(j,{modelValue:k.value,"onUpdate:modelValue":i[0]||(i[0]=v=>k.value=v),size:"small"},{default:d(()=>[l(h,{value:"preview"},{default:d(()=>[l(u,{class:"mr-1"},{default:d(()=>[l(s(M))]),_:1}),x(" "+o(s(r)("resources.preview")),1)]),_:1}),l(h,{value:"source"},{default:d(()=>[l(u,{class:"mr-1"},{default:d(()=>[l(s(z))]),_:1}),x(" "+o(s(r)("resources.source")),1)]),_:1})]),_:1},8,["modelValue"]),l(a,{size:"small",icon:s(S),onClick:L},{default:d(()=>[x(o(s(r)("resources.download")),1)]),_:1},8,["icon"])])]),t("div",be,[b.value?(c(),n("div",ye,o(s(r)("resources.loadingContent")),1)):y.value?(c(),n("div",ge,[l(u,{class:"text-4xl mb-2"},{default:d(()=>[l(s(G))]),_:1}),t("div",null,o(y.value),1)])):(c(),n("div",xe,[k.value==="preview"?(c(),n("div",we,[E.value?(c(),n("div",ke,[t("img",{src:N.value,class:"max-w-full max-h-full object-contain rounded shadow-lg"},null,8,Re)])):(c(),n("div",je,o(R.value),1))])):(c(),n("div",Ce,[t("pre",Ve,[t("code",null,o(R.value),1)])]))]))])])])),[[C,b.value]])])}}}),Oe=Z(Be,[["__scopeId","data-v-a4e1dc63"]]);export{Oe as default};
1
+ import{u as L,I as T,j as M,aM as S,b as $,Q as O,K as z,w as G}from"./index-kC4mf0Vo.js";import{v as P}from"./el-loading-DIjKEx81.js";import{E as W,b as F}from"./el-radio-group-BjkTCPRf.js";import{t as H,aa as K,c as f,r as g,j as Q,A as n,C as t,O as l,G as d,u as s,$ as o,H as J,ac as X,a0 as x,ab as Y,x as c}from"./vue-vendor-Dwcr0jep.js";import{_ as Z}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./event-BB_Ol6Sd.js";import"./omit-DxDGRttI.js";import"./_baseClone-BYxCbA_9.js";const ee={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"},te={class:"flex items-center justify-between mb-6 shrink-0"},oe={class:"flex items-center gap-4"},se={class:"text-2xl font-bold text-gray-900 dark:text-white"},ae={class:"flex-1 flex flex-col gap-6 overflow-hidden"},le={class:"bg-white dark:bg-[#1e1e1e] rounded-lg shadow p-6 shrink-0 border border-gray-200 dark:border-gray-700"},re={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ne={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},ce={class:"font-mono text-sm break-all select-all"},ie={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},de={class:"font-mono text-sm"},ue={class:"md:col-span-2"},fe={class:"text-sm font-medium text-gray-500 dark:text-gray-400 mb-1"},me={class:"text-sm"},_e={class:"bg-white dark:bg-[#1e1e1e] rounded-lg shadow flex-1 flex flex-col overflow-hidden border border-gray-200 dark:border-gray-700"},ve={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"},pe={class:"flex gap-2"},he={class:"flex-1 overflow-auto p-6 bg-gray-50 dark:bg-[#0f172a]"},ye={key:0,class:"h-full flex items-center justify-center text-gray-400"},ge={key:1,class:"h-full flex flex-col items-center justify-center text-red-500"},xe={key:2,class:"h-full"},we={key:0,class:"h-full"},ke={key:0,class:"h-full flex items-center justify-center"},je=["src"],Re={key:1,class:"bg-white dark:bg-[#1e1e1e] p-4 rounded shadow-sm h-full overflow-auto font-mono text-sm whitespace-pre-wrap"},Ce={key:1,class:"h-full"},Ve={class:"bg-gray-900 text-gray-100 p-4 rounded-lg h-full overflow-auto font-mono text-sm"},Be=H({__name:"ResourceDetailView",setup(Ue){const m=X(),E=Y(),D=L(),{t:r}=K(),V=f(()=>{const e=m.params.name;return e.startsWith("hub://")&&e.replace("hub://","").split("/")[1]||e}),w=f(()=>m.query.uri),B=f(()=>{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"}),b=f(()=>m.query.mimeType||"application/octet-stream"),h=g(!1),y=g(null),_=g(null),k=g("preview"),U=f(()=>b.value.startsWith("image/")),j=f(()=>{if(!_.value)return"";const e=_.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=f(()=>{if(!U.value||!_.value)return"";const e=_.value;return e&&typeof e=="object"&&"blob"in e&&typeof e.blob=="string"?`data:${b.value};base64,${e.blob}`:""});function q(){E.back()}async function A(){h.value=!0,y.value=null;try{_.value=await D.readResource(V.value,w.value)}catch(e){y.value=e.message||"Failed to load resource content"}finally{h.value=!1}}function I(){const e=document.createElement("a"),i=new Blob([j.value],{type:b.value}),a=_.value;if(a&&typeof a=="object"&&"blob"in a&&typeof a.blob=="string"){const u=atob(a.blob),p=new Array(u.length);for(let v=0;v<u.length;v++)p[v]=u.charCodeAt(v);const R=new Uint8Array(p),C=new Blob([R],{type:b.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(()=>{w.value&&A()}),(e,i)=>{const a=M,u=$,p=F,R=W,C=P;return c(),n("div",ee,[t("div",te,[t("div",oe,[l(a,{icon:s(T),plain:"",onClick:q,class:"shrink-0"},{default:d(()=>[x(o(s(r)("action.back")),1)]),_:1},8,["icon"]),t("h2",se," Resource Details: "+o(B.value),1)])]),J((c(),n("div",ae,[t("div",le,[t("div",re,[t("div",null,[t("div",ne,o(s(r)("common.uri")),1),t("div",ce,o(w.value),1)]),t("div",null,[t("div",ie,o(s(r)("common.mimeType")),1),t("div",de,o(b.value),1)]),t("div",ue,[t("div",fe,o(s(r)("resources.server")),1),t("div",me,o(V.value),1)])])]),t("div",_e,[t("div",ve,[t("div",be,o(s(r)("resources.contentPreview")),1),t("div",pe,[l(R,{modelValue:k.value,"onUpdate:modelValue":i[0]||(i[0]=v=>k.value=v),size:"small"},{default:d(()=>[l(p,{value:"preview"},{default:d(()=>[l(u,{class:"mr-1"},{default:d(()=>[l(s(O))]),_:1}),x(" "+o(s(r)("resources.preview")),1)]),_:1}),l(p,{value:"source"},{default:d(()=>[l(u,{class:"mr-1"},{default:d(()=>[l(s(z))]),_:1}),x(" "+o(s(r)("resources.source")),1)]),_:1})]),_:1},8,["modelValue"]),l(a,{size:"small",icon:s(S),onClick:I},{default:d(()=>[x(o(s(r)("resources.download")),1)]),_:1},8,["icon"])])]),t("div",he,[h.value?(c(),n("div",ye,o(s(r)("resources.loadingContent")),1)):y.value?(c(),n("div",ge,[l(u,{class:"text-4xl mb-2"},{default:d(()=>[l(s(G))]),_:1}),t("div",null,o(y.value),1)])):(c(),n("div",xe,[k.value==="preview"?(c(),n("div",we,[U.value?(c(),n("div",ke,[t("img",{src:N.value,class:"max-w-full max-h-full object-contain rounded shadow-lg"},null,8,je)])):(c(),n("div",Re,o(j.value),1))])):(c(),n("div",Ce,[t("pre",Ve,[t("code",null,o(j.value),1)])]))]))])])])),[[C,h.value]])])}}}),Me=Z(Be,[["__scopeId","data-v-a4e1dc63"]]);export{Me as default};
@@ -0,0 +1 @@
1
+ import{u as R,U as T,b as $,a1 as E,K as V,j as B}from"./index-kC4mf0Vo.js";import{a as j,b as z}from"./el-table-column-DV5TZOUW.js";import{E as L,a as I}from"./el-input-C85p6Nqj.js";import{t as N,r as f,j as S,c as q,A as h,C as a,$ as n,O as s,u,G as o,y as A,a0 as b,ab as O,x as m}from"./vue-vendor-Dwcr0jep.js";import{_ as U}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./_baseClone-BYxCbA_9.js";import"./omit-DxDGRttI.js";import"./event-BB_Ol6Sd.js";import"./raf-Y9AoxecD.js";const D={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"},F={class:"mb-6 shrink-0"},G={class:"text-2xl font-semibold text-gray-900 dark:text-white mb-4"},K={class:"relative"},M={class:"flex-1 overflow-y-auto custom-scrollbar space-y-4 pr-2"},P={key:0,class:"flex flex-col items-center justify-center py-12 text-gray-400"},Q={class:"flex items-center gap-2"},H=["title"],J=["title"],W=N({__name:"ResourcesView",setup(X){const y=O(),v=R(),c=f(""),d=f({});S(async()=>{await w()});async function w(){try{d.value=await v.fetchAllResources()}catch(e){console.error("Failed to load resources:",e)}}const p=q(()=>{const e=[];for(const[,l]of Object.entries(d.value))e.push(...l);if(!c.value)return e;const r=c.value.toLowerCase();return e.filter(l=>l.name.toLowerCase().includes(r)||l.uri.toLowerCase().includes(r))});function x(e){y.push({name:"resource-detail",params:{name:e.uri},query:{uri:e.uri,name:e.name,mimeType:e.mimeType}})}return(e,r)=>{const l=L,_=$,i=z,g=I,k=B,C=j;return m(),h("div",D,[a("div",F,[a("h2",G,n(e.$t("resources.title")),1),a("div",K,[s(l,{modelValue:c.value,"onUpdate:modelValue":r[0]||(r[0]=t=>c.value=t),placeholder:e.$t("resources.searchPlaceholder"),class:"w-full",size:"large","prefix-icon":u(T),clearable:""},null,8,["modelValue","placeholder","prefix-icon"])])]),a("div",M,[p.value.length===0?(m(),h("div",P,[s(_,{size:48,class:"mb-4 opacity-50"},{default:o(()=>[s(u(E))]),_:1}),a("p",null,n(e.$t("resources.noResources")),1)])):(m(),A(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})=>[a("div",Q,[s(_,null,{default:o(()=>[s(u(V))]),_:1}),a("span",{class:"font-medium truncate",title:t.name},n(t.name),9,H)])]),_:1},8,["label"]),s(i,{prop:"uri",label:e.$t("common.uri"),"min-width":"350"},{default:o(({row:t})=>[a("span",{class:"truncate block",title:t.uri},n(t.uri),9,J)]),_:1},8,["label"]),s(i,{prop:"mimeType",label:e.$t("common.mimeType"),width:"180"},{default:o(({row:t})=>[s(g,{size:"small",type:"success",effect:"plain"},{default:o(()=>[b(n(t.mimeType||"unknown"),1)]),_:2},1024)]),_:1},8,["label"]),s(i,{label:"",width:"100",align:"right"},{default:o(({row:t})=>[s(k,{size:"small",plain:"",onClick:Y=>x(t)},{default:o(()=>[b(n(e.$t("action.view")),1)]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]))])])}}}),ce=U(W,[["__scopeId","data-v-8388c5cb"]]);export{ce as default};
@@ -0,0 +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-kC4mf0Vo.js";import{E as N,a as A}from"./el-skeleton-item-CupTKK6n.js";import{f as V}from"./ServerStatusTags.vue_vue_type_script_setup_true_lang-DmGg4uuV.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-Bz5_9yOY.js";import"./el-tab-pane-BydxdJoc.js";import"./raf-Y9AoxecD.js";import"./el-overlay-B_CxiSem.js";import"./event-BB_Ol6Sd.js";import"./el-input-C85p6Nqj.js";import"./omit-DxDGRttI.js";import"./_baseClone-BYxCbA_9.js";import"./el-switch-BosIJ9jf.js";import"./el-radio-group-BjkTCPRf.js";import"./el-table-column-DV5TZOUW.js";import"./ToolCallDialog-DYEdhnCk.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{q as Qe,x as ft,y as vt,_ as pt,T as gt,b as Se,z as yt,j as de,A as ht,B as Xe,C as Ze,D as Ye,F as bt,G as Ke,H as _t,I as $t,v as st,r as Me,n as Ct,k as ie,p as fe,J as wt,K as kt,E as I,L as xt,M as St,N as Vt,O as It,P as Tt,Q as Dt,u as Pe,a as Et,R as Bt,s as et,S as Ut,t as Rt,o as At}from"./index-kC4mf0Vo.js";import{E as zt,a as Nt}from"./el-tab-pane-BydxdJoc.js";import{n as he,a2 as Ce,x as i,y as H,G as f,H as Ae,O as s,C as n,J as Q,I as ke,K as tt,A as b,U as we,V as M,$ as o,aj as be,v as jt,L as ze,a0 as E,M as Ot,t as ue,c as q,r as O,Q as Mt,ak as Ne,h as ee,j as Pt,F as Ft,al as Lt,p as je,a as Fe,a7 as ot,a8 as rt,l as at,d as it,aa as me,u as y,P as Z,ai as K,Z as Ht,ac as Jt,ab as Le,am as qt,k as Be}from"./vue-vendor-Dwcr0jep.js";import{E as Ve,a as He}from"./el-input-C85p6Nqj.js";import{_ as Wt,a as ut}from"./ServerStatusTags.vue_vue_type_script_setup_true_lang-DmGg4uuV.js";import{c as Gt,u as Qt,d as Xt,e as Zt,a as Je,b as qe,E as We}from"./el-overlay-B_CxiSem.js";import{i as Yt,E as ct,a as dt}from"./el-switch-BosIJ9jf.js";import{E as Kt,a as ea}from"./el-radio-group-BjkTCPRf.js";import{_ as Ie}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{E as ta,a as aa,b as la}from"./el-table-column-DV5TZOUW.js";import{T as na}from"./ToolCallDialog-DYEdhnCk.js";import"./raf-Y9AoxecD.js";import"./event-BB_Ol6Sd.js";import"./omit-DxDGRttI.js";import"./_baseClone-BYxCbA_9.js";const Oe="_trap-focus-children",ge=[],lt=e=>{if(ge.length===0)return;const m=ft(e),a=ge[ge.length-1][Oe];if(a.length>0&&m===vt.tab){if(a.length===1){e.preventDefault(),document.activeElement!==a[0]&&a[0].focus();return}const d=e.shiftKey,t=e.target===a[0],g=e.target===a[a.length-1];t&&d&&(e.preventDefault(),a[a.length-1].focus()),g&&!d&&(e.preventDefault(),a[0].focus())}},sa={beforeMount(e){e[Oe]=Qe(e),ge.push(e),ge.length<=1&&document.addEventListener("keydown",lt)},updated(e){he(()=>{e[Oe]=Qe(e)})},unmounted(){ge.shift(),ge.length===0&&document.removeEventListener("keydown",lt)}},oa=ue({name:"ElMessageBox",directives:{TrapFocus:sa},components:{ElButton:de,ElFocusTrap:yt,ElInput:Ve,ElOverlay:Gt,ElIcon:Se,...gt},inheritAttrs:!1,props:{buttonSize:{type:String,validator:Yt},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,overflow:Boolean,roundButton:Boolean,container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:m}){const{locale:a,zIndex:d,ns:t,size:g}=ht("message-box",q(()=>e.buttonSize)),{t:u}=a,{nextZIndex:S}=d,U=O(!1),v=Mt({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",closeIcon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:"",inputValidator:void 0,inputErrorMessage:"",message:"",modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonLoadingIcon:Ne(Xe),cancelButtonLoadingIcon:Ne(Xe),confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:S()}),l=q(()=>{const T=v.type;return{[t.bm("icon",T)]:T&&Ze[T]}}),h=Ye(),B=Ye(),w=q(()=>{const T=v.type;return v.icon||T&&Ze[T]||""}),_=q(()=>!!v.message),$=O(),L=O(),R=O(),te=O(),ne=O(),se=q(()=>v.confirmButtonClass);ee(()=>v.inputValue,async T=>{await he(),e.boxType==="prompt"&&T&&W()},{immediate:!0}),ee(()=>U.value,T=>{var G,ae;T&&(e.boxType!=="prompt"&&(v.autofocus?R.value=(ae=(G=ne.value)==null?void 0:G.$el)!=null?ae:$.value:R.value=$.value),v.zIndex=S()),e.boxType==="prompt"&&(T?he().then(()=>{var ye;te.value&&te.value.$el&&(v.autofocus?R.value=(ye=oe())!=null?ye:$.value:R.value=$.value)}):(v.editorErrorMessage="",v.validateError=!1))});const ce=q(()=>e.draggable),j=q(()=>e.overflow),{isDragging:p}=Qt($,L,ce,j);Pt(async()=>{await he(),e.closeOnHashChange&&window.addEventListener("hashchange",z)}),Ft(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",z)});function z(){U.value&&(U.value=!1,he(()=>{v.action&&m("action",v.action)}))}const c=()=>{e.closeOnClickModal&&x(v.distinguishCancelAndClose?"close":"cancel")},C=Zt(c),P=T=>{if(v.inputType!=="textarea")return T.preventDefault(),x("confirm")},x=T=>{var G;e.boxType==="prompt"&&T==="confirm"&&!W()||(v.action=T,v.beforeClose?(G=v.beforeClose)==null||G.call(v,T,v,z):z())},W=()=>{if(e.boxType==="prompt"){const T=v.inputPattern;if(T&&!T.test(v.inputValue||""))return v.editorErrorMessage=v.inputErrorMessage||u("el.messagebox.error"),v.validateError=!0,!1;const G=v.inputValidator;if(je(G)){const ae=G(v.inputValue);if(ae===!1)return v.editorErrorMessage=v.inputErrorMessage||u("el.messagebox.error"),v.validateError=!0,!1;if(Fe(ae))return v.editorErrorMessage=ae,v.validateError=!0,!1}}return v.editorErrorMessage="",v.validateError=!1,!0},oe=()=>{var T,G;const ae=(T=te.value)==null?void 0:T.$refs;return(G=ae?.input)!=null?G:ae?.textarea},re=()=>{x("close")},J=()=>{e.closeOnPressEscape&&re()};return e.lockScroll&&Xt(U,{ns:t}),{...Lt(v),ns:t,overlayEvent:C,visible:U,hasMessage:_,typeClass:l,contentId:h,inputId:B,btnSize:g,iconComponent:w,confirmButtonClasses:se,rootRef:$,focusStartRef:R,headerRef:L,inputRef:te,isDragging:p,confirmRef:ne,doClose:z,handleClose:re,onCloseRequested:J,handleWrapperClick:c,handleInputEnter:P,handleAction:x,t:u}}}),ra=["aria-label","aria-describedby"],ia=["aria-label"],ua=["id"];function ca(e,m,a,d,t,g){const u=Ce("el-icon"),S=Ce("el-input"),U=Ce("el-button"),v=Ce("el-focus-trap"),l=Ce("el-overlay");return i(),H(Ot,{name:"fade-in-linear",onAfterLeave:m[11]||(m[11]=h=>e.$emit("vanish")),persisted:""},{default:f(()=>[Ae(s(l,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:f(()=>[n("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:Q(`${e.ns.namespace.value}-overlay-message-box`),onClick:m[8]||(m[8]=(...h)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...h)),onMousedown:m[9]||(m[9]=(...h)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...h)),onMouseup:m[10]||(m[10]=(...h)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...h))},[s(v,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:f(()=>[n("div",{ref:"rootRef",class:Q([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),e.ns.is("dragging",e.isDragging),{[e.ns.m("center")]:e.center}]),style:tt(e.customStyle),tabindex:"-1",onClick:m[7]||(m[7]=ke(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(i(),b("div",{key:0,ref:"headerRef",class:Q([e.ns.e("header"),{"show-close":e.showClose}])},[n("div",{class:Q(e.ns.e("title"))},[e.iconComponent&&e.center?(i(),H(u,{key:0,class:Q([e.ns.e("status"),e.typeClass])},{default:f(()=>[(i(),H(we(e.iconComponent)))]),_:1},8,["class"])):M("v-if",!0),n("span",null,o(e.title),1)],2),e.showClose?(i(),b("button",{key:0,type:"button",class:Q(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:m[0]||(m[0]=h=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:m[1]||(m[1]=be(ke(h=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[s(u,{class:Q(e.ns.e("close"))},{default:f(()=>[(i(),H(we(e.closeIcon||"close")))]),_:1},8,["class"])],42,ia)):M("v-if",!0)],2)):M("v-if",!0),n("div",{id:e.contentId,class:Q(e.ns.e("content"))},[n("div",{class:Q(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(i(),H(u,{key:0,class:Q([e.ns.e("status"),e.typeClass])},{default:f(()=>[(i(),H(we(e.iconComponent)))]),_:1},8,["class"])):M("v-if",!0),e.hasMessage?(i(),b("div",{key:1,class:Q(e.ns.e("message"))},[jt(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(i(),H(we(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(i(),H(we(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0,textContent:o(e.message)},null,8,["for","textContent"]))])],2)):M("v-if",!0)],2),Ae(n("div",{class:Q(e.ns.e("input"))},[s(S,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":m[2]||(m[2]=h=>e.inputValue=h),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:Q({invalid:e.validateError}),onKeydown:be(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),n("div",{class:Q(e.ns.e("errormsg")),style:tt({visibility:e.editorErrorMessage?"visible":"hidden"})},o(e.editorErrorMessage),7)],2),[[ze,e.showInput]])],10,ua),n("div",{class:Q(e.ns.e("btns"))},[e.showCancelButton?(i(),H(U,{key:0,loading:e.cancelButtonLoading,"loading-icon":e.cancelButtonLoadingIcon,class:Q([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:m[3]||(m[3]=h=>e.handleAction("cancel")),onKeydown:m[4]||(m[4]=be(ke(h=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:f(()=>[E(o(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","loading-icon","class","round","size"])):M("v-if",!0),Ae(s(U,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,"loading-icon":e.confirmButtonLoadingIcon,class:Q([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:m[5]||(m[5]=h=>e.handleAction("confirm")),onKeydown:m[6]||(m[6]=be(ke(h=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:f(()=>[E(o(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","loading-icon","class","round","disabled","size"]),[[ze,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,ra)]),_:3},8,["z-index","overlay-class","mask"]),[[ze,e.visible]])]),_:3})}var da=pt(oa,[["render",ca],["__file","/home/runner/work/element-plus/element-plus/packages/components/message-box/src/index.vue"]]);const xe=new Map,ma=e=>{let m=document.body;return e.appendTo&&(Fe(e.appendTo)&&(m=document.querySelector(e.appendTo)),Ke(e.appendTo)&&(m=e.appendTo),Ke(m)||(m=document.body)),m},fa=(e,m,a=null)=>{const d=s(da,e,je(e.message)||ot(e.message)?{default:je(e.message)?e.message:()=>e.message}:null);return d.appContext=a,rt(d,m),ma(e).appendChild(m.firstElementChild),d.component},va=()=>document.createElement("div"),pa=(e,m)=>{const a=va();e.onVanish=()=>{rt(null,a),xe.delete(t)},e.onAction=g=>{const u=xe.get(t);let S;e.showInput?S={value:t.inputValue,action:g}:S=g,e.callback?e.callback(S,d.proxy):g==="cancel"||g==="close"?e.distinguishCancelAndClose&&g!=="cancel"?u.reject("close"):u.reject("cancel"):u.resolve(S)};const d=fa(e,a,m),t=d.proxy;for(const g in e)at(e,g)&&!at(t.$props,g)&&(g==="closeIcon"&&it(e[g])?t[g]=Ne(e[g]):t[g]=e[g]);return t.visible=!0,t};function _e(e,m=null){if(!bt)return Promise.reject();let a;return Fe(e)||ot(e)?e={message:e}:a=e.callback,new Promise((d,t)=>{const g=pa(e,m??_e._context);xe.set(g,{options:e,callback:a,resolve:d,reject:t})})}const ga=["alert","confirm","prompt"],ya={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};ga.forEach(e=>{_e[e]=ha(e)});function ha(e){return(m,a,d,t)=>{let g="";return it(a)?(d=a,g=""):_t(a)?g="":g=a,_e(Object.assign({title:g,message:m,type:"",...ya[e]},d,{boxType:e}),t)}}_e.close=()=>{xe.forEach((e,m)=>{m.doClose()}),xe.clear()};_e._context=null;const pe=_e;pe.install=e=>{pe._context=e._context,e.config.globalProperties.$msgbox=pe,e.config.globalProperties.$messageBox=pe,e.config.globalProperties.$alert=pe.alert,e.config.globalProperties.$confirm=pe.confirm,e.config.globalProperties.$prompt=pe.prompt};const mt=pe,ba={class:"flex items-center justify-between shrink-0"},_a={class:"flex items-center gap-4"},$a={class:"flex flex-col items-start gap-2"},Ca={class:"flex items-center gap-2"},wa={class:"text-2xl font-bold text-gray-900 dark:text-white"},ka={class:"flex gap-2"},xa=ue({__name:"ServerDetailHeader",props:{server:{}},emits:["back","delete","restart-all","start-all","stop-all"],setup(e,{emit:m}){const a=e,d=m;me();const t=q(()=>a.server.rawV11Config?.instances?.length?a.server.rawV11Config.instances.length:a.server.instances?.length?a.server.instances.length:1),g=q(()=>t.value),u=q(()=>a.server.instances?.length?a.server.instances.filter(w=>w.status==="online").length:a.server.status==="online"?1:0),S=q(()=>a.server.instances?.length?a.server.instances.filter(w=>w.status!=="online").length:t.value>1?t.value-u.value:a.server.status!=="online"?1:0);function U(){d("back")}function v(){d("delete")}function l(){d("restart-all")}function h(){d("start-all")}function B(){d("stop-all")}return(w,_)=>{const $=de,L=He;return i(),b("div",ba,[n("div",_a,[s($,{icon:y($t),plain:"",onClick:U,class:"shrink-0"},{default:f(()=>[E(o(w.$t("action.back")),1)]),_:1},8,["icon"]),n("div",$a,[n("div",Ca,[n("h2",wa,o(e.server.name),1),e.server.version?(i(),H(L,{key:0,size:"small",class:"ml-2"},{default:f(()=>[E(o(e.server.version),1)]),_:1})):M("",!0)]),s(Wt,{server:e.server},null,8,["server"])])]),n("div",ka,[S.value>0?(i(),H($,{key:0,type:"success",icon:y(st),onClick:h},{default:f(()=>[E(o(w.$t("action.startAll"))+" ("+o(S.value)+") ",1)]),_:1},8,["icon"])):M("",!0),u.value>0?(i(),H($,{key:1,type:"primary",icon:y(Me),onClick:l},{default:f(()=>[E(o(w.$t("action.restartAll"))+" ("+o(g.value)+") ",1)]),_:1},8,["icon"])):M("",!0),u.value>0?(i(),H($,{key:2,type:"warning",icon:y(Ct),onClick:B},{default:f(()=>[E(o(w.$t("action.stopAll"))+" ("+o(u.value)+") ",1)]),_:1},8,["icon"])):M("",!0),s($,{type:"danger",icon:y(ie),onClick:v},{default:f(()=>[E(o(w.$t("action.deleteServer")),1)]),_:1},8,["icon"])])])}}}),Sa={class:"config-template-form h-full flex flex-col min-h-0"},Va={class:"space-y-4 flex-1 overflow-y-auto min-h-0"},Ia={class:"px-4"},Ta={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Da={key:0,class:"px-4"},Ea={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Ba={key:1,class:"px-4"},Ua={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Ra={key:2,class:"px-4"},Aa={class:"flex items-center justify-between mb-2"},za={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Na={key:0,class:"space-y-2"},ja={class:"px-4"},Oa={class:"flex items-center justify-between mb-2"},Ma={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Pa={key:0,class:"space-y-2"},Fa={key:3,class:"px-4"},La={class:"flex items-center justify-between mb-2"},Ha={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Ja={key:0,class:"space-y-2"},qa={class:"px-4"},Wa={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Ga={class:"px-4"},Qa={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Xa={key:4,class:"px-4"},Za={class:"flex items-center justify-between mb-2"},Ya={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Ka={key:0,class:"flex gap-2 items-start"},el={class:"px-4"},tl={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},al={class:"flex gap-2 pt-4 pb-4 border-t border-gray-200 dark:border-gray-700 px-4"},ll=ue({__name:"ConfigTemplateForm",props:{config:{}},emits:["update:template","save","edit-json"],setup(e,{emit:m}){const a=e,d=m;me();const t=O({...a.config,template:{...a.config.template,instanceSelectionStrategy:a.config.template.instanceSelectionStrategy||"random"}});let g=0,u=0;const S=O({}),U=O({});ee(()=>a.config,p=>{t.value={...p,template:{...p.template,instanceSelectionStrategy:p.template.instanceSelectionStrategy||"random"}},l(),h()},{immediate:!0});const v=q({get:()=>t.value?.template?.timeout?t.value.template.timeout/1e3:60,set:p=>{t.value&&(t.value.template.timeout=p*1e3)}});function l(){t.value?.template?.env&&(S.value={},Object.keys(t.value.template.env).forEach(p=>{S.value[p]=`env-${g++}`}))}function h(){t.value?.template?.headers&&(U.value={},Object.keys(t.value.template.headers).forEach(p=>{U.value[p]=`header-${u++}`}))}function B(){t.value.template.args||(t.value.template.args=[]),t.value.template.args.push(""),d("update:template",{...t.value.template})}function w(p){t.value.template.args?.splice(p,1),d("update:template",{...t.value.template})}function _(){t.value.template.env||(t.value.template.env={});const p=`NEW_VAR_${Object.keys(t.value.template.env).length}`;t.value.template.env[p]="",S.value[p]=`env-${g++}`,d("update:template",{...t.value.template})}function $(p){delete t.value.template.env[p],delete S.value[p],d("update:template",{...t.value.template})}function L(p,z){if(p===z)return;const c=t.value.template.env[p]||"",C=S.value[p]||`env-${g++}`;delete t.value.template.env[p],delete S.value[p],t.value.template.env[z]=c,S.value[z]=C,d("update:template",{...t.value.template})}function R(){t.value.template.headers||(t.value.template.headers={});const p=`NEW_HEADER_${Object.keys(t.value.template.headers).length}`;t.value.template.headers[p]="",U.value[p]=`header-${u++}`,d("update:template",{...t.value.template})}function te(p){delete t.value.template.headers[p],delete U.value[p],d("update:template",{...t.value.template})}function ne(p,z){if(p===z)return;const c=t.value.template.headers[p]||"",C=U.value[p]||`header-${u++}`;delete t.value.template.headers[p],delete U.value[p],t.value.template.headers[z]=c,U.value[z]=C,d("update:template",{...t.value.template})}function se(){t.value.template.proxy?t.value.template.proxy=void 0:t.value.template.proxy={url:""},d("update:template",{...t.value.template})}function ce(){const p={command:t.value.template.command,args:t.value.template.args,env:t.value.template.env,headers:t.value.template.headers,type:t.value.template.type,timeout:t.value.template.timeout,url:t.value.template.url,aggregatedTools:t.value.template.aggregatedTools,description:t.value.template.description,proxy:t.value.template.proxy,instanceSelectionStrategy:t.value.template.instanceSelectionStrategy};d("update:template",p),d("save")}function j(){d("edit-json")}return(p,z)=>{const c=ea,C=Kt,P=Ve,x=de,W=ct,oe=qe,re=Je;return i(),b("div",Sa,[n("div",Va,[n("div",Ia,[n("label",Ta,o(p.$t("serverDetail.config.transport")),1),s(C,{modelValue:t.value.template.type,"onUpdate:modelValue":z[0]||(z[0]=J=>t.value.template.type=J),class:"flex gap-4"},{default:f(()=>[s(c,{value:"stdio"},{default:f(()=>[E(o(p.$t("serverDetail.config.transportStdio")),1)]),_:1}),s(c,{value:"sse"},{default:f(()=>[E(o(p.$t("serverDetail.config.transportSse")),1)]),_:1}),s(c,{value:"streamable-http"},{default:f(()=>[E(o(p.$t("serverDetail.config.transportHttp")),1)]),_:1})]),_:1},8,["modelValue"])]),t.value.template.type==="stdio"?(i(),b("div",Da,[n("label",Ea,o(p.$t("serverDetail.config.executable")),1),s(P,{modelValue:t.value.template.command,"onUpdate:modelValue":z[1]||(z[1]=J=>t.value.template.command=J)},null,8,["modelValue"])])):(i(),b("div",Ba,[n("label",Ua,o(p.$t("serverDetail.config.url")),1),s(P,{modelValue:t.value.template.url,"onUpdate:modelValue":z[2]||(z[2]=J=>t.value.template.url=J)},null,8,["modelValue"])])),t.value.template.type==="stdio"?(i(),b("div",Ra,[n("div",Aa,[n("label",za,o(p.$t("serverDetail.config.args")),1),s(x,{size:"small",icon:y(fe),onClick:B},{default:f(()=>[E(o(p.$t("serverDetail.config.addArg")),1)]),_:1},8,["icon"])]),t.value.template.args&&t.value.template.args.length>0?(i(),b("div",Na,[(i(!0),b(Z,null,K(t.value.template.args,(J,T)=>(i(),b("div",{key:T,class:"flex gap-2 px-4"},[s(P,{modelValue:t.value.template.args[T],"onUpdate:modelValue":G=>t.value.template.args[T]=G,class:"flex-1"},null,8,["modelValue","onUpdate:modelValue"]),s(x,{size:"small",type:"danger",icon:y(ie),onClick:G=>w(T)},null,8,["icon","onClick"])]))),128))])):M("",!0)])):M("",!0),n("div",ja,[n("div",Oa,[n("label",Ma,o(p.$t("serverDetail.config.env")),1),s(x,{size:"small",icon:y(fe),onClick:_},{default:f(()=>[E(o(p.$t("serverDetail.config.addEnv")),1)]),_:1},8,["icon"])]),t.value.template.env&&Object.keys(t.value.template.env).length>0?(i(),b("div",Pa,[(i(!0),b(Z,null,K(t.value.template.env,(J,T)=>(i(),b("div",{key:S.value[T],class:"flex gap-2 items-start px-4",style:{display:"flex",gap:"0.5rem",width:"100%"}},[s(P,{"model-value":T,style:{width:"30%","min-width":"150px"},placeholder:p.$t("addServer.keyPlaceholder"),"onUpdate:modelValue":G=>L(T,G)},null,8,["model-value","placeholder","onUpdate:modelValue"]),s(P,{modelValue:t.value.template.env[T],"onUpdate:modelValue":G=>t.value.template.env[T]=G,style:{flex:"1"},placeholder:p.$t("addServer.valuePlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),s(x,{size:"small",type:"danger",icon:y(ie),onClick:G=>$(T)},null,8,["icon","onClick"])]))),128))])):M("",!0)]),t.value.template.type!=="stdio"?(i(),b("div",Fa,[n("div",La,[n("label",Ha,o(p.$t("serverDetail.config.headers")),1),s(x,{size:"small",icon:y(fe),onClick:R},{default:f(()=>[E(o(p.$t("serverDetail.config.addHeader")),1)]),_:1},8,["icon"])]),t.value.template.headers&&Object.keys(t.value.template.headers).length>0?(i(),b("div",Ja,[(i(!0),b(Z,null,K(t.value.template.headers,(J,T)=>(i(),b("div",{key:U.value[T],class:"flex gap-2 items-start px-4",style:{display:"flex",gap:"0.5rem",width:"100%"}},[s(P,{"model-value":T,style:{width:"30%","min-width":"150px"},placeholder:p.$t("addServer.keyPlaceholder"),"onUpdate:modelValue":G=>ne(T,G)},null,8,["model-value","placeholder","onUpdate:modelValue"]),s(P,{modelValue:t.value.template.headers[T],"onUpdate:modelValue":G=>t.value.template.headers[T]=G,style:{flex:"1"},placeholder:p.$t("addServer.valuePlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),s(x,{size:"small",type:"danger",icon:y(ie),onClick:G=>te(T)},null,8,["icon","onClick"])]))),128))])):M("",!0)])):M("",!0),n("div",qa,[n("label",Wa,o(p.$t("serverDetail.config.timeout")),1),s(W,{modelValue:v.value,"onUpdate:modelValue":z[3]||(z[3]=J=>v.value=J),min:1,max:3600},null,8,["modelValue"])]),n("div",Ga,[n("label",Qa,o(p.$t("common.description")),1),s(P,{modelValue:t.value.template.description,"onUpdate:modelValue":z[4]||(z[4]=J=>t.value.template.description=J),type:"textarea",rows:3,placeholder:p.$t("serverDetail.config.descriptionPlaceholder")},null,8,["modelValue","placeholder"])]),t.value.template.type!=="stdio"?(i(),b("div",Xa,[n("div",Za,[n("label",Ya,o(p.$t("serverDetail.config.proxy")),1),t.value.template.proxy?(i(),H(x,{key:1,size:"small",type:"danger",icon:y(ie),onClick:se},{default:f(()=>[E(o(p.$t("serverDetail.config.removeProxy")),1)]),_:1},8,["icon"])):(i(),H(x,{key:0,size:"small",icon:y(fe),onClick:se},{default:f(()=>[E(o(p.$t("serverDetail.config.addProxy")),1)]),_:1},8,["icon"]))]),t.value.template.proxy?(i(),b("div",Ka,[s(P,{modelValue:t.value.template.proxy.url,"onUpdate:modelValue":z[5]||(z[5]=J=>t.value.template.proxy.url=J),placeholder:p.$t("serverDetail.config.proxyPlaceholder")},null,8,["modelValue","placeholder"])])):M("",!0)])):M("",!0),n("div",el,[n("label",tl,o(p.$t("serverDetail.config.instanceSelectionStrategy")),1),s(re,{modelValue:t.value.template.instanceSelectionStrategy,"onUpdate:modelValue":z[6]||(z[6]=J=>t.value.template.instanceSelectionStrategy=J),placeholder:p.$t("serverDetail.config.strategyRandom")+"(默认)"},{default:f(()=>[s(oe,{value:"random",label:p.$t("serverDetail.config.strategyRandom")},null,8,["label"]),s(oe,{value:"round-robin",label:p.$t("serverDetail.config.strategyRoundRobin")},null,8,["label"]),s(oe,{value:"tag-match-unique",label:p.$t("serverDetail.config.strategyTagMatchUnique")},null,8,["label"])]),_:1},8,["modelValue","placeholder"])]),n("div",al,[s(x,{type:"primary",onClick:ce},{default:f(()=>[E(o(p.$t("serverDetail.config.save")),1)]),_:1}),s(x,{onClick:j},{default:f(()=>[E(o(p.$t("serverDetail.config.editByJson")),1)]),_:1})])])])}}}),nl=Ie(ll,[["__scopeId","data-v-d857c695"]]),sl={class:"h-full flex flex-col"},ol={class:"flex items-center justify-between gap-2 mb-2 shrink-0"},rl={class:"flex items-center gap-2"},il=ue({__name:"LogViewer",props:{logs:{},autoScroll:{type:Boolean,default:!0}},emits:["update:autoScroll","clear","copy"],setup(e,{emit:m}){const a=e,d=m;me();const t=O(null),g=O(a.autoScroll);ee(()=>a.autoScroll,l=>{g.value=l}),ee(()=>a.logs.length,()=>{g.value&&he(()=>{t.value&&(t.value.scrollTop=t.value.scrollHeight)})});function u(l){const h=!!l;g.value=h,d("update:autoScroll",h)}function S(){d("clear")}function U(){d("copy")}function v(l){switch(l){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(l,h)=>{const B=ta,w=de;return i(),b("div",sl,[n("div",ol,[n("div",rl,[s(B,{modelValue:g.value,"onUpdate:modelValue":[h[0]||(h[0]=_=>g.value=_),u],label:l.$t("serverDetail.logs.autoScroll"),class:"text-gray-600 dark:text-gray-400"},null,8,["modelValue","label"]),s(w,{size:"small",icon:y(ie),plain:"",onClick:S},{default:f(()=>[E(o(l.$t("serverDetail.logs.clear")),1)]),_:1},8,["icon"]),s(w,{size:"small",icon:y(wt),plain:"",onClick:U},{default:f(()=>[E(o(l.$t("common.copy")),1)]),_:1},8,["icon"])])]),n("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:t},[(i(!0),b(Z,null,K(e.logs,(_,$)=>(i(),b("div",{key:$,class:"mb-1 break-words"},[n("span",{class:Q(v(_.level))},o(y(ut)(_.timestamp))+" ["+o(_.level.toUpperCase())+"] "+o(_.message),3)]))),128))],512)])}}}),ul={class:"h-full flex flex-col"},cl={class:"flex h-full gap-4"},dl={class:"w-1/3 border-r border-gray-200 dark:border-gray-700 pr-4 overflow-y-auto"},ml={class:"font-bold mb-4"},fl={key:0,class:"space-y-2"},vl=["onClick"],pl={class:"min-w-0 flex-1 mr-2"},gl={class:"font-medium truncate"},yl={key:1,class:"text-gray-500 text-sm italic"},hl={class:"flex-1 min-h-0 overflow-y-auto px-4 flex flex-col"},bl={class:"flex justify-between items-center mb-4 shrink-0"},_l={class:"font-bold"},$l={key:0},Cl={class:"mb-4 text-gray-600 dark:text-gray-300"},wl={class:"font-medium mb-2"},kl={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"},xl={key:1,class:"flex-1 flex items-center justify-center text-gray-400"},Sl=ue({__name:"ToolsTab",props:{tools:{},allowedTools:{default:null}},emits:["select-tool","update-tool-visibility","call-tool"],setup(e,{emit:m}){const a=e,d=m;me();const t=O(null);function g(v){t.value=v,d("select-tool",v)}function u(v){return a.allowedTools===void 0||a.allowedTools===null||a.allowedTools.length===0?!1:Array.isArray(a.allowedTools)?a.allowedTools.includes(v):!1}function S(v,l){d("update-tool-visibility",v,l)}function U(){t.value&&d("call-tool",t.value)}return(v,l)=>{const h=dt,B=de;return i(),b("div",ul,[n("div",cl,[n("div",dl,[n("h3",ml,o(v.$t("serverDetail.tools.available")),1),e.tools&&e.tools.length>0?(i(),b("div",fl,[(i(!0),b(Z,null,K(e.tools,w=>(i(),b("div",{key:w.name,class:Q(["p-3 rounded-lg cursor-pointer transition-colors flex items-center justify-between group",t.value?.name===w.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:_=>g(w)},[n("div",pl,[n("div",gl,o(w.name),1)]),s(h,{"model-value":u(w.name),"onUpdate:modelValue":_=>S(w.name,!!_),class:"mr-4","active-text":v.$t("serverDetail.tools.aggregated")},null,8,["model-value","onUpdate:modelValue","active-text"])],10,vl))),128))])):(i(),b("div",yl,o(v.$t("serverDetail.tools.none")),1))]),n("div",hl,[n("div",bl,[n("h3",_l,o(v.$t("serverDetail.tools.details"))+": "+o(t.value?.name||""),1),t.value?(i(),H(B,{key:0,type:"primary",size:"small",onClick:U},{default:f(()=>[E(o(v.$t("serverDetail.tools.call")),1)]),_:1})):M("",!0)]),t.value?(i(),b("div",$l,[n("p",Cl,o(t.value.description),1),n("h4",wl,o(v.$t("serverDetail.tools.schema")),1),n("pre",kl,o(JSON.stringify(t.value.inputSchema,null,2)),1)])):(i(),b("div",xl,o(v.$t("serverDetail.tools.selectHint")),1))])])])}}}),Vl={class:"h-full overflow-y-auto"},Il={class:"flex items-center gap-2"},Tl={class:"font-medium"},Dl={key:0,class:"text-center py-8 text-gray-500"},El=ue({__name:"ResourcesTab",props:{resources:{}},emits:["view-resource"],setup(e,{emit:m}){const a=m;me();function d(t){a("view-resource",t)}return(t,g)=>{const u=Se,S=la,U=de,v=aa;return i(),b("div",Vl,[s(v,{data:e.resources||[],style:{width:"100%"},class:"custom-table"},{default:f(()=>[s(S,{prop:"name",label:t.$t("common.name"),width:"200"},{default:f(({row:l})=>[n("div",Il,[s(u,null,{default:f(()=>[s(y(kt))]),_:1}),n("span",Tl,o(l.name),1)])]),_:1},8,["label"]),s(S,{prop:"uri",label:t.$t("common.uri"),"min-width":"300"},null,8,["label"]),s(S,{prop:"mimeType",label:t.$t("common.mimeType"),width:"150"},null,8,["label"]),s(S,{label:"",width:"100",align:"right"},{default:f(({row:l})=>[s(U,{size:"small",plain:"",onClick:h=>d(l)},{default:f(()=>[E(o(t.$t("action.view")),1)]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),!e.resources||e.resources.length===0?(i(),b("div",Dl,o(t.$t("serverDetail.resources.none")),1)):M("",!0)])}}}),Bl={class:"dialog-footer"},Ul=ue({__name:"JsonConfigEditor",props:{modelValue:{type:Boolean},config:{},serverName:{}},emits:["update:modelValue","save"],setup(e,{emit:m}){const a=e,d=m,{t}=me(),g=O(""),u=q({get:()=>a.modelValue,set:h=>d("update:modelValue",h)}),S=q(()=>t("serverDetail.editJsonTitle")||"Edit JSON Config");ee(()=>a.modelValue,h=>{h&&U()});function U(){const h={env:a.config.env||{},enabled:a.config.enabled,description:a.config.description};a.config.headers&&Object.keys(a.config.headers).length>0&&(h.headers=a.config.headers),a.config.timeout&&(h.timeout=a.config.timeout),a.config.type==="stdio"?(h.command=a.config.command,h.args=a.config.args||[]):h.url=a.config.url;const B={mcpServers:{[a.serverName]:h}};g.value=JSON.stringify(B,null,2)}function v(){u.value=!1}function l(){try{const h=JSON.parse(g.value);if(!h.mcpServers)throw new Error("Missing mcpServers key");const B=Object.keys(h.mcpServers);if(B.length===0)throw new Error("No server config found");const w=B[0]||"",_=h.mcpServers[w],$={...a.config};_.command?($.type="stdio",$.command=_.command,$.args=_.args||[],delete $.url):_.url&&($.type=_.type==="sse"?"sse":"streamable-http",$.url=_.url,delete $.command,delete $.args),_.env&&($.env=_.env),_.headers&&($.headers=_.headers),_.timeout!==void 0&&($.timeout=_.timeout),_.enabled!==void 0&&($.enabled=_.enabled),_.description!==void 0&&($.description=_.description),d("save",$),u.value=!1,I.success(t("action.configSaved"))}catch(h){h instanceof Error?I.error("Invalid JSON: "+h.message):I.error("Invalid JSON: "+String(h))}}return(h,B)=>{const w=Ve,_=de,$=We;return i(),H($,{modelValue:u.value,"onUpdate:modelValue":B[1]||(B[1]=L=>u.value=L),title:S.value,width:"600px"},{footer:f(()=>[n("span",Bl,[s(_,{onClick:v},{default:f(()=>[E(o(h.$t("action.cancel")),1)]),_:1}),s(_,{type:"primary",onClick:l},{default:f(()=>[E(o(h.$t("action.save")),1)]),_:1})])]),default:f(()=>[s(w,{modelValue:g.value,"onUpdate:modelValue":B[0]||(B[0]=L=>g.value=L),type:"textarea",rows:15,"font-family":"monospace"},null,8,["modelValue"])]),_:1},8,["modelValue","title"])}}}),Rl={class:"dialog-footer"},nt=ue({__name:"InstanceSelectDialog",props:{modelValue:{type:Boolean},instances:{},title:{default:""}},emits:["update:modelValue","confirm"],setup(e,{emit:m}){const a=e,d=m,{t}=me(),g=O(null),u=q({get:()=>a.modelValue,set:h=>d("update:modelValue",h)}),S=q(()=>a.title||t("serverDetail.selectInstanceTitle")||"Select Instance");function U(h){return`#${h.index??0} [${h.displayName||t("serverDetail.instances.unnamed")}]`}function v(){u.value=!1,g.value=null}function l(){g.value!==null&&(d("confirm",g.value),u.value=!1,g.value=null)}return(h,B)=>{const w=qe,_=Je,$=de,L=We;return i(),H(L,{modelValue:u.value,"onUpdate:modelValue":B[1]||(B[1]=R=>u.value=R),title:S.value,width:"500px"},{footer:f(()=>[n("span",Rl,[s($,{onClick:v},{default:f(()=>[E(o(h.$t("action.cancel")),1)]),_:1}),s($,{type:"primary",onClick:l,disabled:g.value===null},{default:f(()=>[E(o(h.$t("action.confirm")),1)]),_:1},8,["disabled"])])]),default:f(()=>[s(_,{modelValue:g.value,"onUpdate:modelValue":B[0]||(B[0]=R=>g.value=R),placeholder:h.$t("serverDetail.selectInstancePlaceholder"),class:"w-full"},{default:f(()=>[(i(!0),b(Z,null,K(e.instances,R=>(i(),H(w,{key:R.index??0,label:U(R),value:R.index??0},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])]),_:1},8,["modelValue","title"])}}}),Al={class:"instance-card-list"},zl={class:"mb-4 flex justify-between items-center"},Nl={class:"text-lg font-semibold text-gray-900 dark:text-white"},jl={key:0,class:"mb-4"},Ol={class:"flex items-center justify-between"},Ml={class:"flex items-center gap-3"},Pl={class:"flex items-center gap-2"},Fl={class:"font-mono text-sm text-purple-600 dark:text-purple-400"},Ll={class:"flex flex-col gap-3 mb-4"},Hl=["onClick"],Jl={class:"flex items-center justify-between"},ql={class:"flex items-center gap-3"},Wl={class:"flex items-center gap-2"},Gl={class:"font-mono text-sm text-gray-500 dark:text-gray-400"},Ql={class:"font-medium text-gray-900 dark:text-white"},Xl={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"},Zl=ue({__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(e,{emit:m}){const a=e,d=m,t=O(!1),g=O(null),u=O(""),S=O(),U=q(()=>[...a.instances].sort((j,p)=>(j.index??0)-(p.index??0)));function v(j){return j.status||"offline"}function l(){return a.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 h(j){return a.selectedIndex===j?"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 B(j){switch(j){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 w(j){switch(j){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 _(){d("select-template")}function $(j){d("select",j)}function L(){d("add")}function R(j){t.value=!0,g.value=j.index??null,u.value=j.displayName||"",setTimeout(()=>{S.value?.focus()},100)}function te(j){const p=u.value.trim();d("update-display-name",j,p),ne()}function ne(){t.value=!1,g.value=null,u.value=""}function se(j){d("delete",j)}function ce(){d("reassign-indexes")}return(j,p)=>{const z=de,c=He,C=Ve,P=xt;return i(),b("div",Al,[n("div",zl,[n("h3",Nl,o(j.$t("serverDetail.instances.title")),1),s(z,{size:"small",icon:y(Me),plain:"",onClick:ce},{default:f(()=>[E(o(j.$t("serverDetail.instances.reassignIndexes")),1)]),_:1},8,["icon"])]),e.showTemplateNode?(i(),b("div",jl,[n("div",{class:Q(["template-card p-4 rounded-lg border transition-all duration-200 cursor-pointer",l()]),onClick:_},[n("div",Ol,[n("div",Ml,[p[2]||(p[2]=n("div",{class:"w-3 h-3 rounded-full bg-purple-500"},null,-1)),n("div",Pl,[n("span",Fl,o(j.$t("common.template")),1),s(c,{size:"small",type:"info"},{default:f(()=>[E(o(j.$t("serverDetail.instances.templateTag")),1)]),_:1})])])])],2)])):M("",!0),n("div",Ll,[(i(!0),b(Z,null,K(U.value,x=>(i(),b("div",{key:x.index??0,class:Q(["instance-card p-4 rounded-lg border transition-all duration-200 cursor-pointer",h(x.index??0)]),onClick:W=>$(x.index??0)},[n("div",Jl,[n("div",ql,[n("div",{class:Q(["w-3 h-3 rounded-full",B(v(x))])},null,2),n("div",Wl,[!t.value||g.value!==x.index?(i(),b(Z,{key:0},[n("span",Gl," #"+o(x.index??0),1),n("span",Ql," ["+o(x.displayName||j.$t("serverDetail.instances.unnamed"))+"] ",1)],64)):(i(),H(C,{key:1,modelValue:u.value,"onUpdate:modelValue":p[0]||(p[0]=W=>u.value=W),size:"small",onKeyup:[be(W=>te(x.index??0),["enter"]),be(ne,["escape"])],ref_for:!0,ref_key:"displayNameInputRef",ref:S,onBlur:W=>te(x.index??0),class:"max-w-xs"},null,8,["modelValue","onKeyup","onBlur"]))]),x.pid&&v(x)==="online"?M("",!0):(i(),b("div",{key:0,class:Q(["px-2 py-0.5 rounded-full text-xs",w(v(x))])},o(j.$t(`serverDetail.status.${v(x)}`)),3)),x.transportType==="stdio"&&x.pid&&v(x)==="online"?(i(),b("div",Xl," PID: "+o(x.pid),1)):M("",!0)]),n("div",{class:"flex items-center gap-2",onClick:p[1]||(p[1]=ke(()=>{},["stop"]))},[!t.value||g.value!==x.index?(i(),b(Z,{key:0},[s(P,{content:j.$t("serverDetail.instances.editDisplayName")||"Edit display name",placement:"top"},{default:f(()=>[s(z,{icon:y(St),circle:"",plain:"",size:"small",onClick:W=>R(x)},null,8,["icon","onClick"])]),_:2},1032,["content"]),s(z,{icon:y(ie),circle:"",plain:"",size:"small",type:"danger",onClick:W=>se(x.index??0)},null,8,["icon","onClick"])],64)):M("",!0)])])],10,Hl))),128))]),s(z,{icon:y(fe),class:"w-full",onClick:L},{default:f(()=>[E(o(j.$t("serverDetail.instances.add")),1)]),_:1},8,["icon"])])}}}),Yl=Ie(Zl,[["__scopeId","data-v-24e76b86"]]),Kl={class:"preview-content"},en={class:"action-bar flex justify-end mb-4"},tn={class:"config-display"},an={class:"config-json"},ln=ue({__name:"MergedConfigPreviewDialog",props:{modelValue:{type:Boolean},mergedConfig:{}},emits:["update:modelValue"],setup(e){const m=e,{t:a}=me(),d=q(()=>JSON.stringify(m.mergedConfig,null,2));async function t(){try{await navigator.clipboard.writeText(d.value),I.success(a("action.copiedToClipboard"))}catch{I.error(a("action.copyFailed"))}}return(g,u)=>{const S=Se,U=de,v=We;return i(),H(v,{"model-value":e.modelValue,"onUpdate:modelValue":u[0]||(u[0]=l=>g.$emit("update:modelValue",l)),title:g.$t("serverDetail.instanceConfig.mergedPreview"),width:"70%","destroy-on-close":"",class:"merged-config-dialog"},{default:f(()=>[n("div",Kl,[n("div",en,[s(U,{type:"primary",onClick:t},{default:f(()=>[s(S,null,{default:f(()=>[s(y(Vt))]),_:1}),E(" "+o(g.$t("common.copy")),1)]),_:1})]),n("div",tn,[n("pre",an,o(d.value),1)])])]),_:1},8,["model-value","title"])}}}),nn=Ie(ln,[["__scopeId","data-v-84fcda8e"]]),sn={class:"instance-config h-full flex flex-col min-h-0"},on={class:"header-bar flex justify-between items-center mb-4 px-4 flex-shrink-0"},rn={class:"flex items-center gap-4"},un={class:"text-lg font-semibold text-gray-900 dark:text-white"},cn={class:"flex gap-2"},dn={class:"config-form space-y-4 flex-1 overflow-y-auto min-h-0 pb-4"},mn={class:"px-4"},fn={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},vn={class:"flex items-center gap-2"},pn={class:"text-xs text-gray-500 dark:text-gray-400"},gn={class:"px-4"},yn={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},hn={class:"flex gap-2 items-start"},bn={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},_n={key:0,class:"px-4"},$n={class:"flex items-center justify-between mb-2"},Cn={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},wn={key:0,class:"space-y-2 mb-3"},kn={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},xn={key:1,class:"space-y-2"},Sn={class:"px-4"},Vn={class:"flex items-center justify-between mb-2"},In={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Tn={key:0,class:"space-y-2 mb-3"},Dn={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},En={key:1,class:"space-y-2"},Bn={key:1,class:"px-4"},Un={class:"flex items-center justify-between mb-2"},Rn={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},An={key:0,class:"space-y-2 mb-3"},zn={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},Nn={key:1,class:"space-y-2"},jn={class:"px-4"},On={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Mn={class:"flex gap-2 items-center"},Pn={class:"text-xs text-gray-500 dark:text-gray-400"},Fn={class:"px-4"},Ln={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},Hn={class:"flex gap-2 items-start"},Jn={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},qn={key:2,class:"px-4"},Wn={class:"flex items-center justify-between mb-2"},Gn={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},Qn={key:0,class:"space-y-2 mb-3"},Xn={class:"flex gap-2 items-start"},Zn={class:"text-xs text-gray-500 dark:text-gray-400 pt-2 whitespace-nowrap"},Yn={key:1,class:"flex gap-2 items-start"},Kn={class:"px-4"},es={class:"flex items-center justify-between mb-2"},ts={class:"block text-sm font-bold text-gray-700 dark:text-gray-300"},as={key:0,class:"text-center py-4 text-gray-500"},ls={key:1,class:"space-y-2"},ns={class:"text-xs text-gray-500 ml-2"},ss={class:"px-4"},os={class:"block text-sm font-bold text-gray-700 dark:text-gray-300 mb-2"},rs={class:"flex gap-2 items-center"},is={class:"flex gap-2 pt-4 pb-4 border-t border-gray-200 dark:border-gray-700 px-4"},us=ue({__name:"InstanceConfig",props:{templateConfig:{},instanceConfig:{},serverName:{},instanceStatus:{default:"offline"},systemTagDefinitions:{}},emits:["update","start-instance","stop-instance","restart-instance","view-logs"],setup(e,{emit:m}){const a=e,d=m,{t}=me();function g(){d("start-instance")}function u(){d("stop-instance")}function S(){d("restart-instance")}function U(){d("view-logs")}const v=O(!1),l=O({enabled:!0,...a.instanceConfig});let h=0,B=0,w=0;const _=O({}),$=O({}),L=O({}),R=O({}),te=q(()=>a.templateConfig.args&&a.templateConfig.args.length>0),ne=q(()=>a.templateConfig.env&&Object.keys(a.templateConfig.env).length>0),se=q(()=>a.templateConfig.headers&&Object.keys(a.templateConfig.headers).length>0);ee(()=>a.instanceConfig,r=>{l.value={...r},_.value={},r.env&&Object.keys(r.env).forEach(V=>{_.value[V]=`env-${h++}`}),$.value={},r.headers&&Object.keys(r.headers).forEach(V=>{$.value[V]=`header-${B++}`}),L.value={},R.value={},r.tags&&Object.keys(r.tags).forEach(V=>{L.value[V]=`tag-${w++}`,a.systemTagDefinitions.some(le=>le.key===V)?R.value[V]=V:(R.value[V]=V,console.warn(`未定义的标签键: ${V}`))})},{immediate:!0});const ce=q(()=>{const r={...a.templateConfig};return l.value.args&&l.value.args.length>0&&(r.args=[...a.templateConfig.args||[],...l.value.args]),l.value.env&&Object.keys(l.value.env).length>0&&(r.env={...a.templateConfig.env||{},...l.value.env}),l.value.headers&&Object.keys(l.value.headers).length>0&&(r.headers={...a.templateConfig.headers||{},...l.value.headers}),l.value.proxy&&(r.proxy=l.value.proxy),l.value.tags&&Object.keys(l.value.tags).length>0&&(r.tags=l.value.tags),l.value.displayName&&(r.displayName=l.value.displayName),l.value.enabled!==void 0&&(r.enabled=l.value.enabled),r});function j(r){switch(r){case"stdio":return t("serverDetail.config.transportStdio");case"sse":return t("serverDetail.config.transportSse");case"streamable-http":return t("serverDetail.config.transportHttp");default:return r}}function p(){d("update",l.value)}function z(){l.value.proxy?l.value.proxy=void 0:l.value.proxy={url:""}}function c(){l.value.args||(l.value.args=[]),l.value.args.push("")}function C(r){l.value.args&&l.value.args.splice(r,1)}function P(){l.value.env||(l.value.env={});const r=`NEW_ENV_${Date.now()}`;l.value.env[r]="",_.value[r]=`env-${h++}`}function x(r){l.value.env&&(delete l.value.env[r],delete _.value[r])}function W(r,V){if(!l.value.env||!r||!V||r===V)return;const N=l.value.env[r]??"",le=_.value[r]||`env-${h++}`;delete l.value.env[r],delete _.value[r],l.value.env[V]=N,_.value[V]=le}function oe(){l.value.headers||(l.value.headers={});const r=`X-New-Header-${Date.now()}`;l.value.headers[r]="",$.value[r]=`header-${B++}`}function re(r){l.value.headers&&(delete l.value.headers[r],delete $.value[r])}function J(r,V){if(!l.value.headers||!r||!V||r===V)return;const N=l.value.headers[r]??"",le=$.value[r]||`header-${B++}`;delete l.value.headers[r],delete $.value[r],l.value.headers[V]=N,$.value[V]=le}function T(){if(l.value.tags||(l.value.tags={}),a.systemTagDefinitions.length>0){const r=a.systemTagDefinitions[0];if(r){const V=r.key;let N=V,le=1;for(;l.value.tags&&Object.prototype.hasOwnProperty.call(l.value.tags,N);)N=`${V}-${le}`,le++;l.value.tags[N]="",L.value[N]=`tag-${w++}`,R.value[N]=V}}else{I.warning("请先在设置中定义标签");const r=`new-tag-${Date.now()}`;l.value.tags[r]="",L.value[r]=`tag-${w++}`,R.value[r]=r}}function G(r){l.value.tags&&(delete l.value.tags[r],delete L.value[r],delete R.value[r])}function ae(r,V){if(!l.value.tags||!V)return;const N=l.value.tags[r]??"",le=L.value[r]||`tag-${w++}`;delete l.value.tags[r],delete L.value[r],delete R.value[r],l.value.tags[V]=N,L.value[V]=le,R.value[V]=V}function ye(r){const V=a.systemTagDefinitions.find(N=>N.key===r);return V?V.type:null}function Te(r){const V=a.systemTagDefinitions.find(N=>N.key===r);return V?.type==="enum"?V.values||[]:[]}function $e(r){return a.systemTagDefinitions.find(N=>N.key===r)?.description||"输入标签值"}function Ue(){window.location.hash="#/settings/tags"}return(r,V)=>{const N=de,le=Se,ve=He,Y=Ve,Re=ct,De=qe,Ee=Je,F=dt;return i(),b("div",sn,[n("div",on,[n("div",rn,[n("h3",un,o(r.$t("serverDetail.instanceConfig.title")),1),n("div",cn,[s(N,{icon:y(Me),plain:"",onClick:S},{default:f(()=>[E(o(r.$t("action.restart")),1)]),_:1},8,["icon"]),e.instanceStatus==="error"?(i(),H(N,{key:0,type:"danger",plain:"",icon:y(It),onClick:U},{default:f(()=>[E(o(r.$t("action.viewLogs")),1)]),_:1},8,["icon"])):e.instanceStatus==="online"?(i(),H(N,{key:1,type:"warning",plain:"",icon:y(Tt),onClick:u},{default:f(()=>[E(o(r.$t("action.stop")),1)]),_:1},8,["icon"])):(i(),H(N,{key:2,type:"success",icon:y(st),onClick:g},{default:f(()=>[E(o(r.$t("action.start")),1)]),_:1},8,["icon"]))])]),s(N,{onClick:V[0]||(V[0]=D=>v.value=!0)},{default:f(()=>[s(le,null,{default:f(()=>[s(y(Dt))]),_:1}),E(" "+o(r.$t("serverDetail.instanceConfig.viewMerged")),1)]),_:1})]),n("div",dn,[n("div",mn,[n("label",fn,o(r.$t("serverDetail.config.transport")),1),n("div",vn,[s(ve,{size:"small",type:"info"},{default:f(()=>[E(o(j(e.templateConfig.type)),1)]),_:1}),n("span",pn,o(r.$t("serverDetail.instanceConfig.fromTemplate")),1)])]),n("div",gn,[n("label",yn,o(e.templateConfig.type==="stdio"?r.$t("serverDetail.config.executable"):r.$t("serverDetail.config.url")),1),n("div",hn,[s(Y,{"model-value":e.templateConfig.type==="stdio"?e.templateConfig.command:e.templateConfig.url,disabled:"",class:"flex-1"},null,8,["model-value"]),n("span",bn,o(r.$t("serverDetail.instanceConfig.fromTemplate")),1)])]),e.templateConfig.type==="stdio"?(i(),b("div",_n,[n("div",$n,[n("label",Cn,o(r.$t("serverDetail.config.args")),1),s(N,{size:"small",icon:y(fe),onClick:c},{default:f(()=>[E(o(r.$t("serverDetail.config.addArg")),1)]),_:1},8,["icon"])]),te.value?(i(),b("div",wn,[(i(!0),b(Z,null,K(e.templateConfig.args,(D,k)=>(i(),b("div",{key:`template-arg-${k}`,class:"flex gap-2 items-start"},[s(Y,{"model-value":D,disabled:"",class:"flex-1"},null,8,["model-value"]),n("span",kn,o(r.$t("serverDetail.instanceConfig.fromTemplate")),1)]))),128))])):M("",!0),l.value.args&&l.value.args.length>0?(i(),b("div",xn,[(i(!0),b(Z,null,K(l.value.args,(D,k)=>(i(),b("div",{key:`instance-arg-${k}`,class:"flex gap-2 items-start"},[s(Y,{modelValue:l.value.args[k],"onUpdate:modelValue":A=>l.value.args[k]=A,class:"flex-1"},null,8,["modelValue","onUpdate:modelValue"]),s(N,{size:"small",type:"danger",icon:y(ie),onClick:A=>C(k)},null,8,["icon","onClick"]),s(ve,{size:"small",type:"success"},{default:f(()=>[E(o(r.$t("common.instance")),1)]),_:1})]))),128))])):M("",!0)])):M("",!0),n("div",Sn,[n("div",Vn,[n("label",In,o(r.$t("serverDetail.config.env")),1),s(N,{size:"small",icon:y(fe),onClick:P},{default:f(()=>[E(o(r.$t("serverDetail.config.addEnv")),1)]),_:1},8,["icon"])]),ne.value?(i(),b("div",Tn,[(i(!0),b(Z,null,K(e.templateConfig.env,(D,k)=>(i(),b("div",{key:`template-env-${k}`,class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[s(Y,{"model-value":k,disabled:"",style:{width:"30%","min-width":"150px"}},null,8,["model-value"]),s(Y,{"model-value":e.templateConfig.env[k],disabled:"",style:{flex:"1"}},null,8,["model-value"]),n("span",Dn,o(r.$t("serverDetail.instanceConfig.fromTemplate")),1)]))),128))])):M("",!0),l.value.env&&Object.keys(l.value.env).length>0?(i(),b("div",En,[(i(!0),b(Z,null,K(l.value.env,(D,k)=>(i(),b("div",{key:_.value[k],class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[s(Y,{"model-value":k,style:{width:"30%","min-width":"150px"},placeholder:r.$t("addServer.keyPlaceholder"),"onUpdate:modelValue":A=>W(k,A)},null,8,["model-value","placeholder","onUpdate:modelValue"]),s(Y,{modelValue:l.value.env[k],"onUpdate:modelValue":A=>l.value.env[k]=A,style:{flex:"1"},placeholder:r.$t("addServer.valuePlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),s(N,{size:"small",type:"danger",icon:y(ie),onClick:A=>x(k)},null,8,["icon","onClick"]),s(ve,{size:"small",type:"success"},{default:f(()=>[E(o(r.$t("common.instance")),1)]),_:1})]))),128))])):M("",!0)]),e.templateConfig.type!=="stdio"?(i(),b("div",Bn,[n("div",Un,[n("label",Rn,o(r.$t("serverDetail.config.headers")),1),s(N,{size:"small",icon:y(fe),onClick:oe},{default:f(()=>[E(o(r.$t("serverDetail.config.addHeader")),1)]),_:1},8,["icon"])]),se.value?(i(),b("div",An,[(i(!0),b(Z,null,K(e.templateConfig.headers,(D,k)=>(i(),b("div",{key:`template-header-${k}`,class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[s(Y,{"model-value":k,disabled:"",style:{width:"30%","min-width":"150px"}},null,8,["model-value"]),s(Y,{"model-value":e.templateConfig.headers[k],disabled:"",style:{flex:"1"}},null,8,["model-value"]),n("span",zn,o(r.$t("serverDetail.instanceConfig.fromTemplate")),1)]))),128))])):M("",!0),l.value.headers&&Object.keys(l.value.headers).length>0?(i(),b("div",Nn,[(i(!0),b(Z,null,K(l.value.headers,(D,k)=>(i(),b("div",{key:$.value[k],class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[s(Y,{"model-value":k,style:{width:"30%","min-width":"150px"},placeholder:r.$t("addServer.keyPlaceholder"),"onUpdate:modelValue":A=>J(k,A)},null,8,["model-value","placeholder","onUpdate:modelValue"]),s(Y,{modelValue:l.value.headers[k],"onUpdate:modelValue":A=>l.value.headers[k]=A,style:{flex:"1"},placeholder:r.$t("addServer.valuePlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),s(N,{size:"small",type:"danger",icon:y(ie),onClick:A=>re(k)},null,8,["icon","onClick"]),s(ve,{size:"small",type:"success"},{default:f(()=>[E(o(r.$t("common.instance")),1)]),_:1})]))),128))])):M("",!0)])):M("",!0),n("div",jn,[n("label",On,o(r.$t("serverDetail.config.timeout")),1),n("div",Mn,[s(Re,{"model-value":e.templateConfig.timeout?e.templateConfig.timeout/1e3:60,disabled:"",min:1,max:3600},null,8,["model-value"]),n("span",Pn,o(r.$t("serverDetail.instanceConfig.fromTemplate")),1)])]),n("div",Fn,[n("label",Ln,o(r.$t("common.description")),1),n("div",Hn,[s(Y,{"model-value":e.templateConfig.description,type:"textarea",rows:3,disabled:"",class:"flex-1"},null,8,["model-value"]),n("span",Jn,o(r.$t("serverDetail.instanceConfig.fromTemplate")),1)])]),e.templateConfig.type!=="stdio"?(i(),b("div",qn,[n("div",Wn,[n("label",Gn,o(r.$t("serverDetail.config.proxy")),1),l.value.proxy?(i(),H(N,{key:1,size:"small",type:"danger",icon:y(ie),onClick:z},{default:f(()=>[E(o(r.$t("serverDetail.config.removeProxy")),1)]),_:1},8,["icon"])):(i(),H(N,{key:0,size:"small",icon:y(fe),onClick:z},{default:f(()=>[E(o(r.$t("serverDetail.config.addProxy")),1)]),_:1},8,["icon"]))]),e.templateConfig.proxy&&!l.value.proxy?(i(),b("div",Qn,[n("div",Xn,[s(Y,{"model-value":e.templateConfig.proxy.url,disabled:""},null,8,["model-value"]),n("span",Zn,o(r.$t("serverDetail.instanceConfig.fromTemplate")),1)])])):M("",!0),l.value.proxy?(i(),b("div",Yn,[s(Y,{modelValue:l.value.proxy.url,"onUpdate:modelValue":V[1]||(V[1]=D=>l.value.proxy.url=D),placeholder:r.$t("serverDetail.config.proxyPlaceholder")},null,8,["modelValue","placeholder"]),s(ve,{size:"small",type:"success"},{default:f(()=>[E(o(r.$t("common.instance")),1)]),_:1})])):M("",!0)])):M("",!0),n("div",Kn,[n("div",es,[n("label",ts,o(r.$t("serverDetail.config.tags")),1),s(N,{size:"small",icon:y(fe),onClick:T},{default:f(()=>[E(o(r.$t("common.addTag")),1)]),_:1},8,["icon"])]),e.systemTagDefinitions.length===0?(i(),b("div",as,[V[5]||(V[5]=n("p",null,"暂无标签定义",-1)),s(N,{size:"small",type:"primary",onClick:Ue},{default:f(()=>[...V[4]||(V[4]=[E(" 前往标签设置 ",-1)])]),_:1})])):l.value.tags&&Object.keys(l.value.tags).length>0?(i(),b("div",ls,[(i(!0),b(Z,null,K(l.value.tags,(D,k)=>(i(),b("div",{key:L.value[k],class:"flex gap-2 items-start",style:{display:"flex",gap:"0.5rem",width:"100%"}},[s(Ee,{modelValue:R.value[k],"onUpdate:modelValue":A=>R.value[k]=A,style:{width:"30%","min-width":"150px"},filterable:"",placeholder:"选择标签键",onChange:A=>ae(k,A)},{default:f(()=>[(i(!0),b(Z,null,K(e.systemTagDefinitions,A=>(i(),H(De,{key:A.key,label:A.key,value:A.key},{default:f(()=>[n("span",null,o(A.key),1),n("span",ns,o(A.type),1)]),_:2},1032,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"]),R.value[k]&&ye(R.value[k])==="enum"?(i(),H(Ee,{key:0,modelValue:l.value.tags[k],"onUpdate:modelValue":A=>l.value.tags[k]=A,style:{flex:"1"},filterable:"",placeholder:"选择标签值"},{default:f(()=>[(i(!0),b(Z,null,K(Te(R.value[k]),A=>(i(),H(De,{key:A,label:A,value:A},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):(i(),H(Y,{key:1,modelValue:l.value.tags[k],"onUpdate:modelValue":A=>l.value.tags[k]=A,style:{flex:"1"},placeholder:R.value[k]?$e(R.value[k]):"输入标签值"},null,8,["modelValue","onUpdate:modelValue","placeholder"])),s(N,{size:"small",type:"danger",icon:y(ie),onClick:A=>G(k)},null,8,["icon","onClick"]),s(ve,{size:"small",type:"success"},{default:f(()=>[E(o(r.$t("common.instance")),1)]),_:1})]))),128))])):M("",!0)]),n("div",ss,[n("label",os,o(r.$t("serverDetail.config.autoStart")),1),n("div",rs,[s(F,{modelValue:l.value.enabled,"onUpdate:modelValue":V[2]||(V[2]=D=>l.value.enabled=D)},null,8,["modelValue"]),s(ve,{size:"small",type:"success"},{default:f(()=>[E(o(r.$t("common.instance")),1)]),_:1})])]),n("div",is,[s(N,{type:"primary",onClick:p},{default:f(()=>[E(o(r.$t("serverDetail.config.save")),1)]),_:1})])]),s(nn,{modelValue:v.value,"onUpdate:modelValue":V[3]||(V[3]=D=>v.value=D),"merged-config":ce.value},null,8,["modelValue","merged-config"])])}}}),cs=Ie(us,[["__scopeId","data-v-64c5af9a"]]);function ds(e){const m=Le(),a=Jt(),d=Pe(),t=O("config"),g=O(null),u=O("config");function S(){const w=a.name;return w==="server-detail-tools"?"tools":w==="server-detail-resources"?"resources":"config"}function U(w){if(!e.value?.name)return;const _=w,$=_==="tools"?"server-detail-tools":_==="resources"?"server-detail-resources":"server-detail-config";m.push({name:$,params:{name:e.value.name}})}function v(){g.value=null}function l(w){g.value=w}function h(){a.query.selection==="template"?g.value=null:a.query.instanceIndex!==void 0?g.value=parseInt(a.query.instanceIndex,10):g.value=null}function B(){a.query.instanceTab==="logs"?u.value="logs":u.value="config"}return Ht(()=>{const w=a.params.name;if(w){const _=d.servers.find($=>$.name===w);_&&d.selectServer(_.id)}t.value=S(),h(),B()}),ee(()=>a.params.name,w=>{if(w){const _=d.servers.find($=>$.name===w);_&&d.selectServer(_.id)}}),ee(()=>a.name,()=>{t.value=S(),h(),B()}),ee(u,w=>{if(!e.value?.name)return;const _={...a.query},$={};for(const[L,R]of Object.entries(_))R!=null&&($[L]=R);w==="config"?delete $.instanceTab:$.instanceTab=w,m.replace({name:a.name,params:a.params,query:$})}),ee(()=>d.servers.length,()=>{const w=a.params.name;if(w&&!d.selectedServer){const _=d.servers.find($=>$.name===w);_&&d.selectServer(_.id)}h(),B()}),ee(()=>e.value?.id,(w,_)=>{w&&w!==_&&(t.value=S())},{immediate:!0}),ee(g,w=>{if(!e.value?.name)return;const _={...a.query},$={};for(const[L,R]of Object.entries(_))R!=null&&($[L]=R);w===null?($.selection="template",delete $.instanceIndex):($.instanceIndex=String(w),delete $.selection),m.replace({name:a.name,params:a.params,query:$})}),{activeTopTab:t,selectedInstanceIndex:g,activeInstanceTab:u,getTabFromRoute:S,navigateToTab:U,handleSelectTemplate:v,handleSelectInstance:l}}function ms(e,m){const a=Pe(),{t:d}=me(),t=q(()=>(console.log("[useServerInstances] Computing allServers, store.servers:",a.servers),a.servers.filter(c=>c.name===e.value?.name))),g=q(()=>(console.log("[useServerInstances] Computing serverInstances"),e.value?.rawV11Config?.instances?e.value.rawV11Config.instances.map((c,C)=>{const x=t.value.find(J=>J.instances?.some(T=>T.id===c.id))?.instances?.find(J=>J.id===c.id);let W="offline",oe;const re=e.value?.rawV11Config?.template?.type;return x?.status?(W=x.status,oe=x.pid??void 0):W="offline",{id:c.id,timestamp:c.timestamp??Date.now(),index:c.index??C,displayName:c.displayName,status:W,pid:oe,transportType:re}}):(console.log("[useServerInstances] No instances found in rawV11Config"),[]))),u=q(()=>m.value===null?null:g.value.find(c=>c.index===m.value)||null),S=q(()=>{const c=u.value;if(!c||!e.value?.rawV11Config?.instances)return{args:[],env:{},headers:{},tags:{},enabled:!0};let C;return c.index!==void 0&&(C=e.value.rawV11Config.instances.find(P=>P.index===c.index)),C||(C=e.value.rawV11Config.instances.find(P=>P.id===c.id)),C?{args:C.args??[],env:C.env??{},headers:C.headers??{},tags:C.tags??{},displayName:C.displayName,enabled:C.enabled!==void 0?C.enabled:!0}:{args:[],env:{},headers:{},tags:{},displayName:c.displayName,enabled:!0}}),U=q(()=>e.value?.rawV11Config?.template?e.value.rawV11Config.template:{type:"stdio",args:[],env:{},headers:{},timeout:6e4,aggregatedTools:[]});function v(){return m.value===null?"offline":g.value.find(C=>C.index===m.value)?.status||"offline"}function l(){return m.value===null?null:g.value.find(C=>C.index===m.value)?.id||null}async function h(c){try{console.log("[startServerInstance] Starting instance:",c),a.updateServerStatus(c,"starting"),await a.startServer(c),I.success(d("action.started"))}catch(C){console.error("[startServerInstance] Error:",C),C instanceof Error?I.error(C.message):I.error(String(C))}}async function B(){const c=l();if(!c){I.warning(d("serverDetail.noInstanceSelected"));return}await h(c)}async function w(c){try{console.log("[stopServerInstance] Stopping instance:",c),await a.stopServer(c),I.success(d("action.stopped"))}catch(C){console.error("[stopServerInstance] Error:",C),C instanceof Error?I.error(C.message):I.error(String(C))}}async function _(){const c=l();if(!c){I.warning(d("serverDetail.noInstanceSelected"));return}await w(c)}async function $(c){try{console.log("[restartServerInstance] Restarting instance:",c),a.updateServerStatus(c,"starting");const C=g.value.find(P=>P.id===c);C&&C.status==="online"&&await a.stopServer(c),await a.startServer(c),I.success(d("action.restarted"))}catch(C){console.error("[restartServerInstance] Error:",C),C instanceof Error?I.error(C.message):I.error(String(C))}}async function L(){const c=l();if(!c){I.warning(d("serverDetail.noInstanceSelected"));return}await $(c)}async function R(){if(e.value?.name)try{await a.startAllServerInstances(e.value.name),I.success(d("action.started"))}catch(c){c instanceof Error?I.error(c.message):I.error(String(c))}}async function te(){if(e.value?.name)try{await a.stopAllServerInstances(e.value.name),I.success(d("action.stopped"))}catch(c){c instanceof Error?I.error(c.message):I.error(String(c))}}async function ne(){if(e.value?.name)try{await a.restartAllServerInstances(e.value.name),I.success(d("action.restarted"))}catch(c){c instanceof Error?I.error(c.message):I.error(String(c))}}async function se(){if(e.value?.name)try{const c=`temp-${Date.now()}`,C=e.value.rawV11Config?.instances||[],P=C.length>0?Math.max(...C.map(W=>W.index??0)):-1,x={id:c,timestamp:Date.now(),index:P+1,enabled:!0,args:[],env:{},headers:{},tags:{}};e.value.rawV11Config&&(e.value.rawV11Config.instances||(e.value.rawV11Config.instances=[]),e.value.rawV11Config.instances.push(x)),await a.addServerInstance(e.value.name),I.success(d("action.instanceAdded"))}catch(c){c instanceof Error?I.error(c.message):I.error(String(c))}}async function ce(c,C){if(e.value?.name)try{const x=e.value.rawV11Config?.instances?.find(W=>W.index===c);x&&(x.displayName=C),await a.updateServerInstance(e.value.name,c,{displayName:C}),I.success(d("action.displayNameUpdated"))}catch(P){P instanceof Error?I.error(P.message):I.error(String(P))}}async function j(c){if(e.value?.name)try{await mt.confirm(d("serverDetail.deleteInstanceConfirm"),d("action.delete"),{confirmButtonText:d("action.delete"),cancelButtonText:d("action.cancel"),type:"warning"});const C=e.value.rawV11Config?.instances;if(C){const P=C.findIndex(x=>x.index===c);P!==-1&&C.splice(P,1)}m.value===c&&(m.value=null),await a.removeServerInstance(e.value.name,c),I.success(d("action.instanceDeleted"))}catch(C){C!=="cancel"&&(C instanceof Error?I.error(C.message||"Failed to delete instance"):I.error(String(C)||"Failed to delete instance"))}}async function p(){if(e.value?.name)try{await a.reassignInstanceIndexes(e.value.name),I.success(d("action.indexesReassigned"))}catch(c){c instanceof Error?I.error(c.message):I.error(String(c))}}async function z(c){if(!(!e.value?.name||m.value===null))try{const C=m.value,x=e.value.rawV11Config?.instances?.find(W=>W.index===C);x&&(c.args!==void 0&&(x.args=c.args),c.env!==void 0&&(x.env=c.env),c.headers!==void 0&&(x.headers=c.headers),c.tags!==void 0&&(x.tags=c.tags),c.proxy!==void 0&&(x.proxy=c.proxy),c.displayName!==void 0&&(x.displayName=c.displayName),c.enabled!==void 0&&(x.enabled=c.enabled)),await a.updateServerInstance(e.value.name,C,c),I.success(d("action.configSaved"))}catch(C){C instanceof Error?I.error(C.message):I.error(String(C))}}return{serverInstances:g,selectedInstance:u,selectedInstanceConfig:S,templateConfigForInstance:U,allServers:t,getSelectedInstanceStatus:v,getSelectedInstanceServerId:l,startSelectedInstance:B,stopSelectedInstance:_,restartSelectedInstance:L,startAllInstances:R,stopAllInstances:te,restartAllInstances:ne,handleAddInstance:se,handleUpdateDisplayName:ce,handleDeleteInstance:j,handleReassignIndexes:p,handleUpdateInstanceConfig:z}}function fs(e){const m=Le(),a=O(null),d=O(!1),t=O(!1),g=O(null),u=O(!1),S=O(null),U=O(null);function v(B){e.value&&m.push({name:"resource-detail",params:{name:e.value.name},query:{uri:B.uri,name:B.name,mimeType:B.mimeType}})}function l(B){g.value=B,t.value=!1,d.value=!0}function h(B){const w=S.value;w&&v(w),S.value=null,u.value=!1,U.value=null}return ee(S,B=>{B!==null&&(u.value=!0,S.value=null)}),{showInstanceSelectForTool:t,selectedInstanceForTool:g,showCallDialog:d,pendingTool:a,showInstanceSelectForResourceDialog:u,showInstanceSelectForResource:S,selectedInstanceForResource:U,callToolWithInstance:l,viewResourceWithInstance:h}}const vs={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"},ps={class:"custom-tabs-label"},gs={class:"flex h-full gap-4 mt-4"},ys={class:"w-1/3 border-r border-gray-200 dark:border-gray-700 pr-4 overflow-y-auto"},hs={class:"flex-1 min-h-0 overflow-y-auto pl-4 pr-4"},bs={key:0,class:"h-full flex flex-col min-h-0"},_s={class:"flex-1 min-h-0 overflow-hidden"},$s={key:1,class:"h-full flex flex-col min-h-0"},Cs={class:"flex-1 min-h-0 overflow-hidden"},ws={class:"custom-tabs-label"},ks={class:"flex-1 min-h-0 overflow-hidden"},xs={class:"custom-tabs-label"},Ss={key:2,class:"flex-1 flex items-center justify-center text-gray-400"},Vs={class:"custom-tabs-label"},Is={class:"custom-tabs-label"},Ts={key:1,class:"h-full flex items-center justify-center text-gray-400"},Ds=ue({__name:"ServerDetail",setup(e){const m=Pe();Et();const a=Bt(),{config:d}=qt(a),{t}=me(),g=Le(),u=q(()=>m.selectedServer),S=q(()=>d.value?.tagDefinitions||[]),{activeTopTab:U,selectedInstanceIndex:v,activeInstanceTab:l,navigateToTab:h,handleSelectTemplate:B,handleSelectInstance:w}=ds(u),{serverInstances:_,selectedInstanceConfig:$,templateConfigForInstance:L,getSelectedInstanceStatus:R,startSelectedInstance:te,stopSelectedInstance:ne,restartSelectedInstance:se,startAllInstances:ce,stopAllInstances:j,restartAllInstances:p,handleAddInstance:z,handleUpdateDisplayName:c,handleDeleteInstance:C,handleReassignIndexes:P,handleUpdateInstanceConfig:x}=ms(u,v),{showInstanceSelectForTool:W,selectedInstanceForTool:oe,showCallDialog:re,pendingTool:J,showInstanceSelectForResourceDialog:T,showInstanceSelectForResource:G,callToolWithInstance:ae,viewResourceWithInstance:ye}=fs(u),Te=O(!0),$e=O(!1),Ue=O(null);ee([U,()=>u.value?.name],async([F,D])=>{D&&(F==="tools"?await m.fetchTools(D):F==="resources"&&await m.fetchResources(D))},{immediate:!0}),ee([l,()=>u.value?.name,v],([F,D,k])=>{D&&F==="logs"&&m.fetchLogs(D,k??0)});function r(){m.selectedServerId=null,g.push({name:"servers"})}const V=async()=>{if(u.value)try{await mt.confirm(t("serverDetail.deleteConfirm"),t("action.delete"),{confirmButtonText:t("action.delete"),cancelButtonText:t("action.cancel"),type:"warning"}),await m.deleteServer(u.value.id),I.success(t("action.serverDeleted")),m.selectedServerId=null,g.push({name:"servers"})}catch(F){F!=="cancel"&&(F instanceof Error?I.error(F.message||"Failed to delete server"):I.error(String(F)||"Failed to delete server"))}},N=async(F,D)=>{if(!u.value)return;let k=u.value.config.aggregatedTools;k==null&&(u.value.tools?k=u.value.tools.map(A=>A.name):k=[]),D?k.includes(F)||(k=[...k,F]):k=k.filter(A=>A!==F),u.value.config.aggregatedTools=k;try{await m.updateServer(u.value.id,{config:u.value.config}),I.success(t("action.configSaved"))}catch(A){A instanceof Error?I.error(A.message):I.error(String(A))}},le=async()=>{if(u.value)try{await m.updateServer(u.value.id,{config:u.value.rawV11Config?.template}),I.success(t("action.configSaved"))}catch(F){F instanceof Error?I.error(F.message):I.error(String(F))}},ve=F=>{u.value?.rawV11Config&&(u.value.rawV11Config.template=F)},Y=()=>{$e.value=!0},Re=async F=>{u.value&&(u.value.rawV11Config&&(u.value.rawV11Config.template={...u.value.rawV11Config.template,...F}),await m.updateServer(u.value.id,{config:u.value.rawV11Config?.template}))},De=async()=>{u.value&&(await m.clearLogs(u.value.id),I.success(t("action.logsCleared")))},Ee=()=>{if(u.value){const F=u.value.logs.map(D=>`${ut(D.timestamp)} [${D.level.toUpperCase()}] ${D.message}`).join(`
2
+ `);navigator.clipboard.writeText(F),I.success(t("action.logsCopied"))}};return(F,D)=>{const k=Se,A=Nt,Ge=zt;return u.value?(i(),b("div",vs,[s(xa,{server:u.value,onBack:r,onDelete:V,onRestartAll:y(p),onStartAll:y(ce),onStopAll:y(j)},null,8,["server","onRestartAll","onStartAll","onStopAll"]),s(Ge,{"model-value":y(U),onTabChange:D[6]||(D[6]=X=>y(h)(String(X))),class:"flex-1 flex flex-col overflow-hidden custom-tabs"},{default:f(()=>[s(A,{name:"config",class:"h-full flex flex-col"},{label:f(()=>[n("span",ps,[s(k,null,{default:f(()=>[s(y(et))]),_:1}),n("span",null,o(F.$t("common.config"))+" ("+o(y(_).length)+")",1)])]),default:f(()=>[n("div",gs,[n("div",ys,[s(Yl,{instances:y(_),"selected-index":y(v),"server-name":u.value.name,"show-template-node":!0,"template-selected":y(v)===null,onSelect:y(w),onSelectTemplate:y(B),onAdd:y(z),onUpdateDisplayName:y(c),onDelete:y(C),onReassignIndexes:y(P)},null,8,["instances","selected-index","server-name","template-selected","onSelect","onSelectTemplate","onAdd","onUpdateDisplayName","onDelete","onReassignIndexes"])]),n("div",hs,[y(v)===null?(i(),b("div",bs,[n("div",_s,[s(nl,{config:u.value.rawV11Config||{template:{type:"stdio",args:[],env:{},headers:{},timeout:6e4,aggregatedTools:[],instanceSelectionStrategy:"random"},instances:[],tagDefinitions:[]},"onUpdate:template":ve,onSave:le,onEditJson:Y},null,8,["config"])])])):y(v)!==null?(i(),b("div",$s,[n("div",Cs,[s(Ge,{modelValue:y(l),"onUpdate:modelValue":D[2]||(D[2]=X=>Be(l)?l.value=X:null),class:"instance-detail-tabs h-full flex flex-col"},{default:f(()=>[s(A,{name:"config",class:"h-full flex flex-col min-h-0"},{label:f(()=>[n("span",ws,[s(k,null,{default:f(()=>[s(y(et))]),_:1}),n("span",null,o(F.$t("common.config")),1)])]),default:f(()=>[n("div",ks,[s(cs,{"template-config":y(L),"instance-config":y($),"server-name":u.value.name,"instance-status":y(R)(),"system-tag-definitions":S.value,onUpdate:y(x),onStartInstance:y(te),onStopInstance:y(ne),onRestartInstance:y(se),onViewLogs:D[0]||(D[0]=X=>l.value="logs")},null,8,["template-config","instance-config","server-name","instance-status","system-tag-definitions","onUpdate","onStartInstance","onStopInstance","onRestartInstance"])])]),_:1}),s(A,{name:"logs",class:"h-full flex flex-col"},{label:f(()=>[n("span",xs,[s(k,null,{default:f(()=>[s(y(Ut))]),_:1}),n("span",null,o(F.$t("common.logs")),1)])]),default:f(()=>[s(il,{logs:u.value.logs,"auto-scroll":Te.value,"onUpdate:autoScroll":D[1]||(D[1]=X=>Te.value=X),onClear:De,onCopy:Ee},null,8,["logs","auto-scroll"])]),_:1})]),_:1},8,["modelValue"])])])):(i(),b("div",Ss,o(F.$t("serverDetail.noSelection")),1))])])]),_:1}),s(A,{name:"tools",class:"h-full flex flex-col"},{label:f(()=>[n("span",Vs,[s(k,null,{default:f(()=>[s(y(Rt))]),_:1}),n("span",null,o(F.$t("common.tools"))+" ("+o(u.value.toolsCount||0)+")",1)])]),default:f(()=>[s(Sl,{tools:u.value.tools||[],"allowed-tools":u.value.config.aggregatedTools,onSelectTool:D[3]||(D[3]=X=>Ue.value=X),onUpdateToolVisibility:N,onCallTool:D[4]||(D[4]=X=>{W.value=!0,J.value=X})},null,8,["tools","allowed-tools"])]),_:1}),s(A,{name:"resources",class:"h-full flex flex-col"},{label:f(()=>[n("span",Is,[s(k,null,{default:f(()=>[s(y(At))]),_:1}),n("span",null,o(F.$t("common.resources"))+" ("+o(u.value.resourcesCount||0)+")",1)])]),default:f(()=>[s(El,{resources:u.value.resources,onViewResource:D[5]||(D[5]=X=>{G.value=X})},null,8,["resources"])]),_:1})]),_:1},8,["model-value"]),s(Ul,{modelValue:$e.value,"onUpdate:modelValue":D[7]||(D[7]=X=>$e.value=X),config:u.value.config,"server-name":u.value.name,onSave:Re},null,8,["modelValue","config","server-name"]),s(nt,{modelValue:y(W),"onUpdate:modelValue":D[8]||(D[8]=X=>Be(W)?W.value=X:null),instances:y(_),title:F.$t("serverDetail.selectInstanceForTool"),onConfirm:y(ae)},null,8,["modelValue","instances","title","onConfirm"]),s(nt,{modelValue:y(T),"onUpdate:modelValue":D[9]||(D[9]=X=>Be(T)?T.value=X:null),instances:y(_),title:F.$t("serverDetail.selectInstanceForResource"),onConfirm:y(ye)},null,8,["modelValue","instances","title","onConfirm"]),y(J)&&y(oe)!==null?(i(),H(na,{key:0,modelValue:y(re),"onUpdate:modelValue":D[10]||(D[10]=X=>Be(re)?re.value=X:null),"server-name":u.value.name,"tool-name":y(J).name,description:y(J).description,"input-schema":y(J).inputSchema},null,8,["modelValue","server-name","tool-name","description","input-schema"])):M("",!0)])):(i(),b("div",Ts,o(F.$t("serverDetail.noServerSelected")),1))}}}),qs=Ie(Ds,[["__scopeId","data-v-3cac3428"]]);export{qs as default};
@@ -1 +1 @@
1
- .config-template-form[data-v-d857c695]{display:flex;height:100%;width:100%;flex-direction:column}.instance-card-list[data-v-24e76b86]{width:100%}.template-card[data-v-24e76b86]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.template-card[data-v-24e76b86]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.template-card[data-v-24e76b86]:hover{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.template-card[data-v-24e76b86]:hover:is(.dark *){background-color:#581c871a}.instance-card[data-v-24e76b86]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.instance-card[data-v-24e76b86]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.instance-card .flex.items-center.gap-3[data-v-24e76b86]{flex-wrap:nowrap}.instance-card .flex.items-center.gap-2[data-v-24e76b86]{min-width:0}.instance-card .font-mono.text-sm[data-v-24e76b86]{white-space:nowrap}.instance-card .font-medium[data-v-24e76b86]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.instance-card[data-v-24e76b86]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.instance-card[data-v-24e76b86]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.merged-config-dialog[data-v-84fcda8e] .el-dialog__body{padding:1rem 1.5rem}.preview-content[data-v-84fcda8e]{width:100%}.config-display[data-v-84fcda8e]{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1rem}.config-display[data-v-84fcda8e]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.config-display[data-v-84fcda8e]{max-height:60vh;overflow:auto}.config-json[data-v-84fcda8e]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.config-json[data-v-84fcda8e]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.config-json[data-v-84fcda8e]{white-space:pre-wrap;word-break:break-all;margin:0}.instance-config[data-v-d6fd920f]{display:flex;height:100%;width:100%;flex-direction:column}.config-form[data-v-d6fd920f]{width:100%;flex:1 1 0%;overflow-y:auto}.custom-tabs[data-v-7d20adaa] .el-tabs__header{margin-bottom:0}.custom-tabs[data-v-7d20adaa] .el-tabs__content{flex:1;overflow:hidden;padding-top:1rem}.custom-tabs-label[data-v-7d20adaa]{display:inline-flex;align-items:center;gap:4px}.instance-detail-tabs[data-v-7d20adaa] .el-tabs__header{margin-bottom:1rem}.instance-detail-tabs[data-v-7d20adaa] .el-tabs__content{flex:1;overflow:hidden;display:flex;flex-direction:column}.instance-detail-tabs[data-v-7d20adaa] .el-tab-pane{height:100%;display:flex;flex-direction:column}
1
+ .config-template-form[data-v-d857c695]{display:flex;height:100%;width:100%;flex-direction:column}.instance-card-list[data-v-24e76b86]{width:100%}.template-card[data-v-24e76b86]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.template-card[data-v-24e76b86]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.template-card[data-v-24e76b86]:hover{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.template-card[data-v-24e76b86]:hover:is(.dark *){background-color:#581c871a}.instance-card[data-v-24e76b86]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.instance-card[data-v-24e76b86]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.instance-card .flex.items-center.gap-3[data-v-24e76b86]{flex-wrap:nowrap}.instance-card .flex.items-center.gap-2[data-v-24e76b86]{min-width:0}.instance-card .font-mono.text-sm[data-v-24e76b86]{white-space:nowrap}.instance-card .font-medium[data-v-24e76b86]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.instance-card[data-v-24e76b86]:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.instance-card[data-v-24e76b86]:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.merged-config-dialog[data-v-84fcda8e] .el-dialog__body{padding:1rem 1.5rem}.preview-content[data-v-84fcda8e]{width:100%}.config-display[data-v-84fcda8e]{border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));padding:1rem}.config-display[data-v-84fcda8e]:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.config-display[data-v-84fcda8e]{max-height:60vh;overflow:auto}.config-json[data-v-84fcda8e]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.config-json[data-v-84fcda8e]:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.config-json[data-v-84fcda8e]{white-space:pre-wrap;word-break:break-all;margin:0}.instance-config[data-v-64c5af9a]{display:flex;height:100%;width:100%;flex-direction:column}.config-form[data-v-64c5af9a]{width:100%;flex:1 1 0%;overflow-y:auto}.custom-tabs[data-v-3cac3428] .el-tabs__header{margin-bottom:0}.custom-tabs[data-v-3cac3428] .el-tabs__content{flex:1;overflow:hidden;padding-top:1rem}.custom-tabs-label[data-v-3cac3428]{display:inline-flex;align-items:center;gap:4px}.instance-detail-tabs[data-v-3cac3428] .el-tabs__header{margin-bottom:1rem}.instance-detail-tabs[data-v-3cac3428] .el-tabs__content{flex:1;overflow:hidden;display:flex;flex-direction:column}.instance-detail-tabs[data-v-3cac3428] .el-tab-pane{height:100%;display:flex;flex-direction:column}
@@ -1,4 +1,4 @@
1
- import{b as pe,d as ve,_ as fe,e as ge,f as ye,g as be,u as oe,h as re,j as Z,p as G,k as he,E as Se,l as $e,v as ke,r as _e,m as Ve,s as we,t as Ce,n as Ae}from"./index-MqHvQjDP.js";import{E as xe,a as Ee}from"./el-input-DkJq57wP.js";import{a as Ie,E as Ue}from"./el-skeleton-item-Bbmpc0Xz.js";import{t as le,x as u,A as y,J as N,u as v,v as ee,a9 as g,$ as n,V as U,C as s,K as Pe,a6 as se,c as De,r as A,h as Te,y as H,G as r,O as t,P as O,af as q,j as ze,a7 as je,I as L}from"./vue-vendor-CbgVSHIh.js";import{E as Me,a as Je,b as Be}from"./el-overlay-Cy5xg31y.js";import{E as Fe,a as Oe}from"./el-form-item-iQ0G8e97.js";import{E as Ne,a as He}from"./el-switch-KpjV93lm.js";import{E as S}from"./index-5tzIwwtS.js";import{_ as Re}from"./ServerStatusTags.vue_vue_type_script_setup_true_lang-BHhwEuGe.js";import{_ as Le}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./typescript-Bp3YSIOJ.js";import"./event-BB_Ol6Sd.js";import"./_baseClone-kbJbcBJT.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-kC4mf0Vo.js";import{E as xe,a as Ee}from"./el-input-C85p6Nqj.js";import{a as Ie,E as Ue}from"./el-skeleton-item-CupTKK6n.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-B_CxiSem.js";import{E as Fe,a as Oe}from"./el-form-item-ySymCPMr.js";import{E as Ne,a as He}from"./el-switch-BosIJ9jf.js";import{_ as Re}from"./ServerStatusTags.vue_vue_type_script_setup_true_lang-DmGg4uuV.js";import{_ as Le}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./event-BB_Ol6Sd.js";import"./_baseClone-BYxCbA_9.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(`{
@@ -33,4 +33,4 @@ import{b as pe,d as ve,_ as fe,e as ge,f as ye,g as be,u as oe,h as re,j as Z,p
33
33
  "description": "A sample MCP server using HTTP transport"
34
34
  }
35
35
  }
36
- }`,F.value={success:[],errors:[]},V.value=!1,D.value=!1,I.value=!1}const R=A(!1);async function ie(){if(R.value)return;R.value=!0;const l=T.value.reduce((m,p)=>(p.key&&(m[p.key]=p.value),m),{}),e=z.value.reduce((m,p)=>(p.key&&(m[p.key]=p.value),m),{});try{await P.addServer({name:a.value.name||"Unnamed Server",status:"offline",type:a.value.transport==="stdio"?"local":"remote",config:{type:a.value.transport,command:a.value.command,args:a.value.args.filter(m=>m),url:a.value.url,timeout:a.value.timeout*1e3,enabled:a.value.autoStart,aggregatedTools:[],env:l,headers:Object.keys(e).length>0?e:void 0,description:a.value.description||void 0},logs:[]}),a.value.instanceSelectionStrategy!=="random"&&await he.put(`/web/servers/${a.value.name}`,{instanceSelectionStrategy:a.value.instanceSelectionStrategy}),S.success(_("action.serverAdded")),x()}catch(m){m instanceof Error?S.error(m.message||_("error.addServerFailed")):S.error(_("error.addServerFailed"))}finally{R.value=!1}}return(l,e)=>{const m=Fe,p=xe,h=re,de=Ne,ue=He,Y=Be,ce=Je,me=Oe,K=Me,te=Qe;return u(),H(K,{modelValue:M.value,"onUpdate:modelValue":e[20]||(e[20]=o=>M.value=o),title:l.$t("addServer.title"),width:"600px",class:"custom-dialog","before-close":x,"append-to-body":"","align-center":""},{footer:r(()=>[s("div",al,[s("div",ol,[t(h,{onClick:e[10]||(e[10]=o=>V.value=!0)},{default:r(()=>[g(n(l.$t("addServer.byJson")),1)]),_:1}),t(h,{onClick:e[11]||(e[11]=o=>D.value=!0)},{default:r(()=>[g(n(l.$t("addServer.importBatch")),1)]),_:1})]),s("div",null,[t(h,{onClick:x,disabled:R.value},{default:r(()=>[g(n(l.$t("action.cancel")),1)]),_:1},8,["disabled"]),t(h,{type:"primary",onClick:ie,loading:R.value},{default:r(()=>[g(n(l.$t("action.create")),1)]),_:1},8,["loading"])])])]),default:r(()=>[t(me,{model:a.value,"label-position":"top"},{default:r(()=>[t(m,{label:l.$t("addServer.transportType")},{default:r(()=>[s("div",We,[s("div",{class:N(["flex-1 p-4 border rounded-lg cursor-pointer text-center transition-all",a.value.transport==="stdio"?"border-blue-500 bg-blue-900/20":"border-gray-600 hover:border-gray-500"]),onClick:e[0]||(e[0]=o=>a.value.transport="stdio")},[e[21]||(e[21]=s("div",{class:"font-bold mb-1"},"stdio",-1)),s("div",Xe," ("+n(l.$t("serverDetail.config.transportStdio"))+") ",1)],2),s("div",{class:N(["flex-1 p-4 border rounded-lg cursor-pointer text-center transition-all",a.value.transport==="sse"?"border-blue-500 bg-blue-900/20":"border-gray-600 hover:border-gray-500"]),onClick:e[1]||(e[1]=o=>a.value.transport="sse")},[e[22]||(e[22]=s("div",{class:"font-bold mb-1"},"SSE",-1)),s("div",Ye,"("+n(l.$t("serverDetail.config.transportSse"))+")",1)],2),s("div",{class:N(["flex-1 p-4 border rounded-lg cursor-pointer text-center transition-all",a.value.transport==="streamable-http"?"border-blue-500 bg-blue-900/20":"border-gray-600 hover:border-gray-500"]),onClick:e[2]||(e[2]=o=>a.value.transport="streamable-http")},[e[23]||(e[23]=s("div",{class:"font-bold mb-1"},"Streamable HTTP",-1)),s("div",Ze,"("+n(l.$t("serverDetail.config.transportHttp"))+")",1)],2)])]),_:1},8,["label"]),t(m,{label:l.$t("common.name")},{default:r(()=>[t(p,{modelValue:a.value.name,"onUpdate:modelValue":e[3]||(e[3]=o=>a.value.name=o),placeholder:l.$t("addServer.namePlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),t(m,{label:l.$t("common.description")},{default:r(()=>[t(p,{modelValue:a.value.description,"onUpdate:modelValue":e[4]||(e[4]=o=>a.value.description=o),type:"textarea",rows:2,placeholder:l.$t("addServer.descriptionPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a.value.transport==="stdio"?(u(),y(O,{key:0},[t(m,{label:l.$t("serverDetail.config.executable")},{default:r(()=>[t(p,{modelValue:a.value.command,"onUpdate:modelValue":e[5]||(e[5]=o=>a.value.command=o),placeholder:l.$t("addServer.executablePlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),t(m,{label:l.$t("serverDetail.config.args")},{default:r(()=>[s("div",el,[(u(!0),y(O,null,q(a.value.args,(o,w)=>(u(),y("div",{key:w,class:"flex gap-2 w-full"},[t(p,{modelValue:a.value.args[w],"onUpdate:modelValue":C=>a.value.args[w]=C,placeholder:l.$t("addServer.argPlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(h,{icon:v(Z),circle:"",plain:"",onClick:C=>b(w)},null,8,["icon","onClick"])]))),128)),s("div",null,[t(h,{icon:v(G),plain:"",size:"small",onClick:k},{default:r(()=>[g("+ "+n(l.$t("serverDetail.config.addArg")),1)]),_:1},8,["icon"])])])]),_:1},8,["label"])],64)):(u(),H(m,{key:1,label:l.$t("serverDetail.config.url")},{default:r(()=>[t(p,{modelValue:a.value.url,"onUpdate:modelValue":e[6]||(e[6]=o=>a.value.url=o),placeholder:l.$t("addServer.urlPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])),t(m,{label:l.$t("serverDetail.config.timeout")},{default:r(()=>[t(de,{modelValue:a.value.timeout,"onUpdate:modelValue":e[7]||(e[7]=o=>a.value.timeout=o),min:0,step:10},null,8,["modelValue"])]),_:1},8,["label"]),t(m,{label:l.$t("serverDetail.config.autoStart")},{default:r(()=>[t(ue,{modelValue:a.value.autoStart,"onUpdate:modelValue":e[8]||(e[8]=o=>a.value.autoStart=o)},null,8,["modelValue"])]),_:1},8,["label"]),t(m,{label:l.$t("serverDetail.config.instanceSelectionStrategy")},{default:r(()=>[t(ce,{modelValue:a.value.instanceSelectionStrategy,"onUpdate:modelValue":e[9]||(e[9]=o=>a.value.instanceSelectionStrategy=o),placeholder:"随机(默认)"},{default:r(()=>[t(Y,{value:"random",label:l.$t("serverDetail.config.strategyRandom")},null,8,["label"]),t(Y,{value:"round-robin",label:l.$t("serverDetail.config.strategyRoundRobin")},null,8,["label"]),t(Y,{value:"tag-match-unique",label:l.$t("serverDetail.config.strategyTagMatchUnique")},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),t(m,{label:l.$t("serverDetail.config.env")},{default:r(()=>[s("div",ll,[(u(!0),y(O,null,q(T.value,(o,w)=>(u(),y("div",{key:w,class:"flex gap-2 w-full",style:{display:"flex",gap:"0.5rem",width:"100%"}},[t(p,{modelValue:o.key,"onUpdate:modelValue":C=>o.key=C,placeholder:l.$t("addServer.keyPlaceholder"),style:{width:"30%","min-width":"150px"}},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(p,{modelValue:o.value,"onUpdate:modelValue":C=>o.value=C,placeholder:l.$t("addServer.valuePlaceholder"),style:{flex:"1"}},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(h,{icon:v(Z),circle:"",plain:"",onClick:C=>W(w)},null,8,["icon","onClick"])]))),128)),s("div",null,[t(h,{icon:v(G),plain:"",size:"small",onClick:j},{default:r(()=>[g("+ "+n(l.$t("serverDetail.config.addEnv")),1)]),_:1},8,["icon"])])])]),_:1},8,["label"]),a.value.transport!=="stdio"?(u(),H(m,{key:2,label:l.$t("serverDetail.config.headers")},{default:r(()=>[s("div",tl,[(u(!0),y(O,null,q(z.value,(o,w)=>(u(),y("div",{key:w,class:"flex gap-2 w-full",style:{display:"flex",gap:"0.5rem",width:"100%"}},[t(p,{modelValue:o.key,"onUpdate:modelValue":C=>o.key=C,placeholder:l.$t("addServer.keyPlaceholder"),style:{width:"30%","min-width":"150px"}},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(p,{modelValue:o.value,"onUpdate:modelValue":C=>o.value=C,placeholder:l.$t("addServer.valuePlaceholder"),style:{flex:"1"}},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(h,{icon:v(Z),circle:"",plain:"",onClick:C=>d(w)},null,8,["icon","onClick"])]))),128)),s("div",null,[t(h,{icon:v(G),plain:"",size:"small",onClick:X},{default:r(()=>[g("+ "+n(l.$t("serverDetail.config.addHeader")),1)]),_:1},8,["icon"])])])]),_:1},8,["label"])):U("",!0)]),_:1},8,["model"]),t(K,{modelValue:V.value,"onUpdate:modelValue":e[14]||(e[14]=o=>V.value=o),title:l.$t("addServer.byJson"),width:"500px","append-to-body":"",class:"custom-dialog"},{footer:r(()=>[t(h,{onClick:e[13]||(e[13]=o=>V.value=!1)},{default:r(()=>[g(n(l.$t("action.cancel")),1)]),_:1}),t(h,{type:"primary",onClick:i},{default:r(()=>[g(n(l.$t("action.save")),1)]),_:1})]),default:r(()=>[t(p,{modelValue:J.value,"onUpdate:modelValue":e[12]||(e[12]=o=>J.value=o),type:"textarea",rows:10,placeholder:'{ "mcpServers": { "name": { "command": "...", ... } } }'},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),t(K,{modelValue:D.value,"onUpdate:modelValue":e[17]||(e[17]=o=>D.value=o),title:l.$t("addServer.batchImportTitle"),width:"600px","append-to-body":"",class:"custom-dialog"},{footer:r(()=>[t(h,{onClick:e[16]||(e[16]=o=>D.value=!1)},{default:r(()=>[g(n(l.$t("action.cancel")),1)]),_:1}),t(h,{type:"primary",onClick:c,loading:R.value},{default:r(()=>[g(n(l.$t("addServer.importAll")),1)]),_:1},8,["loading"])]),default:r(()=>[t(p,{modelValue:B.value,"onUpdate:modelValue":e[15]||(e[15]=o=>B.value=o),type:"textarea",rows:12,placeholder:'{ "mcpServers": { "server1": { "command": "npx @anthropic-ai/mcp", "args": ["--model", "claude-3-opus-20250620"] }, "server2": { "url": "http://localhost:3000", "headers": { "Authorization": "Bearer token" } } } }'},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),t(K,{modelValue:I.value,"onUpdate:modelValue":e[19]||(e[19]=o=>I.value=o),title:l.$t("addServer.batchImportTitle"),width:"600px","append-to-body":"",class:"custom-dialog"},{footer:r(()=>[t(h,{onClick:e[18]||(e[18]=o=>I.value=!1)},{default:r(()=>[...e[24]||(e[24]=[g("Close",-1)])]),_:1})]),default:r(()=>[F.value.success.length>0?(u(),y("div",rl,[s("h4",sl,n(l.$t("action.serverAdded")),1),t(te,{class:"mb-4"},{header:r(()=>[s("div",nl,[s("span",null,n(l.$t("action.serverAdded")),1)])]),default:r(()=>[s("div",il,[(u(!0),y(O,null,q(F.value.success,o=>(u(),y("div",{key:o.id,class:"p-2 bg-green-50 dark:bg-green-900/20 rounded"},n(o.name),1))),128))])]),_:1})])):U("",!0),F.value.errors.length>0?(u(),y("div",dl,[s("h4",ul,n(l.$t("error.addServerFailed")),1),t(te,{class:"mb-4"},{header:r(()=>[s("div",cl,[s("span",null,n(l.$t("error.addServerFailed")),1)])]),default:r(()=>[s("div",ml,[(u(!0),y(O,null,q(F.value.errors,(o,w)=>(u(),y("div",{key:w,class:"p-2 bg-red-50 dark:bg-red-900/20 rounded"},[s("div",pl,n(o.name),1),s("div",vl,n(o.error),1)]))),128))])]),_:1})])):U("",!0)]),_:1},8,["modelValue","title"])]),_:1},8,["modelValue","title"])}}}),gl={class:"server-list-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"},yl={class:"flex items-center justify-between mb-6 shrink-0"},bl={class:"text-2xl font-semibold text-gray-900 dark:text-white"},hl={class:"flex gap-2"},Sl={key:0,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"},$l={class:"p-6 rounded-xl border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#1e293b] h-48"},kl={class:"flex items-center gap-3 mb-4"},_l={class:"flex-1"},Vl={key:1,class:"flex flex-col items-center justify-center flex-1 text-gray-400 dark:text-gray-500"},wl={class:"text-xl font-medium mb-2"},Cl={key:2,class:"overflow-y-auto flex-1 custom-scrollbar"},Al={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 pb-6 pr-2"},xl=["onClick"],El={class:"flex flex-col gap-2 mb-4"},Il={class:"flex items-center justify-between"},Ul={class:"flex items-center gap-2 flex-1 min-w-0"},Pl=["title"],Dl={class:"mt-auto space-y-2"},Tl={class:"flex gap-2"},zl={class:"grid grid-cols-3 gap-2"},jl=le({__name:"ServerListView",setup(Q){const $=oe(),E=je(),{t:f}=se(),_=A(!1),P=A("form");ze(()=>{$.fetchServers()});function M(i){P.value=i,_.value=!0}function V(i,c){const k=$.servers.find(j=>j.id===i);if(!k)return;$.selectServer(i);const b=c==="tools"?"server-detail-tools":c==="resources"?"server-detail-resources":"server-detail-config";E.push({name:b,params:{name:k.name}})}function D(i){V(i.id,"config")}function I(i){const c=$.servers.find(b=>b.name===i);return c?(c.instances||[]).filter(b=>b.status==="online").length:0}function J(i){return B(i)-I(i)}function B(i){return $.servers.find(k=>k.name===i)?.instances?.length||0}function F(i){const c=i.trim();if(c.length<=16)return c;const k=/[-_/\\:@#~]+/,b=c.split(k).filter(Boolean);return b.length>1?b.slice(0,-1).join("-"):c}async function a(i){try{await $.startAllServerInstances(i),S.success(f("action.started"))}catch(c){S.error(c.message||f("error.connectionFailed"))}}async function T(i){try{await $.stopAllServerInstances(i),S.success(f("action.stopped"))}catch(c){S.error(c.message||f("error.connectionFailed"))}}async function z(i){try{await $.restartAllServerInstances(i),S.success(f("action.restarted"))}catch(c){S.error(c.message||f("error.connectionFailed"))}}return(i,c)=>{const k=Se,b=re,j=Ue,W=Ie,X=Ee;return u(),y("div",gl,[s("div",yl,[s("h2",bl,n(i.$t("sidebar.servers")),1),s("div",hl,[t(b,{type:"primary",onClick:c[0]||(c[0]=d=>M("form"))},{default:r(()=>[t(k,{class:"mr-2"},{default:r(()=>[t(v(G))]),_:1}),g(" "+n(i.$t("sidebar.addServer")),1)]),_:1})])]),v($).loading&&v($).servers.length===0?(u(),y("div",Sl,[t(W,{animated:"",count:3,class:"w-full h-full"},{template:r(()=>[s("div",$l,[s("div",kl,[t(j,{variant:"circle",style:{width:"40px",height:"40px"}}),s("div",_l,[t(j,{variant:"text",style:{width:"60%"},class:"mb-2"}),t(j,{variant:"text",style:{width:"30%"}})])]),t(j,{variant:"rect",style:{height:"60px"}})])]),_:1})])):v($).servers.length===0?(u(),y("div",Vl,[t(k,{size:64,class:"mb-4 opacity-50"},{default:r(()=>[t(v($e))]),_:1}),s("h3",wl,n(i.$t("serverDetail.noServerSelected")),1),c[3]||(c[3]=s("p",{class:"mb-6"},'Click "Add New Server" to get started.',-1)),t(b,{type:"primary",onClick:c[1]||(c[1]=d=>M("form"))},{default:r(()=>[t(k,{class:"mr-2"},{default:r(()=>[t(v(G))]),_:1}),g(" "+n(i.$t("sidebar.addServer")),1)]),_:1})])):(u(),y("div",Cl,[s("div",Al,[(u(!0),y(O,null,q(v($).servers,d=>(u(),y("div",{key:d.id,class:"server-card bg-white dark:bg-[#1e293b] rounded-xl border border-gray-200 dark:border-gray-700 p-6 shadow-sm hover:shadow-md transition-all duration-300 flex flex-col h-full cursor-pointer",onClick:x=>D(d)},[s("div",El,[s("div",Il,[s("div",Ul,[s("h3",{class:"font-bold text-gray-900 dark:text-white truncate text-lg",title:d.name},n(d.name),9,Pl),d.version?(u(),H(X,{key:0,size:"small",class:"shrink-0",title:d.version},{default:r(()=>[g(n(F(d.version)),1)]),_:2},1032,["title"])):U("",!0)])]),t(Re,{server:d,"include-uptime":!1},null,8,["server"])]),s("div",Dl,[s("div",Tl,[J(d.name)>0?(u(),H(b,{key:0,type:"success",plain:"",size:"small",icon:v(ke),onClick:L(x=>a(d.name),["stop"]),class:"flex-1 !ml-0",title:i.$t("action.startAll")},{default:r(()=>[g(n(i.$t("action.startAll"))+" ("+n(J(d.name))+") ",1)]),_:2},1032,["icon","onClick","title"])):U("",!0),I(d.name)>0?(u(),H(b,{key:1,plain:"",size:"small",icon:v(_e),onClick:L(x=>z(d.name),["stop"]),class:"flex-1 !ml-0",title:i.$t("action.restartAll")},{default:r(()=>[g(n(i.$t("action.restartAll"))+" ("+n(B(d.name))+") ",1)]),_:2},1032,["icon","onClick","title"])):U("",!0),I(d.name)>0?(u(),H(b,{key:2,type:"warning",plain:"",size:"small",icon:v(Ve),onClick:L(x=>T(d.name),["stop"]),class:"flex-1 !ml-0",title:i.$t("action.stopAll")},{default:r(()=>[g(n(i.$t("action.stopAll"))+" ("+n(I(d.name))+") ",1)]),_:2},1032,["icon","onClick","title"])):U("",!0)]),s("div",zl,[t(b,{plain:"",size:"small",icon:v(we),onClick:L(x=>V(d.id,"config"),["stop"]),class:"!w-full !ml-0"},{default:r(()=>[g(n(i.$t("action.configure"))+" ("+n(d.rawV11Config?.instances?.length||0)+") ",1)]),_:2},1032,["icon","onClick"]),t(b,{plain:"",size:"small",icon:v(Ce),onClick:L(x=>V(d.id,"tools"),["stop"]),class:"!w-full !ml-0"},{default:r(()=>[g(n(i.$t("common.tools"))+" ("+n(d.toolsCount||0)+") ",1)]),_:2},1032,["icon","onClick"]),t(b,{plain:"",size:"small",icon:v(Ae),onClick:L(x=>V(d.id,"resources"),["stop"]),class:"!w-full !ml-0"},{default:r(()=>[g(n(i.$t("common.resources"))+" ("+n(d.resourcesCount||0)+") ",1)]),_:2},1032,["icon","onClick"])])])],8,xl))),128))])])),t(fl,{modelValue:_.value,"onUpdate:modelValue":c[2]||(c[2]=d=>_.value=d),"initial-mode":P.value},null,8,["modelValue","initial-mode"])])}}}),Wl=Le(jl,[["__scopeId","data-v-d3613399"]]);export{Wl as default};
36
+ }`,F.value={success:[],errors:[]},V.value=!1,D.value=!1,I.value=!1}const R=A(!1);async function ie(){if(R.value)return;R.value=!0;const l=T.value.reduce((m,p)=>(p.key&&(m[p.key]=p.value),m),{}),e=z.value.reduce((m,p)=>(p.key&&(m[p.key]=p.value),m),{});try{await P.addServer({name:a.value.name||"Unnamed Server",status:"offline",type:a.value.transport==="stdio"?"local":"remote",config:{type:a.value.transport,command:a.value.command,args:a.value.args.filter(m=>m),url:a.value.url,timeout:a.value.timeout*1e3,enabled:a.value.autoStart,aggregatedTools:[],env:l,headers:Object.keys(e).length>0?e:void 0,description:a.value.description||void 0},logs:[]}),a.value.instanceSelectionStrategy!=="random"&&await he.put(`/web/servers/${a.value.name}`,{instanceSelectionStrategy:a.value.instanceSelectionStrategy}),S.success(_("action.serverAdded")),x()}catch(m){m instanceof Error?S.error(m.message||_("error.addServerFailed")):S.error(_("error.addServerFailed"))}finally{R.value=!1}}return(l,e)=>{const m=Fe,p=xe,h=re,de=Ne,ue=He,Y=Be,ce=Je,me=Oe,K=Me,te=Qe;return u(),H(K,{modelValue:M.value,"onUpdate:modelValue":e[20]||(e[20]=o=>M.value=o),title:l.$t("addServer.title"),width:"600px",class:"custom-dialog","before-close":x,"append-to-body":"","align-center":""},{footer:r(()=>[s("div",al,[s("div",ol,[t(h,{onClick:e[10]||(e[10]=o=>V.value=!0)},{default:r(()=>[g(n(l.$t("addServer.byJson")),1)]),_:1}),t(h,{onClick:e[11]||(e[11]=o=>D.value=!0)},{default:r(()=>[g(n(l.$t("addServer.importBatch")),1)]),_:1})]),s("div",null,[t(h,{onClick:x,disabled:R.value},{default:r(()=>[g(n(l.$t("action.cancel")),1)]),_:1},8,["disabled"]),t(h,{type:"primary",onClick:ie,loading:R.value},{default:r(()=>[g(n(l.$t("action.create")),1)]),_:1},8,["loading"])])])]),default:r(()=>[t(me,{model:a.value,"label-position":"top"},{default:r(()=>[t(m,{label:l.$t("addServer.transportType")},{default:r(()=>[s("div",We,[s("div",{class:N(["flex-1 p-4 border rounded-lg cursor-pointer text-center transition-all",a.value.transport==="stdio"?"border-blue-500 bg-blue-900/20":"border-gray-600 hover:border-gray-500"]),onClick:e[0]||(e[0]=o=>a.value.transport="stdio")},[e[21]||(e[21]=s("div",{class:"font-bold mb-1"},"stdio",-1)),s("div",Xe," ("+n(l.$t("serverDetail.config.transportStdio"))+") ",1)],2),s("div",{class:N(["flex-1 p-4 border rounded-lg cursor-pointer text-center transition-all",a.value.transport==="sse"?"border-blue-500 bg-blue-900/20":"border-gray-600 hover:border-gray-500"]),onClick:e[1]||(e[1]=o=>a.value.transport="sse")},[e[22]||(e[22]=s("div",{class:"font-bold mb-1"},"SSE",-1)),s("div",Ye,"("+n(l.$t("serverDetail.config.transportSse"))+")",1)],2),s("div",{class:N(["flex-1 p-4 border rounded-lg cursor-pointer text-center transition-all",a.value.transport==="streamable-http"?"border-blue-500 bg-blue-900/20":"border-gray-600 hover:border-gray-500"]),onClick:e[2]||(e[2]=o=>a.value.transport="streamable-http")},[e[23]||(e[23]=s("div",{class:"font-bold mb-1"},"Streamable HTTP",-1)),s("div",Ze,"("+n(l.$t("serverDetail.config.transportHttp"))+")",1)],2)])]),_:1},8,["label"]),t(m,{label:l.$t("common.name")},{default:r(()=>[t(p,{modelValue:a.value.name,"onUpdate:modelValue":e[3]||(e[3]=o=>a.value.name=o),placeholder:l.$t("addServer.namePlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),t(m,{label:l.$t("common.description")},{default:r(()=>[t(p,{modelValue:a.value.description,"onUpdate:modelValue":e[4]||(e[4]=o=>a.value.description=o),type:"textarea",rows:2,placeholder:l.$t("addServer.descriptionPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a.value.transport==="stdio"?(u(),y(O,{key:0},[t(m,{label:l.$t("serverDetail.config.executable")},{default:r(()=>[t(p,{modelValue:a.value.command,"onUpdate:modelValue":e[5]||(e[5]=o=>a.value.command=o),placeholder:l.$t("addServer.executablePlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),t(m,{label:l.$t("serverDetail.config.args")},{default:r(()=>[s("div",el,[(u(!0),y(O,null,q(a.value.args,(o,w)=>(u(),y("div",{key:w,class:"flex gap-2 w-full"},[t(p,{modelValue:a.value.args[w],"onUpdate:modelValue":C=>a.value.args[w]=C,placeholder:l.$t("addServer.argPlaceholder")},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(h,{icon:v(Z),circle:"",plain:"",onClick:C=>b(w)},null,8,["icon","onClick"])]))),128)),s("div",null,[t(h,{icon:v(G),plain:"",size:"small",onClick:k},{default:r(()=>[g("+ "+n(l.$t("serverDetail.config.addArg")),1)]),_:1},8,["icon"])])])]),_:1},8,["label"])],64)):(u(),H(m,{key:1,label:l.$t("serverDetail.config.url")},{default:r(()=>[t(p,{modelValue:a.value.url,"onUpdate:modelValue":e[6]||(e[6]=o=>a.value.url=o),placeholder:l.$t("addServer.urlPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])),t(m,{label:l.$t("serverDetail.config.timeout")},{default:r(()=>[t(de,{modelValue:a.value.timeout,"onUpdate:modelValue":e[7]||(e[7]=o=>a.value.timeout=o),min:0,step:10},null,8,["modelValue"])]),_:1},8,["label"]),t(m,{label:l.$t("serverDetail.config.autoStart")},{default:r(()=>[t(ue,{modelValue:a.value.autoStart,"onUpdate:modelValue":e[8]||(e[8]=o=>a.value.autoStart=o)},null,8,["modelValue"])]),_:1},8,["label"]),t(m,{label:l.$t("serverDetail.config.instanceSelectionStrategy")},{default:r(()=>[t(ce,{modelValue:a.value.instanceSelectionStrategy,"onUpdate:modelValue":e[9]||(e[9]=o=>a.value.instanceSelectionStrategy=o),placeholder:"随机(默认)"},{default:r(()=>[t(Y,{value:"random",label:l.$t("serverDetail.config.strategyRandom")},null,8,["label"]),t(Y,{value:"round-robin",label:l.$t("serverDetail.config.strategyRoundRobin")},null,8,["label"]),t(Y,{value:"tag-match-unique",label:l.$t("serverDetail.config.strategyTagMatchUnique")},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),t(m,{label:l.$t("serverDetail.config.env")},{default:r(()=>[s("div",ll,[(u(!0),y(O,null,q(T.value,(o,w)=>(u(),y("div",{key:w,class:"flex gap-2 w-full",style:{display:"flex",gap:"0.5rem",width:"100%"}},[t(p,{modelValue:o.key,"onUpdate:modelValue":C=>o.key=C,placeholder:l.$t("addServer.keyPlaceholder"),style:{width:"30%","min-width":"150px"}},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(p,{modelValue:o.value,"onUpdate:modelValue":C=>o.value=C,placeholder:l.$t("addServer.valuePlaceholder"),style:{flex:"1"}},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(h,{icon:v(Z),circle:"",plain:"",onClick:C=>W(w)},null,8,["icon","onClick"])]))),128)),s("div",null,[t(h,{icon:v(G),plain:"",size:"small",onClick:j},{default:r(()=>[g("+ "+n(l.$t("serverDetail.config.addEnv")),1)]),_:1},8,["icon"])])])]),_:1},8,["label"]),a.value.transport!=="stdio"?(u(),H(m,{key:2,label:l.$t("serverDetail.config.headers")},{default:r(()=>[s("div",tl,[(u(!0),y(O,null,q(z.value,(o,w)=>(u(),y("div",{key:w,class:"flex gap-2 w-full",style:{display:"flex",gap:"0.5rem",width:"100%"}},[t(p,{modelValue:o.key,"onUpdate:modelValue":C=>o.key=C,placeholder:l.$t("addServer.keyPlaceholder"),style:{width:"30%","min-width":"150px"}},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(p,{modelValue:o.value,"onUpdate:modelValue":C=>o.value=C,placeholder:l.$t("addServer.valuePlaceholder"),style:{flex:"1"}},null,8,["modelValue","onUpdate:modelValue","placeholder"]),t(h,{icon:v(Z),circle:"",plain:"",onClick:C=>d(w)},null,8,["icon","onClick"])]))),128)),s("div",null,[t(h,{icon:v(G),plain:"",size:"small",onClick:X},{default:r(()=>[g("+ "+n(l.$t("serverDetail.config.addHeader")),1)]),_:1},8,["icon"])])])]),_:1},8,["label"])):U("",!0)]),_:1},8,["model"]),t(K,{modelValue:V.value,"onUpdate:modelValue":e[14]||(e[14]=o=>V.value=o),title:l.$t("addServer.byJson"),width:"500px","append-to-body":"",class:"custom-dialog"},{footer:r(()=>[t(h,{onClick:e[13]||(e[13]=o=>V.value=!1)},{default:r(()=>[g(n(l.$t("action.cancel")),1)]),_:1}),t(h,{type:"primary",onClick:i},{default:r(()=>[g(n(l.$t("action.save")),1)]),_:1})]),default:r(()=>[t(p,{modelValue:J.value,"onUpdate:modelValue":e[12]||(e[12]=o=>J.value=o),type:"textarea",rows:10,placeholder:'{ "mcpServers": { "name": { "command": "...", ... } } }'},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),t(K,{modelValue:D.value,"onUpdate:modelValue":e[17]||(e[17]=o=>D.value=o),title:l.$t("addServer.batchImportTitle"),width:"600px","append-to-body":"",class:"custom-dialog"},{footer:r(()=>[t(h,{onClick:e[16]||(e[16]=o=>D.value=!1)},{default:r(()=>[g(n(l.$t("action.cancel")),1)]),_:1}),t(h,{type:"primary",onClick:c,loading:R.value},{default:r(()=>[g(n(l.$t("addServer.importAll")),1)]),_:1},8,["loading"])]),default:r(()=>[t(p,{modelValue:B.value,"onUpdate:modelValue":e[15]||(e[15]=o=>B.value=o),type:"textarea",rows:12,placeholder:'{ "mcpServers": { "server1": { "command": "npx @anthropic-ai/mcp", "args": ["--model", "claude-3-opus-20250620"] }, "server2": { "url": "http://localhost:3000", "headers": { "Authorization": "Bearer token" } } } }'},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),t(K,{modelValue:I.value,"onUpdate:modelValue":e[19]||(e[19]=o=>I.value=o),title:l.$t("addServer.batchImportTitle"),width:"600px","append-to-body":"",class:"custom-dialog"},{footer:r(()=>[t(h,{onClick:e[18]||(e[18]=o=>I.value=!1)},{default:r(()=>[...e[24]||(e[24]=[g("Close",-1)])]),_:1})]),default:r(()=>[F.value.success.length>0?(u(),y("div",rl,[s("h4",sl,n(l.$t("action.serverAdded")),1),t(te,{class:"mb-4"},{header:r(()=>[s("div",nl,[s("span",null,n(l.$t("action.serverAdded")),1)])]),default:r(()=>[s("div",il,[(u(!0),y(O,null,q(F.value.success,o=>(u(),y("div",{key:o.id,class:"p-2 bg-green-50 dark:bg-green-900/20 rounded"},n(o.name),1))),128))])]),_:1})])):U("",!0),F.value.errors.length>0?(u(),y("div",dl,[s("h4",ul,n(l.$t("error.addServerFailed")),1),t(te,{class:"mb-4"},{header:r(()=>[s("div",cl,[s("span",null,n(l.$t("error.addServerFailed")),1)])]),default:r(()=>[s("div",ml,[(u(!0),y(O,null,q(F.value.errors,(o,w)=>(u(),y("div",{key:w,class:"p-2 bg-red-50 dark:bg-red-900/20 rounded"},[s("div",pl,n(o.name),1),s("div",vl,n(o.error),1)]))),128))])]),_:1})])):U("",!0)]),_:1},8,["modelValue","title"])]),_:1},8,["modelValue","title"])}}}),gl={class:"server-list-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"},yl={class:"flex items-center justify-between mb-6 shrink-0"},bl={class:"text-2xl font-semibold text-gray-900 dark:text-white"},hl={class:"flex gap-2"},Sl={key:0,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"},$l={class:"p-6 rounded-xl border border-gray-200 dark:border-gray-700 bg-white dark:bg-[#1e293b] h-48"},kl={class:"flex items-center gap-3 mb-4"},_l={class:"flex-1"},Vl={key:1,class:"flex flex-col items-center justify-center flex-1 text-gray-400 dark:text-gray-500"},wl={class:"text-xl font-medium mb-2"},Cl={key:2,class:"overflow-y-auto flex-1 custom-scrollbar"},Al={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 pb-6 pr-2"},xl=["onClick"],El={class:"flex flex-col gap-2 mb-4"},Il={class:"flex items-center justify-between"},Ul={class:"flex items-center gap-2 flex-1 min-w-0"},Pl=["title"],Dl={class:"mt-auto space-y-2"},Tl={class:"flex gap-2"},zl={class:"grid grid-cols-3 gap-2"},jl=le({__name:"ServerListView",setup(Q){const $=oe(),E=je(),{t:f}=se(),_=A(!1),P=A("form");ze(()=>{$.fetchServers()});function M(i){P.value=i,_.value=!0}function V(i,c){const k=$.servers.find(j=>j.id===i);if(!k)return;$.selectServer(i);const b=c==="tools"?"server-detail-tools":c==="resources"?"server-detail-resources":"server-detail-config";E.push({name:b,params:{name:k.name}})}function D(i){V(i.id,"config")}function I(i){const c=$.servers.find(b=>b.name===i);return c?(c.instances||[]).filter(b=>b.status==="online").length:0}function J(i){return B(i)-I(i)}function B(i){return $.servers.find(k=>k.name===i)?.instances?.length||0}function F(i){const c=i.trim();if(c.length<=16)return c;const k=/[-_/\\:@#~]+/,b=c.split(k).filter(Boolean);return b.length>1?b.slice(0,-1).join("-"):c}async function a(i){try{await $.startAllServerInstances(i),S.success(f("action.started"))}catch(c){S.error(c.message||f("error.connectionFailed"))}}async function T(i){try{await $.stopAllServerInstances(i),S.success(f("action.stopped"))}catch(c){S.error(c.message||f("error.connectionFailed"))}}async function z(i){try{await $.restartAllServerInstances(i),S.success(f("action.restarted"))}catch(c){S.error(c.message||f("error.connectionFailed"))}}return(i,c)=>{const k=Se,b=re,j=Ue,W=Ie,X=Ee;return u(),y("div",gl,[s("div",yl,[s("h2",bl,n(i.$t("sidebar.servers")),1),s("div",hl,[t(b,{type:"primary",onClick:c[0]||(c[0]=d=>M("form"))},{default:r(()=>[t(k,{class:"mr-2"},{default:r(()=>[t(v(G))]),_:1}),g(" "+n(i.$t("sidebar.addServer")),1)]),_:1})])]),v($).loading&&v($).servers.length===0?(u(),y("div",Sl,[t(W,{animated:"",count:3,class:"w-full h-full"},{template:r(()=>[s("div",$l,[s("div",kl,[t(j,{variant:"circle",style:{width:"40px",height:"40px"}}),s("div",_l,[t(j,{variant:"text",style:{width:"60%"},class:"mb-2"}),t(j,{variant:"text",style:{width:"30%"}})])]),t(j,{variant:"rect",style:{height:"60px"}})])]),_:1})])):v($).servers.length===0?(u(),y("div",Vl,[t(k,{size:64,class:"mb-4 opacity-50"},{default:r(()=>[t(v($e))]),_:1}),s("h3",wl,n(i.$t("serverDetail.noServerSelected")),1),c[3]||(c[3]=s("p",{class:"mb-6"},'Click "Add New Server" to get started.',-1)),t(b,{type:"primary",onClick:c[1]||(c[1]=d=>M("form"))},{default:r(()=>[t(k,{class:"mr-2"},{default:r(()=>[t(v(G))]),_:1}),g(" "+n(i.$t("sidebar.addServer")),1)]),_:1})])):(u(),y("div",Cl,[s("div",Al,[(u(!0),y(O,null,q(v($).servers,d=>(u(),y("div",{key:d.id,class:"server-card bg-white dark:bg-[#1e293b] rounded-xl border border-gray-200 dark:border-gray-700 p-6 shadow-sm hover:shadow-md transition-all duration-300 flex flex-col h-full cursor-pointer",onClick:x=>D(d)},[s("div",El,[s("div",Il,[s("div",Ul,[s("h3",{class:"font-bold text-gray-900 dark:text-white truncate text-lg",title:d.name},n(d.name),9,Pl),d.version?(u(),H(X,{key:0,size:"small",class:"shrink-0",title:d.version},{default:r(()=>[g(n(F(d.version)),1)]),_:2},1032,["title"])):U("",!0)])]),t(Re,{server:d,"include-uptime":!1},null,8,["server"])]),s("div",Dl,[s("div",Tl,[J(d.name)>0?(u(),H(b,{key:0,type:"success",plain:"",size:"small",icon:v(ke),onClick:L(x=>a(d.name),["stop"]),class:"flex-1 !ml-0",title:i.$t("action.startAll")},{default:r(()=>[g(n(i.$t("action.startAll"))+" ("+n(J(d.name))+") ",1)]),_:2},1032,["icon","onClick","title"])):U("",!0),I(d.name)>0?(u(),H(b,{key:1,plain:"",size:"small",icon:v(_e),onClick:L(x=>z(d.name),["stop"]),class:"flex-1 !ml-0",title:i.$t("action.restartAll")},{default:r(()=>[g(n(i.$t("action.restartAll"))+" ("+n(B(d.name))+") ",1)]),_:2},1032,["icon","onClick","title"])):U("",!0),I(d.name)>0?(u(),H(b,{key:2,type:"warning",plain:"",size:"small",icon:v(Ve),onClick:L(x=>T(d.name),["stop"]),class:"flex-1 !ml-0",title:i.$t("action.stopAll")},{default:r(()=>[g(n(i.$t("action.stopAll"))+" ("+n(I(d.name))+") ",1)]),_:2},1032,["icon","onClick","title"])):U("",!0)]),s("div",zl,[t(b,{plain:"",size:"small",icon:v(we),onClick:L(x=>V(d.id,"config"),["stop"]),class:"!w-full !ml-0"},{default:r(()=>[g(n(i.$t("action.configure"))+" ("+n(d.rawV11Config?.instances?.length||0)+") ",1)]),_:2},1032,["icon","onClick"]),t(b,{plain:"",size:"small",icon:v(Ce),onClick:L(x=>V(d.id,"tools"),["stop"]),class:"!w-full !ml-0"},{default:r(()=>[g(n(i.$t("common.tools"))+" ("+n(d.toolsCount||0)+") ",1)]),_:2},1032,["icon","onClick"]),t(b,{plain:"",size:"small",icon:v(Ae),onClick:L(x=>V(d.id,"resources"),["stop"]),class:"!w-full !ml-0"},{default:r(()=>[g(n(i.$t("common.resources"))+" ("+n(d.resourcesCount||0)+") ",1)]),_:2},1032,["icon","onClick"])])])],8,xl))),128))])])),t(fl,{modelValue:_.value,"onUpdate:modelValue":c[2]||(c[2]=d=>_.value=d),"initial-mode":P.value},null,8,["modelValue","initial-mode"])])}}}),Kl=Le(jl,[["__scopeId","data-v-d3613399"]]);export{Kl as default};
@@ -1 +1 @@
1
- import{t as b,A as o,C as d,J as u,a9 as g,$ as i,P as c,u as m,V as S,x as l}from"./vue-vendor-CbgVSHIh.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"},v={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"},w={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)=>(l(),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),g(" "+i(r.$t(`serverDetail.status.${e.server.status}`)),1)],2),d("div",v,[d("span",w,[g(i(e.server.config.type)+" ",1),e.server.config.type==="stdio"?(l(),o(c,{key:0},[g(" - "+i(m(x)(e.server.config.command)),1)],64)):e.server.config.type==="sse"?(l(),o(c,{key:1},[g(" - "+i(e.server.config.url),1)],64)):e.server.config.type==="streamable-http"?(l(),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 g,$ as i,P as c,u as m,V as S,x as l}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"},v={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"},w={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)=>(l(),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),g(" "+i(r.$t(`serverDetail.status.${e.server.status}`)),1)],2),d("div",v,[d("span",w,[g(i(e.server.config.type)+" ",1),e.server.config.type==="stdio"?(l(),o(c,{key:0},[g(" - "+i(m(x)(e.server.config.command)),1)],64)):e.server.config.type==="sse"?(l(),o(c,{key:1},[g(" - "+i(e.server.config.url),1)],64)):e.server.config.type==="streamable-http"?(l(),o(c,{key:2},[],64)):S("",!0)])])]))}});export{C as _,h as a,_ as f};
@@ -0,0 +1 @@
1
+ import{j as X,b as Y,p as ie,M as de,k as me,E as G,R as re,aN as ge,aO as pe,aP as ce,aQ as fe,s as ye,K as ve,aR as be,aS as _e,aT as Ve}from"./index-kC4mf0Vo.js";import{v as xe}from"./el-loading-DIjKEx81.js";import{E as he,a as $e}from"./el-tab-pane-BydxdJoc.js";import{E as ke,a as we}from"./el-switch-BosIJ9jf.js";import{a as ee,E as te}from"./el-form-item-ySymCPMr.js";import{a as Ue,E as le}from"./el-input-C85p6Nqj.js";import{E as Te,a as se,b as ae}from"./el-overlay-B_CxiSem.js";import{t as ne,aa as oe,c as S,r as v,A as x,C as n,$ as d,O as t,G as a,u,a0 as P,P as H,ai as Q,V as j,y as A,x as p,h as Ce,am as De,j as Ee,H as Re}from"./vue-vendor-Dwcr0jep.js";import"./raf-Y9AoxecD.js";import"./event-BB_Ol6Sd.js";import"./omit-DxDGRttI.js";import"./_baseClone-BYxCbA_9.js";const Me={class:"tag-manager"},Ne={class:"flex items-center justify-between mb-4"},Se={class:"text-lg font-semibold text-gray-900 dark:text-white"},Pe={key:0,class:"text-center py-8 text-gray-500 dark:text-gray-400"},je={key:1,class:"space-y-3"},Ae={class:"flex-1"},Ie={class:"flex items-center gap-2"},ze={class:"font-medium text-gray-900 dark:text-white"},Be={key:0,class:"text-sm text-gray-500 dark:text-gray-400 mt-1"},Fe={key:1,class:"mt-2"},Oe={class:"flex flex-wrap gap-1"},qe={class:"flex items-center gap-2 ml-4"},Le={class:"flex justify-end gap-2"},Ke={class:"text-gray-600 dark:text-gray-300"},Ze={class:"flex justify-end gap-2"},Ge=ne({__name:"TagManager",props:{modelValue:{}},emits:["update:modelValue"],setup(I,{emit:w}){const U=I,s=w,{t:z}=oe(),f=S({get:()=>U.modelValue||[],set:e=>s("update:modelValue",e)}),D=v(!1),E=v(!1),h=v(!1),k=v(!1),T=v(),b=v(null),g=v({key:"",description:"",type:"string",values:[]}),q={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:(e,l,m)=>{g.value.type==="enum"&&(!l||l.length===0)?m(new Error("At least one value is required for enum type")):m()},trigger:"change"}]};function R(){h.value=!1,b.value=null,g.value={key:"",description:"",type:"string",values:[]},D.value=!0}function L(e){h.value=!0,b.value=e,g.value={...e},D.value=!0}function B(){D.value=!1,T.value?.resetFields(),g.value={key:"",description:"",type:"string",values:[]},h.value=!1,b.value=null}function M(){T.value?.validate(e=>{if(e){k.value=!0;try{if(h.value&&b.value){const l=f.value.findIndex(m=>m.key===b.value.key);if(l!==-1){const m=[...f.value];m[l]={...g.value},f.value=m}}else{if(f.value.some(l=>l.key===g.value.key)){G.error("Tag key already exists"),k.value=!1;return}f.value=[...f.value,{...g.value}]}G.success(z("action.saved")),B()}finally{k.value=!1}}})}function K(e){b.value=e,E.value=!0}function J(){if(b.value){k.value=!0;try{f.value=f.value.filter(e=>e.key!==b.value.key),G.success(z("action.saved")),E.value=!1,b.value=null}finally{k.value=!1}}}return(e,l)=>{const m=Y,_=X,W=Ue,y=le,c=te,r=ae,$=se,F=ee,N=Te;return p(),x("div",Me,[n("div",Ne,[n("h3",Se,d(e.$t("settings.tagDefinitions")),1),t(_,{type:"primary",onClick:R},{default:a(()=>[t(m,{class:"mr-1"},{default:a(()=>[t(u(ie))]),_:1}),P(" "+d(e.$t("common.addTag")),1)]),_:1})]),f.value.length===0?(p(),x("div",Pe,d(e.$t("settings.noTagsDefined")),1)):(p(),x("div",je,[(p(!0),x(H,null,Q(f.value,i=>(p(),x("div",{key:i.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"},[n("div",Ae,[n("div",Ie,[n("span",ze,d(i.key),1),t(W,{size:"small",type:"info"},{default:a(()=>[P(d(i.type),1)]),_:2},1024)]),i.description?(p(),x("div",Be,d(i.description),1)):j("",!0),i.type==="enum"&&i.values&&i.values.length>0?(p(),x("div",Fe,[n("div",Oe,[(p(!0),x(H,null,Q(i.values,O=>(p(),A(W,{key:O,size:"small",type:"success"},{default:a(()=>[P(d(O),1)]),_:2},1024))),128))])])):j("",!0)]),n("div",qe,[t(_,{size:"small",onClick:O=>L(i)},{default:a(()=>[t(m,null,{default:a(()=>[t(u(de))]),_:1})]),_:1},8,["onClick"]),t(_,{size:"small",type:"danger",onClick:O=>K(i)},{default:a(()=>[t(m,null,{default:a(()=>[t(u(me))]),_:1})]),_:1},8,["onClick"])])]))),128))])),t(N,{modelValue:D.value,"onUpdate:modelValue":l[4]||(l[4]=i=>D.value=i),title:h.value?e.$t("common.editTag"):e.$t("common.addTag"),width:"500px",class:"custom-dialog","before-close":B},{footer:a(()=>[n("div",Le,[t(_,{onClick:B},{default:a(()=>[P(d(e.$t("action.cancel")),1)]),_:1}),t(_,{type:"primary",onClick:M,loading:k.value},{default:a(()=>[P(d(e.$t("action.save")),1)]),_:1},8,["loading"])])]),default:a(()=>[t(F,{model:g.value,rules:q,ref_key:"formRef",ref:T,"label-position":"top"},{default:a(()=>[t(c,{label:e.$t("settings.tagKey"),prop:"key"},{default:a(()=>[t(y,{modelValue:g.value.key,"onUpdate:modelValue":l[0]||(l[0]=i=>g.value.key=i),placeholder:e.$t("settings.tagKeyPlaceholder"),disabled:h.value},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["label"]),t(c,{label:e.$t("settings.tagDescription"),prop:"description"},{default:a(()=>[t(y,{modelValue:g.value.description,"onUpdate:modelValue":l[1]||(l[1]=i=>g.value.description=i),type:"textarea",rows:2,placeholder:e.$t("settings.tagDescriptionPlaceholder")},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),t(c,{label:e.$t("settings.tagType"),prop:"type"},{default:a(()=>[t($,{modelValue:g.value.type,"onUpdate:modelValue":l[2]||(l[2]=i=>g.value.type=i),class:"w-full"},{default:a(()=>[t(r,{label:"String",value:"string"}),t(r,{label:"Number",value:"number"}),t(r,{label:"Boolean",value:"boolean"}),t(r,{label:"Enum",value:"enum"})]),_:1},8,["modelValue"])]),_:1},8,["label"]),g.value.type==="enum"?(p(),A(c,{key:0,label:e.$t("settings.tagValues"),prop:"values"},{default:a(()=>[t($,{modelValue:g.value.values,"onUpdate:modelValue":l[3]||(l[3]=i=>g.value.values=i),multiple:"",filterable:"","allow-create":"","default-first-option":"","reserve-keyword":!1,placeholder:e.$t("settings.tagValuesPlaceholder"),class:"w-full"},{default:a(()=>[(p(!0),x(H,null,Q(g.value.values,i=>(p(),A(r,{key:i,label:i,value:i},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])]),_:1},8,["label"])):j("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),t(N,{modelValue:E.value,"onUpdate:modelValue":l[6]||(l[6]=i=>E.value=i),title:e.$t("common.deleteTag"),width:"400px",class:"custom-dialog"},{footer:a(()=>[n("div",Ze,[t(_,{onClick:l[5]||(l[5]=i=>E.value=!1)},{default:a(()=>[P(d(e.$t("action.cancel")),1)]),_:1}),t(_,{type:"danger",onClick:J,loading:k.value},{default:a(()=>[P(d(e.$t("action.delete")),1)]),_:1},8,["loading"])])]),default:a(()=>[n("p",Ke,d(e.$t("settings.deleteTagConfirm")),1)]),_:1},8,["modelValue","title"])])}}}),V={seconds:1,minutes:60,hours:3600,days:86400},He=["days","hours","minutes","seconds"];function C(I){for(const w of He){const U=V[w];if(I>=U)return w}return"seconds"}function Z(I,w){Ce(I,(U,s)=>{if(s&&U!==s){const z=V[U]/V[s];w.value=Math.round(w.value/z)}})}const We={class:"h-full w-full overflow-y-auto"},Qe={class:"py-6 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto w-full"},Je={class:"mb-6 flex items-center justify-between"},Xe={class:"text-2xl font-bold text-gray-900 dark:text-white"},Ye={class:"pb-10"},et={class:"flex items-center gap-2"},tt={class:"pt-4"},lt={class:"flex flex-col gap-2"},st={class:"flex items-center my-4"},at={class:"text-sm font-medium text-gray-900 dark:text-gray-100 mr-4"},nt={class:"flex items-center gap-2"},ot={class:"flex items-center gap-2"},ut={class:"flex items-center gap-2"},it={class:"flex items-center gap-2"},dt={class:"pt-4"},mt={class:"flex items-center my-4"},rt={class:"text-sm font-medium text-gray-900 dark:text-gray-100 mr-4"},gt={class:"flex items-center gap-2"},pt={class:"pt-4"},ct={class:"text-xs text-gray-500 mt-1"},ft={class:"space-y-4"},yt={class:"flex items-center gap-4"},vt={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},bt={class:"flex items-center gap-4"},_t={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},Vt={class:"flex items-center gap-4"},xt={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},ht={class:"flex items-center gap-2"},$t={class:"flex items-center gap-4"},kt={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},wt={class:"flex items-center gap-2"},Ut={class:"flex items-center gap-2"},Tt={class:"pt-4"},Ct={class:"flex items-center gap-4"},Dt={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},Et={class:"flex items-center gap-2"},Rt={class:"flex items-center gap-4 mt-4"},Mt={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},Nt={class:"flex items-center gap-2"},St={class:"flex items-center gap-4 mt-4"},Pt={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},jt={class:"flex items-center gap-4 mt-4"},At={class:"w-[260px] text-sm font-medium text-gray-700 dark:text-gray-300"},It={class:"flex items-center gap-2"},zt={class:"flex items-center gap-2"},Bt={class:"pt-4"},Yt=ne({__name:"SettingsView",setup(I){const{t:w}=oe(),U=re(),{config:s,loading:z}=De(U),f=v(!1),D=v("system"),E=S({get:()=>{const e=s.value?.system?.logging?.rotationAge||"7d",l=parseInt(e.replace(/[^\d]/g,""))||7;return Number(Math.round(l))},set:e=>{s.value?.system?.logging&&e!==void 0&&e!==null&&(s.value.system.logging.rotationAge=`${e}d`)}}),h=v(C((s.value?.security?.connectionTimeout||3e4)/1e3)),k=S({get:()=>{const l=(s.value?.security?.connectionTimeout||3e4)/1e3,m=C(l),_=l/V[m];return Number(Math.round(_))},set:e=>{s.value?.security&&e!==void 0&&e!==null&&(s.value.security.connectionTimeout=Number(e)*V[h.value]*1e3)}}),T=v(C((s.value?.security?.idleConnectionTimeout||3e5)/1e3)),b=S({get:()=>{const l=(s.value?.security?.idleConnectionTimeout||3e5)/1e3,m=C(l),_=l/V[m];return Number(Math.round(_))},set:e=>{s.value?.security&&e!==void 0&&e!==null&&(s.value.security.idleConnectionTimeout=Number(e)*V[T.value]*1e3)}}),g=v("seconds"),q=S({get:()=>{const l=(s.value?.system?.startup?.startupDelay??3e3)/1e3;return Math.round(l/V[g.value])},set:e=>{if(s.value.system&&(s.value.system.startup||(s.value.system.startup={startupDelay:3e3,readyTimeout:12e4,maxConnectRetries:3,connectRetryDelay:5e3}),e!=null)){const l=e*V[g.value]*1e3,m=Math.max(0,Math.min(6e4,l));s.value.system.startup.startupDelay=m}}}),R=v("seconds"),L=S({get:()=>{const l=(s.value?.system?.startup?.readyTimeout??12e4)/1e3;return Math.round(l/V[R.value])},set:e=>{if(s.value.system?.startup&&e!=null){const l=e*V[R.value]*1e3,m=Math.max(1e4,Math.min(3e5,l));s.value.system.startup.readyTimeout=m}}}),B=S({get:()=>s.value?.system?.startup?.maxConnectRetries??3,set:e=>{s.value.system?.startup&&(s.value.system.startup.maxConnectRetries=e)}}),M=v("seconds"),K=S({get:()=>{const l=(s.value?.system?.startup?.connectRetryDelay??5e3)/1e3;return Math.round(l/V[M.value])},set:e=>{if(s.value.system?.startup&&e!=null){const l=e*V[M.value]*1e3,m=Math.max(1e3,Math.min(3e4,l));s.value.system.startup.connectRetryDelay=m}}});Z(h,k),Z(T,b),Z(g,q),Z(R,L),Z(M,K),Ee(async()=>{s.value.host||await U.fetchConfig(),s.value?.security&&(h.value=C((s.value.security.connectionTimeout||3e4)/1e3),T.value=C((s.value.security.idleConnectionTimeout||3e5)/1e3)),s.value?.system?.startup&&(g.value=C((s.value.system.startup.startupDelay||3e3)/1e3),R.value=C((s.value.system.startup.readyTimeout||12e4)/1e3),M.value=C((s.value.system.startup.connectRetryDelay||5e3)/1e3))});async function J(){f.value=!0;try{await U.updateConfig(s.value),G.success(w("settings.saveSuccess"))}catch(e){G.error(w("settings.saveError")+": "+e.message)}finally{f.value=!1}}return(e,l)=>{const m=Y,_=X,W=le,y=te,c=ke,r=ae,$=se,F=ee,N=$e,i=we,O=he,ue=xe;return p(),x("div",We,[n("div",Qe,[n("div",Je,[n("h1",Xe,d(e.$t("settings.title")),1),t(_,{type:"primary",onClick:J,loading:f.value},{default:a(()=>[t(m,{class:"mr-1"},{default:a(()=>[t(u(ge))]),_:1}),P(" "+d(e.$t("settings.save")),1)]),_:1},8,["loading"])]),Re((p(),x("div",Ye,[t(O,{modelValue:D.value,"onUpdate:modelValue":l[25]||(l[25]=o=>D.value=o),class:"demo-tabs"},{default:a(()=>[t(N,{name:"system"},{label:a(()=>[n("span",et,[t(m,null,{default:a(()=>[t(u(ye))]),_:1}),n("span",null,d(e.$t("settings.systemTab")),1)])]),default:a(()=>[n("div",tt,[t(F,{model:u(s),"label-position":"left","label-width":"260px"},{default:a(()=>[n("div",lt,[t(y,{label:e.$t("settings.host")},{default:a(()=>[t(W,{modelValue:u(s).system.host,"onUpdate:modelValue":l[0]||(l[0]=o=>u(s).system.host=o),class:"w-[200px]"},null,8,["modelValue"])]),_:1},8,["label"]),t(y,{label:e.$t("settings.port")},{default:a(()=>[t(c,{modelValue:u(s).system.port,"onUpdate:modelValue":l[1]||(l[1]=o=>u(s).system.port=o),min:1,max:65535,class:"w-[200px]"},null,8,["modelValue"])]),_:1},8,["label"])]),n("div",st,[n("span",at,d(e.$t("settings.appearance")),1),l[26]||(l[26]=n("div",{class:"h-px bg-gray-200 dark:bg-gray-700 flex-1"},null,-1))]),t(y,{label:e.$t("settings.theme")},{default:a(()=>[t($,{modelValue:u(s).system.theme,"onUpdate:modelValue":l[2]||(l[2]=o=>u(s).system.theme=o),class:"w-[200px]"},{default:a(()=>[t(r,{label:e.$t("settings.themeLight"),value:"light"},{default:a(()=>[n("span",nt,[t(m,null,{default:a(()=>[t(u(pe))]),_:1}),n("span",null,d(e.$t("settings.themeLight")),1)])]),_:1},8,["label"]),t(r,{label:e.$t("settings.themeDark"),value:"dark"},{default:a(()=>[n("span",ot,[t(m,null,{default:a(()=>[t(u(ce))]),_:1}),n("span",null,d(e.$t("settings.themeDark")),1)])]),_:1},8,["label"]),t(r,{label:e.$t("settings.themeSystem"),value:"system"},{default:a(()=>[n("span",ut,[t(m,null,{default:a(()=>[t(u(fe))]),_:1}),n("span",null,d(e.$t("settings.themeSystem")),1)])]),_:1},8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),t(y,{label:e.$t("settings.language")},{default:a(()=>[t($,{modelValue:u(s).system.language,"onUpdate:modelValue":l[3]||(l[3]=o=>u(s).system.language=o),class:"w-[200px]"},{default:a(()=>[t(r,{label:e.$t("settings.langEn"),value:"en"},null,8,["label"]),t(r,{label:e.$t("settings.langZh"),value:"zh"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"])]),_:1},8,["model"])])]),_:1}),t(N,{name:"logging"},{label:a(()=>[n("span",it,[t(m,null,{default:a(()=>[t(u(ve))]),_:1}),n("span",null,d(e.$t("settings.logging")),1)])]),default:a(()=>[n("div",dt,[u(s).system.logging?(p(),A(F,{key:0,model:u(s).system.logging,"label-position":"left","label-width":"260px"},{default:a(()=>[t(y,{label:e.$t("settings.logLevel")},{default:a(()=>[t($,{modelValue:u(s).system.logging.level,"onUpdate:modelValue":l[4]||(l[4]=o=>u(s).system.logging.level=o),class:"w-full md:w-64"},{default:a(()=>[t(r,{label:"DEBUG",value:"debug"}),t(r,{label:"INFO",value:"info"}),t(r,{label:"WARN",value:"warn"}),t(r,{label:"ERROR",value:"error"})]),_:1},8,["modelValue"])]),_:1},8,["label"]),t(y,{label:e.$t("settings.maxAge")},{default:a(()=>[t(c,{modelValue:E.value,"onUpdate:modelValue":l[5]||(l[5]=o=>E.value=o),min:1,class:"w-[150px]"},null,8,["modelValue"])]),_:1},8,["label"]),n("div",mt,[n("span",rt,d(e.$t("settings.debugOptions")),1),l[27]||(l[27]=n("div",{class:"h-px bg-gray-200 dark:bg-gray-700 flex-1"},null,-1))]),u(s).system.logging.level==="debug"||u(s).isDevMode?(p(),x(H,{key:0},[t(y,{label:e.$t("settings.jsonPretty")},{default:a(()=>[t(i,{modelValue:u(s).system.logging.jsonPretty,"onUpdate:modelValue":l[6]||(l[6]=o=>u(s).system.logging.jsonPretty=o)},null,8,["modelValue"])]),_:1},8,["label"]),t(y,{label:e.$t("settings.mcpCommDebug")},{default:a(()=>[t(i,{modelValue:u(s).system.logging.mcpCommDebug,"onUpdate:modelValue":l[7]||(l[7]=o=>u(s).system.logging.mcpCommDebug=o)},null,8,["modelValue"])]),_:1},8,["label"]),t(y,{label:e.$t("settings.apiDebug")},{default:a(()=>[t(i,{modelValue:u(s).system.logging.apiDebug,"onUpdate:modelValue":l[8]||(l[8]=o=>u(s).system.logging.apiDebug=o)},null,8,["modelValue"])]),_:1},8,["label"]),t(y,{label:e.$t("settings.gatewayDebug")},{default:a(()=>[t(i,{modelValue:u(s).system.logging.gatewayDebug,"onUpdate:modelValue":l[9]||(l[9]=o=>u(s).system.logging.gatewayDebug=o)},null,8,["modelValue"])]),_:1},8,["label"])],64)):j("",!0)]),_:1},8,["model"])):j("",!0)])]),_:1}),t(N,{name:"security"},{label:a(()=>[n("span",gt,[t(m,null,{default:a(()=>[t(u(be))]),_:1}),n("span",null,d(e.$t("settings.security")),1)])]),default:a(()=>[n("div",pt,[u(s).security?(p(),A(F,{key:0,model:u(s).security,"label-position":"left","label-width":"260px"},{default:a(()=>[t(y,{label:e.$t("settings.allowedNetworks")},{default:a(()=>[t($,{modelValue:u(s).security.allowedNetworks,"onUpdate:modelValue":l[10]||(l[10]=o=>u(s).security.allowedNetworks=o),multiple:"",filterable:"","allow-create":"","default-first-option":"","reserve-keyword":!1,placeholder:"Enter IP CIDR",class:"w-full"},{default:a(()=>[(p(!0),x(H,null,Q(u(s).security.allowedNetworks,o=>(p(),A(r,{key:o,label:o,value:o},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n("div",ct,d(e.$t("settings.allowedNetworksHint")),1)]),_:1},8,["label"]),n("div",ft,[n("div",yt,[n("span",vt,d(e.$t("settings.maxConcurrentConnections")),1),t(c,{modelValue:u(s).security.maxConcurrentConnections,"onUpdate:modelValue":l[11]||(l[11]=o=>u(s).security.maxConcurrentConnections=o),min:1,max:1e3,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"])]),n("div",bt,[n("span",_t,d(e.$t("settings.maxConnections")),1),t(c,{modelValue:u(s).security.maxConnections,"onUpdate:modelValue":l[12]||(l[12]=o=>u(s).security.maxConnections=o),min:1,max:1e3,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"])]),n("div",Vt,[n("span",xt,d(e.$t("settings.connectionTimeout")),1),n("div",ht,[t(c,{modelValue:k.value,"onUpdate:modelValue":l[13]||(l[13]=o=>k.value=o),min:1,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t($,{modelValue:h.value,"onUpdate:modelValue":l[14]||(l[14]=o=>h.value=o),style:{width:"128px","flex-shrink":"0"}},{default:a(()=>[t(r,{label:e.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(r,{label:e.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"]),t(r,{label:e.$t("settings.timeUnits.hours"),value:"hours"},null,8,["label"]),t(r,{label:e.$t("settings.timeUnits.days"),value:"days"},null,8,["label"])]),_:1},8,["modelValue"])])]),n("div",$t,[n("span",kt,d(e.$t("settings.idleConnectionTimeout")),1),n("div",wt,[t(c,{modelValue:b.value,"onUpdate:modelValue":l[15]||(l[15]=o=>b.value=o),min:1,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t($,{modelValue:T.value,"onUpdate:modelValue":l[16]||(l[16]=o=>T.value=o),style:{width:"128px","flex-shrink":"0"}},{default:a(()=>[t(r,{label:e.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(r,{label:e.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"]),t(r,{label:e.$t("settings.timeUnits.hours"),value:"hours"},null,8,["label"]),t(r,{label:e.$t("settings.timeUnits.days"),value:"days"},null,8,["label"])]),_:1},8,["modelValue"])])])])]),_:1},8,["model"])):j("",!0)])]),_:1}),t(N,{name:"startup"},{label:a(()=>[n("span",Ut,[t(m,null,{default:a(()=>[t(u(_e))]),_:1}),n("span",null,d(e.$t("settings.startupTab")),1)])]),default:a(()=>[n("div",Tt,[u(s).system?(p(),A(F,{key:0,model:u(s).system,"label-position":"left","label-width":"260px"},{default:a(()=>[n("div",Ct,[n("span",Dt,d(e.$t("settings.startupDelay")),1),n("div",Et,[t(c,{modelValue:q.value,"onUpdate:modelValue":l[17]||(l[17]=o=>q.value=o),style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t($,{modelValue:g.value,"onUpdate:modelValue":l[18]||(l[18]=o=>g.value=o),style:{width:"128px","flex-shrink":"0"}},{default:a(()=>[t(r,{label:e.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(r,{label:e.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"])]),_:1},8,["modelValue"])])]),n("div",Rt,[n("span",Mt,d(e.$t("settings.readyTimeout")),1),n("div",Nt,[t(c,{modelValue:L.value,"onUpdate:modelValue":l[19]||(l[19]=o=>L.value=o),style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t($,{modelValue:R.value,"onUpdate:modelValue":l[20]||(l[20]=o=>R.value=o),style:{width:"128px","flex-shrink":"0"}},{default:a(()=>[t(r,{label:e.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(r,{label:e.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"])]),_:1},8,["modelValue"])])]),n("div",St,[n("span",Pt,d(e.$t("settings.maxConnectRetries")),1),t(c,{modelValue:B.value,"onUpdate:modelValue":l[21]||(l[21]=o=>B.value=o),min:0,max:10,style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"])]),n("div",jt,[n("span",At,d(e.$t("settings.connectRetryDelay")),1),n("div",It,[t(c,{modelValue:K.value,"onUpdate:modelValue":l[22]||(l[22]=o=>K.value=o),style:{width:"128px","flex-shrink":"0"}},null,8,["modelValue"]),t($,{modelValue:M.value,"onUpdate:modelValue":l[23]||(l[23]=o=>M.value=o),style:{width:"128px","flex-shrink":"0"}},{default:a(()=>[t(r,{label:e.$t("settings.timeUnits.seconds"),value:"seconds"},null,8,["label"]),t(r,{label:e.$t("settings.timeUnits.minutes"),value:"minutes"},null,8,["label"])]),_:1},8,["modelValue"])])])]),_:1},8,["model"])):j("",!0)])]),_:1}),t(N,{name:"tags"},{label:a(()=>[n("span",zt,[t(m,null,{default:a(()=>[t(u(Ve))]),_:1}),n("span",null,d(e.$t("settings.tagsTab")),1)])]),default:a(()=>[n("div",Bt,[t(Ge,{modelValue:u(s).tagDefinitions,"onUpdate:modelValue":l[24]||(l[24]=o=>u(s).tagDefinitions=o)},null,8,["modelValue"])])]),_:1})]),_:1},8,["modelValue"])])),[[ue,u(z)]])])])}}});export{Yt as default};
@@ -0,0 +1 @@
1
+ import{j as H,E as k,l as V,a0 as M}from"./index-kC4mf0Vo.js";import{E as P,b as R,a as K}from"./el-overlay-B_CxiSem.js";import{E as Q}from"./el-input-C85p6Nqj.js";import{t as W,aa as X,c as O,r as v,h as j,y as I,u as s,G as y,C as r,A as m,$ as n,V as w,O as _,P as Y,ai as Z,a0 as C,x as i}from"./vue-vendor-Dwcr0jep.js";import{_ as ee}from"./_plugin-vue_export-helper-DlAUqK2U.js";const te={class:"flex flex-col h-[60vh]"},le={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"},ae={key:1,class:"mb-4 flex items-center"},oe={class:"font-medium text-gray-700 dark:text-gray-300 mr-2 whitespace-nowrap"},se={class:"flex-1 flex gap-4 min-h-0"},re={class:"flex-1 flex flex-col min-w-0"},ne={class:"flex justify-between items-center mb-2"},ie={class:"font-medium text-gray-700 dark:text-gray-300"},ce={class:"flex-1 flex flex-col min-w-0 border-l border-gray-200 dark:border-gray-700 pl-4"},ue={class:"flex justify-between items-center mb-2"},de={class:"font-medium text-gray-700 dark:text-gray-300"},me={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"},pe={key:0,class:"whitespace-pre-wrap break-words text-gray-600 dark:text-gray-400"},fe={key:1,class:"whitespace-pre-wrap break-words text-green-600 dark:text-green-400"},ge={key:2,class:"whitespace-pre-wrap break-words text-red-600 dark:text-red-400"},ve={key:3,class:"whitespace-pre-wrap break-words text-gray-600 dark:text-gray-400"},ye={class:"flex justify-between items-center"},he={class:"text-xs text-gray-500"},xe={key:0},_e={class:"flex gap-2"},be=W({__name:"ToolCallDialog",props:{modelValue:{type:Boolean},serverName:{},toolName:{},description:{},inputSchema:{}},emits:["update:modelValue"],setup(h,{emit:$}){const{t:l}=X(),a=h,A=$,N=O({get:()=>a.modelValue,set:e=>A("update:modelValue",e)}),x=v("{}"),p=v(null),c=v(null),b=v(!1),f=v(!1),S=v([]),g=v(null),J=O(()=>a.inputSchema?JSON.stringify(a.inputSchema,null,2):"{}"),E=async()=>{if(a.serverName)try{const e=await V.get(`/web/server-instances/${a.serverName}`),t=Array.isArray(e)?e:[];S.value=t,t.length>0&&(g.value=t[0].id)}catch(e){console.error("Failed to fetch server instances:",e),S.value=[],g.value=null}};j(()=>a.serverName,()=>{E()}),j(()=>a.modelValue,e=>{if(e){const t=B(a.inputSchema);x.value=JSON.stringify(t,null,2),p.value=null,c.value=null,E()}},{immediate:!0});function B(e){if(!e||!e.properties)return{};const t={};for(const[d,D]of Object.entries(e.properties)){const o=D;o.default!==void 0?t[d]=o.default:o.type==="string"?t[d]="":o.type==="number"||o.type==="integer"?t[d]=0:o.type==="boolean"?t[d]=!1:o.type==="array"?t[d]=[]:o.type==="object"?t[d]={}:t[d]=null}return t}function T(){try{const e=JSON.parse(x.value);x.value=JSON.stringify(e,null,2)}catch{k.warning(l("toolCallDialog.invalidJson"))}}function z(){f.value=!f.value}function F(e){return`${e.id}`}function U(){console.log("Selected instance:",g.value)}async function L(){try{let e;try{e=JSON.parse(x.value)}catch{k.error(l("toolCallDialog.invalidJsonArguments"));return}b.value=!0,p.value=null,c.value=null,f.value=!1;let t;a.serverName&&a.serverName!=="mcp-hub-lite"?t=await V.post(`/web/hub-tools/servers/${a.serverName}/tools/${a.toolName}/call`,{toolArgs:e,requestOptions:g.value?{sessionId:g.value}:void 0}):t=await V.post(`/web/hub-tools/system/${a.toolName}/call`,{toolArgs:e}),p.value=JSON.stringify(t,null,2),k.success(l("toolCallDialog.executionSuccessful"))}catch(e){console.error("Tool execution failed:",e),e instanceof Error?c.value=e.message||String(e):c.value=String(e),e instanceof M&&e.data?c.value=typeof e.data=="string"?e.data:JSON.stringify(e.data,null,2):typeof e=="object"&&e!==null&&"response"in e&&e.response?.data&&(c.value=JSON.stringify(e.response.data,null,2)),k.error(l("toolCallDialog.executionFailed"))}finally{b.value=!1}}return(e,t)=>{const d=R,D=K,o=H,q=Q,G=P;return i(),I(G,{modelValue:N.value,"onUpdate:modelValue":t[3]||(t[3]=u=>N.value=u),title:s(l)("toolCallDialog.title",{toolName:h.toolName}),width:"800px",class:"tool-call-dialog","destroy-on-close":""},{footer:y(()=>[r("div",ye,[r("div",he,[b.value?(i(),m("span",xe,n(s(l)("toolCallDialog.executing")),1)):w("",!0)]),r("div",_e,[_(o,{onClick:t[2]||(t[2]=u=>N.value=!1)},{default:y(()=>[C(n(s(l)("action.cancel")),1)]),_:1}),_(o,{type:"primary",loading:b.value,onClick:L},{default:y(()=>[C(n(s(l)("toolCallDialog.execute")),1)]),_:1},8,["loading"])])])]),default:y(()=>[r("div",te,[h.description?(i(),m("div",le,n(h.description),1)):w("",!0),h.serverName&&h.serverName!=="mcp-hub-lite"?(i(),m("div",ae,[r("span",oe,n(s(l)("toolCallDialog.instance")),1),_(D,{modelValue:g.value,"onUpdate:modelValue":t[0]||(t[0]=u=>g.value=u),placeholder:s(l)("toolCallDialog.selectInstance"),size:"small",class:"flex-1",onChange:U},{default:y(()=>[(i(!0),m(Y,null,Z(S.value,u=>(i(),I(d,{key:u.id,label:F(u),value:u.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])):w("",!0),r("div",se,[r("div",re,[r("div",ne,[r("span",ie,n(s(l)("toolCallDialog.arguments")),1),_(o,{link:"",type:"primary",size:"small",onClick:T},{default:y(()=>[C(n(s(l)("toolCallDialog.formatJson")),1)]),_:1})]),_(q,{modelValue:x.value,"onUpdate:modelValue":t[1]||(t[1]=u=>x.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"])]),r("div",ce,[r("div",ue,[r("span",de,n(f.value?s(l)("toolCallDialog.inputSchema"):p.value||c.value?s(l)("toolCallDialog.response"):s(l)("toolCallDialog.inputSchema")),1),p.value||c.value||f.value?(i(),I(o,{key:0,link:"",type:"info",size:"small",onClick:z},{default:y(()=>[C(n(f.value?s(l)("toolCallDialog.showResponse"):s(l)("toolCallDialog.showInputSchema")),1)]),_:1})):w("",!0)]),r("div",me,[f.value?(i(),m("pre",pe,n(J.value),1)):p.value?(i(),m("pre",fe,n(p.value),1)):c.value?(i(),m("pre",ge,n(c.value),1)):(i(),m("pre",ve,n(J.value),1))])])])])]),_:1},8,["modelValue","title"])}}}),De=ee(be,[["__scopeId","data-v-b0cc0171"]]);export{De as T};
@@ -0,0 +1 @@
1
+ import{u as H,U as J,b as M,l as U,j as Q,V as W,W as j,s as X,X as K}from"./index-kC4mf0Vo.js";import{a as Y}from"./el-skeleton-item-CupTKK6n.js";import{E as Z}from"./el-input-C85p6Nqj.js";import{t as P,A as i,C as t,J as E,$ as n,V as R,x as a,aa as ee,r as m,c as te,j as se,O as l,G as y,u as g,a0 as z,H as F,L,P as T,ai as V,y as S}from"./vue-vendor-Dwcr0jep.js";import{T as oe}from"./ToolCallDialog-DYEdhnCk.js";import{_ as ae}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./event-BB_Ol6Sd.js";import"./el-overlay-B_CxiSem.js";const le={class:"min-w-0 mb-3"},ne={class:"flex items-center gap-2 mb-2"},re=["title"],ie=["title"],O=P({__name:"ToolCard",props:{title:{},description:{},tagName:{},tagClass:{}},emits:["call"],setup(c){return(f,v)=>(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:v[0]||(v[0]=_=>f.$emit("call"))},[t("div",le,[t("div",ne,[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)):R("",!0),t("span",{class:"font-bold text-gray-900 dark:text-gray-100 font-mono text-base break-all",title:c.title},n(c.title),9,re)]),t("p",{class:"text-sm text-gray-600 dark:text-gray-400 line-clamp-2",title:c.description},n(c.description||f.$t("tools.noDescription")),9,ie)])]))}}),ce={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"},de={class:"mb-6 shrink-0"},ue={class:"text-2xl font-semibold text-gray-900 dark:text-white mb-4"},me={class:"relative"},ve={class:"flex-1 overflow-y-auto custom-scrollbar space-y-8 pr-2"},pe={class:"text-lg font-bold text-gray-900 dark:text-white"},ge={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"},he={class:"flex items-center gap-2 mb-4"},xe={class:"text-lg font-bold text-gray-900 dark:text-white"},ye={class:"text-sm font-normal text-gray-500 ml-2"},_e={key:0,class:"space-y-4"},be={key:1,class:"text-center py-8 text-gray-500"},ke={key:2,class:"space-y-6"},we=["onClick"],Ce={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"},Ne=P({__name:"ToolsView",setup(c){const{t:f}=ee(),v=m(""),_=m(!1),D=m([]),k=H(),w=m([]),C=m(!1),p=m(null),h=m(new Set),b=m(!1);function q(e){h.value.has(e)?h.value.delete(e):h.value.add(e)}async function A(){try{const e=await U.get("/web/hub-tools/system");w.value=e.map(s=>({...s,serverName:"mcp-hub-lite"})).sort((s,d)=>s.name.localeCompare(d.name))}catch(e){console.error("Failed to fetch system tools:",e)}}function I(e){p.value={...e,serverName:e.serverName},C.value=!0}async function B(){_.value=!0;try{const e=await U.get(`/web/search?q=${encodeURIComponent(v.value)}`);D.value=e.results||[]}catch(e){console.error("Failed to fetch tools:",e)}finally{_.value=!1}}function G(){B()}const $=te(()=>{const e={};return D.value.forEach(s=>{if(!s?.tool)return;const x=k.servers.find(N=>N.name===s.tool.serverName)?.status==="online"?f("tools.online"):f("tools.offline"),r=s.tool.serverName?`${s.tool.serverName} (${x})`:"Unknown";e[r]||(e[r]=[]),e[r].push(s)}),Object.entries(e).map(([s,d])=>({serverName:s,tools:d.sort((x,r)=>x.tool.name.localeCompare(r.tool.name))})).sort((s,d)=>s.serverName.localeCompare(d.serverName))});return se(()=>{A(),B(),k.servers.length===0&&k.fetchServers()}),(e,s)=>{const d=Q,x=Z,r=M,N=Y;return a(),i("div",ce,[t("div",de,[t("h2",ue,n(e.$t("tools.title")),1),t("div",me,[l(x,{modelValue:v.value,"onUpdate:modelValue":s[0]||(s[0]=o=>v.value=o),placeholder:e.$t("tools.searchPlaceholder"),class:"w-full",size:"large","prefix-icon":g(J),onInput:G},{append:y(()=>[l(d,{icon:g(W)},null,8,["icon"])]),_:1},8,["modelValue","placeholder","prefix-icon"])])]),t("div",ve,[t("section",null,[t("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:s[1]||(s[1]=o=>b.value=!b.value)},[l(r,{class:E(["transition-transform duration-200",{"-rotate-90":b.value}])},{default:y(()=>[l(g(j))]),_:1},8,["class"]),l(r,{class:"text-gray-900 dark:text-white",size:20},{default:y(()=>[l(g(X))]),_:1}),t("h3",pe,[z(n(e.$t("tools.systemTools"))+" ",1),t("span",ge,"("+n(w.value.length)+")",1)])]),F(t("div",fe,[(a(!0),i(T,null,V(w.value,o=>(a(),S(O,{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:u=>I(o)},null,8,["title","description","tag-name","onCall"]))),128))],512),[[L,!b.value]])]),t("section",null,[t("div",he,[l(r,{class:"text-gray-900 dark:text-white",size:20},{default:y(()=>[l(g(K))]),_:1}),t("h3",xe,[z(n(e.$t("tools.aggregatedTools"))+" ",1),t("span",ye,"("+n($.value.reduce((o,u)=>o+u.tools.length,0))+")",1)])]),_.value?(a(),i("div",_e,[l(N,{animated:"",count:3})])):$.value.length===0?(a(),i("div",be,n(e.$t("tools.noToolsFound")),1)):(a(),i("div",ke,[(a(!0),i(T,null,V($.value,o=>(a(),i("div",{key:o.serverName,class:"space-y-3"},[t("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:u=>q(o.serverName)},[l(r,{class:E(["transition-transform duration-200",{"-rotate-90":h.value.has(o.serverName)}])},{default:y(()=>[l(g(j))]),_:1},8,["class"]),t("span",null,n(o.serverName),1),t("span",Ce,n(o.tools.length),1)],8,we),F(t("div",$e,[(a(!0),i(T,null,V(o.tools,u=>(a(),S(O,{key:u.tool.name,title:u.tool.name,description:u.tool.description,onCall:Te=>I(u.tool)},null,8,["title","description","onCall"]))),128))],512),[[L,!h.value.has(o.serverName)]])]))),128))]))])]),p.value?(a(),S(oe,{key:0,modelValue:C.value,"onUpdate:modelValue":s[2]||(s[2]=o=>C.value=o),"server-name":p.value.serverName,"tool-name":p.value.name,description:p.value.description,"input-schema":p.value.inputSchema},null,8,["modelValue","server-name","tool-name","description","input-schema"])):R("",!0)])}}}),ze=ae(Ne,[["__scopeId","data-v-dfaeaf82"]]);export{ze as default};
@@ -1 +1 @@
1
- import{a3 as T,a9 as Q,bz as U,bA as B,a4 as X,bB as Z,bC as V,a7 as M,a8 as z,bD as D,bE as k,bF as ee,bG as re,bH as $,bI as m,aa as G,bJ as d,bK as K,bL as l,ab as te,ag as ne,ad as ae,bM as oe}from"./index-MqHvQjDP.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 X(e)?Z(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 we(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 $(r).set(new $(e)),r}function $e(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]",He="[object Int32Array]",Je="[object Uint8Array]",We="[object Uint8ClampedArray]",Ye="[object Uint16Array]",qe="[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 $e(e,t);case Ke:case Ne:case _e:case Re:case He:case Je:case We:case Ye:case qe: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 Xe(e){return typeof e.constructor=="function"&&!B(e)?se(N(e)):{}}var Ze="[object Map]";function Ve(e){return G(e)&&d(e)==Ze}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,H="[object Arguments]",or="[object Array]",sr="[object Boolean]",ir="[object Date]",cr="[object Error]",J="[object Function]",fr="[object GeneratorFunction]",ur="[object Map]",br="[object Number]",W="[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]",wr="[object Int32Array]",$r="[object Uint8Array]",mr="[object Uint8ClampedArray]",Sr="[object Uint16Array]",Ir="[object Uint32Array]",n={};n[H]=n[or]=n[dr]=n[Ar]=n[sr]=n[ir]=n[jr]=n[hr]=n[Or]=n[vr]=n[wr]=n[ur]=n[br]=n[W]=n[gr]=n[lr]=n[yr]=n[pr]=n[$r]=n[mr]=n[Sr]=n[Ir]=!0;n[cr]=n[J]=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=we(e),!c)return ie(e,o)}else{var g=d(e),O=g==J||g==fr;if(te(e))return Te(e,c);if(g==W||g==H||O&&!b){if(o=i||O?{}:Xe(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 q=Y?i?he:oe:i?A:M,w=h?void 0:q(e);return ce(w||e,function(f,u){w&&(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,Xe as i,A as k};
1
+ import{a5 as T,ab as Q,bA as U,bB as B,a6 as X,bC as Z,bD as V,a9 as M,aa as z,bE as D,bF as k,bG as ee,bH as re,bI as $,bJ as m,ac as G,bK as d,bL as K,bM as l,ad as te,ai as ne,af as ae,bN as oe}from"./index-kC4mf0Vo.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 X(e)?Z(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 we(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 $(r).set(new $(e)),r}function $e(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]",He="[object Int32Array]",Je="[object Uint8Array]",We="[object Uint8ClampedArray]",Ye="[object Uint16Array]",qe="[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 $e(e,t);case Ke:case Ne:case _e:case Re:case He:case Je:case We:case Ye:case qe: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 Xe(e){return typeof e.constructor=="function"&&!B(e)?se(N(e)):{}}var Ze="[object Map]";function Ve(e){return G(e)&&d(e)==Ze}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,H="[object Arguments]",or="[object Array]",sr="[object Boolean]",ir="[object Date]",cr="[object Error]",J="[object Function]",fr="[object GeneratorFunction]",ur="[object Map]",br="[object Number]",W="[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]",wr="[object Int32Array]",$r="[object Uint8Array]",mr="[object Uint8ClampedArray]",Sr="[object Uint16Array]",Ir="[object Uint32Array]",n={};n[H]=n[or]=n[dr]=n[Ar]=n[sr]=n[ir]=n[jr]=n[hr]=n[Or]=n[vr]=n[wr]=n[ur]=n[br]=n[W]=n[gr]=n[lr]=n[yr]=n[pr]=n[$r]=n[mr]=n[Sr]=n[Ir]=!0;n[cr]=n[J]=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=we(e),!c)return ie(e,o)}else{var g=d(e),O=g==J||g==fr;if(te(e))return Te(e,c);if(g==W||g==H||O&&!b){if(o=i||O?{}:Xe(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 q=Y?i?he:oe:i?A:M,w=h?void 0:q(e);return ce(w||e,function(f,u){w&&(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,Xe as i,A as k};