@decocms/mesh 2.30.0 → 2.31.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/dist/client/assets/{AlertCircle-1-1WQKWT.js → AlertCircle-CNlbeaNO.js} +1 -1
  2. package/dist/client/assets/{ArrowLeft-B_Zx8Hxr.js → ArrowLeft-H58XLYPH.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-DRwS6HmW.js → ArrowUp-C39Etgym.js} +1 -1
  4. package/dist/client/assets/{Check-Dqe1zXYM.js → Check-qyrf_w7u.js} +1 -1
  5. package/dist/client/assets/{ChevronDown-DgLnZGM3.js → ChevronDown-D4EQGXFb.js} +1 -1
  6. package/dist/client/assets/{Code01-DOYC93zg.js → Code01-B-sXoUAx.js} +1 -1
  7. package/dist/client/assets/{Copy01-BP_rHo1H.js → Copy01-EV4WWtW9.js} +1 -1
  8. package/dist/client/assets/{DotsHorizontal-CVtiGZBj.js → DotsHorizontal-BLQeuj18.js} +1 -1
  9. package/dist/client/assets/{DotsVertical-X3Pjbky8.js → DotsVertical-BIgdSuWw.js} +1 -1
  10. package/dist/client/assets/{Download01-BILZifVk.js → Download01-CfIslxub.js} +1 -1
  11. package/dist/client/assets/{Edit01-B0ye336S.js → Edit01-YiEPkU0g.js} +1 -1
  12. package/dist/client/assets/{File06-BNUk2IDL.js → File06-BOUeu2_s.js} +1 -1
  13. package/dist/client/assets/{FilterLines-AeyO6oL5.js → FilterLines-C9-FwG4M.js} +1 -1
  14. package/dist/client/assets/{FlipBackward-B5PjobCM.js → FlipBackward-CXUecZqc.js} +1 -1
  15. package/dist/client/assets/{GitBranch01-7EPuu50R.js → GitBranch01-C7TElKX3.js} +1 -1
  16. package/dist/client/assets/{Grid01-WwMA_KZc.js → Grid01-DS_Rpsaf.js} +1 -1
  17. package/dist/client/assets/{Home02-DCy93UJN.js → Home02-kWTen2lJ.js} +1 -1
  18. package/dist/client/assets/{Image01-B6PBL3Sx.js → Image01-C1Gj64FS.js} +1 -1
  19. package/dist/client/assets/{Inbox01-BjVff0kB.js → Inbox01-BWl9K4GL.js} +1 -1
  20. package/dist/client/assets/{InfoCircle-B4Mr54KB.js → InfoCircle-fjnTRxT_.js} +1 -1
  21. package/dist/client/assets/{Key01-BZwVkIoH.js → Key01-BH9DhJ8d.js} +1 -1
  22. package/dist/client/assets/{LinkExternal01-CcAytAhq.js → LinkExternal01-Cu4-40eG.js} +1 -1
  23. package/dist/client/assets/{List-1iUBd4tC.js → List-CMJ7wwXL.js} +1 -1
  24. package/dist/client/assets/{Loading01-TpnVkESj.js → Loading01-DlgJ1_45.js} +1 -1
  25. package/dist/client/assets/{Lock01-BvYRv_e9.js → Lock01-Bc4skRDc.js} +1 -1
  26. package/dist/client/assets/{Play-DLzBPisH.js → Play-By6elSLp.js} +1 -1
  27. package/dist/client/assets/{Plus-D7wVbyFS.js → Plus-DtbgAjWY.js} +1 -1
  28. package/dist/client/assets/{SearchMd-CWEk-KlL.js → SearchMd--bzHJ7AO.js} +1 -1
  29. package/dist/client/assets/{Terminal-lvq76srU.js → Terminal-BVYBaOBz.js} +1 -1
  30. package/dist/client/assets/{Trash01-BNvRuSw5.js → Trash01-DjLKhTdL.js} +1 -1
  31. package/dist/client/assets/{Upload01-DQUKKjRE.js → Upload01-Deo1Gmh-.js} +1 -1
  32. package/dist/client/assets/{X-yqY3sUct.js → X-C24Yv1HS.js} +1 -1
  33. package/dist/client/assets/{XClose-ByKN3Bx1.js → XClose-CnH5yMqw.js} +1 -1
  34. package/dist/client/assets/agent-detail-RPUTUaLt.js +1 -0
  35. package/dist/client/assets/agents-DLD7xSIr.js +1 -0
  36. package/dist/client/assets/{alert-dialog-B9jUbRRh.js → alert-dialog-D9F5tffK.js} +2 -2
  37. package/dist/client/assets/{auth-catchall-1MftTqgS.js → auth-catchall-CN5idKvS.js} +1 -1
  38. package/dist/client/assets/{avatar-BfmbbQa9.js → avatar-BZZ8iTNu.js} +1 -1
  39. package/dist/client/assets/{badge-DW50XYYF.js → badge-Bv6QbUSE.js} +1 -1
  40. package/dist/client/assets/{binder-CKTdzxY7.js → binder-Co4G2PF6.js} +1 -1
  41. package/dist/client/assets/button-Ta3HWdYR.js +1 -0
  42. package/dist/client/assets/{card-DRuCUQlZ.js → card-CRtF9cdr.js} +1 -1
  43. package/dist/client/assets/checkbox-PlWQwQ-Z.js +1 -0
  44. package/dist/client/assets/collection-detail-D2KCEX1U.js +26 -0
  45. package/dist/client/assets/{collection-display-button-D-JUz0di.js → collection-display-button-CQf7wSjn.js} +1 -1
  46. package/dist/client/assets/{collection-header-BnWN13FR.js → collection-header-ebtrK-4-.js} +1 -1
  47. package/dist/client/assets/{collection-page-s1UUHlAC.js → collection-page-BhBrRtz8.js} +1 -1
  48. package/dist/client/assets/{collection-search-BU0Vve4s.js → collection-search-BHs67_UI.js} +1 -1
  49. package/dist/client/assets/collection-tab-B2mnSptX.js +1 -0
  50. package/dist/client/assets/{collection-table-wrapper-MIdyABzU.js → collection-table-wrapper-3bPS8SS1.js} +1 -1
  51. package/dist/client/assets/connection-C0f0eQA8.js +2 -0
  52. package/dist/client/assets/{connection-card-B1n2vSkA.js → connection-card-CEKO3io8.js} +1 -1
  53. package/dist/client/assets/connection-detail-CdPOOjUE.js +1 -0
  54. package/dist/client/assets/connections-DiIaCwOD.js +1 -0
  55. package/dist/client/assets/constants-7IT_izqz.js +1 -0
  56. package/dist/client/assets/create-organization-dialog-dWwHUnmz.js +1 -0
  57. package/dist/client/assets/dialog-DU-St4qJ.js +1 -0
  58. package/dist/client/assets/dropdown-menu-BbIA2rWH.js +1 -0
  59. package/dist/client/assets/dynamic-plugin-layout-CvhGXoEg.js +1 -0
  60. package/dist/client/assets/{empty-state-FUCXAPL2.js → empty-state-CSTjcp0X.js} +1 -1
  61. package/dist/client/assets/{empty-state-5E8y9_17.js → empty-state-CUODA5WM.js} +1 -1
  62. package/dist/client/assets/env-vars-editor-D9YuRsdO.js +1 -0
  63. package/dist/client/assets/{error-boundary-BXmt5EvA.js → error-boundary-DP1kX1Iw.js} +1 -1
  64. package/dist/client/assets/{extract-connection-data-CCYH5Lz8.js → extract-connection-data-D7M4EXYt.js} +1 -1
  65. package/dist/client/assets/{file-browser-B5X5DPES.js → file-browser-C9Hg6ohe.js} +2 -2
  66. package/dist/client/assets/form-HErbLCwX.js +1 -0
  67. package/dist/client/assets/{grid-view-DZboeGLe.js → grid-view-DvYWkbyi.js} +1 -1
  68. package/dist/client/assets/home-CszARX6v.js +1 -0
  69. package/dist/client/assets/{index-CIFm-sGN.js → index-B9c3bNyk.js} +29 -29
  70. package/dist/client/assets/index-D0C0gp7N.js +1 -0
  71. package/dist/client/assets/index-DE0l5h4l.js +25 -0
  72. package/dist/client/assets/index-DMxjLEp2.js +1 -0
  73. package/dist/client/assets/{index-D86tzVve.css → index-I-Aus2DH.css} +1 -1
  74. package/dist/client/assets/{index-xPzMhcRN.js → index-SYlc-1Tl.js} +78 -78
  75. package/dist/client/assets/infiniteQueryObserver-DTO2dBsV.js +1 -0
  76. package/dist/client/assets/{input-kAGdmk1h.js → input-Dh7sDwu6.js} +1 -1
  77. package/dist/client/assets/{layout-CA8Jr6c9.js → layout-CMBAL9_n.js} +1 -1
  78. package/dist/client/assets/localstorage-keys-DJR10CLV.js +1 -0
  79. package/dist/client/assets/{login-CN2KCPP7.js → login-CgLLYYgm.js} +1 -1
  80. package/dist/client/assets/mcp-oauth-Bb9RwQ7y.js +1 -0
  81. package/dist/client/assets/{mcp-server-card-D4k8L7U_.js → mcp-server-card-3RQV4Klx.js} +1 -1
  82. package/dist/client/assets/mcp-server-detail-ERiwQuLO.js +1 -0
  83. package/dist/client/assets/members-COVJZ-4S.js +3 -0
  84. package/dist/client/assets/{monaco-editor-DdjlPeob.js → monaco-editor-9ao1STYz.js} +4 -4
  85. package/dist/client/assets/monitoring-BTGpm-FJ.js +49 -0
  86. package/dist/client/assets/{oauth-callback-zbAxv_Ty.js → oauth-callback-DC00uX2L.js} +1 -1
  87. package/dist/client/assets/page-2qu28FYa.js +21 -0
  88. package/dist/client/assets/page-CeLSKVJn.js +1 -0
  89. package/dist/client/assets/pin-to-sidebar-button-B85FzaKS.js +1 -0
  90. package/dist/client/assets/plugin-empty-state-CLZp9CCB.js +1 -0
  91. package/dist/client/assets/plugin-header-DlV51u69.js +1 -0
  92. package/dist/client/assets/plugins-BNlg-adG.js +1 -0
  93. package/dist/client/assets/popover-nSqfHOuL.js +1 -0
  94. package/dist/client/assets/project-context-provider-DJGvA4-w.js +1 -0
  95. package/dist/client/assets/registry-utils-BKwhzouz.js +1 -0
  96. package/dist/client/assets/resizable-CXrT3-gZ.js +1 -0
  97. package/dist/client/assets/{resource-tabs-BxhvUHR_.js → resource-tabs-B7x4zlfW.js} +1 -1
  98. package/dist/client/assets/schema-rISYOzpk.js +1 -0
  99. package/dist/client/assets/select-DEFdCmMs.js +1 -0
  100. package/dist/client/assets/settings-DwBDaBpc.js +1 -0
  101. package/dist/client/assets/shell-layout-BGLgMyjW.js +3 -0
  102. package/dist/client/assets/{spinner-BlU-CyUo.js → spinner-CO1NH93o.js} +1 -1
  103. package/dist/client/assets/{switch-BdC2TscQ.js → switch-IXdsAtvF.js} +1 -1
  104. package/dist/client/assets/{textarea-DUbP0lMP.js → textarea-BIhbkxfH.js} +1 -1
  105. package/dist/client/assets/tool-set-selector-Cu6h1Zi5.js +1 -0
  106. package/dist/client/assets/{tools-list-ZcF8RFGY.js → tools-list-DvTDsJWw.js} +1 -1
  107. package/dist/client/assets/{tooltip-DZC_EJPT.js → tooltip-Bb2oNaYJ.js} +1 -1
  108. package/dist/client/assets/{typewriter-title-DmMwWf1q.js → typewriter-title-Dm2sjP0K.js} +1 -1
  109. package/dist/client/assets/use-binding-C-jiWM_O.js +23 -0
  110. package/dist/client/assets/use-collections-BnNAdJQg.js +1 -0
  111. package/dist/client/assets/use-connection-Cpo9FQLA.js +1 -0
  112. package/dist/client/assets/use-connection-resources-Bf67v2HN.js +1 -0
  113. package/dist/client/assets/use-create-virtual-mcp-B5oK5D73.js +1 -0
  114. package/dist/client/assets/{use-list-state-etUSesEo.js → use-list-state-Ck_kabtn.js} +1 -1
  115. package/dist/client/assets/use-mcp-C4SOdL_A.js +1 -0
  116. package/dist/client/assets/use-members-DKVZHAEo.js +1 -0
  117. package/dist/client/assets/{use-mobile-BTv9E0Km.js → use-mobile-Bb5jBMYm.js} +1 -1
  118. package/dist/client/assets/use-organization-settings-BksJ8-FR.js +1 -0
  119. package/dist/client/assets/use-tool-call-CDQ4ked9.js +1 -0
  120. package/dist/client/assets/use-virtual-mcp-CMArCljo.js +1 -0
  121. package/dist/client/assets/use-virtual-mcp-system-prompt-CeE5LXb5.js +1 -0
  122. package/dist/client/assets/useInfiniteQuery-CoW_DO_L.js +1 -0
  123. package/dist/client/assets/useMutation-BYfWAlPb.js +1 -0
  124. package/dist/client/assets/useQuery-CqMcSUvK.js +1 -0
  125. package/dist/client/assets/value-CpF7GK8s.js +1 -0
  126. package/dist/client/assets/{view-mode-toggle-BnlYtR_z.js → view-mode-toggle-C6P0fGVR.js} +1 -1
  127. package/dist/client/assets/{well-known-mcp-dYmT0gkj.js → well-known-mcp-DOEdYmKO.js} +1 -1
  128. package/dist/client/assets/workflow-JTUHDWeK.js +1 -0
  129. package/dist/client/index.html +2 -2
  130. package/dist/server/cli.js +153 -173
  131. package/dist/server/migrate.js +124 -144
  132. package/dist/server/server.js +132 -132
  133. package/package.json +2 -2
  134. package/dist/client/assets/agent-detail-JRtku0yw.js +0 -1
  135. package/dist/client/assets/agents-BBB9zAyy.js +0 -1
  136. package/dist/client/assets/button-Beqnoxm0.js +0 -1
  137. package/dist/client/assets/checkbox-Cyud7zwz.js +0 -1
  138. package/dist/client/assets/collection-detail-AjiurM8l.js +0 -26
  139. package/dist/client/assets/collection-tab-DektmEV9.js +0 -1
  140. package/dist/client/assets/connection-DV2eiD9h.js +0 -1
  141. package/dist/client/assets/connection-detail-K8Xksi4p.js +0 -1
  142. package/dist/client/assets/connections-Br44nNw0.js +0 -1
  143. package/dist/client/assets/constants-BsGXR42W.js +0 -1
  144. package/dist/client/assets/create-organization-dialog-C18jl-3X.js +0 -1
  145. package/dist/client/assets/dialog-D672oALG.js +0 -1
  146. package/dist/client/assets/dropdown-menu-d7fbr7vi.js +0 -1
  147. package/dist/client/assets/dynamic-plugin-layout-x6iO0D0P.js +0 -1
  148. package/dist/client/assets/env-vars-editor-DXfPlt-u.js +0 -1
  149. package/dist/client/assets/form-C3kUUpe6.js +0 -1
  150. package/dist/client/assets/home-DIDLY05Q.js +0 -1
  151. package/dist/client/assets/index-B5BGZm7R.js +0 -1
  152. package/dist/client/assets/index-CA9epBKb.js +0 -25
  153. package/dist/client/assets/index-DhSjPauB.js +0 -1
  154. package/dist/client/assets/index-Duxcl3NA.js +0 -1
  155. package/dist/client/assets/infiniteQueryObserver-DI55aokg.js +0 -1
  156. package/dist/client/assets/localstorage-keys-D39Mfnuf.js +0 -1
  157. package/dist/client/assets/mcp-oauth-BhXFB4cS.js +0 -1
  158. package/dist/client/assets/mcp-server-detail-BGpFcpQE.js +0 -2
  159. package/dist/client/assets/members-DwrsCQNB.js +0 -3
  160. package/dist/client/assets/monitoring-CMTYy8Zy.js +0 -49
  161. package/dist/client/assets/page-BKhEa-18.js +0 -21
  162. package/dist/client/assets/page-De823EKO.js +0 -1
  163. package/dist/client/assets/pin-to-sidebar-button-DyPVFLwi.js +0 -1
  164. package/dist/client/assets/plugin-empty-state-ByeB8wEX.js +0 -1
  165. package/dist/client/assets/plugin-header-CYHjVA7V.js +0 -1
  166. package/dist/client/assets/plugins-s8pAPDnS.js +0 -1
  167. package/dist/client/assets/popover-DAJK6cgi.js +0 -1
  168. package/dist/client/assets/registry-utils-CA6y2Chb.js +0 -1
  169. package/dist/client/assets/resizable-cmjc_30D.js +0 -1
  170. package/dist/client/assets/select-llLhrgqK.js +0 -1
  171. package/dist/client/assets/settings-DPEeyahi.js +0 -1
  172. package/dist/client/assets/shell-layout-DFlG-Ep8.js +0 -3
  173. package/dist/client/assets/tool-set-selector-Bj33eliv.js +0 -1
  174. package/dist/client/assets/use-binding-Xu1xuO_D.js +0 -23
  175. package/dist/client/assets/use-collections-B221Uyxu.js +0 -1
  176. package/dist/client/assets/use-connection-BL1ENN_E.js +0 -1
  177. package/dist/client/assets/use-create-virtual-mcp-2z7ncnXN.js +0 -1
  178. package/dist/client/assets/use-mcp-client-DsCs4GfL.js +0 -1
  179. package/dist/client/assets/use-members-C_b95cND.js +0 -1
  180. package/dist/client/assets/use-organization-settings-CvGUOrcn.js +0 -1
  181. package/dist/client/assets/use-virtual-mcp-BFJ1lnAy.js +0 -1
  182. package/dist/client/assets/use-virtual-mcp-system-prompt-WoTNml6p.js +0 -1
  183. package/dist/client/assets/useInfiniteQuery-C-RzOeGV.js +0 -1
  184. package/dist/client/assets/useMutation-m-ezYbi2.js +0 -1
  185. package/dist/client/assets/useQuery-CzrEYnZ3.js +0 -1
  186. package/dist/client/assets/value-n6dLobUQ.js +0 -1
  187. package/dist/client/assets/workflow-CummKopR.js +0 -1
