decocms 3.10.3 → 3.11.0

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 (231) hide show
  1. package/dist/client/assets/{AlertCircle-DQ3zaMns.js → AlertCircle-Ctbek2zl.js} +1 -1
  2. package/dist/client/assets/{ArrowUpRight-UT01ancE.js → ArrowUpRight-CGlPrRsR.js} +1 -1
  3. package/dist/client/assets/{Check-DCJCCJt5.js → Check-D-2DMeXR.js} +1 -1
  4. package/dist/client/assets/{CheckCircle-CN8csJmd.js → CheckCircle-CPLY3iX-.js} +1 -1
  5. package/dist/client/assets/{ChevronDown-vntP1LF0.js → ChevronDown-DUb-OAcF.js} +1 -1
  6. package/dist/client/assets/{ChevronLeft-_4tt3JbP.js → ChevronLeft-IUSMXc7n.js} +1 -1
  7. package/dist/client/assets/{ChevronRight-BD7fiLv7.js → ChevronRight-C6_Bb1P7.js} +1 -1
  8. package/dist/client/assets/{ChevronUp-B9NZzlEX.js → ChevronUp-mT0kmu5O.js} +1 -1
  9. package/dist/client/assets/{Container-DlDQbtuJ.js → Container-V3OuMECL.js} +1 -1
  10. package/dist/client/assets/{DotsVertical-DDPFnnRS.js → DotsVertical-CYMPhMIv.js} +1 -1
  11. package/dist/client/assets/{Eye-ogI2y4CN.js → Eye-DLKlw-42.js} +1 -1
  12. package/dist/client/assets/{FilterLines-DpUfIC-u.js → FilterLines-B2lLGnWS.js} +1 -1
  13. package/dist/client/assets/{Globe01-C2fKyC2-.js → Globe01-BSqLqa8H.js} +1 -1
  14. package/dist/client/assets/{HardDrive-Ik-OtFON.js → HardDrive-BFG0b6vP.js} +1 -1
  15. package/dist/client/assets/{Key01-CmprkySl.js → Key01-DeIJhm73.js} +1 -1
  16. package/dist/client/assets/{LayoutLeft-BO92HMhM.js → LayoutLeft-CAachN7j.js} +1 -1
  17. package/dist/client/assets/{LinkExternal01-9W209kLr.js → LinkExternal01-C7Ulot5I.js} +1 -1
  18. package/dist/client/assets/{Monitor01-B0FKK9nk.js → Monitor01-RdLthi4L.js} +1 -1
  19. package/dist/client/assets/{Palette-OtFJ1ywH.js → Palette-D1rjO3C7.js} +1 -1
  20. package/dist/client/assets/{Play-B9TsjtCB.js → Play-CL1Mgiwf.js} +1 -1
  21. package/dist/client/assets/{Plus-BnGx63GX.js → Plus-DINfOuqC.js} +1 -1
  22. package/dist/client/assets/{RefreshCcw01-Dk9AOo-m.js → RefreshCcw01-DSZXx3HQ.js} +1 -1
  23. package/dist/client/assets/{SearchMd-CxJnyPJ2.js → SearchMd-Dt4Aj6N4.js} +1 -1
  24. package/dist/client/assets/{Settings02-PSRUEgfS.js → Settings02-COHAF-aj.js} +1 -1
  25. package/dist/client/assets/{Shield01-Do71Dyqk.js → Shield01-Ef5O0H91.js} +1 -1
  26. package/dist/client/assets/{Star01-Cu6cUuhf.js → Star01-DWr_psxV.js} +1 -1
  27. package/dist/client/assets/{Stars01-BuMp0jeZ.js → Stars01-CTAt_kJn.js} +1 -1
  28. package/dist/client/assets/{Stars02-Bo6vryYW.js → Stars02-7S-x4jsE.js} +1 -1
  29. package/dist/client/assets/{Sun-Bg1tFzcn.js → Sun-C0yimusT.js} +1 -1
  30. package/dist/client/assets/{SwitchHorizontal01-BjgMZfW7.js → SwitchHorizontal01-CdSYnpvh.js} +1 -1
  31. package/dist/client/assets/{Tool01-DRibBi0T.js → Tool01-Co9IzxOX.js} +1 -1
  32. package/dist/client/assets/{Trash01-DfuJtop_.js → Trash01-m4F91Gbm.js} +1 -1
  33. package/dist/client/assets/{Upload01-DGWS8Icx.js → Upload01-BWuva6Fs.js} +1 -1
  34. package/dist/client/assets/{User01-B1RcIkcM.js → User01-BQ6QP8OL.js} +1 -1
  35. package/dist/client/assets/{Users01-CyxI-ZiC.js → Users01-ByzlIQ3F.js} +1 -1
  36. package/dist/client/assets/{Users03-DhXF_0sH.js → Users03-mgRYViRT.js} +1 -1
  37. package/dist/client/assets/{X-COnjMnsv.js → X-D5DAti-0.js} +1 -1
  38. package/dist/client/assets/{XCircle-BvIhN4E7.js → XCircle-BjeFLJxj.js} +1 -1
  39. package/dist/client/assets/{XClose-CXacF9IM.js → XClose-s3WJPw3-.js} +1 -1
  40. package/dist/client/assets/{Zap-BM6RWRPw.js → Zap-Z3n8EP6c.js} +1 -1
  41. package/dist/client/assets/{ZapSquare-C79zBXJj.js → ZapSquare-By7Cv3Wp.js} +1 -1
  42. package/dist/client/assets/{ZoomOut-B5B07_-g.js → ZoomOut-CIHaUyEl.js} +1 -1
  43. package/dist/client/assets/{access-gate-BHd_MMZj.js → access-gate-Duof6cnb.js} +1 -1
  44. package/dist/client/assets/{accordion-BelQbjLG.js → accordion-B1qqQUiM.js} +1 -1
  45. package/dist/client/assets/add-section-modal-DkoTaNoJ.js +1 -0
  46. package/dist/client/assets/{agent-capabilities-BQdt-MuJ.js → agent-capabilities-Ckkw1MUq.js} +1 -1
  47. package/dist/client/assets/{agent-icon-DFJgaXFK.js → agent-icon-VIqap9Jf.js} +1 -1
  48. package/dist/client/assets/{agent-icons-CkZUPYja.js → agent-icons-D05ipmZ4.js} +1 -1
  49. package/dist/client/assets/{agents-list-DNyHPwF6.js → agents-list-CVx5qLnY.js} +1 -1
  50. package/dist/client/assets/{ai-providers-D3kDr_eM.js → ai-providers-BuKKX642.js} +1 -1
  51. package/dist/client/assets/{alert-kxVKcfjz.js → alert-DlT05Ylq.js} +1 -1
  52. package/dist/client/assets/{alert-dialog-BpOf9MAK.js → alert-dialog-Ci1rMRpl.js} +1 -1
  53. package/dist/client/assets/app-editor-DNNG7_rJ.js +1 -0
  54. package/dist/client/assets/{auth-catchall-0zpjCrAp.js → auth-catchall-BUCBz8XY.js} +1 -1
  55. package/dist/client/assets/{auth-split-layout-qhIpjF8b.js → auth-split-layout-CY6KnHSz.js} +1 -1
  56. package/dist/client/assets/{automation-list-row-CPxwK1jZ.js → automation-list-row-Dg6SIiTL.js} +1 -1
  57. package/dist/client/assets/{automation-runs-W1XLcZy_.js → automation-runs-BmKdgkka.js} +1 -1
  58. package/dist/client/assets/{automations-D1j8zNJi.js → automations-BcxEWxp4.js} +1 -1
  59. package/dist/client/assets/{avatar-CuZPsvd7.js → avatar-B5XGLu28.js} +1 -1
  60. package/dist/client/assets/{badge-BCXaZ3jr.js → badge-BiVWMQaC.js} +1 -1
  61. package/dist/client/assets/{brand-context-BMZ4j5vM.js → brand-context-DSuk-fkh.js} +1 -1
  62. package/dist/client/assets/{buckets-DsWGuu5e.js → buckets-DNim0Oxi.js} +1 -1
  63. package/dist/client/assets/{calendar-DfGnEJr6.js → calendar-D3ybWgKx.js} +1 -1
  64. package/dist/client/assets/{capability-load-error-DjoRzFiH.js → capability-load-error-BoG7ZxlR.js} +1 -1
  65. package/dist/client/assets/{card-DsraaOS_.js → card-Bs_ZETWd.js} +1 -1
  66. package/dist/client/assets/{chat-context-CL-ll6R6.js → chat-context-DXMK9LpM.js} +1 -1
  67. package/dist/client/assets/{checkbox-4DJ-sElS.js → checkbox-CDeLVmoz.js} +1 -1
  68. package/dist/client/assets/{cli-auth-success-BVgFFt5r.js → cli-auth-success-DUzSXn1x.js} +1 -1
  69. package/dist/client/assets/{collection-detail-DS5E30Me.js → collection-detail-B39xBZcf.js} +1 -1
  70. package/dist/client/assets/{collection-display-button-C-mBXp6g.js → collection-display-button-LYjUKJyD.js} +1 -1
  71. package/dist/client/assets/{collection-search-CljcPIbT.js → collection-search-CIGzMvXg.js} +1 -1
  72. package/dist/client/assets/{collection-table-wrapper-DO_P7QvK.js → collection-table-wrapper-CRZ7umIR.js} +1 -1
  73. package/dist/client/assets/{collection-tabs-BgZPPjBK.js → collection-tabs-Cl0Sce7d.js} +1 -1
  74. package/dist/client/assets/{collections-C8UGR0dQ.js → collections-DsvWgjkq.js} +1 -1
  75. package/dist/client/assets/{command-Cwxrfu8T.js → command-nIpjgY_C.js} +1 -1
  76. package/dist/client/assets/{connect-desktop-dialog-CAgFYUmf.js → connect-desktop-dialog-D0cwbi62.js} +1 -1
  77. package/dist/client/assets/{connection-card-Dmrkhocz.js → connection-card-Js2GKnMD.js} +1 -1
  78. package/dist/client/assets/connection-detail-Db8Rqnlx.js +1 -0
  79. package/dist/client/assets/{connection-form-helpers-BL61O5Zc.js → connection-form-helpers-Dkeln3L-.js} +1 -1
  80. package/dist/client/assets/connections-BM65SkyA.js +1 -0
  81. package/dist/client/assets/{constants-BFQrPD6r.js → constants-DeFtLUND.js} +1 -1
  82. package/dist/client/assets/{decopilot-sse-pool-DIAcxt2i.js → decopilot-sse-pool-xYuzxJCG.js} +1 -1
  83. package/dist/client/assets/{dialog-J9xRnRHX.js → dialog-BDoa-Aig.js} +1 -1
  84. package/dist/client/assets/{domain-settings-Cq5_HOtz.js → domain-settings-BHKhY4wr.js} +1 -1
  85. package/dist/client/assets/{drawer-NwIwuvOD.js → drawer-DBoqm7Ga.js} +1 -1
  86. package/dist/client/assets/{dropdown-menu-Do65ajnt.js → dropdown-menu-BuEg85yr.js} +1 -1
  87. package/dist/client/assets/{dynamic-plugin-layout-DYQZtWgt.js → dynamic-plugin-layout-DROpH4YR.js} +1 -1
  88. package/dist/client/assets/{empty-state-Dl_snts0.js → empty-state-BzUpYoP8.js} +1 -1
  89. package/dist/client/assets/{empty-state-BqVzURvi.js → empty-state-Ct_D2Lzo.js} +1 -1
  90. package/dist/client/assets/{extract-connection-data-J0nLi0pB.js → extract-connection-data-C73XSXJg.js} +1 -1
  91. package/dist/client/assets/{features-B1yvHilR.js → features-CG5whIKN.js} +1 -1
  92. package/dist/client/assets/{file-explorer-B3VjqNs-.js → file-explorer-DIE7TBnv.js} +2 -2
  93. package/dist/client/assets/{file-type-icon-DPEVE6_q.js → file-type-icon-CXEAWEt3.js} +1 -1
  94. package/dist/client/assets/{files-DFPQhmGr.js → files-Dk2BQIKH.js} +1 -1
  95. package/dist/client/assets/{form-C4TJnG5K.js → form-CEHwzUIx.js} +1 -1
  96. package/dist/client/assets/{general-B4bDWRqK.js → general-D0Ux1V9u.js} +1 -1
  97. package/dist/client/assets/{generate-id-C8OHZs1-.js → generate-id-DwXNdT-H.js} +1 -1
  98. package/dist/client/assets/{github-repo-picker-BXy4amYZ.js → github-repo-picker-CFHmzbdo.js} +1 -1
  99. package/dist/client/assets/{header-tab-button-CfRERpsl.js → header-tab-button-Be5qNrZz.js} +1 -1
  100. package/dist/client/assets/{hover-card-CzsSQjRq.js → hover-card-CZKyvEKV.js} +1 -1
  101. package/dist/client/assets/{image-field-ixadfB5p.js → image-field-dhimK8za.js} +1 -1
  102. package/dist/client/assets/{index-FjrzqkXH.js → index-3RJ1532Y.js} +1 -1
  103. package/dist/client/assets/{index-C3EQc9K0.js → index-4cje1k2I.js} +1 -1
  104. package/dist/client/assets/{index-Bx5wFMxU.js → index-5FdhmN0u.js} +1 -1
  105. package/dist/client/assets/{index-B9kRhzg7.js → index-8Av7_XG5.js} +3 -3
  106. package/dist/client/assets/{index-X8qPybJt.js → index-B3HtVn_3.js} +1 -1
  107. package/dist/client/assets/{index-bbsI4OK2.js → index-BTP7FdvD.js} +1 -1
  108. package/dist/client/assets/{index-DSVt98oz.js → index-C1oz8tZO.js} +1 -1
  109. package/dist/client/assets/{index-BQhstHsz.js → index-CX7SvFBB.js} +1 -1
  110. package/dist/client/assets/{index-CtCZ2lVU.js → index-CnvExC11.js} +1 -1
  111. package/dist/client/assets/{index-DgQteD84.js → index-D2E_r2Ga.js} +1 -1
  112. package/dist/client/assets/{index-2TKWj64n.js → index-DJjaDA78.js} +1 -1
  113. package/dist/client/assets/{index-jPAWrqoL.js → index-DhlM3QdF.js} +1 -1
  114. package/dist/client/assets/{index-CPhpCeI1.js → index-OL8Ldzfm.js} +23 -23
  115. package/dist/client/assets/{index-CjY_0Wnz.js → index-fhh9LjnW.js} +1 -1
  116. package/dist/client/assets/{index-hwNqvXOX.js → index-qEEk-G84.js} +1 -1
  117. package/dist/client/assets/{index-redirect-Cu5slcp-.js → index-redirect-Cw9_x250.js} +1 -1
  118. package/dist/client/assets/{infiniteQueryObserver-Xb1xysnw.js → infiniteQueryObserver-BPAoXqhZ.js} +1 -1
  119. package/dist/client/assets/{input-DCOoktZX.js → input-CFgdCIf-.js} +1 -1
  120. package/dist/client/assets/{integration-icon-D0rRtQFH.js → integration-icon-ByZrCdpe.js} +1 -1
  121. package/dist/client/assets/{label-dlG4_xKf.js → label-D5ze4fbW.js} +1 -1
  122. package/dist/client/assets/{layout-CqY1dIbQ.js → layout-BuMBlDfo.js} +1 -1
  123. package/dist/client/assets/{login-D5Kc2gHp.js → login-RbDPhsFB.js} +1 -1
  124. package/dist/client/assets/{members-CtWFCCAM.js → members-k2G4ARa8.js} +1 -1
  125. package/dist/client/assets/{monaco-editor-C03OGypq.js → monaco-editor-BAqhsJzm.js} +1 -1
  126. package/dist/client/assets/{monitoring-stats-row-B5_JF7d0.js → monitoring-stats-row-DSa7vGTC.js} +1 -1
  127. package/dist/client/assets/{oauth-callback-Bq0llziz.js → oauth-callback-CbbBKuCW.js} +1 -1
  128. package/dist/client/assets/{oauth-callback-ai-provider-Dqhr4g5S.js → oauth-callback-ai-provider-BRZTOWnt.js} +1 -1
  129. package/dist/client/assets/{onboarding-B8asD6BW.js → onboarding-C6E_j9z8.js} +1 -1
  130. package/dist/client/assets/{org-install-Chh9koDm.js → org-install-Dj9o_O_M.js} +1 -1
  131. package/dist/client/assets/{org-layout-_HQPGRGc.js → org-layout-UJeeaSgp.js} +1 -1
  132. package/dist/client/assets/{org-plugin-layout-CrzvtX56.js → org-plugin-layout-BKs5_fCy.js} +1 -1
  133. package/dist/client/assets/{page-seo-form-DgC67IZh.js → page-seo-form-nusKb5Sb.js} +1 -1
  134. package/dist/client/assets/page-seo-sheet-BpOn67AY.js +1 -0
  135. package/dist/client/assets/{pair-ETmN3fj_.js → pair-B10kI-gZ.js} +1 -1
  136. package/dist/client/assets/{plugin-empty-state-rsU-dNVu.js → plugin-empty-state-j4CULS57.js} +1 -1
  137. package/dist/client/assets/{plugin-header-D7vi3yKZ.js → plugin-header-DULj-Y49.js} +1 -1
  138. package/dist/client/assets/{plugin-layout-CNRc47uO.js → plugin-layout-BKWVYVIi.js} +1 -1
  139. package/dist/client/assets/{popover-Dinj8RAt.js → popover-CusBDsw3.js} +1 -1
  140. package/dist/client/assets/{post-editor-D_b2wd_z.js → post-editor-DEyWVqiE.js} +3 -3
  141. package/dist/client/assets/{primitives-DqpziEOx.js → primitives-K-Cou-34.js} +1 -1
  142. package/dist/client/assets/{profile-p9UvcTh7.js → profile-Cbty-wCE.js} +1 -1
  143. package/dist/client/assets/project-app-view-gakpd8ie.js +1 -0
  144. package/dist/client/assets/record-editor-BJCIZK6H.js +1 -0
  145. package/dist/client/assets/registry-IJiacnxJ.js +2 -0
  146. package/dist/client/assets/{registry-layout-CEjdQi8i.js → registry-layout-1N9kmpom.js} +1 -1
  147. package/dist/client/assets/{require-capability-DjstlBCS.js → require-capability-B58b3LsO.js} +1 -1
  148. package/dist/client/assets/{required-auth-layout-DQ_j0OWf.js → required-auth-layout-CLPqu2hV.js} +1 -1
  149. package/dist/client/assets/{reset-password-PhkeCWUg.js → reset-password-QvfJzQLt.js} +1 -1
  150. package/dist/client/assets/{resizable-CEMGS5N9.js → resizable-DtVYiBv-.js} +1 -1
  151. package/dist/client/assets/{roles-C9PxfSEA.js → roles-BJzMRSbv.js} +1 -1
  152. package/dist/client/assets/{save-status-BCvLZZx5.js → save-status-CcrdCZvz.js} +1 -1
  153. package/dist/client/assets/{schema-form-ETVh-DHz.js → schema-form-CLs9R9OM.js} +1 -1
  154. package/dist/client/assets/{scroll-area-DSB3avJ3.js → scroll-area-GY_MqX9m.js} +1 -1
  155. package/dist/client/assets/{search-input-Dny3m5xa.js → search-input-CaIL3--R.js} +1 -1
  156. package/dist/client/assets/{secrets-CWGMYwDs.js → secrets-CEQKXAz2.js} +1 -1
  157. package/dist/client/assets/{sections-editor-rkPkrwr9.js → sections-editor-3wx6-GfE.js} +1 -1
  158. package/dist/client/assets/{select-CVZQAcm7.js → select-Y4AHPww8.js} +1 -1
  159. package/dist/client/assets/{select-model-BLCOUHJb.js → select-model-DV1-Oh57.js} +1 -1
  160. package/dist/client/assets/{seo-editor-Dv6Vrh4r.js → seo-editor-CwuvVAjS.js} +1 -1
  161. package/dist/client/assets/{settings-layout-D33DplHx.js → settings-layout-lPzeLZ6G.js} +1 -1
  162. package/dist/client/assets/{settings-section-Bx1_7ym7.js → settings-section-rywQD1H8.js} +1 -1
  163. package/dist/client/assets/{sheet-BLkB41eQ.js → sheet-HD1tdtUP.js} +1 -1
  164. package/dist/client/assets/{shell-controls-yn92xA7D.js → shell-controls-CiR1mOgQ.js} +1 -1
  165. package/dist/client/assets/{shell-layout-v69WfJwF.js → shell-layout-D1gXYOI4.js} +1 -1
  166. package/dist/client/assets/{shell-route-loading-DqEXsH0r.js → shell-route-loading-BMvdQN97.js} +1 -1
  167. package/dist/client/assets/{sidebar-BMIDAt6t.js → sidebar-BTAYcbpn.js} +1 -1
  168. package/dist/client/assets/{skeleton-KI9W-P-f.js → skeleton-KPs8aExG.js} +1 -1
  169. package/dist/client/assets/{sortable.esm-tovEx4aa.js → sortable.esm-k9dnaUc0.js} +1 -1
  170. package/dist/client/assets/{spinner-1Hxy4oL5.js → spinner-CWHpDgnL.js} +1 -1
  171. package/dist/client/assets/{sso-D_4gD-Yv.js → sso-DCJOVjP-.js} +1 -1
  172. package/dist/client/assets/{store-DeB9eSSk.js → store-QHf4NvZa.js} +1 -1
  173. package/dist/client/assets/store-registry-O5u8x-zS.js +2 -0
  174. package/dist/client/assets/{switch-BtXimVeh.js → switch-CCjru8jV.js} +1 -1
  175. package/dist/client/assets/{tab-id-DiLpeikj.js → tab-id-Cj2zAp8p.js} +1 -1
  176. package/dist/client/assets/{table-CZLBrik6.js → table-Dpu-CGxg.js} +1 -1
  177. package/dist/client/assets/{tabs-DGoyKbi9.js → tabs-Bsb3WneA.js} +1 -1
  178. package/dist/client/assets/{task-status-nPHS0i2v.js → task-status-Bq8PHYFh.js} +1 -1
  179. package/dist/client/assets/{textarea-CaPEW-IU.js → textarea-Bw4v_xfm.js} +1 -1
  180. package/dist/client/assets/{toggle-group-kjmQGkBo.js → toggle-group-a9DpUbSj.js} +1 -1
  181. package/dist/client/assets/{toolbar-CuMC4awt.js → toolbar-BkMHRO8B.js} +1 -1
  182. package/dist/client/assets/{tools-list-CCmWgH3U.js → tools-list-CmaWZYdl.js} +1 -1
  183. package/dist/client/assets/{tooltip-Cx8u2hvs.js → tooltip-B9p8ywB_.js} +1 -1
  184. package/dist/client/assets/{types-CZnHlJyi.js → types-5S14a687.js} +1 -1
  185. package/dist/client/assets/{use-ai-providers-CmWP-lNT.js → use-ai-providers-iJF3uFpo.js} +1 -1
  186. package/dist/client/assets/{use-automations-Bi6clolz.js → use-automations-BTipFIOi.js} +1 -1
  187. package/dist/client/assets/{use-capability-B6JwqpW7.js → use-capability-CeWdChcL.js} +1 -1
  188. package/dist/client/assets/{use-collections-C1EEoGdl.js → use-collections-CMMaRmVG.js} +1 -1
  189. package/dist/client/assets/{use-connection-DkHV4tpA.js → use-connection-C2Ef-EqP.js} +1 -1
  190. package/dist/client/assets/{use-copy-BKH_ay1V.js → use-copy-DPF-R5Zs.js} +1 -1
  191. package/dist/client/assets/{use-create-virtual-mcp-UfIRObXS.js → use-create-virtual-mcp-7QQxHiI4.js} +1 -1
  192. package/dist/client/assets/{use-debounced-autosave-BTVTsOKV.js → use-debounced-autosave-Da4caii8.js} +1 -1
  193. package/dist/client/assets/{use-delete-connection-D9RSUNNZ.js → use-delete-connection-DaFBaRNm.js} +1 -1
  194. package/dist/client/assets/{use-file-configs-DC8U7Oa7.js → use-file-configs-DWgNRokn.js} +1 -1
  195. package/dist/client/assets/{use-infinite-scroll-DV-4RP03.js → use-infinite-scroll-BaBllFvG.js} +1 -1
  196. package/dist/client/assets/{use-list-state-Mwh_8jAB.js → use-list-state-d80zzrG8.js} +1 -1
  197. package/dist/client/assets/{use-mcp-prompts-CeFy4g83.js → use-mcp-prompts-1dd1yGOH.js} +1 -1
  198. package/dist/client/assets/{use-mcp-tools-BS9dyBS-.js → use-mcp-tools-C8LW1vg1.js} +1 -1
  199. package/dist/client/assets/{use-members-CtpiNo8J.js → use-members-D2U599cF.js} +1 -1
  200. package/dist/client/assets/{use-navigate-to-agent-C81Y1E7k.js → use-navigate-to-agent-C3AzTy7G.js} +1 -1
  201. package/dist/client/assets/{use-org-auth-client-DVt08ImK.js → use-org-auth-client-BQe59WMu.js} +1 -1
  202. package/dist/client/assets/{use-org-sso-B96bQNMI.js → use-org-sso-BB-vyF4c.js} +1 -1
  203. package/dist/client/assets/{use-organization-roles-DRbW9m6o.js → use-organization-roles-DItwUayG.js} +1 -1
  204. package/dist/client/assets/{use-organization-settings-BDlR4IeW.js → use-organization-settings-B6tWOwuA.js} +1 -1
  205. package/dist/client/assets/{use-registry-connections-BCrdHAv1.js → use-registry-connections-DIBKm4oO.js} +1 -1
  206. package/dist/client/assets/{use-secrets-ODuzEevV.js → use-secrets-BhZyR2Dx.js} +1 -1
  207. package/dist/client/assets/{use-status-sounds-DEheRMHk.js → use-status-sounds-Wb6qMNbl.js} +1 -1
  208. package/dist/client/assets/{use-view-mode-BoGNEuZa.js → use-view-mode-BwvjqQMY.js} +1 -1
  209. package/dist/client/assets/{use-virtual-mcp-CtYRrEgz.js → use-virtual-mcp-C_vD2kKw.js} +1 -1
  210. package/dist/client/assets/useInfiniteQuery-CQ_UxVw9.js +1 -0
  211. package/dist/client/assets/{useRouterState-BRj2kxuq.js → useRouterState-BLC1S9ll.js} +1 -1
  212. package/dist/client/assets/useSuspenseInfiniteQuery-XoWOrVYw.js +1 -0
  213. package/dist/client/assets/{user-C5EKJb7v.js → user-BHKPSALf.js} +1 -1
  214. package/dist/client/assets/{view-mode-toggle-DbMrI7Rd.js → view-mode-toggle-BabF7Sx4.js} +1 -1
  215. package/dist/client/assets/{workflow-DyKfGm6u.js → workflow-BQFoQKwV.js} +1 -1
  216. package/dist/client/assets/workflow-detail-CUEl0-_h.js +1 -0
  217. package/dist/client/index.html +1 -1
  218. package/dist/server/cli.js +1 -1
  219. package/package.json +1 -1
  220. package/dist/client/assets/add-section-modal-ClL4Powp.js +0 -1
  221. package/dist/client/assets/app-editor-D9kT95TJ.js +0 -1
  222. package/dist/client/assets/connection-detail-DWDzLFqi.js +0 -1
  223. package/dist/client/assets/connections-uscIXarN.js +0 -1
  224. package/dist/client/assets/page-seo-sheet-Dra624a7.js +0 -1
  225. package/dist/client/assets/project-app-view-uOoeNe2E.js +0 -1
  226. package/dist/client/assets/record-editor-CMLZ85jn.js +0 -1
  227. package/dist/client/assets/registry-aoqZ94q5.js +0 -2
  228. package/dist/client/assets/store-registry-s8ISYHIv.js +0 -2
  229. package/dist/client/assets/useInfiniteQuery-B2j87XPZ.js +0 -1
  230. package/dist/client/assets/useSuspenseInfiniteQuery-BbIHskrR.js +0 -1
  231. package/dist/client/assets/workflow-detail-DBpAT1yB.js +0 -1
