decocms 4.82.10 → 4.82.11

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 (236) hide show
  1. package/dist/client/assets/{AlertCircle-Cg4qoiWz.js → AlertCircle-B5S0Howv.js} +1 -1
  2. package/dist/client/assets/{AreaChart-gsjwnQvW.js → AreaChart-BqhmXRim.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-DIDhMMes.js → ArrowUp-C2Uom_QG.js} +1 -1
  4. package/dist/client/assets/{ArrowUpRight-Dfo1oYUZ.js → ArrowUpRight-CWABXTLe.js} +1 -1
  5. package/dist/client/assets/{Check-DIv-dGxz.js → Check-2hvdb-vm.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-U0Vlp-CW.js → CheckCircle-Dtlxzayc.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-C5eqqPy5.js → ChevronDown-BOF5C-lc.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-DT1jkDJt.js → ChevronRight-Gt0dyTZv.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-DA0Ph73d.js → ChevronUp-BgF4lo04.js} +1 -1
  10. package/dist/client/assets/{Circle-BKJ54_1V.js → Circle-WCex1xh9.js} +1 -1
  11. package/dist/client/assets/{Copy01-DMOKuNIY.js → Copy01-JoQTJv1g.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-B-ONpEpA.js → DotsVertical-D5iMp6bE.js} +1 -1
  13. package/dist/client/assets/{Eye-nKi2p_vh.js → Eye-u_eyLJkM.js} +1 -1
  14. package/dist/client/assets/{FilterLines-CI920w1J.js → FilterLines-9uIhD3OH.js} +1 -1
  15. package/dist/client/assets/{Flag01-CjPai73b.js → Flag01-B66NcKmx.js} +1 -1
  16. package/dist/client/assets/{Globe01-71kC9nOE.js → Globe01-BLXYE4Cy.js} +1 -1
  17. package/dist/client/assets/{Globe04-2SICI3JV.js → Globe04-f79X3HKE.js} +1 -1
  18. package/dist/client/assets/{HardDrive-CSO1_PPU.js → HardDrive-al9D_s63.js} +1 -1
  19. package/dist/client/assets/{Image01-BV14ewtV.js → Image01-DVYnawJP.js} +1 -1
  20. package/dist/client/assets/{Key01-DACMjhDA.js → Key01-TX-oFrbw.js} +1 -1
  21. package/dist/client/assets/{LayoutLeft-sVpXHh25.js → LayoutLeft-C1tijNFg.js} +1 -1
  22. package/dist/client/assets/{LinkExternal01-DXaAz7K7.js → LinkExternal01-B0gcEmkE.js} +1 -1
  23. package/dist/client/assets/{List-IESWrJoX.js → List-LBmnlI0P.js} +1 -1
  24. package/dist/client/assets/{Monitor01-8Qobs8Ic.js → Monitor01-CdKZX-bL.js} +1 -1
  25. package/dist/client/assets/{Package-VfQDcgYA.js → Package-CMkd2sHI.js} +1 -1
  26. package/dist/client/assets/{Palette-CQAxN7l0.js → Palette-Q_tRuOMf.js} +1 -1
  27. package/dist/client/assets/{Play-CXoiR0xu.js → Play-Bm9V641L.js} +1 -1
  28. package/dist/client/assets/{Plus-D8AX27NV.js → Plus-Bt0qDPEV.js} +1 -1
  29. package/dist/client/assets/{SearchLg-Bkk7ae-P.js → SearchLg-DSuw112A.js} +1 -1
  30. package/dist/client/assets/{SearchMd-NXu81LIY.js → SearchMd-CVmGoUfY.js} +1 -1
  31. package/dist/client/assets/{Settings02-CNbUFAVD.js → Settings02-C28ltUF9.js} +1 -1
  32. package/dist/client/assets/{Shield01-BmRwiE3O.js → Shield01-Bxz1cNPl.js} +1 -1
  33. package/dist/client/assets/{Star01-D4f6PiLu.js → Star01-ijVxXmb8.js} +1 -1
  34. package/dist/client/assets/{Stars01-BSJYRNob.js → Stars01-yVlwMkQy.js} +1 -1
  35. package/dist/client/assets/{Stars02-CR0lj8_y.js → Stars02-ClLIxwPM.js} +1 -1
  36. package/dist/client/assets/{Sun-CRPl6QU-.js → Sun-BHNbv08f.js} +1 -1
  37. package/dist/client/assets/{SwitchHorizontal01-B3WWIg6i.js → SwitchHorizontal01-DEvDgDFu.js} +1 -1
  38. package/dist/client/assets/{Tool01-CHgj6pIe.js → Tool01-MVmzVfJA.js} +1 -1
  39. package/dist/client/assets/{Tool02-61tv__bJ.js → Tool02-B4J4k_Jq.js} +1 -1
  40. package/dist/client/assets/{Trash01-CbinWkTf.js → Trash01-D3uneq9V.js} +1 -1
  41. package/dist/client/assets/{TrendUp01-8HO-BF8N.js → TrendUp01-BnB7HNcK.js} +1 -1
  42. package/dist/client/assets/{Upload01-DmBJCJki.js → Upload01-Dz_C9C_o.js} +1 -1
  43. package/dist/client/assets/{User01-DjTalNR9.js → User01-B21uLVgH.js} +1 -1
  44. package/dist/client/assets/{UserPlus01-Djcw6Jn4.js → UserPlus01-B1r5BrnS.js} +1 -1
  45. package/dist/client/assets/{Users01-BbtAkV61.js → Users01-DS-6elOB.js} +1 -1
  46. package/dist/client/assets/{Users03-DRY-QRJA.js → Users03-5UfvMRx2.js} +1 -1
  47. package/dist/client/assets/{X-BHW4gPR6.js → X-CuXL2cLN.js} +1 -1
  48. package/dist/client/assets/{XCircle-ubYr4Www.js → XCircle-Bqih3VAo.js} +1 -1
  49. package/dist/client/assets/{XClose-BwfJq7h2.js → XClose-DEI4maVJ.js} +1 -1
  50. package/dist/client/assets/{Zap-BLB3cWiX.js → Zap-CbZARwtr.js} +1 -1
  51. package/dist/client/assets/{ZapSquare-COXLUeZ5.js → ZapSquare-DntY_gJw.js} +1 -1
  52. package/dist/client/assets/{ZoomOut-Bh9S5Ueg.js → ZoomOut-CUl1mvu1.js} +1 -1
  53. package/dist/client/assets/{access-gate-kNH7MRnn.js → access-gate-DDYRYhpb.js} +1 -1
  54. package/dist/client/assets/{add-section-modal-CFnbUGqC.js → add-section-modal-D3akZWgZ.js} +1 -1
  55. package/dist/client/assets/{agent-icon-D-5Gg9JV.js → agent-icon-BD0Dhqds.js} +1 -1
  56. package/dist/client/assets/{agents-list-9QogJhVK.js → agents-list-BYgzGNrl.js} +1 -1
  57. package/dist/client/assets/{ai-providers-GmdYhCQd.js → ai-providers-CC2a0KaA.js} +1 -1
  58. package/dist/client/assets/{alert-dialog-BHm_mdG2.js → alert-dialog-YVSboGyg.js} +1 -1
  59. package/dist/client/assets/{alert-BZ9UZxwU.js → alert-r0EE7buF.js} +1 -1
  60. package/dist/client/assets/{app-editor-CIPVRb5Y.js → app-editor-D3NrrquY.js} +1 -1
  61. package/dist/client/assets/{auth-C1FSEBU-.js → auth-CQTZH4-O.js} +1 -1
  62. package/dist/client/assets/{auth-catchall-C-86Nd3A.js → auth-catchall-DjuiYYzw.js} +1 -1
  63. package/dist/client/assets/{auth-entry-C4l2WPuj.js → auth-entry-CsE0cCZS.js} +1 -1
  64. package/dist/client/assets/{auth-split-layout-CoI1R0ms.js → auth-split-layout-BXWnGvvD.js} +1 -1
  65. package/dist/client/assets/{authenticate-and-persist-oauth-m1J8hayM.js → authenticate-and-persist-oauth-BWBUH6FO.js} +1 -1
  66. package/dist/client/assets/{automation-list-row-CoG1w-F4.js → automation-list-row-mah_f33i.js} +1 -1
  67. package/dist/client/assets/{automation-runs-ab1rPxxu.js → automation-runs-CI_DXiSg.js} +1 -1
  68. package/dist/client/assets/automations-Bo6bbj7e.js +1 -0
  69. package/dist/client/assets/{autosend-DaAKP_-u.js → autosend-Cy6yTFx0.js} +1 -1
  70. package/dist/client/assets/{avatar-sUmlqKQK.js → avatar-B26L6f3M.js} +1 -1
  71. package/dist/client/assets/{badge-BWa_ORav.js → badge-Cagw1NWA.js} +1 -1
  72. package/dist/client/assets/{block-document-DYdtuDR4.js → block-document-4o_mZ5Wu.js} +1 -1
  73. package/dist/client/assets/{brand-context-Bw9CoF0p.js → brand-context-BIWhPFQh.js} +1 -1
  74. package/dist/client/assets/{buckets-kvURdhpY.js → buckets-CYkE09pb.js} +1 -1
  75. package/dist/client/assets/{bulk-category-panel-Bd2fBwYJ.js → bulk-category-panel-D6Gvn6u4.js} +1 -1
  76. package/dist/client/assets/{calendar-Dh5azEIt.js → calendar-C3xMag-0.js} +1 -1
  77. package/dist/client/assets/{capability-load-error-IR5AcVGy.js → capability-load-error-zjT6zavB.js} +1 -1
  78. package/dist/client/assets/{card-By2f0T8D.js → card-DaWNzsoz.js} +1 -1
  79. package/dist/client/assets/{category-editor-9r6Z3dxc.js → category-editor-BdTKt4Wb.js} +1 -1
  80. package/dist/client/assets/{chat-context-CQntUhx-.js → chat-context-DsgMhUkR.js} +1 -1
  81. package/dist/client/assets/{checkbox-BOV4sqwp.js → checkbox-Bfo0_7OX.js} +1 -1
  82. package/dist/client/assets/{cli-auth-success-Ieq0kwYz.js → cli-auth-success-CXRXasyO.js} +1 -1
  83. package/dist/client/assets/{collection-detail-l-BHlfGo.js → collection-detail-DN9ZxScE.js} +1 -1
  84. package/dist/client/assets/{collection-display-button--Xn_FinS.js → collection-display-button-BKjWwtNp.js} +1 -1
  85. package/dist/client/assets/{collection-search-CQvlMIX6.js → collection-search-B1Ombzts.js} +1 -1
  86. package/dist/client/assets/{collection-table-wrapper-xNH5UsF3.js → collection-table-wrapper-X2s9eJ1l.js} +1 -1
  87. package/dist/client/assets/{collection-tabs-CYPVXeHO.js → collection-tabs-WaSVL-dS.js} +1 -1
  88. package/dist/client/assets/{command-BDJ7sg4x.js → command-Cn83qANG.js} +1 -1
  89. package/dist/client/assets/{commerce-onboarding-TKmqTiG3.js → commerce-onboarding-BuAsGrLS.js} +1 -1
  90. package/dist/client/assets/{companions-core-Cttz1Mxa.js → companions-core-DekO4Tau.js} +1 -1
  91. package/dist/client/assets/{connect-desktop-dialog-C7QY70Tg.js → connect-desktop-dialog-IeFRacue.js} +1 -1
  92. package/dist/client/assets/{connection-card-BVGxG5fV.js → connection-card-CGYwJ0pB.js} +1 -1
  93. package/dist/client/assets/{connection-detail-C085M0xS.js → connection-detail-CeB50ytn.js} +1 -1
  94. package/dist/client/assets/{connection-form-helpers-AkKpqAlO.js → connection-form-helpers-CmcaSfzc.js} +1 -1
  95. package/dist/client/assets/{connections-JBv0d-85.js → connections-CfHN_-P2.js} +1 -1
  96. package/dist/client/assets/{decopilot-sse-pool-DNBbIaTi.js → decopilot-sse-pool-DZSk4S2t.js} +1 -1
  97. package/dist/client/assets/{dialog-obSamr61.js → dialog-B71p2x2p.js} +1 -1
  98. package/dist/client/assets/{domain-settings-DylqpYzv.js → domain-settings-B8r_-ck2.js} +1 -1
  99. package/dist/client/assets/{drawer-B7iDLQr1.js → drawer-Do-PSohO.js} +1 -1
  100. package/dist/client/assets/{dropdown-menu-DB5tXQFg.js → dropdown-menu-CCDOmXjQ.js} +1 -1
  101. package/dist/client/assets/{empty-state-DYg-hSr1.js → empty-state-pDQBZsd9.js} +1 -1
  102. package/dist/client/assets/{extract-connection-data-2uIWf8Da.js → extract-connection-data-DZ42iEpK.js} +1 -1
  103. package/dist/client/assets/{file-explorer-HfajjaNv.js → file-explorer-BDF4Y5o5.js} +1 -1
  104. package/dist/client/assets/{file-type-icon-D02NaZDP.js → file-type-icon-CrVWqTLg.js} +1 -1
  105. package/dist/client/assets/{files-C9XCVoiX.js → files-B3NTZjcB.js} +1 -1
  106. package/dist/client/assets/{form-ByU6GaXr.js → form-IQF2IyvU.js} +1 -1
  107. package/dist/client/assets/{general-DUfxVTun.js → general-CxQInQw2.js} +1 -1
  108. package/dist/client/assets/{github-repo-picker-8z8oGlYZ.js → github-repo-picker-DS0e520o.js} +1 -1
  109. package/dist/client/assets/{hooks-CFQPV6XS.js → hooks-Ce88nl_8.js} +1 -1
  110. package/dist/client/assets/{index-DB1-XyYj.js → index-B1f7loQR.js} +1 -1
  111. package/dist/client/assets/{index-DcAk4V_J.js → index-B3Lao2pE.js} +5 -5
  112. package/dist/client/assets/{index-B3lCv4-w.js → index-BB6iYbEk.js} +1 -1
  113. package/dist/client/assets/{index-CAvx8i2D.js → index-BQmin4cH.js} +1 -1
  114. package/dist/client/assets/{index-hQo5lqNA.js → index-BZJ9XJhj.js} +2 -2
  115. package/dist/client/assets/{index-CIMJYmLq.js → index-CP-UVMqF.js} +1 -1
  116. package/dist/client/assets/{index-FoQxtTRR.js → index-CdSATOtN.js} +1 -1
  117. package/dist/client/assets/{index-qZHtATCw.js → index-CoSY6fwz.js} +1 -1
  118. package/dist/client/assets/{index-DgDjIdax.js → index-D5mw-efR.js} +1 -1
  119. package/dist/client/assets/{index-CiTZomwH.js → index-DKGDY3AR.js} +1 -1
  120. package/dist/client/assets/{index-DjGsmD18.js → index-DdQdmhmf.js} +1 -1
  121. package/dist/client/assets/{index-IpPx4JSq.js → index-DpU56SgE.js} +1 -1
  122. package/dist/client/assets/{index-BQSp5uxs.js → index-JkzY1USm.js} +3 -3
  123. package/dist/client/assets/{index-redirect-DyaQLbfB.js → index-redirect-De-_NmXc.js} +1 -1
  124. package/dist/client/assets/{index-hjTXjxsA.js → index-tJkQ3pGR.js} +1 -1
  125. package/dist/client/assets/{input-to22H2Zi.js → input-typWdmM2.js} +1 -1
  126. package/dist/client/assets/{integration-icon-bYJBDKKm.js → integration-icon-CTpNPfCm.js} +1 -1
  127. package/dist/client/assets/{invite-member-dialog-CszqWqfl.js → invite-member-dialog-D3bZ7PY8.js} +1 -1
  128. package/dist/client/assets/{label-C0QiPq6C.js → label-6eYPMIMn.js} +1 -1
  129. package/dist/client/assets/{layout-D83Bp9Fu.js → layout-CTMgqxil.js} +1 -1
  130. package/dist/client/assets/{login-BQYFjCoy.js → login-s_mFeh5v.js} +1 -1
  131. package/dist/client/assets/{mcp-oauth-DqXItKFk.js → mcp-oauth-HL_Y9nO8.js} +1 -1
  132. package/dist/client/assets/{members-CDJ4rEnr.js → members-BL33Np9a.js} +1 -1
  133. package/dist/client/assets/{monaco-editor-CViOaXv4.js → monaco-editor-B1MWJFdI.js} +1 -1
  134. package/dist/client/assets/{monitoring-stats-row-DmbtVa5u.js → monitoring-stats-row-CAKSC2D3.js} +1 -1
  135. package/dist/client/assets/{multi-select-CxnEViRx.js → multi-select--lKhvO-B.js} +1 -1
  136. package/dist/client/assets/{oauth-callback-B5Hn38W6.js → oauth-callback-DCPcIBMz.js} +1 -1
  137. package/dist/client/assets/{oauth-callback-ai-provider-N-4-Ebq_.js → oauth-callback-ai-provider-5L_Z_1xs.js} +1 -1
  138. package/dist/client/assets/{onboarding-BX-c46Aw.js → onboarding-lSuasVhF.js} +1 -1
  139. package/dist/client/assets/{org-install-4wgg3FB4.js → org-install-BiDNis-e.js} +1 -1
  140. package/dist/client/assets/{org-layout-CL2MTIVK.js → org-layout-BxReJo9f.js} +1 -1
  141. package/dist/client/assets/{organization-choice-Bn2G9juW.js → organization-choice-CJNcxP4s.js} +1 -1
  142. package/dist/client/assets/{orgs-dVwOmdEO.js → orgs-Dcte6nVl.js} +1 -1
  143. package/dist/client/assets/{page-seo-form-CBbymff9.js → page-seo-form-Q5I4DhzQ.js} +1 -1
  144. package/dist/client/assets/page-seo-sheet-DJO-4Ve3.js +1 -0
  145. package/dist/client/assets/{popover-DGMdJwK8.js → popover--4QSfinM.js} +1 -1
  146. package/dist/client/assets/{post-editor-CtgsRGn5.js → post-editor-Y4xJXCQh.js} +1 -1
  147. package/dist/client/assets/{primitives-BhxS5BMN.js → primitives-BZ0jR3FH.js} +1 -1
  148. package/dist/client/assets/{profile-B0RGMExq.js → profile-BsKSKdiq.js} +1 -1
  149. package/dist/client/assets/project-app-view-BndTM51x.js +1 -0
  150. package/dist/client/assets/record-editor-BvebEElK.js +1 -0
  151. package/dist/client/assets/redirect-editor-DnWBgwhK.js +1 -0
  152. package/dist/client/assets/registry-Ci2-56YH.js +2 -0
  153. package/dist/client/assets/{registry-layout-BgOjPpnb.js → registry-layout-BJ3nc_ht.js} +1 -1
  154. package/dist/client/assets/{reports-Crdf1JT0.js → reports-BNm1jTDx.js} +1 -1
  155. package/dist/client/assets/{require-capability-BVljqE2b.js → require-capability-Bd1LXPXR.js} +1 -1
  156. package/dist/client/assets/{required-auth-layout-DVUL1Q-3.js → required-auth-layout-CLFVeE7_.js} +1 -1
  157. package/dist/client/assets/{reset-password-B4Q3OdkQ.js → reset-password-BtRqnFx3.js} +1 -1
  158. package/dist/client/assets/{roles-CRb0UWVf.js → roles-BFfEI8kY.js} +1 -1
  159. package/dist/client/assets/{search-input-hqKqBfvg.js → search-input-D9-x3yYV.js} +1 -1
  160. package/dist/client/assets/{secrets-DAw5Lpdp.js → secrets-Yg2E60R5.js} +1 -1
  161. package/dist/client/assets/{sections-editor-Dm5R7mMu.js → sections-editor-b1Ixv47y.js} +1 -1
  162. package/dist/client/assets/{select-Cu06pY37.js → select-Bd-q1yCw.js} +1 -1
  163. package/dist/client/assets/{select-model-DLd1tnQ2.js → select-model-K2oi5fLk.js} +1 -1
  164. package/dist/client/assets/{self-tool-result-BeNvDaoJ.js → self-tool-result-BiEjz1Ry.js} +1 -1
  165. package/dist/client/assets/{seo-editor-C2dlFRL6.js → seo-editor-CdjtqxtA.js} +1 -1
  166. package/dist/client/assets/{settings-layout-B_GoVooJ.js → settings-layout-5c1plOIU.js} +1 -1
  167. package/dist/client/assets/{settings-section-c7yqEp_q.js → settings-section-shb-u7Ue.js} +1 -1
  168. package/dist/client/assets/{shell-controls-B9RuGegy.js → shell-controls-BpqLtOsH.js} +1 -1
  169. package/dist/client/assets/{shell-layout-CiYmAEKl.js → shell-layout-BIqZZ6_U.js} +1 -1
  170. package/dist/client/assets/{sidebar-B-ekk9cl.js → sidebar-CfdFP1cX.js} +1 -1
  171. package/dist/client/assets/{skeleton-DjTGMkhu.js → skeleton-BN44BcrT.js} +1 -1
  172. package/dist/client/assets/{sso-BTbvCvjS.js → sso-BXhJwgt8.js} +1 -1
  173. package/dist/client/assets/{store-Cb4Jg6aV.js → store-BKjhBvgx.js} +1 -1
  174. package/dist/client/assets/store-registry-g5R_VlWb.js +2 -0
  175. package/dist/client/assets/{studio-tools-D2yT02z9.js → studio-tools-BbXlY124.js} +1 -1
  176. package/dist/client/assets/{switch-Besofl8J.js → switch-CuIkQ0ts.js} +1 -1
  177. package/dist/client/assets/{table-D5QwCQvu.js → table-BXIfO88i.js} +1 -1
  178. package/dist/client/assets/{tabs-ClVLrEyV.js → tabs-7EuH5ewS.js} +1 -1
  179. package/dist/client/assets/{textarea-D0x-Z8Az.js → textarea-COeZkp4P.js} +1 -1
  180. package/dist/client/assets/{toggle-group-AzftJ3Ae.js → toggle-group-DuFTDXUv.js} +1 -1
  181. package/dist/client/assets/{toolbar-C4UQ-P5G.js → toolbar-B6T3nvfB.js} +1 -1
  182. package/dist/client/assets/{toolbar-icon-button-CXCgCk_J.js → toolbar-icon-button-DzWXQwu7.js} +1 -1
  183. package/dist/client/assets/{tooltip-Cwk0MSlV.js → tooltip-8XxDCvjI.js} +1 -1
  184. package/dist/client/assets/{use-ai-providers-BX3Y3JxD.js → use-ai-providers-CJ46O17u.js} +1 -1
  185. package/dist/client/assets/{use-automations-CtnwjTxl.js → use-automations-CX5x-Uqw.js} +1 -1
  186. package/dist/client/assets/{use-autosave-dFHXX8ms.js → use-autosave-V0-E8XGy.js} +1 -1
  187. package/dist/client/assets/{use-capability-Do6gw7J5.js → use-capability-FmP_AGyE.js} +1 -1
  188. package/dist/client/assets/{use-clock-tick-D8616n3s.js → use-clock-tick-DNb1k8Bx.js} +1 -1
  189. package/dist/client/assets/{use-collections-qBTV4BG0.js → use-collections-BUbpxhiU.js} +1 -1
  190. package/dist/client/assets/{use-connection-4Md74iVw.js → use-connection-Bk3dYNpt.js} +1 -1
  191. package/dist/client/assets/{use-copy-BznK6rCq.js → use-copy-Cw847YgD.js} +1 -1
  192. package/dist/client/assets/{use-create-virtual-mcp-B4LNrarm.js → use-create-virtual-mcp-BRbI72EV.js} +1 -1
  193. package/dist/client/assets/{use-debounced-autosave-DtJIBYtj.js → use-debounced-autosave-JeuWph6h.js} +1 -1
  194. package/dist/client/assets/{use-debounced-value-xWtnyJft.js → use-debounced-value-CNzGGbsu.js} +1 -1
  195. package/dist/client/assets/{use-deco-credits-cPi4-2yK.js → use-deco-credits-B4BR0gFr.js} +1 -1
  196. package/dist/client/assets/{use-decopilot-events-CQAV7Z6g.js → use-decopilot-events-D28_JGgq.js} +1 -1
  197. package/dist/client/assets/{use-delete-connection-D_BHxSBG.js → use-delete-connection-CjmQkOW1.js} +1 -1
  198. package/dist/client/assets/{use-deployment-admin-BK0aZFEk.js → use-deployment-admin-Dyk7hBaE.js} +1 -1
  199. package/dist/client/assets/{use-file-configs-DpuTRvBD.js → use-file-configs-DL_xMbOi.js} +1 -1
  200. package/dist/client/assets/{use-infinite-scroll-DBU_M_fe.js → use-infinite-scroll-OAX5SxNS.js} +1 -1
  201. package/dist/client/assets/{use-join-requests-DlYNjwlN.js → use-join-requests-B3tUIQS3.js} +1 -1
  202. package/dist/client/assets/{use-mcp-auth-status-f9XfgLmX.js → use-mcp-auth-status-CPftzmcf.js} +1 -1
  203. package/dist/client/assets/{use-mcp-client-Befv9U7B.js → use-mcp-client-FLTjUCG7.js} +1 -1
  204. package/dist/client/assets/{use-mcp-tools-S4DJrqtb.js → use-mcp-tools-D2FBN-6Y.js} +1 -1
  205. package/dist/client/assets/{use-members-B948cko8.js → use-members-Dq8ZMPmz.js} +1 -1
  206. package/dist/client/assets/{use-mobile-CUDfWNOA.js → use-mobile-DCYqAZ4D.js} +1 -1
  207. package/dist/client/assets/{use-navigate-to-agent-CPEg1i7l.js → use-navigate-to-agent-zGXO_gBb.js} +1 -1
  208. package/dist/client/assets/{use-org-auth-client-7OWS7pMl.js → use-org-auth-client-asYkCBii.js} +1 -1
  209. package/dist/client/assets/{use-org-sso-DwrhdgIE.js → use-org-sso-DGvCB7c3.js} +1 -1
  210. package/dist/client/assets/{use-organization-roles-D9oHYpoY.js → use-organization-roles-DNoMRyWZ.js} +1 -1
  211. package/dist/client/assets/{use-organization-settings-mg14_sBq.js → use-organization-settings-vZiR9w_k.js} +1 -1
  212. package/dist/client/assets/{use-registry-app-BBeM3Vis.js → use-registry-app-DEcBrUWC.js} +1 -1
  213. package/dist/client/assets/{use-registry-connections-3wjfX9O8.js → use-registry-connections-ZIIAN618.js} +1 -1
  214. package/dist/client/assets/{use-secrets-DpAjIwxZ.js → use-secrets-BPGFw9d3.js} +1 -1
  215. package/dist/client/assets/{use-status-sounds-FfG4d4iJ.js → use-status-sounds-lae0TShH.js} +1 -1
  216. package/dist/client/assets/{use-view-mode-D4DjVhbq.js → use-view-mode-CPvsHu0J.js} +1 -1
  217. package/dist/client/assets/{use-virtual-mcp-BUEhnYHw.js → use-virtual-mcp-qUMQTRyD.js} +1 -1
  218. package/dist/client/assets/useInfiniteQuery-sJT3Rp66.js +1 -0
  219. package/dist/client/assets/{useRouterState-DjMm_tyq.js → useRouterState-B99a8RMJ.js} +1 -1
  220. package/dist/client/assets/useSuspenseInfiniteQuery-QwMQXCnx.js +1 -0
  221. package/dist/client/assets/{users-JiXDMA54.js → users-_WAywRSq.js} +1 -1
  222. package/dist/client/assets/{variant-calendar-TBtfwIsI.js → variant-calendar-DV02T715.js} +1 -1
  223. package/dist/client/assets/{view-mode-toggle-Cyy95Si-.js → view-mode-toggle-vOT0KHyw.js} +1 -1
  224. package/dist/client/index.html +1 -1
  225. package/dist/server/cli.js +2 -2
  226. package/dist/server/server.js +2 -2
  227. package/package.json +1 -1
  228. package/dist/client/assets/automations-DA68EHN0.js +0 -1
  229. package/dist/client/assets/page-seo-sheet-DR_s4wmo.js +0 -1
  230. package/dist/client/assets/project-app-view-BGaaxW8J.js +0 -1
  231. package/dist/client/assets/record-editor-Dtlvd4BY.js +0 -1
  232. package/dist/client/assets/redirect-editor-DfxcRbMx.js +0 -1
  233. package/dist/client/assets/registry-BDi57YWd.js +0 -2
  234. package/dist/client/assets/store-registry-CoSfgaX4.js +0 -2
  235. package/dist/client/assets/useInfiniteQuery-3Jiu5SAV.js +0 -1
  236. package/dist/client/assets/useSuspenseInfiniteQuery-bT7Q5l1R.js +0 -1
