decocms 4.25.0 → 4.26.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 (225) hide show
  1. package/dist/client/assets/{AlertCircle-Cnibwd9a.js → AlertCircle-Dl1-HYm2.js} +1 -1
  2. package/dist/client/assets/{ArrowUpRight-aIJNcX0O.js → ArrowUpRight-C_YI8jPO.js} +1 -1
  3. package/dist/client/assets/{Check-BlIS91Z6.js → Check-BfDiInJj.js} +1 -1
  4. package/dist/client/assets/{CheckCircle-Dxnu2n3Z.js → CheckCircle-Vk3UVIZj.js} +1 -1
  5. package/dist/client/assets/{ChevronDown-4ZVYYQnG.js → ChevronDown-DTjjuVCO.js} +1 -1
  6. package/dist/client/assets/{ChevronRight-B_x6wMWk.js → ChevronRight-B-8oZDpP.js} +1 -1
  7. package/dist/client/assets/{ChevronUp-CR_copvK.js → ChevronUp-BRty4GXW.js} +1 -1
  8. package/dist/client/assets/{Circle-DCpWQ29l.js → Circle-CjKIRWHi.js} +1 -1
  9. package/dist/client/assets/{Copy01-BuggOmYy.js → Copy01-Cr48elTd.js} +1 -1
  10. package/dist/client/assets/{DotsVertical-DSSYam_i.js → DotsVertical-XAhvHQSt.js} +1 -1
  11. package/dist/client/assets/{Eye-BX1KUx5S.js → Eye-CzKu_3jL.js} +1 -1
  12. package/dist/client/assets/{FilterLines-C_TOtlsF.js → FilterLines-D2E1tFU7.js} +1 -1
  13. package/dist/client/assets/{Globe01-Coc_ENtm.js → Globe01-C9SA8oJi.js} +1 -1
  14. package/dist/client/assets/{Globe04-CfNZGKbF.js → Globe04-DHX17Qkl.js} +1 -1
  15. package/dist/client/assets/{HardDrive-CYzCCXdg.js → HardDrive-Dq6SCOZh.js} +1 -1
  16. package/dist/client/assets/{Key01-Cku0YQXc.js → Key01-CcXAOwUQ.js} +1 -1
  17. package/dist/client/assets/{LayoutLeft-BbyD3hvR.js → LayoutLeft-B2OYwqTP.js} +1 -1
  18. package/dist/client/assets/{LinkExternal01-R8G6DeJp.js → LinkExternal01-DV4W67rk.js} +1 -1
  19. package/dist/client/assets/{List-vFNrZTew.js → List-D74RLsIr.js} +1 -1
  20. package/dist/client/assets/{Loading02-DnwvS_wt.js → Loading02-gUGw7YaN.js} +1 -1
  21. package/dist/client/assets/{Monitor01-BEbPrTH5.js → Monitor01-C5HsjTR0.js} +1 -1
  22. package/dist/client/assets/{Palette-hzzt3yrl.js → Palette-bQExB5-n.js} +1 -1
  23. package/dist/client/assets/{Play-l3mRKWHU.js → Play-DA6-aAtS.js} +1 -1
  24. package/dist/client/assets/{Plus-Bz1Yu2G8.js → Plus-dpHTi6wk.js} +1 -1
  25. package/dist/client/assets/{SearchLg-YjvKSatj.js → SearchLg-BB4jzQyQ.js} +1 -1
  26. package/dist/client/assets/{SearchMd-cOCZCeoy.js → SearchMd-DrNv56N0.js} +1 -1
  27. package/dist/client/assets/{Settings02-Dda6Y-7s.js → Settings02-DROkNsr8.js} +1 -1
  28. package/dist/client/assets/{Shield01-DeFZLzfp.js → Shield01-CDW50N95.js} +1 -1
  29. package/dist/client/assets/{Star01-9Y7YmX1F.js → Star01-CcqeVuiB.js} +1 -1
  30. package/dist/client/assets/{Stars01-C5OHOPFz.js → Stars01-DPtvvdoO.js} +1 -1
  31. package/dist/client/assets/{Stars02-CZbq4s04.js → Stars02-CBo5yRn9.js} +1 -1
  32. package/dist/client/assets/{Sun-Cf7-oPCo.js → Sun-3mIXCMCo.js} +1 -1
  33. package/dist/client/assets/{SwitchHorizontal01-CL-WVKJL.js → SwitchHorizontal01-sphBQf7C.js} +1 -1
  34. package/dist/client/assets/{Tool01-L9YNrSHK.js → Tool01-amKiTv_b.js} +1 -1
  35. package/dist/client/assets/{Trash01-ByjeUf7D.js → Trash01-BT4ilIPK.js} +1 -1
  36. package/dist/client/assets/{Upload01-D_GxH1eE.js → Upload01-BkQ_zMKL.js} +1 -1
  37. package/dist/client/assets/{User01-CywZ64ch.js → User01-CH7_LQmm.js} +1 -1
  38. package/dist/client/assets/{Users01-B8cMKPLt.js → Users01-CnZ2Roup.js} +1 -1
  39. package/dist/client/assets/{Users03-8eADDz1p.js → Users03-CmglzELT.js} +1 -1
  40. package/dist/client/assets/{X-Cxfegysx.js → X-qcOOWAtI.js} +1 -1
  41. package/dist/client/assets/{XCircle-C1Lq1s5p.js → XCircle-CT-_JXb1.js} +1 -1
  42. package/dist/client/assets/{XClose-BFtkUuVA.js → XClose-DomlRImj.js} +1 -1
  43. package/dist/client/assets/{Zap-CVYOxRyE.js → Zap-CxUBxE7Q.js} +1 -1
  44. package/dist/client/assets/{ZapSquare-3nNL32rb.js → ZapSquare-7_dunRt3.js} +1 -1
  45. package/dist/client/assets/{ZoomOut-Cjy1vBNn.js → ZoomOut-zzj1Yb1Q.js} +1 -1
  46. package/dist/client/assets/{access-gate-5AsboLhc.js → access-gate-CFPgBrZd.js} +1 -1
  47. package/dist/client/assets/{add-section-modal-B52tOqV7.js → add-section-modal-v88v4dtQ.js} +1 -1
  48. package/dist/client/assets/{agent-capabilities-CAEXM6w8.js → agent-capabilities-CSURkLnp.js} +1 -1
  49. package/dist/client/assets/{agent-icon-Cc0s6-It.js → agent-icon-Bpn4vmwk.js} +1 -1
  50. package/dist/client/assets/agents-list-DhGscGi0.js +1 -0
  51. package/dist/client/assets/{ai-providers-DbFFDJMw.js → ai-providers-CusZQcmn.js} +1 -1
  52. package/dist/client/assets/{alert-Ce83aCF-.js → alert-DjvkEAWH.js} +1 -1
  53. package/dist/client/assets/{alert-dialog-C8qZjIW4.js → alert-dialog-D89Htmbu.js} +1 -1
  54. package/dist/client/assets/{app-editor-D_ToGxdM.js → app-editor-DasD0nef.js} +1 -1
  55. package/dist/client/assets/{auth-GTZIVAM5.js → auth-BdSGxC3I.js} +1 -1
  56. package/dist/client/assets/{auth-catchall-Cg1vYP8F.js → auth-catchall-D0OPKZLC.js} +1 -1
  57. package/dist/client/assets/{auth-entry-BQi-cqaa.js → auth-entry-Bon47o2Q.js} +1 -1
  58. package/dist/client/assets/{auth-split-layout-nGeEzMtY.js → auth-split-layout-BL2qOoIo.js} +1 -1
  59. package/dist/client/assets/{authenticate-and-persist-oauth-iOuozaKa.js → authenticate-and-persist-oauth-CkzriR7-.js} +1 -1
  60. package/dist/client/assets/{automation-list-row-D6xGA3p-.js → automation-list-row-Cj66zPP0.js} +1 -1
  61. package/dist/client/assets/{automation-runs-C0CRpFyP.js → automation-runs-BD87pr2w.js} +1 -1
  62. package/dist/client/assets/{automations-C7Iodjni.js → automations-C_5qHmoD.js} +1 -1
  63. package/dist/client/assets/{avatar-B5kOA9WI.js → avatar-DThCOxyI.js} +1 -1
  64. package/dist/client/assets/{badge-D6uP03om.js → badge-Bnz52atj.js} +1 -1
  65. package/dist/client/assets/{block-document-p50pciRQ.js → block-document-DYQfpC5G.js} +1 -1
  66. package/dist/client/assets/{brand-context-Dgo1D9eF.js → brand-context-CYghD84B.js} +1 -1
  67. package/dist/client/assets/{breadcrumb-BmjmoHmx.js → breadcrumb-dXhgRWlV.js} +1 -1
  68. package/dist/client/assets/{buckets-D1NKBPao.js → buckets-N6D9PmFb.js} +1 -1
  69. package/dist/client/assets/{bulk-category-panel-CNKU8ImY.js → bulk-category-panel-Dhi81gcq.js} +1 -1
  70. package/dist/client/assets/{capability-load-error-Bd3c-cLm.js → capability-load-error-A_g64qzS.js} +1 -1
  71. package/dist/client/assets/{card-C_qjPzYf.js → card-BIAEcKaX.js} +1 -1
  72. package/dist/client/assets/{category-editor-g6ZbFEE7.js → category-editor-BVkJ2HMA.js} +1 -1
  73. package/dist/client/assets/{chat-context-ByTYLNoL.js → chat-context-C8Ow__ZS.js} +1 -1
  74. package/dist/client/assets/{checkbox-IVi6FxRI.js → checkbox-htEYg7hN.js} +1 -1
  75. package/dist/client/assets/{cli-auth-success-PrkfT2GQ.js → cli-auth-success-iFhaNmop.js} +1 -1
  76. package/dist/client/assets/{collection-detail-CSQwMvM4.js → collection-detail-ogWibujT.js} +1 -1
  77. package/dist/client/assets/{collection-display-button-LzWMNP_g.js → collection-display-button-N2_1xXmq.js} +1 -1
  78. package/dist/client/assets/{collection-search-DlJqnEnN.js → collection-search-B2lHhJg7.js} +1 -1
  79. package/dist/client/assets/{collection-table-wrapper-miatPT0r.js → collection-table-wrapper-ny2MyGt-.js} +1 -1
  80. package/dist/client/assets/{collection-tabs-Ddj5OV4K.js → collection-tabs-DJAjuTym.js} +1 -1
  81. package/dist/client/assets/{command-DBEAqAyW.js → command-DW__nXl-.js} +1 -1
  82. package/dist/client/assets/{commerce-onboarding-BuAGX6mk.js → commerce-onboarding-CtmAqzbu.js} +1 -1
  83. package/dist/client/assets/{connect-desktop-dialog-9PwWZcOG.js → connect-desktop-dialog-BXrEDJjN.js} +1 -1
  84. package/dist/client/assets/{connection-card-Frgp8uNI.js → connection-card-DwDmg3I4.js} +1 -1
  85. package/dist/client/assets/{connection-detail-DycA16vV.js → connection-detail-Ib2qY1G4.js} +1 -1
  86. package/dist/client/assets/{connection-form-helpers-BCIAdCMG.js → connection-form-helpers-CCsm66SK.js} +1 -1
  87. package/dist/client/assets/{connections-CUr_RyWb.js → connections-BWVKT21m.js} +1 -1
  88. package/dist/client/assets/{decopilot-B0QI2CPo.js → decopilot-CM14kGlf.js} +1 -1
  89. package/dist/client/assets/{decopilot-sse-pool-BFYSJGye.js → decopilot-sse-pool-GwcG_51U.js} +1 -1
  90. package/dist/client/assets/{dialog-CGHly-S3.js → dialog-CrbEr2ON.js} +1 -1
  91. package/dist/client/assets/{domain-settings-BCIkUekG.js → domain-settings-D7raZyul.js} +1 -1
  92. package/dist/client/assets/{drawer-BCi-L5yO.js → drawer-CM296nHC.js} +1 -1
  93. package/dist/client/assets/{dropdown-menu-CPjaU3zE.js → dropdown-menu-DeTQXnAe.js} +1 -1
  94. package/dist/client/assets/{empty-state-HBFSVDVN.js → empty-state-D6CSn3uv.js} +1 -1
  95. package/dist/client/assets/{extract-connection-data-bWTbY7ZG.js → extract-connection-data-C1Qu0LAM.js} +1 -1
  96. package/dist/client/assets/{file-explorer-D-gxlWmt.js → file-explorer-BTmQaUnW.js} +1 -1
  97. package/dist/client/assets/{file-type-icon-BPsViEd4.js → file-type-icon-9xxZwDvF.js} +1 -1
  98. package/dist/client/assets/{files-DPuvTo8k.js → files-CL1omg3u.js} +1 -1
  99. package/dist/client/assets/{form-Ch8PTyK2.js → form-BtbkcSC0.js} +1 -1
  100. package/dist/client/assets/{general-BXI-1m9U.js → general-lKYw2M8O.js} +1 -1
  101. package/dist/client/assets/{github-repo-picker-CiHpHB9o.js → github-repo-picker-BFDXXefm.js} +1 -1
  102. package/dist/client/assets/{hooks-CEcs5mAo.js → hooks-BFyNc1z5.js} +1 -1
  103. package/dist/client/assets/{index-DJvpNiMt.js → index-BKfSP92l.js} +1 -1
  104. package/dist/client/assets/{index-BrnDGgtb.js → index-BWDK_8V9.js} +3 -3
  105. package/dist/client/assets/{index-CsgFYV-3.js → index-BkGXCgUJ.js} +1 -1
  106. package/dist/client/assets/{index-BVZJyX02.js → index-Bpr-BKwu.js} +1 -1
  107. package/dist/client/assets/{index-mIADVrX8.js → index-C14zBCGy.js} +1 -1
  108. package/dist/client/assets/{index-Yod6RqId.js → index-C3vRPOH8.js} +1 -1
  109. package/dist/client/assets/{index-CUJN20Hi.js → index-CXYhODD_.js} +1 -1
  110. package/dist/client/assets/{index-mGKyIa6R.js → index-CbpoJFB3.js} +1 -1
  111. package/dist/client/assets/{index-214gEUGI.js → index-Cg4Q1jfM.js} +1 -1
  112. package/dist/client/assets/{index-zHnzAKIs.js → index-CsRdgoQ9.js} +1 -1
  113. package/dist/client/assets/{index-GjZhoTw-.js → index-DhsxhRqA.js} +1 -1
  114. package/dist/client/assets/{index-Cti8keE8.js → index-Dpwr8uM3.js} +28 -28
  115. package/dist/client/assets/{index-B0oVJ1pj.js → index-h2Ixs44L.js} +1 -1
  116. package/dist/client/assets/{index-redirect-hp4e0tAv.js → index-redirect-NcWgQwmu.js} +1 -1
  117. package/dist/client/assets/{index-_GCsDFiB.js → index-wU0AZBKx.js} +1 -1
  118. package/dist/client/assets/{input-RQ3IOLfb.js → input-Bn06cWcU.js} +1 -1
  119. package/dist/client/assets/{integration-icon-BDBDU7Xg.js → integration-icon-DZaH0QO8.js} +1 -1
  120. package/dist/client/assets/{invite-member-dialog-BSEGOBsT.js → invite-member-dialog-EaUlSrfI.js} +1 -1
  121. package/dist/client/assets/{label-C_wTpfgw.js → label-DLsqtuK-.js} +1 -1
  122. package/dist/client/assets/{library-tab-QndQYycO.js → library-tab-BKbNmAuD.js} +1 -1
  123. package/dist/client/assets/{login-Bz7udHmd.js → login-pju0-b63.js} +1 -1
  124. package/dist/client/assets/{mcp-oauth-qLbIUFWD.js → mcp-oauth-BRULTxdg.js} +1 -1
  125. package/dist/client/assets/{members-BVwO--u4.js → members-BPZ0w2Ky.js} +1 -1
  126. package/dist/client/assets/{monaco-editor-L0NomGiC.js → monaco-editor--1euuatk.js} +1 -1
  127. package/dist/client/assets/{monitoring-stats-row-C5BXiMwf.js → monitoring-stats-row-DQJTn5kz.js} +1 -1
  128. package/dist/client/assets/{oauth-callback-B_7qdpyl.js → oauth-callback-YcawaNG5.js} +1 -1
  129. package/dist/client/assets/{oauth-callback-ai-provider-BFikYmJL.js → oauth-callback-ai-provider-B6XTqeCX.js} +1 -1
  130. package/dist/client/assets/{onboarding-S8V3L-n1.js → onboarding-CrTWayca.js} +1 -1
  131. package/dist/client/assets/{org-install-Dtc5vpwO.js → org-install-hHhg_9i3.js} +1 -1
  132. package/dist/client/assets/{org-layout-Bt48Vsbg.js → org-layout-CuYDOYdt.js} +1 -1
  133. package/dist/client/assets/{organization-choice-4FPZsdsT.js → organization-choice-CRnmZQN6.js} +1 -1
  134. package/dist/client/assets/{page-seo-form-CqsKlFjU.js → page-seo-form-Bwo-AW7K.js} +1 -1
  135. package/dist/client/assets/page-seo-sheet-CZVX2hhy.js +1 -0
  136. package/dist/client/assets/{popover-By_QCizR.js → popover-sC06djmn.js} +1 -1
  137. package/dist/client/assets/{post-editor-D5V0JPXo.js → post-editor-BYPf6wd8.js} +1 -1
  138. package/dist/client/assets/{primitives-ZkGIISWd.js → primitives-CapgaZTv.js} +1 -1
  139. package/dist/client/assets/{profile-BRQla1sS.js → profile-B8zHVH2F.js} +1 -1
  140. package/dist/client/assets/project-app-view-DBUEMTWv.js +1 -0
  141. package/dist/client/assets/record-editor-DLnL79VC.js +1 -0
  142. package/dist/client/assets/registry-4CpdPiDq.js +2 -0
  143. package/dist/client/assets/{registry-layout-Cn9rcqXf.js → registry-layout-DEimRJhI.js} +1 -1
  144. package/dist/client/assets/{require-capability-D7CK6CyN.js → require-capability-NzR4ytgR.js} +1 -1
  145. package/dist/client/assets/{required-auth-layout-GEQ4EFwO.js → required-auth-layout-CxoPFkDa.js} +1 -1
  146. package/dist/client/assets/{reset-password-BQd0ttDA.js → reset-password-DM0UJO3g.js} +1 -1
  147. package/dist/client/assets/{roles-H6OuL3KT.js → roles-meNGAuTi.js} +1 -1
  148. package/dist/client/assets/{scroll-area-Dm8ODmIo.js → scroll-area-BIJqZs0q.js} +1 -1
  149. package/dist/client/assets/{search-input-DmQbCWOB.js → search-input-CX60-G4o.js} +1 -1
  150. package/dist/client/assets/{secrets-B4Pp34O2.js → secrets-DWALGZvS.js} +1 -1
  151. package/dist/client/assets/{sections-editor-CNVr78mi.js → sections-editor-Bn18dGPx.js} +1 -1
  152. package/dist/client/assets/{select-BeUEI99x.js → select-BQFf2okn.js} +1 -1
  153. package/dist/client/assets/{select-model-DHcGvDgr.js → select-model-DDItFn2t.js} +1 -1
  154. package/dist/client/assets/{seo-editor-z3Sp5QXt.js → seo-editor-D2hfE3GL.js} +1 -1
  155. package/dist/client/assets/{settings-layout-nNcsR3_m.js → settings-layout-C4yFyGpE.js} +1 -1
  156. package/dist/client/assets/{settings-section-DGxeigfE.js → settings-section-DnlYAHwT.js} +1 -1
  157. package/dist/client/assets/{sheet-DiyiQq33.js → sheet-Cr3G8NSP.js} +1 -1
  158. package/dist/client/assets/{shell-controls-CeG07Ee2.js → shell-controls-D1jsN5Jy.js} +1 -1
  159. package/dist/client/assets/{shell-layout-DHfw-6ln.js → shell-layout-DoTMkA6N.js} +1 -1
  160. package/dist/client/assets/{sidebar-9aSb-Rs4.js → sidebar-DNxpfAHl.js} +1 -1
  161. package/dist/client/assets/{skeleton-QN_vFWqS.js → skeleton-BN576j2f.js} +1 -1
  162. package/dist/client/assets/{sso-D-e7OvDE.js → sso-CqqI9R-x.js} +1 -1
  163. package/dist/client/assets/{store-Dc1GFOIr.js → store-BMMRHLVg.js} +1 -1
  164. package/dist/client/assets/store-registry-CzX3mtZn.js +2 -0
  165. package/dist/client/assets/{studio-tools-B8zbYgkH.js → studio-tools-DjdAUVi5.js} +1 -1
  166. package/dist/client/assets/{switch-C3VLj4Bg.js → switch-ByNNknhg.js} +1 -1
  167. package/dist/client/assets/{tab-id-CLpu897Q.js → tab-id-Bgchl1bv.js} +1 -1
  168. package/dist/client/assets/{table-Cc_X23K1.js → table-DGlgHW2U.js} +1 -1
  169. package/dist/client/assets/{tabs-RKxRZWW6.js → tabs-CJ7Ed03N.js} +1 -1
  170. package/dist/client/assets/{task-row-CAN43TFz.js → task-row-XDBwhFRd.js} +1 -1
  171. package/dist/client/assets/{task-status-CZwz8ngo.js → task-status-FKD4FAEa.js} +1 -1
  172. package/dist/client/assets/{textarea-DZuV78X1.js → textarea-CYEmgbD6.js} +1 -1
  173. package/dist/client/assets/{toggle-group-C3kEGTKk.js → toggle-group-oE-D4r6Q.js} +1 -1
  174. package/dist/client/assets/{toolbar-BhRbHX3B.js → toolbar-CNo6c8lI.js} +1 -1
  175. package/dist/client/assets/{toolbar-icon-button-Cbx1RDMe.js → toolbar-icon-button-DRyN2Qxg.js} +1 -1
  176. package/dist/client/assets/{tools-list-BK5tybK5.js → tools-list-D4dFlSih.js} +1 -1
  177. package/dist/client/assets/{tooltip-Cwk_fw75.js → tooltip-DvS6Crps.js} +1 -1
  178. package/dist/client/assets/{types-DMZJADYV.js → types-BvJa9wDM.js} +1 -1
  179. package/dist/client/assets/{use-ai-providers-DRH2FHYu.js → use-ai-providers-C-5aLvB2.js} +1 -1
  180. package/dist/client/assets/{use-automations-BE3GWjEz.js → use-automations-C07MeDLB.js} +1 -1
  181. package/dist/client/assets/{use-capability-DdiLqtgk.js → use-capability-Dchx1k5k.js} +1 -1
  182. package/dist/client/assets/{use-clock-tick-kWxMOV20.js → use-clock-tick-Cfgkzl_Y.js} +1 -1
  183. package/dist/client/assets/{use-collections-Cv2ZnR9j.js → use-collections-DGBSgfax.js} +1 -1
  184. package/dist/client/assets/{use-connection-CHNW_wHE.js → use-connection-BXLV43OV.js} +1 -1
  185. package/dist/client/assets/{use-copy-oRxVHk9W.js → use-copy-C6II18ns.js} +1 -1
  186. package/dist/client/assets/{use-create-virtual-mcp-DA1cvAMw.js → use-create-virtual-mcp-BRbxIReI.js} +1 -1
  187. package/dist/client/assets/{use-debounced-autosave-B-elnNFT.js → use-debounced-autosave-IyxTpD2R.js} +1 -1
  188. package/dist/client/assets/{use-debounced-value-C_ndfQI8.js → use-debounced-value-CBRKIm3O.js} +1 -1
  189. package/dist/client/assets/{use-decopilot-events-ByQvpYBj.js → use-decopilot-events-CDrZ8uOi.js} +1 -1
  190. package/dist/client/assets/{use-delete-connection-CTZgMDTD.js → use-delete-connection-BWbMWEtF.js} +1 -1
  191. package/dist/client/assets/{use-file-configs-U1XAVJbO.js → use-file-configs-B-YgXEMh.js} +1 -1
  192. package/dist/client/assets/{use-infinite-scroll-rHU5tIRx.js → use-infinite-scroll-nhW-keN6.js} +1 -1
  193. package/dist/client/assets/{use-join-requests-CBYtYyPA.js → use-join-requests-DgNp04dV.js} +1 -1
  194. package/dist/client/assets/{use-mcp-client-DOru5-16.js → use-mcp-client-C-eUJnWU.js} +1 -1
  195. package/dist/client/assets/{use-mcp-prompts-BrEyQTGH.js → use-mcp-prompts-CTEXcmA1.js} +1 -1
  196. package/dist/client/assets/{use-mcp-tools-CSfbiFCq.js → use-mcp-tools-BHai-Lav.js} +1 -1
  197. package/dist/client/assets/{use-members-MzkD_5K7.js → use-members-XAmOQ2aJ.js} +1 -1
  198. package/dist/client/assets/{use-mobile-DK7Dzpym.js → use-mobile-BZOcrXXX.js} +1 -1
  199. package/dist/client/assets/{use-navigate-to-agent-BjD6T1hH.js → use-navigate-to-agent-C2N35pEJ.js} +1 -1
  200. package/dist/client/assets/{use-org-auth-client-CVPukVeB.js → use-org-auth-client-DrbtFx4e.js} +1 -1
  201. package/dist/client/assets/{use-org-sso-D9Z91_sd.js → use-org-sso-isskoluM.js} +1 -1
  202. package/dist/client/assets/{use-organization-roles-WKnerBv6.js → use-organization-roles-tpUXPYvm.js} +1 -1
  203. package/dist/client/assets/{use-organization-settings-s1PDidD3.js → use-organization-settings-9ehJ8gro.js} +1 -1
  204. package/dist/client/assets/{use-registry-connections-CJ5yA_Qb.js → use-registry-connections-W0xtcvNI.js} +1 -1
  205. package/dist/client/assets/{use-secrets-BQtF5emZ.js → use-secrets-D0DA8nrS.js} +1 -1
  206. package/dist/client/assets/{use-status-sounds-CxUk-0-T.js → use-status-sounds-Cf-mN_1k.js} +1 -1
  207. package/dist/client/assets/{use-view-mode-BH4iLU15.js → use-view-mode-C8u3DC-6.js} +1 -1
  208. package/dist/client/assets/{use-virtual-mcp-DEBLSO3a.js → use-virtual-mcp-CR6nYD-5.js} +1 -1
  209. package/dist/client/assets/useInfiniteQuery-X39WQSId.js +1 -0
  210. package/dist/client/assets/useSuspenseInfiniteQuery-D3ladqYD.js +1 -0
  211. package/dist/client/assets/{useSuspenseQueries-BmsU3IS7.js → useSuspenseQueries-CYaJplYj.js} +1 -1
  212. package/dist/client/assets/{variant-calendar-D8vXdxOG.js → variant-calendar-DHqxPRmc.js} +1 -1
  213. package/dist/client/assets/{view-mode-toggle-C62NTeoN.js → view-mode-toggle-DIYjvI2F.js} +1 -1
  214. package/dist/client/index.html +1 -1
  215. package/dist/server/cli.js +1 -1
  216. package/dist/server/server.js +1 -1
  217. package/package.json +1 -1
  218. package/dist/client/assets/agents-list-DkrO_DL3.js +0 -1
  219. package/dist/client/assets/page-seo-sheet-7MBpWPVu.js +0 -1
  220. package/dist/client/assets/project-app-view-DLwrSmnj.js +0 -1
  221. package/dist/client/assets/record-editor-BJSE0OkP.js +0 -1
  222. package/dist/client/assets/registry-D2dwoegg.js +0 -2
  223. package/dist/client/assets/store-registry-COKPIH84.js +0 -2
  224. package/dist/client/assets/useInfiniteQuery-CF-u0ZfK.js +0 -1
  225. package/dist/client/assets/useSuspenseInfiniteQuery-C1v6pgd-.js +0 -1