@@ -1 +1 @@
1
- import{e as oe,j as t,B as Ce,f as Be,b as ct,q as ze,r as dt,o as Fe,F as mt,a as pt,K as Le,e1 as Ke,dn as ut}from"./index-B9kRhzg7.js";import{u as qe,S as Ve}from"./constants-BFQrPD6r.js";import{B as ft,g as Me}from"./generate-id-C8OHZs1-.js";import{C as Qe}from"./collection-display-button-C-mBXp6g.js";import{C as ht}from"./collection-search-CljcPIbT.js";import{C as gt}from"./card-DsraaOS_.js";import{I as Ge}from"./integration-icon-D0rRtQFH.js";import{D as He,a as Je,b as Ye,c as O}from"./dropdown-menu-Do65ajnt.js";import{s as Xe,a as Ze}from"./Eye-ogI2y4CN.js";import{i as et}from"./DotsVertical-DDPFnnRS.js";import{i as tt}from"./Tool01-DRibBi0T.js";import{s as st}from"./Trash01-DfuJtop_.js";import{C as xt}from"./collection-table-wrapper-DO_P7QvK.js";import{E as Ue}from"./empty-state-Dl_snts0.js";import{n as We}from"./Stars02-Bo6vryYW.js";import{U as jt}from"./user-C5EKJb7v.js";import{E as it}from"./empty-state-BqVzURvi.js";import{u as Ct}from"./use-list-state-Mwh_8jAB.js";import{g as bt}from"./connection-slug-eyAPH6o3.js";import{f as vt,g as yt,c as Nt,b as wt,d as St,e as Pt,a as _t,A as Dt}from"./alert-dialog-BpOf9MAK.js";import{a as It,b as At}from"./use-collections-C1EEoGdl.js";import{a as Tt}from"./use-connection-DkHV4tpA.js";import{s as Et}from"./Plus-BnGx63GX.js";import{a as Ot}from"./layout-CqY1dIbQ.js";import{P as je}from"./index-Bx5wFMxU.js";import"./collections-C8UGR0dQ.js";import"./SwitchHorizontal01-BjgMZfW7.js";import"./Check-DCJCCJt5.js";import"./tooltip-Cx8u2hvs.js";import"./view-mode-toggle-DbMrI7Rd.js";import"./badge-BCXaZ3jr.js";import"./SearchMd-CxJnyPJ2.js";import"./Container-DlDQbtuJ.js";import"./agent-icon-DFJgaXFK.js";import"./AlertCircle-DQ3zaMns.js";import"./RefreshCcw01-Dk9AOo-m.js";import"./XCircle-BvIhN4E7.js";import"./ArrowUpRight-UT01ancE.js";import"./ZapSquare-C79zBXJj.js";import"./Users03-DhXF_0sH.js";import"./CheckCircle-CN8csJmd.js";import"./ChevronDown-vntP1LF0.js";import"./ChevronLeft-_4tt3JbP.js";import"./ChevronRight-BD7fiLv7.js";import"./ChevronUp-B9NZzlEX.js";import"./ZoomOut-B5B07_-g.js";import"./Globe01-C2fKyC2-.js";import"./FilterLines-DpUfIC-u.js";import"./Star01-Cu6cUuhf.js";import"./Palette-OtFJ1ywH.js";import"./HardDrive-Ik-OtFON.js";import"./Key01-CmprkySl.js";import"./LayoutLeft-BO92HMhM.js";import"./LinkExternal01-9W209kLr.js";import"./Monitor01-B0FKK9nk.js";import"./Sun-Bg1tFzcn.js";import"./Play-B9TsjtCB.js";import"./Settings02-PSRUEgfS.js";import"./Shield01-Do71Dyqk.js";import"./Stars01-BuMp0jeZ.js";import"./Upload01-DGWS8Icx.js";import"./User01-B1RcIkcM.js";import"./Users01-CyxI-ZiC.js";import"./XClose-CXacF9IM.js";import"./X-COnjMnsv.js";import"./Zap-BM6RWRPw.js";import"./table-CZLBrik6.js";import"./avatar-CuZPsvd7.js";import"./use-view-mode-BoGNEuZa.js";import"./sidebar-BMIDAt6t.js";import"./sheet-BLkB41eQ.js";function $t(i,e){const s=i.properties||{};for(const n in s){const c=s[n];if(c&&c.type==="string"&&(c.format==="url"||c.format==="uri")&&e&&typeof e=="object"&&n in e&&e[n])return e[n]}const l=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of l)if(e&&typeof e=="object"&&n in e&&typeof e[n]=="string")return e[n]}function kt(i){const e=oe.c(25),{item:s,schema:l,actions:n}=i;let c;e[0]!==s||e[1]!==l?(c=$t(l,s),e[0]=s,e[1]=l,e[2]=c):c=e[2];const r=c,u=s&&typeof s=="object"&&"description"in s&&typeof s.description=="string"?s.description:void 0;let d;e[3]!==n?(d=n&&Object.keys(n).length>0,e[3]=n,e[4]=d):d=e[4];const o=d;let p;e[5]!==r||e[6]!==s.title?(p=t.jsx(Ge,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=p):p=e[7];let m;e[8]!==s.title?(m=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=m):m=e[9];const f=u||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==m||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[m,a]}),e[12]=m,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==p||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[p,v]}),e[15]=p,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Lt,children:t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Ft,children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:zt,children:[n.open&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.open?.(s)},children:[t.jsx(Xe,{size:16}),"Open"]}),n.edit&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.edit?.(s)},children:[t.jsx(tt,{size:16}),"Edit"]}),n.duplicate&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.duplicate?.(s)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),n.delete&&t.jsxs(O,{variant:"destructive",onClick:g=>{g.stopPropagation(),n.delete?.(s)},children:[t.jsx(st,{size:16}),"Delete"]})]})]})}),e[18]=n,e[19]=o,e[20]=s,e[21]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:l,viewMode:n,search:c,sortKey:r,sortDirection:u,onSort:d,actions:o,onItemClick:p,headerActions:m,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=u===void 0?"asc":u,g=d===void 0?Vt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=p===void 0?qt:p,E=m===void 0?null:m,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==l||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=j,e[3]=l,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==r||e[11]!==w?(S=!z&&t.jsx("div",{className:"shrink-0 w-full border-b border-border h-12",children:t.jsxs("div",{className:"flex items-center gap-3 h-12 px-4",children:[t.jsx("div",{className:"flex items-center gap-2 flex-1",children:E}),t.jsx("div",{className:"flex items-center gap-2 shrink-0",children:t.jsx(Qe,{sortKey:r,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==x||e[23]!==r||e[24]!==P||e[25]!==n?(_=n==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}):t.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-4",children:s.map(A=>t.jsx("div",{onClick:()=>T?.(A),className:"cursor-pointer h-full",children:t.jsx(kt,{item:A,schema:l,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Ht(j,l,P,h),data:s,sortKey:r,sortDirection:x,onSort:g,onRowClick:T,emptyState:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}),e[13]=h,e[14]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=x,e[23]=r,e[24]=P,e[25]=n,e[26]=_):_=e[26];let I;return e[27]!==S||e[28]!==_?(I=t.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[S,_]}),e[27]=S,e[28]=_,e[29]=I):I=e[29],I}function Rt(i){return{id:i.id,label:typeof i.header=="string"?i.header:i.id}}function Bt(i){return i.sortable!==!1}function qt(){}function Vt(){}function Qt(i){return{id:"actions",header:"",render:e=>t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:s=>s.stopPropagation(),children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:s=>s.stopPropagation(),children:[i.open&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.open?.(e)},children:[t.jsx(Xe,{size:16}),"Open"]}),i.edit&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.edit?.(e)},children:[t.jsx(tt,{size:16}),"Edit"]}),i.duplicate&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.duplicate?.(e)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),i.delete&&t.jsxs(O,{variant:"destructive",onClick:s=>{s.stopPropagation(),i.delete?.(e)},children:[t.jsx(st,{size:16}),"Delete"]})]})]}),cellClassName:"w-[60px]",sortable:!1}}function nt(i){const e=i.type;return Array.isArray(e)?e.every(s=>nt({type:s})):e==="string"||e==="number"||e==="integer"||e==="boolean"||e==="null"}function Gt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const p=s[o];return p&&nt(p)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const u=["title","description","updated_at","updated_by"];for(const o of u)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));const d=l.filter(o=>!r.has(o)&&!Re.includes(o)).sort((o,p)=>o.localeCompare(p));for(const o of d)c.push(o),r.add(o);for(const o of Re)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));return c.map(o=>{const p=s[o],m=e?e.includes(o):!["id"].includes(o);return o===n?{id:o,header:"",render:f=>{const a=f[o];return t.jsx(Ge,{icon:a,name:f.title,size:"sm",className:"shrink-0 shadow-sm"})},sortable:!1,cellClassName:"w-16 shrink-0",wrap:!0}:o==="description"?{id:o,header:"Description",render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-[50ch]",children:String(a)})},sortable:m,cellClassName:"max-w-[50ch]"}:o==="created_by"||o==="updated_by"?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx(jt,{id:String(a),size:"xs"}):"—"},sortable:m,cellClassName:"max-w-[250px]"}:p?.format==="date-time"||o.endsWith("_at")?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx("span",{className:"block truncate max-w-full",children:new Date(a).toLocaleDateString()}):"—"},sortable:m,cellClassName:"max-w-[200px]"}:{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-full",children:String(a)})},sortable:m,cellClassName:"max-w-[200px]"}})}function Ht(i,e,s,l){const n=i||Gt(e,s);return n.some(u=>u.id==="actions")?n:Object.keys(l).length>0?[...n,Qt(l)]:n}function Jt(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,u=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,p=n.hasDeleteTool,m=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=qe(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[7]!==l||e[8]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[7]=l,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,r,$,_),A=!d&&!o&&!p;let ne;e[14]!==b||e[15]!==r||e[16]!==m||e[17]!==c||e[18]!==l?(ne=C=>{if(c){c(C);return}m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:C.id}})},e[14]=b,e[15]=r,e[16]=m,e[17]=c,e[18]=l,e[19]=ne):ne=e[19];const F=ne;let re;e[20]!==h.create||e[21]!==a?(re=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=re):re=e[22];const be=re,[L,ve]=dt.useState(null);let le;e[23]===Symbol.for("react.memo_cache_sentinel")?(le=C=>{ve(C)},e[23]=le):le=e[23];const rt=le;let K;e[24]!==F||e[25]!==o?(K=o&&{edit:F},e[24]=F,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==p?(U=p&&{delete:rt},e[30]=p,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==L?(ce=async()=>{L&&(await h.delete.mutateAsync(L.id),ve(null))},e[36]=h.delete,e[37]=L,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==r||e[42]!==d||e[43]!==m||e[44]!==l||e[45]!==a?(de=async()=>{if(!d){Fe.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=r,e[42]=d,e[43]=m,e[44]=l,e[45]=a,e[46]=de):de=e[46];const we=de;let me;e[47]!==u?(me=ot(u),e[47]=u,e[48]=me):me=e[48];const Se=me,lt=(I?.length??0)>0,at=d&&!lt&&!N;let pe;e[49]!==h.create||e[50]!==we||e[51]!==d?(pe=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=pe):pe=e[52];const ue=pe,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Qe,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${r}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let q;e[65]!==ue||e[66]!==d?(q=d&&t.jsx("div",{className:"pr-3",children:ue}),e[65]=ue,e[66]=d,e[67]=q):q=e[67];let V;e[68]!==B||e[69]!==q?(V=t.jsxs("div",{className:"flex items-center gap-2",children:[B,q]}),e[68]=B,e[69]=q,e[70]=V):V=e[70];let Q;e[71]!==I?(Q=I??[],e[71]=I,e[72]=Q):Q=e[72];const De=D;let G;e[73]!==F?(G=C=>F(C),e[73]=F,e[74]=G):G=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?ue:void 0;let H;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=H):H=e[78];let J;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==u||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==Q||e[88]!==De||e[89]!==G||e[90]!==H||e[91]!==z?(J=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:Q,schema:u,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:G,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=u,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=Q,e[88]=De,e[89]=G,e[90]=H,e[91]=z,e[92]=J):J=e[92];let Y;e[93]!==V||e[94]!==J?(Y=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[V,J]}),e[93]=V,e[94]=J,e[95]=Y):Y=e[95];const Ee=!!L;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=L?.title;let X;e[98]!==Oe?(X=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=X):X=e[99];let Z;e[100]!==h.delete.isPending?(Z=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=Z):Z=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==Z||e[107]!==ee?(te=t.jsxs(Pt,{children:[Z,ee]}),e[106]=Z,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==X||e[110]!==te?(se=t.jsxs(_t,{children:[X,te]}),e[109]=X,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==Y||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,Y,ie]}),e[115]=W,e[116]=Y,e[117]=ie,e[118]=ge):ge=e[118],ge}function Yt(){const i=oe.c(13),{org:e,project:s}=ze(),l=mt();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:Ve,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=qe(n);let r;i[3]!==c||i[4]!==s?(r=async p=>{const m=s.enabledPlugins??[];if(m.includes(p))return;const f=[...m,p],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=r):r=i[5];let u;i[6]!==e.id||i[7]!==s||i[8]!==l?(u=()=>{l.invalidateQueries({queryKey:Le.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Le.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=u):u=i[9];let d;return i[10]!==r||i[11]!==u?(d={mutationFn:r,onSuccess:u,onError:Xt},i[10]=r,i[11]=u,i[12]=d):d=i[12],pt(d)}function Xt(i){Fe.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Zt(i){const e=oe.c(12),{pluginId:s,title:l,description:n,icon:c}=i,r=Yt();let u;e[0]!==r||e[1]!==s?(u=async()=>{try{await r.mutateAsync(s),Fe.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=u):u=e[2];const d=u,o=c??null,p=r.isPending?"Enabling…":"Enable plugin";let m;e[3]!==r.isPending||e[4]!==d||e[5]!==p?(m=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:p}),e[3]=r.isPending,e[4]=d,e[5]=p,e[6]=m):m=e[6];let f;return e[7]!==n||e[8]!==o||e[9]!==m||e[10]!==l?(f=t.jsx(it,{image:o,title:l,description:n,actions:m}),e[7]=n,e[8]=o,e[9]=m,e[10]=l,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function Ci(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Zt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(ut,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Jt,{connectionId:Ve,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{Ci as default};
1
+ import{e as oe,j as t,B as Ce,f as Be,b as ct,q as ze,r as dt,o as Fe,F as mt,a as pt,K as Le,e1 as Ke,dn as ut}from"./index-8Av7_XG5.js";import{u as qe,S as Ve}from"./constants-DeFtLUND.js";import{B as ft,g as Me}from"./generate-id-DwXNdT-H.js";import{C as Qe}from"./collection-display-button-LYjUKJyD.js";import{C as ht}from"./collection-search-CIGzMvXg.js";import{C as gt}from"./card-Bs_ZETWd.js";import{I as Ge}from"./integration-icon-ByZrCdpe.js";import{D as He,a as Je,b as Ye,c as O}from"./dropdown-menu-BuEg85yr.js";import{s as Xe,a as Ze}from"./Eye-DLKlw-42.js";import{i as et}from"./DotsVertical-CYMPhMIv.js";import{i as tt}from"./Tool01-Co9IzxOX.js";import{s as st}from"./Trash01-m4F91Gbm.js";import{C as xt}from"./collection-table-wrapper-CRZ7umIR.js";import{E as Ue}from"./empty-state-BzUpYoP8.js";import{n as We}from"./Stars02-7S-x4jsE.js";import{U as jt}from"./user-BHKPSALf.js";import{E as it}from"./empty-state-Ct_D2Lzo.js";import{u as Ct}from"./use-list-state-d80zzrG8.js";import{g as bt}from"./connection-slug-eyAPH6o3.js";import{f as vt,g as yt,c as Nt,b as wt,d as St,e as Pt,a as _t,A as Dt}from"./alert-dialog-Ci1rMRpl.js";import{a as It,b as At}from"./use-collections-CMMaRmVG.js";import{a as Tt}from"./use-connection-C2Ef-EqP.js";import{s as Et}from"./Plus-DINfOuqC.js";import{a as Ot}from"./layout-BuMBlDfo.js";import{P as je}from"./index-5FdhmN0u.js";import"./collections-DsvWgjkq.js";import"./SwitchHorizontal01-CdSYnpvh.js";import"./Check-D-2DMeXR.js";import"./tooltip-B9p8ywB_.js";import"./view-mode-toggle-BabF7Sx4.js";import"./badge-BiVWMQaC.js";import"./SearchMd-Dt4Aj6N4.js";import"./Container-V3OuMECL.js";import"./agent-icon-VIqap9Jf.js";import"./AlertCircle-Ctbek2zl.js";import"./RefreshCcw01-DSZXx3HQ.js";import"./XCircle-BjeFLJxj.js";import"./ArrowUpRight-CGlPrRsR.js";import"./ZapSquare-By7Cv3Wp.js";import"./Users03-mgRYViRT.js";import"./CheckCircle-CPLY3iX-.js";import"./ChevronDown-DUb-OAcF.js";import"./ChevronLeft-IUSMXc7n.js";import"./ChevronRight-C6_Bb1P7.js";import"./ChevronUp-mT0kmu5O.js";import"./ZoomOut-CIHaUyEl.js";import"./Globe01-BSqLqa8H.js";import"./FilterLines-B2lLGnWS.js";import"./Star01-DWr_psxV.js";import"./Palette-D1rjO3C7.js";import"./HardDrive-BFG0b6vP.js";import"./Key01-DeIJhm73.js";import"./LayoutLeft-CAachN7j.js";import"./LinkExternal01-C7Ulot5I.js";import"./Monitor01-RdLthi4L.js";import"./Sun-C0yimusT.js";import"./Play-CL1Mgiwf.js";import"./Settings02-COHAF-aj.js";import"./Shield01-Ef5O0H91.js";import"./Stars01-CTAt_kJn.js";import"./Upload01-BWuva6Fs.js";import"./User01-BQ6QP8OL.js";import"./Users01-ByzlIQ3F.js";import"./XClose-s3WJPw3-.js";import"./X-D5DAti-0.js";import"./Zap-Z3n8EP6c.js";import"./table-Dpu-CGxg.js";import"./avatar-B5XGLu28.js";import"./use-view-mode-BwvjqQMY.js";import"./sidebar-BTAYcbpn.js";import"./sheet-HD1tdtUP.js";function $t(i,e){const s=i.properties||{};for(const n in s){const c=s[n];if(c&&c.type==="string"&&(c.format==="url"||c.format==="uri")&&e&&typeof e=="object"&&n in e&&e[n])return e[n]}const l=["image","img","avatar","icon","logo","thumbnail","cover"];for(const n of l)if(e&&typeof e=="object"&&n in e&&typeof e[n]=="string")return e[n]}function kt(i){const e=oe.c(25),{item:s,schema:l,actions:n}=i;let c;e[0]!==s||e[1]!==l?(c=$t(l,s),e[0]=s,e[1]=l,e[2]=c):c=e[2];const r=c,u=s&&typeof s=="object"&&"description"in s&&typeof s.description=="string"?s.description:void 0;let d;e[3]!==n?(d=n&&Object.keys(n).length>0,e[3]=n,e[4]=d):d=e[4];const o=d;let p;e[5]!==r||e[6]!==s.title?(p=t.jsx(Ge,{icon:r,name:s.title,size:"md",className:"shrink-0 shadow-sm"}),e[5]=r,e[6]=s.title,e[7]=p):p=e[7];let m;e[8]!==s.title?(m=t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:s.title}),e[8]=s.title,e[9]=m):m=e[9];const f=u||"No description";let a;e[10]!==f?(a=t.jsx("p",{className:"text-base text-muted-foreground line-clamp-2",children:f}),e[10]=f,e[11]=a):a=e[11];let v;e[12]!==m||e[13]!==a?(v=t.jsxs("div",{className:"flex flex-col gap-0 flex-1",children:[m,a]}),e[12]=m,e[13]=a,e[14]=v):v=e[14];let y;e[15]!==p||e[16]!==v?(y=t.jsxs("div",{className:"flex flex-col gap-4 p-6 flex-1",children:[p,v]}),e[15]=p,e[16]=v,e[17]=y):y=e[17];let b;e[18]!==n||e[19]!==o||e[20]!==s?(b=o&&t.jsx("div",{className:"absolute top-6 right-6 sm:opacity-0 sm:group-hover:opacity-100 transition-opacity",onClick:Kt,onMouseDown:Lt,children:t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:Ft,children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:zt,children:[n.open&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.open?.(s)},children:[t.jsx(Xe,{size:16}),"Open"]}),n.edit&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.edit?.(s)},children:[t.jsx(tt,{size:16}),"Edit"]}),n.duplicate&&t.jsxs(O,{onClick:g=>{g.stopPropagation(),n.duplicate?.(s)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),n.delete&&t.jsxs(O,{variant:"destructive",onClick:g=>{g.stopPropagation(),n.delete?.(s)},children:[t.jsx(st,{size:16}),"Delete"]})]})]})}),e[18]=n,e[19]=o,e[20]=s,e[21]=b):b=e[21];let x;return e[22]!==y||e[23]!==b?(x=t.jsxs(gt,{className:"cursor-pointer transition-colors hover:bg-accent/50 h-full flex flex-col group relative",children:[y,b]}),e[22]=y,e[23]=b,e[24]=x):x=e[24],x}function zt(i){return i.stopPropagation()}function Ft(i){return i.stopPropagation()}function Lt(i){return i.stopPropagation()}function Kt(i){return i.stopPropagation()}const Mt=["icon","avatar","logo"],Re=["created_at","created_by","id"];function Ut(i){return Object.keys(i).find(e=>Mt.includes(e.toLowerCase()))}function ot(i,e){return Object.keys(i.properties||{}).filter(s=>["id","created_at","updated_at","created_by","updated_by"].includes(s)?!1:e?e.includes(s):!0).map(s=>({id:s,label:s.charAt(0).toUpperCase()+s.slice(1).replace(/_/g," ")}))}function Wt(i){const e=oe.c(30),{data:s,schema:l,viewMode:n,search:c,sortKey:r,sortDirection:u,onSort:d,actions:o,onItemClick:p,headerActions:m,emptyState:f,readOnly:a,columns:v,hideToolbar:y,sortableFields:b}=i,x=u===void 0?"asc":u,g=d===void 0?Vt:d;let $;e[0]!==o?($=o===void 0?{}:o,e[0]=o,e[1]=$):$=e[1];const h=$,T=p===void 0?qt:p,E=m===void 0?null:m,N=f===void 0?null:f,k=a===void 0?!1:a,j=v===void 0?void 0:v,z=y===void 0?!1:y,P=b===void 0?void 0:b;let D;e[2]!==j||e[3]!==l||e[4]!==P?(D=j?j.filter(Bt).filter(A=>!P||P.includes(A.id)).map(Rt):ot(l,P),e[2]=j,e[3]=l,e[4]=P,e[5]=D):D=e[5];const w=D;let S;e[6]!==E||e[7]!==z||e[8]!==g||e[9]!==x||e[10]!==r||e[11]!==w?(S=!z&&t.jsx("div",{className:"shrink-0 w-full border-b border-border h-12",children:t.jsxs("div",{className:"flex items-center gap-3 h-12 px-4",children:[t.jsx("div",{className:"flex items-center gap-2 flex-1",children:E}),t.jsx("div",{className:"flex items-center gap-2 shrink-0",children:t.jsx(Qe,{sortKey:r,sortDirection:x,onSort:g,sortOptions:w})})]})}),e[6]=E,e[7]=z,e[8]=g,e[9]=x,e[10]=r,e[11]=w,e[12]=S):S=e[12];let _;e[13]!==h||e[14]!==j||e[15]!==s||e[16]!==N||e[17]!==T||e[18]!==g||e[19]!==k||e[20]!==l||e[21]!==c||e[22]!==x||e[23]!==r||e[24]!==P||e[25]!==n?(_=n==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:s.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}):t.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] gap-4",children:s.map(A=>t.jsx("div",{onClick:()=>T?.(A),className:"cursor-pointer h-full",children:t.jsx(kt,{item:A,schema:l,readOnly:k,actions:h})},A.id))})}):t.jsx(xt,{columns:Ht(j,l,P,h),data:s,sortKey:r,sortDirection:x,onSort:g,onRowClick:T,emptyState:N||t.jsx(Ue,{icon:t.jsx(We,{size:36,className:"text-muted-foreground"}),title:"No items found",description:c?"Try adjusting your search":"No items to display"})}),e[13]=h,e[14]=j,e[15]=s,e[16]=N,e[17]=T,e[18]=g,e[19]=k,e[20]=l,e[21]=c,e[22]=x,e[23]=r,e[24]=P,e[25]=n,e[26]=_):_=e[26];let I;return e[27]!==S||e[28]!==_?(I=t.jsxs("div",{className:"h-full flex flex-col overflow-hidden",children:[S,_]}),e[27]=S,e[28]=_,e[29]=I):I=e[29],I}function Rt(i){return{id:i.id,label:typeof i.header=="string"?i.header:i.id}}function Bt(i){return i.sortable!==!1}function qt(){}function Vt(){}function Qt(i){return{id:"actions",header:"",render:e=>t.jsxs(He,{children:[t.jsx(Je,{asChild:!0,children:t.jsx(Ce,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:s=>s.stopPropagation(),children:t.jsx(et,{size:20})})}),t.jsxs(Ye,{align:"end",onClick:s=>s.stopPropagation(),children:[i.open&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.open?.(e)},children:[t.jsx(Xe,{size:16}),"Open"]}),i.edit&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.edit?.(e)},children:[t.jsx(tt,{size:16}),"Edit"]}),i.duplicate&&t.jsxs(O,{onClick:s=>{s.stopPropagation(),i.duplicate?.(e)},children:[t.jsx(Ze,{size:16}),"Duplicate"]}),i.delete&&t.jsxs(O,{variant:"destructive",onClick:s=>{s.stopPropagation(),i.delete?.(e)},children:[t.jsx(st,{size:16}),"Delete"]})]})]}),cellClassName:"w-[60px]",sortable:!1}}function nt(i){const e=i.type;return Array.isArray(e)?e.every(s=>nt({type:s})):e==="string"||e==="number"||e==="integer"||e==="boolean"||e==="null"}function Gt(i,e){const s=i.properties||{},l=Object.keys(s).filter(o=>{const p=s[o];return p&&nt(p)}),n=Ut(s),c=[],r=new Set;n&&l.includes(n)&&(c.push(n),r.add(n));const u=["title","description","updated_at","updated_by"];for(const o of u)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));const d=l.filter(o=>!r.has(o)&&!Re.includes(o)).sort((o,p)=>o.localeCompare(p));for(const o of d)c.push(o),r.add(o);for(const o of Re)l.includes(o)&&!r.has(o)&&(c.push(o),r.add(o));return c.map(o=>{const p=s[o],m=e?e.includes(o):!["id"].includes(o);return o===n?{id:o,header:"",render:f=>{const a=f[o];return t.jsx(Ge,{icon:a,name:f.title,size:"sm",className:"shrink-0 shadow-sm"})},sortable:!1,cellClassName:"w-16 shrink-0",wrap:!0}:o==="description"?{id:o,header:"Description",render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-[50ch]",children:String(a)})},sortable:m,cellClassName:"max-w-[50ch]"}:o==="created_by"||o==="updated_by"?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx(jt,{id:String(a),size:"xs"}):"—"},sortable:m,cellClassName:"max-w-[250px]"}:p?.format==="date-time"||o.endsWith("_at")?{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a?t.jsx("span",{className:"block truncate max-w-full",children:new Date(a).toLocaleDateString()}):"—"},sortable:m,cellClassName:"max-w-[200px]"}:{id:o,header:o.charAt(0).toUpperCase()+o.slice(1).replace(/_/g," "),render:f=>{const a=f[o];return a==null?"—":t.jsx("span",{className:"block truncate max-w-full",children:String(a)})},sortable:m,cellClassName:"max-w-[200px]"}})}function Ht(i,e,s,l){const n=i||Gt(e,s);return n.some(u=>u.id==="actions")?n:Object.keys(l).length>0?[...n,Qt(l)]:n}function Jt(i){const e=oe.c(119),{connectionId:s,org:l,activeCollection:n,onItemClick:c}=i,r=n.name,u=n.schema??ft,d=n.hasCreateTool,o=n.hasUpdateTool,p=n.hasDeleteTool,m=Be(),{data:f}=ct.useSession(),a=f?.user?.id||"unknown",v=Tt(s);let y;e[0]!==v||e[1]!==s?(y=v?bt(v):s,e[0]=v,e[1]=s,e[2]=y):y=e[2];const b=y,{org:x}=ze();let g;e[3]!==s||e[4]!==x.id||e[5]!==x.slug?(g={connectionId:s,orgId:x.id,orgSlug:x.slug},e[3]=s,e[4]=x.id,e[5]=x.slug,e[6]=g):g=e[6];const $=qe(g),h=It(s,r,$),T=`${s}-${r}`;let E;e[7]!==l||e[8]!==T?(E={namespace:l,resource:T,defaultSortKey:"updated_at"},e[7]=l,e[8]=T,e[9]=E):E=e[9];const{search:N,searchTerm:k,setSearch:j,viewMode:z,setViewMode:P,sortKey:D,sortDirection:w,handleSort:S}=Ct(E);let _;e[10]!==k||e[11]!==w||e[12]!==D?(_={searchTerm:k,sortKey:D,sortDirection:w},e[10]=k,e[11]=w,e[12]=D,e[13]=_):_=e[13];const I=At(s,r,$,_),A=!d&&!o&&!p;let ne;e[14]!==b||e[15]!==r||e[16]!==m||e[17]!==c||e[18]!==l?(ne=C=>{if(c){c(C);return}m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:C.id}})},e[14]=b,e[15]=r,e[16]=m,e[17]=c,e[18]=l,e[19]=ne):ne=e[19];const F=ne;let re;e[20]!==h.create||e[21]!==a?(re=async C=>{const xe=new Date().toISOString();await h.create.mutateAsync({...C,id:Me("conn"),title:`${C.title} (Copy)`,created_at:xe,updated_at:xe,created_by:a,updated_by:a})},e[20]=h.create,e[21]=a,e[22]=re):re=e[22];const be=re,[L,ve]=dt.useState(null);let le;e[23]===Symbol.for("react.memo_cache_sentinel")?(le=C=>{ve(C)},e[23]=le):le=e[23];const rt=le;let K;e[24]!==F||e[25]!==o?(K=o&&{edit:F},e[24]=F,e[25]=o,e[26]=K):K=e[26];let M;e[27]!==be||e[28]!==d?(M=d&&{duplicate:be},e[27]=be,e[28]=d,e[29]=M):M=e[29];let U;e[30]!==p?(U=p&&{delete:rt},e[30]=p,e[31]=U):U=e[31];let ae;e[32]!==M||e[33]!==U||e[34]!==K?(ae={...K,...M,...U},e[32]=M,e[33]=U,e[34]=K,e[35]=ae):ae=e[35];const ye=ae;let ce;e[36]!==h.delete||e[37]!==L?(ce=async()=>{L&&(await h.delete.mutateAsync(L.id),ve(null))},e[36]=h.delete,e[37]=L,e[38]=ce):ce=e[38];const Ne=ce;let de;e[39]!==h.create||e[40]!==b||e[41]!==r||e[42]!==d||e[43]!==m||e[44]!==l||e[45]!==a?(de=async()=>{if(!d){Fe.error("Create operation is not available for this collection");return}const C=new Date().toISOString(),xe={id:Me("conn"),title:"New Item",description:"A brief description of the item",created_at:C,updated_at:C,created_by:a,updated_by:a};try{const ke=await h.create.mutateAsync(xe);m({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:l,appSlug:b,collectionName:r,itemId:ke.id}})}catch(ke){console.error("Failed to create item:",ke)}},e[39]=h.create,e[40]=b,e[41]=r,e[42]=d,e[43]=m,e[44]=l,e[45]=a,e[46]=de):de=e[46];const we=de;let me;e[47]!==u?(me=ot(u),e[47]=u,e[48]=me):me=e[48];const Se=me,lt=(I?.length??0)>0,at=d&&!lt&&!N;let pe;e[49]!==h.create||e[50]!==we||e[51]!==d?(pe=d?t.jsxs(Ce,{onClick:we,size:"sm",disabled:h.create.isPending,className:"h-7",children:[t.jsx(Et,{className:"mr-2 h-4 w-4"}),h.create.isPending?"Creating...":"Create"]}):null,e[49]=h.create,e[50]=we,e[51]=d,e[52]=pe):pe=e[52];const ue=pe,Pe=D;let W;e[53]!==S||e[54]!==w||e[55]!==Se||e[56]!==Pe?(W=t.jsx(Ot,{children:t.jsx(Qe,{sortKey:Pe,sortDirection:w,onSort:S,sortOptions:Se})}),e[53]=S,e[54]=w,e[55]=Se,e[56]=Pe,e[57]=W):W=e[57];const _e=`Search ${r}...`;let R;e[58]!==j?(R=C=>{C.key==="Escape"&&(j(""),C.target.blur())},e[58]=j,e[59]=R):R=e[59];let B;e[60]!==N||e[61]!==j||e[62]!==_e||e[63]!==R?(B=t.jsx("div",{className:"flex-1",children:t.jsx(ht,{value:N,onChange:j,placeholder:_e,onKeyDown:R})}),e[60]=N,e[61]=j,e[62]=_e,e[63]=R,e[64]=B):B=e[64];let q;e[65]!==ue||e[66]!==d?(q=d&&t.jsx("div",{className:"pr-3",children:ue}),e[65]=ue,e[66]=d,e[67]=q):q=e[67];let V;e[68]!==B||e[69]!==q?(V=t.jsxs("div",{className:"flex items-center gap-2",children:[B,q]}),e[68]=B,e[69]=q,e[70]=V):V=e[70];let Q;e[71]!==I?(Q=I??[],e[71]=I,e[72]=Q):Q=e[72];const De=D;let G;e[73]!==F?(G=C=>F(C),e[73]=F,e[74]=G):G=e[74];const Ie="No items found",Ae=N?"Try adjusting your search terms":"This collection doesn't have any items yet.",Te=at?ue:void 0;let H;e[75]!==Ie||e[76]!==Ae||e[77]!==Te?(H=t.jsx(it,{image:null,title:Ie,description:Ae,actions:Te}),e[75]=Ie,e[76]=Ae,e[77]=Te,e[78]=H):H=e[78];let J;e[79]!==S||e[80]!==A||e[81]!==ye||e[82]!==u||e[83]!==N||e[84]!==j||e[85]!==P||e[86]!==w||e[87]!==Q||e[88]!==De||e[89]!==G||e[90]!==H||e[91]!==z?(J=t.jsx("div",{className:"flex-1 overflow-auto",children:t.jsx(Wt,{hideToolbar:!0,data:Q,schema:u,viewMode:z,onViewModeChange:P,search:N,onSearchChange:j,sortKey:De,sortDirection:w,onSort:S,actions:ye,onItemClick:G,readOnly:A,emptyState:H})}),e[79]=S,e[80]=A,e[81]=ye,e[82]=u,e[83]=N,e[84]=j,e[85]=P,e[86]=w,e[87]=Q,e[88]=De,e[89]=G,e[90]=H,e[91]=z,e[92]=J):J=e[92];let Y;e[93]!==V||e[94]!==J?(Y=t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[V,J]}),e[93]=V,e[94]=J,e[95]=Y):Y=e[95];const Ee=!!L;let fe;e[96]===Symbol.for("react.memo_cache_sentinel")?(fe=C=>{C||ve(null)},e[96]=fe):fe=e[96];let he;e[97]===Symbol.for("react.memo_cache_sentinel")?(he=t.jsx(Nt,{children:"Delete item?"}),e[97]=he):he=e[97];const Oe=L?.title;let X;e[98]!==Oe?(X=t.jsxs(wt,{children:[he,t.jsxs(St,{children:['Are you sure you want to delete "',Oe,'"? This action cannot be undone.']})]}),e[98]=Oe,e[99]=X):X=e[99];let Z;e[100]!==h.delete.isPending?(Z=t.jsx(vt,{disabled:h.delete.isPending,children:"Cancel"}),e[100]=h.delete.isPending,e[101]=Z):Z=e[101];const $e=h.delete.isPending?"Deleting...":"Delete";let ee;e[102]!==h.delete.isPending||e[103]!==Ne||e[104]!==$e?(ee=t.jsx(yt,{onClick:Ne,disabled:h.delete.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:$e}),e[102]=h.delete.isPending,e[103]=Ne,e[104]=$e,e[105]=ee):ee=e[105];let te;e[106]!==Z||e[107]!==ee?(te=t.jsxs(Pt,{children:[Z,ee]}),e[106]=Z,e[107]=ee,e[108]=te):te=e[108];let se;e[109]!==X||e[110]!==te?(se=t.jsxs(_t,{children:[X,te]}),e[109]=X,e[110]=te,e[111]=se):se=e[111];let ie;e[112]!==Ee||e[113]!==se?(ie=t.jsx(Dt,{open:Ee,onOpenChange:fe,children:se}),e[112]=Ee,e[113]=se,e[114]=ie):ie=e[114];let ge;return e[115]!==W||e[116]!==Y||e[117]!==ie?(ge=t.jsxs(t.Fragment,{children:[W,Y,ie]}),e[115]=W,e[116]=Y,e[117]=ie,e[118]=ge):ge=e[118],ge}function Yt(){const i=oe.c(13),{org:e,project:s}=ze(),l=mt();let n;i[0]!==e.id||i[1]!==e.slug?(n={connectionId:Ve,orgId:e.id,orgSlug:e.slug},i[0]=e.id,i[1]=e.slug,i[2]=n):n=i[2];const c=qe(n);let r;i[3]!==c||i[4]!==s?(r=async p=>{const m=s.enabledPlugins??[];if(m.includes(p))return;const f=[...m,p],a=await c.callTool({name:"COLLECTION_VIRTUAL_MCP_UPDATE",arguments:{id:s.id,data:{metadata:{enabled_plugins:f}}}});return a.structuredContent??a},i[3]=c,i[4]=s,i[5]=r):r=i[5];let u;i[6]!==e.id||i[7]!==s||i[8]!==l?(u=()=>{l.invalidateQueries({queryKey:Le.project(e.id,s.slug)}),l.invalidateQueries({queryKey:Le.projects(e.id)})},i[6]=e.id,i[7]=s,i[8]=l,i[9]=u):u=i[9];let d;return i[10]!==r||i[11]!==u?(d={mutationFn:r,onSuccess:u,onError:Xt},i[10]=r,i[11]=u,i[12]=d):d=i[12],pt(d)}function Xt(i){Fe.error("Failed to enable plugin: "+(i instanceof Error?i.message:"Unknown error"))}function Zt(i){const e=oe.c(12),{pluginId:s,title:l,description:n,icon:c}=i,r=Yt();let u;e[0]!==r||e[1]!==s?(u=async()=>{try{await r.mutateAsync(s),Fe.success("Plugin enabled!")}catch{}},e[0]=r,e[1]=s,e[2]=u):u=e[2];const d=u,o=c??null,p=r.isPending?"Enabling…":"Enable plugin";let m;e[3]!==r.isPending||e[4]!==d||e[5]!==p?(m=t.jsx(Ce,{onClick:d,disabled:r.isPending,children:p}),e[3]=r.isPending,e[4]=d,e[5]=p,e[6]=m):m=e[6];let f;return e[7]!==n||e[8]!==o||e[9]!==m||e[10]!==l?(f=t.jsx(it,{image:o,title:l,description:n,actions:m}),e[7]=n,e[8]=o,e[9]=m,e[10]=l,e[11]=f):f=e[11],f}const es={name:"WORKFLOW",displayName:"Workflow",hasCreateTool:!0,hasUpdateTool:!0,hasDeleteTool:!0};function Ci(){const{project:i,org:e}=ze();if(!(i.enabledPlugins??[]).includes(Ke))return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx("div",{className:"flex flex-col items-center justify-center h-full",children:t.jsx(Zt,{pluginId:Ke,title:"Enable Workflows",description:"Automate multi-step processes by enabling the Workflows plugin. Once enabled you can create, run, and monitor workflows.",icon:t.jsx("div",{className:"bg-muted p-4 rounded-full",children:t.jsx(ut,{className:"size-8 text-muted-foreground"})})})})})});const n=Be();return t.jsx(je,{children:t.jsx(je.Content,{children:t.jsx(Jt,{connectionId:Ve,org:e.slug,activeCollection:es,onItemClick:c=>n({to:"/$org/settings/workflows/$itemId",params:{org:e.slug,itemId:c.id}})})})})}export{Ci as default};
@@ -0,0 +1 @@
1
+ import{e as s,g as l,j as o,l as a,E as n,r as c}from"./index-8Av7_XG5.js";import{a as f}from"./index-4cje1k2I.js";import"./index-CnvExC11.js";import"./constants-DeFtLUND.js";import"./collections-DsvWgjkq.js";import"./index-DJjaDA78.js";import"./use-virtual-mcp-C_vD2kKw.js";import"./use-collections-CMMaRmVG.js";import"./monaco-editor-BAqhsJzm.js";import"./index-CX7SvFBB.js";import"./spinner-CWHpDgnL.js";import"./resizable-DtVYiBv-.js";import"./ZoomOut-CIHaUyEl.js";import"./badge-BiVWMQaC.js";import"./select-Y4AHPww8.js";import"./tooltip-B9p8ywB_.js";import"./Check-D-2DMeXR.js";import"./ChevronDown-DUb-OAcF.js";import"./ChevronUp-mT0kmu5O.js";import"./view-mode-toggle-BabF7Sx4.js";import"./agent-icon-VIqap9Jf.js";import"./AlertCircle-Ctbek2zl.js";import"./Tool01-Co9IzxOX.js";import"./SwitchHorizontal01-CdSYnpvh.js";import"./RefreshCcw01-DSZXx3HQ.js";import"./XCircle-BjeFLJxj.js";import"./ArrowUpRight-CGlPrRsR.js";import"./ZapSquare-By7Cv3Wp.js";import"./Users03-mgRYViRT.js";import"./CheckCircle-CPLY3iX-.js";import"./ChevronLeft-IUSMXc7n.js";import"./ChevronRight-C6_Bb1P7.js";import"./DotsVertical-CYMPhMIv.js";import"./Container-V3OuMECL.js";import"./Eye-DLKlw-42.js";import"./Globe01-BSqLqa8H.js";import"./FilterLines-B2lLGnWS.js";import"./Star01-DWr_psxV.js";import"./Palette-D1rjO3C7.js";import"./HardDrive-BFG0b6vP.js";import"./Stars02-7S-x4jsE.js";import"./Key01-DeIJhm73.js";import"./LayoutLeft-CAachN7j.js";import"./LinkExternal01-C7Ulot5I.js";import"./Monitor01-RdLthi4L.js";import"./Sun-C0yimusT.js";import"./Play-CL1Mgiwf.js";import"./Plus-DINfOuqC.js";import"./SearchMd-Dt4Aj6N4.js";import"./Settings02-COHAF-aj.js";import"./Shield01-Ef5O0H91.js";import"./Stars01-CTAt_kJn.js";import"./Trash01-m4F91Gbm.js";import"./Upload01-BWuva6Fs.js";import"./User01-BQ6QP8OL.js";import"./Users01-ByzlIQ3F.js";import"./XClose-s3WJPw3-.js";import"./X-D5DAti-0.js";import"./Zap-Z3n8EP6c.js";import"./layout-BuMBlDfo.js";import"./index-5FdhmN0u.js";import"./sidebar-BTAYcbpn.js";import"./sheet-HD1tdtUP.js";import"./use-connection-C2Ef-EqP.js";import"./use-mcp-tools-C8LW1vg1.js";import"./dialog-BDoa-Aig.js";import"./scroll-area-GY_MqX9m.js";import"./index-DhlM3QdF.js";import"./hover-card-CZKyvEKV.js";import"./dropdown-menu-BuEg85yr.js";import"./integration-icon-ByZrCdpe.js";import"./accordion-B1qqQUiM.js";import"./index-D2E_r2Ga.js";import"./empty-state-BzUpYoP8.js";import"./create-sse-subscription-BS5983N4.js";import"./input-CFgdCIf-.js";function Bt(){const t=s.c(4);let r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r={from:"/shell/$org/settings/workflows/$itemId"},t[0]=r):r=t[0];const{itemId:e}=l(r);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i=o.jsx("div",{className:"flex h-full items-center justify-center",children:o.jsx(a,{size:32,className:"animate-spin text-muted-foreground"})}),t[1]=i):i=t[1];const p=decodeURIComponent(e);let m;return t[2]!==p?(m=o.jsx(n,{children:o.jsx(c.Suspense,{fallback:i,children:o.jsx(f,{itemId:p})})}),t[2]=p,t[3]=m):m=t[3],m}export{Bt as default};
@@ -43,7 +43,7 @@
43
43
  <meta name="apple-mobile-web-app-capable" content="yes" />