@@ -84519,7 +84519,7 @@ ${$}`;h(N);return}if(E(null,y),t.strategy==="count"){if(w--,w===0)h()}if(t.strat
84519
84519
  `);function h(_){if(t===void 0)return!0;let v=iq(_),D=v&&iq(t)?Vmu(t):t,n=v?Vmu(_):rmu(_),O=xCt(D,n);return O===""||!O.startsWith("..")&&!ACt(O)}return{upsert(_){f.run({$handle:_.handle,$status:_.status,$sandboxPath:_.sandboxPath,$port:_.port??null,$previewUrl:_.previewUrl??null,$repoCloneUrl:_.repoCloneUrl??null,$branch:_.branch??null,$projectName:_.projectName??null,$error:_.error??null,$now:Date.now()})},list(){return l.all().map(J1i)},reconcile(){let _=Date.now();for(let v of l.all().map(J1i)){if(!h(v.sandboxPath)){c.run({$handle:v.handle,$now:_});continue}if(!iq(v.sandboxPath)){E.run({$handle:v.handle,$now:_});continue}if(v.status==="spawning"||v.status==="ready"||v.status==="failed"||v.status==="missing")$.run({$handle:v.handle,$now:_})}return l.all().map(J1i)},prune(_){let v=[],D=[],n=this.reconcile();for(let O of n){if(!h(O.sandboxPath)){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"outside_root",deletedFiles:!1});continue}if(_.missing&&O.status==="missing"){w.run({$handle:O.handle}),v.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"missing",deletedFiles:!1});continue}if(!_.merged||!iq(O.sandboxPath))continue;if(O.branch===null||O.branch.trim()===""){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"no_branch",deletedFiles:!1});continue}if(!Z2(O.sandboxPath,["rev-parse","--is-inside-work-tree"]).ok){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}let N=Z2(O.sandboxPath,["status","--porcelain"]);if(!N.ok){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}if(N.stdout.trim()!==""){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"dirty_worktree",deletedFiles:!1});continue}let y=emu(O.sandboxPath,O.branch);if(y===null){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"git_unavailable",deletedFiles:!1});continue}if(!y){D.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"branch_not_merged",deletedFiles:!1});continue}UCt(O.sandboxPath,{recursive:!0,force:!0}),w.run({$handle:O.handle}),v.push({handle:O.handle,sandboxPath:O.sandboxPath,reason:"merged",deletedFiles:!0})}return{removed:v,skipped:D}},delete(_){w.run({$handle:_})},inspect(_){let v=d.get({$handle:_});if(v===null)return null;let D=J1i(v),n=0,O=null;if(iq(D.sandboxPath)&&Z2(D.sandboxPath,["rev-parse","--is-inside-work-tree"]).ok){let N=Z2(D.sandboxPath,["status","--porcelain"]);if(N.ok){let y=N.stdout.trim();n=y===""?0:y.split(`
84520
84520
  `).length}if(D.branch!==null&&D.branch.trim()!=="")O=emu(D.sandboxPath,D.branch)}return{handle:D.handle,branch:D.branch,sandboxPath:D.sandboxPath,dirtyCount:n,merged:O}},close(){u.close()}}}var LRi=()=>{};function jCt(i,u){return u?[["umount","-f",i]]:[["fusermount","-uz",i],["umount","-l",i]]}function omu(i,u){if(process.platform==="win32")return;for(let t of jCt(i,u))if(Bun.spawnSync(t,{stdout:"ignore",stderr:"ignore",timeout:5000}).exitCode===0)break}var smu=()=>{};import{existsSync as KCt,readdirSync as JCt}from"fs";import{rm as XCt}from"fs/promises";import{join as pmu}from"path";async function ieu(i,u={}){let t=u.detach??LCt,f=u.exists??KCt,l=u.readdir??(($)=>JCt($)),c=u.rm??(($)=>XCt($,{recursive:!0,force:!0})),E=pmu(i,"org");if(f(E))for(let $ of l(E))t(pmu(E,$));await c(i)}var LCt=(i)=>omu(i,process.platform==="darwin");var ueu=g(()=>{smu()});import{join as WCt}from"path";function teu(i){let u=i.purge??ieu;return{stopSandbox(t){return i.provider.deleteSandbox(t)},inspectSandbox(t){return i.registry.inspect(t)},async removeSandbox(t){try{return await Cl(async()=>{if(await i.provider.deleteSandbox(t),i.provider.hasHandle(t))throw Error("Can't delete \u2014 run in progress");let l=i.registry.inspect(t)?.sandboxPath??WCt(i.dataDir,"sandboxes",t);await u(l)},{maxAttempts:2,minTimeout:250,jitter:0}),i.registry.delete(t),{ok:!0}}catch(f){let l=f instanceof Wc?f.cause:f;return{ok:!1,error:l instanceof Error?l.message:String(l)}}}}}var feu=g(()=>{y4();ueu()});import{randomBytes as YCt}from"crypto";import{mkdir as QCt}from"fs/promises";import{createServer as zCt}from"net";import{join as HCt}from"path";function leu(i,u){return Error(`sandbox failed to start: ${i}`,{cause:u})}function ceu(i){if(!(i instanceof Error))return!1;return i.name==="TimeoutError"||/timed out|timeout|operation was aborted|aborted/i.test(i.message)}function Eeu(i){if(i instanceof Error){let u=i.cause;if(u instanceof Error&&u.message)return u.message;return i.message}return String(i)}function RCt(i){if(!i)return null;let u=i.trim().replace(/\/+$/,"");if(!u)return null;let t=u.split(/[/:]/).filter(Boolean).at(-1);if(!t)return null;return t.replace(/\.git$/i,"")||null}function bCt(i){return{repoCloneUrl:i.repo?.cloneUrl??null,branch:i.repo?.branch??null,projectName:RCt(i.repo?.cloneUrl)}}function $eu(i){let u=i.maxSandboxes??20,t=new Map,f=i.pickPort??CCt,l=i.fetchImpl??fetch,c=i.resolvePreviewUrl??((n,O)=>`http://127.0.0.1:${O}`),E=(n)=>HCt(i.dataDir,"sandboxes",n),$=(n)=>{try{i.registry?.upsert(n)}catch(O){console.warn(`[user-desktop] failed to persist sandbox lifecycle handle=${n.handle} status=${n.status}:`,O)}},w=(n)=>{try{i.onEvent?.(n)}catch{}},d=async(n)=>{let O=new AbortController,N=setTimeout(()=>O.abort(),1500);try{let y=await l(`${n}/health`,{signal:O.signal});if(!y.ok)console.warn(`[user-desktop] probe ${n}/health \u2192 ${y.status} (treating as dead)`);return y.ok}catch(y){return console.warn(`[user-desktop] probe ${n}/health failed: ${y instanceof Error?y.message:String(y)} (treating as dead)`),!1}finally{clearTimeout(N)}},h=(n)=>{console.warn(`[user-desktop] evicting dead daemon handle=${n.handle} port=${n.port}`);try{n.process.kill("SIGTERM")}catch{}if(t.get(n.handle)===n)t.delete(n.handle),$({handle:n.handle,status:"stopped",sandboxPath:E(n.handle),port:null,previewUrl:null,...n.registryMetadata,error:null}),w({handle:n.handle,phase:"evicted"})},_=new Map;function v(){if(t.size<u)return;let n=[...t.values()].filter((N)=>N.activeDispatchCount===0).sort((N,y)=>N.lastUsedAt-y.lastUsedAt);if(n.length===0){console.warn(`[user-desktop] at cap ${t.size}/${u} but every sandbox is pinned (active dispatch) \u2014 exceeding cap temporarily`);return}let O=n[0];console.log(`[user-desktop] evicting LRU victim handle=${O.handle} port=${O.port} (cap ${u} reached, size=${t.size})`);try{O.process.kill("SIGTERM")}catch{}t.delete(O.handle),$({handle:O.handle,status:"stopped",sandboxPath:E(O.handle),port:null,previewUrl:null,...O.registryMetadata,error:null}),w({handle:O.handle,phase:"evicted"})}let D=async(n)=>{let O=bCt(n),N=E(n.handle);$({handle:n.handle,status:"spawning",sandboxPath:N,port:null,previewUrl:null,...O,error:null}),w({handle:n.handle,phase:"spawning",sandboxPath:N,projectName:O.projectName,branch:O.branch}),v();let y,Z=null,T;try{await QCt(N,{recursive:!0}),console.log(`[user-desktop] ensure handle=${n.handle} repo=${n.repo?.cloneUrl??"(none)"} branch=${n.repo?.branch??"(none)"} runtime=${n.workload?.runtime??"(autodetect)"} pm=${n.workload?.packageManager??"(autodetect)"}`),T=YCt(24).toString("hex");let[G,I]=await Promise.all([f(),f()]);y=G,console.log(`[user-desktop] spawn handle=${n.handle} port=${y} devPort=${I} workdir=${N}`),Z=await Promise.resolve(i.spawnDaemon({workdir:N,handle:n.handle,port:y,daemonToken:T,offloadAllowedHosts:n.offloadAllowedHosts??[],offloadAllowSameHostDev:n.offloadAllowSameHostDev??!1,orgFsConfigJson:n.orgFsConfigJson}));try{await i.waitForHealth(y)}catch(k){throw leu("the sandbox didn't come online in time",k)}console.log(`[user-desktop] healthy handle=${n.handle} port=${y} \u2014 posting config`);try{await i.postConfig(y,I,{repo:n.repo,workload:n.workload,operator:n.operator},T)}catch(k){throw leu(ceu(k)?"configuration timed out":"the sandbox rejected its configuration",k)}}catch(G){if((ceu(G)?console.warn:console.error)(`[user-desktop] sandbox bring-up failed handle=${n.handle} port=${y??"(none)"}${Z?" (killing daemon)":""}:`,G),Z)try{Z.kill("SIGKILL")}catch{}throw w({handle:n.handle,phase:"failed",error:Eeu(G),sandboxPath:N,projectName:O.projectName,branch:O.branch}),$({handle:n.handle,status:"failed",sandboxPath:N,port:null,previewUrl:null,...O,error:Eeu(G)}),G}if(!Z||y===void 0)throw Error("sandbox bring-up invariant violated");let B=`http://127.0.0.1:${y}`,F=c(n.handle,y);console.log(`[user-desktop] ready handle=${n.handle} port=${y} sandboxApiUrl=${B} previewUrl=${F}`);let A={handle:n.handle,port:y,process:Z,sandboxApiUrl:B,previewUrl:F,lastUsedAt:Date.now(),activeDispatchCount:0,daemonToken:T,registryMetadata:O};if(t.set(n.handle,A),$({handle:n.handle,status:"ready",sandboxPath:N,port:y,previewUrl:F,...O,error:null}),w({handle:n.handle,phase:"ready",port:y,previewUrl:F,sandboxPath:N,projectName:O.projectName,branch:O.branch}),Z.exited)Z.exited.then(()=>{if(t.get(n.handle)===A)console.warn(`[user-desktop] daemon process exited unexpectedly handle=${n.handle} port=${y} \u2014 removing from cache`),t.delete(n.handle),$({handle:n.handle,status:"stopped",sandboxPath:N,port:null,previewUrl:null,...O,error:null}),w({handle:n.handle,phase:"evicted"});else console.log(`[user-desktop] daemon process exited handle=${n.handle} port=${y} (already replaced/removed)`)});return{sandboxApiUrl:B,previewUrl:F,port:y}};return{async ensureSandbox(n){let O=t.get(n.handle);if(O){if(await d(O.sandboxApiUrl))return console.log(`[user-desktop] cache hit handle=${n.handle} port=${O.port} (alive)`),O.lastUsedAt=Date.now(),{sandboxApiUrl:O.sandboxApiUrl,previewUrl:O.previewUrl,port:O.port};console.warn(`[user-desktop] cache stale handle=${n.handle} port=${O.port} \u2014 respawning`),h(O)}let N=_.get(n.handle);if(N)return console.log(`[user-desktop] joining in-flight ensure handle=${n.handle}`),N;let y=D(n).finally(()=>{_.delete(n.handle)});return _.set(n.handle,y),y},proxyPort(n){let O=t.get(n);if(O)O.lastUsedAt=Date.now();return O?.port??null},getDaemonToken(n){return t.get(n)?.daemonToken??null},hasHandle(n){return t.has(n)||_.has(n)},recordHit(n){let O=t.get(n);if(O)O.lastUsedAt=Date.now()},acquireDispatch(n){let O=t.get(n);if(!O)return()=>{};O.activeDispatchCount+=1;let N=!1;return()=>{if(N)return;N=!0;let y=t.get(n);if(y)y.activeDispatchCount=Math.max(0,y.activeDispatchCount-1)}},listSandboxes(){return[...t.values()]},async deleteSandbox(n){let O=t.get(n);if(!O){console.log(`[user-desktop] delete handle=${n} (not found, no-op)`);return}if(O.activeDispatchCount>0){console.warn(`[user-desktop] delete handle=${n} port=${O.port} REFUSED \u2014 ${O.activeDispatchCount} active dispatch(es) in flight`);return}console.log(`[user-desktop] delete handle=${n} port=${O.port}`);try{O.process.kill("SIGTERM")}catch{}t.delete(n),$({handle:n,status:"stopped",sandboxPath:E(n),port:null,previewUrl:null,repoCloneUrl:null,branch:null,projectName:null,error:null}),w({handle:n,phase:"deleted"})},async shutdown(){console.log(`[user-desktop] shutdown \u2014 killing ${t.size} sandbox(es)`);for(let n of t.values())try{n.process.kill("SIGTERM")}catch{}t.clear()}}}function CCt(){return new Promise((i,u)=>{let t=zCt();t.unref(),t.on("error",u),t.listen(0,"127.0.0.1",()=>{let f=t.address();if(f&&typeof f==="object"){let l=f.port;t.close(()=>i(l))}else t.close(()=>u(Error("could not allocate port")))})})}var weu=()=>{};import{randomUUID as MCt}from"crypto";import{hostname as qCt}from"os";async function deu(i){let u=qCt()||void 0;i.monitor?.onMachine?.(u??"this machine");let t=bbu(i.dataDir,{outFd:i.logFd,perSandboxLog:i.perSandboxLogs,hotReload:i.hotReload}),f=L1i({path:X1i(i.dataDir),managedSandboxRoot:`${i.dataDir}/sandboxes`}),l=!1,c=()=>{if(l)return;l=!0;try{f.close()}catch{}};try{let E=0,$=$eu({dataDir:i.dataDir,registry:f,resolvePreviewUrl:(k,q)=>E>0?`http://${k}.localhost:${E}`:`http://127.0.0.1:${q}`,spawnDaemon:async(k)=>{let q={DAEMON_BOOT_ID:MCt(),APP_ROOT:k.workdir,PROXY_PORT:String(k.port),DAEMON_TOKEN:k.daemonToken,OFFLOAD_ALLOWED_HOSTS:k.offloadAllowedHosts.join(","),...k.offloadAllowSameHostDev?{OFFLOAD_ALLOW_SAME_HOST_DEV:"1"}:{}};if(k.orgFsConfigJson){let W=await Vbu(i.dataDir);if(W)q.ORGFS_CONFIG=k.orgFsConfigJson,q.ORGFS_RCLONE_PATH=W}let J=await t({workdir:k.workdir,env:q,daemonPort:k.port});return{port:k.port,kill:(W)=>J.kill(W),exited:J.exited.then(()=>{return})}},postConfig:async(k,q,J,W)=>{let r={port:q};if(J.workload)r.runtime=J.workload.runtime,r.packageManager={name:J.workload.packageManager,...J.workload.packageManagerPath?{path:J.workload.packageManagerPath}:{}};let Y={application:r},fi=vh(J.operator??null);if(fi)Y.operator=fi;if(J.repo)Y.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 w2(`http://127.0.0.1:${k}`,W,Y)},waitForHealth:async(k)=>{await Xli(`http://127.0.0.1:${k}`)},maxSandboxes:20,onEvent:i.monitor?.onEvent}),w=await Xmu({port:i.port,lookupSandboxPort:(k)=>$.proxyPort(k)});E=w.port,console.log(`Local ingress listening on http://127.0.0.1:${w.port} (use http://<handle>.localhost:${w.port}/)`),i.monitor?.onIngress?.(w.port);let d=mbu({provider:$}),h=async()=>{let k=await $2({dataDir:i.dataDir,target:i.clusterBaseUrl});if(!k)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 k.accessToken},_=await Mmu(i.dataDir),v=process.env.npm_package_version??"0.0.0",D=await XRi(),n=bmu(D,{onChange:(k)=>{console.log(`[link-daemon] capabilities detected: +${k.join(",")} (now: ${D.join(",")})`)}}),O=Fzi({path:`${i.dataDir}/link/outbox.sqlite`});O.clear();let N=()=>{},y=new AbortController,Z={clusterBaseUrl:i.clusterBaseUrl,getAccessToken:h,provider:$,outbox:O,controlHandler:d,capabilities:D,machineId:_,cliVersion:v,previewPort:w.port,onConnected:()=>{i.monitor?.onCluster?.("linked"),console.log(`Linked to ${i.clusterBaseUrl}`)},onShutdown:()=>N(),runLifetimeSignal:y.signal};console.log(`[link-daemon] transport=tunnel cluster=${i.clusterBaseUrl}`);let T=await Fmu(Z);console.log("[link-daemon] active transport=tunnel");let B,F=new Promise((k)=>{B=k}),A=!1,G=async()=>{if(A)return;A=!0,y.abort(),console.log(`
84521
84521
  Shutting down\u2026`),n();try{await T.close()}catch{}try{await w.stop()}catch{}try{await $.shutdown()}catch{}try{O.close()}catch{}c(),B(0)};process.on("SIGINT",()=>void G()),process.on("SIGTERM",()=>void G()),N=()=>{console.log("Disconnect requested from the Studio web UI \u2014 shutting down. Run `bunx decocms@latest link` to reconnect."),G()},T.closed.then(()=>{if(i.monitor?.onCluster?.("closed"),!A)console.error("Cluster connection closed permanently; exiting."),G()});let I=teu({provider:$,registry:f,dataDir:i.dataDir});return{stopped:F,stop:G,stopSandbox:I.stopSandbox,removeSandbox:I.removeSandbox,inspectSandbox:I.inspectSandbox}}catch(E){throw c(),E}}var heu=g(()=>{gzi();UM();Cbu();rbu();ebu();Uzi();Umu();Lmu();Cmu();qmu();FM();LRi();feu();weu()});function WRi(i){return i.map((u)=>typeof u==="string"?u:String(u)).join(" ")}import{createServer as VCt}from"net";async function mCt(i){for(let u of rCt)if(await YRi(i,u))return u;return null}async function _eu(i,{intervalMs:u=1000}={}){for(;;){let t=await mCt(i);if(t)return t;await O0(u)}}function YRi(i,u){return new Promise((t)=>{let f=VCt();f.once("error",(l)=>{t(l.code==="EADDRINUSE")}),f.listen(i,u,()=>{f.close(()=>t(!1))})})}var rCt;var QRi=g(()=>{y4();rCt=["localhost","127.0.0.1","0.0.0.0"]});function veu(i){return typeof i==="object"&&i!==null&&"code"in i&&i.code==="EADDRINUSE"}function eCt(i,u=process.platform){if(u==="win32")return`for /f "tokens=5" %P in ('netstat -ano ^| findstr /R /C:":${i} .*LISTENING"') do taskkill /F /PID %P`;return`kill -9 $(lsof -ti tcp:${i})`}function Deu(i,u=process.platform){return[`Port ${i} is already in use.`,"Run this command to stop the process listening on it, then retry `decocms link`:","",` ${eCt(i,u)}`].join(`
84522
- `)}var zRi;var neu=g(()=>{zRi=class zRi extends Error{port;code="EADDRINUSE";constructor(i){super(`Port ${i} is already in use.`);this.port=i;this.name="PortInUseError"}}});var tW;var W1i=g(()=>{tW={name:"decocms",version:"4.82.10",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:ct":"playwright test -c playwright-ct.config.ts","test:ct:ui":"playwright test -c playwright-ct.config.ts --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.3.181","@duckdb/node-api":"^1.5.0-r.1","@openai/codex":"0.144.3","@openai/codex-darwin-arm64":"npm:@openai/codex@0.144.3-darwin-arm64","@openai/codex-darwin-x64":"npm:@openai/codex@0.144.3-darwin-x64","@openai/codex-linux-arm64":"npm:@openai/codex@0.144.3-linux-arm64","@openai/codex-linux-x64":"npm:@openai/codex@0.144.3-linux-x64","@openai/codex-win32-arm64":"npm:@openai/codex@0.144.3-win32-arm64","@openai/codex-win32-x64":"npm:@openai/codex@0.144.3-win32-x64"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^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.21.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","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@tiptap/extension-text-align":"3.20.2","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0",echarts:"^5.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6","use-stick-to-bottom":"^1.1.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.210","@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:*","@decocms/tunnel":"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","@nats-io/jwt":"0.0.10-5","@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/experimental-ct-react":"1.59.1","@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/shadcn":"^6.6.2","@rjsf/utils":"^6.6.2","@rjsf/validator-ajv8":"^6.6.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-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/google.maps":"^3.65.2","@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.208","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",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"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var uq={};Xi(uq,{printBanner:()=>sCt,bannerLines:()=>geu,BANNER_LINES:()=>Y1i,BANNER_GRADIENT:()=>Q1i});function oCt(i){let u=Number.parseInt(i.slice(1),16);return[u>>16&255,u>>8&255,u&255]}function geu(i){let u=Y1i.map((t,f)=>{let[l,c,E]=oCt(Q1i[f]);return`\x1B[38;2;${l};${c};${E}m${t}\x1B[39m`});if(i!==void 0)u.push(`\x1B[2m v${i}\x1B[22m`);return u}function sCt(i){console.log("");for(let u of geu(i))console.log(u);console.log("")}var Y1i,Q1i;var fW=g(()=>{Y1i=[" \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 "],Q1i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as pCt,Text as Oeu}from"ink";import{jsx as iMt,jsxs as Neu}from"react/jsx-runtime";function z1i({version:i}){return Neu(pCt,{flexDirection:"column",marginTop:1,children:[Y1i.map((u,t)=>iMt(Oeu,{color:Q1i[t],children:u},t)),Neu(Oeu,{dimColor:!0,children:[" v",i]})]})}var HRi=g(()=>{fW()});function yeu(i){let u=i.branch??i.handle,t=[];if(i.dirtyCount>0)t.push(`${i.dirtyCount} uncommitted file${i.dirtyCount===1?"":"s"}`);if(i.merged===!1)t.push("branch not merged");return t.length>0?`\u26A0 ${t.join(", ")} \u2014 delete ${u}? (y/n)`:`Delete ${u}? (y/n)`}function lW(i){return[...i.values()].map((u)=>u.handle).sort((u,t)=>u.localeCompare(t))}function Zeu(i,u,t){if(i.length===0)return null;let f=u===null?-1:i.indexOf(u);if(f===-1)return t>0?i[0]:i[i.length-1];let l=Math.max(0,Math.min(i.length-1,f+t));return i[l]}function Teu(i,u,t){if(t!==u)return t;let f=i.indexOf(u);if(f===-1)return t;return i[f+1]??i[f-1]??null}var MRi={};Xi(MRi,{subscribeLinkState:()=>RRi,setSelectedHandle:()=>bRi,setRemoving:()=>b1i,setPersistedSandboxes:()=>hMt,setPendingConfirm:()=>fq,setMachine:()=>EMt,setLogPath:()=>wMt,setLinkActions:()=>dMt,setIngress:()=>cMt,setDaemonError:()=>$Mt,setClusterUrl:()=>lMt,setCluster:()=>fMt,setActionError:()=>R1i,resetLinkStateForTests:()=>vMt,removeSandboxRow:()=>CRi,pushSandboxEvent:()=>_Mt,getLinkState:()=>tq,applySandboxEvent:()=>Beu});function tMt(i){return i==="spawning"||i==="ready"||i==="failed"}function Beu(i,u){let t=new Map(i),f=t.get(u.handle);if(u.phase==="evicted"||u.phase==="deleted"){if(f)t.set(u.handle,{...f,port:null,previewUrl:null,status:"stopped",error:null});return t}return t.set(u.handle,{handle:u.handle,port:u.port??f?.port??null,previewUrl:u.previewUrl??f?.previewUrl??null,status:u.phase,error:u.phase==="failed"?u.error??"failed":null,projectName:u.projectName??f?.projectName??null,branch:u.branch??f?.branch??null,sandboxPath:u.sandboxPath??f?.sandboxPath??null}),t}function Feu(){return{cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:uMt,sandboxes:new Map,daemonError:null,logPath:null,selectedHandle:null,pendingConfirm:null,removingHandles:new Set,actionError:null,actions:null}}function z$(){for(let i of H1i)i()}function tq(){return cf}function RRi(i){return H1i.add(i),()=>H1i.delete(i)}function fMt(i){cf={...cf,cluster:i},z$()}function lMt(i){cf={...cf,clusterUrl:i},z$()}function cMt(i,u){cf={...cf,ingressPort:i,ingressUrl:u},z$()}function EMt(i){cf={...cf,machine:i},z$()}function $Mt(i){cf={...cf,daemonError:i},z$()}function wMt(i){cf={...cf,logPath:i},z$()}function bRi(i){cf={...cf,selectedHandle:i},z$()}function fq(i){cf={...cf,pendingConfirm:i},z$()}function R1i(i){cf={...cf,actionError:i},z$()}function b1i(i,u){if(cf.removingHandles.has(i)===u)return;let t=new Set(cf.removingHandles);if(u)t.add(i);else t.delete(i);cf={...cf,removingHandles:t},z$()}function dMt(i){cf={...cf,actions:i},z$()}function CRi(i){let u=lW(cf.sandboxes),t=Teu(u,i,cf.selectedHandle),f=new Map(cf.sandboxes);f.delete(i);let l=new Set(cf.removingHandles);l.delete(i),cf={...cf,sandboxes:f,selectedHandle:t,pendingConfirm:null,removingHandles:l},z$()}function hMt(i){let u=new Map;for(let t of i)u.set(t.handle,{handle:t.handle,port:t.port,previewUrl:t.previewUrl,status:t.status,error:t.error,projectName:t.projectName,branch:t.branch,sandboxPath:t.sandboxPath});for(let[t,f]of cf.sandboxes)if(tMt(f.status))u.set(t,f);cf={...cf,sandboxes:u},z$()}function _Mt(i){cf={...cf,sandboxes:Beu(cf.sandboxes,i)},z$()}function vMt(){cf=Feu(),H1i.clear()}var uMt=20,cf,H1i;var lq=g(()=>{cf=Feu(),H1i=new Set});import{spawn as DMt}from"child_process";function nMt(i){if(i==="darwin")return"open";if(i==="win32")return"start";return"xdg-open"}function Ueu(i,u=process.platform){let t=nMt(u);try{DMt(t,[i],{stdio:"ignore",detached:!0}).unref()}catch{}}var Peu=()=>{};function Aeu(i,u={}){let t=u.openUrl??Ueu,f=tq(),l=lW(f.sandboxes),c=f.selectedHandle!==null&&l.includes(f.selectedHandle)?f.selectedHandle:l[0]??null,E=f.actions;switch(i.type){case"move":bRi(Zeu(l,f.selectedHandle,i.delta));return;case"open":{if(c===null)return;let $=f.sandboxes.get(c);if($?.status==="ready"&&$.previewUrl)t($.previewUrl);return}case"stop":if(c!==null&&E)E.stopSandbox(c);return;case"delete":{if(c===null||!E)return;let $=E.inspectSandbox(c),w=f.sandboxes.get(c);R1i(null),fq({handle:c,branch:$?.branch??w?.branch??null,dirtyCount:$?.dirtyCount??0,merged:$?.merged??null});return}case"confirmYes":{let $=f.pendingConfirm;if(fq(null),$===null||!E)return;b1i($.handle,!0),E.removeSandbox($.handle).then((w)=>{if(w.ok)CRi($.handle);else b1i($.handle,!1),R1i(w.error)});return}case"confirmNo":fq(null);return;case"quit":if(E)E.quit();return}}var Ieu=g(()=>{lq();Peu()});function xeu(i,u,t){if(t)return i==="y"||i==="Y"?{type:"confirmYes"}:{type:"confirmNo"};if(u.upArrow||i==="k")return{type:"move",delta:-1};if(u.downArrow||i==="j")return{type:"move",delta:1};if(i==="s")return{type:"stop"};if(i==="d")return{type:"delete"};if(i==="o")return{type:"open"};if(i==="q"||u.ctrl===!0&&i==="c")return{type:"quit"};return null}var keu={};Xi(keu,{LinkApp:()=>yMt});import{Box as ql,Text as _1,useInput as gMt}from"ink";import{useSyncExternalStore as OMt}from"react";import{jsx as Gf,jsxs as Uh}from"react/jsx-runtime";function NMt(i,u){if(u)return{color:"yellow",text:"\u25CC Removing\u2026"};if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};if(i.status==="stopped")return{color:"gray",text:"\u25A0 Stopped"};if(i.status==="missing")return{color:"yellow",text:"\u25A1 Missing"};if(i.status==="merged")return{color:"cyan",text:"\u2713 Merged"};if(i.status==="invalid")return{color:"red",text:"\u2717 Invalid"};if(i.status==="failed")return{color:"red",text:`\u2717 Failed: ${i.error??"failed"}`};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function yMt(){let i=OMt(RRi,tq),u=[...i.sandboxes.values()].sort((l,c)=>l.handle.localeCompare(c.handle)),t=lW(i.sandboxes),f=i.selectedHandle!==null&&t.includes(i.selectedHandle)?i.selectedHandle:t[0]??null;return gMt((l,c)=>{let E=xeu(l,c,i.pendingConfirm!==null);if(E!==null)Aeu(E)}),Uh(ql,{flexDirection:"column",children:[Gf(z1i,{version:tW.version}),Gf(ql,{marginBottom:1,children:Gf(_1,{dimColor:!0,children:"\u2500".repeat(80)})}),Gf(ql,{children:i.cluster==="linked"?Uh(_1,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?Uh(_1,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):Uh(_1,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),Gf(ql,{children:i.ingressUrl?Uh(_1,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):Gf(_1,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),Gf(ql,{marginBottom:1,children:Gf(_1,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${u.length} of ${i.cap} previews`})}),u.length===0?Gf(_1,{dimColor:!0,children:"No previews running yet."}):Uh(ql,{flexDirection:"column",children:[Uh(ql,{children:[Gf(ql,{width:2,flexShrink:0}),Gf(ql,{width:cW.project,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),Gf(ql,{width:cW.branch,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"BRANCH"})}),Gf(ql,{width:cW.status,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),Gf(ql,{flexGrow:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),u.map((l)=>{let c=NMt(l,i.removingHandles.has(l.handle)),E=l.handle===f;return Uh(ql,{children:[Gf(ql,{width:2,flexShrink:0,children:Gf(_1,{color:"cyan",children:E?"\u203A":" "})}),Gf(ql,{width:cW.project,flexShrink:0,marginRight:1,children:Gf(_1,{bold:E,wrap:"truncate-end",children:l.projectName??l.handle})}),Gf(ql,{width:cW.branch,flexShrink:0,marginRight:1,children:Gf(_1,{bold:E,wrap:"truncate-end",children:l.branch??"\u2014"})}),Gf(ql,{width:cW.status,flexShrink:0,marginRight:1,children:Gf(_1,{color:c.color,bold:E,wrap:"truncate-end",children:c.text})}),Gf(ql,{flexGrow:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:l.previewUrl??"\u2014"})})]},l.handle)})]}),i.daemonError?Gf(ql,{marginTop:1,children:Uh(_1,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?Gf(ql,{marginTop:1,children:Uh(_1,{dimColor:!0,children:["Logs: ",i.logPath]})}):null,i.pendingConfirm?Gf(ql,{marginTop:1,children:Gf(_1,{color:"yellow",children:yeu(i.pendingConfirm)})}):null,i.actionError?Gf(ql,{marginTop:1,children:Uh(_1,{color:"red",children:["\u2717 ",i.actionError]})}):null,Gf(ql,{marginTop:1,children:Gf(_1,{dimColor:!0,children:"\u2191\u2193 move \xB7 s stop \xB7 d delete \xB7 o open \xB7 q quit"})})]})}var cW;var Geu=g(()=>{W1i();HRi();Ieu();lq();cW={project:18,branch:22,status:14}});var Seu={};Xi(Seu,{runLinkCommand:()=>IMt});import{closeSync as ZMt,mkdirSync as TMt,openSync as BMt,writeSync as FMt}from"fs";import{homedir as UMt}from"os";import{join as qRi}from"path";function PMt(i,u){let t={log:console.log,warn:console.warn,error:console.error},f=(l)=>{if(u===void 0)return;try{FMt(u,`${WRi(l)}
84522
+ `)}var zRi;var neu=g(()=>{zRi=class zRi extends Error{port;code="EADDRINUSE";constructor(i){super(`Port ${i} is already in use.`);this.port=i;this.name="PortInUseError"}}});var tW;var W1i=g(()=>{tW={name:"decocms",version:"4.82.11",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:ct":"playwright test -c playwright-ct.config.ts","test:ct:ui":"playwright test -c playwright-ct.config.ts --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.3.181","@duckdb/node-api":"^1.5.0-r.1","@openai/codex":"0.144.3","@openai/codex-darwin-arm64":"npm:@openai/codex@0.144.3-darwin-arm64","@openai/codex-darwin-x64":"npm:@openai/codex@0.144.3-darwin-x64","@openai/codex-linux-arm64":"npm:@openai/codex@0.144.3-linux-arm64","@openai/codex-linux-x64":"npm:@openai/codex@0.144.3-linux-x64","@openai/codex-win32-arm64":"npm:@openai/codex@0.144.3-win32-arm64","@openai/codex-win32-x64":"npm:@openai/codex@0.144.3-win32-x64"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^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.21.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","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"3.13.24","@tiptap/extension-text-align":"3.20.2","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0",echarts:"^5.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","node-pty":"^1.0.0","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6","use-stick-to-bottom":"^1.1.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@ai-sdk/react":"^3.0.210","@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:*","@decocms/tunnel":"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","@nats-io/jwt":"0.0.10-5","@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/experimental-ct-react":"1.59.1","@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/shadcn":"^6.6.2","@rjsf/utils":"^6.6.2","@rjsf/validator-ajv8":"^6.6.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-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/google.maps":"^3.65.2","@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.208","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",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"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});var uq={};Xi(uq,{printBanner:()=>sCt,bannerLines:()=>geu,BANNER_LINES:()=>Y1i,BANNER_GRADIENT:()=>Q1i});function oCt(i){let u=Number.parseInt(i.slice(1),16);return[u>>16&255,u>>8&255,u&255]}function geu(i){let u=Y1i.map((t,f)=>{let[l,c,E]=oCt(Q1i[f]);return`\x1B[38;2;${l};${c};${E}m${t}\x1B[39m`});if(i!==void 0)u.push(`\x1B[2m v${i}\x1B[22m`);return u}function sCt(i){console.log("");for(let u of geu(i))console.log(u);console.log("")}var Y1i,Q1i;var fW=g(()=>{Y1i=[" \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 "],Q1i=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"]});import{Box as pCt,Text as Oeu}from"ink";import{jsx as iMt,jsxs as Neu}from"react/jsx-runtime";function z1i({version:i}){return Neu(pCt,{flexDirection:"column",marginTop:1,children:[Y1i.map((u,t)=>iMt(Oeu,{color:Q1i[t],children:u},t)),Neu(Oeu,{dimColor:!0,children:[" v",i]})]})}var HRi=g(()=>{fW()});function yeu(i){let u=i.branch??i.handle,t=[];if(i.dirtyCount>0)t.push(`${i.dirtyCount} uncommitted file${i.dirtyCount===1?"":"s"}`);if(i.merged===!1)t.push("branch not merged");return t.length>0?`\u26A0 ${t.join(", ")} \u2014 delete ${u}? (y/n)`:`Delete ${u}? (y/n)`}function lW(i){return[...i.values()].map((u)=>u.handle).sort((u,t)=>u.localeCompare(t))}function Zeu(i,u,t){if(i.length===0)return null;let f=u===null?-1:i.indexOf(u);if(f===-1)return t>0?i[0]:i[i.length-1];let l=Math.max(0,Math.min(i.length-1,f+t));return i[l]}function Teu(i,u,t){if(t!==u)return t;let f=i.indexOf(u);if(f===-1)return t;return i[f+1]??i[f-1]??null}var MRi={};Xi(MRi,{subscribeLinkState:()=>RRi,setSelectedHandle:()=>bRi,setRemoving:()=>b1i,setPersistedSandboxes:()=>hMt,setPendingConfirm:()=>fq,setMachine:()=>EMt,setLogPath:()=>wMt,setLinkActions:()=>dMt,setIngress:()=>cMt,setDaemonError:()=>$Mt,setClusterUrl:()=>lMt,setCluster:()=>fMt,setActionError:()=>R1i,resetLinkStateForTests:()=>vMt,removeSandboxRow:()=>CRi,pushSandboxEvent:()=>_Mt,getLinkState:()=>tq,applySandboxEvent:()=>Beu});function tMt(i){return i==="spawning"||i==="ready"||i==="failed"}function Beu(i,u){let t=new Map(i),f=t.get(u.handle);if(u.phase==="evicted"||u.phase==="deleted"){if(f)t.set(u.handle,{...f,port:null,previewUrl:null,status:"stopped",error:null});return t}return t.set(u.handle,{handle:u.handle,port:u.port??f?.port??null,previewUrl:u.previewUrl??f?.previewUrl??null,status:u.phase,error:u.phase==="failed"?u.error??"failed":null,projectName:u.projectName??f?.projectName??null,branch:u.branch??f?.branch??null,sandboxPath:u.sandboxPath??f?.sandboxPath??null}),t}function Feu(){return{cluster:"connecting",clusterUrl:null,ingressUrl:null,ingressPort:null,machine:null,cap:uMt,sandboxes:new Map,daemonError:null,logPath:null,selectedHandle:null,pendingConfirm:null,removingHandles:new Set,actionError:null,actions:null}}function z$(){for(let i of H1i)i()}function tq(){return cf}function RRi(i){return H1i.add(i),()=>H1i.delete(i)}function fMt(i){cf={...cf,cluster:i},z$()}function lMt(i){cf={...cf,clusterUrl:i},z$()}function cMt(i,u){cf={...cf,ingressPort:i,ingressUrl:u},z$()}function EMt(i){cf={...cf,machine:i},z$()}function $Mt(i){cf={...cf,daemonError:i},z$()}function wMt(i){cf={...cf,logPath:i},z$()}function bRi(i){cf={...cf,selectedHandle:i},z$()}function fq(i){cf={...cf,pendingConfirm:i},z$()}function R1i(i){cf={...cf,actionError:i},z$()}function b1i(i,u){if(cf.removingHandles.has(i)===u)return;let t=new Set(cf.removingHandles);if(u)t.add(i);else t.delete(i);cf={...cf,removingHandles:t},z$()}function dMt(i){cf={...cf,actions:i},z$()}function CRi(i){let u=lW(cf.sandboxes),t=Teu(u,i,cf.selectedHandle),f=new Map(cf.sandboxes);f.delete(i);let l=new Set(cf.removingHandles);l.delete(i),cf={...cf,sandboxes:f,selectedHandle:t,pendingConfirm:null,removingHandles:l},z$()}function hMt(i){let u=new Map;for(let t of i)u.set(t.handle,{handle:t.handle,port:t.port,previewUrl:t.previewUrl,status:t.status,error:t.error,projectName:t.projectName,branch:t.branch,sandboxPath:t.sandboxPath});for(let[t,f]of cf.sandboxes)if(tMt(f.status))u.set(t,f);cf={...cf,sandboxes:u},z$()}function _Mt(i){cf={...cf,sandboxes:Beu(cf.sandboxes,i)},z$()}function vMt(){cf=Feu(),H1i.clear()}var uMt=20,cf,H1i;var lq=g(()=>{cf=Feu(),H1i=new Set});import{spawn as DMt}from"child_process";function nMt(i){if(i==="darwin")return"open";if(i==="win32")return"start";return"xdg-open"}function Ueu(i,u=process.platform){let t=nMt(u);try{DMt(t,[i],{stdio:"ignore",detached:!0}).unref()}catch{}}var Peu=()=>{};function Aeu(i,u={}){let t=u.openUrl??Ueu,f=tq(),l=lW(f.sandboxes),c=f.selectedHandle!==null&&l.includes(f.selectedHandle)?f.selectedHandle:l[0]??null,E=f.actions;switch(i.type){case"move":bRi(Zeu(l,f.selectedHandle,i.delta));return;case"open":{if(c===null)return;let $=f.sandboxes.get(c);if($?.status==="ready"&&$.previewUrl)t($.previewUrl);return}case"stop":if(c!==null&&E)E.stopSandbox(c);return;case"delete":{if(c===null||!E)return;let $=E.inspectSandbox(c),w=f.sandboxes.get(c);R1i(null),fq({handle:c,branch:$?.branch??w?.branch??null,dirtyCount:$?.dirtyCount??0,merged:$?.merged??null});return}case"confirmYes":{let $=f.pendingConfirm;if(fq(null),$===null||!E)return;b1i($.handle,!0),E.removeSandbox($.handle).then((w)=>{if(w.ok)CRi($.handle);else b1i($.handle,!1),R1i(w.error)});return}case"confirmNo":fq(null);return;case"quit":if(E)E.quit();return}}var Ieu=g(()=>{lq();Peu()});function xeu(i,u,t){if(t)return i==="y"||i==="Y"?{type:"confirmYes"}:{type:"confirmNo"};if(u.upArrow||i==="k")return{type:"move",delta:-1};if(u.downArrow||i==="j")return{type:"move",delta:1};if(i==="s")return{type:"stop"};if(i==="d")return{type:"delete"};if(i==="o")return{type:"open"};if(i==="q"||u.ctrl===!0&&i==="c")return{type:"quit"};return null}var keu={};Xi(keu,{LinkApp:()=>yMt});import{Box as ql,Text as _1,useInput as gMt}from"ink";import{useSyncExternalStore as OMt}from"react";import{jsx as Gf,jsxs as Uh}from"react/jsx-runtime";function NMt(i,u){if(u)return{color:"yellow",text:"\u25CC Removing\u2026"};if(i.status==="ready")return{color:"green",text:"\u25CF Live"};if(i.status==="spawning")return{color:"yellow",text:"\u25CC Starting\u2026"};if(i.status==="stopped")return{color:"gray",text:"\u25A0 Stopped"};if(i.status==="missing")return{color:"yellow",text:"\u25A1 Missing"};if(i.status==="merged")return{color:"cyan",text:"\u2713 Merged"};if(i.status==="invalid")return{color:"red",text:"\u2717 Invalid"};if(i.status==="failed")return{color:"red",text:`\u2717 Failed: ${i.error??"failed"}`};return{color:"red",text:`\u2717 Error: ${i.error??""}`}}function yMt(){let i=OMt(RRi,tq),u=[...i.sandboxes.values()].sort((l,c)=>l.handle.localeCompare(c.handle)),t=lW(i.sandboxes),f=i.selectedHandle!==null&&t.includes(i.selectedHandle)?i.selectedHandle:t[0]??null;return gMt((l,c)=>{let E=xeu(l,c,i.pendingConfirm!==null);if(E!==null)Aeu(E)}),Uh(ql,{flexDirection:"column",children:[Gf(z1i,{version:tW.version}),Gf(ql,{marginBottom:1,children:Gf(_1,{dimColor:!0,children:"\u2500".repeat(80)})}),Gf(ql,{children:i.cluster==="linked"?Uh(_1,{color:"green",children:["\u2713 Connected to ",i.clusterUrl??"deco"]}):i.cluster==="connecting"?Uh(_1,{color:"yellow",children:["\u25CC Connecting to ",i.clusterUrl??"deco","\u2026"]}):Uh(_1,{color:"red",children:["\u2717 Disconnected from ",i.clusterUrl??"deco"]})}),Gf(ql,{children:i.ingressUrl?Uh(_1,{color:"green",children:["\u2713 Serving at ",i.ingressUrl]}):Gf(_1,{dimColor:!0,children:"\u25CC Starting local server\u2026"})}),Gf(ql,{marginBottom:1,children:Gf(_1,{dimColor:!0,children:`${"Computer".padEnd(16)}${i.machine??"this computer"} \xB7 ${u.length} of ${i.cap} previews`})}),u.length===0?Gf(_1,{dimColor:!0,children:"No previews running yet."}):Uh(ql,{flexDirection:"column",children:[Uh(ql,{children:[Gf(ql,{width:2,flexShrink:0}),Gf(ql,{width:cW.project,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"PROJECT"})}),Gf(ql,{width:cW.branch,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"BRANCH"})}),Gf(ql,{width:cW.status,flexShrink:0,marginRight:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"STATUS"})}),Gf(ql,{flexGrow:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:"PREVIEW URL"})})]}),u.map((l)=>{let c=NMt(l,i.removingHandles.has(l.handle)),E=l.handle===f;return Uh(ql,{children:[Gf(ql,{width:2,flexShrink:0,children:Gf(_1,{color:"cyan",children:E?"\u203A":" "})}),Gf(ql,{width:cW.project,flexShrink:0,marginRight:1,children:Gf(_1,{bold:E,wrap:"truncate-end",children:l.projectName??l.handle})}),Gf(ql,{width:cW.branch,flexShrink:0,marginRight:1,children:Gf(_1,{bold:E,wrap:"truncate-end",children:l.branch??"\u2014"})}),Gf(ql,{width:cW.status,flexShrink:0,marginRight:1,children:Gf(_1,{color:c.color,bold:E,wrap:"truncate-end",children:c.text})}),Gf(ql,{flexGrow:1,children:Gf(_1,{dimColor:!0,wrap:"truncate-end",children:l.previewUrl??"\u2014"})})]},l.handle)})]}),i.daemonError?Gf(ql,{marginTop:1,children:Uh(_1,{color:"red",children:["\u26A0 ",i.daemonError]})}):null,i.logPath?Gf(ql,{marginTop:1,children:Uh(_1,{dimColor:!0,children:["Logs: ",i.logPath]})}):null,i.pendingConfirm?Gf(ql,{marginTop:1,children:Gf(_1,{color:"yellow",children:yeu(i.pendingConfirm)})}):null,i.actionError?Gf(ql,{marginTop:1,children:Uh(_1,{color:"red",children:["\u2717 ",i.actionError]})}):null,Gf(ql,{marginTop:1,children:Gf(_1,{dimColor:!0,children:"\u2191\u2193 move \xB7 s stop \xB7 d delete \xB7 o open \xB7 q quit"})})]})}var cW;var Geu=g(()=>{W1i();HRi();Ieu();lq();cW={project:18,branch:22,status:14}});var Seu={};Xi(Seu,{runLinkCommand:()=>IMt});import{closeSync as ZMt,mkdirSync as TMt,openSync as BMt,writeSync as FMt}from"fs";import{homedir as UMt}from"os";import{join as qRi}from"path";function PMt(i,u){let t={log:console.log,warn:console.warn,error:console.error},f=(l)=>{if(u===void 0)return;try{FMt(u,`${WRi(l)}
84523
84523
  `)}catch{}};return console.log=(...l)=>f(l),console.warn=(...l)=>f(l),console.error=(...l)=>{f(l),i(WRi(l))},()=>{console.log=t.log,console.warn=t.warn,console.error=t.error}}async function AMt(i,u){let t;try{t=await fetch(`${i}/api/links/me`,{headers:{authorization:`Bearer ${u}`},signal:AbortSignal.timeout(1e4)})}catch{return}if(t.status===401||t.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 IMt(i={}){let u=i.port??5174,t=i.dataDir??process.env.DATA_DIR??process.env.DECOCMS_HOME??qRi(UMt(),"deco"),f=i.clusterBaseUrl??process.env.MESH_CLUSTER_URL??"https://studio.decocms.com",l,c,E,$=()=>{if(E===void 0)return;try{E.close()}catch{}finally{E=void 0}};try{if(await YRi(u,"127.0.0.1"))throw new zRi(u);let w=qRi(t,"sandboxes");E=L1i({path:X1i(t),managedSandboxRoot:w});let d=await Sli({dataDir:t,intent:"Link",target:f});if(process.env.DECOCMS_LINK_MANAGED!=="1")await AMt(f,d.accessToken);let h=E.reconcile();if(i.prune){let n=E.prune({missing:!0,merged:!0});if(!i.tui)console.log(`Pruned local sandboxes: removed ${n.removed.length}, skipped ${n.skipped.length}.`);h=E.reconcile()}let _;if(i.tui){let{render:n}=await import("ink"),{createElement:O}=await import("react"),{LinkApp:N}=await Promise.resolve().then(() => (Geu(),keu)),{pushSandboxEvent:y,setCluster:Z,setClusterUrl:T,setDaemonError:B,setIngress:F,setLogPath:A,setMachine:G,setPersistedSandboxes:I}=await Promise.resolve().then(() => (lq(),MRi));TMt(t,{recursive:!0});let k=qRi(t,"link.log");c=BMt(k,"w"),A(k),I(h),T(f),Z("connecting"),_={onEvent:(q)=>y(q),onIngress:(q)=>F(q,`http://127.0.0.1:${q}`),onCluster:(q)=>Z(q),onMachine:(q)=>G(q)},l=PMt(B,c),n(O(N),{patchConsole:!1})}else if(i.banner!==!1){let{printBanner:n}=await Promise.resolve().then(() => (fW(),uq));n(i.version??"0.0.0")}$();let v=process.env.DECOCMS_LINK_MANAGED!=="1",D=await deu({port:u,clusterBaseUrl:f,dataDir:t,session:d,monitor:_,logFd:c,perSandboxLogs:v,hotReload:i.hotReload});if(i.tui){let{setLinkActions:n}=await Promise.resolve().then(() => (lq(),MRi));n({stopSandbox:D.stopSandbox,removeSandbox:D.removeSandbox,inspectSandbox:D.inspectSandbox,quit:D.stop})}return await D.stopped}catch(w){return l?.(),console.error(veu(w)?Deu(u):w instanceof Error?w.message:String(w)),1}finally{if(l?.(),c!==void 0)try{ZMt(c)}catch{}$()}}var jeu=g(()=>{nzi();heu();QRi();neu();LRi()});var oRi={};Xi(oRi,{resolveDevLinkClusterUrl:()=>SMt,populateDevLinkToxiProxy:()=>Yeu,isDevLinkToxiProxyEnabled:()=>GMt,ensureDevLinkToxiProxy:()=>LMt,buildDevLinkToxiProxyConfig:()=>Leu,DEV_LINK_TOXIPROXY_SERVICE_NAME:()=>Jeu,DEV_LINK_TOXIPROXY_PROXY_NAME:()=>Xeu});function GMt(i=process.env){return i.DECO_DEV_LINK_TOXIPROXY==="1"}function VRi(i,u){if(!Number.isInteger(i)||i<1||i>65535)throw Error(`${u} must be an integer port in 1..65535`);return i}function Leu(i){let u=new URL(i.serverUrl);if(u.protocol!=="http:")throw Error("DECO_DEV_LINK_TOXIPROXY only supports http local Studio URLs");let t=VRi(i.apiPort,"apiPort"),f=VRi(i.listenPort,"listenPort");if(u.port.length===0)throw Error("serverUrl must include an explicit valid port");let l=VRi(Number.parseInt(u.port,10),"upstreamPort"),c=`http://127.0.0.1:${l}`,E=`http://127.0.0.1:${f}`;return{serviceName:Jeu,proxyName:Xeu,apiUrl:`http://127.0.0.1:${t}`,listen:`0.0.0.0:${f}`,upstream:`host.docker.internal:${l}`,publicTargetUrl:c,clusterUrl:E,logLine:`[dev-link-toxiproxy] ready: ${E} -> ${c}`}}function SMt(i){return i.toxiproxy?.clusterUrl??i.serverUrl}async function rRi(i,u,t){if(i.ok)return;let f=await i.text();throw Error(`ToxiProxy ${u} failed for ${t}: status=${i.status} statusText=${i.statusText} body=${f}`)}function aRi(i){if(i instanceof Error)return i.name==="Error"?i.message:`${i.name}: ${i.message}`;return String(i)}function Weu(i){if(!(i instanceof Error))return!1;if(i.name==="TimeoutError")return!0;return Weu(i.cause)}async function mRi(i,u,t,f){try{return await i(t,f)}catch(l){throw Error(`ToxiProxy ${u} failed for ${t}: ${aRi(l)}`,{cause:l})}}async function Yeu(i,u=fetch){let t=`${i.apiUrl}/reset`,f=await mRi(u,"reset",t,{method:"POST"});await rRi(f,"reset",t);let l=`${i.apiUrl}/populate`,c=await mRi(u,"populate",l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify([{name:i.proxyName,listen:i.listen,upstream:i.upstream,enabled:!0}])});await rRi(c,"populate",l)}async function jMt(i,u){let t=`${i.apiUrl}/version`;try{await Cl(async()=>{let f=await mRi(u,"readiness check",t,{method:"GET",signal:AbortSignal.timeout(kMt)});await rRi(f,"readiness check",t)},{maxAttempts:xMt,minTimeout:Keu,maxTimeout:Keu,multiplier:1,jitter:0,isRetriable:(f)=>!Weu(f)})}catch(f){let l=f instanceof Wc?f.cause:f;throw Error(`ToxiProxy API did not become ready at ${t}: ${aRi(l)}`,{cause:l})}}async function KMt(i){if(i===null)return"";return await new Response(i).text()}async function eRi(i,u={}){let t=["docker",...i].join(" "),f=(()=>{try{return Bun.spawn(["docker",...i],{stdout:"ignore",stderr:"pipe"})}catch($){throw Error(`Docker command failed to start (${t}): ${aRi($)}`,{cause:$})}})(),[l,c]=await Promise.all([f.exited,KMt(f.stderr)]);if(l===0||u.ignoreFailure===!0)return;let E=c.trim().length>0?`: ${c.trim()}`:"";throw Error(`Docker command failed (${t}) with exit ${l}${E}`)}async function JMt(i,u){let t=`deco-dev-link-toxiproxy-${i}`;await eRi(["rm","-f",t],{ignoreFailure:!0}),await eRi(["run","--rm","-d","--name",t,"-p",`127.0.0.1:${i}:8474`,"-p",`127.0.0.1:${u}:${u}`,"ghcr.io/shopify/toxiproxy:2.12.0","-host=0.0.0.0"])}async function XMt(i,u){let t=`deco-dev-link-toxiproxy-${i}`;await eRi(["rm","-f",t],{ignoreFailure:!0})}async function LMt(i){let u=Leu(i),t=i.startDaemon??JMt,f=i.stopDaemon??(i.startDaemon===void 0?XMt:void 0);await t(i.apiPort,i.listenPort);let l=i.fetchImpl??fetch;try{await jMt(u,l),await Yeu(u,l)}catch(c){if(f!==void 0)try{await f(i.apiPort,i.listenPort)}catch{}throw c}return{config:u,stop:async()=>{if(f!==void 0)await f(i.apiPort,i.listenPort)}}}var Jeu="ToxiProxy",Xeu="dev_link_studio",xMt=20,Keu=100,kMt=100;var sRi=g(()=>{y4()});var Qeu={};Xi(Qeu,{migrateBetterAuth:()=>pRi});import{getMigrations as WMt}from"better-auth/db";import{sso as YMt}from"@better-auth/sso";import{organization as QMt}from"@decocms/better-auth/plugins";import{admin as zMt,apiKey as HMt,jwt as RMt,magicLink as bMt,mcp as CMt,openAPI as MMt}from"better-auth/plugins";import{emailOTP as qMt}from"better-auth/plugins/email-otp";async function pRi(i){let t={database:OM(i||f2()),plugins:[QMt({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),zMt(),HMt(),RMt(),MMt(),CMt({loginPage:"/login"}),YMt(),bMt({sendMagicLink:async()=>{}}),qMt({sendVerificationOTP:async()=>{}})]},{toBeAdded:f,toBeCreated:l,runMigrations:c}=await WMt(t);if(!f.length&&!l.length)return"up to date";return await c(),`${l.length+f.length} table(s) migrated`}var ibi=g(()=>{cE()});var ubi={};Xi(ubi,{up:()=>VMt,down:()=>rMt});import{sql as $v}from"kysely";async function VMt(i){await i.schema.createTable("connections").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(u)=>u.notNull()).addColumn("connectionUrl","text",(u)=>u.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(u)=>u.notNull().defaultTo("active")).addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("api_keys").addColumn("id","text",(u)=>u.primaryKey()).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(u)=>u.notNull()).addColumn("hashedKey","text",(u)=>u.notNull().unique()).addColumn("permissions","text",(u)=>u.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("audit_logs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(u)=>u.references("user.id").onDelete("set null")).addColumn("connectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("toolName","text",(u)=>u.notNull()).addColumn("allowed","integer",(u)=>u.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await i.schema.createTable("oauth_clients").addColumn("id","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(u)=>u.notNull()).addColumn("redirectUris","text",(u)=>u.notNull()).addColumn("grantTypes","text",(u)=>u.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_authorization_codes").addColumn("code","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(u)=>u.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(u)=>u.notNull()).addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(u)=>u.primaryKey()).addColumn("clientId","text",(u)=>u.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("downstream_tokens").addColumn("id","text",(u)=>u.primaryKey()).addColumn("connectionId","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(u)=>u.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(u)=>u.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(u)=>u.notNull().defaultTo($v`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo($v`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 rMt(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 zeu=()=>{};var tbi={};Xi(tbi,{up:()=>mMt,down:()=>eMt});import{sql as Heu}from"kysely";async function mMt(i){await i.schema.createTable("organization_settings").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(u)=>u.notNull().defaultTo(Heu`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(u)=>u.notNull().defaultTo(Heu`CURRENT_TIMESTAMP`)).execute()}async function eMt(i){await i.schema.dropTable("organization_settings").execute()}var Reu=()=>{};var fbi={};Xi(fbi,{up:()=>aMt,down:()=>oMt});async function aMt(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 oMt(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 lbi={};Xi(lbi,{up:()=>sMt,down:()=>pMt});async function sMt(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(u)=>u.notNull()).addColumn("updatedAt","text",(u)=>u.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((u)=>u.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 pMt(i){await i.schema.createTable("organization_settings_new").addColumn("organizationId","text",(u)=>u.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(u)=>u.notNull()).addColumn("updatedAt","text",(u)=>u.notNull()).execute(),await i.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((u)=>u.selectFrom("organization_settings").select(["organizationId",u.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 cbi={};Xi(cbi,{up:()=>iqt,down:()=>uqt});async function iqt(i){await i.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await i.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function uqt(i){await i.schema.alterTable("connections").dropColumn("configuration_state").execute(),await i.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Ebi={};Xi(Ebi,{up:()=>fqt,down:()=>lqt});import{sql as tqt}from"kysely";async function fqt(i){await i.schema.alterTable("organization_settings").addColumn("sidebar_items",tqt`text`).execute()}async function lqt(i){await i.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var beu=()=>{};var $bi={};Xi($bi,{up:()=>cqt,down:()=>Eqt});async function cqt(i){await i.schema.createTable("monitoring_logs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(u)=>u.notNull()).addColumn("tool_name","text",(u)=>u.notNull()).addColumn("input","text",(u)=>u.notNull()).addColumn("output","text",(u)=>u.notNull()).addColumn("is_error","integer",(u)=>u.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(u)=>u.notNull()).addColumn("timestamp","text",(u)=>u.notNull()).addColumn("user_id","text").addColumn("request_id","text",(u)=>u.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 Eqt(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 wbi={};Xi(wbi,{up:()=>$qt,down:()=>wqt});import{sql as cq}from"kysely";async function $qt(i){await i.schema.createTable("events").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(u)=>u.notNull()).addColumn("source","text",(u)=>u.notNull()).addColumn("specversion","text",(u)=>u.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(u)=>u.notNull()).addColumn("datacontenttype","text",(u)=>u.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(u)=>u.notNull().defaultTo("pending")).addColumn("attempts","integer",(u)=>u.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(cq`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(cq`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_subscriptions").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(u)=>u.notNull()).addColumn("filter","text").addColumn("enabled","integer",(u)=>u.notNull().defaultTo(1)).addColumn("created_at","text",(u)=>u.notNull().defaultTo(cq`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(cq`CURRENT_TIMESTAMP`)).execute(),await i.schema.createTable("event_deliveries").addColumn("id","text",(u)=>u.primaryKey()).addColumn("event_id","text",(u)=>u.notNull()).addColumn("subscription_id","text",(u)=>u.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(u)=>u.notNull().defaultTo("pending")).addColumn("attempts","integer",(u)=>u.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(cq`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 wqt(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 Ceu=()=>{};var dbi={};Xi(dbi,{up:()=>hqt,down:()=>_qt});import{sql as dqt}from"kysely";async function hqt(i){await i.schema.dropTable("audit_logs").ifExists().execute()}async function _qt(i){await i.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(u)=>u.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(u)=>u.references("user.id").onDelete("set null")).addColumn("connectionId","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("toolName","text",(u)=>u.notNull()).addColumn("allowed","integer",(u)=>u.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(u)=>u.notNull().defaultTo(dqt`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 Meu=()=>{};var hbi={};Xi(hbi,{up:()=>vqt,down:()=>Dqt});import{sql as C1i}from"kysely";async function vqt(i){await i.schema.createTable("gateways").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(u)=>u.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(u)=>u.notNull().defaultTo("active")).addColumn("is_default","integer",(u)=>u.notNull().defaultTo(0)).addColumn("created_at","text",(u)=>u.notNull().defaultTo(C1i`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(u)=>u.notNull().defaultTo(C1i`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(u)=>u.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await i.schema.createTable("gateway_connections").addColumn("id","text",(u)=>u.primaryKey()).addColumn("gateway_id","text",(u)=>u.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(C1i`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 C1i`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 Dqt(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 qeu=()=>{};var _bi={};Xi(_bi,{up:()=>nqt,down:()=>gqt});async function nqt(i){await i.schema.alterTable("gateways").addColumn("icon","text").execute()}async function gqt(i){await i.schema.alterTable("gateways").dropColumn("icon").execute()}var vbi={};Xi(vbi,{up:()=>Oqt,down:()=>Nqt});import{sql as M1i}from"kysely";async function Oqt(i){await i.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(u)=>u.notNull().defaultTo("inclusion")).execute(),await M1i`
84524
84524
  UPDATE gateways
84525
84525
  SET tool_selection_mode = CASE
@@ -86433,7 +86433,7 @@ ${l}`}return i}});var p$i=K((fy)=>{var Y2f=fy&&fy.__createBinding||(Object.creat
86433
86433
  CASE WHEN ${W0.ref("meta_json")}::jsonb->'mcp.mesh'->>'verified' = 'true' THEN 1 ELSE 0 END
86434
86434
  ) desc`}class UQ{db;constructor(i){this.db=i}async create(i){let u=new Date().toISOString(),t=i._meta??{},f=mv0(t),l=a$(f.tags),c=a$(f.categories),E={id:i.id,organization_id:i.organization_id,title:i.title,description:i.description??null,server_json:JSON.stringify(i.server),meta_json:JSON.stringify(t),tags:Zwi(l),categories:Zwi(c),is_public:i.is_public?1:0,is_unlisted:i.is_unlisted?1:0,created_at:u,updated_at:u,created_by:i.created_by??null};await this.db.insertInto("private_registry_item").values(E).execute();let $=await this.findById(i.organization_id,i.id);if(!$)throw Error(`Failed to create registry item "${i.id}"`);return $}async findById(i,u){let t=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",i).where("id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async findByIdOrName(i,u){let t=await this.findById(i,u);if(t)return t;let f=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",i).where("title","=",u).executeTakeFirst();return f?this.deserialize(f):null}async update(i,u,t){let f=await this.findById(i,u);if(!f)throw Error(`Registry item not found: ${u}`);let l=t._meta??f._meta??{},c=mv0(l),E=a$(c.tags),$=a$(c.categories),w={updated_at:new Date().toISOString()};if(t.title!==void 0)w.title=t.title;if(t.description!==void 0)w.description=t.description;if(t.server!==void 0)w.server_json=JSON.stringify(t.server);if(t._meta!==void 0)w.meta_json=JSON.stringify(t._meta);if(t._meta!==void 0)w.tags=Zwi(E),w.categories=Zwi($);if(t.is_public!==void 0)w.is_public=t.is_public?1:0;if(t.is_unlisted!==void 0)w.is_unlisted=t.is_unlisted?1:0;await this.db.updateTable("private_registry_item").set(w).where("organization_id","=",i).where("id","=",u).execute();let d=await this.findById(i,u);if(!d)throw Error(`Registry item not found after update: ${u}`);return d}async delete(i,u){let t=await this.findById(i,u);if(!t)return null;return await this.db.deleteFrom("private_registry_item").where("organization_id","=",i).where("id","=",u).execute(),t}async list(i,u={}){let t=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",i);if(!u.includeUnlisted)t=t.where("is_unlisted","=",0);let f=a$(u.tags);if(f.length>0)t=t.where(Twi("tags",f));let l=a$(u.categories);if(l.length>0)t=t.where(Twi("categories",l));if(u.where)t=t.where(Rsi(u.where));let $=(await this.db.selectFrom(t.as("filtered")).select(W0`count(*)::int`.as("count")).executeTakeFirst())?.count??0;t=t.orderBy(ev0()).orderBy("created_at","desc");let d=Nwi(u.cursor)??u.offset??0,h=u.limit??24;t=t.limit(h).offset(d);let v=(await t.execute()).map((O)=>this.deserialize(O)),D=d+h<$,n=D?Owi(d+h):void 0;return{items:v,totalCount:$,hasMore:D,nextCursor:n}}async listPublic(i,u={}){let t=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",i).where("is_public","=",1).where("is_unlisted","=",0),f=a$(u.tags);if(f.length>0)t=t.where(Twi("tags",f));let l=a$(u.categories);if(l.length>0)t=t.where(Twi("categories",l));if(u.where)t=t.where(Rsi(u.where));let $=(await this.db.selectFrom(t.as("filtered")).select(W0`count(*)::int`.as("count")).executeTakeFirst())?.count??0;t=t.orderBy(ev0()).orderBy("created_at","desc");let d=Nwi(u.cursor)??u.offset??0,h=u.limit??24;t=t.limit(h).offset(d);let v=(await t.execute()).map((O)=>this.deserialize(O)),D=d+h<$,n=D?Owi(d+h):void 0;return{items:v,totalCount:$,hasMore:D,nextCursor:n}}async getFilters(i,u){let t=this.db.selectFrom("private_registry_item").select(["tags","categories"]).where("organization_id","=",i);if(u?.publicOnly)t=t.where("is_public","=",1);if(!u?.includeUnlisted)t=t.where("is_unlisted","=",0);let f=await t.execute(),l=new Map,c=new Map;for(let $ of f){for(let w of $y($.tags))l.set(w,(l.get(w)??0)+1);for(let w of $y($.categories))c.set(w,(c.get(w)??0)+1)}let E=($)=>Array.from($.entries()).map(([w,d])=>({value:w,count:d})).sort((w,d)=>w.value.localeCompare(d.value));return{tags:E(l),categories:E(c)}}async search(i,u={},t){let f=this.db.selectFrom("private_registry_item").select(["id","title","description","meta_json","server_json","tags","categories","is_public","is_unlisted"]).where("organization_id","=",i).orderBy("created_at","desc");if(t?.publicOnly)f=f.where("is_public","=",1);if(!t?.includeUnlisted)f=f.where("is_unlisted","=",0);let l=await f.execute(),c=u.query?.trim().toLowerCase(),E=a$(u.tags),$=a$(u.categories),w=l.filter((N)=>{if(c){let y=ywi(N.server_json,{}),T=ywi(N.meta_json,{})?.["mcp.mesh"]?.short_description??"";if(![N.id,N.title,N.description??"",y.name??"",y.description??"",T].join(" ").toLowerCase().includes(c))return!1}if(E.length>0){let y=a$($y(N.tags));if(!E.every((Z)=>y.includes(Z)))return!1}if($.length>0){let y=a$($y(N.categories));if(!$.every((Z)=>y.includes(Z)))return!1}return!0}),h=Nwi(u.cursor)??0,_=u.limit??20,v=w.slice(h,h+_),D=h+_<w.length,n=D?Owi(h+_):void 0;return{items:v.map((N)=>({id:N.id,title:N.title,tags:$y(N.tags),categories:$y(N.categories),is_public:N.is_public===1,is_unlisted:N.is_unlisted===1})),totalCount:w.length,hasMore:D,nextCursor:n}}deserialize(i){let u=ywi(i.server_json,{}),t=ywi(i.meta_json,{});return{id:i.id,name:typeof u.name==="string"?u.name:void 0,title:i.title,description:i.description,_meta:t,server:u,is_public:i.is_public===1,is_unlisted:i.is_unlisted===1,created_at:i.created_at,updated_at:i.updated_at,...i.created_by?{created_by:i.created_by}:{}}}}var E9f,$9f,w9f;var bsi=g(()=>{E9f=new Set(["id","title","description","is_public","is_unlisted","created_at","updated_at","created_by"]),$9f=new Set(["is_public","is_unlisted"]),w9f={_meta:"meta_json",server:"server_json"}});import{randomUUID as _9f}from"crypto";function av0(i,u){if(!i)return u;try{return JSON.parse(i)}catch{return u}}class PQ{db;constructor(i){this.db=i}async createOrUpdate(i){let u=new Date().toISOString(),t=await this.findPendingByRequestedId(i.organization_id,i.requested_id);if(t){let E={title:i.title,description:i.description??null,server_json:JSON.stringify(i.server),meta_json:i._meta?JSON.stringify(i._meta):null,requester_name:i.requester_name??null,requester_email:i.requester_email??null,updated_at:u};await this.db.updateTable("private_registry_publish_request").set(E).where("organization_id","=",i.organization_id).where("id","=",t.id).execute();let $=await this.findById(i.organization_id,t.id);if(!$)throw Error("Failed to update publish request");return $}let f=_9f(),l={id:f,organization_id:i.organization_id,requested_id:i.requested_id,status:"pending",title:i.title,description:i.description??null,server_json:JSON.stringify(i.server),meta_json:i._meta?JSON.stringify(i._meta):null,requester_name:i.requester_name??null,requester_email:i.requester_email??null,reviewer_notes:null,created_at:u,updated_at:u};await this.db.insertInto("private_registry_publish_request").values(l).execute();let c=await this.findById(i.organization_id,f);if(!c)throw Error("Failed to create publish request");return c}async findPendingByRequestedId(i,u){let t=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",i).where("requested_id","=",u).where("status","=","pending").executeTakeFirst();return t?this.deserialize(t):null}async findById(i,u){let t=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",i).where("id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async list(i,u={}){let t=this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",i),f=this.db.selectFrom("private_registry_publish_request").select((d)=>d.fn.countAll().as("count")).where("organization_id","=",i);if(u.status)t=t.where("status","=",u.status),f=f.where("status","=",u.status);let l=await f.executeTakeFirst(),c=Number(l?.count??0),E=u.sortBy??"created_at",$=u.sortDirection??"desc";if(E==="title")t=t.orderBy("title",$);else t=t.orderBy("created_at",$);return{items:(await t.limit(u.limit??24).offset(u.offset??0).execute()).map((d)=>this.deserialize(d)),totalCount:c}}async updateStatus(i,u,t,f){let l={status:t,updated_at:new Date().toISOString(),reviewer_notes:f??null};await this.db.updateTable("private_registry_publish_request").set(l).where("organization_id","=",i).where("id","=",u).execute();let c=await this.findById(i,u);if(!c)throw Error(`Publish request not found: ${u}`);return c}async countPending(i){let u=await this.db.selectFrom("private_registry_publish_request").select((t)=>t.fn.countAll().as("count")).where("organization_id","=",i).where("status","=","pending").executeTakeFirst();return Number(u?.count??0)}async delete(i,u){let t=await this.findById(i,u);if(!t)return null;return await this.db.deleteFrom("private_registry_publish_request").where("organization_id","=",i).where("id","=",u).execute(),t}deserialize(i){return{id:i.id,organization_id:i.organization_id,requested_id:i.requested_id??null,status:i.status,title:i.title,description:i.description,_meta:av0(i.meta_json,{}),server:av0(i.server_json,{name:""}),requester_name:i.requester_name,requester_email:i.requester_email,reviewer_notes:i.reviewer_notes,created_at:i.created_at,updated_at:i.updated_at}}}var Csi=()=>{};import{createHash as v9f,randomBytes as D9f,randomUUID as n9f}from"crypto";function ov0(i){return v9f("sha256").update(i).digest("hex")}function g9f(){return`prk_${D9f(32).toString("hex")}`}class AQ{db;constructor(i){this.db=i}async generate(i,u){let t=n9f(),f=g9f(),l=await ov0(f),c=f.slice(0,12),E=new Date().toISOString();return await this.db.insertInto("private_registry_publish_api_key").values({id:t,organization_id:i,name:u,key_hash:l,prefix:c,created_at:E}).execute(),{entity:{id:t,organization_id:i,name:u,prefix:c,created_at:E},key:f}}async list(i){return await this.db.selectFrom("private_registry_publish_api_key").select(["id","organization_id","name","prefix","created_at"]).where("organization_id","=",i).orderBy("created_at","desc").execute()}async revoke(i,u){return(await this.db.deleteFrom("private_registry_publish_api_key").where("organization_id","=",i).where("id","=",u).execute()).length>0}async validate(i,u){let t=await ov0(u),f=await this.db.selectFrom("private_registry_publish_api_key").select(["id"]).where("organization_id","=",i).where("key_hash","=",t).executeTakeFirst();return Boolean(f)}async hasKeys(i){let u=await this.db.selectFrom("private_registry_publish_api_key").select((t)=>t.fn.countAll().as("count")).where("organization_id","=",i).executeTakeFirst();return Number(u?.count??0)>0}}var Msi=()=>{};import{randomUUID as sv0}from"crypto";function pv0(i,u){if(!i)return u;try{return JSON.parse(i)}catch{return u}}class Bwi{db;constructor(i){this.db=i}async create(i){let u=sv0(),t=new Date().toISOString(),f={id:u,organization_id:i.organization_id,status:i.status??"pending",config_snapshot:i.config_snapshot?JSON.stringify(i.config_snapshot):null,total_items:i.total_items??0,tested_items:0,passed_items:0,failed_items:0,skipped_items:0,current_item_id:null,started_at:i.started_at??null,finished_at:null,created_at:t};await this.db.insertInto("private_registry_monitor_run").values(f).execute();let l=await this.findById(i.organization_id,u);if(!l)throw Error(`Failed to create monitor run ${u}`);return l}async findById(i,u){let t=await this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",i).where("id","=",u).executeTakeFirst();return t?this.deserializeRun(t):null}async list(i,u={}){let t=this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",i),f=this.db.selectFrom("private_registry_monitor_run").select(($)=>$.fn.countAll().as("count")).where("organization_id","=",i);if(u.status)t=t.where("status","=",u.status),f=f.where("status","=",u.status);let l=await f.executeTakeFirst(),c=Number(l?.count??0);return{items:(await t.orderBy("created_at","desc").limit(u.limit??24).offset(u.offset??0).execute()).map(($)=>this.deserializeRun($)),totalCount:c}}async update(i,u,t){let f={};if(t.total_items!==void 0)f.total_items=t.total_items;if(t.status!==void 0)f.status=t.status;if(t.tested_items!==void 0)f.tested_items=t.tested_items;if(t.passed_items!==void 0)f.passed_items=t.passed_items;if(t.failed_items!==void 0)f.failed_items=t.failed_items;if(t.skipped_items!==void 0)f.skipped_items=t.skipped_items;if(t.current_item_id!==void 0)f.current_item_id=t.current_item_id;if(t.started_at!==void 0)f.started_at=t.started_at;if(t.finished_at!==void 0)f.finished_at=t.finished_at;await this.db.updateTable("private_registry_monitor_run").set(f).where("organization_id","=",i).where("id","=",u).execute();let l=await this.findById(i,u);if(!l)throw Error(`Monitor run not found: ${u}`);return l}deserializeRun(i){return{id:i.id,organization_id:i.organization_id,status:i.status,config_snapshot:pv0(i.config_snapshot,null),total_items:Number(i.total_items??0),tested_items:Number(i.tested_items??0),passed_items:Number(i.passed_items??0),failed_items:Number(i.failed_items??0),skipped_items:Number(i.skipped_items??0),current_item_id:i.current_item_id,started_at:i.started_at,finished_at:i.finished_at,created_at:i.created_at}}}class Fwi{db;constructor(i){this.db=i}async create(i){let u=sv0(),t=new Date().toISOString(),f={id:u,run_id:i.run_id,organization_id:i.organization_id,item_id:i.item_id,item_title:i.item_title,status:i.status,error_message:i.error_message??null,connection_ok:i.connection_ok?1:0,tools_listed:i.tools_listed?1:0,tool_results:i.tool_results?JSON.stringify(i.tool_results):null,agent_summary:i.agent_summary??null,duration_ms:i.duration_ms??0,action_taken:i.action_taken??"none",tested_at:t};await this.db.insertInto("private_registry_monitor_result").values(f).execute();let l=await this.findById(i.organization_id,u);if(!l)throw Error("Failed to create test result");return l}async findById(i,u){let t=await this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",i).where("id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async listByRun(i,u,t={}){let f=this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",i).where("run_id","=",u),l=this.db.selectFrom("private_registry_monitor_result").select((w)=>w.fn.countAll().as("count")).where("organization_id","=",i).where("run_id","=",u);if(t.status)f=f.where("status","=",t.status),l=l.where("status","=",t.status);let c=await l.executeTakeFirst(),E=Number(c?.count??0);return{items:(await f.orderBy("tested_at","desc").limit(t.limit??50).offset(t.offset??0).execute()).map((w)=>this.deserialize(w)),totalCount:E}}async update(i,u,t){let f={};if(t.status!==void 0)f.status=t.status;if(t.error_message!==void 0)f.error_message=t.error_message;if(t.connection_ok!==void 0)f.connection_ok=t.connection_ok?1:0;if(t.tools_listed!==void 0)f.tools_listed=t.tools_listed?1:0;if(t.tool_results!==void 0)f.tool_results=JSON.stringify(t.tool_results);if(t.agent_summary!==void 0)f.agent_summary=t.agent_summary;if(t.duration_ms!==void 0)f.duration_ms=t.duration_ms;if(t.action_taken!==void 0)f.action_taken=t.action_taken;await this.db.updateTable("private_registry_monitor_result").set(f).where("organization_id","=",i).where("id","=",u).execute();let l=await this.findById(i,u);if(!l)throw Error(`Monitor result not found: ${u}`);return l}deserialize(i){return{id:i.id,run_id:i.run_id,organization_id:i.organization_id,item_id:i.item_id,item_title:i.item_title,status:i.status,error_message:i.error_message,connection_ok:i.connection_ok===1,tools_listed:i.tools_listed===1,tool_results:pv0(i.tool_results,[]),agent_summary:i.agent_summary,duration_ms:Number(i.duration_ms??0),action_taken:i.action_taken,tested_at:i.tested_at}}}var i50=()=>{};import{randomUUID as O9f}from"crypto";class Uwi{db;constructor(i){this.db=i}async findByItemId(i,u){let t=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",i).where("item_id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async list(i){return(await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",i).orderBy("updated_at","desc").execute()).map((t)=>this.deserialize(t))}async findByConnectionId(i,u){let t=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",i).where("connection_id","=",u).executeTakeFirst();return t?this.deserialize(t):null}async upsert(i){let u=await this.findByItemId(i.organization_id,i.item_id),t=new Date().toISOString();if(!u){let l={id:O9f(),organization_id:i.organization_id,item_id:i.item_id,connection_id:i.connection_id,auth_status:i.auth_status??"none",created_at:t,updated_at:t};await this.db.insertInto("private_registry_monitor_connection").values(l).execute()}else{let l={connection_id:i.connection_id,auth_status:i.auth_status??u.auth_status,updated_at:t};await this.db.updateTable("private_registry_monitor_connection").set(l).where("organization_id","=",i.organization_id).where("item_id","=",i.item_id).execute()}let f=await this.findByItemId(i.organization_id,i.item_id);if(!f)throw Error("Failed to save monitor connection");return f}async updateAuthStatus(i,u,t){return await this.db.updateTable("private_registry_monitor_connection").set({auth_status:t,updated_at:new Date().toISOString()}).where("organization_id","=",i).where("item_id","=",u).execute(),this.findByItemId(i,u)}deserialize(i){return{id:i.id,organization_id:i.organization_id,item_id:i.item_id,connection_id:i.connection_id,auth_status:i.auth_status,created_at:i.created_at,updated_at:i.updated_at}}}var u50=()=>{};var t50=g(()=>{bsi();Csi();Msi();i50();u50()});class qsi{db;constructor(i){this.db=i}async listOrgTags(i){return(await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",i).orderBy("name","asc").execute()).map((t)=>this.tagFromDbRow(t))}async getTag(i){let u=await this.db.selectFrom("organization_tags").selectAll().where("id","=",i).executeTakeFirst();return u?this.tagFromDbRow(u):null}async getTagByName(i,u){let t=await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",i).where("name","=",u).executeTakeFirst();return t?this.tagFromDbRow(t):null}async createTag(i,u){let t=Jf("tag"),f=new Date().toISOString();await this.db.insertInto("organization_tags").values({id:t,organization_id:i,name:u,created_at:f}).onConflict((c)=>c.columns(["organization_id","name"]).doNothing()).execute();let l=await this.getTagByName(i,u);if(!l)throw Error(`Failed to create or retrieve tag: ${u}`);return l}async deleteTag(i){await this.db.deleteFrom("organization_tags").where("id","=",i).execute()}async getMemberTags(i){return(await this.db.selectFrom("member_tags").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.created_at"]).where("member_tags.member_id","=",i).orderBy("organization_tags.name","asc").execute()).map((t)=>this.tagFromDbRow(t))}async setMemberTags(i,u){await this.db.transaction().execute(async(t)=>{if(await t.deleteFrom("member_tags").where("member_id","=",i).execute(),u.length>0){let f=new Date().toISOString();await t.insertInto("member_tags").values(u.map((l)=>({id:Jf("mtag"),member_id:i,tag_id:l,created_at:f}))).execute()}})}async addMemberTag(i,u){let t=new Date().toISOString();await this.db.insertInto("member_tags").values({id:Jf("mtag"),member_id:i,tag_id:u,created_at:t}).onConflict((f)=>f.columns(["member_id","tag_id"]).doNothing()).execute()}async removeMemberTag(i,u){await this.db.deleteFrom("member_tags").where("member_id","=",i).where("tag_id","=",u).execute()}async verifyMemberOrg(i,u){return await this.db.selectFrom("member").select("id").where("id","=",i).where("organizationId","=",u).executeTakeFirst()!==void 0}async getUserTagsInOrg(i,u){return(await this.db.selectFrom("member").innerJoin("member_tags","member_tags.member_id","member.id").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.created_at"]).where("member.userId","=",i).where("member.organizationId","=",u).orderBy("organization_tags.name","asc").execute()).map((f)=>this.tagFromDbRow(f))}async getMembersWithTags(i){let u=await this.db.selectFrom("member").leftJoin("member_tags","member_tags.member_id","member.id").leftJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["member.id as memberId","organization_tags.name as tagName"]).where("member.organizationId","=",i).execute(),t=new Map;for(let f of u){if(!t.has(f.memberId))t.set(f.memberId,[]);if(f.tagName)t.get(f.memberId).push(f.tagName)}return t}tagFromDbRow(i){return{id:i.id,organizationId:i.organization_id,name:i.name,createdAt:i.created_at}}}var f50=g(()=>{c$()});class Vsi{db;constructor(i){this.db=i}async findById(i,u){let t=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",i).where((f)=>f.exists(f.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",i).where("m2.userId","=",u))).executeTakeFirst();if(!t)return null;return{id:t.id,name:t.name,email:t.email,role:"",createdAt:t.createdAt,updatedAt:t.updatedAt,image:t.image??void 0}}}class wy{userId;toolName;boundAuth;role;connectionId;getToolMeta;organizationId;_granted=!1;constructor(i,u,t,f,l="self",c,E){this.userId=i;this.toolName=u;this.boundAuth=t;this.role=f;this.connectionId=l;this.getToolMeta=c;this.organizationId=E}setToolName(i){this.toolName=i}setOrganizationId(i){this.organizationId=i}getOrganizationId(){return this.organizationId}setRole(i){this.role=i}getRole(){return this.role}grant(){this._granted=!0}async check(...i){if(this._granted)return;if(this.toolName?.startsWith("MESH_PUBLIC_")){this.grant();return}if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new IQ("Authentication required. Please provide a valid OAuth token or API key.")}let u=i.length>0?i:this.toolName?[this.toolName]:[];if(u.length===0)throw new c8("No resources specified for access check");for(let t of u)if(await this.checkResource(t)){this.grant();return}throw new c8(`Access denied to: ${u.join(", ")}`)}async checkResource(i){if(!this.userId&&!this.boundAuth)return!1;return this.boundAuth?.isApiKeyPrincipal?this.checkApiKeyAccess(i):this.checkMemberAccess(i)}async checkApiKeyAccess(i){if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[i]})}async checkMemberAccess(i){if(this.userId&&this.role&&Nl0.has(i))return!0;if(this.role==="admin"||this.role==="owner")return!0;if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[i]},{organizationId:this.organizationId,role:this.role})}async isToolPublic(){if(this.toolName?.startsWith("MESH_PUBLIC_"))return!0;if(!this.getToolMeta)return!1;try{let i=await this.getToolMeta();if(!i)return!1;let t=i[UE0]?.public_tool;return t===!0||t==="true"}catch{return!1}}granted(){return this._granted}}var IQ,c8;var dy=g(()=>{tY();IQ=class IQ extends Error{constructor(i){super(i);this.name="UnauthorizedError"}};c8=class c8 extends Error{constructor(i){super(i);this.name="ForbiddenError"}}});function l50(i){let u={};for(let t of Object.keys(i))u[t]=["*"];return u}function w$(i){let u=i?.metadata;if(!u)return!1;try{return(typeof u==="string"?JSON.parse(u):u).archived===!0}catch{return!1}}function Pwi(i){let u=L7.get(i);if(!u||u.state==="CLOSED")return;if(u.state==="HALF_OPEN"){if(u.halfOpenInFlight)throw new xQ(i,0);u.halfOpenInFlight=!0;return}let t=Date.now()-u.lastFailureTime;if(t>=eei){u.state="HALF_OPEN",u.halfOpenInFlight=!0;return}throw new xQ(i,eei-t)}function Awi(i){L7.delete(i)}function Iwi(i){let u=L7.get(i);if(!u){N9f(),L7.set(i,{state:1>=mei?"OPEN":"CLOSED",consecutiveFailures:1,lastFailureTime:Date.now(),halfOpenInFlight:!1});return}if(u.consecutiveFailures++,u.lastFailureTime=Date.now(),u.halfOpenInFlight=!1,u.consecutiveFailures>=mei)u.state="OPEN"}function N9f(){if(L7.size<oEi)return;let i=null,u=1/0;for(let[t,f]of L7)if(f.lastFailureTime<u)u=f.lastFailureTime,i=t;if(i)L7.delete(i)}var L7,xQ;var rsi=g(()=>{jl();L7=new Map;Ft.createObservableGauge("mcp_circuit_breaker.circuits",{description:"MCP connection circuits by state (open, half_open)",unit:"{circuits}"}).addCallback((i)=>{let u=0,t=0;for(let f of L7.values())if(f.state==="OPEN")u++;else if(f.state==="HALF_OPEN")t++;i.observe(u,{state:"open"}),i.observe(t,{state:"half_open"})});xQ=class xQ extends Error{cooldownRemainingMs;constructor(i,u){super(`Connection ${i} circuit breaker is open \u2014 downstream server unreachable. `+`Retry in ${Math.ceil(u/1000)}s.`);this.name="CircuitOpenError",this.cooldownRemainingMs=u}}});function kQ(...i){if(B9f)console.log("[mcp-read-cache]",...i)}function F9f(i){return i.kind==="org"?"org":`u:${i.userId}`}function msi(i){if(i===null||typeof i!=="object")return JSON.stringify(i)??"null";if(Array.isArray(i))return`[${i.map(msi).join(",")}]`;return`{${Object.keys(i).sort().map((t)=>`${JSON.stringify(t)}:${msi(i[t])}`).join(",")}}`}class E50{config;maxEntries;now;maxTotalBytes;store=new Map;revalidating=new Set;totalBytes=0;constructor(i=y9f,u=Z9f,t=()=>Date.now(),f=T9f){this.config=i;this.maxEntries=u;this.now=t;this.maxTotalBytes=f}stats(){return{entries:this.store.size,bytes:this.totalBytes}}deleteKey(i){let u=this.store.get(i);if(u)this.store.delete(i),this.totalBytes-=u.bytes}key(i,u,t,f){return`${u}:${F9f(t)}:${i}:${msi(f)}`}storeSet(i,u,t,f){let l;try{l=JSON.stringify(u).length}catch{kQ("SKIP non-serializable",i);return}if(l>f){kQ("SKIP oversize",i,`${l}b > cap ${f}b`);return}this.deleteKey(i);while(this.store.size>0&&(this.store.size>=this.maxEntries||this.totalBytes+l>this.maxTotalBytes)){let c=this.store.keys().next().value;if(c===void 0)break;this.deleteKey(c)}this.store.set(i,{value:u,storedAt:t,bytes:l}),this.totalBytes+=l}async fetch(i){let{type:u,connectionId:t,scope:f,params:l,fetchLive:c,shouldCache:E,onRevalidation:$}=i,w=this.config[u],d=this.key(u,t,f,l),h=this.now(),_=this.store.get(d),v=_?h-_.storedAt:1/0;if(!_||v>w.maxStaleMs){xwi.add(1,{type:u,outcome:"miss"}),kQ(_?"EXPIRED":"MISS",d);let D=await c();if(E?.(D)??!0)this.storeSet(d,D,this.now(),w.maxValueBytes);else kQ("NOT-CACHED (shouldCache=false)",d);return D}if(this.store.delete(d),this.store.set(d,_),v>w.revalidateAfterMs&&!this.revalidating.has(d)){xwi.add(1,{type:u,outcome:"stale"}),kQ("STALE \u2192 serve + revalidate",d,`age=${v}ms`),this.revalidating.add(d);let D=c().then((n)=>{if(E?.(n)??!0)this.storeSet(d,n,this.now(),w.maxValueBytes)}).catch(()=>{xwi.add(1,{type:u,outcome:"error"})}).finally(()=>this.revalidating.delete(d));$?.(D)}else xwi.add(1,{type:u,outcome:"hit"}),kQ("HIT",d,`age=${v}ms`);return _.value}invalidate(i){let u=`${i}:`;for(let t of[...this.store.keys()])if(t.startsWith(u))this.deleteKey(t)}}function asi(){return yu().mcpCacheEnabled}function Gwi(){return asi()?esi:null}var xwi,kwi=1024,c50,y9f,Z9f=2000,T9f,B9f,esi;var Swi=g(()=>{jl();vt();xwi=Ft.createCounter("mcp_read_cache.fetches",{description:"MCP read cache outcomes (hit, stale, miss, error)",unit:"{fetches}"}),c50=kwi*kwi,y9f={"tools/call":{revalidateAfterMs:30000,maxStaleMs:300000,maxValueBytes:512*kwi},"resources/read":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:4*c50},"prompts/get":{revalidateAfterMs:60000,maxStaleMs:300000,maxValueBytes:512*kwi}},T9f=256*c50,B9f=typeof process<"u"&&!!process.env?.MCP_CACHE_DEBUG;esi=new E50;Ft.createObservableGauge("mcp_read_cache.entries",{description:"Current entry count in the per-pod MCP read cache",unit:"{entries}"}).addCallback((i)=>i.observe(esi.stats().entries));Ft.createObservableGauge("mcp_read_cache.bytes",{description:"Approximate total bytes held in the per-pod MCP read cache",unit:"By"}).addCallback((i)=>i.observe(esi.stats().bytes))});function d50(i){Gwi()?.invalidate(i)}function GQ(i){d50(i);let u=osi?.();if(!u)return;try{u.publish($50,U9f.encode(JSON.stringify({connectionId:i,originId:w50})))}catch(t){console.warn("[McpCacheInvalidation] publish failed (non-critical):",t)}}function h50(i){if(osi=i,Km)return;let u=i();if(!u)return;Km=u.subscribe($50),(async()=>{for await(let t of Km)try{let f=JSON.parse(P9f.decode(t.data));if(f.originId===w50)continue;d50(f.connectionId)}catch{}})().catch(console.error)}function _50(){Km?.unsubscribe(),Km=null,osi=void 0}var $50="studio.mcp-cache.invalidate",w50,U9f,P9f,osi,Km=null;var Jm=g(()=>{Swi();w50=crypto.randomUUID(),U9f=new TextEncoder,P9f=new TextDecoder});function A9f(i,u,t){let f=Object.keys(t??{}),l=u?.required??[],c=l.filter((w)=>!f.includes(w)),E=(w)=>{let d=u?.properties?.[w]?.type;return d?`${w} (${d})`:w};return[`Invalid arguments for "${i}".`,l.length?`Required: ${l.map(E).join(", ")}.`:"",`You sent: ${f.length?f.join(", "):"(none)"}.`,c.length?`Missing required: ${c.join(", ")}.`:""].filter(Boolean).join(" ")}function v50(i,u,t,f){if(!(i instanceof Ku)||i.code!==zu.InvalidParams)return i;if(!u)return i;let l=A9f(u,t,f),c=i.message.replace(/^MCP error -?\d+: /,"");return new Ku(zu.InvalidParams,`${c}
86435
86435
 
86436
- ${l}`,i.data)}var D50=g(()=>{Kl()});async function I9f(i,u,t){if(!i)return!1;let f=await i.get("tools",u).catch(()=>null);if(!f)return!1;for(let l of f)if(typeof l==="object"&&l!==null&&l.name===t)return l.annotations?.readOnlyHint===!0;return!1}function ssi(){return{kind:"org"}}function W7(i,u,t,f){let l=new G1({name:`lazy-${i.id}`,version:"1.0.0"},{capabilities:{},jsonSchemaValidator:Xl}),c=i.metadata?.isDevConnection===!0,E=null;function $(){if(Pwi(i.id),!E)E=Nc(i,u,t).then((n)=>{return Awi(i.id),n}).catch((n)=>{throw E=null,Iwi(i.id),n});return E}let w=(n,O)=>n!==void 0||O!==void 0,d=(n,O,N,y)=>{return async(Z,T)=>{if(i.connection_type==="VIRTUAL"||c||!f||w(Z,T)){let F=await $();return O(F,Z,T)}let B=await w7(n,i.id,async()=>{let F=await $(),A=await O(F);return N(A)},f,(F)=>u.pendingRevalidations.push(F),$7);return y(B??[])}};l.listTools=d("tools",(n,O,N)=>n.listTools(O,N),(n)=>n.tools,(n)=>({tools:n})),l.listResources=d("resources",(n,O,N)=>n.listResources(O,N),(n)=>n.resources,(n)=>({resources:n})),l.listPrompts=d("prompts",(n,O,N)=>n.listPrompts(O,N),(n)=>n.prompts,(n)=>({prompts:n}));let h=Gwi(),_=i.connection_type!=="VIRTUAL"&&!c,v=async(n,O,N)=>{let y=n?.name,Z=_&&typeof y==="string"&&await I9f(f,i.id,y);if(h&&Z&&!O)return await h.fetch({type:"tools/call",connectionId:i.id,scope:ssi(),params:{name:y,arguments:n?.arguments},fetchLive:async()=>{return(await $()).callTool(n,O,N)},shouldCache:(F)=>F?.isError!==!0,onRevalidation:(F)=>u.pendingRevalidations.push(F)});let T=await $();if(h&&_&&!Z)try{return await T.callTool(n,O,N)}finally{GQ(i.id)}return T.callTool(n,O,N)};l.callTool=async(n,O,N)=>{try{return await v(n,O,N)}catch(y){let Z=n?.name;if(y instanceof Ku&&y.code===zu.InvalidParams&&typeof Z==="string"&&f){let B=(await f.get("tools",i.id).catch(()=>null))?.find((F)=>typeof F==="object"&&F!==null&&F.name===Z);throw v50(y,Z,B?.inputSchema,n?.arguments)}throw y}},l.getPrompt=async(n,O)=>{if(!h||!_)return(await $()).getPrompt(n,O);return await h.fetch({type:"prompts/get",connectionId:i.id,scope:ssi(),params:n,fetchLive:async()=>{return(await $()).getPrompt(n,O)},onRevalidation:(y)=>u.pendingRevalidations.push(y)})},l.readResource=async(n,O)=>{if(!h||!_){if(process.env?.MCP_CACHE_DEBUG)console.log("[mcp-read-cache] BYPASS (VIRTUAL)",i.id,"resources/read");return(await $()).readResource(n,O)}return await h.fetch({type:"resources/read",connectionId:i.id,scope:ssi(),params:n,fetchLive:async()=>{return(await $()).readResource(n,O)},onRevalidation:(y)=>u.pendingRevalidations.push(y)})},l.listResourceTemplates=async(n,O)=>{return(await $()).listResourceTemplates(n,O)};let D=l.close.bind(l);return l.close=async()=>{if(E){let n=await E.catch(()=>null);if(n)await n.close().catch(()=>{})}await D()},l}var Xm=g(()=>{Hh();i$();Kl();rsi();Lm();Jm();td();Swi();D50()});function psi(i){return{client:{callTool:i.callTool.bind(i),listTools:i.listTools.bind(i)}}}async function x9f(i,u,{superUser:t}){if(!t&&!u.organization?.id)throw Error("Organization context is required");let f=typeof i==="string"?await u.storage.connections.findById(i,u.organization?.id):i;if(!f)throw Error("Connection not found");if(u.organization&&f.organization_id!==u.organization.id)throw Error("Connection does not belong to the active organization");if(!u.organization){let d=await u.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",f.organization_id).executeTakeFirst();u.organization=d?{id:d.id,slug:d.slug,name:d.name}:{id:f.organization_id}}if(f.status!=="active")throw Error(`Connection inactive: ${f.status}`);let l=W7(f,u,t,v1()??void 0),c=qD(l,{name:"mcp-cms-proxy-client",version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},toolCallTimeoutMs:_Y}),{client:E,server:$}=FV();await c.connect($);let w=new G1({name:"mcp-cms-proxy-client",version:"1.0.0"},{jsonSchemaValidator:Xl});return await w.connect(E),w}async function n50(i,u){return x9f(i,u,{superUser:!1})}var ipi=g(()=>{Xm();td();jt();Hh();i$()});function jwi(i,u){let t=Array.isArray(u)?u:[u];if(t.length===0)return!1;if(i==="owner")return!0;if(i==="admin")return t.every((f)=>f!=="owner");return!1}var SQ,N3;var t_=g(()=>{SQ=["owner","admin","user"],N3=["owner","admin"]});function upi(i,u){for(let[t,f]of Object.entries(u)){let l=i[t];if(!l||l.length===0){let E=i["*"];if(!E||E.length===0)return!1;if(E.includes("*"))continue;let $=new Set(E);for(let w of f)if(!$.has(w))return!1;continue}if(l.includes("*"))continue;let c=new Set(l);for(let E of f)if(!c.has(E))return!1}return!0}import{adminAc as g50,memberAc as k9f}from"@decocms/better-auth/plugins/organization/access";function fpi(i){let u=["*",...i];return{user:{self:[...DEi],...k9f.statements},admin:{self:u,...g50.statements},owner:{self:u,...g50.statements}}}function G9f(i,u){for(let[t,f]of Object.entries(u)){let l=i[t];if(!l)return!1;for(let c of f)if(!l.includes(c)&&!l.includes("*"))return!1}return!0}function O50(i,u,t){if(!i)return"fallback";if(i.includes(","))return"fallback";if(!SQ.includes(i))return"fallback";let f=t[i];if(!f)return"fallback";return G9f(f,u)?"grant":"deny"}function N50(){if(!tpi){let i=Object.values(BN()).flatMap((u)=>u.map((t)=>t.name));tpi=fpi(i)}return tpi}var tpi;var lpi=g(()=>{tY();t_()});var E8="New chat";function Z50(){return`<platform>
86436
+ ${l}`,i.data)}var D50=g(()=>{Kl()});async function I9f(i,u,t){if(!i)return!1;let f=await i.get("tools",u).catch(()=>null);if(!f)return!1;for(let l of f)if(typeof l==="object"&&l!==null&&l.name===t)return l.annotations?.readOnlyHint===!0;return!1}function ssi(){return{kind:"org"}}function W7(i,u,t,f){let l=new G1({name:`lazy-${i.id}`,version:"1.0.0"},{capabilities:{},jsonSchemaValidator:Xl}),c=i.metadata?.isDevConnection===!0,E=null;function $(){if(Pwi(i.id),!E)E=Nc(i,u,t).then((n)=>{return Awi(i.id),n}).catch((n)=>{throw E=null,Iwi(i.id),n});return E}let w=(n,O)=>n!==void 0||O!==void 0,d=(n,O,N,y)=>{return async(Z,T)=>{if(i.connection_type==="VIRTUAL"||c||!f||w(Z,T)){let F=await $();return O(F,Z,T)}let B=await w7(n,i.id,async()=>{let F=await $(),A=await O(F);return N(A)},f,(F)=>u.pendingRevalidations.push(F),$7);return y(B??[])}};l.listTools=d("tools",(n,O,N)=>n.listTools(O,N),(n)=>n.tools,(n)=>({tools:n})),l.listResources=d("resources",(n,O,N)=>n.listResources(O,N),(n)=>n.resources,(n)=>({resources:n})),l.listPrompts=d("prompts",(n,O,N)=>n.listPrompts(O,N),(n)=>n.prompts,(n)=>({prompts:n}));let h=Gwi(),_=i.connection_type!=="VIRTUAL"&&!c,v=async(n,O,N)=>{let y=n?.name,Z=_&&typeof y==="string"&&await I9f(f,i.id,y);if(h&&Z&&!O)return await h.fetch({type:"tools/call",connectionId:i.id,scope:ssi(),params:{name:y,arguments:n?.arguments},fetchLive:async()=>{return(await $()).callTool(n,O,N)},shouldCache:(F)=>F?.isError!==!0,onRevalidation:(F)=>u.pendingRevalidations.push(F)});let T=await $();if(h&&_&&!Z)try{return await T.callTool(n,O,N)}finally{GQ(i.id)}return T.callTool(n,O,N)};l.callTool=async(n,O,N)=>{try{return await v(n,O,N)}catch(y){let Z=n?.name;if(y instanceof Ku&&y.code===zu.InvalidParams&&typeof Z==="string"&&f){let B=(await f.get("tools",i.id).catch(()=>null))?.find((F)=>typeof F==="object"&&F!==null&&F.name===Z);throw v50(y,Z,B?.inputSchema,n?.arguments)}throw y}},l.getPrompt=async(n,O)=>{if(!h||!_)return(await $()).getPrompt(n,O);return await h.fetch({type:"prompts/get",connectionId:i.id,scope:ssi(),params:n,fetchLive:async()=>{return(await $()).getPrompt(n,O)},onRevalidation:(y)=>u.pendingRevalidations.push(y)})},l.readResource=async(n,O)=>{if(!h||!_){if(process.env?.MCP_CACHE_DEBUG)console.log("[mcp-read-cache] BYPASS (VIRTUAL)",i.id,"resources/read");return(await $()).readResource(n,O)}return await h.fetch({type:"resources/read",connectionId:i.id,scope:ssi(),params:n,fetchLive:async()=>{return(await $()).readResource(n,O)},onRevalidation:(y)=>u.pendingRevalidations.push(y)})},l.listResourceTemplates=async(n,O)=>{return(await $()).listResourceTemplates(n,O)};let D=l.close.bind(l);return l.close=async()=>{if(E){let n=await E.catch(()=>null);if(n)await n.close().catch(()=>{})}await D()},l}var Xm=g(()=>{Hh();i$();Kl();rsi();Lm();Jm();td();Swi();D50()});function psi(i){return{client:{callTool:i.callTool.bind(i),listTools:i.listTools.bind(i)}}}async function x9f(i,u,{superUser:t}){if(!t&&!u.organization?.id)throw Error("Organization context is required");let f=typeof i==="string"?await u.storage.connections.findById(i,u.organization?.id):i;if(!f)throw Error("Connection not found");if(u.organization&&f.organization_id!==u.organization.id)throw Error("Connection does not belong to the active organization");if(!u.organization){let d=await u.db.selectFrom("organization").select(["id","slug","name"]).where("id","=",f.organization_id).executeTakeFirst();u.organization=d?{id:d.id,slug:d.slug,name:d.name}:{id:f.organization_id}}if(f.status!=="active")throw Error(`Connection inactive: ${f.status}`);let l=W7(f,u,t,v1()??void 0),c=qD(l,{name:"mcp-cms-proxy-client",version:"1.0.0"},{capabilities:{tools:{},resources:{},prompts:{}},toolCallTimeoutMs:_Y}),{client:E,server:$}=FV();await c.connect($);let w=new G1({name:"mcp-cms-proxy-client",version:"1.0.0"},{jsonSchemaValidator:Xl});return await w.connect(E),w}async function n50(i,u){return x9f(i,u,{superUser:!1})}var ipi=g(()=>{Xm();td();jt();Hh();i$()});function jwi(i,u){let t=Array.isArray(u)?u:[u];if(t.length===0)return!1;let f=i?i.split(","):[];if(f.includes("owner"))return!0;if(f.includes("admin"))return t.every((l)=>l!=="owner");return!1}var SQ,N3;var t_=g(()=>{SQ=["owner","admin","user"],N3=["owner","admin"]});function upi(i,u){for(let[t,f]of Object.entries(u)){let l=i[t];if(!l||l.length===0){let E=i["*"];if(!E||E.length===0)return!1;if(E.includes("*"))continue;let $=new Set(E);for(let w of f)if(!$.has(w))return!1;continue}if(l.includes("*"))continue;let c=new Set(l);for(let E of f)if(!c.has(E))return!1}return!0}import{adminAc as g50,memberAc as k9f}from"@decocms/better-auth/plugins/organization/access";function fpi(i){let u=["*",...i];return{user:{self:[...DEi],...k9f.statements},admin:{self:u,...g50.statements},owner:{self:u,...g50.statements}}}function G9f(i,u){for(let[t,f]of Object.entries(u)){let l=i[t];if(!l)return!1;for(let c of f)if(!l.includes(c)&&!l.includes("*"))return!1}return!0}function O50(i,u,t){if(!i)return"fallback";if(i.includes(","))return"fallback";if(!SQ.includes(i))return"fallback";let f=t[i];if(!f)return"fallback";return G9f(f,u)?"grant":"deny"}function N50(){if(!tpi){let i=Object.values(BN()).flatMap((u)=>u.map((t)=>t.name));tpi=fpi(i)}return tpi}var tpi;var lpi=g(()=>{tY();t_()});var E8="New chat";function Z50(){return`<platform>
86437
86437
  You are an AI agent running on Deco CMS \u2014 a control plane for connecting
86438
86438
  AI agents to external services via the Model Context Protocol (MCP).
86439
86439