@@ -1 +1 @@
1
- import{D as Ie,a as en,z as un,p as mn,n as pn,j as n,B as Y,t as K,r as re,m as hn,b as fn,i as we,v as C,K as me,c as xn,C as gn,L as jn,l as vn,k as yn}from"./index-BrnDGgtb.js";import{g as _n}from"./connection-slug-eyAPH6o3.js";import{u as nn,a as tn,g as Cn,C as Oe}from"./connection-card-Frgp8uNI.js";import{C as bn}from"./collection-search-DlJqnEnN.js";import{C as Nn}from"./collection-tabs-Ddj5OV4K.js";import{a as wn,b as Sn,e as In,g as kn}from"./extract-connection-data-bWTbY7ZG.js";import{e as sn,d as on,c as an,a as cn,b as An,D as Dn}from"./dialog-CGHly-S3.js";import{D as Pn,a as Tn,c as Fn,b as Vn,d as Bn,e as Ln,f as Mn}from"./drawer-BCi-L5yO.js";import{u as On}from"./use-mobile-DK7Dzpym.js";import{F as B,b as L,c as M,d as O,e as $,a as Qe}from"./form-Ch8PTyK2.js";import{I as W}from"./input-RQ3IOLfb.js";import{d as $n,S as En,a as Rn,b as zn,c as ue}from"./select-BeUEI99x.js";import{T as Hn}from"./textarea-DZuV78X1.js";import{b as rn}from"./use-connection-CHNW_wHE.js";import{n as Se,c as $e}from"./XCircle-C1Lq1s5p.js";import{s as Ee}from"./Star01-9Y7YmX1F.js";import{af as Kn}from"./agent-icon-Cc0s6-It.js";import{s as Un}from"./XClose-BFtkUuVA.js";import{c as Xn,i as be,a as We,E as qn,p as Gn,b as Qn,d as Wn}from"./connection-form-helpers-BCIAdCMG.js";import{u as Ye}from"./use-infinite-scroll-rHU5tIRx.js";import{a as Re}from"./authenticate-and-persist-oauth-iOuozaKa.js";import{B as Ne}from"./badge-D6uP03om.js";import{T as ze,a as He,b as Ke}from"./tooltip-Cwk_fw75.js";import{u as Yn}from"./useSuspenseInfiniteQuery-C1v6pgd-.js";import{u as Jn}from"./use-mcp-client-DOru5-16.js";import{S as Zn}from"./constants-nH3qQ_1f.js";import{i as Je}from"./Check-BlIS91Z6.js";import{s as et}from"./Plus-Bz1Yu2G8.js";import{u as nt}from"./studio-tools-B8zbYgkH.js";import{u as tt}from"./use-ai-providers-DRH2FHYu.js";function st({open:t,onOpenChange:e,onCreated:m}){const{org:v}=Ie(),{data:h}=en.useSession(),{stdioEnabled:w}=un(),D=On(),E=rn(),d=nn(),R=tn(d,"").items,a=mn({resolver:pn(Xn),defaultValues:{title:"",description:null,icon:null,ui_type:"HTTP",connection_url:"",connection_token:null,npx_package:"",stdio_command:"",stdio_args:"",stdio_cwd:"",env_vars:[]}}),x=a.watch("ui_type"),S=a.watch("connection_url"),F=a.watch("npx_package"),f=be({uiType:x,connectionUrl:S??"",npxPackage:F??""})??We({uiType:x,connectionUrl:S??"",registryItems:R}),r=s=>{const u=s.trim();if(!u)return;const o=!!a.formState.dirtyFields.title,c=!!a.formState.dirtyFields.description,j=!!a.formState.dirtyFields.env_vars,y=l=>{if(l&&(!o&&!a.getValues("title").trim()&&l.title&&a.setValue("title",l.title,{shouldDirty:!1}),!c&&!(a.getValues("description")??"").trim()&&l.description&&a.setValue("description",l.description,{shouldDirty:!1}),!j&&l.envVarKeys?.length)){const N=a.getValues("env_vars")??[],q=new Set(N.map(V=>V.key)),pe=l.envVarKeys.filter(V=>!q.has(V));pe.length>0&&a.setValue("env_vars",[...N,...pe.map(V=>({key:V,value:""}))],{shouldDirty:!0})}},g=Gn(u);if(g&&w){a.setValue("ui_type","NPX",{shouldDirty:!0}),a.setValue("npx_package",g.packageName,{shouldDirty:!0}),a.setValue("connection_url","",{shouldDirty:!0}),a.setValue("connection_token",null,{shouldDirty:!0}),y(be({uiType:"NPX",npxPackage:g.packageName}));return}if(u.startsWith("http://")||u.startsWith("https://")){const l=x==="HTTP"||x==="SSE"||x==="Websocket"?x:"HTTP";a.setValue("ui_type",l,{shouldDirty:!0}),a.setValue("connection_url",u,{shouldDirty:!0}),y(be({uiType:l,connectionUrl:u})??We({uiType:l,connectionUrl:u,registryItems:R}));return}x==="NPX"&&y(be({uiType:"NPX",npxPackage:u}))},z=s=>{s||a.reset(),e(s)},b=async s=>{let u,o=null,c=null,j=null;s.ui_type==="NPX"?(u="STDIO",o="",j=Qn(s.npx_package||"",s.env_vars||[])):s.ui_type==="STDIO"?(u="STDIO",o="",j=Wn(s.stdio_command||"",s.stdio_args||"",s.stdio_cwd,s.env_vars||[])):(u=s.ui_type,o=s.connection_url||"",c=s.connection_token||null);const y=wn("conn");try{await E.create.mutateAsync({id:y,title:s.title,description:s.description||null,connection_type:u,connection_url:o,connection_token:c,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:h?.user?.id||"system",organization_id:v.id,icon:s.icon??null,app_name:null,app_id:null,connection_headers:j,oauth_config:null,configuration_state:null,metadata:null,tools:null,bindings:null,status:"inactive"}),a.reset(),e(!1),m?.(y)}catch{K.error("Failed to create connection")}},k="Create Connection",I="Create a custom connection in your organization. Fill in the details below.",U=a.formState.isSubmitting?"Saving...":"Create Connection",P=n.jsxs("div",{className:"grid gap-4",children:[n.jsx(B,{control:a.control,name:"ui_type",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Type *"}),n.jsxs($n,{value:s.value,onValueChange:s.onChange,children:[n.jsx(O,{children:n.jsx(En,{children:n.jsx(Rn,{})})}),n.jsxs(zn,{children:[n.jsx(ue,{value:"HTTP",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Ee,{className:"w-4 h-4"}),"HTTP"]})}),n.jsx(ue,{value:"SSE",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Ee,{className:"w-4 h-4"}),"SSE"]})}),n.jsx(ue,{value:"Websocket",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Ee,{className:"w-4 h-4"}),"Websocket"]})}),w&&n.jsxs(n.Fragment,{children:[n.jsx(ue,{value:"NPX",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Se,{className:"w-4 h-4"}),"NPX Package"]})}),n.jsx(ue,{value:"STDIO",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Kn,{className:"w-4 h-4"}),"Custom Command"]})})]})]})]}),n.jsx($,{})]})}),x==="NPX"&&n.jsx(B,{control:a.control,name:"npx_package",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"NPM Package *"}),n.jsx(O,{children:n.jsx(W,{placeholder:"@perplexity-ai/mcp-server",...s,value:s.value??"",onPaste:u=>{const o=u.clipboardData.getData("text");o&&(u.preventDefault(),a.setValue("npx_package",o.trim(),{shouldDirty:!0}),r(o))},onBlur:u=>{r(u.target.value),s.onBlur()}})}),n.jsx($,{})]})}),x==="STDIO"&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"grid grid-cols-2 gap-4 items-start",children:[n.jsx(B,{control:a.control,name:"stdio_command",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Command *"}),n.jsx(O,{children:n.jsx(W,{placeholder:"node, bun, python...",...s,value:s.value??""})}),n.jsx($,{})]})}),n.jsx(B,{control:a.control,name:"stdio_args",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Arguments"}),n.jsx(O,{children:n.jsx(W,{placeholder:"arg1 arg2 --flag value",...s,value:s.value??""})}),n.jsx($,{})]})})]}),n.jsx(B,{control:a.control,name:"stdio_cwd",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Working Directory"}),n.jsx(O,{children:n.jsx(W,{placeholder:"/path/to/project (optional)",...s,value:s.value??""})}),n.jsx("p",{className:"text-xs text-muted-foreground",children:"Directory where the command will be executed"}),n.jsx($,{})]})})]}),(x==="NPX"||x==="STDIO")&&n.jsx(B,{control:a.control,name:"env_vars",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Environment Variables"}),n.jsx(O,{children:n.jsx(qn,{value:s.value??[],onChange:s.onChange})}),n.jsx($,{})]})}),x!=="NPX"&&x!=="STDIO"&&n.jsxs(n.Fragment,{children:[n.jsx(B,{control:a.control,name:"connection_url",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"URL *"}),n.jsx(O,{children:n.jsx(W,{placeholder:"https://example.com/mcp",...s,value:s.value??"",onPaste:u=>{const o=u.clipboardData.getData("text");o&&(u.preventDefault(),a.setValue("connection_url",o.trim(),{shouldDirty:!0}),r(o))},onBlur:u=>{r(u.target.value),s.onBlur()}})}),n.jsx($,{})]})}),n.jsx(B,{control:a.control,name:"connection_token",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:f?.token?.label??"Token (optional)"}),n.jsx(O,{children:n.jsx(W,{type:"password",placeholder:f?.token?.placeholder??"Bearer token or API key",className:"ph-no-capture",...s,value:s.value??""})}),f?.token?.helperText&&n.jsxs("p",{className:"text-xs text-muted-foreground",children:[f.token.helperText,f.id==="github"&&n.jsxs(n.Fragment,{children:[" ","·"," ",n.jsx("a",{className:"text-foreground underline underline-offset-4 hover:text-foreground/80",href:"https://github.com/settings/personal-access-tokens",target:"_blank",rel:"noreferrer",children:"Open GitHub PAT settings"})]})]}),n.jsx($,{})]})})]}),n.jsx(B,{control:a.control,name:"title",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Name *"}),n.jsx(O,{children:n.jsx(W,{placeholder:"My Connection",...s})}),n.jsx($,{})]})}),n.jsx(B,{control:a.control,name:"description",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Description"}),n.jsx(O,{children:n.jsx(Hn,{placeholder:"A brief description of this connection",rows:3,...s,value:s.value??""})}),n.jsx($,{})]})})]});return D?n.jsx(Pn,{open:t,onOpenChange:z,children:n.jsxs(Tn,{className:"max-h-[90vh]",children:[n.jsx(Fn,{className:"pb-2",children:n.jsxs("div",{className:"flex items-start justify-between gap-4",children:[n.jsxs("div",{className:"flex-1 text-left",children:[n.jsx(Vn,{children:k}),n.jsx(Bn,{className:"mt-1",children:I})]}),n.jsx(Ln,{asChild:!0,children:n.jsx(Y,{variant:"ghost",size:"icon",className:"shrink-0 -mt-1",children:n.jsx(Un,{size:16})})})]})}),n.jsx(Qe,{...a,children:n.jsxs("form",{onSubmit:a.handleSubmit(b),children:[n.jsx("div",{className:"overflow-y-auto px-4 pb-4",children:P}),n.jsx(Mn,{children:n.jsx(Y,{type:"submit",disabled:a.formState.isSubmitting,className:"w-full",children:U})})]})})]})}):n.jsx(sn,{open:t,onOpenChange:z,children:n.jsxs(on,{className:"sm:max-w-[525px]",children:[n.jsxs(an,{children:[n.jsx(cn,{children:k}),n.jsx(An,{children:I})]}),n.jsx(Qe,{...a,children:n.jsxs("form",{onSubmit:a.handleSubmit(b),children:[n.jsx("div",{className:"py-4",children:P}),n.jsxs(Dn,{children:[n.jsx(Y,{type:"button",variant:"outline",onClick:()=>z(!1),children:"Cancel"}),n.jsx(Y,{type:"submit",disabled:a.formState.isSubmitting,className:"min-w-40",children:U})]})]})})]})})}function ot(t){const e=xn.c(73),{mode:m,agentId:v,addedConnectionIds:h,onAdd:w,onCloneAndAdd:D,onConnectAndAdd:E,connectingItemId:d,search:_,onCreateConnection:R,onBrowseNavigate:a,defaultTab:x}=t,S=m===void 0?"add":m,F=x===void 0?"connected":x,{org:f}=Ie(),r=re.useDeferredValue(_),z=_!==r,b=r.trim().toLowerCase();let k;e[0]!==F?(k=i=>i??F,e[0]=F,e[1]=k):k=e[1];const[I,U]=gn(jn.connectionsTab(f.slug)+(F==="all"?":home-modal":":agent-modal"),k);let P;e[2]!==I||e[3]!==U?(P=i=>{i!==I&&C("connections_dialog_tab_changed",{to_tab:i}),U(i)},e[2]=I,e[3]=U,e[4]=P):P=e[4];const s=P;let u;e[5]!==f.id||e[6]!==f.slug?(u={connectionId:Zn,orgId:f.id,orgSlug:f.slug},e[5]=f.id,e[6]=f.slug,e[7]=u):u=e[7];const o=Jn(u);let c,j,y;if(e[8]!==o||e[9]!==r||e[10]!==f.id){y=r?.trim()?{operator:"or",conditions:[{field:["title"],operator:"contains",value:r.trim()},{field:["description"],operator:"contains",value:r.trim()}]}:void 0;const i={...y&&{where:y},orderBy:[{field:["updated_at"],direction:"asc"}],limit:100,offset:0},p=JSON.stringify(i);j=Yn,c=me.collectionListInfinite(o,f.id,"","CONNECTIONS",p),e[8]=o,e[9]=r,e[10]=f.id,e[11]=c,e[12]=j,e[13]=y}else c=e[11],j=e[12],y=e[13];let g;e[14]!==o||e[15]!==y?(g=async i=>{const{pageParam:p}=i,H=p===void 0?0:p;return(await o.callTool({name:"COLLECTION_CONNECTIONS_LIST",arguments:{...y&&{where:y},orderBy:[{field:["updated_at"],direction:"asc"}],limit:100,offset:H}})).structuredContent},e[14]=o,e[15]=y,e[16]=g):g=e[16];let l;e[17]!==c||e[18]!==g?(l={queryKey:c,queryFn:g,initialPageParam:0,getNextPageParam:dt,staleTime:3e4},e[17]=c,e[18]=g,e[19]=l):l=e[19];const{data:N,fetchNextPage:q,hasNextPage:pe,isFetchingNextPage:V}=j(l),Xe=N?.pages.flatMap(lt)??[],he=Cn(Xe),ln=new Set(Xe.filter(rt).map(ct)),fe=nn(),G=tn(fe,r),ke=Ye(G.loadMore,G.hasMore,G.isLoadingMore),Ae=Ye(q,pe??!1,V),T=I==="all"||!!b,qe=T?G.items.filter(i=>{const p=Sn(i);if(p&&ln.has(p))return!1;if(!b)return!0;const H=i._meta?.["mcp.mesh"];return[i.title,i.description,i.name,i.server?.title,i.server?.description,i.server?.name,H?.friendly_name,H?.friendlyName].filter(Boolean).join(" ").toLowerCase().includes(b)}):[],le=qe.filter(it),de=qe.filter(at);let xe;e[20]!==h?(xe=i=>i.some(p=>h.has(p.id)),e[20]=h,e[21]=xe):xe=e[21];const De=xe;let ge;e[22]!==h||e[23]!==v||e[24]!==d||e[25]!==De||e[26]!==S||e[27]!==w||e[28]!==a||e[29]!==D?(ge=(i,p,H,ie,X)=>{const Ce=De(X),ce=X.find(Q=>!h.has(Q.id)),A=X[0];if(S==="browse"){const Q=_n(A);return n.jsx(Oe,{connection:{title:p,icon:H,description:X.length>1?`${X.length} instances`:ie??void 0},fallbackIcon:n.jsx(Se,{}),headerActionsAlwaysVisible:!0,headerActions:n.jsxs(Ne,{variant:"secondary",className:"text-xs gap-1 font-normal",children:[n.jsx(Je,{size:11})," Connected"]}),onClick:()=>{C("connection_browse_clicked",{app_name:A.app_name??null,connection_id:A.id,instances_count:X.length}),a?.(Q)}},i)}return n.jsx(Oe,{connection:{title:p,icon:H,description:ie},fallbackIcon:n.jsx(Se,{}),headerActionsAlwaysVisible:!0,headerActions:n.jsxs("div",{className:"flex items-center gap-1.5",children:[Ce&&n.jsxs(Ne,{variant:"secondary",className:"text-xs gap-1 font-normal",children:[n.jsx(Je,{size:11})," Added"]}),n.jsx(Y,{variant:"outline",size:"sm",className:"h-7 px-3 text-xs font-medium",disabled:d!==null,onClick:Q=>{Q.stopPropagation(),ce?(C("connection_add_clicked",{action:"use_existing",app_name:A.app_name??null,connection_id:ce.id}),v&&C("agent_connection_attached",{agent_id:v,connection_id:ce.id,app_name:A.app_name??null,mode:"existing"}),w(ce.id)):(C("connection_add_clicked",{action:"clone",app_name:A.app_name??null,base_connection_id:A.id}),D(A))},children:"Add"})]})},i)},e[22]=h,e[23]=v,e[24]=d,e[25]=De,e[26]=S,e[27]=w,e[28]=a,e[29]=D,e[30]=ge):ge=e[30];const je=ge;let ve;e[31]!==d||e[32]!==S||e[33]!==E?(ve=i=>{const p=i._meta?.["mcp.mesh"],H=p?.friendlyName||p?.friendly_name||i.server?.title||i.title||i.server?.name||i.name||i.id||"",ie=i.server?.description||i.description||null,X=i.server?.icons?.[0]?.src||kn(i.server?.repository)||null,Ce=p?.official===!0,ce=p?.verified===!0,A=p?.owner==="deco";return n.jsx(Oe,{connection:{title:H,description:ie,icon:X},fallbackIcon:n.jsx(Se,{}),headerActionsAlwaysVisible:!0,headerActions:n.jsxs("div",{className:"flex items-center gap-1.5",children:[A&&n.jsxs(ze,{children:[n.jsx(He,{asChild:!0,children:n.jsx("span",{className:"inline-flex items-center justify-center size-5 rounded-md bg-muted shrink-0",children:n.jsx("img",{src:"/logos/deco logo.svg",alt:"Made by Deco",className:"size-3"})})}),n.jsx(Ke,{children:"Built and maintained by Deco"})]}),!A&&Ce&&n.jsxs(ze,{children:[n.jsx(He,{asChild:!0,children:n.jsx(Ne,{variant:"outline",size:"icon",children:n.jsx($e,{})})}),n.jsx(Ke,{children:"Built and maintained by the official vendor"})]}),!A&&!Ce&&ce&&n.jsxs(ze,{children:[n.jsx(He,{asChild:!0,children:n.jsx(Ne,{variant:"outline",size:"icon",children:n.jsx($e,{})})}),n.jsx(Ke,{children:"Verified by the Deco team"})]}),n.jsx(Y,{variant:"outline",size:"sm",className:"h-7 px-3 text-xs font-medium",disabled:d!==null,onClick:Q=>{Q.stopPropagation(),C("connection_add_clicked",{action:"connect_new",registry_item_id:i.id,app_name:p?.friendlyName||i.server?.name||i.name||null}),E(i)},children:d===i.id?n.jsx(we,{size:14,className:"animate-spin"}):S==="browse"?"Connect":"Add"})]})},`catalog-${i.id}`)},e[31]=d,e[32]=S,e[33]=E,e[34]=ve):ve=e[34];const Ge=ve,Pe=!b&&n.jsxs("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border shrink-0",children:[n.jsx(Nn,{tabs:[{id:"all",label:"All"},{id:"connected",label:"Connected"}],activeTab:I,onTabChange:i=>s(i)}),n.jsxs(Y,{variant:"outline",size:"sm",className:"h-7 px-2 text-sm",onClick:()=>{C("connections_dialog_custom_clicked"),R()},children:[n.jsx(et,{size:12}),"Custom Connection"]})]}),Te=z&&"opacity-50 pointer-events-none";let J;e[35]!==Te?(J=vn("flex-1 overflow-auto p-5 transition-opacity duration-150",Te),e[35]=Te,e[36]=J):J=e[36];const dn="grid grid-cols-[repeat(auto-fill,minmax(260px,1fr))] gap-4";let ye;e[37]!==je?(ye=i=>{if(i.type==="group")return je(i.key,i.title,i.icon,null,i.connections);const p=i.connection;return je(p.id,p.title,p.icon,p.description??null,[p])},e[37]=je,e[38]=ye):ye=e[38];const Fe=he.map(ye);let Z;e[39]!==Ae?(Z=n.jsx("div",{ref:Ae,className:"col-span-full h-1"}),e[39]=Ae,e[40]=Z):Z=e[40];let ee;e[41]!==V?(ee=V&&n.jsx("div",{className:"col-span-full flex justify-center py-6",children:n.jsx(we,{size:24,className:"animate-spin text-muted-foreground"})}),e[41]=V,e[42]=ee):ee=e[42];const Ve=T&&le.length>0&&n.jsxs("div",{className:"col-span-full flex items-center gap-2 mt-2",children:[n.jsx($e,{size:13,className:"text-muted-foreground shrink-0"}),n.jsx("span",{className:"text-sm font-medium text-muted-foreground whitespace-nowrap",children:"Verified"}),n.jsx("div",{className:"flex-1 h-px bg-border"})]}),Be=T&&le.map(Ge),Le=T&&de.length>0&&n.jsxs("div",{className:"col-span-full flex items-center gap-2 mt-2",children:[n.jsx("span",{className:"text-sm font-medium text-muted-foreground whitespace-nowrap",children:"All connections"}),n.jsx("div",{className:"flex-1 h-px bg-border"})]}),Me=T&&de.map(Ge);let ne;e[43]!==ke||e[44]!==fe||e[45]!==T?(ne=T&&fe.length>0&&n.jsx("div",{ref:ke,className:"col-span-full h-1"}),e[43]=ke,e[44]=fe,e[45]=T,e[46]=ne):ne=e[46];let te;e[47]!==G.isLoadingMore||e[48]!==T?(te=T&&G.isLoadingMore&&n.jsx("div",{className:"col-span-full flex justify-center py-6",children:n.jsx(we,{size:24,className:"animate-spin text-muted-foreground"})}),e[47]=G.isLoadingMore,e[48]=T,e[49]=te):te=e[49];let se;e[50]!==Fe||e[51]!==Z||e[52]!==ee||e[53]!==Ve||e[54]!==Be||e[55]!==Le||e[56]!==Me||e[57]!==ne||e[58]!==te?(se=n.jsxs("div",{className:dn,children:[Fe,Z,ee,Ve,Be,Le,Me,ne,te]}),e[50]=Fe,e[51]=Z,e[52]=ee,e[53]=Ve,e[54]=Be,e[55]=Le,e[56]=Me,e[57]=ne,e[58]=te,e[59]=se):se=e[59];let oe;e[60]!==I||e[61]!==he.length||e[62]!==de||e[63]!==_||e[64]!==le?(oe=he.length===0&&le.length===0&&de.length===0&&n.jsx("div",{className:"flex items-center justify-center h-48 text-sm text-muted-foreground",children:_?`No connections match "${_}"`:I==="connected"?"No connections yet":"No connections available"}),e[60]=I,e[61]=he.length,e[62]=de,e[63]=_,e[64]=le,e[65]=oe):oe=e[65];let ae;e[66]!==J||e[67]!==se||e[68]!==oe?(ae=n.jsxs("div",{className:J,children:[se,oe]}),e[66]=J,e[67]=se,e[68]=oe,e[69]=ae):ae=e[69];let _e;return e[70]!==Pe||e[71]!==ae?(_e=n.jsxs(n.Fragment,{children:[Pe,ae]}),e[70]=Pe,e[71]=ae,e[72]=_e):_e=e[72],_e}function at(t){return!t.verified&&!t._meta?.["mcp.mesh"]?.verified&&!t.meta?.verified}function it(t){return t.verified||t._meta?.["mcp.mesh"]?.verified||t.meta?.verified}function ct(t){return t.app_name}function rt(t){return t.app_name}function lt(t){return t?.items??[]}function dt(t,e){if(t?.hasMore)return e.reduce(ut,0)}function ut(t,e){return t+(e?.items?.length??0)}function zt({open:t,onOpenChange:e,defaultTab:m,initialSearch:v="",...h}){const w=h.mode??"add",D="agentId"in h?h.agentId:void 0,E="addedConnectionIds"in h?h.addedConnectionIds??new Set:new Set,d="onAdd"in h&&h.onAdd?h.onAdd:o=>{},_=(o,c,j)=>{D&&C("agent_connection_attached",{agent_id:D,connection_id:o,app_name:c,mode:j})},[R,a]=re.useState(null),[x,S]=re.useState(v),[F,f]=re.useState(!1),{org:r}=Ie(),{data:z}=en.useSession(),b=rn(),k=hn(),I=fn(),U=o=>{e(!1),I({to:"/$org/settings/connections/$appSlug",params:{org:r.slug,appSlug:o}})},P=()=>{k.invalidateQueries({predicate:o=>{const c=o.queryKey;return c[1]===r.id&&c[3]==="collection"&&c[4]==="CONNECTIONS"}})},s=async o=>{a(o.app_name??o.id);try{const j=`${o.title.replace(/\s*\(\d+\)\s*$/,"")} (${Date.now().toString(36).slice(-4)})`,g=(await b.create.mutateAsync({title:j,description:o.description??null,connection_type:o.connection_type,connection_url:o.connection_url??null,connection_token:null,icon:o.icon??null,app_name:o.app_name??null,app_id:o.app_id??null,connection_headers:o.connection_headers??null})).id,l=await Re({connectionId:g,orgId:r.id,orgSlug:r.slug,persistFallback:N=>b.update.mutateAsync({id:g,data:{connection_token:N}}).then(()=>{})});if(l.ran&&!l.ok){C("connection_oauth_failed",{connection_id:g,flow:"clone",error:l.error??"no_token"}),K.error(`Authentication failed: ${l.error??"no token received"}`),await b.delete.mutateAsync(g);return}if(l.ran){C("connection_oauth_succeeded",{connection_id:g,flow:"clone"});const N=new URL(`/api/${r.slug}/mcp/${g}`,window.location.origin);await k.invalidateQueries({queryKey:me.isMCPAuthenticated(N.href,null)}),P()}_(g,o.app_name??null,"clone"),d(g)}catch(c){console.error("Failed to add connection:",c),K.error("Failed to add connection")}finally{a(null)}},u=async o=>{if(!(!r||!z?.user?.id)){a(o.id);try{const c=In(o,r.id,z.user.id,{remoteIndex:0}),j=c.connection_type==="STDIO",y=!!c.connection_url,g=j&&c.connection_headers&&typeof c.connection_headers=="object"&&"command"in c.connection_headers;if(!y&&!g){K.error("This MCP Server cannot be connected: no connection method available"),a(null);return}const{id:l}=await b.create.mutateAsync(c),N=await Re({connectionId:l,orgId:r.id,orgSlug:r.slug,persistFallback:q=>b.update.mutateAsync({id:l,data:{connection_token:q}}).then(()=>{})});if(N.ran&&!N.ok){C("connection_oauth_failed",{connection_id:l,flow:"connect_new",error:N.error??"no_token"}),K.warning("Couldn't sign in to this connection",{description:`It was added to your agent, but its sign-in setup looks off. You can try authenticating again later from the connection's settings. (${N.error??"no token received"})`}),_(l,c.app_name??null,"new"),d(l);return}if(N.ran){C("connection_oauth_succeeded",{connection_id:l,flow:"connect_new"});const q=new URL(`/api/${r.slug}/mcp/${l}`,window.location.origin);await k.invalidateQueries({queryKey:me.isMCPAuthenticated(q.href,null)}),P(),K.success("Connected and authenticated")}else K.success("Connected");_(l,c.app_name??null,"new"),d(l)}catch(c){console.error("Failed to connect:",c),K.error("Failed to connect")}finally{a(null)}}};return n.jsxs(sn,{open:t,onOpenChange:e,children:[n.jsxs(on,{className:"sm:max-w-5xl h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0 overflow-hidden w-[95vw]",children:[n.jsx(an,{className:"px-6 pt-5 pb-0 shrink-0",children:n.jsx(cn,{className:"text-base font-semibold",children:w==="browse"?"Connections":"Add Connection"})}),n.jsx("div",{className:"pt-3 shrink-0",children:n.jsx(bn,{value:x,onChange:S,placeholder:"Search connections..."})}),n.jsx(re.Suspense,{fallback:n.jsx("div",{className:"flex-1 flex items-center justify-center",children:n.jsx(we,{size:24,className:"animate-spin text-muted-foreground"})}),children:n.jsx(ot,{mode:w,agentId:D,addedConnectionIds:E,onAdd:d,onCloneAndAdd:s,onConnectAndAdd:u,connectingItemId:R,search:x,onCreateConnection:()=>f(!0),onBrowseNavigate:U,defaultTab:m})})]}),n.jsx(st,{open:F,onOpenChange:f,onCreated:async o=>{f(!1);const c=await Re({connectionId:o,orgId:r.id,orgSlug:r.slug,persistFallback:j=>b.update.mutateAsync({id:o,data:{connection_token:j}}).then(()=>{})});if(c.ran&&!c.ok){C("connection_oauth_failed",{connection_id:o,flow:"custom_create",error:c.error??"no_token"}),K.warning("Couldn't sign in to this connection",{description:`It was added to your agent, but its sign-in setup looks off. You can try authenticating again later from the connection's settings. (${c.error??"no token received"})`}),_(o,null,"custom"),d(o),e(!1);return}if(c.ran){C("connection_oauth_succeeded",{connection_id:o,flow:"custom_create"});const j=new URL(`/api/${r.slug}/mcp/${o}`,window.location.origin);await k.invalidateQueries({queryKey:me.isMCPAuthenticated(j.href,null)}),P()}_(o,null,"custom"),d(o),e(!1)}})]})}const Ze=new Map;function Ht(){const{org:t}=Ie(),e=nt(),m=tt(),v=m.find(r=>r.providerId==="deco"),{data:h,isLoading:w,refetch:D,isFetching:E}=yn({queryKey:me.aiProviderCredits(t.id,"deco"),enabled:!!v,staleTime:6e4,queryFn:async()=>{try{return await e.call("AI_PROVIDER_CREDITS",{providerId:"deco"})}catch{return null}}}),d=h?.balanceCents??null,_=d!=null?d/100:null,R=re.useRef(new Map);if(d!=null){const r=Ze.get(t.id);R.current.get(t.id)&&r!=null&&d>r&&C("credits_topped_up_detected",{organization_id:t.id,delta_cents:d-r,previous_balance_cents:r,new_balance_cents:d}),Ze.set(t.id,d),R.current.set(t.id,!0)}const a=!!v,x=d!=null&&d>0,S=d!=null&&d===0,F=d!=null&&d===200,f=m.length>0&&m.every(r=>r.providerId==="deco");return{hasDecoKey:a,decoKeyId:v?.id??null,balanceCents:d,balanceDollars:_,hasCredits:x,isZeroBalance:S,isInitialFreeCredit:F,hasOnlyDecoProvider:f,isLoading:w,isFetching:E,refetch:D}}function Ue(t){const e=t?.metadata?.githubRepo;if(!e?.url)return{status:"none"};const m=e.connectionId;return!!m&&!!t?.connections?.some(w=>w.connection_id===m)?{status:"attached",repo:e,connectionId:m}:!!m||e.installationId!=null?{status:"detached",repo:e}:{status:"public-clone",repo:e}}function Kt(t){const e=Ue(t);return e.status==="attached"||e.status==="public-clone"?e.repo:null}function Ut(t){if(typeof t!="object"||t===null)return!1;const m=t.githubRepo?.url;return typeof m=="string"&&m.length>0}function Xt(t){return Ue(t).status==="attached"}function qt(t){const e=Ue(t).status;return e==="attached"||e==="detached"}function Gt(t){const e=new Set;for(const m of t??[]){const v=m.metadata?.liveAgentId;typeof v=="string"&&v&&e.add(m.id)}return e}function Qt(t,e){if(!t)return null;const m=t.metadata?.liveAgentId;if(typeof m=="string"&&m)return{mode:"dev",targetId:m};const v=(e??[]).find(h=>h.metadata?.liveAgentId===t.id);return v?{mode:"live",targetId:v.id}:null}function Wt(t){return t.online?t.capabilities.includes("claude-code")||t.capabilities.includes("codex"):!1}export{zt as A,Kt as a,Xt as b,Ut as c,qt as d,Qt as f,Gt as g,Wt as h,Ue as r,Ht as u};
1
+ import{D as Ie,a as en,z as un,p as mn,n as pn,j as n,B as Y,t as K,r as re,m as hn,b as fn,i as we,v as C,K as me,c as xn,C as gn,L as jn,l as vn,k as yn}from"./index-BWDK_8V9.js";import{g as _n}from"./connection-slug-eyAPH6o3.js";import{u as nn,a as tn,g as Cn,C as Oe}from"./connection-card-DwDmg3I4.js";import{C as bn}from"./collection-search-B2lHhJg7.js";import{C as Nn}from"./collection-tabs-DJAjuTym.js";import{a as wn,b as Sn,e as In,g as kn}from"./extract-connection-data-C1Qu0LAM.js";import{e as sn,d as on,c as an,a as cn,b as An,D as Dn}from"./dialog-CrbEr2ON.js";import{D as Pn,a as Tn,c as Fn,b as Vn,d as Bn,e as Ln,f as Mn}from"./drawer-CM296nHC.js";import{u as On}from"./use-mobile-BZOcrXXX.js";import{F as B,b as L,c as M,d as O,e as $,a as Qe}from"./form-BtbkcSC0.js";import{I as W}from"./input-Bn06cWcU.js";import{d as $n,S as En,a as Rn,b as zn,c as ue}from"./select-BQFf2okn.js";import{T as Hn}from"./textarea-CYEmgbD6.js";import{b as rn}from"./use-connection-BXLV43OV.js";import{n as Se,c as $e}from"./XCircle-CT-_JXb1.js";import{s as Ee}from"./Star01-CcqeVuiB.js";import{af as Kn}from"./agent-icon-Bpn4vmwk.js";import{s as Un}from"./XClose-DomlRImj.js";import{c as Xn,i as be,a as We,E as qn,p as Gn,b as Qn,d as Wn}from"./connection-form-helpers-CCsm66SK.js";import{u as Ye}from"./use-infinite-scroll-nhW-keN6.js";import{a as Re}from"./authenticate-and-persist-oauth-CkzriR7-.js";import{B as Ne}from"./badge-Bnz52atj.js";import{T as ze,a as He,b as Ke}from"./tooltip-DvS6Crps.js";import{u as Yn}from"./useSuspenseInfiniteQuery-D3ladqYD.js";import{u as Jn}from"./use-mcp-client-C-eUJnWU.js";import{S as Zn}from"./constants-nH3qQ_1f.js";import{i as Je}from"./Check-BfDiInJj.js";import{s as et}from"./Plus-dpHTi6wk.js";import{u as nt}from"./studio-tools-DjdAUVi5.js";import{u as tt}from"./use-ai-providers-C-5aLvB2.js";function st({open:t,onOpenChange:e,onCreated:m}){const{org:v}=Ie(),{data:h}=en.useSession(),{stdioEnabled:w}=un(),D=On(),E=rn(),d=nn(),R=tn(d,"").items,a=mn({resolver:pn(Xn),defaultValues:{title:"",description:null,icon:null,ui_type:"HTTP",connection_url:"",connection_token:null,npx_package:"",stdio_command:"",stdio_args:"",stdio_cwd:"",env_vars:[]}}),x=a.watch("ui_type"),S=a.watch("connection_url"),F=a.watch("npx_package"),f=be({uiType:x,connectionUrl:S??"",npxPackage:F??""})??We({uiType:x,connectionUrl:S??"",registryItems:R}),r=s=>{const u=s.trim();if(!u)return;const o=!!a.formState.dirtyFields.title,c=!!a.formState.dirtyFields.description,j=!!a.formState.dirtyFields.env_vars,y=l=>{if(l&&(!o&&!a.getValues("title").trim()&&l.title&&a.setValue("title",l.title,{shouldDirty:!1}),!c&&!(a.getValues("description")??"").trim()&&l.description&&a.setValue("description",l.description,{shouldDirty:!1}),!j&&l.envVarKeys?.length)){const N=a.getValues("env_vars")??[],q=new Set(N.map(V=>V.key)),pe=l.envVarKeys.filter(V=>!q.has(V));pe.length>0&&a.setValue("env_vars",[...N,...pe.map(V=>({key:V,value:""}))],{shouldDirty:!0})}},g=Gn(u);if(g&&w){a.setValue("ui_type","NPX",{shouldDirty:!0}),a.setValue("npx_package",g.packageName,{shouldDirty:!0}),a.setValue("connection_url","",{shouldDirty:!0}),a.setValue("connection_token",null,{shouldDirty:!0}),y(be({uiType:"NPX",npxPackage:g.packageName}));return}if(u.startsWith("http://")||u.startsWith("https://")){const l=x==="HTTP"||x==="SSE"||x==="Websocket"?x:"HTTP";a.setValue("ui_type",l,{shouldDirty:!0}),a.setValue("connection_url",u,{shouldDirty:!0}),y(be({uiType:l,connectionUrl:u})??We({uiType:l,connectionUrl:u,registryItems:R}));return}x==="NPX"&&y(be({uiType:"NPX",npxPackage:u}))},z=s=>{s||a.reset(),e(s)},b=async s=>{let u,o=null,c=null,j=null;s.ui_type==="NPX"?(u="STDIO",o="",j=Qn(s.npx_package||"",s.env_vars||[])):s.ui_type==="STDIO"?(u="STDIO",o="",j=Wn(s.stdio_command||"",s.stdio_args||"",s.stdio_cwd,s.env_vars||[])):(u=s.ui_type,o=s.connection_url||"",c=s.connection_token||null);const y=wn("conn");try{await E.create.mutateAsync({id:y,title:s.title,description:s.description||null,connection_type:u,connection_url:o,connection_token:c,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:h?.user?.id||"system",organization_id:v.id,icon:s.icon??null,app_name:null,app_id:null,connection_headers:j,oauth_config:null,configuration_state:null,metadata:null,tools:null,bindings:null,status:"inactive"}),a.reset(),e(!1),m?.(y)}catch{K.error("Failed to create connection")}},k="Create Connection",I="Create a custom connection in your organization. Fill in the details below.",U=a.formState.isSubmitting?"Saving...":"Create Connection",P=n.jsxs("div",{className:"grid gap-4",children:[n.jsx(B,{control:a.control,name:"ui_type",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Type *"}),n.jsxs($n,{value:s.value,onValueChange:s.onChange,children:[n.jsx(O,{children:n.jsx(En,{children:n.jsx(Rn,{})})}),n.jsxs(zn,{children:[n.jsx(ue,{value:"HTTP",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Ee,{className:"w-4 h-4"}),"HTTP"]})}),n.jsx(ue,{value:"SSE",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Ee,{className:"w-4 h-4"}),"SSE"]})}),n.jsx(ue,{value:"Websocket",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Ee,{className:"w-4 h-4"}),"Websocket"]})}),w&&n.jsxs(n.Fragment,{children:[n.jsx(ue,{value:"NPX",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Se,{className:"w-4 h-4"}),"NPX Package"]})}),n.jsx(ue,{value:"STDIO",children:n.jsxs("span",{className:"flex items-center gap-2",children:[n.jsx(Kn,{className:"w-4 h-4"}),"Custom Command"]})})]})]})]}),n.jsx($,{})]})}),x==="NPX"&&n.jsx(B,{control:a.control,name:"npx_package",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"NPM Package *"}),n.jsx(O,{children:n.jsx(W,{placeholder:"@perplexity-ai/mcp-server",...s,value:s.value??"",onPaste:u=>{const o=u.clipboardData.getData("text");o&&(u.preventDefault(),a.setValue("npx_package",o.trim(),{shouldDirty:!0}),r(o))},onBlur:u=>{r(u.target.value),s.onBlur()}})}),n.jsx($,{})]})}),x==="STDIO"&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"grid grid-cols-2 gap-4 items-start",children:[n.jsx(B,{control:a.control,name:"stdio_command",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Command *"}),n.jsx(O,{children:n.jsx(W,{placeholder:"node, bun, python...",...s,value:s.value??""})}),n.jsx($,{})]})}),n.jsx(B,{control:a.control,name:"stdio_args",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Arguments"}),n.jsx(O,{children:n.jsx(W,{placeholder:"arg1 arg2 --flag value",...s,value:s.value??""})}),n.jsx($,{})]})})]}),n.jsx(B,{control:a.control,name:"stdio_cwd",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Working Directory"}),n.jsx(O,{children:n.jsx(W,{placeholder:"/path/to/project (optional)",...s,value:s.value??""})}),n.jsx("p",{className:"text-xs text-muted-foreground",children:"Directory where the command will be executed"}),n.jsx($,{})]})})]}),(x==="NPX"||x==="STDIO")&&n.jsx(B,{control:a.control,name:"env_vars",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Environment Variables"}),n.jsx(O,{children:n.jsx(qn,{value:s.value??[],onChange:s.onChange})}),n.jsx($,{})]})}),x!=="NPX"&&x!=="STDIO"&&n.jsxs(n.Fragment,{children:[n.jsx(B,{control:a.control,name:"connection_url",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"URL *"}),n.jsx(O,{children:n.jsx(W,{placeholder:"https://example.com/mcp",...s,value:s.value??"",onPaste:u=>{const o=u.clipboardData.getData("text");o&&(u.preventDefault(),a.setValue("connection_url",o.trim(),{shouldDirty:!0}),r(o))},onBlur:u=>{r(u.target.value),s.onBlur()}})}),n.jsx($,{})]})}),n.jsx(B,{control:a.control,name:"connection_token",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:f?.token?.label??"Token (optional)"}),n.jsx(O,{children:n.jsx(W,{type:"password",placeholder:f?.token?.placeholder??"Bearer token or API key",className:"ph-no-capture",...s,value:s.value??""})}),f?.token?.helperText&&n.jsxs("p",{className:"text-xs text-muted-foreground",children:[f.token.helperText,f.id==="github"&&n.jsxs(n.Fragment,{children:[" ","·"," ",n.jsx("a",{className:"text-foreground underline underline-offset-4 hover:text-foreground/80",href:"https://github.com/settings/personal-access-tokens",target:"_blank",rel:"noreferrer",children:"Open GitHub PAT settings"})]})]}),n.jsx($,{})]})})]}),n.jsx(B,{control:a.control,name:"title",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Name *"}),n.jsx(O,{children:n.jsx(W,{placeholder:"My Connection",...s})}),n.jsx($,{})]})}),n.jsx(B,{control:a.control,name:"description",render:({field:s})=>n.jsxs(L,{children:[n.jsx(M,{children:"Description"}),n.jsx(O,{children:n.jsx(Hn,{placeholder:"A brief description of this connection",rows:3,...s,value:s.value??""})}),n.jsx($,{})]})})]});return D?n.jsx(Pn,{open:t,onOpenChange:z,children:n.jsxs(Tn,{className:"max-h-[90vh]",children:[n.jsx(Fn,{className:"pb-2",children:n.jsxs("div",{className:"flex items-start justify-between gap-4",children:[n.jsxs("div",{className:"flex-1 text-left",children:[n.jsx(Vn,{children:k}),n.jsx(Bn,{className:"mt-1",children:I})]}),n.jsx(Ln,{asChild:!0,children:n.jsx(Y,{variant:"ghost",size:"icon",className:"shrink-0 -mt-1",children:n.jsx(Un,{size:16})})})]})}),n.jsx(Qe,{...a,children:n.jsxs("form",{onSubmit:a.handleSubmit(b),children:[n.jsx("div",{className:"overflow-y-auto px-4 pb-4",children:P}),n.jsx(Mn,{children:n.jsx(Y,{type:"submit",disabled:a.formState.isSubmitting,className:"w-full",children:U})})]})})]})}):n.jsx(sn,{open:t,onOpenChange:z,children:n.jsxs(on,{className:"sm:max-w-[525px]",children:[n.jsxs(an,{children:[n.jsx(cn,{children:k}),n.jsx(An,{children:I})]}),n.jsx(Qe,{...a,children:n.jsxs("form",{onSubmit:a.handleSubmit(b),children:[n.jsx("div",{className:"py-4",children:P}),n.jsxs(Dn,{children:[n.jsx(Y,{type:"button",variant:"outline",onClick:()=>z(!1),children:"Cancel"}),n.jsx(Y,{type:"submit",disabled:a.formState.isSubmitting,className:"min-w-40",children:U})]})]})})]})})}function ot(t){const e=xn.c(73),{mode:m,agentId:v,addedConnectionIds:h,onAdd:w,onCloneAndAdd:D,onConnectAndAdd:E,connectingItemId:d,search:_,onCreateConnection:R,onBrowseNavigate:a,defaultTab:x}=t,S=m===void 0?"add":m,F=x===void 0?"connected":x,{org:f}=Ie(),r=re.useDeferredValue(_),z=_!==r,b=r.trim().toLowerCase();let k;e[0]!==F?(k=i=>i??F,e[0]=F,e[1]=k):k=e[1];const[I,U]=gn(jn.connectionsTab(f.slug)+(F==="all"?":home-modal":":agent-modal"),k);let P;e[2]!==I||e[3]!==U?(P=i=>{i!==I&&C("connections_dialog_tab_changed",{to_tab:i}),U(i)},e[2]=I,e[3]=U,e[4]=P):P=e[4];const s=P;let u;e[5]!==f.id||e[6]!==f.slug?(u={connectionId:Zn,orgId:f.id,orgSlug:f.slug},e[5]=f.id,e[6]=f.slug,e[7]=u):u=e[7];const o=Jn(u);let c,j,y;if(e[8]!==o||e[9]!==r||e[10]!==f.id){y=r?.trim()?{operator:"or",conditions:[{field:["title"],operator:"contains",value:r.trim()},{field:["description"],operator:"contains",value:r.trim()}]}:void 0;const i={...y&&{where:y},orderBy:[{field:["updated_at"],direction:"asc"}],limit:100,offset:0},p=JSON.stringify(i);j=Yn,c=me.collectionListInfinite(o,f.id,"","CONNECTIONS",p),e[8]=o,e[9]=r,e[10]=f.id,e[11]=c,e[12]=j,e[13]=y}else c=e[11],j=e[12],y=e[13];let g;e[14]!==o||e[15]!==y?(g=async i=>{const{pageParam:p}=i,H=p===void 0?0:p;return(await o.callTool({name:"COLLECTION_CONNECTIONS_LIST",arguments:{...y&&{where:y},orderBy:[{field:["updated_at"],direction:"asc"}],limit:100,offset:H}})).structuredContent},e[14]=o,e[15]=y,e[16]=g):g=e[16];let l;e[17]!==c||e[18]!==g?(l={queryKey:c,queryFn:g,initialPageParam:0,getNextPageParam:dt,staleTime:3e4},e[17]=c,e[18]=g,e[19]=l):l=e[19];const{data:N,fetchNextPage:q,hasNextPage:pe,isFetchingNextPage:V}=j(l),Xe=N?.pages.flatMap(lt)??[],he=Cn(Xe),ln=new Set(Xe.filter(rt).map(ct)),fe=nn(),G=tn(fe,r),ke=Ye(G.loadMore,G.hasMore,G.isLoadingMore),Ae=Ye(q,pe??!1,V),T=I==="all"||!!b,qe=T?G.items.filter(i=>{const p=Sn(i);if(p&&ln.has(p))return!1;if(!b)return!0;const H=i._meta?.["mcp.mesh"];return[i.title,i.description,i.name,i.server?.title,i.server?.description,i.server?.name,H?.friendly_name,H?.friendlyName].filter(Boolean).join(" ").toLowerCase().includes(b)}):[],le=qe.filter(it),de=qe.filter(at);let xe;e[20]!==h?(xe=i=>i.some(p=>h.has(p.id)),e[20]=h,e[21]=xe):xe=e[21];const De=xe;let ge;e[22]!==h||e[23]!==v||e[24]!==d||e[25]!==De||e[26]!==S||e[27]!==w||e[28]!==a||e[29]!==D?(ge=(i,p,H,ie,X)=>{const Ce=De(X),ce=X.find(Q=>!h.has(Q.id)),A=X[0];if(S==="browse"){const Q=_n(A);return n.jsx(Oe,{connection:{title:p,icon:H,description:X.length>1?`${X.length} instances`:ie??void 0},fallbackIcon:n.jsx(Se,{}),headerActionsAlwaysVisible:!0,headerActions:n.jsxs(Ne,{variant:"secondary",className:"text-xs gap-1 font-normal",children:[n.jsx(Je,{size:11})," Connected"]}),onClick:()=>{C("connection_browse_clicked",{app_name:A.app_name??null,connection_id:A.id,instances_count:X.length}),a?.(Q)}},i)}return n.jsx(Oe,{connection:{title:p,icon:H,description:ie},fallbackIcon:n.jsx(Se,{}),headerActionsAlwaysVisible:!0,headerActions:n.jsxs("div",{className:"flex items-center gap-1.5",children:[Ce&&n.jsxs(Ne,{variant:"secondary",className:"text-xs gap-1 font-normal",children:[n.jsx(Je,{size:11})," Added"]}),n.jsx(Y,{variant:"outline",size:"sm",className:"h-7 px-3 text-xs font-medium",disabled:d!==null,onClick:Q=>{Q.stopPropagation(),ce?(C("connection_add_clicked",{action:"use_existing",app_name:A.app_name??null,connection_id:ce.id}),v&&C("agent_connection_attached",{agent_id:v,connection_id:ce.id,app_name:A.app_name??null,mode:"existing"}),w(ce.id)):(C("connection_add_clicked",{action:"clone",app_name:A.app_name??null,base_connection_id:A.id}),D(A))},children:"Add"})]})},i)},e[22]=h,e[23]=v,e[24]=d,e[25]=De,e[26]=S,e[27]=w,e[28]=a,e[29]=D,e[30]=ge):ge=e[30];const je=ge;let ve;e[31]!==d||e[32]!==S||e[33]!==E?(ve=i=>{const p=i._meta?.["mcp.mesh"],H=p?.friendlyName||p?.friendly_name||i.server?.title||i.title||i.server?.name||i.name||i.id||"",ie=i.server?.description||i.description||null,X=i.server?.icons?.[0]?.src||kn(i.server?.repository)||null,Ce=p?.official===!0,ce=p?.verified===!0,A=p?.owner==="deco";return n.jsx(Oe,{connection:{title:H,description:ie,icon:X},fallbackIcon:n.jsx(Se,{}),headerActionsAlwaysVisible:!0,headerActions:n.jsxs("div",{className:"flex items-center gap-1.5",children:[A&&n.jsxs(ze,{children:[n.jsx(He,{asChild:!0,children:n.jsx("span",{className:"inline-flex items-center justify-center size-5 rounded-md bg-muted shrink-0",children:n.jsx("img",{src:"/logos/deco logo.svg",alt:"Made by Deco",className:"size-3"})})}),n.jsx(Ke,{children:"Built and maintained by Deco"})]}),!A&&Ce&&n.jsxs(ze,{children:[n.jsx(He,{asChild:!0,children:n.jsx(Ne,{variant:"outline",size:"icon",children:n.jsx($e,{})})}),n.jsx(Ke,{children:"Built and maintained by the official vendor"})]}),!A&&!Ce&&ce&&n.jsxs(ze,{children:[n.jsx(He,{asChild:!0,children:n.jsx(Ne,{variant:"outline",size:"icon",children:n.jsx($e,{})})}),n.jsx(Ke,{children:"Verified by the Deco team"})]}),n.jsx(Y,{variant:"outline",size:"sm",className:"h-7 px-3 text-xs font-medium",disabled:d!==null,onClick:Q=>{Q.stopPropagation(),C("connection_add_clicked",{action:"connect_new",registry_item_id:i.id,app_name:p?.friendlyName||i.server?.name||i.name||null}),E(i)},children:d===i.id?n.jsx(we,{size:14,className:"animate-spin"}):S==="browse"?"Connect":"Add"})]})},`catalog-${i.id}`)},e[31]=d,e[32]=S,e[33]=E,e[34]=ve):ve=e[34];const Ge=ve,Pe=!b&&n.jsxs("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border shrink-0",children:[n.jsx(Nn,{tabs:[{id:"all",label:"All"},{id:"connected",label:"Connected"}],activeTab:I,onTabChange:i=>s(i)}),n.jsxs(Y,{variant:"outline",size:"sm",className:"h-7 px-2 text-sm",onClick:()=>{C("connections_dialog_custom_clicked"),R()},children:[n.jsx(et,{size:12}),"Custom Connection"]})]}),Te=z&&"opacity-50 pointer-events-none";let J;e[35]!==Te?(J=vn("flex-1 overflow-auto p-5 transition-opacity duration-150",Te),e[35]=Te,e[36]=J):J=e[36];const dn="grid grid-cols-[repeat(auto-fill,minmax(260px,1fr))] gap-4";let ye;e[37]!==je?(ye=i=>{if(i.type==="group")return je(i.key,i.title,i.icon,null,i.connections);const p=i.connection;return je(p.id,p.title,p.icon,p.description??null,[p])},e[37]=je,e[38]=ye):ye=e[38];const Fe=he.map(ye);let Z;e[39]!==Ae?(Z=n.jsx("div",{ref:Ae,className:"col-span-full h-1"}),e[39]=Ae,e[40]=Z):Z=e[40];let ee;e[41]!==V?(ee=V&&n.jsx("div",{className:"col-span-full flex justify-center py-6",children:n.jsx(we,{size:24,className:"animate-spin text-muted-foreground"})}),e[41]=V,e[42]=ee):ee=e[42];const Ve=T&&le.length>0&&n.jsxs("div",{className:"col-span-full flex items-center gap-2 mt-2",children:[n.jsx($e,{size:13,className:"text-muted-foreground shrink-0"}),n.jsx("span",{className:"text-sm font-medium text-muted-foreground whitespace-nowrap",children:"Verified"}),n.jsx("div",{className:"flex-1 h-px bg-border"})]}),Be=T&&le.map(Ge),Le=T&&de.length>0&&n.jsxs("div",{className:"col-span-full flex items-center gap-2 mt-2",children:[n.jsx("span",{className:"text-sm font-medium text-muted-foreground whitespace-nowrap",children:"All connections"}),n.jsx("div",{className:"flex-1 h-px bg-border"})]}),Me=T&&de.map(Ge);let ne;e[43]!==ke||e[44]!==fe||e[45]!==T?(ne=T&&fe.length>0&&n.jsx("div",{ref:ke,className:"col-span-full h-1"}),e[43]=ke,e[44]=fe,e[45]=T,e[46]=ne):ne=e[46];let te;e[47]!==G.isLoadingMore||e[48]!==T?(te=T&&G.isLoadingMore&&n.jsx("div",{className:"col-span-full flex justify-center py-6",children:n.jsx(we,{size:24,className:"animate-spin text-muted-foreground"})}),e[47]=G.isLoadingMore,e[48]=T,e[49]=te):te=e[49];let se;e[50]!==Fe||e[51]!==Z||e[52]!==ee||e[53]!==Ve||e[54]!==Be||e[55]!==Le||e[56]!==Me||e[57]!==ne||e[58]!==te?(se=n.jsxs("div",{className:dn,children:[Fe,Z,ee,Ve,Be,Le,Me,ne,te]}),e[50]=Fe,e[51]=Z,e[52]=ee,e[53]=Ve,e[54]=Be,e[55]=Le,e[56]=Me,e[57]=ne,e[58]=te,e[59]=se):se=e[59];let oe;e[60]!==I||e[61]!==he.length||e[62]!==de||e[63]!==_||e[64]!==le?(oe=he.length===0&&le.length===0&&de.length===0&&n.jsx("div",{className:"flex items-center justify-center h-48 text-sm text-muted-foreground",children:_?`No connections match "${_}"`:I==="connected"?"No connections yet":"No connections available"}),e[60]=I,e[61]=he.length,e[62]=de,e[63]=_,e[64]=le,e[65]=oe):oe=e[65];let ae;e[66]!==J||e[67]!==se||e[68]!==oe?(ae=n.jsxs("div",{className:J,children:[se,oe]}),e[66]=J,e[67]=se,e[68]=oe,e[69]=ae):ae=e[69];let _e;return e[70]!==Pe||e[71]!==ae?(_e=n.jsxs(n.Fragment,{children:[Pe,ae]}),e[70]=Pe,e[71]=ae,e[72]=_e):_e=e[72],_e}function at(t){return!t.verified&&!t._meta?.["mcp.mesh"]?.verified&&!t.meta?.verified}function it(t){return t.verified||t._meta?.["mcp.mesh"]?.verified||t.meta?.verified}function ct(t){return t.app_name}function rt(t){return t.app_name}function lt(t){return t?.items??[]}function dt(t,e){if(t?.hasMore)return e.reduce(ut,0)}function ut(t,e){return t+(e?.items?.length??0)}function zt({open:t,onOpenChange:e,defaultTab:m,initialSearch:v="",...h}){const w=h.mode??"add",D="agentId"in h?h.agentId:void 0,E="addedConnectionIds"in h?h.addedConnectionIds??new Set:new Set,d="onAdd"in h&&h.onAdd?h.onAdd:o=>{},_=(o,c,j)=>{D&&C("agent_connection_attached",{agent_id:D,connection_id:o,app_name:c,mode:j})},[R,a]=re.useState(null),[x,S]=re.useState(v),[F,f]=re.useState(!1),{org:r}=Ie(),{data:z}=en.useSession(),b=rn(),k=hn(),I=fn(),U=o=>{e(!1),I({to:"/$org/settings/connections/$appSlug",params:{org:r.slug,appSlug:o}})},P=()=>{k.invalidateQueries({predicate:o=>{const c=o.queryKey;return c[1]===r.id&&c[3]==="collection"&&c[4]==="CONNECTIONS"}})},s=async o=>{a(o.app_name??o.id);try{const j=`${o.title.replace(/\s*\(\d+\)\s*$/,"")} (${Date.now().toString(36).slice(-4)})`,g=(await b.create.mutateAsync({title:j,description:o.description??null,connection_type:o.connection_type,connection_url:o.connection_url??null,connection_token:null,icon:o.icon??null,app_name:o.app_name??null,app_id:o.app_id??null,connection_headers:o.connection_headers??null})).id,l=await Re({connectionId:g,orgId:r.id,orgSlug:r.slug,persistFallback:N=>b.update.mutateAsync({id:g,data:{connection_token:N}}).then(()=>{})});if(l.ran&&!l.ok){C("connection_oauth_failed",{connection_id:g,flow:"clone",error:l.error??"no_token"}),K.error(`Authentication failed: ${l.error??"no token received"}`),await b.delete.mutateAsync(g);return}if(l.ran){C("connection_oauth_succeeded",{connection_id:g,flow:"clone"});const N=new URL(`/api/${r.slug}/mcp/${g}`,window.location.origin);await k.invalidateQueries({queryKey:me.isMCPAuthenticated(N.href,null)}),P()}_(g,o.app_name??null,"clone"),d(g)}catch(c){console.error("Failed to add connection:",c),K.error("Failed to add connection")}finally{a(null)}},u=async o=>{if(!(!r||!z?.user?.id)){a(o.id);try{const c=In(o,r.id,z.user.id,{remoteIndex:0}),j=c.connection_type==="STDIO",y=!!c.connection_url,g=j&&c.connection_headers&&typeof c.connection_headers=="object"&&"command"in c.connection_headers;if(!y&&!g){K.error("This MCP Server cannot be connected: no connection method available"),a(null);return}const{id:l}=await b.create.mutateAsync(c),N=await Re({connectionId:l,orgId:r.id,orgSlug:r.slug,persistFallback:q=>b.update.mutateAsync({id:l,data:{connection_token:q}}).then(()=>{})});if(N.ran&&!N.ok){C("connection_oauth_failed",{connection_id:l,flow:"connect_new",error:N.error??"no_token"}),K.warning("Couldn't sign in to this connection",{description:`It was added to your agent, but its sign-in setup looks off. You can try authenticating again later from the connection's settings. (${N.error??"no token received"})`}),_(l,c.app_name??null,"new"),d(l);return}if(N.ran){C("connection_oauth_succeeded",{connection_id:l,flow:"connect_new"});const q=new URL(`/api/${r.slug}/mcp/${l}`,window.location.origin);await k.invalidateQueries({queryKey:me.isMCPAuthenticated(q.href,null)}),P(),K.success("Connected and authenticated")}else K.success("Connected");_(l,c.app_name??null,"new"),d(l)}catch(c){console.error("Failed to connect:",c),K.error("Failed to connect")}finally{a(null)}}};return n.jsxs(sn,{open:t,onOpenChange:e,children:[n.jsxs(on,{className:"sm:max-w-5xl h-[85vh] max-h-[85vh] flex flex-col p-0 gap-0 overflow-hidden w-[95vw]",children:[n.jsx(an,{className:"px-6 pt-5 pb-0 shrink-0",children:n.jsx(cn,{className:"text-base font-semibold",children:w==="browse"?"Connections":"Add Connection"})}),n.jsx("div",{className:"pt-3 shrink-0",children:n.jsx(bn,{value:x,onChange:S,placeholder:"Search connections..."})}),n.jsx(re.Suspense,{fallback:n.jsx("div",{className:"flex-1 flex items-center justify-center",children:n.jsx(we,{size:24,className:"animate-spin text-muted-foreground"})}),children:n.jsx(ot,{mode:w,agentId:D,addedConnectionIds:E,onAdd:d,onCloneAndAdd:s,onConnectAndAdd:u,connectingItemId:R,search:x,onCreateConnection:()=>f(!0),onBrowseNavigate:U,defaultTab:m})})]}),n.jsx(st,{open:F,onOpenChange:f,onCreated:async o=>{f(!1);const c=await Re({connectionId:o,orgId:r.id,orgSlug:r.slug,persistFallback:j=>b.update.mutateAsync({id:o,data:{connection_token:j}}).then(()=>{})});if(c.ran&&!c.ok){C("connection_oauth_failed",{connection_id:o,flow:"custom_create",error:c.error??"no_token"}),K.warning("Couldn't sign in to this connection",{description:`It was added to your agent, but its sign-in setup looks off. You can try authenticating again later from the connection's settings. (${c.error??"no token received"})`}),_(o,null,"custom"),d(o),e(!1);return}if(c.ran){C("connection_oauth_succeeded",{connection_id:o,flow:"custom_create"});const j=new URL(`/api/${r.slug}/mcp/${o}`,window.location.origin);await k.invalidateQueries({queryKey:me.isMCPAuthenticated(j.href,null)}),P()}_(o,null,"custom"),d(o),e(!1)}})]})}const Ze=new Map;function Ht(){const{org:t}=Ie(),e=nt(),m=tt(),v=m.find(r=>r.providerId==="deco"),{data:h,isLoading:w,refetch:D,isFetching:E}=yn({queryKey:me.aiProviderCredits(t.id,"deco"),enabled:!!v,staleTime:6e4,queryFn:async()=>{try{return await e.call("AI_PROVIDER_CREDITS",{providerId:"deco"})}catch{return null}}}),d=h?.balanceCents??null,_=d!=null?d/100:null,R=re.useRef(new Map);if(d!=null){const r=Ze.get(t.id);R.current.get(t.id)&&r!=null&&d>r&&C("credits_topped_up_detected",{organization_id:t.id,delta_cents:d-r,previous_balance_cents:r,new_balance_cents:d}),Ze.set(t.id,d),R.current.set(t.id,!0)}const a=!!v,x=d!=null&&d>0,S=d!=null&&d===0,F=d!=null&&d===200,f=m.length>0&&m.every(r=>r.providerId==="deco");return{hasDecoKey:a,decoKeyId:v?.id??null,balanceCents:d,balanceDollars:_,hasCredits:x,isZeroBalance:S,isInitialFreeCredit:F,hasOnlyDecoProvider:f,isLoading:w,isFetching:E,refetch:D}}function Ue(t){const e=t?.metadata?.githubRepo;if(!e?.url)return{status:"none"};const m=e.connectionId;return!!m&&!!t?.connections?.some(w=>w.connection_id===m)?{status:"attached",repo:e,connectionId:m}:!!m||e.installationId!=null?{status:"detached",repo:e}:{status:"public-clone",repo:e}}function Kt(t){const e=Ue(t);return e.status==="attached"||e.status==="public-clone"?e.repo:null}function Ut(t){if(typeof t!="object"||t===null)return!1;const m=t.githubRepo?.url;return typeof m=="string"&&m.length>0}function Xt(t){return Ue(t).status==="attached"}function qt(t){const e=Ue(t).status;return e==="attached"||e==="detached"}function Gt(t){const e=new Set;for(const m of t??[]){const v=m.metadata?.liveAgentId;typeof v=="string"&&v&&e.add(m.id)}return e}function Qt(t,e){if(!t)return null;const m=t.metadata?.liveAgentId;if(typeof m=="string"&&m)return{mode:"dev",targetId:m};const v=(e??[]).find(h=>h.metadata?.liveAgentId===t.id);return v?{mode:"live",targetId:v.id}:null}function Wt(t){return t.online?t.capabilities.includes("claude-code")||t.capabilities.includes("codex"):!1}export{zt as A,Kt as a,Xt as b,Ut as c,qt as d,Qt as f,Gt as g,Wt as h,Ue as r,Ht as u};