44
44
  <meta name="apple-mobile-web-app-status-bar-style" content="default" />
45
45
  <meta name="apple-mobile-web-app-title" content="deco Studio" />
46
- <script type="module" crossorigin src="/assets/index-B9kRhzg7.js"></script>
46
+ <script type="module" crossorigin src="/assets/index-8Av7_XG5.js"></script>
47
47
  <link rel="stylesheet" crossorigin href="/assets/index-D5dv4kfs.css">
48
48
  </head>
49
49
  <body>
@@ -104791,7 +104791,7 @@ ${c.stack}`;f.reject(d)}else f.resolve(_)}});return $.requestSubject=i,this.prot
104791
104791
  `);if(g===-1)return;let h=$.subarray(0,g).toString("utf8"),E=$.subarray(g+4),v=h.split(`\r
104792
104792
  `,1)[0]??"";if(!/^HTTP\/1\.[01] 101(?:\s|$)/.test(v)){C8(i,1011,t.upstreamErrorReason);try{c.end()}catch{}return}d=!0,i.data.upstream=c;let r=x9l((x,O)=>{try{if(x===1)i.send(O.toString("utf8"));else if(x===2)i.send(O);else if(x===8){let{code:y,reason:X}=w9l(O);C8(i,y,X);try{c.end()}catch{}}}catch{}});if(c.removeAllListeners("data"),E.length>0)r(E);c.on("data",(x)=>r(x));for(let x of i.data.pending)try{c.write(_ki(x,!0))}catch{}i.data.pending.length=0})}function r9l(i,t){let u=[`GET ${i} HTTP/1.1`];for(let[l,n]of Object.entries(t))u.push(`${l}: ${n}`);return u.push("",""),u.join(`\r
104793
104793
  `)}function C8(i,t,u){try{if(t!==void 0)i.close(t,u??"");else i.close()}catch{}}function _ki(i,t,u){let l,n;if(typeof i==="string")l=Buffer.from(i,"utf8"),n=1;else if(i instanceof ArrayBuffer)l=Buffer.from(i),n=2;else if(Buffer.isBuffer(i))l=i,n=2;else l=Buffer.from(i),n=2;let f=u??n,c=l.length,$=[];$.push(128|f&15);let d=t?128:0;if(c<126)$.push(d|c);else if(c<65536)$.push(d|126,c>>8&255,c&255);else $.push(d|127,0,0,0,0),$.push(c>>>24&255,c>>>16&255,c>>>8&255,c&255);if(t){let _=xSt(4),g=Buffer.alloc(c);for(let h=0;h<c;h++)g[h]=l[h]^_[h&3];return Buffer.concat([Buffer.from($),_,g])}return Buffer.concat([Buffer.from($),l])}function w9l(i){if(i.length<2)return{code:1000,reason:""};return{code:i.readUInt16BE(0),reason:i.subarray(2).toString("utf8")}}function x9l(i){let t=Buffer.alloc(0);return(u)=>{t=t.length===0?u:Buffer.concat([t,u]);while(!0){if(t.length<2)return;let l=t[0],n=t[1],f=l&15,c=(n&128)!==0,$=n&127,d=2;if($===126){if(t.length<d+2)return;$=t[d]<<8|t[d+1],d+=2}else if($===127){if(t.length<d+8)return;$=t[d+4]*16777216+(t[d+5]<<16|t[d+6]<<8|t[d+7]),d+=8}let _=null;if(c){if(t.length<d+4)return;_=t.subarray(d,d+4),d+=4}if(t.length<d+$)return;let g=t.subarray(d,d+$);if(_){let h=Buffer.alloc($);for(let E=0;E<$;E++)h[E]=g[E]^_[E&3];g=h}t=t.subarray(d+$),i(f,g)}}}var E9l=256;var XSt=w(()=>{wSt()});function NSt(i){if(typeof i!=="string"||i.length===0)return null;let t=i.lastIndexOf(":");if(i.startsWith("["))return null;let l=(t>=0?i.slice(0,t):i).replace(/\.$/,"").toLowerCase(),n=".localhost";if(!l.endsWith(n))return null;let f=l.slice(0,-n.length);if(f.length===0)return null;if(f.includes("."))return null;return f}async function JSt(i){let t=ySt({maxPendingFrames:i.maxPendingWsFrames??D9l,backlogOverflowReason:"ingress backlog overflow"}),u=Bun.serve({port:i.port,hostname:"127.0.0.1",idleTimeout:0,async fetch(l,n){let f=l.headers.get("host"),c=NSt(f);if(!c)return new Response("not found",{status:404});let $=i.lookupSandboxPort(c);if(!$){if(l.headers.get("upgrade")==="websocket")return new Response("unknown handle",{status:404});return new Response(O9l,{status:503,headers:{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-store","Retry-After":"1"}})}if(l.headers.get("upgrade")==="websocket"){let h=new URL(l.url);if(!n.upgrade(l,{data:OSt({port:$,pathQuery:`${h.pathname}${h.search}`,protocols:DSt(l.headers)})}))return new Response("ws upgrade failed",{status:400});return}let d=new URL(l.url),_=`http://127.0.0.1:${$}${d.pathname}${d.search}`,g=new Headers(l.headers);return g.set("host",`127.0.0.1:${$}`),fetch(_,{method:l.method,headers:g,body:l.body,redirect:"manual"})},websocket:{open:t.open,message:t.message,close:t.close}});return{port:u.port??0,async stop(){u.stop(!0)}}}var D9l=256,O9l='<!DOCTYPE html><html><head><meta charset="utf-8"><title>Connecting\u2026</title><style>body{font-family:system-ui,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;background:#fafafa;color:#555}div{text-align:center;max-width:420px;padding:24px}h3{margin:0 0 8px}p{margin:0;font-size:14px;color:#999;line-height:1.5}</style></head><body><div><h3>Connecting to sandbox\u2026</h3><p>Waiting for the local sandbox to come online. This page refreshes automatically.</p></div><script>setTimeout(function(){window.location.reload()},1500)</script></body></html>';var USt=w(()=>{XSt()});async function gki(i=T9l){let t=["decopilot-sandbox","body-offload"],[u,l]=await Promise.all([i.detectClaudeCode().catch(()=>!1),i.detectCodex().catch(()=>!1)]);if(u)t.push("claude-code");if(l)t.push("codex");return t}function X9l(i){return y9l.filter((t)=>!i.includes(t))}function N9l(i,t){let u=t.filter((l)=>!i.includes(l));return i.push(...u),u}function TSt(i,t={}){let u=t.detect??(()=>gki()),l=setInterval(()=>{if(X9l(i).length===0)return;u().then((n)=>{let f=N9l(i,n);if(f.length>0)t.onChange?.(f)}).catch(()=>{})},t.intervalMs??60000);return l.unref?.(),()=>clearInterval(l)}async function J9l(){try{let{query:i}=await import("@anthropic-ai/claude-agent-sdk"),t=i({prompt:"",options:{maxTurns:1}}),u=await t.accountInfo();return t.return(void 0),Boolean(u.email)}catch{return!1}}async function U9l(){try{let i=Bun.spawn(["codex","--version"],{stdout:"ignore",stderr:"ignore"}),t=setTimeout(()=>i.kill(),1e4),u=await i.exited;return clearTimeout(t),u===0}catch{return!1}}var y9l,T9l;var FSt=w(()=>{y9l=["claude-code","codex"];T9l={detectClaudeCode:J9l,detectCodex:U9l}});import{randomBytes as F9l}from"crypto";import{mkdir as I9l,readFile as Z9l,writeFile as B9l}from"fs/promises";import{dirname as Q9l,join as Y9l}from"path";function P9l(i){return Y9l(i,"machine-id")}async function ISt(i){let t=P9l(i);try{let n=(await Z9l(t,"utf8")).trim();if(n)return n}catch{}let u=F9l(16).toString("hex");return await I9l(Q9l(t),{recursive:!0}),await B9l(t,u),u}var ZSt=()=>{};import{randomBytes as A9l}from"crypto";import{mkdir as G9l}from"fs/promises";import{createServer as W9l}from"net";import{join as k9l}from"path";function BSt(i,t){return Error(`sandbox failed to start: ${i}`,{cause:t})}function j9l(i){if(!(i instanceof Error))return!1;return i.name==="TimeoutError"||/timed out|timeout|operation was aborted|aborted/i.test(i.message)}function S9l(i){if(i instanceof Error){let t=i.cause;if(t instanceof Error&&t.message)return t.message;return i.message}return String(i)}function QSt(i){let t=i.maxSandboxes??20,u=new Map,l=i.pickPort??z9l,n=i.fetchImpl??fetch,f=i.resolvePreviewUrl??((E,v)=>`http://127.0.0.1:${v}`),c=(E)=>{try{i.onEvent?.(E)}catch{}},$=async(E)=>{let v=new AbortController,r=setTimeout(()=>v.abort(),1500);try{let x=await n(`${E}/health`,{signal:v.signal});if(!x.ok)console.warn(`[user-desktop] probe ${E}/health \u2192 ${x.status} (treating as dead)`);return x.ok}catch(x){return console.warn(`[user-desktop] probe ${E}/health failed: ${x instanceof Error?x.message:String(x)} (treating as dead)`),!1}finally{clearTimeout(r)}},d=(E)=>{console.warn(`[user-desktop] evicting dead daemon handle=${E.handle} port=${E.port}`);try{E.process.kill("SIGTERM")}catch{}if(u.get(E.handle)===E)u.delete(E.handle),c({handle:E.handle,phase:"evicted"})},_=new Map;function g(){if(u.size<t)return;let E=[...u.values()].filter((r)=>r.activeDispatchCount===0).sort((r,x)=>r.lastUsedAt-x.lastUsedAt);if(E.length===0){console.warn(`[user-desktop] at cap ${u.size}/${t} but every sandbox is pinned (active dispatch) \u2014 exceeding cap temporarily`);return}let v=E[0];console.log(`[user-desktop] evicting LRU victim handle=${v.handle} port=${v.port} (cap ${t} reached, size=${u.size})`);try{v.process.kill("SIGTERM")}catch{}u.delete(v.handle),c({handle:v.handle,phase:"evicted"})}let h=async(E)=>{c({handle:E.handle,phase:"spawning"}),g();let v=k9l(i.dataDir,"sandboxes",E.handle);await G9l(v,{recursive:!0}),console.log(`[user-desktop] ensure handle=${E.handle} repo=${E.repo?.cloneUrl??"(none)"} branch=${E.repo?.branch??"(none)"} runtime=${E.workload?.runtime??"(autodetect)"} pm=${E.workload?.packageManager??"(autodetect)"}`);let r=A9l(24).toString("hex"),[x,O]=await Promise.all([l(),l()]);console.log(`[user-desktop] spawn handle=${E.handle} port=${x} devPort=${O} workdir=${v}`);let y=await Promise.resolve(i.spawnDaemon({workdir:v,handle:E.handle,port:x,daemonToken:r,offloadAllowedHosts:E.offloadAllowedHosts??[],offloadAllowSameHostDev:E.offloadAllowSameHostDev??!1,orgFsConfigJson:E.orgFsConfigJson}));try{try{await i.waitForHealth(x)}catch(J){throw BSt("the sandbox didn't come online in time",J)}console.log(`[user-desktop] healthy handle=${E.handle} port=${x} \u2014 posting config`);try{await i.postConfig(x,O,{repo:E.repo,workload:E.workload,operator:E.operator},r)}catch(J){throw BSt(j9l(J)?"configuration timed out":"the sandbox rejected its configuration",J)}}catch(J){console.error(`[user-desktop] sandbox bring-up failed handle=${E.handle} port=${x} (killing daemon):`,J);try{y.kill("SIGKILL")}catch{}throw c({handle:E.handle,phase:"failed",error:S9l(J)}),J}let X=`http://127.0.0.1:${x}`,N=f(E.handle,x);console.log(`[user-desktop] ready handle=${E.handle} port=${x} sandboxApiUrl=${X} previewUrl=${N}`);let U={handle:E.handle,port:x,process:y,sandboxApiUrl:X,previewUrl:N,lastUsedAt:Date.now(),activeDispatchCount:0,daemonToken:r};if(u.set(E.handle,U),c({handle:E.handle,phase:"ready",port:x,previewUrl:N}),y.exited)y.exited.then(()=>{if(u.get(E.handle)===U)console.warn(`[user-desktop] daemon process exited unexpectedly handle=${E.handle} port=${x} \u2014 removing from cache`),u.delete(E.handle),c({handle:E.handle,phase:"evicted"});else console.log(`[user-desktop] daemon process exited handle=${E.handle} port=${x} (already replaced/removed)`)});return{sandboxApiUrl:X,previewUrl:N,port:x}};return{async ensureSandbox(E){let v=u.get(E.handle);if(v){if(await $(v.sandboxApiUrl))return console.log(`[user-desktop] cache hit handle=${E.handle} port=${v.port} (alive)`),v.lastUsedAt=Date.now(),{sandboxApiUrl:v.sandboxApiUrl,previewUrl:v.previewUrl,port:v.port};console.warn(`[user-desktop] cache stale handle=${E.handle} port=${v.port} \u2014 respawning`),d(v)}let r=_.get(E.handle);if(r)return console.log(`[user-desktop] joining in-flight ensure handle=${E.handle}`),r;let x=h(E).finally(()=>{_.delete(E.handle)});return _.set(E.handle,x),x},proxyPort(E){let v=u.get(E);if(v)v.lastUsedAt=Date.now();return v?.port??null},getDaemonToken(E){return u.get(E)?.daemonToken??null},hasHandle(E){return u.has(E)||_.has(E)},recordHit(E){let v=u.get(E);if(v)v.lastUsedAt=Date.now()},acquireDispatch(E){let v=u.get(E);if(!v)return()=>{};v.activeDispatchCount+=1;let r=!1;return()=>{if(r)return;r=!0;let x=u.get(E);if(x)x.activeDispatchCount=Math.max(0,x.activeDispatchCount-1)}},listSandboxes(){return[...u.values()]},async deleteSandbox(E){let v=u.get(E);if(!v){console.log(`[user-desktop] delete handle=${E} (not found, no-op)`);return}console.log(`[user-desktop] delete handle=${E} port=${v.port}`);try{v.process.kill("SIGTERM")}catch{}u.delete(E),c({handle:E,phase:"deleted"})},async shutdown(){console.log(`[user-desktop] shutdown \u2014 killing ${u.size} sandbox(es)`);for(let E of u.values())try{E.process.kill("SIGTERM")}catch{}u.clear()}}}function z9l(){return new Promise((i,t)=>{let u=W9l();u.unref(),u.on("error",t),u.listen(0,"127.0.0.1",()=>{let l=u.address();if(l&&typeof l==="object"){let n=l.port;u.close(()=>i(n))}else u.close(()=>t(Error("could not allocate port")))})})}var YSt=()=>{};import{randomUUID as b9l}from"crypto";import{hostname as K9l}from"os";async function PSt(i){let t=K9l()||void 0;i.monitor?.onMachine?.(t??"this machine");let u=MPt(i.dataDir,{outFd:i.logFd,hotReload:i.hotReload}),l=0,n=QSt({dataDir:i.dataDir,resolvePreviewUrl:(N,U)=>l>0?`http://${N}.localhost:${l}`:`http://127.0.0.1:${U}`,spawnDaemon:async(N)=>{let U={DAEMON_BOOT_ID:b9l(),APP_ROOT:N.workdir,PROXY_PORT:String(N.port),DAEMON_TOKEN:N.daemonToken,OFFLOAD_ALLOWED_HOSTS:N.offloadAllowedHosts.join(","),...N.offloadAllowSameHostDev?{OFFLOAD_ALLOW_SAME_HOST_DEV:"1"}:{}};if(N.orgFsConfigJson){let F=await mPt(i.dataDir);if(F)U.ORGFS_CONFIG=N.orgFsConfigJson,U.ORGFS_RCLONE_PATH=F}let J=await u({workdir:N.workdir,env:U,daemonPort:N.port});return{port:N.port,kill:(F)=>J.kill(F),exited:J.exited.then(()=>{return})}},postConfig:async(N,U,J,F)=>{let Q={port:U};if(J.workload)Q.runtime=J.workload.runtime,Q.packageManager={name:J.workload.packageManager,...J.workload.packageManagerPath?{path:J.workload.packageManagerPath}:{}};let B={application:Q},P=ih(J.operator??null);if(P)B.operator=P;if(J.repo)B.git={repository:{cloneUrl:J.repo.cloneUrl,branch:J.repo.branch},...J.repo.userName&&J.repo.userEmail?{identity:{userName:J.repo.userName,userEmail:J.repo.userEmail}}:{}};await Z8(`http://127.0.0.1:${N}`,F,B)},waitForHealth:async(N)=>{await oui(`http://127.0.0.1:${N}`)},maxSandboxes:20,onEvent:i.monitor?.onEvent}),f=await JSt({port:i.port,lookupSandboxPort:(N)=>n.proxyPort(N)});l=f.port,console.log(`Local ingress listening on http://127.0.0.1:${f.port} (use http://<handle>.localhost:${f.port}/)`),i.monitor?.onIngress?.(f.port);let c=sPt({provider:n}),$=async()=>{let N=await Sw({dataDir:i.dataDir,target:i.clusterBaseUrl});if(!N)throw Object.assign(Error(`Session for ${i.clusterBaseUrl} is no longer valid \u2014 run \`deco auth login --target ${i.clusterBaseUrl}\` and restart \`deco link\`.`),{fatal:!0});return N.accessToken};console.log(`[link-daemon] transport=pull cluster=${i.clusterBaseUrl}`);let d=await ISt(i.dataDir),_=process.env.npm_package_version??"0.0.0",g=await gki(),h=TSt(g,{onChange:(N)=>{console.log(`[link-daemon] capabilities detected: +${N.join(",")} (now: ${g.join(",")})`)}}),E=cki({path:`${i.dataDir}/link/outbox.sqlite`}),v=()=>{},r=await gSt({clusterBaseUrl:i.clusterBaseUrl,getAccessToken:$,provider:n,outbox:E,controlHandler:c,capabilities:g,machineId:d,cliVersion:_,previewPort:f.port,onConnected:()=>{i.monitor?.onCluster?.("linked"),console.log(`Linked to ${i.clusterBaseUrl} (pull transport)`)},onShutdown:()=>v()}),x,O=new Promise((N)=>{x=N}),y=!1,X=async()=>{if(y)return;y=!0,console.log(`
104794
- Shutting down\u2026`),h();try{await r.close()}catch{}try{await f.stop()}catch{}try{await n.shutdown()}catch{}try{E.close()}catch{}x(0)};return process.on("SIGINT",()=>void X()),process.on("SIGTERM",()=>void X()),v=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms link` to reconnect."),X()},r.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!y)console.error("Cluster connection closed permanently; exiting."),X()}),{stopped:O,stop:X}}var ASt=w(()=>{fGi();bH();qPt();oPt();pPt();hSt();$ki();USt();FSt();ZSt();zH();YSt()});function hki(i){return i.map((t)=>typeof t==="string"?t:String(t)).join(" ")}var _0i;var Eki=w(()=>{_0i={name:"decocms",version:"3.10.3",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.141","@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.80","@ai-sdk/google":"^3.0.80","@ai-sdk/openai":"^3.0.65","@anthropic-ai/sdk":"^0.96.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.17.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@openrouter/ai-sdk-provider":"^2.9.0","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.193","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.191","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var gR={};Gi(gR,{printBanner:()=>L9l,bannerLines:()=>GSt,BANNER_LINES:()=>g0i,BANNER_GRADIENT:()=>h0i});function R9l(i){let t=Number.parseInt(i.slice(1),16);return[t>>16&255,t>>8&255,t&255]}function GSt(i){let t=g0i.map((u,l)=>{let[n,f,c]=R9l(h0i[l]);return`\x1B[38;2;${n};${f};${c}m${u}\x1B[39m`});if(i!==void 0)t.push(`\x1B[2m v${i}\x1B[22m`);return t}function L9l(i){console.log("");for(let t of GSt(i))console.log(t);console.log("")}var g0i,h0i;var FW=w(()=>{g0i=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],h0i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as e9l,Text as WSt}from"ink";import{jsx as C9l,jsxs as kSt}from"react/jsx-runtime";function E0i({version:i}){return kSt(e9l,{flexDirection:"column",marginTop:1,children:[g0i.map((t,u)=>C9l(WSt,{color:h0i[u],children:t},u)),kSt(WSt,{dimColor:!0,children:[" v",i]})]})}var vki=w(()=>{FW()});var SSt={};Gi(SSt,{subscribeLinkState:()=>xki,setMachine:()=>a9l,setLogPath:()=>o9l,setIngress:()=>V9l,setDaemonError:()=>m9l,setClusterUrl:()=>q9l,setCluster:()=>M9l,pushSandboxEvent:()=>s9l,getLinkState:()=>wki,applySandboxEvent:()=>jSt});function jSt(i,t){let u=new Map(i);if(t.phase==="evicted"||t.phase==="deleted")return u.delete(t.handle),u;let l=u.get(t.handle);return u.set(t.handle,{handle:t.handle,port:t.port??l?.port??null,previewUrl:t.previewUrl??l?.previewUrl??null,status:t.phase,error:t.phase==="failed"?t.error??"failed":null}),u}function M8(){for(let i of rki)i()}function wki(){return t$}function xki(i){return rki.add(i),()=>rki.delete(i)}function M9l(i){t$={...t$,cluster:i},M8()}function q9l(i){t$={...t$,clusterUrl:i},M8()}function V9l(i,t){t$={...t$,ingressPort:i,ingressUrl:t},M8()}function a9l(i){t$={...t$,machine:i},M8()}function m9l(i){t$={...t$,daemonError:i},M8()}function o9l(i){t$={...t$,logPath:i},M8()}function s9l(i){t$={...t$,sandboxes:jSt(t$.sandboxes,i)},M8()}var t$,rki;var Dki=w(()=>{t$={cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:20,sandboxes:new Map,daemonError:null,logPath:null},rki=new Set});var zSt={};Gi(zSt,{LinkApp:()=>tNl});import{Box as u$,Text as l$}from"ink";import{useSyncExternalStore as p9l}from"react";import{jsx as $1,jsxs as LE}from"react/jsx-runtime";function iNl(i){if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function tNl(){let i=p9l(xki,wki),t=[...i.sandboxes.values()].sort((u,l)=>u.handle.localeCompare(l.handle));return LE(u$,{flexDirection:"column",children:[$1(E0i,{version:_0i.version}),$1(u$,{marginBottom:1,children:$1(l$,{dimColor:!0,children:"\u2500".repeat(80)})}),$1(u$,{children:i.cluster==="linked"?LE(l$,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?LE(l$,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):LE(l$,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),$1(u$,{children:i.ingressUrl?LE(l$,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):$1(l$,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),$1(u$,{marginBottom:1,children:$1(l$,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${t.length} of ${i.cap} previews`})}),t.length===0?$1(l$,{dimColor:!0,children:"No previews running yet."}):LE(u$,{flexDirection:"column",children:[LE(u$,{children:[$1(u$,{width:v0i.project,flexShrink:0,marginRight:1,children:$1(l$,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),$1(u$,{width:v0i.status,flexShrink:0,marginRight:1,children:$1(l$,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),$1(u$,{flexGrow:1,children:$1(l$,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),t.map((u)=>{let l=iNl(u);return LE(u$,{children:[$1(u$,{width:v0i.project,flexShrink:0,marginRight:1,children:$1(l$,{wrap:"truncate-end",children:u.handle})}),$1(u$,{width:v0i.status,flexShrink:0,marginRight:1,children:$1(l$,{color:l.color,wrap:"truncate-end",children:l.text})}),$1(u$,{flexGrow:1,children:$1(l$,{dimColor:!0,wrap:"truncate-end",children:u.previewUrl??"\u2014"})})]},u.handle)})]}),i.daemonError?$1(u$,{marginTop:1,children:LE(l$,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?$1(u$,{marginTop:1,children:LE(l$,{dimColor:!0,children:["Logs: ",i.logPath]})}):null]})}var v0i;var bSt=w(()=>{Eki();vki();Dki();v0i={project:18,status:14}});var HSt={};Gi(HSt,{runLinkCommand:()=>_Nl});import{closeSync as uNl,mkdirSync as lNl,openSync as nNl,writeSync as fNl}from"fs";import{homedir as cNl}from"os";import{join as KSt}from"path";function $Nl(i,t){let u={log:console.log,warn:console.warn,error:console.error},l=(n)=>{if(t===void 0)return;try{fNl(t,`${hki(n)}
104794
+ Shutting down\u2026`),h();try{await r.close()}catch{}try{await f.stop()}catch{}try{await n.shutdown()}catch{}try{E.close()}catch{}x(0)};return process.on("SIGINT",()=>void X()),process.on("SIGTERM",()=>void X()),v=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms link` to reconnect."),X()},r.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!y)console.error("Cluster connection closed permanently; exiting."),X()}),{stopped:O,stop:X}}var ASt=w(()=>{fGi();bH();qPt();oPt();pPt();hSt();$ki();USt();FSt();ZSt();zH();YSt()});function hki(i){return i.map((t)=>typeof t==="string"?t:String(t)).join(" ")}var _0i;var Eki=w(()=>{_0i={name:"decocms",version:"3.11.0",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts","smoke:link":"bun run scripts/smoke-link.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@anthropic-ai/claude-agent-sdk":"^0.2.141","@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.80","@ai-sdk/google":"^3.0.80","@ai-sdk/openai":"^3.0.65","@anthropic-ai/sdk":"^0.96.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.17.6","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.7.1","@openrouter/ai-sdk-provider":"^2.9.0","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.193","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/harness":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/std":"workspace:*","@floating-ui/react":"^0.27.16","@happy-dom/global-registrator":"^20.9.0","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.100.10","@tanstack/react-router":"1.169.2","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.191","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.22","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","lucide-react":"^0.468.0",marked:"^15.0.6","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var gR={};Gi(gR,{printBanner:()=>L9l,bannerLines:()=>GSt,BANNER_LINES:()=>g0i,BANNER_GRADIENT:()=>h0i});function R9l(i){let t=Number.parseInt(i.slice(1),16);return[t>>16&255,t>>8&255,t&255]}function GSt(i){let t=g0i.map((u,l)=>{let[n,f,c]=R9l(h0i[l]);return`\x1B[38;2;${n};${f};${c}m${u}\x1B[39m`});if(i!==void 0)t.push(`\x1B[2m v${i}\x1B[22m`);return t}function L9l(i){console.log("");for(let t of GSt(i))console.log(t);console.log("")}var g0i,h0i;var FW=w(()=>{g0i=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],h0i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as e9l,Text as WSt}from"ink";import{jsx as C9l,jsxs as kSt}from"react/jsx-runtime";function E0i({version:i}){return kSt(e9l,{flexDirection:"column",marginTop:1,children:[g0i.map((t,u)=>C9l(WSt,{color:h0i[u],children:t},u)),kSt(WSt,{dimColor:!0,children:[" v",i]})]})}var vki=w(()=>{FW()});var SSt={};Gi(SSt,{subscribeLinkState:()=>xki,setMachine:()=>a9l,setLogPath:()=>o9l,setIngress:()=>V9l,setDaemonError:()=>m9l,setClusterUrl:()=>q9l,setCluster:()=>M9l,pushSandboxEvent:()=>s9l,getLinkState:()=>wki,applySandboxEvent:()=>jSt});function jSt(i,t){let u=new Map(i);if(t.phase==="evicted"||t.phase==="deleted")return u.delete(t.handle),u;let l=u.get(t.handle);return u.set(t.handle,{handle:t.handle,port:t.port??l?.port??null,previewUrl:t.previewUrl??l?.previewUrl??null,status:t.phase,error:t.phase==="failed"?t.error??"failed":null}),u}function M8(){for(let i of rki)i()}function wki(){return t$}function xki(i){return rki.add(i),()=>rki.delete(i)}function M9l(i){t$={...t$,cluster:i},M8()}function q9l(i){t$={...t$,clusterUrl:i},M8()}function V9l(i,t){t$={...t$,ingressPort:i,ingressUrl:t},M8()}function a9l(i){t$={...t$,machine:i},M8()}function m9l(i){t$={...t$,daemonError:i},M8()}function o9l(i){t$={...t$,logPath:i},M8()}function s9l(i){t$={...t$,sandboxes:jSt(t$.sandboxes,i)},M8()}var t$,rki;var Dki=w(()=>{t$={cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:20,sandboxes:new Map,daemonError:null,logPath:null},rki=new Set});var zSt={};Gi(zSt,{LinkApp:()=>tNl});import{Box as u$,Text as l$}from"ink";import{useSyncExternalStore as p9l}from"react";import{jsx as $1,jsxs as LE}from"react/jsx-runtime";function iNl(i){if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function tNl(){let i=p9l(xki,wki),t=[...i.sandboxes.values()].sort((u,l)=>u.handle.localeCompare(l.handle));return LE(u$,{flexDirection:"column",children:[$1(E0i,{version:_0i.version}),$1(u$,{marginBottom:1,children:$1(l$,{dimColor:!0,children:"\u2500".repeat(80)})}),$1(u$,{children:i.cluster==="linked"?LE(l$,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?LE(l$,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):LE(l$,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),$1(u$,{children:i.ingressUrl?LE(l$,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):$1(l$,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),$1(u$,{marginBottom:1,children:$1(l$,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${t.length} of ${i.cap} previews`})}),t.length===0?$1(l$,{dimColor:!0,children:"No previews running yet."}):LE(u$,{flexDirection:"column",children:[LE(u$,{children:[$1(u$,{width:v0i.project,flexShrink:0,marginRight:1,children:$1(l$,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),$1(u$,{width:v0i.status,flexShrink:0,marginRight:1,children:$1(l$,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),$1(u$,{flexGrow:1,children:$1(l$,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),t.map((u)=>{let l=iNl(u);return LE(u$,{children:[$1(u$,{width:v0i.project,flexShrink:0,marginRight:1,children:$1(l$,{wrap:"truncate-end",children:u.handle})}),$1(u$,{width:v0i.status,flexShrink:0,marginRight:1,children:$1(l$,{color:l.color,wrap:"truncate-end",children:l.text})}),$1(u$,{flexGrow:1,children:$1(l$,{dimColor:!0,wrap:"truncate-end",children:u.previewUrl??"\u2014"})})]},u.handle)})]}),i.daemonError?$1(u$,{marginTop:1,children:LE(l$,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?$1(u$,{marginTop:1,children:LE(l$,{dimColor:!0,children:["Logs: ",i.logPath]})}):null]})}var v0i;var bSt=w(()=>{Eki();vki();Dki();v0i={project:18,status:14}});var HSt={};Gi(HSt,{runLinkCommand:()=>_Nl});import{closeSync as uNl,mkdirSync as lNl,openSync as nNl,writeSync as fNl}from"fs";import{homedir as cNl}from"os";import{join as KSt}from"path";function $Nl(i,t){let u={log:console.log,warn:console.warn,error:console.error},l=(n)=>{if(t===void 0)return;try{fNl(t,`${hki(n)}
104795
104795
  `)}catch{}};return console.log=(...n)=>l(n),console.warn=(...n)=>l(n),console.error=(...n)=>{l(n),i(hki(n))},()=>{console.log=u.log,console.warn=u.warn,console.error=u.error}}async function dNl(i,t){let u;try{u=await fetch(`${i}/api/links/me`,{headers:{authorization:`Bearer ${t}`},signal:AbortSignal.timeout(1e4)})}catch{return}if(u.status===401||u.status===403)throw Error(`Authentication rejected by ${i} \u2014 the session token was not accepted. `+`Run \`deco auth login --target ${i}\` and try again.`)}async function _Nl(i={}){let t=i.port??5174,u=i.dataDir??process.env.DATA_DIR??process.env.DECOCMS_HOME??KSt(cNl(),"deco"),l=i.clusterBaseUrl??process.env.MESH_CLUSTER_URL??"https://studio.decocms.com",n,f;try{let c=await qui({dataDir:u,intent:"Link",target:l});if(process.env.DECOCMS_LINK_MANAGED!=="1")await dNl(l,c.accessToken);let $;if(i.tui){let{render:_}=await import("ink"),{createElement:g}=await import("react"),{LinkApp:h}=await Promise.resolve().then(() => (bSt(),zSt)),{pushSandboxEvent:E,setCluster:v,setClusterUrl:r,setDaemonError:x,setIngress:O,setLogPath:y,setMachine:X}=await Promise.resolve().then(() => (Dki(),SSt));lNl(u,{recursive:!0});let N=KSt(u,"link.log");f=nNl(N,"a"),y(N),r(l),v("connecting"),$={onEvent:(U)=>E(U),onIngress:(U)=>O(U,`http://127.0.0.1:${U}`),onCluster:(U)=>v(U),onMachine:(U)=>X(U)},n=$Nl(x,f),_(g(h),{patchConsole:!1})}else if(i.banner!==!1){let{printBanner:_}=await Promise.resolve().then(() => (FW(),gR));_(i.version??"0.0.0")}return await(await PSt({port:t,clusterBaseUrl:l,dataDir:u,session:c,monitor:$,logFd:f,hotReload:i.hotReload})).stopped}catch(c){return n?.(),console.error(c instanceof Error?c.message:String(c)),1}finally{if(n?.(),f!==void 0)try{uNl(f)}catch{}}}var RSt=w(()=>{nGi();ASt()});var Uki={};Gi(Uki,{resolveDevLinkClusterUrl:()=>vNl,populateDevLinkToxiProxy:()=>VSt,isDevLinkToxiProxyEnabled:()=>ENl,ensureDevLinkToxiProxy:()=>ONl,buildDevLinkToxiProxyConfig:()=>MSt,DEV_LINK_TOXIPROXY_SERVICE_NAME:()=>eSt,DEV_LINK_TOXIPROXY_PROXY_NAME:()=>CSt});function ENl(i=process.env){return i.DECO_DEV_LINK_TOXIPROXY==="1"}function Oki(i,t){if(!Number.isInteger(i)||i<1||i>65535)throw Error(`${t} must be an integer port in 1..65535`);return i}function MSt(i){let t=new URL(i.serverUrl);if(t.protocol!=="http:")throw Error("DECO_DEV_LINK_TOXIPROXY only supports http local Studio URLs");let u=Oki(i.apiPort,"apiPort"),l=Oki(i.listenPort,"listenPort");if(t.port.length===0)throw Error("serverUrl must include an explicit valid port");let n=Oki(Number.parseInt(t.port,10),"upstreamPort"),f=`http://127.0.0.1:${n}`,c=`http://127.0.0.1:${l}`;return{serviceName:eSt,proxyName:CSt,apiUrl:`http://127.0.0.1:${u}`,listen:`0.0.0.0:${l}`,upstream:`host.docker.internal:${n}`,publicTargetUrl:f,clusterUrl:c,logLine:`[dev-link-toxiproxy] ready: ${c} -> ${f}`}}function vNl(i){return i.toxiproxy?.clusterUrl??i.serverUrl}async function yki(i,t,u){if(i.ok)return;let l=await i.text();throw Error(`ToxiProxy ${t} failed for ${u}: status=${i.status} statusText=${i.statusText} body=${l}`)}function Jki(i){if(i instanceof Error)return i.name==="Error"?i.message:`${i.name}: ${i.message}`;return String(i)}function qSt(i){if(!(i instanceof Error))return!1;if(i.name==="TimeoutError")return!0;return qSt(i.cause)}async function Xki(i,t,u,l){try{return await i(u,l)}catch(n){throw Error(`ToxiProxy ${t} failed for ${u}: ${Jki(n)}`,{cause:n})}}async function VSt(i,t=fetch){let u=`${i.apiUrl}/reset`,l=await Xki(t,"reset",u,{method:"POST"});await yki(l,"reset",u);let n=`${i.apiUrl}/populate`,f=await Xki(t,"populate",n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify([{name:i.proxyName,listen:i.listen,upstream:i.upstream,enabled:!0}])});await yki(f,"populate",n)}async function rNl(i,t){let u=`${i.apiUrl}/version`;try{await Tr(async()=>{let l=await Xki(t,"readiness check",u,{method:"GET",signal:AbortSignal.timeout(hNl)});await yki(l,"readiness check",u)},{maxAttempts:gNl,minTimeout:LSt,maxTimeout:LSt,multiplier:1,jitter:0,isRetriable:(l)=>!qSt(l)})}catch(l){let n=l instanceof K6?l.cause:l;throw Error(`ToxiProxy API did not become ready at ${u}: ${Jki(n)}`,{cause:n})}}async function wNl(i){if(i===null)return"";return await new Response(i).text()}async function Nki(i,t={}){let u=["docker",...i].join(" "),l=(()=>{try{return Bun.spawn(["docker",...i],{stdout:"ignore",stderr:"pipe"})}catch($){throw Error(`Docker command failed to start (${u}): ${Jki($)}`,{cause:$})}})(),[n,f]=await Promise.all([l.exited,wNl(l.stderr)]);if(n===0||t.ignoreFailure===!0)return;let c=f.trim().length>0?`: ${f.trim()}`:"";throw Error(`Docker command failed (${u}) with exit ${n}${c}`)}async function xNl(i,t){let u=`deco-dev-link-toxiproxy-${i}`;await Nki(["rm","-f",u],{ignoreFailure:!0}),await Nki(["run","--rm","-d","--name",u,"-p",`127.0.0.1:${i}:8474`,"-p",`127.0.0.1:${t}:${t}`,"ghcr.io/shopify/toxiproxy:2.12.0","-host=0.0.0.0"])}async function DNl(i,t){let u=`deco-dev-link-toxiproxy-${i}`;await Nki(["rm","-f",u],{ignoreFailure:!0})}async function ONl(i){let t=MSt(i),u=i.startDaemon??xNl,l=i.stopDaemon??(i.startDaemon===void 0?DNl:void 0);await u(i.apiPort,i.listenPort);let n=i.fetchImpl??fetch;try{await rNl(t,n),await VSt(t,n)}catch(f){if(l!==void 0)try{await l(i.apiPort,i.listenPort)}catch{}throw f}return{config:t,stop:async()=>{if(l!==void 0)await l(i.apiPort,i.listenPort)}}}var eSt="ToxiProxy",CSt="dev_link_studio",gNl=20,LSt=100,hNl=100;var Tki=w(()=>{n1()});var aSt={};Gi(aSt,{migrateBetterAuth:()=>Fki});import{getMigrations as yNl}from"better-auth/db";import{sso as XNl}from"@better-auth/sso";import{organization as NNl}from"@decocms/better-auth/plugins";import{admin as JNl,apiKey as UNl,jwt as TNl,magicLink as FNl,mcp as INl,openAPI as ZNl}from"better-auth/plugins";import{emailOTP as BNl}from"better-auth/plugins/email-otp";async function Fki(i){let u={database:WH(i||Ww()),plugins:[NNl({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),JNl(),UNl(),TNl(),ZNl(),INl({loginPage:"/login"}),XNl(),FNl({sendMagicLink:async()=>{}}),BNl({sendVerificationOTP:async()=>{}})]},{toBeAdded:l,toBeCreated:n,runMigrations:f}=await yNl(u);if(!l.length&&!n.length)return"up to date";return await f(),`${n.length+l.length} table(s) migrated`}var Iki=w(()=>{Nd()});var Zki={};Gi(Zki,{up:()=>QNl,down:()=>YNl});import{sql as eE}from"kysely";async function QNl(i){await i.schema.createTable("connections").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organizationId","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(t)=>t.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(t)=>t.notNull()).addColumn("connectionUrl","text",(t)=>t.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(t)=>t.notNull().defaultTo("active")).addColumn("createdAt","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("api_keys").addColumn("id","text",(t)=>t.primaryKey()).addColumn("userId","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(t)=>t.notNull()).addColumn("hashedKey","text",(t)=>t.notNull().unique()).addColumn("permissions","text",(t)=>t.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("audit_logs").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(t)=>t.references("user.id").onDelete("set null")).addColumn("connectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("toolName","text",(t)=>t.notNull()).addColumn("allowed","integer",(t)=>t.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createTable("oauth_clients").addColumn("id","text",(t)=>t.primaryKey()).addColumn("clientId","text",(t)=>t.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(t)=>t.notNull()).addColumn("redirectUris","text",(t)=>t.notNull()).addColumn("grantTypes","text",(t)=>t.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_authorization_codes").addColumn("code","text",(t)=>t.primaryKey()).addColumn("clientId","text",(t)=>t.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(t)=>t.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(t)=>t.notNull()).addColumn("createdAt","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(t)=>t.primaryKey()).addColumn("clientId","text",(t)=>t.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("downstream_tokens").addColumn("id","text",(t)=>t.primaryKey()).addColumn("connectionId","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(t)=>t.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(t)=>t.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(eE`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function YNl(i){await i.schema.dropTable("downstream_tokens").execute(),await i.schema.dropTable("oauth_refresh_tokens").execute(),await i.schema.dropTable("oauth_authorization_codes").execute(),await i.schema.dropTable("oauth_clients").execute(),await i.schema.dropTable("audit_logs").execute(),await i.schema.dropTable("api_keys").execute(),await i.schema.dropTable("connections").execute()}var mSt=()=>{};var Bki={};Gi(Bki,{up:()=>PNl,down:()=>ANl});import{sql as oSt}from"kysely";async function PNl(i){await i.schema.createTable("organization_settings").addColumn("organizationId","text",(t)=>t.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(t)=>t.notNull().defaultTo(oSt`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(t)=>t.notNull().defaultTo(oSt`CURRENT_TIMESTAMP`)).execute()}async function ANl(i){await i.schema.dropTable("organization_settings").execute()}var sSt=()=>{};var Qki={};Gi(Qki,{up:()=>GNl,down:()=>WNl});async function GNl(i){await i.schema.alterTable("connections").renameColumn("name","title").execute(),await i.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await i.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await i.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await i.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await i.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await i.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await i.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await i.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await i.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await i.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await i.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function WNl(i){await i.schema.alterTable("connections").renameColumn("title","name").execute(),await i.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await i.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await i.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await i.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await i.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await i.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await i.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await i.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await i.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await i.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await i.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var Yki={};Gi(Yki,{up:()=>kNl,down:()=>jNl});async function kNl(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(t)=>t.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(t)=>t.notNull()).addColumn("updatedAt","text",(t)=>t.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((t)=>t.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function jNl(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(t)=>t.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(t)=>t.notNull()).addColumn("updatedAt","text",(t)=>t.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((t)=>t.selectFrom("organization_settings").select(["organizationId",t.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await i.schema.dropTable("organization_settings").execute(),await i.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Pki={};Gi(Pki,{up:()=>SNl,down:()=>zNl});async function SNl(i){await i.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await i.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function zNl(i){await i.schema.alterTable("connections").dropColumn("configuration_state").execute(),await i.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Aki={};Gi(Aki,{up:()=>KNl,down:()=>HNl});import{sql as bNl}from"kysely";async function KNl(i){await i.schema.alterTable("organization_settings").addColumn("sidebar_items",bNl`text`).execute()}async function HNl(i){await i.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var pSt=()=>{};var Gki={};Gi(Gki,{up:()=>RNl,down:()=>LNl});async function RNl(i){await i.schema.createTable("monitoring_logs").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(t)=>t.notNull()).addColumn("tool_name","text",(t)=>t.notNull()).addColumn("input","text",(t)=>t.notNull()).addColumn("output","text",(t)=>t.notNull()).addColumn("is_error","integer",(t)=>t.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(t)=>t.notNull()).addColumn("timestamp","text",(t)=>t.notNull()).addColumn("user_id","text").addColumn("request_id","text",(t)=>t.notNull()).execute(),await i.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await i.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function LNl(i){await i.schema.dropIndex("monitoring_logs_is_error").execute(),await i.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await i.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await i.schema.dropTable("monitoring_logs").execute()}var Wki={};Gi(Wki,{up:()=>eNl,down:()=>CNl});import{sql as hR}from"kysely";async function eNl(i){await i.schema.createTable("events").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(t)=>t.notNull()).addColumn("source","text",(t)=>t.notNull()).addColumn("specversion","text",(t)=>t.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(t)=>t.notNull()).addColumn("datacontenttype","text",(t)=>t.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(t)=>t.notNull().defaultTo("pending")).addColumn("attempts","integer",(t)=>t.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(t)=>t.notNull().defaultTo(hR`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(hR`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_subscriptions").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(t)=>t.notNull()).addColumn("filter","text").addColumn("enabled","integer",(t)=>t.notNull().defaultTo(1)).addColumn("created_at","text",(t)=>t.notNull().defaultTo(hR`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(hR`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_deliveries").addColumn("id","text",(t)=>t.primaryKey()).addColumn("event_id","text",(t)=>t.notNull()).addColumn("subscription_id","text",(t)=>t.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(t)=>t.notNull().defaultTo("pending")).addColumn("attempts","integer",(t)=>t.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(t)=>t.notNull().defaultTo(hR`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await i.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await i.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await i.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await i.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await i.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await i.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await i.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await i.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await i.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function CNl(i){await i.schema.dropIndex("idx_deliveries_retry").execute(),await i.schema.dropIndex("idx_deliveries_subscription_status").execute(),await i.schema.dropIndex("idx_deliveries_event").execute(),await i.schema.dropIndex("idx_subscriptions_unique").execute(),await i.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await i.schema.dropIndex("idx_subscriptions_type").execute(),await i.schema.dropIndex("idx_subscriptions_connection").execute(),await i.schema.dropIndex("idx_events_retry").execute(),await i.schema.dropIndex("idx_events_type").execute(),await i.schema.dropIndex("idx_events_source").execute(),await i.schema.dropIndex("idx_events_org_status").execute(),await i.schema.dropTable("event_deliveries").execute(),await i.schema.dropTable("event_subscriptions").execute(),await i.schema.dropTable("events").execute()}var izt=()=>{};var kki={};Gi(kki,{up:()=>qNl,down:()=>VNl});import{sql as MNl}from"kysely";async function qNl(i){await i.schema.dropTable("audit_logs").ifExists().execute()}async function VNl(i){await i.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(t)=>t.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(t)=>t.references("user.id").onDelete("set null")).addColumn("connectionId","text",(t)=>t.references("connections.id").onDelete("set null")).addColumn("toolName","text",(t)=>t.notNull()).addColumn("allowed","integer",(t)=>t.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(t)=>t.notNull().defaultTo(MNl`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await i.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await i.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var tzt=()=>{};var jki={};Gi(jki,{up:()=>aNl,down:()=>mNl});import{sql as r0i}from"kysely";async function aNl(i){await i.schema.createTable("gateways").addColumn("id","text",(t)=>t.primaryKey()).addColumn("organization_id","text",(t)=>t.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(t)=>t.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(t)=>t.notNull().defaultTo("active")).addColumn("is_default","integer",(t)=>t.notNull().defaultTo(0)).addColumn("created_at","text",(t)=>t.notNull().defaultTo(r0i`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(t)=>t.notNull().defaultTo(r0i`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(t)=>t.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await i.schema.createTable("gateway_connections").addColumn("id","text",(t)=>t.primaryKey()).addColumn("gateway_id","text",(t)=>t.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(t)=>t.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(t)=>t.notNull().defaultTo(r0i`CURRENT_TIMESTAMP`)).execute(),await i.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await i.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await r0i`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(i),await i.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await i.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function mNl(i){await i.schema.dropIndex("idx_gateway_connections_unique").execute(),await i.schema.dropIndex("idx_gateway_connections_connection").execute(),await i.schema.dropIndex("idx_gateway_connections_gateway").execute(),await i.schema.dropIndex("idx_gateways_default_per_org").execute(),await i.schema.dropIndex("idx_gateways_org_status").execute(),await i.schema.dropIndex("idx_gateways_org").execute(),await i.schema.dropTable("gateway_connections").execute(),await i.schema.dropTable("gateways").execute()}var uzt=()=>{};var Ski={};Gi(Ski,{up:()=>oNl,down:()=>sNl});async function oNl(i){await i.schema.alterTable("gateways").addColumn("icon","text").execute()}async function sNl(i){await i.schema.alterTable("gateways").dropColumn("icon").execute()}var zki={};Gi(zki,{up:()=>pNl,down:()=>iJl});import{sql as w0i}from"kysely";async function pNl(i){await i.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(t)=>t.notNull().defaultTo("inclusion")).execute(),await w0i`
104796
104796
  UPDATE gateways
104797
104797
  SET tool_selection_mode = CASE
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "decocms",
3
- "version": "3.10.3",
3
+ "version": "3.11.0",
4
4
  "description": "Deco CMS — Self-hostable MCP Gateway for managing AI connections and tools",
5
5
  "author": "Deco team",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- import{e as D,r as g,j as r,c as H}from"./index-B9kRhzg7.js";import{B as _}from"./agent-icon-DFJgaXFK.js";import{i as V}from"./SearchMd-CxJnyPJ2.js";import{D as X,a as J,c as K,b as Q}from"./dialog-J9xRnRHX.js";import{I as Y}from"./input-DCOoktZX.js";import{_ as Z,X as ee,$ as te,a0 as G,G as re}from"./index-CPhpCeI1.js";import"./AlertCircle-DQ3zaMns.js";import"./Tool01-DRibBi0T.js";import"./SwitchHorizontal01-BjgMZfW7.js";import"./RefreshCcw01-Dk9AOo-m.js";import"./XCircle-BvIhN4E7.js";import"./ArrowUpRight-UT01ancE.js";import"./ZapSquare-C79zBXJj.js";import"./Users03-DhXF_0sH.js";import"./CheckCircle-CN8csJmd.js";import"./Check-DCJCCJt5.js";import"./ChevronDown-vntP1LF0.js";import"./ChevronLeft-_4tt3JbP.js";import"./ChevronRight-BD7fiLv7.js";import"./ChevronUp-B9NZzlEX.js";import"./DotsVertical-DDPFnnRS.js";import"./Container-DlDQbtuJ.js";import"./Eye-ogI2y4CN.js";import"./ZoomOut-B5B07_-g.js";import"./Globe01-C2fKyC2-.js";import"./FilterLines-DpUfIC-u.js";import"./Star01-Cu6cUuhf.js";import"./Palette-OtFJ1ywH.js";import"./HardDrive-Ik-OtFON.js";import"./Stars02-Bo6vryYW.js";import"./Key01-CmprkySl.js";import"./LayoutLeft-BO92HMhM.js";import"./LinkExternal01-9W209kLr.js";import"./Monitor01-B0FKK9nk.js";import"./Sun-Bg1tFzcn.js";import"./Play-B9TsjtCB.js";import"./Plus-BnGx63GX.js";import"./Settings02-PSRUEgfS.js";import"./Shield01-Do71Dyqk.js";import"./Stars01-BuMp0jeZ.js";import"./Trash01-DfuJtop_.js";import"./Upload01-DGWS8Icx.js";import"./User01-B1RcIkcM.js";import"./Users01-CyxI-ZiC.js";import"./XClose-CXacF9IM.js";import"./X-COnjMnsv.js";import"./Zap-BM6RWRPw.js";import"./agent-capabilities-BQdt-MuJ.js";import"./pair-ETmN3fj_.js";import"./format-time-Cy7tTmZp.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./scroll-area-DSB3avJ3.js";import"./select-CVZQAcm7.js";import"./tooltip-Cx8u2hvs.js";import"./use-copy-BKH_ay1V.js";import"./file-type-icon-DPEVE6_q.js";import"./content-blocks-o63cs2vh.js";import"./types-CZnHlJyi.js";import"./constants-BFQrPD6r.js";import"./chat-context-CL-ll6R6.js";import"./tab-id-DiLpeikj.js";import"./decopilot-sse-pool-DIAcxt2i.js";import"./create-sse-subscription-BS5983N4.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./use-virtual-mcp-CtYRrEgz.js";import"./use-collections-C1EEoGdl.js";import"./use-ai-providers-CmWP-lNT.js";import"./use-organization-settings-BDlR4IeW.js";import"./shell-layout-v69WfJwF.js";import"./avatar-CuZPsvd7.js";import"./required-auth-layout-DQ_j0OWf.js";import"./useRouterState-BRj2kxuq.js";import"./use-org-sso-B96bQNMI.js";import"./integration-icon-D0rRtQFH.js";import"./use-navigate-to-agent-C81Y1E7k.js";import"./use-connection-DkHV4tpA.js";import"./use-mcp-prompts-CeFy4g83.js";import"./form-C4TJnG5K.js";import"./label-dlG4_xKf.js";import"./spinner-1Hxy4oL5.js";import"./drawer-NwIwuvOD.js";import"./collection-search-CljcPIbT.js";import"./tabs-DGoyKbi9.js";import"./toggle-group-kjmQGkBo.js";import"./connect-desktop-dialog-CAgFYUmf.js";import"./agent-icons-CkZUPYja.js";import"./checkbox-4DJ-sElS.js";import"./skeleton-KI9W-P-f.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-Bx1_7ym7.js";import"./card-DsraaOS_.js";import"./popover-Dinj8RAt.js";import"./command-Cwxrfu8T.js";import"./index-X8qPybJt.js";import"./useInfiniteQuery-B2j87XPZ.js";import"./infiniteQueryObserver-Xb1xysnw.js";import"./sortable.esm-tovEx4aa.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-Dmrkhocz.js";import"./use-registry-connections-BCrdHAv1.js";import"./extract-connection-data-J0nLi0pB.js";import"./generate-id-C8OHZs1-.js";import"./collections-C8UGR0dQ.js";import"./collection-tabs-BgZPPjBK.js";import"./badge-BCXaZ3jr.js";import"./textarea-CaPEW-IU.js";import"./connection-form-helpers-BL61O5Zc.js";import"./use-infinite-scroll-DV-4RP03.js";import"./useSuspenseInfiniteQuery-BbIHskrR.js";import"./index-jPAWrqoL.js";import"./dropdown-menu-Do65ajnt.js";import"./question-004-sINsf4GQ.js";import"./shell-route-loading-DqEXsH0r.js";import"./sidebar-BMIDAt6t.js";import"./sheet-BLkB41eQ.js";import"./toolbar-CuMC4awt.js";import"./use-create-virtual-mcp-UfIRObXS.js";import"./github-repo-picker-BXy4amYZ.js";import"./use-mcp-tools-BS9dyBS-.js";import"./alert-dialog-BpOf9MAK.js";import"./index-DgQteD84.js";import"./use-org-auth-client-DVt08ImK.js";import"./hover-card-CzsSQjRq.js";import"./task-status-nPHS0i2v.js";import"./use-status-sounds-DEheRMHk.js";import"./empty-state-BqVzURvi.js";import"./resizable-CEMGS5N9.js";import"./use-capability-B6JwqpW7.js";import"./header-tab-button-CfRERpsl.js";import"./index-BQhstHsz.js";import"./user-C5EKJb7v.js";import"./tools-list-CCmWgH3U.js";import"./switch-BtXimVeh.js";import"./use-debounced-autosave-BTVTsOKV.js";import"./index-Bx5wFMxU.js";import"./search-input-Dny3m5xa.js";import"./use-secrets-ODuzEevV.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./accordion-BelQbjLG.js";import"./view-mode-toggle-DbMrI7Rd.js";import"./select-model-BLCOUHJb.js";import"./use-automations-Bi6clolz.js";import"./monaco-editor-C03OGypq.js";import"./automation-runs-W1XLcZy_.js";import"./table-CZLBrik6.js";import"./use-members-CtpiNo8J.js";import"./automation-list-row-CPxwK1jZ.js";const oe=12,E=new Set,$=new Set;function ie(){for(const l of $)l()}function se(l){return E.has(l)?!0:E.size>=oe?!1:(E.add(l),!0)}function F(l){E.delete(l)&&ie()}function le(l){return $.add(l),()=>{$.delete(l)}}function me(l,e){const t=g.useRef(!1),[v,n]=g.useState(!1),m=g.useRef(null),p=g.useRef(null),i=g.useRef(null),o=g.useRef(l);o.current=l;const[x]=g.useState(()=>{const s=()=>{i.current?.(),i.current=null},c=()=>t.current?!0:se(e)?(t.current=!0,n(!0),s(),!0):!1;return f=>{if(p.current=f,m.current&&(m.current.disconnect(),m.current=null),s(),!f){t.current&&(F(e),t.current=!1,n(!1));return}queueMicrotask(()=>{if(p.current!==f)return;const a=new IntersectionObserver(u=>{if(u[0]?.isIntersecting??!1){!c()&&!i.current&&(i.current=le(()=>{p.current===f&&c()}));return}s(),t.current&&(F(e),t.current=!1,n(!1))},{root:o.current.current,rootMargin:"160px 0px"});a.observe(f),m.current=a})}});return{ref:x,iframeActive:v}}function ne(l){const e=D.c(8),{previewUrl:t,title:v,scrollRootRef:n,slotId:m}=l,{ref:p,iframeActive:i}=me(n,m),[o,x]=g.useState(!1);let s;e[0]!==i||e[1]!==o||e[2]!==t||e[3]!==v?(s=i?r.jsxs(r.Fragment,{children:[!o&&r.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-muted/40",children:r.jsx(_,{className:"h-8 w-8 animate-pulse text-muted-foreground/40"})}),r.jsx("iframe",{src:t,title:`Preview ${v}`,sandbox:"allow-scripts allow-same-origin",referrerPolicy:"no-referrer",className:"pointer-events-none h-[200%] w-[200%] origin-top-left scale-50 border-0 bg-white",tabIndex:-1,onLoad:()=>x(!0)})]}):r.jsx("div",{className:"flex h-full items-center justify-center",children:r.jsx(_,{className:"h-8 w-8 text-muted-foreground/30"})}),e[0]=i,e[1]=o,e[2]=t,e[3]=v,e[4]=s):s=e[4];let c;return e[5]!==p||e[6]!==s?(c=r.jsx("div",{ref:p,className:"relative aspect-[16/10] w-full overflow-hidden bg-muted/40",children:s}),e[5]=p,e[6]=s,e[7]=c):c=e[7],c}function pe(l){const e=D.c(26),{entry:t,previewUrl:v,scrollRootRef:n,onSelect:m}=l,p=t.isSavedBlock&&"border-global-section/35 hover:bg-global-section/8";let i;e[0]!==p?(i=H("group flex flex-col overflow-hidden rounded-lg border bg-card text-left transition-colors","hover:border-primary/40 hover:bg-accent/30",p),e[0]=p,e[1]=i):i=e[1];let o;e[2]!==t.resolveType||e[3]!==t.title||e[4]!==v||e[5]!==n?(o=r.jsx(ne,{previewUrl:v,title:t.title,scrollRootRef:n,slotId:t.resolveType}),e[2]=t.resolveType,e[3]=t.title,e[4]=v,e[5]=n,e[6]=o):o=e[6];let x;e[7]!==t.isSavedBlock?(x=t.isSavedBlock?{color:re}:void 0,e[7]=t.isSavedBlock,e[8]=x):x=e[8];let s;e[9]!==x?(s=r.jsx(_,{className:"h-4 w-4 shrink-0",style:x}),e[9]=x,e[10]=s):s=e[10];let c;e[11]!==t.title?(c=r.jsx("p",{className:"truncate text-sm font-medium",children:t.title}),e[11]=t.title,e[12]=c):c=e[12];let f;e[13]!==t.description?(f=t.description&&r.jsx("p",{className:"truncate text-xs text-muted-foreground",children:t.description}),e[13]=t.description,e[14]=f):f=e[14];let a;e[15]!==c||e[16]!==f?(a=r.jsxs("div",{className:"min-w-0 flex-1",children:[c,f]}),e[15]=c,e[16]=f,e[17]=a):a=e[17];let u;e[18]!==s||e[19]!==a?(u=r.jsxs("div",{className:"flex items-center gap-2 border-t px-3 py-2.5",children:[s,a]}),e[18]=s,e[19]=a,e[20]=u):u=e[20];let h;return e[21]!==m||e[22]!==i||e[23]!==o||e[24]!==u?(h=r.jsxs("button",{type:"button",onClick:m,className:i,children:[o,u]}),e[21]=m,e[22]=i,e[23]=o,e[24]=u,e[25]=h):h=e[25],h}function Jr(l){const e=D.c(41),{open:t,onOpenChange:v,meta:n,decofile:m,previewBaseUrl:p,onSelect:i}=l,[o,x]=g.useState(""),[s,c]=g.useState(t),f=g.useRef(null);t!==s&&(c(t),t&&x(""));let a,u,h,b,S,j,N,y,w,R,C;if(e[0]!==m||e[1]!==n||e[2]!==v||e[3]!==i||e[4]!==t||e[5]!==p||e[6]!==o){const U=t&&n&&m?Z(n,m):[],M=n?ee(n):"",z=m?te(m):void 0,W=new Map;if(t&&M)for(const d of U)W.set(d.resolveType,G(p,M,d.previewBlock,z));const A=o.trim().toLowerCase(),q=A?U.filter(d=>d.title.toLowerCase().includes(A)||d.resolveType.toLowerCase().includes(A)||d.description?.toLowerCase().includes(A)):U;u=X,R=t,C=v,a=J,N="top-3 right-3",y="flex h-[90vh] max-h-[90vh] w-[96vw] max-w-[96vw] sm:max-w-[96vw] flex-col gap-0 overflow-hidden p-0";let B;e[18]===Symbol.for("react.memo_cache_sentinel")?(B=r.jsx(K,{children:"Add section"}),e[18]=B):B=e[18];let O;e[19]===Symbol.for("react.memo_cache_sentinel")?(O=r.jsx(V,{size:14,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),e[19]=O):O=e[19];let k;e[20]===Symbol.for("react.memo_cache_sentinel")?(k=d=>x(d.target.value),e[20]=k):k=e[20],e[21]!==o?(w=r.jsxs(Q,{className:"shrink-0 border-b px-4 py-3 text-left",children:[B,r.jsxs("div",{className:"relative pt-2",children:[O,r.jsx(Y,{value:o,onChange:k,placeholder:"Search sections...",className:"h-9 pl-8"})]})]}),e[21]=o,e[22]=w):w=e[22],S=f,j="min-h-0 flex-1 overflow-y-auto",h="p-4",b=q.length===0?r.jsx("p",{className:"py-8 text-center text-sm text-muted-foreground",children:"No sections found."}):r.jsx("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3",children:q.map(d=>r.jsx(pe,{entry:d,scrollRootRef:f,previewUrl:W.get(d.resolveType)??G(p,M,d.previewBlock,z),onSelect:()=>i(d)},d.resolveType))}),e[0]=m,e[1]=n,e[2]=v,e[3]=i,e[4]=t,e[5]=p,e[6]=o,e[7]=a,e[8]=u,e[9]=h,e[10]=b,e[11]=S,e[12]=j,e[13]=N,e[14]=y,e[15]=w,e[16]=R,e[17]=C}else a=e[7],u=e[8],h=e[9],b=e[10],S=e[11],j=e[12],N=e[13],y=e[14],w=e[15],R=e[16],C=e[17];let T;e[23]!==h||e[24]!==b?(T=r.jsx("div",{className:h,children:b}),e[23]=h,e[24]=b,e[25]=T):T=e[25];let I;e[26]!==T||e[27]!==S||e[28]!==j?(I=r.jsx("div",{ref:S,className:j,children:T}),e[26]=T,e[27]=S,e[28]=j,e[29]=I):I=e[29];let L;e[30]!==a||e[31]!==I||e[32]!==N||e[33]!==y||e[34]!==w?(L=r.jsxs(a,{closeButtonClassName:N,className:y,children:[w,I]}),e[30]=a,e[31]=I,e[32]=N,e[33]=y,e[34]=w,e[35]=L):L=e[35];let P;return e[36]!==u||e[37]!==L||e[38]!==R||e[39]!==C?(P=r.jsx(u,{open:R,onOpenChange:C,children:L}),e[36]=u,e[37]=L,e[38]=R,e[39]=C,e[40]=P):P=e[40],P}export{Jr as AddSectionModal};
@@ -1 +0,0 @@
1
- import{e as M,r as S,j as o,l as q}from"./index-B9kRhzg7.js";import{S as G}from"./scroll-area-DSB3avJ3.js";import{j as H,a4 as J,d as Q}from"./index-CPhpCeI1.js";import{S as U}from"./schema-form-ETVh-DHz.js";import{S as W}from"./save-status-BCvLZZx5.js";import"./select-CVZQAcm7.js";import"./tooltip-Cx8u2hvs.js";import"./Check-DCJCCJt5.js";import"./ChevronDown-vntP1LF0.js";import"./ChevronUp-B9NZzlEX.js";import"./agent-capabilities-BQdt-MuJ.js";import"./pair-ETmN3fj_.js";import"./agent-icon-DFJgaXFK.js";import"./AlertCircle-DQ3zaMns.js";import"./Tool01-DRibBi0T.js";import"./SwitchHorizontal01-BjgMZfW7.js";import"./RefreshCcw01-Dk9AOo-m.js";import"./XCircle-BvIhN4E7.js";import"./ArrowUpRight-UT01ancE.js";import"./ZapSquare-C79zBXJj.js";import"./Users03-DhXF_0sH.js";import"./CheckCircle-CN8csJmd.js";import"./ChevronLeft-_4tt3JbP.js";import"./ChevronRight-BD7fiLv7.js";import"./DotsVertical-DDPFnnRS.js";import"./Container-DlDQbtuJ.js";import"./Eye-ogI2y4CN.js";import"./ZoomOut-B5B07_-g.js";import"./Globe01-C2fKyC2-.js";import"./FilterLines-DpUfIC-u.js";import"./Star01-Cu6cUuhf.js";import"./Palette-OtFJ1ywH.js";import"./HardDrive-Ik-OtFON.js";import"./Stars02-Bo6vryYW.js";import"./Key01-CmprkySl.js";import"./LayoutLeft-BO92HMhM.js";import"./LinkExternal01-9W209kLr.js";import"./Monitor01-B0FKK9nk.js";import"./Sun-Bg1tFzcn.js";import"./Play-B9TsjtCB.js";import"./Plus-BnGx63GX.js";import"./SearchMd-CxJnyPJ2.js";import"./Settings02-PSRUEgfS.js";import"./Shield01-Do71Dyqk.js";import"./Stars01-BuMp0jeZ.js";import"./Trash01-DfuJtop_.js";import"./Upload01-DGWS8Icx.js";import"./User01-B1RcIkcM.js";import"./Users01-CyxI-ZiC.js";import"./XClose-CXacF9IM.js";import"./X-COnjMnsv.js";import"./Zap-BM6RWRPw.js";import"./format-time-Cy7tTmZp.js";import"./differenceInSeconds-NQ4PDo0z.js";import"./use-copy-BKH_ay1V.js";import"./file-type-icon-DPEVE6_q.js";import"./dialog-J9xRnRHX.js";import"./content-blocks-o63cs2vh.js";import"./types-CZnHlJyi.js";import"./constants-BFQrPD6r.js";import"./chat-context-CL-ll6R6.js";import"./tab-id-DiLpeikj.js";import"./decopilot-sse-pool-DIAcxt2i.js";import"./create-sse-subscription-BS5983N4.js";import"./unwrap-tool-result-BYXdCQMg.js";import"./use-virtual-mcp-CtYRrEgz.js";import"./use-collections-C1EEoGdl.js";import"./use-ai-providers-CmWP-lNT.js";import"./use-organization-settings-BDlR4IeW.js";import"./shell-layout-v69WfJwF.js";import"./avatar-CuZPsvd7.js";import"./required-auth-layout-DQ_j0OWf.js";import"./useRouterState-BRj2kxuq.js";import"./use-org-sso-B96bQNMI.js";import"./integration-icon-D0rRtQFH.js";import"./use-navigate-to-agent-C81Y1E7k.js";import"./use-connection-DkHV4tpA.js";import"./use-mcp-prompts-CeFy4g83.js";import"./form-C4TJnG5K.js";import"./label-dlG4_xKf.js";import"./input-DCOoktZX.js";import"./spinner-1Hxy4oL5.js";import"./drawer-NwIwuvOD.js";import"./collection-search-CljcPIbT.js";import"./tabs-DGoyKbi9.js";import"./toggle-group-kjmQGkBo.js";import"./connect-desktop-dialog-CAgFYUmf.js";import"./agent-icons-CkZUPYja.js";import"./checkbox-4DJ-sElS.js";import"./skeleton-KI9W-P-f.js";import"./ai-providers-logos-DD3qZ33J.js";import"./settings-section-Bx1_7ym7.js";import"./card-DsraaOS_.js";import"./popover-Dinj8RAt.js";import"./command-Cwxrfu8T.js";import"./index-X8qPybJt.js";import"./useInfiniteQuery-B2j87XPZ.js";import"./infiniteQueryObserver-Xb1xysnw.js";import"./sortable.esm-tovEx4aa.js";import"./connection-slug-eyAPH6o3.js";import"./connection-card-Dmrkhocz.js";import"./use-registry-connections-BCrdHAv1.js";import"./extract-connection-data-J0nLi0pB.js";import"./generate-id-C8OHZs1-.js";import"./collections-C8UGR0dQ.js";import"./collection-tabs-BgZPPjBK.js";import"./badge-BCXaZ3jr.js";import"./textarea-CaPEW-IU.js";import"./connection-form-helpers-BL61O5Zc.js";import"./use-infinite-scroll-DV-4RP03.js";import"./useSuspenseInfiniteQuery-BbIHskrR.js";import"./index-jPAWrqoL.js";import"./dropdown-menu-Do65ajnt.js";import"./question-004-sINsf4GQ.js";import"./shell-route-loading-DqEXsH0r.js";import"./sidebar-BMIDAt6t.js";import"./sheet-BLkB41eQ.js";import"./toolbar-CuMC4awt.js";import"./use-create-virtual-mcp-UfIRObXS.js";import"./github-repo-picker-BXy4amYZ.js";import"./use-mcp-tools-BS9dyBS-.js";import"./alert-dialog-BpOf9MAK.js";import"./index-DgQteD84.js";import"./use-org-auth-client-DVt08ImK.js";import"./hover-card-CzsSQjRq.js";import"./task-status-nPHS0i2v.js";import"./use-status-sounds-DEheRMHk.js";import"./empty-state-BqVzURvi.js";import"./resizable-CEMGS5N9.js";import"./use-capability-B6JwqpW7.js";import"./header-tab-button-CfRERpsl.js";import"./index-BQhstHsz.js";import"./user-C5EKJb7v.js";import"./tools-list-CCmWgH3U.js";import"./switch-BtXimVeh.js";import"./use-debounced-autosave-BTVTsOKV.js";import"./index-Bx5wFMxU.js";import"./search-input-Dny3m5xa.js";import"./use-secrets-ODuzEevV.js";import"./formatDistanceToNow-Cb2QZZJn.js";import"./accordion-BelQbjLG.js";import"./view-mode-toggle-DbMrI7Rd.js";import"./select-model-BLCOUHJb.js";import"./use-automations-Bi6clolz.js";import"./monaco-editor-C03OGypq.js";import"./automation-runs-W1XLcZy_.js";import"./table-CZLBrik6.js";import"./use-members-CtpiNo8J.js";import"./automation-list-row-CPxwK1jZ.js";import"./calendar-DfGnEJr6.js";import"./image-field-ixadfB5p.js";import"./use-file-configs-DC8U7Oa7.js";function qo(g){const t=M.c(38),{orgSlug:N,virtualMcpId:_,branch:k,blockKey:r,block:i,meta:m,title:E,excludeFields:n,schemaPending:C}=g,P=C===void 0?!1:C,e=typeof i?.__resolveType=="string"?i.__resolveType:"";let d;if(t[0]!==n||t[1]!==m||t[2]!==e){const c=e?H(e,m):null;d=c&&n?.length?{...c,properties:Object.fromEntries(Object.entries(c.properties??{}).filter(y=>{const[I]=y;return!n.includes(I)}))}:c,t[0]=n,t[1]=m,t[2]=e,t[3]=d}else d=t[3];const f=d;let u;t[4]!==i||t[5]!==r||t[6]!==m||t[7]!==E?(u=E??(i?J(r,i,m):r),t[4]=i,t[5]=r,t[6]=m,t[7]=E,t[8]=u):u=t[8];const B=u;let x;t[9]!==k||t[10]!==N||t[11]!==_?(x={orgSlug:N,virtualMcpId:_,branch:k},t[9]=k,t[10]=N,t[11]=_,t[12]=x):x=t[12];const{save:K,isPending:R}=Q(x),[A,L]=S.useState(r),[z,O]=S.useState(null),[V,D]=S.useState(0);let h;t[13]===Symbol.for("react.memo_cache_sentinel")?(h=[],t[13]=h):h=t[13];const[w,$]=S.useState(h);A!==r&&(L(r),O(null),D(X),$([]));let v;t[14]!==i?(v=i??{},t[14]=i,t[15]=v):v=t[15];const F=z??v;let b;t[16]!==r||t[17]!==e||t[18]!==K?(b=c=>{const y=c;O(y),K(r,{...y,__resolveType:e})},t[16]=r,t[17]=e,t[18]=K,t[19]=b):b=t[19];const T=b;let p;t[20]!==B?(p=o.jsx("span",{className:"text-sm font-medium",children:B}),t[20]=B,t[21]=p):p=t[21];let s;t[22]!==R?(s=o.jsx(W,{isPending:R,isError:!1}),t[22]=R,t[23]=s):s=t[23];let l;t[24]!==p||t[25]!==s?(l=o.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between border-b px-6",children:[p,s]}),t[24]=p,t[25]=s,t[26]=l):l=t[26];let a;t[27]!==r||t[28]!==w||t[29]!==F||t[30]!==V||t[31]!==T||t[32]!==f||t[33]!==P?(a=o.jsx(G,{className:"min-w-0 flex-1 [&_[data-slot=scroll-area-viewport]>div]:!block",children:o.jsx("div",{className:"px-6 py-6",children:o.jsx("div",{className:"mx-auto max-w-xl",children:f?o.jsx(U,{schema:f,value:F,onChange:T,basePath:"",breadcrumbPath:w,onBreadcrumbChange:$},`${r}:${V}`):P?o.jsxs("div",{className:"flex flex-col items-center gap-2 py-6 text-center text-xs text-muted-foreground",children:[o.jsx(q,{size:16,className:"animate-spin"}),"Loading app schema…"]}):o.jsx("div",{className:"py-6 text-center text-xs text-muted-foreground",children:"No editable schema found for this app."})})})}),t[27]=r,t[28]=w,t[29]=F,t[30]=V,t[31]=T,t[32]=f,t[33]=P,t[34]=a):a=t[34];let j;return t[35]!==l||t[36]!==a?(j=o.jsxs("div",{className:"flex h-full flex-col",children:[l,a]}),t[35]=l,t[36]=a,t[37]=j):j=t[37],j}function X(g){return g+1}export{qo as AppEditor};
@@ -1 +0,0 @@
1
- import{R as ge,aI as Ie,b6 as Ae,U as ce,aG as $e,e as P,j as t,l as je,B as G,r as X,c as ve,q as J,s as De,K as ne,f as Y,w as de,u as Pe,b7 as Oe,E as Me,g as ze,F as Ve,G as Ee,H as Ue,J as Fe,b8 as Re,o as Q,I as Le}from"./index-B9kRhzg7.js";import{g as He}from"./generate-id-C8OHZs1-.js";import{E as be}from"./empty-state-BqVzURvi.js";import{E as Be,c as Ge,r as We,b as Xe,d as qe}from"./connection-form-helpers-BL61O5Zc.js";import{c as Ke,S as Qe}from"./index-hwNqvXOX.js";import{u as Ne,T as Je}from"./tools-list-CCmWgH3U.js";import{u as Ye}from"./use-members-CtpiNo8J.js";import{A as Ze}from"./avatar-CuZPsvd7.js";import{a as ye,b as _e,u as et}from"./use-connection-DkHV4tpA.js";import{u as re,S as tt}from"./constants-BFQrPD6r.js";import{b as st}from"./use-mcp-tools-BS9dyBS-.js";import{g as ae,M as nt,a as ot}from"./types-CZnHlJyi.js";import{a as it}from"./use-mcp-prompts-CeFy4g83.js";import{I as oe}from"./integration-icon-D0rRtQFH.js";import{s as rt}from"./Plus-BnGx63GX.js";import{a as Se}from"./Settings02-PSRUEgfS.js";import{s as le}from"./Trash01-DfuJtop_.js";import{b as at,a as lt,d as ct,S as dt,c as mt}from"./sheet-BLkB41eQ.js";import{F as R,b as L,c as H,d as V,f as B,e as ut,a as xt}from"./form-C4TJnG5K.js";import{I as W}from"./input-DCOoktZX.js";import{u as pt,D as ft}from"./use-delete-connection-D9RSUNNZ.js";import{V as ht}from"./layout-CqY1dIbQ.js";import{c as gt,C as jt,B as vt,a as bt,b as Nt,d as yt,e as _t}from"./monitoring-stats-row-B5_JF7d0.js";import{a as St}from"./use-virtual-mcp-CtYRrEgz.js";import{i as Ce}from"./ChevronRight-BD7fiLv7.js";import{a as we}from"./Users03-DhXF_0sH.js";import{T as ee,a as Ct,b as te,c as wt}from"./tabs-DGoyKbi9.js";import{g as ke}from"./connection-slug-eyAPH6o3.js";import{n as kt}from"./ZapSquare-C79zBXJj.js";import{a3 as Tt,P as It}from"./agent-icon-DFJgaXFK.js";import{b as At}from"./Tool01-DRibBi0T.js";import{C as $t}from"./collection-search-CljcPIbT.js";import{C as Dt}from"./card-DsraaOS_.js";import{B as Pt}from"./badge-BCXaZ3jr.js";import{D as Ot,a as Mt,b as zt,c as me}from"./dropdown-menu-Do65ajnt.js";import{d as ue,S as xe,a as pe,b as fe,c as F}from"./select-CVZQAcm7.js";import{i as Vt}from"./CheckCircle-CN8csJmd.js";import{t as Et}from"./ChevronDown-vntP1LF0.js";import{n as Ut}from"./Container-DlDQbtuJ.js";import{s as se}from"./Star01-Cu6cUuhf.js";import{s as Ft}from"./RefreshCcw01-Dk9AOo-m.js";import{s as Rt}from"./XClose-CXacF9IM.js";import"./collections-C8UGR0dQ.js";import"./ZoomOut-B5B07_-g.js";import"./Key01-CmprkySl.js";import"./index-CtCZ2lVU.js";import"./index-2TKWj64n.js";import"./extract-connection-data-J0nLi0pB.js";import"./use-registry-connections-BCrdHAv1.js";import"./use-organization-settings-BDlR4IeW.js";import"./index-X8qPybJt.js";import"./popover-Dinj8RAt.js";import"./tooltip-Cx8u2hvs.js";import"./Check-DCJCCJt5.js";import"./SearchMd-CxJnyPJ2.js";import"./use-create-virtual-mcp-UfIRObXS.js";import"./use-navigate-to-agent-C81Y1E7k.js";import"./Eye-ogI2y4CN.js";import"./use-org-auth-client-DVt08ImK.js";import"./User01-B1RcIkcM.js";import"./use-collections-C1EEoGdl.js";import"./X-COnjMnsv.js";import"./label-dlG4_xKf.js";import"./alert-dialog-BpOf9MAK.js";import"./index-Bx5wFMxU.js";import"./sidebar-BMIDAt6t.js";import"./LayoutLeft-BO92HMhM.js";import"./AlertCircle-DQ3zaMns.js";import"./SwitchHorizontal01-BjgMZfW7.js";import"./XCircle-BvIhN4E7.js";import"./ArrowUpRight-UT01ancE.js";import"./ChevronLeft-_4tt3JbP.js";import"./ChevronUp-B9NZzlEX.js";import"./DotsVertical-DDPFnnRS.js";import"./Globe01-C2fKyC2-.js";import"./FilterLines-DpUfIC-u.js";import"./Palette-OtFJ1ywH.js";import"./HardDrive-Ik-OtFON.js";import"./Stars02-Bo6vryYW.js";import"./LinkExternal01-9W209kLr.js";import"./Monitor01-B0FKK9nk.js";import"./Sun-Bg1tFzcn.js";import"./Play-B9TsjtCB.js";import"./Shield01-Do71Dyqk.js";import"./Stars01-BuMp0jeZ.js";import"./Upload01-DGWS8Icx.js";import"./Users01-CyxI-ZiC.js";import"./Zap-BM6RWRPw.js";const Lt=ge({scopes:$e(ce()).describe("List of scopes available"),stateSchema:Ie(ce(),Ae()).describe("JSON Schema (draft-07) defining the state structure")}),Ht=[{name:"MCP_CONFIGURATION",inputSchema:ge({}),outputSchema:Lt}];function Bt(s){const e=P.c(39),{instance:n,onConfigure:i,onAuthenticate:a,onDelete:o}=s;let r;e[0]!==n.id?(r={connectionId:n.id},e[0]=n.id,e[1]=r):r=e[1];const c=Ne(r),d=!(n.connection_type==="VIRTUAL")&&c.supportsOAuth&&!c.isAuthenticated,u=d?"border-destructive/50 bg-destructive/5":"border-transparent";let p;e[2]!==u?(p=ve("flex items-center gap-3 rounded-lg border px-4 py-2.5 transition-colors",u),e[2]=u,e[3]=p):p=e[3];let l;e[4]!==n.icon||e[5]!==n.title?(l=t.jsx(oe,{icon:n.icon,name:n.title,size:"xs",className:"shrink-0"}),e[4]=n.icon,e[5]=n.title,e[6]=l):l=e[6];let f;e[7]!==n.title?(f=t.jsx("p",{className:"text-sm font-medium truncate",children:n.title}),e[7]=n.title,e[8]=f):f=e[8];let g;e[9]!==d?(g=d&&t.jsx("span",{className:"text-xs text-destructive font-medium",children:"Needs authorization"}),e[9]=d,e[10]=g):g=e[10];let v;e[11]!==f||e[12]!==g?(v=t.jsxs("div",{className:"flex-1 min-w-0",children:[f,g]}),e[11]=f,e[12]=g,e[13]=v):v=e[13];let b;e[14]!==n||e[15]!==d||e[16]!==a?(b=d&&t.jsx(G,{variant:"outline",size:"sm",className:"h-7 text-xs",onClick:()=>a(n),children:"Authorize"}),e[14]=n,e[15]=d,e[16]=a,e[17]=b):b=e[17];let j;e[18]!==n||e[19]!==i?(j=()=>i(n),e[18]=n,e[19]=i,e[20]=j):j=e[20];let _;e[21]===Symbol.for("react.memo_cache_sentinel")?(_=t.jsx(Se,{size:13}),e[21]=_):_=e[21];let w;e[22]!==j?(w=t.jsx(G,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:j,title:"Configure",children:_}),e[22]=j,e[23]=w):w=e[23];let S;e[24]!==n||e[25]!==o?(S=()=>o(n),e[24]=n,e[25]=o,e[26]=S):S=e[26];let N;e[27]===Symbol.for("react.memo_cache_sentinel")?(N=t.jsx(le,{size:13}),e[27]=N):N=e[27];let k;e[28]!==S?(k=t.jsx(G,{variant:"ghost",size:"icon",className:"h-7 w-7 text-muted-foreground hover:text-destructive",onClick:S,title:"Delete",children:N}),e[28]=S,e[29]=k):k=e[29];let y;e[30]!==w||e[31]!==k||e[32]!==b?(y=t.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[b,w,k]}),e[30]=w,e[31]=k,e[32]=b,e[33]=y):y=e[33];let C;return e[34]!==y||e[35]!==p||e[36]!==l||e[37]!==v?(C=t.jsxs("div",{className:p,children:[l,v,y]}),e[34]=y,e[35]=p,e[36]=l,e[37]=v,e[38]=C):C=e[38],C}function Gt(s){const e=P.c(15),{instance:n,onConfigure:i}=s;let a;e[0]!==n.icon||e[1]!==n.title?(a=t.jsx(oe,{icon:n.icon,name:n.title,size:"xs",className:"shrink-0"}),e[0]=n.icon,e[1]=n.title,e[2]=a):a=e[2];let o;e[3]!==n.title?(o=t.jsx("div",{className:"flex-1 min-w-0",children:t.jsx("p",{className:"text-sm font-medium truncate",children:n.title})}),e[3]=n.title,e[4]=o):o=e[4];let r;e[5]!==n||e[6]!==i?(r=()=>i(n),e[5]=n,e[6]=i,e[7]=r):r=e[7];let c;e[8]===Symbol.for("react.memo_cache_sentinel")?(c=t.jsx(Se,{size:13}),e[8]=c):c=e[8];let m;e[9]!==r?(m=t.jsx("div",{className:"flex items-center gap-1 shrink-0",children:t.jsx(G,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:r,title:"Configure",children:c})}),e[9]=r,e[10]=m):m=e[10];let d;return e[11]!==a||e[12]!==o||e[13]!==m?(d=t.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-transparent px-4 py-2.5 transition-colors",children:[a,o,m]}),e[11]=a,e[12]=o,e[13]=m,e[14]=d):d=e[14],d}function Wt(s){const e=P.c(25),{instances:n,onConfigure:i,onAuthenticate:a,onDelete:o,onAdd:r,isAdding:c}=s;if(n.length===0)return null;const m=n.length===1?"Instance":"Instances";let d;e[0]!==m?(d=t.jsx("h3",{className:"text-sm font-semibold text-foreground",children:m}),e[0]=m,e[1]=d):d=e[1];let u;e[2]!==c?(u=c?t.jsx(je,{size:13,className:"animate-spin"}):t.jsx(rt,{size:13}),e[2]=c,e[3]=u):u=e[3];let p;e[4]!==c||e[5]!==r||e[6]!==u?(p=t.jsxs(G,{variant:"default",size:"sm",className:"h-7 gap-1.5 text-xs",onClick:r,disabled:c,children:[u,"Add instance"]}),e[4]=c,e[5]=r,e[6]=u,e[7]=p):p=e[7];let l;e[8]!==d||e[9]!==p?(l=t.jsxs("div",{className:"px-5 py-4 border-b border-border flex items-center justify-between",children:[d,p]}),e[8]=d,e[9]=p,e[10]=l):l=e[10];let f;if(e[11]!==n||e[12]!==a||e[13]!==i||e[14]!==o){let b;e[16]!==a||e[17]!==i||e[18]!==o?(b=j=>t.jsx(X.Suspense,{fallback:t.jsx(Gt,{instance:j,onConfigure:i}),children:t.jsx(Bt,{instance:j,onConfigure:i,onAuthenticate:a,onDelete:o})},j.id),e[16]=a,e[17]=i,e[18]=o,e[19]=b):b=e[19],f=n.map(b),e[11]=n,e[12]=a,e[13]=i,e[14]=o,e[15]=f}else f=e[15];let g;e[20]!==f?(g=t.jsx("div",{className:"p-2 flex flex-col gap-1",children:f}),e[20]=f,e[21]=g):g=e[21];let v;return e[22]!==l||e[23]!==g?(v=t.jsxs("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:[l,g]}),e[22]=l,e[23]=g,e[24]=v):v=e[24],v}const Xt=[{value:"7d",label:"7d"},{value:"14d",label:"14d"},{value:"30d",label:"30d"}];function qt(s){const e=new Date,n=new Date(e);return s==="7d"?n.setDate(n.getDate()-7):s==="14d"?n.setDate(n.getDate()-14):n.setDate(n.getDate()-30),{startDate:n,endDate:e}}const Kt={calls:{label:"Tool calls"},errors:{label:"Errors"}};function Qt(s){const e=P.c(4),{connectionId:n,orgId:i,orgSlug:a,timeframe:o}=s;let r;e[0]!==i||e[1]!==a?(r={connectionId:tt,orgId:i,orgSlug:a},e[0]=i,e[1]=a,e[2]=r):r=e[2];const c=re(r),m=qt(o),{data:d}=De({queryKey:ne.connectionActivity(n,o,i),queryFn:async()=>{const g=await c.callTool({name:"MONITORING_LOGS_LIST",arguments:{startDate:m.startDate.toISOString(),endDate:m.endDate.toISOString(),connectionId:n,limit:2e3,offset:0}});return g.structuredContent??g},staleTime:3e5}),u=gt(d?.logs??[],m),p=u.data,l=u.totalCalls>0;let f;return e[3]===Symbol.for("react.memo_cache_sentinel")?(f=t.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Tool calls"}),e[3]=f):f=e[3],t.jsxs("div",{children:[t.jsxs("div",{className:"flex gap-6 px-5 pb-4",children:[t.jsxs("div",{children:[t.jsx("p",{className:"text-2xl font-semibold text-foreground tabular-nums",children:u.totalCalls.toLocaleString()}),f]}),u.totalErrors>0&&t.jsxs("div",{children:[t.jsx("p",{className:"text-2xl font-semibold text-destructive tabular-nums",children:u.totalErrors.toLocaleString()}),t.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Errors"})]}),u.avgDurationMs>0&&t.jsxs("div",{children:[t.jsxs("p",{className:"text-2xl font-semibold text-foreground tabular-nums",children:[Math.round(u.avgDurationMs),"ms"]}),t.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Avg latency"})]})]}),l?t.jsxs("div",{children:[t.jsx(jt,{config:Kt,className:"h-16 w-full",children:t.jsxs(vt,{data:p,barCategoryGap:"4%",children:[t.jsx(bt,{content:t.jsx(Nt,{labelFormatter:Yt}),cursor:{fill:"var(--muted)"}}),t.jsx(yt,{dataKey:"calls",radius:[2,2,0,0],minPointSize:1,children:p.map(Jt)})]})}),t.jsxs("div",{className:"flex justify-between px-3 mt-1 pb-3",children:[t.jsx("span",{className:"text-[10px] text-muted-foreground",children:p[0]?.label}),t.jsx("span",{className:"text-[10px] text-muted-foreground",children:p[p.length-1]?.label})]})]}):t.jsx("div",{className:"h-20 flex items-center justify-center",children:t.jsx("p",{className:"text-sm text-muted-foreground/60",children:"No activity in this period"})})]})}function Jt(s,e){return t.jsx(_t,{fill:s.errorRate>50?"var(--destructive)":"var(--chart-1)",fillOpacity:s.calls===0?.2:s.errorRate>50?.7:.85},`cell-${e}`)}function Yt(s,e){const n=Array.isArray(e)?e[0]:void 0;return n&&typeof n=="object"&&"payload"in n?n.payload?.label??"":""}function Zt(){const s=P.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsxs("div",{children:[t.jsx("div",{className:"flex gap-6 px-5 pb-4",children:t.jsxs("div",{className:"flex flex-col gap-1.5",children:[t.jsx("div",{className:"h-7 w-16 rounded-md bg-muted animate-pulse"}),t.jsx("div",{className:"h-3 w-14 rounded bg-muted animate-pulse"})]})}),t.jsx("div",{className:"h-20 w-full rounded-md bg-muted animate-pulse"})]}),s[0]=e):e=s[0],e}function es(s){const e=P.c(14),{connectionId:n}=s,[i,a]=X.useState("14d"),{org:o}=J();let r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx("div",{children:t.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Activity"})}),e[0]=r):r=e[0];let c;e[1]!==i?(c=Xt.map(l=>t.jsx("button",{type:"button",onClick:()=>a(l.value),className:ve("px-2.5 py-1 text-xs font-medium rounded-md transition-colors",i===l.value?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:l.label},l.value)),e[1]=i,e[2]=c):c=e[2];let m;e[3]!==c?(m=t.jsxs("div",{className:"px-5 py-4 flex items-center justify-between",children:[r,t.jsx("div",{className:"flex items-center gap-0.5 bg-muted rounded-lg p-0.5",children:c})]}),e[3]=c,e[4]=m):m=e[4];let d;e[5]===Symbol.for("react.memo_cache_sentinel")?(d=t.jsx(Zt,{}),e[5]=d):d=e[5];let u;e[6]!==n||e[7]!==o.id||e[8]!==o.slug||e[9]!==i?(u=t.jsx(X.Suspense,{fallback:d,children:t.jsx(Qt,{connectionId:n,orgId:o.id,orgSlug:o.slug,timeframe:i})}),e[6]=n,e[7]=o.id,e[8]=o.slug,e[9]=i,e[10]=u):u=e[10];let p;return e[11]!==m||e[12]!==u?(p=t.jsxs("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:[m,u]}),e[11]=m,e[12]=u,e[13]=p):p=e[13],p}function ts(s){const e=P.c(15),{virtualMcp:n,org:i}=s,a=Y();let o;e[0]!==a||e[1]!==i||e[2]!==n.id?(o=()=>{const p=crypto.randomUUID();a({to:"/$org/$taskId",params:{org:i,taskId:p},search:{virtualmcpid:n.id}})},e[0]=a,e[1]=i,e[2]=n.id,e[3]=o):o=e[3];let r;e[4]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(we,{size:16}),e[4]=r):r=e[4];let c;e[5]!==n.icon||e[6]!==n.title?(c=t.jsx(oe,{icon:n.icon,name:n.title,size:"xs",fallbackIcon:r}),e[5]=n.icon,e[6]=n.title,e[7]=c):c=e[7];let m;e[8]!==n.title?(m=t.jsx("span",{className:"flex-1 text-sm font-medium text-foreground truncate",children:n.title}),e[8]=n.title,e[9]=m):m=e[9];let d;e[10]===Symbol.for("react.memo_cache_sentinel")?(d=t.jsx(Ce,{size:16,className:"text-muted-foreground group-hover:text-foreground transition-colors shrink-0"}),e[10]=d):d=e[10];let u;return e[11]!==o||e[12]!==c||e[13]!==m?(u=t.jsxs("button",{type:"button",onClick:o,className:"flex items-center gap-3 rounded-lg hover:bg-muted/50 transition-colors group text-left w-full",children:[c,m,d]}),e[11]=o,e[12]=c,e[13]=m,e[14]=u):u=e[14],u}function ss(s){const e=P.c(7),{virtualMcps:n,org:i}=s;let a;if(e[0]!==i||e[1]!==n){let r;e[3]!==i?(r=c=>t.jsx(ts,{virtualMcp:c,org:i},c.id),e[3]=i,e[4]=r):r=e[4],a=n.map(r),e[0]=i,e[1]=n,e[2]=a}else a=e[2];let o;return e[5]!==a?(o=t.jsx("div",{className:"flex flex-col gap-3",children:t.jsx("div",{className:"flex flex-col gap-2",children:a})}),e[5]=a,e[6]=o):o=e[6],o}function ns(s){const e=P.c(7),{connection:n}=s,{org:i}=J();let a;e[0]!==n.id?(a={filters:[{column:"connection_id",value:n.id}]},e[0]=n.id,e[1]=a):a=e[1];const o=St(a);if(!(o.length>0)){let d;return e[2]===Symbol.for("react.memo_cache_sentinel")?(d=t.jsx(t.Fragment,{}),e[2]=d):d=e[2],d}let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=t.jsx("div",{className:"px-5 py-4 border-b border-border",children:t.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Used by agents"})}),e[3]=c):c=e[3];let m;return e[4]!==i.slug||e[5]!==o?(m=t.jsxs("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:[c,t.jsx("div",{className:"px-5 py-4",children:t.jsx(ss,{virtualMcps:o,org:i.slug})})]}),e[4]=i.slug,e[5]=o,e[6]=m):m=e[6],m}function os(s){const e=P.c(31),{tools:n,connectionId:i,org:a}=s,o=Y(),{org:r}=J();let c;e[0]!==i||e[1]!==r.id||e[2]!==r.slug?(c={connectionId:i,orgId:r.id,orgSlug:r.slug},e[0]=i,e[1]=r.id,e[2]=r.slug,e[3]=c):c=e[3];const m=re(c),d=ye(i);let u;e[4]!==d||e[5]!==i?(u=d?ke(d):i,e[4]=d,e[5]=i,e[6]=u):u=e[6];const p=u,[l,f]=X.useState("");let g,v,b,j;if(e[7]!==p||e[8]!==m||e[9]!==o||e[10]!==a||e[11]!==l||e[12]!==n){const S=(n??[]).filter(is),N=l.toLowerCase().trim(),k=N?S.filter(h=>h.name.toLowerCase().includes(N)||h.description&&h.description.toLowerCase().includes(N)):S;let y;e[17]!==p||e[18]!==o||e[19]!==a?(y=h=>{o({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:a,appSlug:p,collectionName:"tools",itemId:encodeURIComponent(h.name)}})},e[17]=p,e[18]=o,e[19]=a,e[20]=y):y=e[20];const C=y;b="flex flex-col h-full overflow-hidden";let I;e[21]===Symbol.for("react.memo_cache_sentinel")?(I=h=>{h.key==="Escape"&&(f(""),h.target.blur())},e[21]=I):I=e[21],e[22]!==l?(j=t.jsx($t,{value:l,onChange:f,placeholder:"Search apps...",onKeyDown:I}),e[22]=l,e[23]=j):j=e[23],g="flex-1 overflow-auto p-5",v=k.length===0?t.jsx(be,{image:null,title:l?"No apps found":"No apps available",description:l?"Try adjusting your search terms":"This connection doesn't have any tools with interactive UIs yet."}):t.jsx("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(320px,1fr))] gap-4",children:k.map(h=>{const A=ae(h._meta);return t.jsxs(Dt,{className:"cursor-pointer transition-colors overflow-hidden gap-0",onClick:()=>C(h),children:[t.jsx("div",{className:"h-[200px] overflow-hidden border-b border-border",children:t.jsx(nt,{resourceURI:A,toolInfo:{tool:h},displayMode:"inline",minHeight:200,maxHeight:200,client:m})}),t.jsxs("div",{className:"flex flex-col gap-2 p-4",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:h.name}),t.jsx(Je,{annotations:h.annotations,_meta:h._meta})]}),h.description&&t.jsx("p",{className:"text-sm text-muted-foreground line-clamp-2",children:h.description})]})]},h.name)})}),e[7]=p,e[8]=m,e[9]=o,e[10]=a,e[11]=l,e[12]=n,e[13]=g,e[14]=v,e[15]=b,e[16]=j}else g=e[13],v=e[14],b=e[15],j=e[16];let _;e[24]!==g||e[25]!==v?(_=t.jsx("div",{className:g,children:v}),e[24]=g,e[25]=v,e[26]=_):_=e[26];let w;return e[27]!==b||e[28]!==j||e[29]!==_?(w=t.jsxs("div",{className:b,children:[j,_]}),e[27]=b,e[28]=j,e[29]=_,e[30]=w):w=e[30],w}function is(s){return!!ae(s._meta)}function Te(s){const e=s.replace(/[._]/g," ").trim().split(/\s+/),n=r=>r.charAt(0).toUpperCase()+r.slice(1),i=new Set(["list","create","get","update","delete","fetch","search","run","trigger","review","send","check"]),a=e.map(n),o=e[e.length-1];return a.length>=2&&o&&i.has(o)?[a.pop(),...a].join(" "):a.join(" ")}function ie(s){const e=P.c(2),{label:n}=s;let i;return e[0]!==n?(i=t.jsx("div",{className:"px-5 py-8 text-center",children:t.jsxs("p",{className:"text-sm text-muted-foreground",children:["No ",n," available."]})}),e[0]=n,e[1]=i):i=e[1],i}function rs(s){const e=P.c(50),{tools:n,prompts:i,resources:a,connectionId:o,org:r}=s;let c;e[0]!==i?(c=i===void 0?[]:i,e[0]=i,e[1]=c):c=e[1];const m=c;let d;e[2]!==a?(d=a===void 0?[]:a,e[2]=a,e[3]=d):d=e[3];const u=d,p=Y(),l=ye(o??"");let f;e[4]!==l||e[5]!==o?(f=l?ke(l):o,e[4]=l,e[5]=o,e[6]=f):f=e[6];const g=f;let v;e[7]!==g||e[8]!==o||e[9]!==p||e[10]!==r?(v=function($){!o||!r||p({to:"/$org/settings/connections/$appSlug/$collectionName/$itemId",params:{org:r,appSlug:g,collectionName:"tools",itemId:encodeURIComponent($)}})},e[7]=g,e[8]=o,e[9]=p,e[10]=r,e[11]=v):v=e[11];const b=v;let j;e[12]!==o||e[13]!==r||e[14]!==n?(j=o&&r&&n.some(cs),e[12]=o,e[13]=r,e[14]=n,e[15]=j):j=e[15];const _=j;if(n.length+m.length+u.length===0){let x;return e[16]===Symbol.for("react.memo_cache_sentinel")?(x=t.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[t.jsx("h3",{className:"text-sm font-semibold text-foreground mb-1",children:"Capabilities"}),t.jsx("p",{className:"text-sm text-muted-foreground",children:"No capabilities discovered yet. The connection may still be connecting."})]}),e[16]=x):x=e[16],x}let S;e[17]!==n.length?(S=t.jsxs(ee,{value:"tools",variant:"underline",children:["Tools (",n.length,")"]}),e[17]=n.length,e[18]=S):S=e[18];let N;e[19]!==_?(N=_&&t.jsx(ee,{value:"apps",variant:"underline",children:"UI"}),e[19]=_,e[20]=N):N=e[20];let k,y;e[21]===Symbol.for("react.memo_cache_sentinel")?(k=t.jsx(ee,{value:"prompts",variant:"underline",children:"Prompts"}),y=t.jsx(ee,{value:"resources",variant:"underline",children:"Resources"}),e[21]=k,e[22]=y):(k=e[21],y=e[22]);let C;e[23]!==S||e[24]!==N?(C=t.jsx("div",{className:"px-5 flex items-center justify-between border-b border-border",children:t.jsxs(Ct,{variant:"underline",className:"gap-1",children:[S,N,k,y]})}),e[23]=S,e[24]=N,e[25]=C):C=e[25];let I;e[26]!==b||e[27]!==n?(I=n.length>0?n.map(x=>t.jsxs("button",{type:"button",className:"w-full flex items-start gap-3 px-5 py-3 text-left hover:bg-muted/40 transition-colors cursor-pointer",onClick:()=>b(x.name),children:[t.jsx("div",{className:"mt-0.5 shrink-0 size-7 rounded-md bg-muted flex items-center justify-center",children:t.jsx(At,{size:13,className:"text-muted-foreground"})}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("div",{className:"text-sm font-medium text-foreground",children:Te(x.name)}),x.description&&t.jsx("div",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed line-clamp-2",children:x.description})]}),t.jsx(Ce,{size:16,className:"text-muted-foreground shrink-0 mt-0.5"})]},x.name)):t.jsx(ie,{label:"tools"}),e[26]=b,e[27]=n,e[28]=I):I=e[28];let h;e[29]!==I?(h=t.jsx(te,{value:"tools",className:"h-auto",children:t.jsx("div",{className:"divide-y divide-border",children:I})}),e[29]=I,e[30]=h):h=e[30];let A;e[31]!==o||e[32]!==_||e[33]!==r||e[34]!==n?(A=_&&t.jsx(te,{value:"apps",className:"h-auto min-h-[200px]",children:t.jsx(os,{tools:n,connectionId:o,org:r})}),e[31]=o,e[32]=_,e[33]=r,e[34]=n,e[35]=A):A=e[35];let M;e[36]!==m?(M=m.length>0?m.map(ls):t.jsx(ie,{label:"prompts"}),e[36]=m,e[37]=M):M=e[37];let O;e[38]!==M?(O=t.jsx(te,{value:"prompts",className:"h-auto",children:t.jsx("div",{className:"divide-y divide-border",children:M})}),e[38]=M,e[39]=O):O=e[39];let T;e[40]!==u?(T=u.length>0?u.map(as):t.jsx(ie,{label:"resources"}),e[40]=u,e[41]=T):T=e[41];let z;e[42]!==T?(z=t.jsx(te,{value:"resources",className:"h-auto",children:t.jsx("div",{className:"divide-y divide-border",children:T})}),e[42]=T,e[43]=z):z=e[43];let E;return e[44]!==C||e[45]!==h||e[46]!==A||e[47]!==O||e[48]!==z?(E=t.jsx("div",{className:"rounded-xl border border-border bg-card overflow-hidden",children:t.jsxs(wt,{defaultValue:"tools",variant:"underline",children:[C,h,A,O,z]})}),e[44]=C,e[45]=h,e[46]=A,e[47]=O,e[48]=z,e[49]=E):E=e[49],E}function as(s){return t.jsxs("div",{className:"flex items-start gap-3 px-5 py-3",children:[t.jsx("div",{className:"mt-0.5 shrink-0 size-7 rounded-md bg-muted flex items-center justify-center",children:t.jsx(Tt,{size:13,className:"text-muted-foreground"})}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("div",{className:"text-sm font-medium text-foreground",children:s.name}),s.description&&t.jsx("div",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed line-clamp-2",children:s.description}),s.uri&&t.jsx("div",{className:"text-xs text-muted-foreground/60 font-mono mt-0.5 truncate",children:s.uri})]})]},s.uri??s.name)}function ls(s){return t.jsxs("div",{className:"flex items-start gap-3 px-5 py-3",children:[t.jsx("div",{className:"mt-0.5 shrink-0 size-7 rounded-md bg-muted flex items-center justify-center",children:t.jsx(kt,{size:13,className:"text-muted-foreground"})}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("div",{className:"text-sm font-medium text-foreground",children:Te(s.name)}),s.description&&t.jsx("div",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed line-clamp-2",children:s.description})]})]},s.name)}function cs(s){return ae(s._meta)}function ds(s){const e=P.c(13),{connection:n,displayTitle:i}=s,a=i??n.title;let o;e[0]!==n.icon||e[1]!==a?(o=t.jsx(oe,{icon:n.icon,name:a,size:"xl",className:"shrink-0"}),e[0]=n.icon,e[1]=a,e[2]=o):o=e[2];let r;e[3]!==a?(r=t.jsx("div",{className:"flex flex-wrap items-center gap-2 mb-2",children:t.jsx("h1",{className:"text-lg md:text-xl font-semibold tracking-tight text-foreground leading-none",children:a})}),e[3]=a,e[4]=r):r=e[4];let c;e[5]!==n.description?(c=n.description&&t.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed line-clamp-2",children:n.description}),e[5]=n.description,e[6]=c):c=e[6];let m;e[7]!==r||e[8]!==c?(m=t.jsxs("div",{className:"flex-1 min-w-0",children:[r,c]}),e[7]=r,e[8]=c,e[9]=m):m=e[9];let d;return e[10]!==o||e[11]!==m?(d=t.jsxs("div",{className:"flex items-center gap-4 md:gap-6 py-5 md:py-7 px-4 md:px-8 bg-background border-b border-border shrink-0",children:[o,m]}),e[10]=o,e[11]=m,e[12]=d):d=e[12],d}function ms({form:s,connection:e,hasOAuthToken:n,onReauthenticate:i,onRemoveOAuth:a}){const o=de({control:s.control,name:"ui_type"}),r=de({control:s.control,name:"connection_url"}),{stdioEnabled:c}=Pe(),m=(()=>{if(typeof r!="string"||!r)return!1;try{const l=new URL(r);return l.hostname==="api.githubcopilot.com"&&l.pathname.replace(/\/+$/,"")==="/mcp"}catch{return!1}})(),d=c||e.connection_type==="STDIO",u=e.connection_type==="VIRTUAL",p=u?Oe(e.connection_url):null;return u?t.jsxs("div",{className:"flex flex-col gap-4",children:[t.jsxs("div",{className:"flex flex-col gap-3",children:[t.jsx("span",{className:"text-xs text-muted-foreground font-medium",children:"Type"}),t.jsxs("div",{className:"flex items-center gap-2 h-10 px-3 border border-border rounded-lg bg-muted/50",children:[t.jsx(we,{className:"w-4 h-4 text-muted-foreground"}),t.jsx("span",{className:"text-sm",children:"Virtual MCP"})]}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"This connection references a Virtual MCP. Tools and resources are aggregated dynamically from the Virtual MCP's underlying connections."})]}),p&&t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx("span",{className:"text-xs text-muted-foreground font-medium",children:"Virtual MCP ID"}),t.jsx("div",{className:"flex items-center gap-2 h-10 px-3 border border-border rounded-lg bg-muted/50",children:t.jsx("code",{className:"text-sm text-muted-foreground",children:p})})]})]}):t.jsxs("div",{className:"flex flex-col gap-4",children:[t.jsx(R,{control:s.control,name:"ui_type",render:({field:l})=>t.jsxs(L,{className:"flex flex-col gap-3",children:[t.jsx(H,{className:"text-xs text-muted-foreground font-medium",children:"Connection"}),o!=="NPX"&&o!=="STDIO"?t.jsxs("div",{className:"flex items-stretch rounded-lg border border-border overflow-hidden",children:[t.jsxs(ue,{value:l.value,onValueChange:l.onChange,children:[t.jsx(V,{children:t.jsxs(xe,{className:"h-full! w-auto min-w-[90px] border-0 rounded-none bg-muted/50 focus:ring-0 focus:ring-offset-0",children:[t.jsx(se,{className:"w-4 h-4 text-muted-foreground shrink-0"}),t.jsx(pe,{})]})}),t.jsxs(fe,{children:[t.jsx(F,{value:"HTTP",children:"HTTP"}),t.jsx(F,{value:"SSE",children:"SSE"}),t.jsx(F,{value:"Websocket",children:"Websocket"}),d&&t.jsxs(t.Fragment,{children:[t.jsx(F,{value:"NPX",children:"NPX Package"}),t.jsx(F,{value:"STDIO",children:"Custom Command"})]})]})]}),t.jsx("div",{className:"w-px bg-border"}),t.jsx(R,{control:s.control,name:"connection_url",render:({field:f})=>t.jsx(L,{className:"flex-1 min-w-0",children:t.jsx(V,{children:t.jsx(W,{placeholder:"https://example.com/mcp",...f,value:f.value??"",className:"h-10 border-0 rounded-none focus-visible:ring-0 focus-visible:ring-offset-0 bg-transparent"})})})})]}):t.jsxs(ue,{value:l.value,onValueChange:l.onChange,children:[t.jsx(V,{children:t.jsx(xe,{className:"h-10",children:t.jsx(pe,{})})}),t.jsxs(fe,{children:[t.jsx(F,{value:"HTTP",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(se,{className:"w-4 h-4"}),"HTTP"]})}),t.jsx(F,{value:"SSE",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(se,{className:"w-4 h-4"}),"SSE"]})}),t.jsx(F,{value:"Websocket",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(se,{className:"w-4 h-4"}),"Websocket"]})}),d&&t.jsxs(t.Fragment,{children:[t.jsx(F,{value:"NPX",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(Ut,{className:"w-4 h-4"}),"NPX Package"]})}),t.jsx(F,{value:"STDIO",children:t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx(It,{className:"w-4 h-4"}),"Custom Command"]})})]})]})]}),t.jsx(B,{})]})}),o==="NPX"&&t.jsx(R,{control:s.control,name:"npx_package",render:({field:l})=>t.jsxs(L,{className:"flex flex-col gap-3",children:[t.jsx(H,{className:"text-xs text-muted-foreground font-medium",children:"NPM Package"}),t.jsx(V,{children:t.jsx(W,{placeholder:"@perplexity-ai/mcp-server",...l,value:l.value||"",className:"h-10 rounded-lg"})}),t.jsx(B,{})]})}),o==="STDIO"&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[t.jsx(R,{control:s.control,name:"stdio_command",render:({field:l})=>t.jsxs(L,{className:"flex flex-col gap-3",children:[t.jsx(H,{className:"text-xs text-muted-foreground font-medium",children:"Command"}),t.jsx(V,{children:t.jsx(W,{placeholder:"node, bun, python...",...l,value:l.value||"",className:"h-10 rounded-lg"})}),t.jsx(B,{})]})}),t.jsx(R,{control:s.control,name:"stdio_args",render:({field:l})=>t.jsxs(L,{className:"flex flex-col gap-3",children:[t.jsx(H,{className:"text-xs text-muted-foreground font-medium",children:"Arguments"}),t.jsx(V,{children:t.jsx(W,{placeholder:"arg1 arg2 --flag value",...l,value:l.value||"",className:"h-10 rounded-lg"})}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"Space-separated arguments"}),t.jsx(B,{})]})})]}),t.jsx(R,{control:s.control,name:"stdio_cwd",render:({field:l})=>t.jsxs(L,{className:"flex flex-col gap-3",children:[t.jsx(H,{className:"text-xs text-muted-foreground font-medium",children:"Working Directory"}),t.jsx(V,{children:t.jsx(W,{placeholder:"/path/to/project (optional)",...l,value:l.value||"",className:"h-10 rounded-lg"})}),t.jsx(B,{})]})})]}),(o==="NPX"||o==="STDIO")&&t.jsx(R,{control:s.control,name:"env_vars",render:({field:l})=>t.jsxs(L,{className:"flex flex-col gap-3",children:[t.jsx(H,{className:"text-xs text-muted-foreground font-medium",children:"Environment Variables"}),t.jsx(V,{children:t.jsx(Be,{value:l.value??[],onChange:l.onChange})}),t.jsx(B,{})]})}),o!=="NPX"&&o!=="STDIO"&&t.jsx(R,{control:s.control,name:"connection_token",render:({field:l})=>t.jsxs(L,{className:"flex flex-col gap-3",children:[t.jsx(H,{className:"text-xs text-muted-foreground font-medium",children:m?"GitHub Personal Access Token":"Token"}),n?t.jsx("div",{className:"flex items-center gap-2",children:t.jsxs(Ot,{children:[t.jsx(Mt,{asChild:!0,children:t.jsx("button",{type:"button",className:"inline-flex items-center gap-1.5 cursor-pointer",children:t.jsxs(Pt,{variant:"success",className:"gap-1.5",children:[t.jsx(Vt,{size:12}),"Authenticated via OAuth",t.jsx(Et,{size:12})]})})}),t.jsxs(zt,{align:"start",children:[t.jsxs(me,{onClick:i,children:[t.jsx(Ft,{size:16}),"Re-authenticate"]}),t.jsxs(me,{variant:"destructive",onClick:a,children:[t.jsx(le,{size:16}),"Remove OAuth"]})]})]})}):e.connection_token&&l.value===null?t.jsxs("div",{className:"relative group",children:[t.jsx("div",{className:"h-10 px-3 flex items-center rounded-lg border border-border bg-muted/50 text-muted-foreground font-mono text-sm",children:"••••••••••••••••"}),t.jsx("button",{type:"button",onClick:()=>l.onChange(""),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1 rounded hover:bg-muted opacity-0 group-hover:opacity-100 transition-opacity",title:"Clear and replace token",children:t.jsx(Rt,{size:14,className:"text-muted-foreground"})})]}):t.jsxs(t.Fragment,{children:[t.jsx(V,{children:t.jsx(W,{type:"password",placeholder:m?"Paste your GitHub PAT":"Enter access token...",...l,value:l.value||"",className:"h-10 rounded-lg"})}),m&&t.jsxs(ut,{children:["Create a PAT at"," ",t.jsx("a",{href:"https://github.com/settings/personal-access-tokens",target:"_blank",rel:"noopener noreferrer",className:"underline",children:"github.com/settings/personal-access-tokens"})]})]}),t.jsx(B,{})]})})]})}function us(s){return s.command==="npx"}function xs(s){return s.args?.find(e=>!e.startsWith("-"))??""}function ps(s){return{command:s.command,args:s.args?.join(" ")??"",cwd:s.cwd??""}}function he(s,e){const n={title:s.title,description:s.description??"",icon:s.icon??null,configuration_state:s.configuration_state??{},configuration_scopes:s.configuration_scopes||[]};if(s.connection_type==="STDIO"&&Re(s.connection_headers)){const i=s.connection_headers,a=We(i.envVars);if(us(i)){const r=xs(i);return{...n,ui_type:"NPX",connection_url:"",connection_token:null,npx_package:r,stdio_command:"",stdio_args:"",stdio_cwd:"",env_vars:a}}const o=ps(i);return{...n,ui_type:"STDIO",connection_url:"",connection_token:null,npx_package:"",stdio_command:o.command,stdio_args:o.args,stdio_cwd:o.cwd,env_vars:a}}return{...n,ui_type:s.connection_type,connection_url:s.connection_url??"",connection_token:null,npx_package:"",stdio_command:"",stdio_args:"",stdio_cwd:"",env_vars:[]}}function fs(s){let e,n=null,i=null,a=null;return s.ui_type==="NPX"?(e="STDIO",n="",a=Xe(s.npx_package||"",s.env_vars||[])):s.ui_type==="STDIO"?(e="STDIO",n="",a=qe(s.stdio_command||"",s.stdio_args||"",s.stdio_cwd,s.env_vars||[])):(e=s.ui_type,n=s.connection_url||"",i=s.connection_token||null),{title:s.title,description:s.description||null,icon:s.icon??null,connection_type:e,connection_url:n,...i&&{connection_token:i},...a&&{connection_headers:a},configuration_state:s.configuration_state??null,configuration_scopes:s.configuration_scopes??null}}function hs({connection:s,connectionId:e,org:n,isUpdating:i,tools:a,prompts:o,resources:r,siblings:c}){const m=Y({from:"/$org/settings/connections/$appSlug"}),d=Ve(),u=_e(),{org:p}=J(),l=pt({onSuccess:()=>{c.length<=1&&m({to:"/$org/settings/connections",params:{org:n}})}}),[f,g]=X.useState(null),[v,b]=X.useState(!1),j=Ne({connectionId:e}),{data:_}=Ye(),w=_?.data?.members??[],S=f??s,N=w.find(x=>x.userId===S.created_by),y=s?.connection_type==="VIRTUAL"||j.isAuthenticated,C={...s,tools:a},I=Ke(C,Ht),h=Ee({resolver:Ue(Ge),values:he(f??s)}),A=h.formState.isDirty,M=async()=>{if(!await h.trigger())return;const $=h.getValues(),D=fs($),U=f?.id??e;await u.update.mutateAsync({id:U,data:D}),h.reset($)},O=()=>{h.reset(he(f??s))},T=async x=>{const{token:$,tokenInfo:D,error:U}=await Le({connectionId:x,orgSlug:p.slug,scope:"offline_access"});if(U||!$){Q.error(`Authentication failed: ${U}`);return}if(D)try{const q=await fetch(`/api/${p.slug}/connections/${x}/oauth-token`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({accessToken:D.accessToken,refreshToken:D.refreshToken,expiresIn:D.expiresIn,scope:D.scope,clientId:D.clientId,clientSecret:D.clientSecret,tokenEndpoint:D.tokenEndpoint})});if(!q.ok)console.error("Failed to save OAuth token:",await q.text()),await u.update.mutateAsync({id:x,data:{connection_token:$}});else try{await u.update.mutateAsync({id:x,data:{}})}catch(Z){console.warn("Failed to refresh connection tools after OAuth:",Z)}}catch(q){console.error("Error saving OAuth token:",q),await u.update.mutateAsync({id:x,data:{connection_token:$}})}else await u.update.mutateAsync({id:x,data:{connection_token:$}});const K=new URL(`/api/${p.slug}/mcp/${x}`,window.location.origin);await d.invalidateQueries({queryKey:ne.isMCPAuthenticated(K.href,null)}),await d.invalidateQueries({queryKey:ne.mcpClientPrefix()}),Q.success("Authentication successful")},z=()=>T(s.id),E=async()=>{try{const x=await fetch(`/api/${p.slug}/connections/${s.id}/oauth-token`,{method:"DELETE",credentials:"include"});if(!x.ok){const D=await x.text();Q.error(`Failed to remove OAuth: ${D}`);return}const $=new URL(`/api/${p.slug}/mcp/${s.id}`,window.location.origin);await d.invalidateQueries({queryKey:ne.isMCPAuthenticated($.href,null)}),Q.success("OAuth removed. You can now re-authenticate with a different account.")}catch(x){console.error("Error removing OAuth token:",x),Q.error("Failed to remove OAuth")}};return t.jsxs(t.Fragment,{children:[t.jsx(ft,{...l}),t.jsx(at,{open:f!==null,onOpenChange:x=>{x||g(null)},children:t.jsxs(lt,{side:"right",className:"sm:max-w-[520px] p-0 flex flex-col gap-0 overflow-hidden",children:[t.jsxs(ct,{className:"px-4 py-3 md:px-6 md:py-4 border-b border-border shrink-0",children:[t.jsx(dt,{className:"text-base",children:f?.title??s.title}),t.jsx(mt,{className:"text-xs",children:"Update URL, authentication, and other settings"}),N&&t.jsxs("div",{className:"flex items-center gap-1.5 pt-1",children:[t.jsx("span",{className:"text-xs text-muted-foreground",children:"Connected by"}),t.jsx(Ze,{url:N.user?.image??void 0,fallback:N.user?.name??N.user?.email??"?",size:"3xs",shape:"circle"}),t.jsx("span",{className:"text-xs font-medium text-foreground",children:N.user?.name||N.user?.email})]})]}),t.jsxs(xt,{...h,children:[t.jsxs("div",{className:"flex-1 overflow-y-auto px-4 py-3 md:px-6 md:py-5 flex flex-col gap-4 md:gap-6",children:[t.jsxs("div",{className:"flex flex-col gap-3 md:gap-4",children:[t.jsx(R,{control:h.control,name:"title",render:({field:x})=>t.jsxs(L,{children:[t.jsx(H,{children:"Name"}),t.jsx(V,{children:t.jsx(W,{...x})}),t.jsx(B,{})]})}),t.jsx(R,{control:h.control,name:"description",render:({field:x})=>t.jsxs(L,{children:[t.jsx(H,{children:"Description"}),t.jsx(V,{children:t.jsx(W,{...x,value:x.value||""})}),t.jsx(B,{})]})})]}),t.jsx(ms,{form:h,connection:f??s,hasOAuthToken:j.hasOAuthToken,onReauthenticate:z,onRemoveOAuth:E}),t.jsx(Qe,{connection:f??s,form:h,hasMcpBinding:I,isMCPAuthenticated:y,supportsOAuth:j.supportsOAuth,isServerError:j.isServerError,onAuthenticate:z,onViewReadme:void 0})]}),t.jsxs("div",{className:"px-6 py-4 border-t border-border flex gap-2 shrink-0",children:[t.jsx(G,{onClick:M,disabled:!A||i,className:"flex-1",children:i?"Saving…":"Save changes"}),A&&t.jsx(G,{variant:"outline",onClick:O,children:"Undo"}),t.jsxs(G,{variant:"outline",className:"gap-2 text-muted-foreground hover:text-destructive hover:border-destructive",onClick:()=>{const x=f??s;g(null),l.requestDelete(x)},children:[t.jsx(le,{size:15}),"Delete"]})]})]},f?.id??s.id)]})}),t.jsx(ht,{hideHeader:!0,children:t.jsxs("div",{className:"flex flex-col h-full overflow-hidden",children:[t.jsx(ds,{connection:s,displayTitle:(()=>{const x=c[0]??s;return x.app_name?x.title.replace(/\s*\(\d+\)\s*$/,""):x.title})()}),t.jsx("div",{className:"flex-1 overflow-auto @container",children:t.jsxs("div",{className:"grid grid-cols-1 @3xl:grid-cols-2 gap-5 p-6",children:[t.jsx(es,{connectionId:e}),t.jsxs("div",{className:"flex flex-col gap-5",children:[t.jsx(Wt,{instances:c,onConfigure:x=>g(x),onAuthenticate:x=>T(x.id),onDelete:x=>l.requestDelete(x),isAdding:v,onAdd:async()=>{b(!0);try{const x=c[0]??s,$=x.title.replace(/\s*\(\d+\)\s*$/,""),D=c.length+1,U=`${$} (${D})`,K=He("conn");await u.create.mutateAsync({id:K,title:U,description:x.description??null,connection_type:x.connection_type,connection_url:x.connection_url??null,connection_token:null,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),created_by:x.created_by,organization_id:x.organization_id,icon:x.icon??null,app_name:x.app_name??null,app_id:x.app_id??null,connection_headers:x.connection_headers??null,oauth_config:null,configuration_state:x.configuration_state??null,metadata:null,tools:null,bindings:null,status:"inactive"});const q=new URL(`/api/${p.slug}/mcp/${K}`,window.location.origin),Z=await Fe({url:q.href,token:null,orgId:p.id});Z.supportsOAuth&&!Z.isAuthenticated&&await T(K)}finally{b(!1)}}}),t.jsx(ns,{connection:s})]}),t.jsx("div",{className:"@3xl:col-span-2",children:t.jsx(rs,{tools:a,prompts:o,resources:r,connectionId:e,org:n})})]})})]})})]})}function gs(){const s=P.c(39);let e;s[0]===Symbol.for("react.memo_cache_sentinel")?(e={from:"/$org/settings/connections/$appSlug"},s[0]=e):e=s[0];const n=Y(e);let i;s[1]===Symbol.for("react.memo_cache_sentinel")?(i={from:"/shell/$org/settings/connections/$appSlug"},s[1]=i):i=s[1];const{appSlug:a,org:o}=ze(i),{org:r}=J(),c=_e();let m;s[2]!==a?(m={slug:a},s[2]=a,s[3]=m):m=s[3];const d=et(m),u=d[0]??null,p=u?.id??"",l=p||null;let f;s[4]!==r.id||s[5]!==r.slug||s[6]!==l?(f={connectionId:l,orgId:r.id,orgSlug:r.slug},s[4]=r.id,s[5]=r.slug,s[6]=l,s[7]=f):f=s[7];const g=re(f);let v;s[8]!==g?(v={client:g},s[8]=g,s[9]=v):v=s[9];const{data:b}=st(v);let j;if(s[10]!==u?.tools||s[11]!==p||s[12]!==d||s[13]!==b){const T=b?b.tools.map(_s):(u?.tools??[]).map(ys);e:{if(d.length<=1){j=T;break e}const z=new Set,E=[],x=bs;for(const $ of d){const D=$.id===p?T:x($.tools);for(const U of D)z.has(U.name)||(z.add(U.name),E.push(U))}j=E.length>0?E:T}s[10]=u?.tools,s[11]=p,s[12]=d,s[13]=b,s[14]=j}else j=s[14];const _=j;let w;s[15]!==g?(w={client:g},s[15]=g,s[16]=w):w=s[16];const{data:S}=it(w);let N;s[17]!==g?(N={client:g},s[17]=g,s[18]=N):N=s[18];const{data:k}=ot(N);let y;s[19]!==S?.prompts?(y=S?.prompts??[],s[19]=S?.prompts,s[20]=y):y=s[20];let C;s[21]!==y?(C=y.map(vs),s[21]=y,s[22]=C):C=s[22];const I=C;let h;s[23]!==k?.resources?(h=k?.resources??[],s[23]=k?.resources,s[24]=h):h=s[24];let A;s[25]!==h?(A=h.map(js),s[25]=h,s[26]=A):A=s[26];const M=A;if(!u){let T;return s[27]!==n||s[28]!==o?(T=t.jsx("div",{className:"flex h-full w-full bg-background",children:t.jsx(be,{title:"Connection not found",description:"This connection may have been deleted or you may not have access.",actions:t.jsx(G,{variant:"outline",onClick:()=>n({to:"/$org/settings/connections",params:{org:o}}),children:"Back to connections"})})}),s[27]=n,s[28]=o,s[29]=T):T=s[29],T}let O;return s[30]!==c.update.isPending||s[31]!==_||s[32]!==u||s[33]!==p||s[34]!==o||s[35]!==I||s[36]!==M||s[37]!==d?(O=t.jsx(hs,{org:o,connection:u,connectionId:p,isUpdating:c.update.isPending,tools:_,prompts:I,resources:M,siblings:d}),s[30]=c.update.isPending,s[31]=_,s[32]=u,s[33]=p,s[34]=o,s[35]=I,s[36]=M,s[37]=d,s[38]=O):O=s[38],O}function js(s){return{name:s.name,description:s.description,uri:s.uri}}function vs(s){return{name:s.name,description:s.description}}function bs(s){return(s??[]).map(Ns)}function Ns(s){return{name:s.name,description:s.description,inputSchema:s.inputSchema??{},outputSchema:s.outputSchema,annotations:s.annotations,_meta:s._meta}}function ys(s){return{name:s.name,description:s.description,inputSchema:s.inputSchema,outputSchema:s.outputSchema,annotations:s.annotations,_meta:s._meta}}function _s(s){return{name:s.name,description:s.description,inputSchema:s.inputSchema,outputSchema:s.outputSchema,annotations:s.annotations,_meta:s._meta}}function Ss(){const s=P.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsx(Me,{children:t.jsx(X.Suspense,{fallback:t.jsx("div",{className:"flex h-full items-center justify-center bg-background",children:t.jsx(je,{size:32,className:"animate-spin text-muted-foreground"})}),children:t.jsx(gs,{})})}),s[0]=e):e=s[0],e}function ro(){const s=P.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsx(Ss,{}),s[0]=e):e=s[0],e}export{ro as default};