@@ -1 +0,0 @@
1
- import{bm as Ie,r as u,a8 as K,bn as F,R as Re,P as Ce,O as $e,C as Me,bo as z}from"./index-CIFm-sGN.js";var Q={exports:{}},h={};var fe;function Ae(){if(fe)return h;fe=1;var t=Symbol.for("react.element"),l=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),d=Symbol.for("react.context"),v=Symbol.for("react.server_context"),y=Symbol.for("react.forward_ref"),i=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),b=Symbol.for("react.memo"),E=Symbol.for("react.lazy"),x=Symbol.for("react.offscreen"),$;$=Symbol.for("react.module.reference");function k(n){if(typeof n=="object"&&n!==null){var M=n.$$typeof;switch(M){case t:switch(n=n.type,n){case r:case o:case f:case i:case p:return n;default:switch(n=n&&n.$$typeof,n){case v:case d:case y:case E:case b:case c:return n;default:return M}}case l:return M}}}return h.ContextConsumer=d,h.ContextProvider=c,h.Element=t,h.ForwardRef=y,h.Fragment=r,h.Lazy=E,h.Memo=b,h.Portal=l,h.Profiler=o,h.StrictMode=f,h.Suspense=i,h.SuspenseList=p,h.isAsyncMode=function(){return!1},h.isConcurrentMode=function(){return!1},h.isContextConsumer=function(n){return k(n)===d},h.isContextProvider=function(n){return k(n)===c},h.isElement=function(n){return typeof n=="object"&&n!==null&&n.$$typeof===t},h.isForwardRef=function(n){return k(n)===y},h.isFragment=function(n){return k(n)===r},h.isLazy=function(n){return k(n)===E},h.isMemo=function(n){return k(n)===b},h.isPortal=function(n){return k(n)===l},h.isProfiler=function(n){return k(n)===o},h.isStrictMode=function(n){return k(n)===f},h.isSuspense=function(n){return k(n)===i},h.isSuspenseList=function(n){return k(n)===p},h.isValidElementType=function(n){return typeof n=="string"||typeof n=="function"||n===r||n===o||n===f||n===i||n===p||n===x||typeof n=="object"&&n!==null&&(n.$$typeof===E||n.$$typeof===b||n.$$typeof===c||n.$$typeof===d||n.$$typeof===y||n.$$typeof===$||n.getModuleId!==void 0)},h.typeOf=k,h}var me;function Fe(){return me||(me=1,Q.exports=Ae()),Q.exports}var Pe=Fe();const lt=Ie(Pe);var ve=1,De=.9,qe=.8,je=.17,Z=.1,ee=.999,Le=.9999,Ke=.99,Ve=/[\\\/_+.#"@\[\(\{&]/,Oe=/[\\\/_+.#"@\[\(\{&]/g,ze=/[\s-]/,be=/[\s-]/g;function re(t,l,r,f,o,c,d){if(c===l.length)return o===t.length?ve:Ke;var v=`${o},${c}`;if(d[v]!==void 0)return d[v];for(var y=f.charAt(c),i=r.indexOf(y,o),p=0,b,E,x,$;i>=0;)b=re(t,l,r,f,i+1,c+1,d),b>p&&(i===o?b*=ve:Ve.test(t.charAt(i-1))?(b*=qe,x=t.slice(o,i-1).match(Oe),x&&o>0&&(b*=Math.pow(ee,x.length))):ze.test(t.charAt(i-1))?(b*=De,$=t.slice(o,i-1).match(be),$&&o>0&&(b*=Math.pow(ee,$.length))):(b*=je,o>0&&(b*=Math.pow(ee,i-o))),t.charAt(i)!==l.charAt(c)&&(b*=Le)),(b<Z&&r.charAt(i-1)===f.charAt(c+1)||f.charAt(c+1)===f.charAt(c)&&r.charAt(i-1)!==f.charAt(c))&&(E=re(t,l,r,f,i+1,c+2,d),E*Z>b&&(b=E*Z)),b>p&&(p=b),i=r.indexOf(y,i+1);return d[v]=p,p}function pe(t){return t.toLowerCase().replace(be," ")}function Be(t,l,r){return t=r&&r.length>0?`${t+" "+r.join(" ")}`:t,re(t,l,pe(t),pe(l),0,0,{})}var O='[cmdk-group=""]',te='[cmdk-group-items=""]',_e='[cmdk-group-heading=""]',ge='[cmdk-item=""]',he=`${ge}:not([aria-disabled="true"])`,ne="cmdk-item-select",j="data-value",Te=(t,l,r)=>Be(t,l,r),ye=u.createContext(void 0),B=()=>u.useContext(ye),Se=u.createContext(void 0),le=()=>u.useContext(Se),we=u.createContext(void 0),Ee=u.forwardRef((t,l)=>{let r=L(()=>{var e,s;return{search:"",value:(s=(e=t.value)!=null?e:t.defaultValue)!=null?s:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),f=L(()=>new Set),o=L(()=>new Map),c=L(()=>new Map),d=L(()=>new Set),v=xe(t),{label:y,children:i,value:p,onValueChange:b,filter:E,shouldFilter:x,loop:$,disablePointerSelection:k=!1,vimBindings:n=!0,...M}=t,U=K(),ue=K(),H=K(),P=u.useRef(null),w=et();D(()=>{if(p!==void 0){let e=p.trim();r.current.value=e,R.emit()}},[p]),D(()=>{w(6,ae)},[]);let R=u.useMemo(()=>({subscribe:e=>(d.current.add(e),()=>d.current.delete(e)),snapshot:()=>r.current,setState:(e,s,m)=>{var a,g,S,C;if(!Object.is(r.current[e],s)){if(r.current[e]=s,e==="search")J(),W(),w(1,G);else if(e==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let I=document.getElementById(H);I?I.focus():(a=document.getElementById(U))==null||a.focus()}if(w(7,()=>{var I;r.current.selectedItemId=(I=q())==null?void 0:I.id,R.emit()}),m||w(5,ae),((g=v.current)==null?void 0:g.value)!==void 0){let I=s??"";(C=(S=v.current).onValueChange)==null||C.call(S,I);return}}R.emit()}},emit:()=>{d.current.forEach(e=>e())}}),[]),N=u.useMemo(()=>({value:(e,s,m)=>{var a;s!==((a=c.current.get(e))==null?void 0:a.value)&&(c.current.set(e,{value:s,keywords:m}),r.current.filtered.items.set(e,oe(s,m)),w(2,()=>{W(),R.emit()}))},item:(e,s)=>(f.current.add(e),s&&(o.current.has(s)?o.current.get(s).add(e):o.current.set(s,new Set([e]))),w(3,()=>{J(),W(),r.current.value||G(),R.emit()}),()=>{c.current.delete(e),f.current.delete(e),r.current.filtered.items.delete(e);let m=q();w(4,()=>{J(),m?.getAttribute("id")===e&&G(),R.emit()})}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{c.current.delete(e),o.current.delete(e)}),filter:()=>v.current.shouldFilter,label:y||t["aria-label"],getDisablePointerSelection:()=>v.current.disablePointerSelection,listId:U,inputId:H,labelId:ue,listInnerRef:P}),[]);function oe(e,s){var m,a;let g=(a=(m=v.current)==null?void 0:m.filter)!=null?a:Te;return e?g(e,r.current.search,s):0}function W(){if(!r.current.search||v.current.shouldFilter===!1)return;let e=r.current.filtered.items,s=[];r.current.filtered.groups.forEach(a=>{let g=o.current.get(a),S=0;g.forEach(C=>{let I=e.get(C);S=Math.max(I,S)}),s.push([a,S])});let m=P.current;V().sort((a,g)=>{var S,C;let I=a.getAttribute("id"),_=g.getAttribute("id");return((S=e.get(_))!=null?S:0)-((C=e.get(I))!=null?C:0)}).forEach(a=>{let g=a.closest(te);g?g.appendChild(a.parentElement===g?a:a.closest(`${te} > *`)):m.appendChild(a.parentElement===m?a:a.closest(`${te} > *`))}),s.sort((a,g)=>g[1]-a[1]).forEach(a=>{var g;let S=(g=P.current)==null?void 0:g.querySelector(`${O}[${j}="${encodeURIComponent(a[0])}"]`);S?.parentElement.appendChild(S)})}function G(){let e=V().find(m=>m.getAttribute("aria-disabled")!=="true"),s=e?.getAttribute(j);R.setState("value",s||void 0)}function J(){var e,s,m,a;if(!r.current.search||v.current.shouldFilter===!1){r.current.filtered.count=f.current.size;return}r.current.filtered.groups=new Set;let g=0;for(let S of f.current){let C=(s=(e=c.current.get(S))==null?void 0:e.value)!=null?s:"",I=(a=(m=c.current.get(S))==null?void 0:m.keywords)!=null?a:[],_=oe(C,I);r.current.filtered.items.set(S,_),_>0&&g++}for(let[S,C]of o.current)for(let I of C)if(r.current.filtered.items.get(I)>0){r.current.filtered.groups.add(S);break}r.current.filtered.count=g}function ae(){var e,s,m;let a=q();a&&(((e=a.parentElement)==null?void 0:e.firstChild)===a&&((m=(s=a.closest(O))==null?void 0:s.querySelector(_e))==null||m.scrollIntoView({block:"nearest"})),a.scrollIntoView({block:"nearest"}))}function q(){var e;return(e=P.current)==null?void 0:e.querySelector(`${ge}[aria-selected="true"]`)}function V(){var e;return Array.from(((e=P.current)==null?void 0:e.querySelectorAll(he))||[])}function X(e){let s=V()[e];s&&R.setState("value",s.getAttribute(j))}function Y(e){var s;let m=q(),a=V(),g=a.findIndex(C=>C===m),S=a[g+e];(s=v.current)!=null&&s.loop&&(S=g+e<0?a[a.length-1]:g+e===a.length?a[0]:a[g+e]),S&&R.setState("value",S.getAttribute(j))}function ie(e){let s=q(),m=s?.closest(O),a;for(;m&&!a;)m=e>0?Qe(m,O):Ze(m,O),a=m?.querySelector(he);a?R.setState("value",a.getAttribute(j)):Y(e)}let ce=()=>X(V().length-1),se=e=>{e.preventDefault(),e.metaKey?ce():e.altKey?ie(1):Y(1)},de=e=>{e.preventDefault(),e.metaKey?X(0):e.altKey?ie(-1):Y(-1)};return u.createElement(F.div,{ref:l,tabIndex:-1,...M,"cmdk-root":"",onKeyDown:e=>{var s;(s=M.onKeyDown)==null||s.call(M,e);let m=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||m))switch(e.key){case"n":case"j":{n&&e.ctrlKey&&se(e);break}case"ArrowDown":{se(e);break}case"p":case"k":{n&&e.ctrlKey&&de(e);break}case"ArrowUp":{de(e);break}case"Home":{e.preventDefault(),X(0);break}case"End":{e.preventDefault(),ce();break}case"Enter":{e.preventDefault();let a=q();if(a){let g=new Event(ne);a.dispatchEvent(g)}}}}},u.createElement("label",{"cmdk-label":"",htmlFor:N.inputId,id:N.labelId,style:rt},y),T(t,e=>u.createElement(Se.Provider,{value:R},u.createElement(ye.Provider,{value:N},e))))}),Ue=u.forwardRef((t,l)=>{var r,f;let o=K(),c=u.useRef(null),d=u.useContext(we),v=B(),y=xe(t),i=(f=(r=y.current)==null?void 0:r.forceMount)!=null?f:d?.forceMount;D(()=>{if(!i)return v.item(o,d?.id)},[i]);let p=ke(o,c,[t.value,t.children,c],t.keywords),b=le(),E=A(w=>w.value&&w.value===p.current),x=A(w=>i||v.filter()===!1?!0:w.search?w.filtered.items.get(o)>0:!0);u.useEffect(()=>{let w=c.current;if(!(!w||t.disabled))return w.addEventListener(ne,$),()=>w.removeEventListener(ne,$)},[x,t.onSelect,t.disabled]);function $(){var w,R;k(),(R=(w=y.current).onSelect)==null||R.call(w,p.current)}function k(){b.setState("value",p.current,!0)}if(!x)return null;let{disabled:n,value:M,onSelect:U,forceMount:ue,keywords:H,...P}=t;return u.createElement(F.div,{ref:z(c,l),...P,id:o,"cmdk-item":"",role:"option","aria-disabled":!!n,"aria-selected":!!E,"data-disabled":!!n,"data-selected":!!E,onPointerMove:n||v.getDisablePointerSelection()?void 0:k,onClick:n?void 0:$},t.children)}),He=u.forwardRef((t,l)=>{let{heading:r,children:f,forceMount:o,...c}=t,d=K(),v=u.useRef(null),y=u.useRef(null),i=K(),p=B(),b=A(x=>o||p.filter()===!1?!0:x.search?x.filtered.groups.has(d):!0);D(()=>p.group(d),[]),ke(d,v,[t.value,t.heading,y]);let E=u.useMemo(()=>({id:d,forceMount:o}),[o]);return u.createElement(F.div,{ref:z(v,l),...c,"cmdk-group":"",role:"presentation",hidden:b?void 0:!0},r&&u.createElement("div",{ref:y,"cmdk-group-heading":"","aria-hidden":!0,id:i},r),T(t,x=>u.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?i:void 0},u.createElement(we.Provider,{value:E},x))))}),Ne=u.forwardRef((t,l)=>{let{alwaysRender:r,...f}=t,o=u.useRef(null),c=A(d=>!d.search);return!r&&!c?null:u.createElement(F.div,{ref:z(o,l),...f,"cmdk-separator":"",role:"separator"})}),We=u.forwardRef((t,l)=>{let{onValueChange:r,...f}=t,o=t.value!=null,c=le(),d=A(i=>i.search),v=A(i=>i.selectedItemId),y=B();return u.useEffect(()=>{t.value!=null&&c.setState("search",t.value)},[t.value]),u.createElement(F.input,{ref:l,...f,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":y.listId,"aria-labelledby":y.labelId,"aria-activedescendant":v,id:y.inputId,type:"text",value:o?t.value:d,onChange:i=>{o||c.setState("search",i.target.value),r?.(i.target.value)}})}),Ge=u.forwardRef((t,l)=>{let{children:r,label:f="Suggestions",...o}=t,c=u.useRef(null),d=u.useRef(null),v=A(i=>i.selectedItemId),y=B();return u.useEffect(()=>{if(d.current&&c.current){let i=d.current,p=c.current,b,E=new ResizeObserver(()=>{b=requestAnimationFrame(()=>{let x=i.offsetHeight;p.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return E.observe(i),()=>{cancelAnimationFrame(b),E.unobserve(i)}}},[]),u.createElement(F.div,{ref:z(c,l),...o,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":v,"aria-label":f,id:y.listId},T(t,i=>u.createElement("div",{ref:z(d,y.listInnerRef),"cmdk-list-sizer":""},i)))}),Je=u.forwardRef((t,l)=>{let{open:r,onOpenChange:f,overlayClassName:o,contentClassName:c,container:d,...v}=t;return u.createElement(Re,{open:r,onOpenChange:f},u.createElement(Ce,{container:d},u.createElement($e,{"cmdk-overlay":"",className:o}),u.createElement(Me,{"aria-label":t.label,"cmdk-dialog":"",className:c},u.createElement(Ee,{ref:l,...v}))))}),Xe=u.forwardRef((t,l)=>A(r=>r.filtered.count===0)?u.createElement(F.div,{ref:l,...t,"cmdk-empty":"",role:"presentation"}):null),Ye=u.forwardRef((t,l)=>{let{progress:r,children:f,label:o="Loading...",...c}=t;return u.createElement(F.div,{ref:l,...c,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},T(t,d=>u.createElement("div",{"aria-hidden":!0},d)))}),ut=Object.assign(Ee,{List:Ge,Item:Ue,Input:We,Group:He,Separator:Ne,Dialog:Je,Empty:Xe,Loading:Ye});function Qe(t,l){let r=t.nextElementSibling;for(;r;){if(r.matches(l))return r;r=r.nextElementSibling}}function Ze(t,l){let r=t.previousElementSibling;for(;r;){if(r.matches(l))return r;r=r.previousElementSibling}}function xe(t){let l=u.useRef(t);return D(()=>{l.current=t}),l}var D=typeof window>"u"?u.useEffect:u.useLayoutEffect;function L(t){let l=u.useRef();return l.current===void 0&&(l.current=t()),l}function A(t){let l=le(),r=()=>t(l.snapshot());return u.useSyncExternalStore(l.subscribe,r,r)}function ke(t,l,r,f=[]){let o=u.useRef(),c=B();return D(()=>{var d;let v=(()=>{var i;for(let p of r){if(typeof p=="string")return p.trim();if(typeof p=="object"&&"current"in p)return p.current?(i=p.current.textContent)==null?void 0:i.trim():o.current}})(),y=f.map(i=>i.trim());c.value(t,v,y),(d=l.current)==null||d.setAttribute(j,v),o.current=v}),o}var et=()=>{let[t,l]=u.useState(),r=L(()=>new Map);return D(()=>{r.current.forEach(f=>f()),r.current=new Map},[t]),(f,o)=>{r.current.set(f,o),l({})}};function tt(t){let l=t.type;return typeof l=="function"?l(t.props):"render"in l?l.render(t.props):t}function T({asChild:t,children:l},r){return t&&u.isValidElement(l)?u.cloneElement(tt(l),{ref:l.ref},r(l.props.children)):r(l)}var rt={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};export{lt as R,ut as _,Pe as r};
@@ -1 +0,0 @@
1
- import{C as g,L as w,O,P as Q,i as E,p as K,u as v}from"./connection-DV2eiD9h.js";import{b as F,c as _,a as $,e as h,f as j,u as G,d as I}from"./use-collections-B221Uyxu.js";import{b as D,u as H,a as J}from"./use-connection-BL1ENN_E.js";import{K as n,S as y}from"./use-mcp-client-DsCs4GfL.js";import{c as V,u as Y}from"./use-mcp-client-DsCs4GfL.js";import{c as u,i as m}from"./index-CIFm-sGN.js";import{u as c}from"./useQuery-CzrEYnZ3.js";import"./useMutation-m-ezYbi2.js";async function f(r){return r.getServerCapabilities()?.resources?await r.listResources():{resources:[]}}async function L(r,e){return await r.readResource({uri:e})}function M(r){const e=u.c(12);let t,s;e[0]!==r?({client:t,...s}=r,e[0]=r,e[1]=t,e[2]=s):(t=e[1],s=e[2]);let i;e[3]!==t?(i=n.mcpResourcesList(t),e[3]=t,e[4]=i):i=e[4];let o;e[5]!==t?(o=()=>f(t),e[5]=t,e[6]=o):o=e[6];const l=s.staleTime??3e4;let a;return e[7]!==s||e[8]!==i||e[9]!==o||e[10]!==l?(a={...s,queryKey:i,queryFn:o,staleTime:l,retry:!1},e[7]=s,e[8]=i,e[9]=o,e[10]=l,e[11]=a):a=e[11],c(a)}async function p(r){return r.getServerCapabilities()?.prompts?await r.listPrompts():{prompts:[]}}async function S(r,e,t){if(!r.getServerCapabilities()?.prompts)throw new Error("Prompts capability not supported");return await r.getPrompt({name:e,arguments:t??{}})}function q(r){const e=u.c(12);let t,s;e[0]!==r?({client:t,...s}=r,e[0]=r,e[1]=t,e[2]=s):(t=e[1],s=e[2]);let i;e[3]!==t?(i=n.mcpPromptsList(t),e[3]=t,e[4]=i):i=e[4];let o;e[5]!==t?(o=()=>p(t),e[5]=t,e[6]=o):o=e[6];const l=s.staleTime??3e4;let a;return e[7]!==s||e[8]!==i||e[9]!==o||e[10]!==l?(a={...s,queryKey:i,queryFn:o,staleTime:l,retry:!1},e[7]=s,e[8]=i,e[9]=o,e[10]=l,e[11]=a):a=e[11],m(a)}function R(r){const e=u.c(12);let t,s;e[0]!==r?({client:t,...s}=r,e[0]=r,e[1]=t,e[2]=s):(t=e[1],s=e[2]);let i;e[3]!==t?(i=n.mcpPromptsList(t),e[3]=t,e[4]=i):i=e[4];let o;e[5]!==t?(o=()=>p(t),e[5]=t,e[6]=o):o=e[6];const l=s.staleTime??3e4;let a;return e[7]!==s||e[8]!==i||e[9]!==o||e[10]!==l?(a={...s,queryKey:i,queryFn:o,staleTime:l,retry:!1},e[7]=s,e[8]=i,e[9]=o,e[10]=l,e[11]=a):a=e[11],c(a)}export{g as ConnectionEntitySchema,n as KEYS,w as Locator,O as ORG_ADMIN_PROJECT_SLUG,Q as ProjectContextProvider,y as StreamableHTTPClientTransport,V as createMCPClient,S as getPrompt,E as isStdioParameters,p as listPrompts,f as listResources,K as parseVirtualUrl,L as readResource,F as useCollectionActions,_ as useCollectionItem,$ as useCollectionList,D as useConnection,H as useConnectionActions,J as useConnections,Y as useMCPClient,q as useMCPPromptsList,R as useMCPPromptsListQuery,M as useMCPResourcesListQuery,h as useMCPToolCall,j as useMCPToolCallMutation,G as useMCPToolCallQuery,I as useMCPToolsListQuery,v as useProjectContext};
@@ -1 +0,0 @@
1
- import{Q as d,U as f,V as v,W as b}from"./index-CIFm-sGN.js";var N=class extends d{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){super.setOptions({...e,behavior:f()})}getOptimisticResult(e){return e.behavior=f(),super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){const{state:s}=e,i=super.createResult(e,t),{isFetching:a,isRefetching:P,isError:c,isRefetchError:g}=i,r=s.fetchMeta?.fetchMore?.direction,h=c&&r==="forward",o=a&&r==="forward",n=c&&r==="backward",u=a&&r==="backward";return{...i,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:b(t,s.data),hasPreviousPage:v(t,s.data),isFetchNextPageError:h,isFetchingNextPage:o,isFetchPreviousPageError:n,isFetchingPreviousPage:u,isRefetchError:g&&!h&&!n,isRefetching:P&&!o&&!u}}};export{N as I};
@@ -1 +0,0 @@
1
- import{c as O,E as I}from"./index-CIFm-sGN.js";import{u as x}from"./useQuery-CzrEYnZ3.js";import{u as L}from"./useMutation-m-ezYbi2.js";function M(e){try{return JSON.parse(e)}catch{return}}function $(e,s){const t=localStorage.getItem(e),o=t?M(t):void 0,n=typeof s=="function"?s(o):o??s;if(o===void 0||n!==o)try{const a=JSON.stringify(n);localStorage.setItem(e,a)}catch{}return n}function E(e,s){const t=O.c(25),o=I();let n;t[0]!==e?(n=["localStorage",e],t[0]=e,t[1]=n):n=t[1];const a=n;let r,i;t[2]!==s||t[3]!==e?(r=()=>$(e,s),i=()=>$(e,s),t[2]=s,t[3]=e,t[4]=r,t[5]=i):(r=t[4],i=t[5]);let u;t[6]!==a||t[7]!==r||t[8]!==i?(u={queryKey:a,queryFn:r,initialData:i,staleTime:1/0,gcTime:1/0},t[6]=a,t[7]=r,t[8]=i,t[9]=u):u=t[9];const{data:v}=x(u);let l;t[10]!==e?(l=async c=>{const y=JSON.stringify(c);return localStorage.setItem(e,y),c},t[10]=e,t[11]=l):l=t[11];let m;t[12]!==o||t[13]!==a?(m=c=>{o.setQueryData(a,c)},t[12]=o,t[13]=a,t[14]=m):m=t[14];let h;t[15]!==l||t[16]!==m?(h={mutationFn:l,onSuccess:m},t[15]=l,t[16]=m,t[17]=h):h=t[17];const g=L(h);let d;t[18]!==g||t[19]!==o||t[20]!==a?(d=c=>{const y=o.getQueryData(a),C=typeof c=="function"?c(y):c;g.mutate(C)},t[18]=g,t[19]=o,t[20]=a,t[21]=d):d=t[21];const p=d,S=v;let f;return t[22]!==p||t[23]!==S?(f=[S,p],t[22]=p,t[23]=S,t[24]=f):f=t[24],f}const A={assistantChatThreads:e=>`mesh:assistant-chat:threads:${e}`,messages:(e,s)=>`mesh:messages:${e}:${s}`,decoChatOpen:()=>"mesh:decochat:open",chatSelectedModel:e=>`mesh:chat:selectedModel:${e}`,assistantChatActiveThread:e=>`mesh:assistant-chat:active-thread:${e}`,decoChatPanelWidth:()=>"mesh:decochat:panel-width",sidebarOpen:()=>"mesh:sidebar-open",selectedRegistry:e=>`mesh:store:selected-registry:${e}`,orgHomeQuickstart:e=>`mesh:org-home:quickstart:${e}`,virtualMcpSystemPrompts:e=>`mesh:virtual-mcp:system-prompts:${e}`,storeShowStdio:()=>"mesh:store:show-stdio",developerMode:()=>"mesh:user:developer-mode",pluginConnection:(e,s)=>`mesh:plugin:connection:${e}:${s}`};export{A as L,E as u};
@@ -1 +0,0 @@
1
- import{G as M,H as $,J as P,L as V}from"./index-CIFm-sGN.js";function y(n){let e=0;for(let t=0;t<n.length;t++){const o=n.charCodeAt(t);e=(e<<5)-e+o,e=e&e}return Math.abs(e).toString(16)}const U=new Map,I="mcp:oauth:callback:";class L{serverUrl;_clientMetadata;_redirectUrl;_state=null;_codeVerifier=null;_clientInfo=null;_tokens=null;constructor(e){this.serverUrl=e.serverUrl,this._redirectUrl=e.callbackUrl??`${window.location.origin}/oauth/callback`;const t=e.scope?Array.isArray(e.scope)?e.scope.join(" "):e.scope:void 0;this._clientMetadata={redirect_uris:[this._redirectUrl],token_endpoint_auth_method:"none",grant_types:["authorization_code","refresh_token"],response_types:["code"],client_name:e.clientName??"@decocms/mesh MCP client",...t&&{scope:t}},U.set(y(this.serverUrl),this)}get redirectUrl(){return this._redirectUrl}get clientMetadata(){return this._clientMetadata}state(){return this._state||(this._state=crypto.randomUUID()),this._state}getStoredState(){return this._state}clientInformation(){return this._clientInfo??void 0}saveClientInformation(e){this._clientInfo=e}tokens(){return this._tokens??void 0}saveTokens(e){this._tokens=e}redirectToAuthorization(e){const c=window.screenX+(window.outerWidth-600)/2,s=window.screenY+(window.outerHeight-700)/2;window.open(e.toString(),"mcp-oauth",`width=600,height=700,left=${c},top=${s},popup=yes`)}saveCodeVerifier(e){this._codeVerifier=e}codeVerifier(){if(!this._codeVerifier)throw new Error("Code verifier not found");return this._codeVerifier}invalidateCredentials(){this._clientInfo=null,this._tokens=null,this._codeVerifier=null,this._state=null}getServerUrl(){return this.serverUrl}cleanup(){U.delete(y(this.serverUrl))}}async function H(n){const e=new URL(`/mcp/${n.connectionId}`,window.location.origin),t=new L({serverUrl:e.href,clientName:n.clientName,clientUri:n.clientUri,callbackUrl:n.callbackUrl,scope:n.scope});try{const o=new Promise((r,a)=>{const T=n.timeout||12e4;let w,d=!1;const O=t.state(),k=`${I}${O}`,l=()=>{window.removeEventListener("message",_),window.removeEventListener("storage",g),clearTimeout(w);try{localStorage.removeItem(k)}catch{}},m=async i=>{if(d)return;if(d=!0,!i.success){l(),a(new Error(i.error||"OAuth authentication failed"));return}const{code:f,state:b}=i;if(!f){l(),a(new Error("Missing authorization code"));return}if(t.getStoredState()!==b){l(),a(new Error("OAuth state mismatch - possible CSRF attack"));return}try{const A=(await M(e))?.authorization_servers?.[0]||e,v=await $(A),h=t.clientInformation();if(!h){l(),a(new Error("Client information not found"));return}const E=t.codeVerifier(),C=await P(A,{metadata:v,clientInformation:h,authorizationCode:f,codeVerifier:E,redirectUri:t.redirectUrl,resource:new URL(e)});l(),r({tokens:C,clientId:h.client_id??null,clientSecret:"client_secret"in h?h.client_secret:null,tokenEndpoint:v?.token_endpoint??null})}catch(S){l(),a(S)}},_=async i=>{i.origin===window.location.origin&&i.data?.type==="mcp:oauth:callback"&&await m(i.data)},g=async i=>{if(!(i.key!==k||!i.newValue))try{const f=JSON.parse(i.newValue);await m(f)}catch{}};window.addEventListener("message",_),window.addEventListener("storage",g),w=setTimeout(()=>{d||(d=!0,l(),a(new Error("OAuth authentication timeout")))},T)});if(await V(t,{serverUrl:e})==="REDIRECT"){const r=await o;return{token:r.tokens.access_token,tokenInfo:{accessToken:r.tokens.access_token,refreshToken:r.tokens.refresh_token??null,expiresIn:r.tokens.expires_in??null,scope:r.tokens.scope??null,clientId:r.clientId,clientSecret:r.clientSecret,tokenEndpoint:r.tokenEndpoint},error:null}}const s=t.tokens(),u=t.clientInformation();return{token:s?.access_token||null,tokenInfo:s?{accessToken:s.access_token,refreshToken:s.refresh_token??null,expiresIn:s.expires_in??null,scope:s.scope??null,clientId:u?.client_id??null,clientSecret:u&&"client_secret"in u?u.client_secret:null,tokenEndpoint:null}:null,error:null}}catch(o){return{token:null,tokenInfo:null,error:o instanceof Error?o.message:String(o)}}finally{t.cleanup()}}function p(n,e){if(window.opener&&!window.opener.closed)return window.opener.postMessage(n,window.location.origin),!0;if(e)try{const t=`${I}${e}`;return localStorage.setItem(t,JSON.stringify(n)),!0}catch{}return!1}async function J(){const n=new URLSearchParams(window.location.search),e=n.get("code");let t=n.get("state");const o=n.get("error"),c=n.get("error_description");let s=t;if(t)try{const r=atob(t),a=JSON.parse(r);a.clientState&&(s=a.clientState)}catch{}if(o){const r=c||o;return p({type:"mcp:oauth:callback",success:!1,error:r},s),{success:!1,error:r}}if(!e||!t){const r="Missing code or state parameter";return p({type:"mcp:oauth:callback",success:!1,error:r},s),{success:!1,error:r}}return t=s||t,p({type:"mcp:oauth:callback",success:!0,code:e,state:t},t)?{success:!0}:{success:!1,error:"Parent window not available"}}function R(n){try{return new URL(n).pathname.match(/^\/mcp\/([^/]+)/)?.[1]??null}catch{return null}}async function x(n){try{const e=await fetch(`/api/connections/${n}/oauth-token/status`,{credentials:"include"});return e.ok?{hasToken:(await e.json()).hasToken===!0}:{hasToken:!1}}catch{return{hasToken:!1}}}async function j({url:n,token:e}){try{const t=new Headers;t.set("Content-Type","application/json"),t.set("Accept","application/json, text/event-stream");const o=await fetch(n,{method:"POST",headers:t,body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"@decocms/mesh MCP client",version:"1.0.0"}}})}),c=R(n);if(o.ok)return{isAuthenticated:!0,supportsOAuth:!1,hasOAuthToken:(c?await x(c):{hasToken:!1}).hasToken};let s;try{const a=await o.json();s=a.error||a.message}catch{}return o.status>=500?{isAuthenticated:!1,supportsOAuth:!1,hasOAuthToken:!1,error:s||`HTTP ${o.status}`,isServerError:!0}:{isAuthenticated:!1,supportsOAuth:!!o.headers.get("WWW-Authenticate"),hasOAuthToken:!1,error:s||`HTTP ${o.status}`}}catch(t){return console.error("[isConnectionAuthenticated] Error:",t),{isAuthenticated:!1,supportsOAuth:!1,hasOAuthToken:!1,error:t.message}}}export{H as a,J as h,j as i};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CIFm-sGN.js","assets/index-D86tzVve.css","assets/index-Duxcl3NA.js","assets/connection-DV2eiD9h.js","assets/use-collections-B221Uyxu.js","assets/useMutation-m-ezYbi2.js","assets/useQuery-CzrEYnZ3.js","assets/use-mcp-client-DsCs4GfL.js","assets/use-connection-BL1ENN_E.js"])))=>i.map(i=>d[i]);
2
- import{r as F,c as E,j as t,e as xe,u as Ie,f as _e,d as Te,bl as de,K as ke,a0 as me}from"./index-CIFm-sGN.js";import{i as Le}from"./AlertCircle-1-1WQKWT.js";import{i as he}from"./Loading01-TpnVkESj.js";import{B as X,c as Pe}from"./button-Beqnoxm0.js";import{i as Me}from"./ArrowLeft-B_Zx8Hxr.js";import{I as ge,E as Ve}from"./empty-state-FUCXAPL2.js";import{i as De,e as Ee}from"./extract-connection-data-CCYH5Lz8.js";import{t as Re}from"./ChevronDown-DgLnZGM3.js";import{s as fe}from"./Plus-D7wVbyFS.js";import{a as $e,c as Ae,b as Ue,D as Be}from"./dropdown-menu-d7fbr7vi.js";import{n as ue}from"./LinkExternal01-CcAytAhq.js";import{T as ze,R as Oe}from"./tools-list-ZcF8RFGY.js";import{R as Fe}from"./resource-tabs-BxhvUHR_.js";import{s as Ge,f as He,g as We,c as qe}from"./registry-utils-CA6y2Chb.js";import{a as Ke,b as Qe,e as Ye}from"./mcp-server-card-D4k8L7U_.js";import{i as Xe}from"./Terminal-lvq76srU.js";import{u as Ze}from"./use-binding-Xu1xuO_D.js";import{u as ve}from"./connection-DV2eiD9h.js";import{u as Je}from"./useQuery-CzrEYnZ3.js";import{e as et}from"./use-collections-B221Uyxu.js";import{u as tt,a as st,b as ot}from"./use-connection-BL1ENN_E.js";import{u as rt}from"./use-mcp-client-DsCs4GfL.js";import{u as nt,L as it}from"./localstorage-keys-D39Mfnuf.js";import{s as lt}from"./slugify-CEUa2lfQ.js";import{e as at,g as ct}from"./github-icon-Dp3wHhYE.js";import{i as dt}from"./InfoCircle-B4Mr54KB.js";import"./constants-BsGXR42W.js";import"./generate-id-Dyweu44Y.js";import"./Grid01-WwMA_KZc.js";import"./File06-BNUk2IDL.js";import"./collection-display-button-D-JUz0di.js";import"./ArrowUp-DRwS6HmW.js";import"./Check-Dqe1zXYM.js";import"./List-1iUBd4tC.js";import"./tooltip-DZC_EJPT.js";import"./view-mode-toggle-BnlYtR_z.js";import"./collection-search-BU0Vve4s.js";import"./SearchMd-CWEk-KlL.js";import"./input-kAGdmk1h.js";import"./collection-table-wrapper-MIdyABzU.js";import"./card-DRuCUQlZ.js";import"./layout-CA8Jr6c9.js";import"./badge-DW50XYYF.js";import"./Lock01-BvYRv_e9.js";import"./binder-CKTdzxY7.js";import"./useMutation-m-ezYbi2.js";const be=({size:o=24,color:e="currentColor",...s})=>F.createElement("svg",{viewBox:"0 0 24 24",width:o,height:o,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...s},F.createElement("path",{d:"m21 21-3.5-3.5m2.5-6a8.5 8.5 0 1 1-17 0 8.5 8.5 0 0 1 17 0Z"}));be.displayName="SearchLg";function mt(o){const e=E.c(3),{message:s}=o,r=s===void 0?"Loading MCP Server details...":s;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx(he,{size:48,className:"animate-spin mb-4"}),e[0]=n):n=e[0];let i;return e[1]!==r?(i=t.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[n,t.jsx("p",{className:"text-sm text-muted-foreground",children:r})]}),e[1]=r,e[2]=i):i=e[2],i}function ft(o){const e=E.c(9),{error:s,onBack:r}=o,n=s instanceof Error?s.message:s;let i,c;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(Le,{size:48,className:"text-destructive mb-4"}),c=t.jsx("h3",{className:"text-lg font-medium mb-2",children:"Error loading MCP Server"}),e[0]=i,e[1]=c):(i=e[0],c=e[1]);let u;e[2]!==n?(u=t.jsx("p",{className:"text-muted-foreground max-w-md text-center",children:n}),e[2]=n,e[3]=u):u=e[3];let d;e[4]!==r?(d=t.jsx("button",{onClick:r,className:"mt-4 px-4 py-2 bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 transition-colors",children:"Go Back"}),e[4]=r,e[5]=d):d=e[5];let m;return e[6]!==u||e[7]!==d?(m=t.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[i,c,u,d]}),e[6]=u,e[7]=d,e[8]=m):m=e[8],m}function ut(o){const e=E.c(5),{onBack:s}=o;let r,n,i;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(be,{size:48,className:"text-muted-foreground mb-4"}),n=t.jsx("h3",{className:"text-lg font-medium mb-2",children:"MCP Server not found"}),i=t.jsx("p",{className:"text-muted-foreground max-w-md text-center",children:"The MCP Server you're looking for doesn't exist in this store."}),e[0]=r,e[1]=n,e[2]=i):(r=e[0],n=e[1],i=e[2]);let c;return e[3]!==s?(c=t.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[r,n,i,t.jsx("button",{onClick:s,className:"mt-4 px-4 py-2 bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 transition-colors",children:"Go Back to Store"})]}),e[3]=s,e[4]=c):c=e[4],c}function pt(o){const e=E.c(3),{onBack:s}=o;let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(Me,{}),e[0]=r):r=e[0];let n;return e[1]!==s?(n=t.jsx("div",{className:"flex items-center h-12 border-b border-border shrink-0",children:t.jsx("div",{className:"flex h-full px-2 border-r items-center",children:t.jsx(X,{variant:"ghost",size:"icon",className:"items-center size-8 text-muted-foreground",onClick:s,"aria-label":"Go back",children:r})})}),e[1]=s,e[2]=n):n=e[2],n}function pe(o){const e=E.c(28),{versions:s,selectedIndex:r,onSelect:n,isInstalling:i,variant:c,showLabel:u}=o,d=i===void 0?!1:i,m=c===void 0?"brand":c,I=u===void 0?!1:u,p=s[r],C=I?"sm":"default",j=m==="brand"&&"rounded-l-none px-2 border-l-2 border-l-white/50";let y;e[0]!==j?(y=Pe("shrink-0 cursor-pointer",j),e[0]=j,e[1]=y):y=e[1];let f;e[2]!==p?.server?.version||e[3]!==I?(f=I&&t.jsxs("span",{className:"mr-1",children:["v",p?.server?.version||"unknown"]}),e[2]=p?.server?.version,e[3]=I,e[4]=f):f=e[4];const N=I?14:20;let h;e[5]!==N?(h=t.jsx(Re,{size:N}),e[5]=N,e[6]=h):h=e[6];let x;e[7]!==d||e[8]!==C||e[9]!==y||e[10]!==f||e[11]!==h||e[12]!==m?(x=t.jsx($e,{asChild:!0,children:t.jsxs(X,{variant:m,disabled:d,size:C,className:y,children:[f,h]})}),e[7]=d,e[8]=C,e[9]=y,e[10]=f,e[11]=h,e[12]=m,e[13]=x):x=e[13];let g;if(e[14]!==d||e[15]!==n||e[16]!==r||e[17]!==s){let S;e[19]!==d||e[20]!==n||e[21]!==r?(S=(v,b)=>{const P=v._meta?.["io.modelcontextprotocol.registry/official"];return t.jsx(Ae,{onClick:()=>n(b),disabled:d,className:"cursor-pointer",children:t.jsxs("div",{className:"flex items-center justify-between gap-2 w-full",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs("div",{className:"font-medium text-sm",children:["v",v.server?.version||"unknown"]}),P?.isLatest&&t.jsx("div",{className:"text-xs text-muted-foreground/50 font-semibold",children:"LATEST"})]}),b===r&&t.jsx(De,{size:16,className:"text-muted-foreground shrink-0"})]})},b)},e[19]=d,e[20]=n,e[21]=r,e[22]=S):S=e[22],g=s.map(S),e[14]=d,e[15]=n,e[16]=r,e[17]=s,e[18]=g}else g=e[18];let _;e[23]!==g?(_=t.jsx(Ue,{align:"end",className:"w-56 max-h-[300px] overflow-y-auto",children:g}),e[23]=g,e[24]=_):_=e[24];let w;return e[25]!==x||e[26]!==_?(w=t.jsxs(Be,{children:[x,_]}),e[25]=x,e[26]=_,e[27]=w):w=e[27],w}function xt(o){const e=E.c(46),{data:s,itemVersions:r,onInstall:n,canInstall:i,isInstalling:c,hideInstallControls:u,selectedVersionIndex:d,onVersionChange:m}=o,I=i===void 0?!0:i,p=c===void 0?!1:c,C=u===void 0?!1:u,[j,y]=F.useState(0),f=d??j;let N;e[0]!==m?(N=U=>{y(U),m?.(U)},e[0]=m,e[1]=N):N=e[1];const h=N,x=r[f]||r[0];let g;e[2]!==x?.server?.remotes?(g=x?.server?.remotes??[],e[2]=x?.server?.remotes,e[3]=g):g=e[3];const _=g;let w;e[4]!==x?.server?.packages?(w=x?.server?.packages??[],e[4]=x?.server?.packages,e[5]=w):w=e[5];const v=w.length>0,b=_.length>0,P=_.findIndex(gt),a=P>=0?P:0;let M;e[6]!==a||e[7]!==v||e[8]!==b||e[9]!==n||e[10]!==f?(M=()=>{b?n(f,a,void 0):v&&n(f,void 0,0)},e[6]=a,e[7]=v,e[8]=b,e[9]=n,e[10]=f,e[11]=M):M=e[11];const V=M;let G;e[12]!==r||e[13]!==n||e[14]!==h?(G=U=>{h(U);const Z=r[U],J=Z?.server?.remotes??[],se=Z?.server?.packages??[];if(J.length>0){const ee=J.findIndex(ht);n(U,ee>=0?ee:0,void 0)}else se.length>0&&n(U,void 0,0)},e[12]=r,e[13]=n,e[14]=h,e[15]=G):G=e[15];const K=G;let $;e[16]!==s.icon||e[17]!==s.name?($=t.jsx(ge,{icon:s.icon,name:s.name,size:"lg",className:"shrink-0 shadow-sm"}),e[16]=s.icon,e[17]=s.name,e[18]=$):$=e[18];let k;e[19]!==s.name?(k=t.jsx("h1",{className:"text-3xl font-medium",children:s.name}),e[19]=s.name,e[20]=k):k=e[20];let T;e[21]!==s.verified?(T=s.verified&&t.jsx("img",{src:"/verified-badge.svg",alt:"Verified",className:"w-5 h-5 shrink-0"}),e[21]=s.verified,e[22]=T):T=e[22];let A;e[23]!==k||e[24]!==T?(A=t.jsxs("div",{className:"flex items-center gap-2",children:[k,T]}),e[23]=k,e[24]=T,e[25]=A):A=e[25];let D;e[26]!==s.shortDescription?(D=s.shortDescription&&t.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:s.shortDescription}),e[26]=s.shortDescription,e[27]=D):D=e[27];let B;e[28]!==A||e[29]!==D?(B=t.jsxs("div",{className:"flex-1 min-w-0",children:[A,D]}),e[28]=A,e[29]=D,e[30]=B):B=e[30];let z;e[31]!==I||e[32]!==V||e[33]!==K||e[34]!==C||e[35]!==p||e[36]!==r||e[37]!==f||e[38]!==h?(z=I&&!C?t.jsx("div",{className:"shrink-0 flex items-center gap-2",children:r.length>1?t.jsxs("div",{className:"flex",children:[t.jsxs(X,{variant:"brand",onClick:V,disabled:p,className:"shrink-0 rounded-r-none cursor-pointer",children:[t.jsx(fe,{size:20}),p?"Connecting...":"Connect"]}),t.jsx(pe,{versions:r,selectedIndex:f,onSelect:K,isInstalling:p,variant:"brand"})]}):t.jsxs(X,{variant:"brand",onClick:V,disabled:r.length===0||p,className:"shrink-0 cursor-pointer",children:[t.jsx(fe,{size:20}),p?"Connecting...":"Connect"]})}):C?r.length>1?t.jsx("div",{className:"shrink-0",children:t.jsx(pe,{versions:r,selectedIndex:f,onSelect:h,isInstalling:p,variant:"outline",showLabel:!0})}):null:t.jsx("div",{className:"shrink-0 px-4 py-2 text-sm text-muted-foreground bg-muted rounded-lg",children:"Cannot be connected"}),e[31]=I,e[32]=V,e[33]=K,e[34]=C,e[35]=p,e[36]=r,e[37]=f,e[38]=h,e[39]=z):z=e[39];let O;e[40]!==B||e[41]!==z?(O=t.jsxs("div",{className:"flex-1 min-w-0 flex items-center justify-between",children:[B,z]}),e[40]=B,e[41]=z,e[42]=O):O=e[42];let H;return e[43]!==O||e[44]!==$?(H=t.jsxs("div",{className:"flex items-center gap-4 py-8 px-5 border-b border-border",children:[$,O]}),e[43]=O,e[44]=$,e[45]=H):H=e[45],H}function ht(o){return o.type?.toLowerCase()==="http"||o.type?.toLowerCase()==="streamable-http"}function gt(o){return o.type?.toLowerCase()==="http"||o.type?.toLowerCase()==="streamable-http"}function vt(o){if(!o)return"—";try{const e=new Date(o);return isNaN(e.getTime())?"—":e.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}catch{return"—"}}function bt(o){const e=E.c(47),{data:s,publisherInfo:r,selectedItem:n}=o;let i;e[0]!==s.description?(i=s.description&&t.jsxs("div",{className:"px-5 pb-5 border-b border-border",children:[t.jsx("h2",{className:"text-base font-medium mb-3",children:"Overview"}),t.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:s.description})]}),e[0]=s.description,e[1]=i):i=e[1];const c=s.publisher==="io.modelcontextprotocol.registry/official"?"Official Registry":s.publisher;let u;e[2]!==r.logo||e[3]!==c?(u=t.jsx(ge,{icon:r.logo,name:c,size:"sm",className:"shrink-0 shadow-sm"}),e[2]=r.logo,e[3]=c,e[4]=u):u=e[4];let d;e[5]!==s.publisher?(d=s.publisher==="io.modelcontextprotocol.registry/official"?"Official Registry":s.publisher.charAt(0).toUpperCase()+s.publisher.slice(1),e[5]=s.publisher,e[6]=d):d=e[6];let m;e[7]!==d?(m=t.jsx("div",{className:"font-medium",children:d}),e[7]=d,e[8]=m):m=e[8];let I;e[9]===Symbol.for("react.memo_cache_sentinel")?(I=t.jsx("div",{className:"text-xs text-muted-foreground",children:"Publisher"}),e[9]=I):I=e[9];let p;e[10]!==m?(p=t.jsxs("div",{children:[m,I]}),e[10]=m,e[11]=p):p=e[11];let C;e[12]!==u||e[13]!==p?(C=t.jsx("div",{className:"px-5 border-b border-border",children:t.jsxs("div",{className:"flex items-center gap-3 py-5",children:[u,p]})}),e[12]=u,e[13]=p,e[14]=C):C=e[14];let j;e[15]!==s.version?(j=s.version&&t.jsxs("div",{className:"flex justify-between items-center text-sm",children:[t.jsx("span",{className:"text-foreground text-sm",children:"Version"}),t.jsxs("span",{className:"text-muted-foreground uppercase text-xs",children:["v",s.version]})]}),e[15]=s.version,e[16]=j):j=e[16];let y;e[17]!==s.tags?(y=s.tags&&s.tags.length>0&&t.jsxs("div",{className:"flex justify-between items-start text-sm",children:[t.jsx("span",{className:"text-foreground text-sm",children:"Tags"}),t.jsx("div",{className:"flex flex-wrap gap-1 justify-end max-w-[60%]",children:s.tags.map(yt)})]}),e[17]=s.tags,e[18]=y):y=e[18];let f;e[19]!==s.categories?(f=s.categories&&s.categories.length>0&&t.jsxs("div",{className:"flex justify-between items-start text-sm",children:[t.jsx("span",{className:"text-foreground text-sm",children:"Categories"}),t.jsx("div",{className:"flex flex-wrap gap-1 justify-end max-w-[60%]",children:s.categories.map(jt)})]}),e[19]=s.categories,e[20]=f):f=e[20];let N;e[21]!==s.connectionType?(N=s.connectionType&&t.jsxs("div",{className:"flex justify-between items-center text-sm",children:[t.jsx("span",{className:"text-foreground text-sm",children:"Connection Type"}),t.jsx("span",{className:"text-muted-foreground uppercase text-xs",children:s.connectionType})]}),e[21]=s.connectionType,e[22]=N):N=e[22];let h;e[23]!==s.schemaVersion?(h=s.schemaVersion&&t.jsxs("div",{className:"flex justify-between items-center text-sm",children:[t.jsx("span",{className:"text-foreground text-sm",children:"Schema Version"}),t.jsx("span",{className:"text-muted-foreground text-xs",children:s.schemaVersion})]}),e[23]=s.schemaVersion,e[24]=h):h=e[24];let x;e[25]!==s.websiteUrl?(x=s.websiteUrl&&t.jsxs("div",{className:"flex justify-between items-center text-sm",children:[t.jsx("span",{className:"text-foreground text-sm",children:"Website"}),t.jsxs("a",{href:s.websiteUrl,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:underline flex items-center gap-1 text-xs",children:[t.jsx("span",{children:"Visit"}),t.jsx(ue,{size:14})]})]}),e[25]=s.websiteUrl,e[26]=x):x=e[26];let g;e[27]!==s.repository?(g=s.repository?.url&&t.jsxs("div",{className:"flex justify-between items-center text-sm",children:[t.jsx("span",{className:"text-foreground text-sm",children:"Source"}),t.jsxs("a",{href:s.repository.url,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:underline flex items-center gap-1 text-xs",children:[t.jsx("span",{children:"GitHub"}),t.jsx(ue,{size:14})]})]}),e[27]=s.repository,e[28]=g):g=e[28];let _;e[29]!==y||e[30]!==f||e[31]!==N||e[32]!==h||e[33]!==x||e[34]!==g||e[35]!==j?(_=t.jsxs("div",{className:"px-5 py-5 border-b border-border space-y-4",children:[j,y,f,N,h,x,g]}),e[29]=y,e[30]=f,e[31]=N,e[32]=h,e[33]=x,e[34]=g,e[35]=j,e[36]=_):_=e[36];let w;e[37]===Symbol.for("react.memo_cache_sentinel")?(w=t.jsx("span",{className:"text-foreground text-sm",children:"Last Updated"}),e[37]=w):w=e[37];let S;e[38]!==n.updated_at?(S=vt(n.updated_at),e[38]=n.updated_at,e[39]=S):S=e[39];let v;e[40]!==S?(v=t.jsxs("div",{className:"px-5 py-5 text-sm flex justify-between items-center border-b border-border",children:[w,t.jsx("span",{className:"text-muted-foreground uppercase text-xs",children:S})]}),e[40]=S,e[41]=v):v=e[41];let b;return e[42]!==i||e[43]!==_||e[44]!==v||e[45]!==C?(b=t.jsxs("div",{className:"lg:col-span-1 flex flex-col pt-5",children:[i,C,_,v]}),e[42]=i,e[43]=_,e[44]=v,e[45]=C,e[46]=b):b=e[46],b}function jt(o){return t.jsx("span",{className:"text-xs bg-muted px-2 py-0.5 rounded",children:o},o)}function yt(o){return t.jsx("span",{className:"text-xs bg-muted px-2 py-0.5 rounded",children:o},o)}const Nt=[{value:"http",label:"HTTP"},{value:"sse",label:"SSE"},{value:"stdio",label:"STDIO"},{value:"all",label:"All"}],St={docs:"Documentation",bindings:"Workers Bindings",builds:"Workers Builds",observability:"Observability",radar:"Radar",containers:"Containers",browser:"Browser Rendering",logs:"Logpush",autorag:"AutoRAG",auditlogs:"Audit Logs",graphql:"GraphQL",dex:"DEX Monitoring",casb:"CASB"};function Ct(o){if(!o)return"Local";try{return new URL(o).hostname}catch{return o}}function wt(o){if(!o)return"local";try{const e=new URL(o).hostname;return e.split(".")[0]||e}catch{return"unknown"}}function It(o){const e=St[o.toLowerCase()];return e||o.replace(/[-_]/g," ").replace(/\b\w/g,s=>s.toUpperCase())}function _t(o){if(!o)return"http";const e=o.toLowerCase();return e==="sse"?"sse":e==="stdio"?"stdio":"http"}function Tt(o){return o.map((e,s)=>{const r=_t(e.type),n=Ct(e.url),i=wt(e.url),c=e.title||e.name||It(i);return{index:s,protocol:r,url:e.url,hostname:n,serviceName:i,displayName:c,name:e.name,title:e.title,description:e.description,_type:e._type,_index:e._index}})}function kt(o){const e=E.c(2),{protocol:s,className:r}=o;let n;return e[0]!==r?(n={http:t.jsx(Ge,{className:r}),sse:t.jsx(Qe,{className:r}),stdio:t.jsx(Xe,{className:r})},e[0]=r,e[1]=n):n=e[1],n[s]}function Lt(o){const e=E.c(10),{options:s,selected:r,onSelect:n}=o;if(s.length<=1)return null;let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx("span",{className:"text-sm text-muted-foreground",children:"Protocol:"}),e[0]=i):i=e[0];let c;if(e[1]!==n||e[2]!==s||e[3]!==r){let d;e[5]!==n||e[6]!==r?(d=m=>t.jsxs(X,{variant:r===m.value?"default":"outline",size:"sm",onClick:()=>n(m.value),className:"cursor-pointer",children:[t.jsx(kt,{protocol:m.value==="all"?"http":m.value,className:"w-4 h-4 mr-1"}),m.label]},m.value),e[5]=n,e[6]=r,e[7]=d):d=e[7],c=s.map(d),e[1]=n,e[2]=s,e[3]=r,e[4]=c}else c=e[4];let u;return e[8]!==c?(u=t.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[i,t.jsx("div",{className:"flex gap-1",children:c})]}),e[8]=c,e[9]=u):u=e[9],u}function Pt(o){const e=E.c(11),{servers:s,onInstall:r,isInstalling:n,icon:i,mcpName:c,showStdio:u}=o,d=n===void 0?!1:n,m=u===void 0?!1:u,I=m?s:s.filter(Et),p=Tt(I),C=p.length<13?"all":"http",[j,y]=F.useState(C);let f;e:{if(j==="all"){f="all";break e}let a;if(e[0]!==j?(a=V=>V.protocol===j,e[0]=j,e[1]=a):a=e[1],p.some(a)){f=j;break e}if(p.length<13){f="all";break e}f=p[0]?.protocol??"http"}const N=f,h=N==="all"?p:p.filter(a=>a.protocol===N),x=new Set(p.map(Dt));let g=Nt.filter(a=>a.value==="all"||x.has(a.value));m||(g=g.filter(Vt));const _=x.size<=1?g.filter(Mt):g,w="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4";let S;e[2]!==i||e[3]!==d||e[4]!==c||e[5]!==r?(S=a=>t.jsx(Ke,{variant:"server",icon:i??null,displayName:a.displayName,description:a.description??null,hostname:a.hostname,protocol:a.protocol,isInstalling:d,onClick:()=>r({type:a.protocol,url:a.url,name:a.name,title:a.title,description:a.description,_type:a._type,_index:a._index})},`${a.hostname}-${a.protocol}-${a.index}`),e[2]=i,e[3]=d,e[4]=c,e[5]=r,e[6]=S):S=e[6];const v=h.map(S);let b;e[7]!==v?(b=t.jsx("div",{className:w,children:v}),e[7]=v,e[8]=b):b=e[8];let P;return e[9]!==h.length?(P=h.length===0&&t.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"No servers match the selected filter."}),e[9]=h.length,e[10]=P):P=e[10],t.jsxs("div",{className:"p-5",children:[t.jsx(Lt,{options:_,selected:N,onSelect:y}),b,P]})}function Mt(o){return o.value!=="all"}function Vt(o){return o.value!=="stdio"}function Dt(o){return o.protocol}function Et(o){return o.type?.toLowerCase()!=="stdio"}function Rt(o){const e=E.c(29),{data:s,availableTabs:r,effectiveActiveTabId:n,effectiveTools:i,isLoadingTools:c,onTabChange:u,servers:d,onInstallServer:m,isInstalling:I,mcpIcon:p,mcpName:C,showStdio:j}=o,y=c===void 0?!1:c;let f;e[0]!==d?(f=d===void 0?[]:d,e[0]=d,e[1]=f):f=e[1];const N=f,h=I===void 0?!1:I,x=j===void 0?!1:j;let g;e[2]!==i?(g=i.map($t),e[2]=i,e[3]=g):g=e[3];const _=g;let w;e[4]!==r||e[5]!==n||e[6]!==u?(w=r.length>0&&t.jsx("div",{className:"px-4 py-2 border-b border-border bg-background",children:t.jsx(Fe,{tabs:r,activeTab:n,onTabChange:u})}),e[4]=r,e[5]=n,e[6]=u,e[7]=w):w=e[7];let S;e[8]!==n||e[9]!==h||e[10]!==p||e[11]!==C||e[12]!==m||e[13]!==N||e[14]!==x?(S=n==="servers"&&N.length>0&&t.jsx("div",{className:"flex-1 overflow-y-auto bg-background",children:t.jsx(Pt,{servers:N,onInstall:a=>m?.(a),isInstalling:h,icon:p,mcpName:C,showStdio:x})}),e[8]=n,e[9]=h,e[10]=p,e[11]=C,e[12]=m,e[13]=N,e[14]=x,e[15]=S):S=e[15];let v;e[16]!==n||e[17]!==i.length||e[18]!==y||e[19]!==_?(v=n==="tools"&&t.jsx("div",{className:"flex flex-col flex-1",children:y?t.jsxs("div",{className:"flex items-center justify-center p-8",children:[t.jsx(he,{size:24,className:"animate-spin"}),t.jsx("span",{className:"ml-2 text-sm text-muted-foreground",children:"Loading tools..."})]}):i.length>0?t.jsx(ze,{tools:_,showToolbar:!1,emptyMessage:"This MCP Server doesn't have any tools."}):t.jsx(Ve,{image:null,title:"No tools available",description:"This MCP Server doesn't have any tools."})}),e[16]=n,e[17]=i.length,e[18]=y,e[19]=_,e[20]=v):v=e[20];let b;e[21]!==s?.repository||e[22]!==n?(b=n==="readme"&&t.jsx("div",{className:"flex-1 overflow-y-auto bg-background",children:t.jsx(Oe,{repository:s?.repository})}),e[21]=s?.repository,e[22]=n,e[23]=b):b=e[23];let P;return e[24]!==b||e[25]!==w||e[26]!==S||e[27]!==v?(P=t.jsxs("div",{className:"lg:col-span-2 flex flex-col border-l border-border",children:[w,S,v,b]}),e[24]=b,e[25]=w,e[26]=S,e[27]=v,e[28]=P):P=e[28],P}function $t(o){const e=o;return{name:e.name||"",description:e.description||void 0}}function At(o,e){if(!o||!e)return;const s=e.toLowerCase();return o.find(r=>r.app_name?.toLowerCase()===s||r.app_id?.toLowerCase()===s||r.title.toLowerCase()===s)||o.find(r=>r.title.toLowerCase().includes(s))}function Ut(o,e,s,r,n){if(!e||e==="Unknown")return{count:0};if(e==="io.modelcontextprotocol.registry/official")return{logo:r?.icon||void 0,count:n??o.length};const i=e.toLowerCase(),c=o.filter(d=>(d._meta?.["io.modelcontextprotocol.registry/official"]?"io.modelcontextprotocol.registry/official":d.publisher||d._meta?.["mcp.mesh"]?.scopeName||"Unknown").toLowerCase()===i);return{logo:s?.icon||c[0]?.publisher_logo||c[0]?.icon||void 0,count:c.length}}function Bt(o){const e=o._meta?.["mcp.mesh"],s=o._meta?.["io.modelcontextprotocol.registry/official"],r=o.server,n=We(r.remotes?.[0]?.type),i=qe(r.$schema),c=s?"io.modelcontextprotocol.registry/official":o.publisher||e?.scopeName||"Unknown",u=ct(r.repository),d=o.icon||o.image||o.logo||r.icons?.[0]?.src||u||null,m=o.name||o.title||o.server?.title||"Unnamed Item",I=Ye(m),p=e?.friendly_name||I,C=e?.mesh_description||o.description||o.summary||r?.description||"",j=e?.short_description||null,y=e?.tags||[],f=e?.categories||[];return{name:p,description:C,shortDescription:j,icon:d,verified:o.verified||e?.verified,publisher:c,version:r.version||null,websiteUrl:r.websiteUrl||null,repository:r.repository||null,schemaVersion:i??null,connectionType:n,connectionUrl:null,remoteUrl:null,tags:y,categories:f,tools:o.tools||r.tools||e?.tools||[],models:o.models||r.models||e?.models||[],emails:o.emails||r.emails||e?.emails||[],analytics:o.analytics||r.analytics||e?.analytics,cdn:o.cdn||r.cdn||e?.cdn}}class zt extends F.Component{state={hasError:!1,error:null};static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,s){console.error("Store MCP server detail error:",e,s)}render(){return this.state.hasError?t.jsx(ft,{error:this.state.error||new Error("Unknown error"),onBack:this.props.onBack}):this.props.children}}function Ot(){const{org:o}=ve(),e=xe(),{appName:s}=Ie({strict:!1}),{registryId:r,serverName:n,stdio:i}=_e({strict:!1}),[c,u]=nt(it.storeShowStdio(),()=>!1),d=i==="true"?!0:i==="false"?!1:c;i!==void 0&&i==="true"!==c&&u(i==="true");const[m,I]=F.useState(null),[p,C]=F.useState(null),j=tt(),y=st(),{data:f}=Te.useSession(),N=Ze(y),h=r||N[0]?.id||"",x=ot(h),g=He(x?.tools),_=x?.tools&&x.tools.find(L=>L.name.endsWith("_VERSIONS"))?.name||"",w=x?.tools&&x.tools.find(L=>L.name.endsWith("_GET"))?.name||"",S=!!n;let v="",b={};S?(v=_||w,b={name:n}):(v=g,b={});const P=rt({connectionId:h||null,orgSlug:o.slug}),{data:a}=et({client:P,toolName:v,toolArguments:b,select:l=>l.structuredContent??l});let M=[],V=[],G=null;if(a){if(Array.isArray(a))M=a;else if(typeof a=="object"&&a!==null)if("totalCount"in a&&typeof a.totalCount=="number"&&(G=a.totalCount),"item"in a&&a.item){const l=a.item;M=[{id:l.id||"",title:l.title,server:l.server,_meta:l._meta}]}else{let l;"versions"in a&&Array.isArray(a.versions)?l="versions":"servers"in a&&Array.isArray(a.servers)?l="servers":l=Object.keys(a).find(L=>Array.isArray(a[L])),l&&(M=a[l],(l==="versions"||v?.includes("VERSIONS"))&&(V=M))}}const K=(()=>{const l=V.findIndex(L=>L._meta?.["io.modelcontextprotocol.registry/official"]?.isLatest===!0);return l>=0?l:0})(),$=p??K;let k=M.find(l=>{const L=l.name||l.title||l.server.title||"";return lt(L)===s});!k&&n&&(k=M.find(l=>l.server.name===n||l.name===n||l.title===n));const T=k?Bt(k):null,A=(T?.tools?.length||0)>0,D=k?.server?.remotes?.[0]?.url||null,B=!A&&!!D,z=Je({queryKey:ke.remoteMcpTools(D),queryFn:async()=>{if(!D)return[];const{Client:l}=await de(async()=>{const{Client:R}=await import("./index-CIFm-sGN.js").then(q=>q.c6);return{Client:R}},__vite__mapDeps([0,1])),{StreamableHTTPClientTransport:L}=await de(async()=>{const{StreamableHTTPClientTransport:R}=await import("./index-Duxcl3NA.js");return{StreamableHTTPClientTransport:R}},__vite__mapDeps([2,3,0,1,4,5,6,7,8])),W=new l({name:"mesh-store",version:"1.0.0"}),te=new L(new URL(D),{requestInit:{headers:{Accept:"application/json, text/event-stream","Content-Type":"application/json"}}});try{return await W.connect(te),((await W.listTools()).tools||[]).map(q=>({name:q.name,description:q.description}))}finally{await W.close().catch(console.error)}},enabled:B}),O=B&&z.isLoading,H=z.data??[],U=A?T?.tools||[]:H,Z=At(y,T?.publisher),J=T?Ut(M,T.publisher,Z,x??null,G):{count:0},se=T?.repository?at(T.repository):null,ne=k?.server?.remotes??[],ee=k?.server?.packages??[],oe=[...ne.map((l,L)=>({...l,_type:"remote",_index:L})),...ee.map((l,L)=>({type:"stdio",url:void 0,name:l.name||l.identifier,title:l.name||l.identifier?.replace(/^@[^/]+\//,""),description:l.environmentVariables?.length?`Requires ${l.environmentVariables.length} environment variable(s)`:void 0,_type:"package",_index:L}))],ie=d?oe:oe.filter(l=>l.type?.toLowerCase()!=="stdio"),le=ie.length>1,Q=[{id:"servers",label:"Servers",count:ie.length,visible:le},{id:"readme",label:"README",visible:!!T?.repository&&!!se},{id:"tools",label:"Tools",count:U.length,visible:A||H.length>0||O&&!!D}].filter(l=>l.visible),je=Q.find(l=>l.id==="servers")?.id||Q.find(l=>l.id==="readme")?.id||Q[0]?.id||"overview",ye=m&&Q.find(l=>l.id===m)?m:je,re=async(l,L,W)=>{const te=V[l??0]||k;if(!te||!o||!f?.user?.id)return;const R=Ee(te,o.id,f.user.id,{remoteIndex:W===void 0?L??0:void 0,packageIndex:W}),q=R.connection_type==="STDIO",Ce=!!R.connection_url,we=q&&R.connection_headers&&typeof R.connection_headers=="object"&&"command"in R.connection_headers;if(!Ce&&!we){me.error("This MCP Server cannot be connected: no connection method available");return}try{const{id:Y}=await j.create.mutateAsync(R);e({to:"/$org/mcps/$connectionId",params:{org:o.slug,connectionId:Y}})}catch(Y){me.error(`Failed to connect MCP Server: ${Y instanceof Error?Y.message:String(Y)}`)}},ae=()=>{e({to:"/$org/store",params:{org:o.slug}})};if(!k)return t.jsx(ut,{onBack:ae});if(!T)return null;const Ne=(k?.server?.remotes?.length??0)>0,Se=(k?.server?.packages?.length??0)>0,ce=Ne||Se;return t.jsxs("div",{className:"flex flex-col h-full border-l border-border",children:[t.jsx(pt,{onBack:ae}),t.jsx("div",{className:"flex-1 overflow-y-auto h-full",children:t.jsx("div",{className:"h-full",children:t.jsxs("div",{className:"h-full",children:[!ce&&t.jsxs("div",{className:"mb-6 p-4 bg-amber-50 border border-amber-200 rounded-lg text-sm text-amber-900",children:[t.jsx(dt,{size:16,className:"inline mr-2"}),"This MCP Server cannot be connected - no connection method available."]}),t.jsx(xt,{data:T,itemVersions:V.length>0?V:[k],onInstall:re,canInstall:ce,isInstalling:j.create.isPending,hideInstallControls:le,selectedVersionIndex:$,onVersionChange:C}),t.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 min-h-[677px]",children:[t.jsx(bt,{data:T,publisherInfo:J,selectedItem:k}),t.jsx(Rt,{data:T,availableTabs:Q,effectiveActiveTabId:ye,effectiveTools:U,isLoadingTools:O,onTabChange:I,servers:oe,onInstallServer:l=>{l._type==="remote"?re($,l._index,void 0):re($,void 0,l._index)},isInstalling:j.create.isPending,mcpIcon:T.icon,mcpName:T.name,showStdio:d})]})]})})})]})}function Es(){const o=E.c(6),{org:e}=ve(),s=xe();let r;o[0]!==s||o[1]!==e.slug?(r=()=>{s({to:"/$org/store",params:{org:e.slug}})},o[0]=s,o[1]=e.slug,o[2]=r):r=o[2];const n=r;let i;o[3]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(F.Suspense,{fallback:t.jsx(mt,{}),children:t.jsx(Ot,{})}),o[3]=i):i=o[3];let c;return o[4]!==n?(c=t.jsx(zt,{onBack:n,children:i}),o[4]=n,o[5]=c):c=o[5],c}export{Es as default};
@@ -1,3 +0,0 @@
1
- import{r as V,d as J,K as le,o as fs,h as Xe,s as ue,a3 as Ms,a2 as Ds,E as qe,b as Ts,a as zs,a0 as W,j as t,c as de,i as ks}from"./index-CIFm-sGN.js";import{C as Us}from"./collection-header-BnWN13FR.js";import{C as es}from"./collection-page-s1UUHlAC.js";import{C as Ze}from"./collection-search-BU0Vve4s.js";import{C as Bs}from"./collection-table-wrapper-MIdyABzU.js";import{T as Vs}from"./tool-set-selector-Bj33eliv.js";import{u as ls}from"./use-members-C_b95cND.js";import{W as Gs}from"./well-known-mcp-dYmT0gkj.js";import{u as je}from"./connection-DV2eiD9h.js";import{u as Is}from"./useQuery-CzrEYnZ3.js";import{u as fe}from"./useMutation-m-ezYbi2.js";import{a as $s}from"./use-connection-BL1ENN_E.js";import{A as Ce}from"./avatar-BfmbbQa9.js";import{B as ve}from"./badge-DW50XYYF.js";import{c as re,B as ee}from"./button-Beqnoxm0.js";import{C as Fs}from"./checkbox-Cyud7zwz.js";import{f as Ee,a as Te,b as Ie,c as Se,d as ye,e as Oe,A as Ae,g as we}from"./alert-dialog-B9jUbRRh.js";import{D as Ss,f as ys,a as Os,b as Ks,c as Qs,e as qs}from"./dialog-D672oALG.js";import{D as as,a as cs,b as ds,c as Ke,d as Zs,e as Hs,f as Ys,g as Xs}from"./dropdown-menu-d7fbr7vi.js";import{i as Ws}from"./DotsHorizontal-CVtiGZBj.js";import{i as As}from"./Loading01-TpnVkESj.js";import{i as Js}from"./Lock01-BvYRv_e9.js";import{s as ss}from"./Plus-D7wVbyFS.js";import{s as ws}from"./Trash01-BNvRuSw5.js";import{i as hs}from"./X-yqY3sUct.js";import{I as et}from"./input-kAGdmk1h.js";import{S as Ve}from"./switch-BdC2TscQ.js";import{b as Re,c as _e,T as Le,a as Pe}from"./tooltip-DZC_EJPT.js";import{E as We}from"./empty-state-FUCXAPL2.js";import{E as st}from"./error-boundary-BXmt5EvA.js";import{a as tt,F as gs,b as ps,c as nt,d as xs,f as bs}from"./form-C3kUUpe6.js";import{S as ts,a as ns,b as rs,c as is,d as os}from"./select-llLhrgqK.js";import{T as rt}from"./textarea-DUbP0lMP.js";import{u as it}from"./use-mcp-client-DsCs4GfL.js";import{C as Cs}from"./card-DRuCUQlZ.js";import{i as Rs}from"./DotsVertical-X3Pjbky8.js";import{i as ot}from"./Key01-BZwVkIoH.js";import{s as lt}from"./XClose-ByKN3Bx1.js";import"./collection-display-button-D-JUz0di.js";import"./ArrowUp-DRwS6HmW.js";import"./Check-Dqe1zXYM.js";import"./Grid01-WwMA_KZc.js";import"./List-1iUBd4tC.js";import"./view-mode-toggle-BnlYtR_z.js";import"./SearchMd-CWEk-KlL.js";import"./ArrowLeft-B_Zx8Hxr.js";import"./use-collections-B221Uyxu.js";import"./ChevronDown-DgLnZGM3.js";const ms=({size:s=24,color:e="currentColor",...n})=>V.createElement("svg",{viewBox:"0 0 24 24",width:s,height:s,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...n},V.createElement("path",{d:"M11.302 21.615c.221.129.332.194.488.227.122.026.298.026.42 0 .156-.034.267-.098.488-.227C14.646 20.478 20 16.908 20 12V7.217c0-.799 0-1.199-.13-1.542a2 2 0 0 0-.548-.79c-.275-.243-.65-.383-1.398-.664l-5.362-2.01c-.208-.078-.312-.117-.419-.133a1 1 0 0 0-.286 0c-.107.016-.21.055-.419.133L6.076 4.22c-.748.28-1.122.421-1.398.664a2 2 0 0 0-.547.79C4 6.018 4 6.418 4 7.217V12c0 4.908 5.354 8.478 7.302 9.615Z"}));ms.displayName="Shield01";const _s=({size:s=24,color:e="currentColor",...n})=>V.createElement("svg",{viewBox:"0 0 24 24",width:s,height:s,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...n},V.createElement("path",{d:"M20 17H4m0 0 4-4m-4 4 4 4M4 7h16m0 0-4-4m4 4-4 4"}));_s.displayName="SwitchHorizontal01";const Ls=[{name:"ORGANIZATION_CREATE",description:"Create a new organization",category:"Organizations"},{name:"ORGANIZATION_LIST",description:"List organizations",category:"Organizations"},{name:"ORGANIZATION_GET",description:"View organization details",category:"Organizations"},{name:"ORGANIZATION_UPDATE",description:"Update organization",category:"Organizations"},{name:"ORGANIZATION_DELETE",description:"Delete organization",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_SETTINGS_GET",description:"View organization settings",category:"Organizations"},{name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization settings",category:"Organizations"},{name:"ORGANIZATION_MEMBER_ADD",description:"Add members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove members",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_MEMBER_LIST",description:"List members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update member roles",category:"Organizations"},{name:"COLLECTION_CONNECTIONS_CREATE",description:"Create connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_LIST",description:"List connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_GET",description:"View connection details",category:"Connections"},{name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete connections",category:"Connections",dangerous:!0},{name:"CONNECTION_TEST",description:"Test connections",category:"Connections"},{name:"DATABASES_RUN_SQL",description:"Run SQL queries",category:"Connections",dangerous:!0},{name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_GET",description:"View virtual MCP details",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete virtual MCPs",category:"Virtual MCPs",dangerous:!0},{name:"MONITORING_LOGS_LIST",description:"List monitoring logs",category:"Monitoring"},{name:"MONITORING_STATS",description:"View monitoring statistics",category:"Monitoring"},{name:"API_KEY_CREATE",description:"Create API key",category:"API Keys"},{name:"API_KEY_LIST",description:"List API keys",category:"API Keys"},{name:"API_KEY_UPDATE",description:"Update API key",category:"API Keys"},{name:"API_KEY_DELETE",description:"Delete API key",category:"API Keys",dangerous:!0},{name:"EVENT_PUBLISH",description:"Publish events",category:"Event Bus"},{name:"EVENT_SUBSCRIBE",description:"Subscribe to events",category:"Event Bus"},{name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events",category:"Event Bus"},{name:"EVENT_CANCEL",description:"Cancel recurring events",category:"Event Bus"},{name:"EVENT_ACK",description:"Acknowledge event delivery",category:"Event Bus"},{name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions",category:"Event Bus"},{name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state",category:"Event Bus"},{name:"USER_GET",description:"Get a user by id",category:"Users"},{name:"CODE_EXECUTION_SEARCH_TOOLS",description:"Search available tools by name or description",category:"Code Execution"},{name:"CODE_EXECUTION_DESCRIBE_TOOLS",description:"Get detailed schemas for specific tools",category:"Code Execution"},{name:"CODE_EXECUTION_RUN_CODE",description:"Run JavaScript code in a sandbox with tool access",category:"Code Execution",dangerous:!0},{name:"COLLECTION_THREADS_CREATE",description:"Create threads",category:"Threads"},{name:"COLLECTION_THREADS_LIST",description:"List threads",category:"Threads"},{name:"COLLECTION_THREADS_GET",description:"View thread details",category:"Threads"},{name:"COLLECTION_THREADS_UPDATE",description:"Update threads",category:"Threads"},{name:"COLLECTION_THREADS_DELETE",description:"Delete threads",category:"Threads",dangerous:!0},{name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List thread messages",category:"Threads"}],at={ORGANIZATION_CREATE:"Create organization",ORGANIZATION_LIST:"List organizations",ORGANIZATION_GET:"View organization details",ORGANIZATION_UPDATE:"Update organization",ORGANIZATION_DELETE:"Delete organization",ORGANIZATION_SETTINGS_GET:"View organization settings",ORGANIZATION_SETTINGS_UPDATE:"Update organization settings",ORGANIZATION_MEMBER_LIST:"List members",ORGANIZATION_MEMBER_ADD:"Add members",ORGANIZATION_MEMBER_REMOVE:"Remove members",ORGANIZATION_MEMBER_UPDATE_ROLE:"Update member roles",COLLECTION_CONNECTIONS_LIST:"List connections",COLLECTION_CONNECTIONS_GET:"View connection details",COLLECTION_CONNECTIONS_CREATE:"Create connections",COLLECTION_CONNECTIONS_UPDATE:"Update connections",COLLECTION_CONNECTIONS_DELETE:"Delete connections",CONNECTION_TEST:"Test connections",DATABASES_RUN_SQL:"Run SQL queries",COLLECTION_VIRTUAL_MCP_CREATE:"Create virtual MCPs",COLLECTION_VIRTUAL_MCP_LIST:"List virtual MCPs",COLLECTION_VIRTUAL_MCP_GET:"View virtual MCP details",COLLECTION_VIRTUAL_MCP_UPDATE:"Update virtual MCPs",COLLECTION_VIRTUAL_MCP_DELETE:"Delete virtual MCPs",MONITORING_LOGS_LIST:"List monitoring logs",MONITORING_STATS:"View monitoring statistics",API_KEY_CREATE:"Create API key",API_KEY_LIST:"List API keys",API_KEY_UPDATE:"Update API key",API_KEY_DELETE:"Delete API key",EVENT_PUBLISH:"Publish events",EVENT_SUBSCRIBE:"Subscribe to events",EVENT_UNSUBSCRIBE:"Unsubscribe from events",EVENT_CANCEL:"Cancel recurring events",EVENT_ACK:"Acknowledge event delivery",EVENT_SUBSCRIPTION_LIST:"List event subscriptions",EVENT_SYNC_SUBSCRIPTIONS:"Sync subscriptions to desired state",USER_GET:"Get user by id",CODE_EXECUTION_SEARCH_TOOLS:"Search tools",CODE_EXECUTION_DESCRIBE_TOOLS:"Describe tools",CODE_EXECUTION_RUN_CODE:"Run code",COLLECTION_THREADS_CREATE:"Create threads",COLLECTION_THREADS_LIST:"List threads",COLLECTION_THREADS_GET:"View thread details",COLLECTION_THREADS_UPDATE:"Update threads",COLLECTION_THREADS_DELETE:"Delete threads",COLLECTION_THREAD_MESSAGES_LIST:"List thread messages"};function ct(){const s={Organizations:[],Connections:[],"Virtual MCPs":[],Threads:[],Monitoring:[],Users:[],"API Keys":[],"Event Bus":[],"Code Execution":[]};for(const e of Ls)s[e.category]?.push(e);return s}function dt(){return Ls.map(s=>({value:s.name,label:at[s.name],dangerous:s.dangerous}))}const js=[{value:"owner",label:"Owner",isBuiltin:!0},{value:"admin",label:"Admin",isBuiltin:!0},{value:"user",label:"User",isBuiltin:!0}];function mt(s){return s.replace(/-/g," ")}function ut(s){if(!s)return{staticPermissions:[],allowsAllStaticPermissions:!1,connectionIds:[],allowsAllConnections:!1,toolNames:[],allowsAllTools:!1};const e=[];let n=!1;const o=[];let a=!1;const i=new Set;let f=!1;for(const[l,g]of Object.entries(s)){if(l===Gs.SELF){g.includes("*")?n=!0:e.push(...g);continue}if(l==="*"){if(a=!0,g.includes("*"))f=!0;else for(const E of g)i.add(E);continue}if(o.push(l),g.includes("*"))f=!0;else for(const E of g)i.add(E)}return{staticPermissions:e,allowsAllStaticPermissions:n,connectionIds:o,allowsAllConnections:a,toolNames:Array.from(i),allowsAllTools:f}}function us(){const{locator:s}=je(),{data:e,isLoading:n,error:o,refetch:a}=Is({queryKey:le.organizationRoles(s),queryFn:async()=>{try{const l=await J.organization.listRoles();return l?.error?(console.error("[useOrganizationRoles] API error:",l.error),[]):l?.data??[]}catch(l){return console.error("[useOrganizationRoles] Fetch error:",l),[]}},staleTime:3e4}),i=js.map(l=>({role:l.value,label:l.label,isBuiltin:l.isBuiltin}));if(e&&Array.isArray(e))for(const l of e){const g=l.role;if(!g||js.some(C=>C.value===g))continue;const{staticPermissions:E,allowsAllStaticPermissions:h,connectionIds:O,allowsAllConnections:d,toolNames:I,allowsAllTools:u}=ut(l.permission);i.push({id:l.id,role:g,label:mt(g),isBuiltin:!1,permission:l.permission??void 0,staticPermissionCount:h?-1:E.length,allowsAllStaticPermissions:h,connectionCount:d?-1:O.length,allowsAllConnections:d,toolCount:u?-1:I.length,allowsAllTools:u})}const f=i.filter(l=>!l.isBuiltin);return{roles:i,customRoles:f,builtinRoles:i.filter(l=>l.isBuiltin),isLoading:n,error:o,refetch:a}}const ft=fs({role:fs({id:ue().optional(),slug:ue().optional(),label:ue()}),allowAllStaticPermissions:Ds(),staticPermissions:Xe(ue()),toolSet:Ms(ue(),Xe(ue())),memberIds:Xe(ue())});function Ps(s){return s?s.split(" ").map(e=>e[0]).join("").toUpperCase().slice(0,2):"?"}const ht=[{role:"owner",label:"Owner",color:"bg-red-500"},{role:"admin",label:"Admin",color:"bg-blue-500"},{role:"user",label:"User",color:"bg-green-500"}],Je=["bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500"];function gt(s){if(!s)return"bg-neutral-400";let e=0;for(let o=0;o<s.length;o++){const a=s.charCodeAt(o);e=(e<<5)-e+a,e=e&e}const n=Math.abs(e)%Je.length;return Je[n]??Je[0]}function Ge(){return{role:{id:void 0,slug:void 0,label:""},allowAllStaticPermissions:!1,staticPermissions:[],toolSet:{},memberIds:[]}}function pt(s){const e=de.c(39),{allowAllStaticPermissions:n,staticPermissions:o,onAllowAllChange:a,onPermissionsChange:i,readOnly:f}=s,l=f===void 0?!1:f,[g,E]=V.useState(""),h=V.useDeferredValue(g);let O,d,I,u,C;if(e[0]!==n||e[1]!==h||e[2]!==a||e[3]!==i||e[4]!==l||e[5]!==g||e[6]!==o){const p=ct(),c=dt(),N=c.filter(T=>T.label.toLowerCase().includes(h.toLowerCase())),S=T=>{if(o.includes(T))i(o.filter(_=>_!==T));else{const _=[...o,T];_.length===c.length?(a(!0),i([])):i(_)}};I="flex flex-col h-full",e[12]!==g?(u=t.jsx("div",{className:"border-b border-border",children:t.jsx(Ze,{value:g,onChange:E,placeholder:"Search permissions...",className:"border-b-0"})}),e[12]=g,e[13]=u):u=e[13];const L=!l&&"hover:bg-muted/50 cursor-pointer";let y;e[14]!==L?(y=re("flex items-center justify-between px-4 py-3 rounded-lg",L),e[14]=L,e[15]=y):y=e[15];let w;e[16]!==n||e[17]!==a||e[18]!==i||e[19]!==l?(w=()=>{if(l)return;a(!n),i([])},e[16]=n,e[17]=a,e[18]=i,e[19]=l,e[20]=w):w=e[20];let A;e[21]===Symbol.for("react.memo_cache_sentinel")?(A=t.jsx("span",{className:"text-sm font-medium",children:"All organization permissions"}),e[21]=A):A=e[21];let P;e[22]!==n||e[23]!==a||e[24]!==i||e[25]!==l?(P=t.jsx("div",{onClick:Nt,children:l?t.jsx(Re,{children:t.jsxs(_e,{children:[t.jsx(Le,{asChild:!0,children:t.jsx("div",{children:t.jsx(Ve,{checked:n,disabled:l,onCheckedChange:T=>{l||(a(T),i([]))}})})}),t.jsx(Pe,{children:t.jsx("p",{children:"Built-in role permissions cannot be changed"})})]})}):t.jsx(Ve,{checked:n,disabled:l,onCheckedChange:T=>{l||(a(T),i([]))}})}),e[22]=n,e[23]=a,e[24]=i,e[25]=l,e[26]=P):P=e[26],e[27]!==P||e[28]!==y||e[29]!==w?(C=t.jsx("div",{className:"border-b border-border",children:t.jsxs("div",{className:y,onClick:w,children:[A,P]})}),e[27]=P,e[28]=y,e[29]=w,e[30]=C):C=e[30],O="flex-1 overflow-auto",d=Object.entries(p).map(T=>{const[_,D]=T,v=N.filter(m=>D.some(M=>M.name===m.value));return v.length===0?null:t.jsxs("div",{className:"mb-6 last:mb-0",children:[t.jsx("h4",{className:"text-sm font-medium p-3 pb-1.5 text-muted-foreground/75",children:_}),t.jsx("div",{className:"space-y-1",children:v.map(m=>t.jsxs("div",{className:re("flex items-center justify-between gap-3 px-4 py-3",!l&&"hover:bg-muted/50 cursor-pointer"),onClick:()=>{if(!l)if(n){a(!1);const M=c.map(jt);i(M.filter(G=>G!==m.value))}else S(m.value)},children:[t.jsx("div",{className:"flex-1 min-w-0",children:t.jsx("span",{className:"text-sm",children:m.label})}),t.jsx("div",{onClick:Ct,children:l?t.jsx(Re,{children:t.jsxs(_e,{children:[t.jsx(Le,{asChild:!0,children:t.jsx("div",{children:t.jsx(Ve,{checked:n||o.includes(m.value),disabled:l,onCheckedChange:()=>{if(!l)if(n){a(!1);const M=c.map(bt);i(M.filter(G=>G!==m.value))}else S(m.value)}})})}),t.jsx(Pe,{children:t.jsx("p",{children:"Built-in role permissions cannot be changed"})})]})}):t.jsx(Ve,{checked:n||o.includes(m.value),disabled:l,onCheckedChange:()=>{if(!l)if(n){a(!1);const M=c.map(xt);i(M.filter(G=>G!==m.value))}else S(m.value)}})})]},m.value))})]},_)}),e[0]=n,e[1]=h,e[2]=a,e[3]=i,e[4]=l,e[5]=g,e[6]=o,e[7]=O,e[8]=d,e[9]=I,e[10]=u,e[11]=C}else O=e[7],d=e[8],I=e[9],u=e[10],C=e[11];let x;e[31]!==O||e[32]!==d?(x=t.jsx("div",{className:O,children:d}),e[31]=O,e[32]=d,e[33]=x):x=e[33];let j;return e[34]!==I||e[35]!==u||e[36]!==C||e[37]!==x?(j=t.jsxs("div",{className:I,children:[u,C,x]}),e[34]=I,e[35]=u,e[36]=C,e[37]=x,e[38]=j):j=e[38],j}function xt(s){return s.value}function bt(s){return s.value}function Ct(s){return s.stopPropagation()}function jt(s){return s.value}function Nt(s){return s.stopPropagation()}function vt(s){const e=de.c(56),{open:n,onOpenChange:o,selectedMemberIds:a,onAddMembers:i}=s,[f,l]=V.useState(""),g=V.useDeferredValue(f);let E;e[0]===Symbol.for("react.memo_cache_sentinel")?(E=[],e[0]=E):E=e[0];const[h,O]=V.useState(E),{data:d}=ls();let I,u,C,x,j,p,c,N,S,L,y;if(e[1]!==d?.data?.members||e[2]!==g||e[3]!==i||e[4]!==o||e[5]!==n||e[6]!==h||e[7]!==f||e[8]!==a){const M=d?.data?.members??[];let G;e[20]!==g?(G=k=>{const r=g.toLowerCase();return k.user?.name?.toLowerCase().includes(r)||k.user?.email?.toLowerCase().includes(r)},e[20]=g,e[21]=G):G=e[21];const se=M.filter(G),F=Et;let K;e[22]!==a?(K=k=>a.includes(k),e[22]=a,e[23]=K):K=e[23];const Q=K;let H;e[24]!==h?(H=k=>{h.includes(k)?O(h.filter(r=>r!==k)):O([...h,k])},e[24]=h,e[25]=H):H=e[25];const ne=H;let te;e[26]!==i||e[27]!==o||e[28]!==h?(te=()=>{i(h),O([]),o(!1)},e[26]=i,e[27]=o,e[28]=h,e[29]=te):te=e[29],C=te,u=Ee,L=n,y=o,I=Te,N="sm:max-w-md p-0 overflow-hidden",e[30]===Symbol.for("react.memo_cache_sentinel")?(S=t.jsxs(Ie,{className:"px-6 pt-6",children:[t.jsx(Se,{children:"Add Members to Role"}),t.jsx(ye,{children:"Select members to add to this role."})]}),e[30]=S):S=e[30],p="flex flex-col h-80",e[31]!==f?(c=t.jsx(Ze,{value:f,onChange:l,placeholder:"Search members...",className:"border-b border-t-0 border-x-0 rounded-none"}),e[31]=f,e[32]=c):c=e[32],x="flex-1 overflow-auto",j=se.length===0?t.jsx("div",{className:"flex items-center justify-center h-full px-6",children:t.jsx("p",{className:"text-sm text-muted-foreground",children:f?"No members found":"No members available"})}):t.jsx("div",{className:"px-6 py-2 space-y-1",children:se.map(k=>{const r=F(k),b=Q(k.id),$=h.includes(k.id);return t.jsxs("label",{className:re("flex items-center gap-3 p-2 rounded-lg",!r||b?"opacity-50 cursor-not-allowed":"cursor-pointer hover:bg-muted/50"),children:[t.jsx(Fs,{checked:$||b,onCheckedChange:()=>{r&&!b&&ne(k.id)},disabled:!r||b}),t.jsx(Ce,{url:k.user?.image??void 0,fallback:Ps(k.user?.name),shape:"circle",size:"sm"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"text-sm font-medium truncate",children:k.user?.name||"Unknown"}),t.jsx("p",{className:"text-xs text-muted-foreground truncate",children:k.user?.email})]}),!r&&t.jsx(ve,{variant:"secondary",className:"shrink-0",children:"Owner"}),b&&r&&t.jsx(ve,{variant:"outline",className:"shrink-0",children:"Added"})]},k.id)})}),e[1]=d?.data?.members,e[2]=g,e[3]=i,e[4]=o,e[5]=n,e[6]=h,e[7]=f,e[8]=a,e[9]=I,e[10]=u,e[11]=C,e[12]=x,e[13]=j,e[14]=p,e[15]=c,e[16]=N,e[17]=S,e[18]=L,e[19]=y}else I=e[9],u=e[10],C=e[11],x=e[12],j=e[13],p=e[14],c=e[15],N=e[16],S=e[17],L=e[18],y=e[19];let w;e[33]!==x||e[34]!==j?(w=t.jsx("div",{className:x,children:j}),e[33]=x,e[34]=j,e[35]=w):w=e[35];let A;e[36]!==w||e[37]!==p||e[38]!==c?(A=t.jsxs("div",{className:p,children:[c,w]}),e[36]=w,e[37]=p,e[38]=c,e[39]=A):A=e[39];let P;e[40]===Symbol.for("react.memo_cache_sentinel")?(P=t.jsx(Ae,{children:"Cancel"}),e[40]=P):P=e[40];const T=h.length===0,_=h.length>0&&`(${h.length})`;let D;e[41]!==C||e[42]!==T||e[43]!==_?(D=t.jsxs(Oe,{className:"px-6 pb-6",children:[P,t.jsxs(we,{onClick:C,disabled:T,children:["Add ",_]})]}),e[41]=C,e[42]=T,e[43]=_,e[44]=D):D=e[44];let v;e[45]!==I||e[46]!==A||e[47]!==D||e[48]!==N||e[49]!==S?(v=t.jsxs(I,{className:N,children:[S,A,D]}),e[45]=I,e[46]=A,e[47]=D,e[48]=N,e[49]=S,e[50]=v):v=e[50];let m;return e[51]!==u||e[52]!==v||e[53]!==L||e[54]!==y?(m=t.jsx(u,{open:L,onOpenChange:y,children:v}),e[51]=u,e[52]=v,e[53]=L,e[54]=y,e[55]=m):m=e[55],m}function Et(s){return s.role!=="owner"}function Tt(s){const e=de.c(40),{memberIds:n,onMemberIdsChange:o,readOnly:a}=s,i=a===void 0?!1:a,[f,l]=V.useState(""),g=V.useDeferredValue(f),[E,h]=V.useState(!1),{data:O}=ls();let d,I,u,C,x;if(e[0]!==O?.data?.members||e[1]!==g||e[2]!==n||e[3]!==o||e[4]!==i||e[5]!==f){const N=O?.data?.members??[];let S;e[11]!==n?(S=v=>n.includes(v.id),e[11]=n,e[12]=S):S=e[12];const L=N.filter(S);let y;e[13]!==g?(y=v=>{const m=g.toLowerCase();return v.user?.name?.toLowerCase().includes(m)||v.user?.email?.toLowerCase().includes(m)},e[13]=g,e[14]=y):y=e[14];const w=L.filter(y);let A;e[15]!==n||e[16]!==o?(A=v=>{o(n.filter(m=>m!==v))},e[15]=n,e[16]=o,e[17]=A):A=e[17];const P=A;let T;e[18]!==n||e[19]!==o?(T=v=>{o([...n,...v])},e[18]=n,e[19]=o,e[20]=T):T=e[20],d=T,C="flex flex-col h-full";let _;e[21]!==f?(_=t.jsx(Ze,{value:f,onChange:l,placeholder:"Search members...",className:"flex-1 border-b-0"}),e[21]=f,e[22]=_):_=e[22];let D;e[23]!==i?(D=i?t.jsx("div",{className:"pr-4",children:t.jsx(Re,{children:t.jsxs(_e,{children:[t.jsx(Le,{asChild:!0,children:t.jsx("div",{children:t.jsxs(ee,{variant:"outline",size:"sm",disabled:!0,children:[t.jsx(ss,{size:16}),"Add Member"]})})}),t.jsx(Pe,{children:t.jsx("p",{children:"Owner membership cannot be changed"})})]})})}):t.jsx("div",{className:"pr-4",children:t.jsxs(ee,{variant:"outline",size:"sm",onClick:()=>h(!0),children:[t.jsx(ss,{size:16}),"Add Member"]})}),e[23]=i,e[24]=D):D=e[24],e[25]!==_||e[26]!==D?(x=t.jsxs("div",{className:"flex items-center border-b border-border",children:[_,D]}),e[25]=_,e[26]=D,e[27]=x):x=e[27],I="flex-1 overflow-auto",u=L.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsxs("div",{className:"text-center",children:[t.jsx("h3",{className:"text-lg font-medium mb-2",children:"No members"}),t.jsx("p",{className:"text-sm text-muted-foreground",children:"Add members to this role to grant them the configured permissions."})]})}):w.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsxs("p",{className:"text-sm text-muted-foreground",children:['No members match "',f,'"']})}):t.jsx("div",{className:"p-4 space-y-2",children:w.map(v=>t.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-lg bg-muted/30",children:[t.jsx(Ce,{url:v.user?.image??void 0,fallback:Ps(v.user?.name),shape:"circle",size:"sm"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"text-sm font-medium truncate",children:v.user?.name||"Unknown"}),t.jsx("p",{className:"text-xs text-muted-foreground truncate",children:v.user?.email})]}),i?t.jsx(Re,{children:t.jsxs(_e,{children:[t.jsx(Le,{asChild:!0,children:t.jsx("div",{children:t.jsx(ee,{variant:"ghost",size:"sm",disabled:!0,children:t.jsx(hs,{size:16})})})}),t.jsx(Pe,{children:t.jsx("p",{children:"Owner membership cannot be changed"})})]})}):t.jsx(ee,{variant:"ghost",size:"sm",onClick:()=>P(v.id),children:t.jsx(hs,{size:16})})]},v.id))}),e[0]=O?.data?.members,e[1]=g,e[2]=n,e[3]=o,e[4]=i,e[5]=f,e[6]=d,e[7]=I,e[8]=u,e[9]=C,e[10]=x}else d=e[6],I=e[7],u=e[8],C=e[9],x=e[10];let j;e[28]!==I||e[29]!==u?(j=t.jsx("div",{className:I,children:u}),e[28]=I,e[29]=u,e[30]=j):j=e[30];let p;e[31]!==E||e[32]!==d||e[33]!==n?(p=t.jsx(vt,{open:E,onOpenChange:h,selectedMemberIds:n,onAddMembers:d}),e[31]=E,e[32]=d,e[33]=n,e[34]=p):p=e[34];let c;return e[35]!==C||e[36]!==x||e[37]!==j||e[38]!==p?(c=t.jsxs("div",{className:C,children:[x,j,p]}),e[35]=C,e[36]=x,e[37]=j,e[38]=p,e[39]=c):c=e[39],c}function It(s){const e=de.c(3);let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsx(As,{size:24,className:"animate-spin text-muted-foreground"})}),e[0]=n):n=e[0];let o;return e[1]!==s?(o=t.jsx(V.Suspense,{fallback:n,children:t.jsx(Tt,{...s})}),e[1]=s,e[2]=o):o=e[2],o}const St={owner:[],admin:[],user:[]};function $e(s,e){const n=s==="owner"||s==="admin",o=e.filter(a=>a.role===s);return{role:{slug:s,label:s.charAt(0).toUpperCase()+s.slice(1)},allowAllStaticPermissions:n,staticPermissions:St[s],toolSet:{},memberIds:o.map(a=>a.id)}}function yt({trigger:s,onSuccess:e}){const[n,o]=V.useState(!1),[a,i]=V.useState("mcp"),{locator:f}=je(),l=qe(),g=$s()??[],{customRoles:E,refetch:h}=us(),{data:O}=Is({queryKey:le.members(f),queryFn:()=>J.organization.listMembers()}),d=Ts({resolver:zs(ft),defaultValues:Ge()}),I=d.formState.isValid,u=d.formState.isDirty,[C,x]=V.useState(null),[j,p]=V.useState(null),c=!d.watch("role.id")&&!d.watch("role.slug")&&!j,[N,S]=V.useState(null),[L,y]=V.useState(!1),[w,A]=V.useState(null),P=r=>{const b=r.permission||{},$=b.self||[],oe=$.includes("*"),ie=oe?[]:$.filter(z=>z!=="*"),Y={};for(const[z,U]of Object.entries(b))if(z!=="self")if(z==="*")for(const Z of g)U.includes("*")?Y[Z.id]=Z.tools?.map(ae=>ae.name)??[]:Y[Z.id]=U;else{const Z=g.find(ae=>ae.id===z);Z&&(U.includes("*")?Y[z]=Z.tools?.map(ae=>ae.name)??[]:Y[z]=U)}const me=(O?.data?.members??[]).filter(z=>z.role===r.role).map(z=>z.id);return{role:{id:r.id,slug:r.role,label:r.label},allowAllStaticPermissions:oe,staticPermissions:ie,toolSet:Y,memberIds:me}},T=r=>{const b=P(r);d.reset(b),x(r.id??null),p(null)},_=()=>{d.reset(Ge()),x(null),p(null),i("mcp")},D=r=>{u&&I?(A(()=>()=>T(r)),y(!0)):T(r)},v=async()=>{u&&I&&await H(),_()},m=r=>{if(u&&I)A(()=>()=>{const b=$e(r,O?.data?.members??[]);d.reset(b),p(r),x(null),i("org")}),y(!0);else{const b=$e(r,O?.data?.members??[]);d.reset(b),p(r),x(null),i("org")}},M=r=>{if(!r&&d.formState.isDirty&&I){A(()=>()=>{o(!1),d.reset(Ge()),p(null)}),y(!0);return}if(o(r),!r)d.reset(Ge()),p(null),x(null);else{const b=E[0];if(b)T(b);else{const $=$e("user",O?.data?.members??[]);d.reset($),p("user"),x(null),i("org")}}},G=()=>{y(!1),w&&(w(),A(null))},se=r=>{const b={};r.allowAllStaticPermissions?b.self=["*"]:r.staticPermissions.length>0&&(b.self=r.staticPermissions);for(const[$,oe]of Object.entries(r.toolSet))if(oe.length>0){const Y=g.find(q=>q.id===$)?.tools?.map(q=>q.name)??[];Y.length>0&&Y.every(q=>oe.includes(q))?b[$]=["*"]:b[$]=oe}return b},F=fe({mutationFn:async r=>{const b=se(r),$=r.role.slug||r.role.label.toLowerCase().replace(/\s+/g,"-");if(r.role.slug&&!r.role.id){const Y=(O?.data?.members??[]).filter(z=>z.role===r.role.slug).map(z=>z.id),q=r.memberIds.filter(z=>!Y.includes(z)),me=Y.filter(z=>!r.memberIds.includes(z));for(const z of q){const U=await J.organization.updateMemberRole({memberId:z,role:[r.role.slug]});if(U?.error)throw new Error(U.error.message)}for(const z of me){const U=await J.organization.updateMemberRole({memberId:z,role:["user"]});if(U?.error)throw new Error(U.error.message)}return r}else if(r.role.id){const ie=await J.organization.updateRole({roleId:r.role.id,data:{permission:b}});if(ie?.error)throw new Error(ie.error.message);const q=(O?.data?.members??[]).filter(U=>U.role===r.role.slug).map(U=>U.id),me=r.memberIds.filter(U=>!q.includes(U)),z=q.filter(U=>!r.memberIds.includes(U));for(const U of me){const Z=await J.organization.updateMemberRole({memberId:U,role:[r.role.slug]});if(Z?.error)throw new Error(Z.error.message)}for(const U of z){const Z=await J.organization.updateMemberRole({memberId:U,role:["user"]});if(Z?.error)throw new Error(Z.error.message)}return r}else{const ie=await J.organization.createRole({role:$,permission:b});if(ie?.error)throw new Error(ie.error.message);for(const Y of r.memberIds){const q=await J.organization.updateMemberRole({memberId:Y,role:[$]});if(q?.error)throw new Error(q.error.message)}return{...r,role:{...r.role,id:ie.data?.roleData?.id,slug:$}}}},onSuccess:(r,b)=>{l.invalidateQueries({queryKey:le.members(f)}),l.invalidateQueries({queryKey:le.organizationRoles(f)});const $=!b.role.id&&!b.role.slug,oe=b.role.slug&&!b.role.id;W.success(oe?"Members updated successfully!":$?"Role created successfully!":"Role updated successfully!"),h(),d.reset(r),r.role.id&&x(r.role.id),e?.()},onError:r=>{W.error(r instanceof Error?r.message:"Failed to save role")}}),K=fe({mutationFn:async r=>{const b=await J.organization.deleteRole({roleId:r});if(b?.error)throw new Error(b.error.message);return b?.data},onSuccess:()=>{if(l.invalidateQueries({queryKey:le.members(f)}),l.invalidateQueries({queryKey:le.organizationRoles(f)}),W.success("Role deleted successfully!"),h(),N?.id===C){const r=E.filter(b=>b.id!==N?.id);if(r[0])T(r[0]);else{const b=$e("user",O?.data?.members??[]);d.reset(b),p("user"),x(null),i("org")}}},onError:r=>{W.error(r instanceof Error?r.message:"Failed to delete role")}}),Q=F.isPending||K.isPending,H=async()=>{const r=d.getValues();if(!r.role.label.trim()){W.error("Role name is required"),d.setFocus("role.label");return}await F.mutateAsync(r)},ne=d.handleSubmit(r=>{if(!r.role.label.trim()){W.error("Role name is required"),d.setFocus("role.label");return}F.mutate(r)}),te=r=>{r.id&&S({id:r.id,label:r.label})},k=()=>{N?.id&&K.mutate(N.id),S(null)};return t.jsxs(Ss,{open:n,onOpenChange:M,children:[t.jsx(ys,{asChild:!0,children:s}),t.jsx(Os,{className:"sm:max-w-5xl h-[80vh] max-h-[80vh] flex flex-col p-0 overflow-hidden w-[95vw]",children:t.jsxs("div",{className:"flex-1 flex overflow-hidden min-h-0 flex-col sm:flex-row",children:[t.jsxs("div",{className:"w-full sm:w-64 sm:border-r border-b sm:border-b-0 border-border flex flex-col bg-background sm:h-full max-h-[40vh] sm:max-h-full",children:[t.jsx("div",{className:"flex-1 overflow-auto px-3.5 py-3.5 pt-3.5",children:t.jsxs("div",{className:"flex flex-col gap-1",children:[ht.map(r=>{const b=j===r.role;return t.jsxs("div",{className:re("flex items-center gap-2 px-2 py-1.5 rounded-lg overflow-hidden cursor-pointer transition-colors",b?"bg-accent":"hover:bg-muted/50"),onClick:()=>m(r.role),children:[t.jsx("div",{className:re("shrink-0 size-3 rounded-full",r.color)}),t.jsx("p",{className:"text-sm font-medium truncate flex-1",children:r.label}),t.jsx(Js,{size:14,className:"text-muted-foreground shrink-0"})]},r.role)}),E.map(r=>{const b=C===r.id;return t.jsxs("div",{className:re("group flex items-center gap-2 px-2 py-1.5 rounded-lg overflow-hidden transition-colors cursor-pointer",b?"bg-accent":"hover:bg-muted/50"),onClick:()=>D(r),children:[t.jsx("div",{className:re("shrink-0 size-3 rounded-full",gt(r.label))}),t.jsx("p",{className:"text-sm font-medium truncate flex-1",children:r.label}),t.jsxs(as,{children:[t.jsx(cs,{asChild:!0,children:t.jsx(ee,{variant:"ghost",size:"icon",className:re("size-5 shrink-0 transition-opacity opacity-0 pointer-events-none","group-hover:opacity-100 group-hover:pointer-events-auto",b&&"opacity-100 pointer-events-auto"),onClick:$=>$.stopPropagation(),children:t.jsx(Ws,{size:14})})}),t.jsx(ds,{align:"end",children:t.jsxs(Ke,{className:"text-destructive",onClick:$=>{$.stopPropagation(),te(r)},children:[t.jsx(ws,{size:16}),"Delete"]})})]})]},r.id)}),c&&t.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded-lg overflow-hidden bg-accent",children:[t.jsx("div",{className:"shrink-0 size-3 rounded-full bg-neutral-400"}),t.jsx(et,{...d.register("role.label"),placeholder:"Enter role name",className:"flex-1 text-sm font-medium border-0 shadow-none h-auto px-0 py-0 focus-visible:ring-0 bg-transparent",autoFocus:!0}),t.jsx(ve,{variant:"secondary",className:"shrink-0 text-xs px-1.5 py-0",children:"New"})]})]})}),t.jsx("div",{className:"px-3.5 pb-3.5",children:t.jsxs(ee,{variant:"outline",size:"default",onClick:v,disabled:Q||u,className:"w-full h-10",children:[t.jsx(ss,{size:16}),"Create new role"]})})]}),t.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[t.jsxs("div",{className:"h-12 border-b border-border px-4 py-3.5 flex items-center gap-2 shrink-0",children:[!j&&t.jsx(ee,{variant:"outline",size:"sm",onClick:()=>i("mcp"),className:re("h-8 rounded-lg px-2 py-1",a==="mcp"?"bg-muted border-input text-foreground":"border-input text-muted-foreground bg-transparent"),children:"MCP Permissions"}),t.jsx(ee,{variant:"outline",size:"sm",onClick:()=>i("org"),className:re("h-8 rounded-lg px-2 py-1",a==="org"?"bg-muted border-input text-foreground":"border-input text-muted-foreground bg-transparent"),children:"Organization Permissions"}),t.jsx(ee,{variant:"outline",size:"sm",onClick:()=>i("members"),className:re("h-8 rounded-lg px-2 py-1",a==="members"?"bg-muted border-input text-foreground":"border-input text-muted-foreground bg-transparent"),children:"Members"})]}),t.jsxs("div",{className:"flex-1 overflow-hidden min-h-0",children:[a==="mcp"&&!j&&t.jsx(Vs,{toolSet:d.watch("toolSet"),onToolSetChange:r=>d.setValue("toolSet",r,{shouldDirty:!0})}),a==="org"&&t.jsx(pt,{allowAllStaticPermissions:d.watch("allowAllStaticPermissions"),staticPermissions:d.watch("staticPermissions"),onAllowAllChange:r=>d.setValue("allowAllStaticPermissions",r,{shouldDirty:!0}),onPermissionsChange:r=>d.setValue("staticPermissions",r,{shouldDirty:!0}),readOnly:!!j}),a==="members"&&t.jsx(It,{memberIds:d.watch("memberIds"),onMemberIdsChange:r=>d.setValue("memberIds",r,{shouldDirty:!0}),readOnly:j==="owner"})]}),(!j||j!=="owner")&&t.jsxs("div",{className:"border-t border-border px-5 py-5 flex items-center justify-end gap-2.5 shrink-0",children:[t.jsx(ee,{variant:"outline",onClick:()=>M(!1),disabled:Q,className:"h-10",children:"Cancel"}),t.jsx(ee,{onClick:ne,disabled:Q||!I||!d.formState.isDirty,className:"h-10",children:F.isPending?"Saving...":c?"Create Role":"Save Changes"})]})]})]})}),t.jsx(Ee,{open:N!==null,onOpenChange:r=>!r&&S(null),children:t.jsxs(Te,{children:[t.jsxs(Ie,{children:[t.jsx(Se,{children:"Delete Role"}),t.jsxs(ye,{children:['Are you sure you want to delete the "',N?.label,'" role? This action cannot be undone.']})]}),t.jsxs(Oe,{children:[t.jsx(Ae,{children:"Cancel"}),t.jsx(we,{onClick:k,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Delete"})]})]})}),t.jsx(Ee,{open:L,onOpenChange:y,children:t.jsxs(Te,{children:[t.jsxs(Ie,{children:[t.jsx(Se,{children:"Discard Changes"}),t.jsx(ye,{children:"You have unsaved changes. Are you sure you want to discard them?"})]}),t.jsxs(Oe,{children:[t.jsx(Ae,{onClick:()=>A(null),children:"Keep Editing"}),t.jsx(we,{onClick:G,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Discard"})]})]})})]})}const Ot=ue().email("Invalid email address");function At(s){if(!s.trim())return[];const e=s.split(/[,;\n]/).map(n=>n.trim().toLowerCase()).filter(n=>n.length>0);return Array.from(new Set(e))}function wt({trigger:s}){const[e,n]=V.useState(!1),{locator:o}=je(),a=qe(),{data:i}=J.useSession(),f=i?.user?.email,{roles:l,isLoading:g}=us(),E=l.filter(p=>p.role!=="owner"),h=Ts({mode:"onChange",defaultValues:{emailsText:"",role:"user"}}),O=h.watch("emailsText"),d=h.watch("role"),u=At(O).filter(p=>{const c=Ot.safeParse(p).success,N=!f||p!==f.toLowerCase();return c&&N}),C=fe({mutationFn:async({emails:p,role:c})=>{if(!c)throw new Error("Please select a role");const N=await Promise.allSettled(p.map(async L=>{const y=await J.organization.inviteMember({email:L,role:c});if(y.error)throw new Error(y.error.message);return y.data})),S=N.filter(L=>L.status==="rejected");if(S.length>0)throw new Error(`Failed to invite ${S.length} member${S.length>1?"s":""}`);return N},onSuccess:(p,{emails:c})=>{a.invalidateQueries({queryKey:le.members(o)}),a.invalidateQueries({queryKey:le.invitations(o)}),W.success(c.length===1?"Member invited successfully!":`${c.length} members invited successfully!`),h.reset({emailsText:"",role:"user"}),n(!1)},onError:p=>{W.error(p instanceof Error?p.message:"Failed to invite members")}}),x=p=>{if(u.length===0){W.error("Please enter at least one valid email address");return}if(!p.role){W.error("Please select a role");return}C.mutate({emails:u,role:p.role})},j=u.length>0&&!!d;return t.jsxs(Ss,{open:e,onOpenChange:n,children:[t.jsx(ys,{asChild:!0,children:s}),t.jsxs(Os,{className:"sm:max-w-lg",children:[t.jsx(Ks,{children:t.jsx(Qs,{children:"Invite members"})}),t.jsx(tt,{...h,children:t.jsxs("form",{onSubmit:h.handleSubmit(x),className:"space-y-4",children:[t.jsx(gs,{control:h.control,name:"emailsText",render:({field:p})=>t.jsxs(ps,{children:[t.jsx(nt,{children:"Email addresses"}),t.jsx(xs,{children:t.jsx(rt,{...p,disabled:C.isPending,placeholder:`Enter email addresses separated by commas or new lines
2
- e.g. user1@example.com, user2@example.com
3
- or one per line`,className:"min-h-[120px] resize-none"})}),t.jsx(bs,{})]})}),t.jsx(gs,{control:h.control,name:"role",render:({field:p})=>t.jsxs(ps,{children:[t.jsx(xs,{children:t.jsxs(ts,{value:p.value,onValueChange:p.onChange,disabled:C.isPending||g,children:[t.jsx(ns,{className:"w-full",children:t.jsx(rs,{placeholder:"Select a role"})}),t.jsx(is,{children:E.map(c=>{const N=[];return c.isBuiltin||(c.allowsAllStaticPermissions?N.push("Full org access"):c.staticPermissionCount&&c.staticPermissionCount>0&&N.push(`${c.staticPermissionCount} org perm${c.staticPermissionCount!==1?"s":""}`),c.allowsAllConnections?N.push("All connections"):c.connectionCount&&c.connectionCount>0&&N.push(`${c.connectionCount} connection${c.connectionCount!==1?"s":""}`),(c.connectionCount!==0||c.allowsAllConnections)&&(c.allowsAllTools?N.push("all tools"):c.toolCount&&c.toolCount>0&&N.push(`${c.toolCount} tool${c.toolCount!==1?"s":""}`))),t.jsx(os,{value:c.role,children:t.jsxs("div",{className:"flex flex-col",children:[t.jsx("span",{children:c.label}),!c.isBuiltin&&N.length>0&&t.jsx("span",{className:"text-xs text-muted-foreground",children:N.join(", ")})]})},c.role)})})]})}),t.jsx(bs,{})]})}),t.jsxs(qs,{children:[t.jsx(ee,{variant:"outline",onClick:()=>{h.reset({emailsText:"",role:"user"}),n(!1)},type:"button",disabled:C.isPending,children:"Cancel"}),t.jsx(ee,{type:"submit",disabled:C.isPending||!j,children:C.isPending?"Inviting...":`Invite ${u.length||0} Member${u.length!==1?"s":""}`})]})]})})]})]})}function Rt(){const s=de.c(9),{org:e,locator:n}=je();let o;s[0]!==e.slug?(o={connectionId:null,orgSlug:e.slug},s[0]=e.slug,s[1]=o):o=s[1];const a=it(o);let i;s[2]!==n?(i=le.invitations(n),s[2]=n,s[3]=i):i=s[3];let f;s[4]!==a?(f=async()=>{const g=await a.callTool({name:"ORGANIZATION_GET",arguments:{}});return(g.structuredContent??g)?.invitations??[]},s[4]=a,s[5]=f):f=s[5];let l;return s[6]!==i||s[7]!==f?(l={queryKey:i,queryFn:f},s[6]=i,s[7]=f,s[8]=l):l=s[8],ks(l)}function _t(){const s=de.c(5),{locator:e}=je(),n=qe();let o;s[0]!==e||s[1]!==n?(o={mutationFn:Pt,onSuccess:()=>{n.invalidateQueries({queryKey:le.invitations(e)}),W.success("Invitation cancelled")},onError:Lt},s[0]=e,s[1]=n,s[2]=o):o=s[2];const a=fe(o);let i;return s[3]!==a?(i={cancel:a},s[3]=a,s[4]=i):i=s[4],i}function Lt(s){W.error(s instanceof Error?s.message:"Failed to cancel invitation")}async function Pt(s){const e=await J.organization.cancelInvitation({invitationId:s});if(e?.error)throw new Error(e.error.message);return e.data}const Ns=["bg-neutral-400","bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500","bg-slate-500"],Mt={owner:"bg-red-500",admin:"bg-blue-500",user:"bg-green-500"};function Qe(s){return s?s.split(" ").map(e=>e[0]).join("").toUpperCase().slice(0,2):"?"}function Dt(s){const e=new Map;for(const[n,o]of Object.entries(Mt))e.set(n,o);for(let n=0;n<s.length;n++){const o=s[n];o&&!e.has(o.role)&&e.set(o.role,Ns[n%Ns.length]??"bg-neutral-400")}return e}function zt(s){return new Date(s).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}function Fe(s){const e=de.c(79),{role:n,memberId:o,isOwner:a,roleColorMap:i,selectableRoles:f,onRoleChange:l,size:g,className:E}=s,h=g===void 0?"xs":g;let O,d,I,u,C,x,j,p,c,N,S;if(e[0]!==E||e[1]!==a||e[2]!==o||e[3]!==l||e[4]!==n||e[5]!==i||e[6]!==f||e[7]!==h){S=Symbol.for("react.early_return_sentinel");e:{const v=i.get(n)??"bg-neutral-400";if(a){let m;e[19]!==o||e[20]!==l?(m=k=>l(o,k),e[19]=o,e[20]=l,e[21]=m):m=e[21];let M;e[22]!==n?(M=t.jsx("span",{className:"capitalize truncate",children:n}),e[22]=n,e[23]=M):M=e[23];const G=t.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[t.jsx("div",{className:re("size-2 rounded-full shrink-0",v)}),M]});let se;e[24]!==G?(se=t.jsx(rs,{children:G}),e[24]=G,e[25]=se):se=e[25];let F;e[26]!==E||e[27]!==h||e[28]!==se?(F=t.jsx(ns,{size:h,className:E,children:se}),e[26]=E,e[27]=h,e[28]=se,e[29]=F):F=e[29];let K;if(e[30]!==i||e[31]!==f){let k;e[33]!==i?(k=r=>{const b=i.get(r.role)??"bg-neutral-400";return t.jsx(os,{value:r.role,children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:re("size-3 rounded-full",b)}),t.jsx("span",{className:"capitalize",children:r.label})]})},r.role)},e[33]=i,e[34]=k):k=e[34],K=f.map(k),e[30]=i,e[31]=f,e[32]=K}else K=e[32];let Q;e[35]!==K?(Q=t.jsx(is,{children:K}),e[35]=K,e[36]=Q):Q=e[36];let H;e[37]!==a||e[38]!==n||e[39]!==m||e[40]!==F||e[41]!==Q?(H=t.jsx(Le,{asChild:!0,children:t.jsx("div",{className:"w-fit",children:t.jsxs(ts,{value:n,onValueChange:m,disabled:a,children:[F,Q]})})}),e[37]=a,e[38]=n,e[39]=m,e[40]=F,e[41]=Q,e[42]=H):H=e[42];let ne;e[43]===Symbol.for("react.memo_cache_sentinel")?(ne=t.jsx(Pe,{children:t.jsx("p",{children:"The owner role cannot be changed"})}),e[43]=ne):ne=e[43];let te;e[44]!==H?(te=t.jsx(Re,{children:t.jsxs(_e,{children:[H,ne]})}),e[44]=H,e[45]=te):te=e[45],S=te;break e}I=ts,p=n,e[46]!==o||e[47]!==l?(c=m=>l(o,m),e[46]=o,e[47]=l,e[48]=c):c=e[48],N=a,d=ns,x=h,j=E,O=rs,C="flex items-center gap-2 min-w-0",u=re("size-2 rounded-full shrink-0",v)}e[0]=E,e[1]=a,e[2]=o,e[3]=l,e[4]=n,e[5]=i,e[6]=f,e[7]=h,e[8]=O,e[9]=d,e[10]=I,e[11]=u,e[12]=C,e[13]=x,e[14]=j,e[15]=p,e[16]=c,e[17]=N,e[18]=S}else O=e[8],d=e[9],I=e[10],u=e[11],C=e[12],x=e[13],j=e[14],p=e[15],c=e[16],N=e[17],S=e[18];if(S!==Symbol.for("react.early_return_sentinel"))return S;let L;e[49]!==u?(L=t.jsx("div",{className:u}),e[49]=u,e[50]=L):L=e[50];let y;e[51]!==n?(y=t.jsx("span",{className:"capitalize truncate",children:n}),e[51]=n,e[52]=y):y=e[52];let w;e[53]!==L||e[54]!==y||e[55]!==C?(w=t.jsxs("div",{className:C,children:[L,y]}),e[53]=L,e[54]=y,e[55]=C,e[56]=w):w=e[56];let A;e[57]!==O||e[58]!==w?(A=t.jsx(O,{children:w}),e[57]=O,e[58]=w,e[59]=A):A=e[59];let P;e[60]!==d||e[61]!==A||e[62]!==x||e[63]!==j?(P=t.jsx(d,{size:x,className:j,children:A}),e[60]=d,e[61]=A,e[62]=x,e[63]=j,e[64]=P):P=e[64];let T;if(e[65]!==i||e[66]!==f){let v;e[68]!==i?(v=m=>{const M=i.get(m.role)??"bg-neutral-400";return t.jsx(os,{value:m.role,children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:re("size-3 rounded-full",M)}),t.jsx("span",{className:"capitalize",children:m.label})]})},m.role)},e[68]=i,e[69]=v):v=e[69],T=f.map(v),e[65]=i,e[66]=f,e[67]=T}else T=e[67];let _;e[70]!==T?(_=t.jsx(is,{children:T}),e[70]=T,e[71]=_):_=e[71];let D;return e[72]!==I||e[73]!==P||e[74]!==_||e[75]!==p||e[76]!==c||e[77]!==N?(D=t.jsxs(I,{value:p,onValueChange:c,disabled:N,children:[P,_]}),e[72]=I,e[73]=P,e[74]=_,e[75]=p,e[76]=c,e[77]=N,e[78]=D):D=e[78],D}function vs(s){const e=de.c(51),{member:n,roles:o,onChangeRole:a,onRemove:i,isUpdating:f}=s,l=f===void 0?!1:f,g=n.role==="owner";let E,h,O,d,I,u,C,x,j;if(e[0]!==g||e[1]!==l||e[2]!==n.id||e[3]!==n.role||e[4]!==a||e[5]!==o){let P;e[15]!==n.role?(P=m=>m.role!==n.role&&m.role!=="owner",e[15]=n.role,e[16]=P):P=e[16];const T=o.filter(P);d=as;let _;e[17]===Symbol.for("react.memo_cache_sentinel")?(_=t.jsx(Rs,{size:20}),e[17]=_):_=e[17],e[18]!==g?(j=t.jsx(cs,{asChild:!0,children:t.jsx(ee,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",disabled:g,onClick:Ut,children:_})}),e[18]=g,e[19]=j):j=e[19],O=ds,C="end",x=kt,h=Zs;let D;e[20]===Symbol.for("react.memo_cache_sentinel")?(D=t.jsx(_s,{size:16}),e[20]=D):D=e[20],e[21]!==l?(u=t.jsxs(Hs,{disabled:l,children:[D,"Change Role"]}),e[21]=l,e[22]=u):u=e[22],E=Ys;let v;e[23]!==l||e[24]!==n.id||e[25]!==a?(v=m=>{const M=[];return m.isBuiltin||(m.allowsAllStaticPermissions?M.push("Full org access"):m.staticPermissionCount&&m.staticPermissionCount>0&&M.push(`${m.staticPermissionCount} org perm${m.staticPermissionCount!==1?"s":""}`),m.allowsAllConnections?M.push("All connections"):m.connectionCount&&m.connectionCount>0&&M.push(`${m.connectionCount} connection${m.connectionCount!==1?"s":""}`),(m.connectionCount!==0||m.allowsAllConnections)&&(m.allowsAllTools?M.push("all tools"):m.toolCount&&m.toolCount>0&&M.push(`${m.toolCount} tool${m.toolCount!==1?"s":""}`))),t.jsxs(Ke,{onClick:G=>{G.stopPropagation(),a(n.id,m.role)},disabled:l,children:[m.isBuiltin?t.jsx(ms,{size:16}):t.jsx(ot,{size:16}),t.jsxs("span",{className:"flex flex-col",children:[t.jsx("span",{children:m.label}),!m.isBuiltin&&M.length>0&&t.jsx("span",{className:"text-xs text-muted-foreground",children:M.join(", ")})]})]},m.role)},e[23]=l,e[24]=n.id,e[25]=a,e[26]=v):v=e[26],I=T.map(v),e[0]=g,e[1]=l,e[2]=n.id,e[3]=n.role,e[4]=a,e[5]=o,e[6]=E,e[7]=h,e[8]=O,e[9]=d,e[10]=I,e[11]=u,e[12]=C,e[13]=x,e[14]=j}else E=e[6],h=e[7],O=e[8],d=e[9],I=e[10],u=e[11],C=e[12],x=e[13],j=e[14];let p;e[27]!==E||e[28]!==I?(p=t.jsx(E,{children:I}),e[27]=E,e[28]=I,e[29]=p):p=e[29];let c;e[30]!==h||e[31]!==u||e[32]!==p?(c=t.jsxs(h,{children:[u,p]}),e[30]=h,e[31]=u,e[32]=p,e[33]=c):c=e[33];let N;e[34]===Symbol.for("react.memo_cache_sentinel")?(N=t.jsx(Xs,{}),e[34]=N):N=e[34];let S;e[35]!==n.id||e[36]!==i?(S=P=>{P.stopPropagation(),i(n.id)},e[35]=n.id,e[36]=i,e[37]=S):S=e[37];let L;e[38]===Symbol.for("react.memo_cache_sentinel")?(L=t.jsx(ws,{size:16}),e[38]=L):L=e[38];let y;e[39]!==S?(y=t.jsxs(Ke,{variant:"destructive",onClick:S,children:[L,"Remove Member"]}),e[39]=S,e[40]=y):y=e[40];let w;e[41]!==O||e[42]!==y||e[43]!==C||e[44]!==x||e[45]!==c?(w=t.jsxs(O,{align:C,onClick:x,children:[c,N,y]}),e[41]=O,e[42]=y,e[43]=C,e[44]=x,e[45]=c,e[46]=w):w=e[46];let A;return e[47]!==d||e[48]!==w||e[49]!==j?(A=t.jsxs(d,{children:[j,w]}),e[47]=d,e[48]=w,e[49]=j,e[50]=A):A=e[50],A}function kt(s){return s.stopPropagation()}function Ut(s){return s.stopPropagation()}function Es(s){const e=de.c(8),{invitationId:n,onCancel:o,isCancelling:a}=s,i=a===void 0?!1:a;let f;e[0]===Symbol.for("react.memo_cache_sentinel")?(f=t.jsx(cs,{asChild:!0,children:t.jsx(ee,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:Vt,children:t.jsx(Rs,{size:20})})}),e[0]=f):f=e[0];let l;e[1]!==n||e[2]!==o?(l=h=>{h.stopPropagation(),o(n)},e[1]=n,e[2]=o,e[3]=l):l=e[3];let g;e[4]===Symbol.for("react.memo_cache_sentinel")?(g=t.jsx(lt,{size:16}),e[4]=g):g=e[4];let E;return e[5]!==i||e[6]!==l?(E=t.jsxs(as,{children:[f,t.jsx(ds,{align:"end",onClick:Bt,children:t.jsxs(Ke,{variant:"destructive",onClick:l,disabled:i,children:[g,"Cancel Invitation"]})})]}),e[5]=i,e[6]=l,e[7]=E):E=e[7],E}function Bt(s){return s.stopPropagation()}function Vt(s){return s.stopPropagation()}function Gt(){const s=de.c(74),{data:e}=ls(),{data:n}=Rt(),o=_t(),a=qe(),{locator:i}=je(),[f,l]=V.useState(null),[g,E]=V.useState(null),[h,O]=V.useState(""),[d,I]=V.useState("table"),[u,C]=V.useState("member"),[x,j]=V.useState("asc"),p=e?.data?.members;let c;s[0]!==u?(c=R=>{u===R?j(sn):(C(R),j("asc"))},s[0]=u,s[1]=c):c=s[1];const N=c;let S=p??[],L=n??[];if(h){const R=h.toLowerCase();S=S.filter(B=>B.user?.name?.toLowerCase().includes(R)||B.user?.email?.toLowerCase().includes(R)||B.role?.toLowerCase().includes(R)),L=L.filter(B=>B.email?.toLowerCase().includes(R)||B.role?.toLowerCase().includes(R))}if(u&&x){let R;s[2]!==x||s[3]!==u?(R=(B,X)=>{let ce,Ne;e:switch(u){case"member":{ce=B.user?.name||"",Ne=X.user?.name||"";break e}case"role":{ce=B.role||"",Ne=X.role||"";break e}case"joined":{ce=B.createdAt?typeof B.createdAt=="string"?B.createdAt:B.createdAt.toISOString():"",Ne=X.createdAt?typeof X.createdAt=="string"?X.createdAt:X.createdAt.toISOString():"";break e}default:return 0}return x==="asc"?ce.localeCompare(Ne):Ne.localeCompare(ce)},s[2]=x,s[3]=u,s[4]=R):R=s[4],S=[...S].sort(R)}const y=S;let w;s[5]!==i||s[6]!==a?(w={mutationFn:en,onSuccess:()=>{a.invalidateQueries({queryKey:le.members(i)}),W.success("Member has been removed from the organization"),l(null)},onError:Jt},s[5]=i,s[6]=a,s[7]=w):w=s[7];const A=fe(w);let P;s[8]!==i||s[9]!==a?(P={mutationFn:Wt,onSuccess:()=>{a.invalidateQueries({queryKey:le.members(i)}),W.success("Member's role has been updated")},onError:Xt},s[8]=i,s[9]=a,s[10]=P):P=s[10];const T=fe(P);let _;s[11]!==i||s[12]!==a?(_={mutationFn:Yt,onSuccess:()=>{a.invalidateQueries({queryKey:le.invitations(i)}),W.success("Invitation role has been updated")},onError:Ht},s[11]=i,s[12]=a,s[13]=_):_=s[13];const D=fe(_),{roles:v,customRoles:m}=us();let M;s[14]!==m?(M=Dt(m),s[14]=m,s[15]=M):M=s[15];const G=M;let se;s[16]!==v?(se=v.filter(Zt),s[16]=v,s[17]=se):se=s[17];const F=se;let K;s[18]===Symbol.for("react.memo_cache_sentinel")?(K={id:"member",header:"Member",render:qt,cellClassName:"flex-1 min-w-0",sortable:!0},s[18]=K):K=s[18];let Q;s[19]!==G||s[20]!==F||s[21]!==D||s[22]!==T?(Q={id:"role",header:"Role",render:R=>R.type==="member"?t.jsx(Fe,{role:R.data.role,memberId:R.data.id,isOwner:R.data.role==="owner",roleColorMap:G,selectableRoles:F,onRoleChange:(B,X)=>T.mutate({memberId:B,role:X}),className:"w-36"}):t.jsx(Fe,{role:R.data.role,memberId:R.data.id,isOwner:!1,roleColorMap:G,selectableRoles:F,onRoleChange:(B,X)=>D.mutate({invitationId:B,role:X,email:R.data.email}),className:"w-36"}),cellClassName:"w-36 shrink-0",sortable:!0},s[19]=G,s[20]=F,s[21]=D,s[22]=T,s[23]=Q):Q=s[23];let H;s[24]===Symbol.for("react.memo_cache_sentinel")?(H={id:"joined",header:"Joined",render:Qt,cellClassName:"w-48 shrink-0",sortable:!0},s[24]=H):H=s[24];let ne;s[25]!==o.cancel.isPending||s[26]!==v||s[27]!==T?(ne={id:"actions",header:"",render:R=>R.type==="member"?t.jsx(vs,{member:R.data,roles:v,onChangeRole:(B,X)=>T.mutate({memberId:B,role:X}),onRemove:l,isUpdating:T.isPending}):t.jsx(Es,{invitationId:R.data.id,onCancel:E,isCancelling:o.cancel.isPending}),cellClassName:"w-12 shrink-0"},s[25]=o.cancel.isPending,s[26]=v,s[27]=T,s[28]=ne):ne=s[28];let te;s[29]!==Q||s[30]!==ne?(te=[K,Q,H,ne],s[29]=Q,s[30]=ne,s[31]=te):te=s[31];const k=te;let r;s[32]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(yt,{trigger:t.jsxs(ee,{variant:"outline",size:"sm",className:"h-7 px-3 rounded-lg text-sm font-medium",children:[t.jsx(ms,{size:16}),"Manage Roles"]})}),s[32]=r):r=s[32];let b;s[33]===Symbol.for("react.memo_cache_sentinel")?(b=t.jsxs("div",{className:"flex items-center gap-2",children:[r,t.jsx(wt,{trigger:t.jsx(ee,{size:"sm",children:"Invite Member"})})]}),s[33]=b):b=s[33];const $=b,oe=[...y.map(Kt),...L.filter(Ft).map($t)],ie=es,Y=!!g;let q;s[34]===Symbol.for("react.memo_cache_sentinel")?(q=()=>E(null),s[34]=q):q=s[34];let me;s[35]===Symbol.for("react.memo_cache_sentinel")?(me=t.jsxs(Ie,{children:[t.jsx(Se,{children:"Cancel Invitation"}),t.jsx(ye,{children:"Are you sure you want to cancel this invitation? The invitee will no longer be able to join the organization with this invitation."})]}),s[35]=me):me=s[35];let z;s[36]===Symbol.for("react.memo_cache_sentinel")?(z=t.jsx(Ae,{children:"Keep Invitation"}),s[36]=z):z=s[36];let U;s[37]!==o.cancel||s[38]!==g?(U=()=>{g&&(o.cancel.mutate(g),E(null))},s[37]=o.cancel,s[38]=g,s[39]=U):U=s[39];let Z;s[40]!==o.cancel.isPending||s[41]!==U?(Z=t.jsxs(Te,{children:[me,t.jsxs(Oe,{children:[z,t.jsx(we,{onClick:U,disabled:o.cancel.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Cancel Invitation"})]})]}),s[40]=o.cancel.isPending,s[41]=U,s[42]=Z):Z=s[42];let ae;s[43]!==Y||s[44]!==Z?(ae=t.jsx(Ee,{open:Y,onOpenChange:q,children:Z}),s[43]=Y,s[44]=Z,s[45]=ae):ae=s[45];const He=!!f;let Me;s[46]===Symbol.for("react.memo_cache_sentinel")?(Me=()=>l(null),s[46]=Me):Me=s[46];let De;s[47]===Symbol.for("react.memo_cache_sentinel")?(De=t.jsxs(Ie,{children:[t.jsx(Se,{children:"Remove Member"}),t.jsx(ye,{children:"Are you sure you want to remove this member from the organization? This action cannot be undone."})]}),s[47]=De):De=s[47];let ze;s[48]===Symbol.for("react.memo_cache_sentinel")?(ze=t.jsx(Ae,{children:"Cancel"}),s[48]=ze):ze=s[48];let he;s[49]!==f||s[50]!==A?(he=()=>f&&A.mutate(f),s[49]=f,s[50]=A,s[51]=he):he=s[51];let ge;s[52]!==A.isPending||s[53]!==he?(ge=t.jsxs(Te,{children:[De,t.jsxs(Oe,{children:[ze,t.jsx(we,{onClick:he,disabled:A.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Remove"})]})]}),s[52]=A.isPending,s[53]=he,s[54]=ge):ge=s[54];let pe;s[55]!==He||s[56]!==ge?(pe=t.jsx(Ee,{open:He,onOpenChange:Me,children:ge}),s[55]=He,s[56]=ge,s[57]=pe):pe=s[57];let ke;s[58]===Symbol.for("react.memo_cache_sentinel")?(ke=[{id:"member",label:"Name"},{id:"role",label:"Role"},{id:"joined",label:"Joined"}],s[58]=ke):ke=s[58];let xe;s[59]!==N||s[60]!==x||s[61]!==u||s[62]!==d?(xe=t.jsx(Us,{title:"Members",viewMode:d,onViewModeChange:I,sortKey:u,sortDirection:x,onSort:N,sortOptions:ke,ctaButton:$}),s[59]=N,s[60]=x,s[61]=u,s[62]=d,s[63]=xe):xe=s[63];let Ue;s[64]===Symbol.for("react.memo_cache_sentinel")?(Ue=R=>{R.key==="Escape"&&(O(""),R.target.blur())},s[64]=Ue):Ue=s[64];let be;s[65]!==h?(be=t.jsx(Ze,{value:h,onChange:O,placeholder:"Search members...",onKeyDown:Ue}),s[65]=h,s[66]=be):be=s[66];const Ye=d==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:oe.length===0?t.jsx(We,{title:"No members found",description:h?`No members match "${h}"`:"Invite members to get started."}):t.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4",children:oe.map(R=>{if(R.type==="invitation")return t.jsxs(Cs,{className:"transition-colors relative opacity-75",children:[t.jsx("div",{className:"absolute top-4 right-4 z-10",children:t.jsx(Es,{invitationId:R.data.id,onCancel:E,isCancelling:o.cancel.isPending})}),t.jsxs("div",{className:"flex flex-col gap-4 p-6",children:[t.jsx(Ce,{fallback:Qe(R.data.email),shape:"circle",size:"lg",className:"shrink-0"}),t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:R.data.email}),t.jsx("div",{className:"flex items-center gap-2",children:t.jsx(ve,{variant:"outline",className:"w-fit text-amber-600 border-amber-400",children:"Pending"})}),t.jsx(Fe,{role:R.data.role,memberId:R.data.id,isOwner:!1,roleColorMap:G,selectableRoles:F,onRoleChange:(X,ce)=>D.mutate({invitationId:X,role:ce,email:R.data.email}),className:"w-fit"})]})]})]},`inv-${R.data.id}`);const B=R.data;return t.jsxs(Cs,{className:"transition-colors relative",children:[t.jsx("div",{className:"absolute top-4 right-4 z-10",children:t.jsx(vs,{member:B,roles:v,onChangeRole:(X,ce)=>T.mutate({memberId:X,role:ce}),onRemove:l,isUpdating:T.isPending})}),t.jsxs("div",{className:"flex flex-col gap-4 p-6",children:[t.jsx(Ce,{url:B.user?.image??void 0,fallback:Qe(B.user?.name),shape:"circle",size:"lg",className:"shrink-0"}),t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:B.user?.name||"Unknown"}),t.jsx("p",{className:"text-sm text-muted-foreground truncate",children:B.user?.email}),t.jsx(Fe,{role:B.role,memberId:B.id,isOwner:B.role==="owner",roleColorMap:G,selectableRoles:F,onRoleChange:(X,ce)=>T.mutate({memberId:X,role:ce}),className:"w-fit"})]})]})]},B.id)})})}):t.jsx(Bs,{columns:k,data:oe,isLoading:!1,sortKey:u,sortDirection:x,onSort:N,emptyState:h?t.jsx(We,{title:"No members found",description:`No members match "${h}"`}):t.jsx(We,{title:"No members found",description:"Invite members to get started."})});let Be;return s[67]!==ie||s[68]!==ae||s[69]!==pe||s[70]!==xe||s[71]!==be||s[72]!==Ye?(Be=t.jsxs(ie,{children:[ae,pe,xe,be,Ye]}),s[67]=ie,s[68]=ae,s[69]=pe,s[70]=xe,s[71]=be,s[72]=Ye,s[73]=Be):Be=s[73],Be}function $t(s){return{type:"invitation",data:s}}function Ft(s){return s.status==="pending"}function Kt(s){return{type:"member",data:s}}function Qt(s){return s.type==="member"?t.jsx("span",{className:"text-sm text-foreground",children:s.data.createdAt?zt(s.data.createdAt):"N/A"}):t.jsx(ve,{variant:"outline",children:"Pending"})}function qt(s){return s.type==="member"?t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx(Ce,{url:s.data.user?.image??void 0,fallback:Qe(s.data.user?.name),shape:"circle",size:"sm"}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-sm font-medium text-foreground truncate",children:s.data.user?.name||"Unknown"}),t.jsx("div",{className:"text-sm text-muted-foreground truncate",children:s.data.user?.email})]})]}):t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx(Ce,{fallback:Qe(s.data.email),shape:"circle",size:"sm"}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-sm font-medium text-foreground truncate",children:s.data.email}),t.jsx("div",{className:"text-sm text-muted-foreground truncate",children:"Invitation sent"})]})]})}function Zt(s){return s.role!=="owner"}function Ht(s){W.error(s instanceof Error?s.message:"Failed to update invitation role")}async function Yt(s){const{invitationId:e,role:n,email:o}=s,a=await J.organization.cancelInvitation({invitationId:e});if(a?.error)throw new Error(a.error.message);const i=await J.organization.inviteMember({email:o,role:n});if(i?.error)throw new Error(i.error.message)}function Xt(s){W.error(s instanceof Error?s.message:"Failed to update role")}async function Wt(s){const{memberId:e,role:n}=s,o=await J.organization.updateMemberRole({memberId:e,role:[n]});if(o?.error)throw new Error(o.error.message)}function Jt(s){W.error(s instanceof Error?s.message:"Failed to remove member")}async function en(s){const e=await J.organization.removeMember({memberIdOrEmail:s});if(e?.error)throw new Error(e.error.message)}function sn(s){return s==="asc"?"desc":s==="desc"?null:"asc"}function Xn(){const s=de.c(2);let e;s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsx(es,{children:t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsx("div",{className:"text-sm text-muted-foreground",children:"Failed to load members"})})}),s[0]=e):e=s[0];let n;return s[1]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx(st,{fallback:e,children:t.jsx(V.Suspense,{fallback:t.jsx(es,{children:t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsx(As,{size:32,className:"animate-spin text-muted-foreground"})})}),children:t.jsx(Gt,{})})}),s[1]=n):n=s[1],n}export{Xn as default};