decocms 4.7.0 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/dist/client/assets/{AlertCircle-BJq9ypj0.js → AlertCircle-BP8AraZY.js} +1 -1
  2. package/dist/client/assets/{ArrowUpRight-BcajLYn1.js → ArrowUpRight-BusN0ze9.js} +1 -1
  3. package/dist/client/assets/{CheckCircle-CgZRVWJ7.js → CheckCircle-CCiLVyhM.js} +1 -1
  4. package/dist/client/assets/{ChevronDown-C7iCpNd7.js → ChevronDown-D1rSZJNJ.js} +1 -1
  5. package/dist/client/assets/{ChevronRight-CQ6qJi_4.js → ChevronRight-lATD-CWU.js} +1 -1
  6. package/dist/client/assets/{ChevronUp-BtpDIyFt.js → ChevronUp-COalomvK.js} +1 -1
  7. package/dist/client/assets/{DotsVertical-CxSK3DNF.js → DotsVertical-DYu5y7nS.js} +1 -1
  8. package/dist/client/assets/{Eye-EQZNVaju.js → Eye-BfOiLqEH.js} +1 -1
  9. package/dist/client/assets/{FilterLines-Bs1V5x-b.js → FilterLines-BIcisIR_.js} +1 -1
  10. package/dist/client/assets/{Globe01-BCZ4MJ9r.js → Globe01-CZa0pcoj.js} +1 -1
  11. package/dist/client/assets/{Globe04-BYKU0iQC.js → Globe04-D5AGMp6t.js} +1 -1
  12. package/dist/client/assets/{HardDrive-4fVVGWQv.js → HardDrive-BC3OhmUD.js} +1 -1
  13. package/dist/client/assets/{Key01-x0kqMuez.js → Key01-BoG0RxKz.js} +1 -1
  14. package/dist/client/assets/{LayoutLeft-gtZ98pdB.js → LayoutLeft-D0U40IKQ.js} +1 -1
  15. package/dist/client/assets/{LinkExternal01-Ct3eSohN.js → LinkExternal01-l52zuk1o.js} +1 -1
  16. package/dist/client/assets/{Monitor01-B4532Y1i.js → Monitor01-Cn4nsH4_.js} +1 -1
  17. package/dist/client/assets/{Palette-CNyx15J3.js → Palette-cRfEIzBn.js} +1 -1
  18. package/dist/client/assets/{Play-CR5jCOmn.js → Play-BEfmBSkL.js} +1 -1
  19. package/dist/client/assets/{Plus-K9-3Y3av.js → Plus-Bl_LZN4x.js} +1 -1
  20. package/dist/client/assets/{SearchLg-DNsRNxo9.js → SearchLg-C3MEBHez.js} +1 -1
  21. package/dist/client/assets/{SearchMd-BA75dueP.js → SearchMd-B2KjCykZ.js} +1 -1
  22. package/dist/client/assets/{Settings02-CUXE6YBK.js → Settings02-BWw2xnTO.js} +1 -1
  23. package/dist/client/assets/{Shield01-gyJITz9J.js → Shield01-BStJDHB3.js} +1 -1
  24. package/dist/client/assets/{Star01-hycj5iSk.js → Star01-CqQOYJ2t.js} +1 -1
  25. package/dist/client/assets/{Stars01-D7uKNdAz.js → Stars01-Dm8_ZsjH.js} +1 -1
  26. package/dist/client/assets/{Stars02-EI2D1sR2.js → Stars02-BbYM6zLw.js} +1 -1
  27. package/dist/client/assets/{Sun-C9Wxt9CP.js → Sun-CmHWC7S4.js} +1 -1
  28. package/dist/client/assets/{SwitchHorizontal01-BrQLjMKA.js → SwitchHorizontal01-FX9hjZ1i.js} +1 -1
  29. package/dist/client/assets/{Tool01-BDYpV4bF.js → Tool01-DhQ4ho9u.js} +1 -1
  30. package/dist/client/assets/{Trash01-CkOiGHv0.js → Trash01-DGP_hvtF.js} +1 -1
  31. package/dist/client/assets/{Upload01-De93EmfO.js → Upload01-ZkeQp0wC.js} +1 -1
  32. package/dist/client/assets/{User01-BQnxqmQ5.js → User01-CEj0lW_2.js} +1 -1
  33. package/dist/client/assets/{Users01-6ImDxKnC.js → Users01-Db402lVp.js} +1 -1
  34. package/dist/client/assets/{Users03-bEnDQfVD.js → Users03-ChX-8nqW.js} +1 -1
  35. package/dist/client/assets/{X-B7BrDYoR.js → X-B01YsVvG.js} +1 -1
  36. package/dist/client/assets/{XCircle--nqVJrRk.js → XCircle-QJAHsohS.js} +1 -1
  37. package/dist/client/assets/{XClose-Bhi6uXp9.js → XClose-BYQo3mf2.js} +1 -1
  38. package/dist/client/assets/{Zap-qEJPKDHk.js → Zap-Bt3fWEYQ.js} +1 -1
  39. package/dist/client/assets/{ZapSquare-XIRAkyko.js → ZapSquare-DIH7lGOR.js} +1 -1
  40. package/dist/client/assets/{ZoomOut-B1lM_F9T.js → ZoomOut-uLvrT3ZO.js} +1 -1
  41. package/dist/client/assets/{access-gate-BPjDLFwi.js → access-gate-DEalrdU6.js} +1 -1
  42. package/dist/client/assets/{add-section-modal-5SY3LIrK.js → add-section-modal-CUUUFg0S.js} +1 -1
  43. package/dist/client/assets/{agent-icon-CJLs7JnL.js → agent-icon-CSOnaLfl.js} +1 -1
  44. package/dist/client/assets/{agents-list-9b-w0Hxc.js → agents-list-DigFFCz5.js} +1 -1
  45. package/dist/client/assets/{ai-providers-a-phAOpt.js → ai-providers-Bn0ko-Me.js} +1 -1
  46. package/dist/client/assets/{alert-DUteqAcw.js → alert-B6-7zmcz.js} +1 -1
  47. package/dist/client/assets/{alert-dialog-769FAsUD.js → alert-dialog-COZUoYSZ.js} +1 -1
  48. package/dist/client/assets/{app-editor-Dd1HA6k8.js → app-editor-D62eXjsM.js} +1 -1
  49. package/dist/client/assets/{auth-D29ieVkn.js → auth-C-4tdsy-.js} +1 -1
  50. package/dist/client/assets/{auth-catchall-B__PsIrj.js → auth-catchall-FZ6UeU1m.js} +1 -1
  51. package/dist/client/assets/{auth-entry-B8bFDnH8.js → auth-entry-DIhbcEXh.js} +1 -1
  52. package/dist/client/assets/{auth-split-layout-C91qSikf.js → auth-split-layout-Dy7TVgby.js} +1 -1
  53. package/dist/client/assets/{authenticate-and-persist-oauth-Ot7eZvPq.js → authenticate-and-persist-oauth-C9EIeJf7.js} +1 -1
  54. package/dist/client/assets/{automation-list-row-C92STjEq.js → automation-list-row-CuXR-b1D.js} +1 -1
  55. package/dist/client/assets/{automation-runs-CBokQ0Wd.js → automation-runs-Jll4D_3k.js} +1 -1
  56. package/dist/client/assets/{automations-BZM8UXWs.js → automations-DauLH4Ko.js} +1 -1
  57. package/dist/client/assets/{avatar-BeX1bScj.js → avatar-DJ3QuuQ7.js} +1 -1
  58. package/dist/client/assets/{badge-40QNvrlo.js → badge-DophsIRD.js} +1 -1
  59. package/dist/client/assets/{block-document-FKMFR3nl.js → block-document-DQR0nY0w.js} +1 -1
  60. package/dist/client/assets/{brand-context-vMXmPiWz.js → brand-context-Cl_SkCNy.js} +1 -1
  61. package/dist/client/assets/{buckets-aRLDQdB7.js → buckets-HXVvwsRF.js} +1 -1
  62. package/dist/client/assets/{bulk-category-panel-iMZW3-6F.js → bulk-category-panel-lAbQonVb.js} +1 -1
  63. package/dist/client/assets/{capability-load-error-Bootd2y7.js → capability-load-error-DZnbbeLs.js} +1 -1
  64. package/dist/client/assets/{card-mou1irWY.js → card-fxR4lUhv.js} +1 -1
  65. package/dist/client/assets/{category-editor-w_J0qziX.js → category-editor-zTbuw8X7.js} +1 -1
  66. package/dist/client/assets/{chat-context-CDQGKTRb.js → chat-context-CazPZc8S.js} +1 -1
  67. package/dist/client/assets/{checkbox-CQmZUGae.js → checkbox-CeFarX34.js} +1 -1
  68. package/dist/client/assets/{cli-auth-success-CE14uwpH.js → cli-auth-success-CMkcLqVT.js} +1 -1
  69. package/dist/client/assets/{collection-detail-DeOef9Um.js → collection-detail-ByP_xq_7.js} +1 -1
  70. package/dist/client/assets/{collection-display-button-CV0kO4yO.js → collection-display-button-BS1F3pfn.js} +1 -1
  71. package/dist/client/assets/{collection-search-Bxp9u43w.js → collection-search-kw13BHqh.js} +1 -1
  72. package/dist/client/assets/{collection-tabs-OuAA7gyO.js → collection-tabs-BPNKPBMh.js} +1 -1
  73. package/dist/client/assets/{command-CSY5a7Nv.js → command-DJqDR9gR.js} +1 -1
  74. package/dist/client/assets/{commerce-onboarding-CqZ9LJkV.js → commerce-onboarding-lR2PQsg1.js} +1 -1
  75. package/dist/client/assets/{connect-desktop-dialog-BRLVLmM1.js → connect-desktop-dialog-BKrlHfvB.js} +1 -1
  76. package/dist/client/assets/{connection-card-Dnvk_cT5.js → connection-card-BLTARFN7.js} +1 -1
  77. package/dist/client/assets/{connection-detail-D08afNEg.js → connection-detail-DdqBSRDV.js} +1 -1
  78. package/dist/client/assets/{connection-form-helpers-BSTA0pW8.js → connection-form-helpers-Bmc7HAzG.js} +1 -1
  79. package/dist/client/assets/{connections-DU-jqQLE.js → connections-XWCpYXva.js} +1 -1
  80. package/dist/client/assets/{context-menu-BEQoU-0G.js → context-menu-_eeSEmED.js} +1 -1
  81. package/dist/client/assets/{decopilot-xdkIhiJl.js → decopilot-CpTi8_CD.js} +1 -1
  82. package/dist/client/assets/{decopilot-sse-pool-D0-zqsJt.js → decopilot-sse-pool-BqKt_VjF.js} +1 -1
  83. package/dist/client/assets/{dialog-CPwF731q.js → dialog-DfRvSPDX.js} +1 -1
  84. package/dist/client/assets/{domain-settings-CO-7ooar.js → domain-settings-DZINJBvM.js} +1 -1
  85. package/dist/client/assets/{drawer-DlHMG-t7.js → drawer-3i1mzioQ.js} +1 -1
  86. package/dist/client/assets/{dropdown-menu-CRzlYZec.js → dropdown-menu-DxVOJpYg.js} +1 -1
  87. package/dist/client/assets/{empty-state-BrsYg01G.js → empty-state-DIXvP0bC.js} +1 -1
  88. package/dist/client/assets/{extract-connection-data-BLNjuXm9.js → extract-connection-data-DztiYkKt.js} +1 -1
  89. package/dist/client/assets/{file-explorer-rTMALYsN.js → file-explorer-DzBaGSrd.js} +1 -1
  90. package/dist/client/assets/{file-type-icon-CZT8Q3fZ.js → file-type-icon-DsZ7zLCo.js} +1 -1
  91. package/dist/client/assets/{files-DRUlydo8.js → files-B5QH6M7W.js} +1 -1
  92. package/dist/client/assets/{form-DbXRmybh.js → form-C5K81Zvy.js} +1 -1
  93. package/dist/client/assets/{general-TyH6pDBj.js → general-yRKdcc2J.js} +1 -1
  94. package/dist/client/assets/{github-repo-picker-DpXi-YYo.js → github-repo-picker-B-2PDiD8.js} +1 -1
  95. package/dist/client/assets/{hooks-mecxyGXr.js → hooks-D1Xb43Cw.js} +1 -1
  96. package/dist/client/assets/{import-from-deco-dialog-gw8JFWRQ.js → import-from-deco-dialog-KlExHidd.js} +1 -1
  97. package/dist/client/assets/{index-BJ2n8tC-.js → index-BTJHmUlE.js} +1 -1
  98. package/dist/client/assets/{index-Cw1_akCN.js → index-BYxLxb_N.js} +3 -3
  99. package/dist/client/assets/{index-C2ExGzfp.js → index-Bses2pxU.js} +1 -1
  100. package/dist/client/assets/{index-C6LmyPz-.js → index-COeFUvR6.js} +1 -1
  101. package/dist/client/assets/{index-CjONkpe7.js → index-CaZ1DnAf.js} +1 -1
  102. package/dist/client/assets/{index-BFqCdkwd.js → index-Ce9EWw17.js} +5 -5
  103. package/dist/client/assets/{index-lbjS-oOC.js → index-CfS9o05V.js} +1 -1
  104. package/dist/client/assets/{index-BHMagGVX.js → index-CzR-Evqc.js} +1 -1
  105. package/dist/client/assets/{index-Cka24isE.js → index-DL5kX7dJ.js} +1 -1
  106. package/dist/client/assets/{index-hUSewKBE.js → index-DYvWPY4W.js} +1 -1
  107. package/dist/client/assets/{index-8gVeAkM5.js → index-emGOlkNe.js} +1 -1
  108. package/dist/client/assets/{index-D0PVVLS2.js → index-imDk1Td6.js} +1 -1
  109. package/dist/client/assets/{index-CkU3dvkf.js → index-jWHdRYiU.js} +1 -1
  110. package/dist/client/assets/{index-BtNhnk8x.js → index-kkRn4_qd.js} +1 -1
  111. package/dist/client/assets/{index-redirect-DoeCrs1U.js → index-redirect-BnQLnros.js} +1 -1
  112. package/dist/client/assets/{input-DLr6JHGJ.js → input-3siSzfvD.js} +1 -1
  113. package/dist/client/assets/{integration-icon-iMszCnRO.js → integration-icon-HzOHy5Xw.js} +1 -1
  114. package/dist/client/assets/{label-DBw8HeDH.js → label-C6vpGlT2.js} +1 -1
  115. package/dist/client/assets/{login-B7YZp4Tu.js → login-BcdgteuR.js} +1 -1
  116. package/dist/client/assets/{mcp-oauth-Bv1ej_Wz.js → mcp-oauth-C8ojuSjk.js} +1 -1
  117. package/dist/client/assets/{members-D2jgmjul.js → members-D6E0gds_.js} +1 -1
  118. package/dist/client/assets/{monaco-editor-BQ1CFgLG.js → monaco-editor-BFK8GWcY.js} +1 -1
  119. package/dist/client/assets/{monitoring-stats-row-Be7nWM6q.js → monitoring-stats-row-BiTNhi0G.js} +1 -1
  120. package/dist/client/assets/{oauth-callback-BOEG63cg.js → oauth-callback-DzrXe6M7.js} +1 -1
  121. package/dist/client/assets/{oauth-callback-ai-provider-wGoInC5D.js → oauth-callback-ai-provider-DsdXnhfN.js} +1 -1
  122. package/dist/client/assets/{onboarding-BGIu-B-F.js → onboarding-BkL0LeQn.js} +1 -1
  123. package/dist/client/assets/{org-install-r4d6GH9Z.js → org-install-Cr_tNoS2.js} +1 -1
  124. package/dist/client/assets/{org-layout-qL8h85_L.js → org-layout-Dtw-vTdN.js} +1 -1
  125. package/dist/client/assets/{organization-choice-e3L-ZbL1.js → organization-choice-ip59BRuY.js} +1 -1
  126. package/dist/client/assets/{page-seo-form-B4xtw7wy.js → page-seo-form-BkxMWtkp.js} +1 -1
  127. package/dist/client/assets/page-seo-sheet--SbTIgYU.js +1 -0
  128. package/dist/client/assets/{popover-B-zFyk2E.js → popover-Dsv1r95r.js} +1 -1
  129. package/dist/client/assets/{post-editor-vILHAOBb.js → post-editor-ESSLPwM7.js} +1 -1
  130. package/dist/client/assets/{primitives-9rYPo8fq.js → primitives-DAiSPMx4.js} +1 -1
  131. package/dist/client/assets/{profile-DHs8Wr35.js → profile-CH8wBgcr.js} +1 -1
  132. package/dist/client/assets/project-app-view-BdMoAeM8.js +1 -0
  133. package/dist/client/assets/record-editor-Dx48UMmO.js +1 -0
  134. package/dist/client/assets/registry-Bx8ywDs1.js +2 -0
  135. package/dist/client/assets/{registry-layout-D83bPbhY.js → registry-layout-DP5F-9Lo.js} +1 -1
  136. package/dist/client/assets/{require-capability-C-CL1zjU.js → require-capability-Bxhn3CI-.js} +1 -1
  137. package/dist/client/assets/{required-auth-layout-ByN1DYD2.js → required-auth-layout-DSF1nEU7.js} +1 -1
  138. package/dist/client/assets/{reset-password-C-jY3K_D.js → reset-password-CcVmyfwE.js} +1 -1
  139. package/dist/client/assets/{roles-Ba43B68D.js → roles-BX-xewru.js} +1 -1
  140. package/dist/client/assets/{scroll-area-stexiMtw.js → scroll-area-R4MuycdP.js} +1 -1
  141. package/dist/client/assets/{search-input-CbPO8glW.js → search-input-wZR45WcL.js} +1 -1
  142. package/dist/client/assets/{secrets-CY00qt0D.js → secrets-C-uTxc6F.js} +1 -1
  143. package/dist/client/assets/{sections-editor-CnXAOdKD.js → sections-editor-BduM-QIP.js} +1 -1
  144. package/dist/client/assets/{select-model-CoIvfCTP.js → select-model-DLjICXAB.js} +1 -1
  145. package/dist/client/assets/{select-CkO_vFl4.js → select-xa-GjJp_.js} +1 -1
  146. package/dist/client/assets/{seo-editor-CqxRfGo8.js → seo-editor-C8y5V7Zn.js} +1 -1
  147. package/dist/client/assets/{settings-layout-CCwpamgO.js → settings-layout-YeAQm5Jl.js} +1 -1
  148. package/dist/client/assets/{settings-section-CS-HJOQa.js → settings-section-BO74XZSq.js} +1 -1
  149. package/dist/client/assets/{sheet-BJzqKXxB.js → sheet-ChiQca7K.js} +1 -1
  150. package/dist/client/assets/{shell-controls-DQhZ740p.js → shell-controls-B9KCPdYQ.js} +1 -1
  151. package/dist/client/assets/{shell-layout-CR0Hp5Mh.js → shell-layout-_3HPhbLa.js} +1 -1
  152. package/dist/client/assets/{shell-route-loading-YF3fqODB.js → shell-route-loading-Dddc3D5B.js} +1 -1
  153. package/dist/client/assets/{sidebar-D4jky0lG.js → sidebar-B9dgUcrl.js} +1 -1
  154. package/dist/client/assets/{skeleton-BbyhTtn8.js → skeleton-BFIflr8H.js} +1 -1
  155. package/dist/client/assets/{sortable.esm-GHEOPheK.js → sortable.esm-Dha08fCq.js} +1 -1
  156. package/dist/client/assets/{sso-Dudubnxj.js → sso-BWL49DoM.js} +1 -1
  157. package/dist/client/assets/{store-DiPlVeJJ.js → store-BVVZggV2.js} +1 -1
  158. package/dist/client/assets/store-registry-C_NqLo4w.js +2 -0
  159. package/dist/client/assets/{studio-tools-BkyKqeDD.js → studio-tools-CX1t2wo7.js} +1 -1
  160. package/dist/client/assets/{switch-iORKvsWw.js → switch-_sVfSPaD.js} +1 -1
  161. package/dist/client/assets/{table-dJL8Gx_v.js → table-DwDbz8iY.js} +1 -1
  162. package/dist/client/assets/{tabs-Dv5E70j1.js → tabs-CH_sAsPv.js} +1 -1
  163. package/dist/client/assets/{task-status-BIJ-JzCh.js → task-status-BilXNld4.js} +1 -1
  164. package/dist/client/assets/{textarea-BbsMd9WU.js → textarea-WTWE3YW7.js} +1 -1
  165. package/dist/client/assets/{toggle-group-ZHbJlDbB.js → toggle-group-CP4tUZC4.js} +1 -1
  166. package/dist/client/assets/{toolbar-L97y_brf.js → toolbar-Cg38UlON.js} +1 -1
  167. package/dist/client/assets/{toolbar-icon-button-CnbRqKNI.js → toolbar-icon-button-vPK5DPYy.js} +1 -1
  168. package/dist/client/assets/{tools-list-m4wD8VuT.js → tools-list-MKkD55QW.js} +1 -1
  169. package/dist/client/assets/{tooltip-DQJ-jcPk.js → tooltip-CIGYkCAI.js} +1 -1
  170. package/dist/client/assets/{types-DnF2nXDI.js → types-CBYtFnMZ.js} +1 -1
  171. package/dist/client/assets/{use-ai-providers-FWk9OVU1.js → use-ai-providers-DepwN6Nt.js} +1 -1
  172. package/dist/client/assets/{use-automations-UH03D3_k.js → use-automations-Ck9NK_oB.js} +1 -1
  173. package/dist/client/assets/{use-capability-BrLd3HxM.js → use-capability-CVgQJ8xn.js} +1 -1
  174. package/dist/client/assets/{use-clock-tick-Cov0S4x5.js → use-clock-tick-C5iYcOG_.js} +1 -1
  175. package/dist/client/assets/{use-collections-BnfRvFB1.js → use-collections-B9JlVxD2.js} +1 -1
  176. package/dist/client/assets/{use-connection-DmwGJvkl.js → use-connection-BKkAL8KW.js} +1 -1
  177. package/dist/client/assets/{use-copy-CP0aLOns.js → use-copy-eM9xM7hR.js} +1 -1
  178. package/dist/client/assets/{use-create-virtual-mcp-Cvu0UuPh.js → use-create-virtual-mcp-CkM5QpI8.js} +1 -1
  179. package/dist/client/assets/{use-debounced-autosave-DEtmNfmW.js → use-debounced-autosave-BhsBW6Nj.js} +1 -1
  180. package/dist/client/assets/{use-debounced-value-pSAE8gPb.js → use-debounced-value-0BOyiXG4.js} +1 -1
  181. package/dist/client/assets/{use-decopilot-events-qzMfR8aE.js → use-decopilot-events-CCDt3KOG.js} +1 -1
  182. package/dist/client/assets/{use-delete-connection-Boc8i97a.js → use-delete-connection-DZfZoTPp.js} +1 -1
  183. package/dist/client/assets/{use-file-configs-BKp911Uy.js → use-file-configs-DGp2AP1n.js} +1 -1
  184. package/dist/client/assets/{use-infinite-scroll-C98OH2pE.js → use-infinite-scroll-C2FI-2Uk.js} +1 -1
  185. package/dist/client/assets/{use-join-requests-v_HpjSzf.js → use-join-requests-DljJvjIG.js} +1 -1
  186. package/dist/client/assets/{use-mcp-client-eL9inrhT.js → use-mcp-client-BRyGzGjZ.js} +1 -1
  187. package/dist/client/assets/{use-mcp-prompts-BwjPqGqM.js → use-mcp-prompts-DDRoN3LD.js} +1 -1
  188. package/dist/client/assets/{use-mcp-tools-BRt-21KP.js → use-mcp-tools-DI-MkCd8.js} +1 -1
  189. package/dist/client/assets/{use-members-DIYbrf7J.js → use-members-CealryXB.js} +1 -1
  190. package/dist/client/assets/{use-mobile-BEMk8YZy.js → use-mobile-42JaqbyB.js} +1 -1
  191. package/dist/client/assets/{use-navigate-to-agent-4Srb4Woe.js → use-navigate-to-agent-f2m02HAF.js} +1 -1
  192. package/dist/client/assets/{use-org-auth-client-CRCqB27u.js → use-org-auth-client-CVdba79K.js} +1 -1
  193. package/dist/client/assets/{use-org-fs-sAfsYw1V.js → use-org-fs-CU_E4q-e.js} +1 -1
  194. package/dist/client/assets/{use-org-sso-B5PmzULO.js → use-org-sso-Dg7bL-tR.js} +1 -1
  195. package/dist/client/assets/{use-organization-roles-D5ExDxTL.js → use-organization-roles-ylf3jugw.js} +1 -1
  196. package/dist/client/assets/{use-organization-settings-B67X4xDb.js → use-organization-settings-lLQudMV_.js} +1 -1
  197. package/dist/client/assets/{use-registry-connections-BbQFk-hr.js → use-registry-connections-BVPw6piI.js} +1 -1
  198. package/dist/client/assets/{use-secrets-BDDhVn1J.js → use-secrets-CW6NzUK3.js} +1 -1
  199. package/dist/client/assets/{use-status-sounds-DtFUS1V8.js → use-status-sounds-C1B6MKX0.js} +1 -1
  200. package/dist/client/assets/{use-view-mode-D4DGwJDj.js → use-view-mode-CicWJY61.js} +1 -1
  201. package/dist/client/assets/{use-virtual-mcp-C1pJMY-h.js → use-virtual-mcp-BIWjDnR3.js} +1 -1
  202. package/dist/client/assets/useInfiniteQuery-B_YuxoOI.js +1 -0
  203. package/dist/client/assets/useSuspenseInfiniteQuery-DC5qHrow.js +1 -0
  204. package/dist/client/assets/{useSuspenseQueries-DcYkaPjN.js → useSuspenseQueries-CsDWb7hT.js} +1 -1
  205. package/dist/client/assets/{variant-calendar-DYeu7eMI.js → variant-calendar-ChkUdpwk.js} +1 -1
  206. package/dist/client/assets/{view-mode-toggle-FEIyeDRK.js → view-mode-toggle-Cy46ust1.js} +1 -1
  207. package/dist/client/index.html +1 -1
  208. package/dist/server/cli.js +320 -310
  209. package/dist/server/migrate.js +24 -24
  210. package/dist/server/server.js +200 -200
  211. package/package.json +1 -1
  212. package/dist/client/assets/page-seo-sheet-CmaMrcgu.js +0 -1
  213. package/dist/client/assets/project-app-view-CuuB2xXY.js +0 -1
  214. package/dist/client/assets/record-editor-BImRbjQY.js +0 -1
  215. package/dist/client/assets/registry-xZZhpj_0.js +0 -2
  216. package/dist/client/assets/store-registry-DIx06FUL.js +0 -2
  217. package/dist/client/assets/useInfiniteQuery-Depl5l-b.js +0 -1
  218. package/dist/client/assets/useSuspenseInfiniteQuery-DuIaWnch.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null,e)}var i=(t,e)=>{for(var n in e)Mi(t,n,{get:e[n],enumerable:!0,configurable:!0,set:Oi.bind(e,n)})};import{Migrator as Xi,sql as X}from"kysely";var ct={};i(ct,{up:()=>Zi,down:()=>Hi});import{sql as h}from"kysely";async function Zi(t){await t.schema.createTable("connections").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organizationId","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(e)=>e.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(e)=>e.notNull()).addColumn("connectionUrl","text",(e)=>e.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(e)=>e.notNull().defaultTo("active")).addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("api_keys").addColumn("id","text",(e)=>e.primaryKey()).addColumn("userId","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(e)=>e.notNull()).addColumn("hashedKey","text",(e)=>e.notNull().unique()).addColumn("permissions","text",(e)=>e.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("audit_logs").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(e)=>e.references("user.id").onDelete("set null")).addColumn("connectionId","text",(e)=>e.references("connections.id").onDelete("set null")).addColumn("toolName","text",(e)=>e.notNull()).addColumn("allowed","integer",(e)=>e.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createTable("oauth_clients").addColumn("id","text",(e)=>e.primaryKey()).addColumn("clientId","text",(e)=>e.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(e)=>e.notNull()).addColumn("redirectUris","text",(e)=>e.notNull()).addColumn("grantTypes","text",(e)=>e.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_authorization_codes").addColumn("code","text",(e)=>e.primaryKey()).addColumn("clientId","text",(e)=>e.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(e)=>e.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(e)=>e.notNull()).addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(e)=>e.primaryKey()).addColumn("clientId","text",(e)=>e.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("downstream_tokens").addColumn("id","text",(e)=>e.primaryKey()).addColumn("connectionId","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(e)=>e.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(e)=>e.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await t.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function Hi(t){await t.schema.dropTable("downstream_tokens").execute(),await t.schema.dropTable("oauth_refresh_tokens").execute(),await t.schema.dropTable("oauth_authorization_codes").execute(),await t.schema.dropTable("oauth_clients").execute(),await t.schema.dropTable("audit_logs").execute(),await t.schema.dropTable("api_keys").execute(),await t.schema.dropTable("connections").execute()}var yt={};i(yt,{up:()=>Yi,down:()=>Ii});import{sql as vn}from"kysely";async function Yi(t){await t.schema.createTable("organization_settings").addColumn("organizationId","text",(e)=>e.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(e)=>e.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(e)=>e.notNull().defaultTo(vn`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(e)=>e.notNull().defaultTo(vn`CURRENT_TIMESTAMP`)).execute()}async function Ii(t){await t.schema.dropTable("organization_settings").execute()}var st={};i(st,{up:()=>Bi,down:()=>Gi});async function Bi(t){await t.schema.alterTable("connections").renameColumn("name","title").execute(),await t.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await t.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await t.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await t.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await t.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await t.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await t.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await t.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await t.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await t.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await t.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function Gi(t){await t.schema.alterTable("connections").renameColumn("title","name").execute(),await t.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await t.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await t.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await t.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await t.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await t.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await t.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await t.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await t.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await t.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await t.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var ft={};i(ft,{up:()=>vi,down:()=>Vi});async function vi(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(e)=>e.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(e)=>e.notNull()).addColumn("updatedAt","text",(e)=>e.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((e)=>e.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await t.schema.dropTable("organization_settings").execute(),await t.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function Vi(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(e)=>e.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(e)=>e.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(e)=>e.notNull()).addColumn("updatedAt","text",(e)=>e.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((e)=>e.selectFrom("organization_settings").select(["organizationId",e.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await t.schema.dropTable("organization_settings").execute(),await t.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Tt={};i(Tt,{up:()=>qi,down:()=>li});async function qi(t){await t.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await t.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function li(t){await t.schema.alterTable("connections").dropColumn("configuration_state").execute(),await t.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var pt={};i(pt,{up:()=>bi,down:()=>ta});import{sql as di}from"kysely";async function bi(t){await t.schema.alterTable("organization_settings").addColumn("sidebar_items",di`text`).execute()}async function ta(t){await t.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var wt={};i(wt,{up:()=>ea,down:()=>na});async function ea(t){await t.schema.createTable("monitoring_logs").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(e)=>e.notNull()).addColumn("tool_name","text",(e)=>e.notNull()).addColumn("input","text",(e)=>e.notNull()).addColumn("output","text",(e)=>e.notNull()).addColumn("is_error","integer",(e)=>e.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(e)=>e.notNull()).addColumn("timestamp","text",(e)=>e.notNull()).addColumn("user_id","text").addColumn("request_id","text",(e)=>e.notNull()).execute(),await t.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await t.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await t.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function na(t){await t.schema.dropIndex("monitoring_logs_is_error").execute(),await t.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await t.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await t.schema.dropTable("monitoring_logs").execute()}var Ct={};i(Ct,{up:()=>ia,down:()=>aa});import{sql as F}from"kysely";async function ia(t){await t.schema.createTable("events").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(e)=>e.notNull()).addColumn("source","text",(e)=>e.notNull()).addColumn("specversion","text",(e)=>e.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(e)=>e.notNull()).addColumn("datacontenttype","text",(e)=>e.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(e)=>e.notNull().defaultTo("pending")).addColumn("attempts","integer",(e)=>e.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(e)=>e.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_subscriptions").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(e)=>e.notNull()).addColumn("filter","text").addColumn("enabled","integer",(e)=>e.notNull().defaultTo(1)).addColumn("created_at","text",(e)=>e.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_deliveries").addColumn("id","text",(e)=>e.primaryKey()).addColumn("event_id","text",(e)=>e.notNull()).addColumn("subscription_id","text",(e)=>e.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(e)=>e.notNull().defaultTo("pending")).addColumn("attempts","integer",(e)=>e.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(e)=>e.notNull().defaultTo(F`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await t.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await t.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await t.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await t.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await t.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await t.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await t.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await t.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function aa(t){await t.schema.dropIndex("idx_deliveries_retry").execute(),await t.schema.dropIndex("idx_deliveries_subscription_status").execute(),await t.schema.dropIndex("idx_deliveries_event").execute(),await t.schema.dropIndex("idx_subscriptions_unique").execute(),await t.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await t.schema.dropIndex("idx_subscriptions_type").execute(),await t.schema.dropIndex("idx_subscriptions_connection").execute(),await t.schema.dropIndex("idx_events_retry").execute(),await t.schema.dropIndex("idx_events_type").execute(),await t.schema.dropIndex("idx_events_source").execute(),await t.schema.dropIndex("idx_events_org_status").execute(),await t.schema.dropTable("event_deliveries").execute(),await t.schema.dropTable("event_subscriptions").execute(),await t.schema.dropTable("events").execute()}var Nt={};i(Nt,{up:()=>oa,down:()=>_a});import{sql as ua}from"kysely";async function oa(t){await t.schema.dropTable("audit_logs").ifExists().execute()}async function _a(t){await t.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(e)=>e.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(e)=>e.references("user.id").onDelete("set null")).addColumn("connectionId","text",(e)=>e.references("connections.id").onDelete("set null")).addColumn("toolName","text",(e)=>e.notNull()).addColumn("allowed","integer",(e)=>e.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(e)=>e.notNull().defaultTo(ua`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await t.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var ht={};i(ht,{up:()=>ma,down:()=>xa});import{sql as v}from"kysely";async function ma(t){await t.schema.createTable("gateways").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(e)=>e.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(e)=>e.notNull().defaultTo("active")).addColumn("is_default","integer",(e)=>e.notNull().defaultTo(0)).addColumn("created_at","text",(e)=>e.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("gateway_connections").addColumn("id","text",(e)=>e.primaryKey()).addColumn("gateway_id","text",(e)=>e.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(e)=>e.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await v`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t),await t.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function xa(t){await t.schema.dropIndex("idx_gateway_connections_unique").execute(),await t.schema.dropIndex("idx_gateway_connections_connection").execute(),await t.schema.dropIndex("idx_gateway_connections_gateway").execute(),await t.schema.dropIndex("idx_gateways_default_per_org").execute(),await t.schema.dropIndex("idx_gateways_org_status").execute(),await t.schema.dropIndex("idx_gateways_org").execute(),await t.schema.dropTable("gateway_connections").execute(),await t.schema.dropTable("gateways").execute()}var Et={};i(Et,{up:()=>ra,down:()=>ca});async function ra(t){await t.schema.alterTable("gateways").addColumn("icon","text").execute()}async function ca(t){await t.schema.alterTable("gateways").dropColumn("icon").execute()}var Kt={};i(Kt,{up:()=>ya,down:()=>sa});import{sql as V}from"kysely";async function ya(t){await t.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(e)=>e.notNull().defaultTo("inclusion")).execute(),await V`
2
+ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null,e)}var i=(t,e)=>{for(var n in e)Mi(t,n,{get:e[n],enumerable:!0,configurable:!0,set:Oi.bind(e,n)})};import{Migrator as Fi,sql as F}from"kysely";var ct={};i(ct,{up:()=>Zi,down:()=>Hi});import{sql as h}from"kysely";async function Zi(t){await t.schema.createTable("connections").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organizationId","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(e)=>e.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(e)=>e.notNull()).addColumn("connectionUrl","text",(e)=>e.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(e)=>e.notNull().defaultTo("active")).addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("api_keys").addColumn("id","text",(e)=>e.primaryKey()).addColumn("userId","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(e)=>e.notNull()).addColumn("hashedKey","text",(e)=>e.notNull().unique()).addColumn("permissions","text",(e)=>e.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("audit_logs").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(e)=>e.references("user.id").onDelete("set null")).addColumn("connectionId","text",(e)=>e.references("connections.id").onDelete("set null")).addColumn("toolName","text",(e)=>e.notNull()).addColumn("allowed","integer",(e)=>e.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createTable("oauth_clients").addColumn("id","text",(e)=>e.primaryKey()).addColumn("clientId","text",(e)=>e.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(e)=>e.notNull()).addColumn("redirectUris","text",(e)=>e.notNull()).addColumn("grantTypes","text",(e)=>e.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_authorization_codes").addColumn("code","text",(e)=>e.primaryKey()).addColumn("clientId","text",(e)=>e.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(e)=>e.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(e)=>e.notNull()).addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(e)=>e.primaryKey()).addColumn("clientId","text",(e)=>e.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("downstream_tokens").addColumn("id","text",(e)=>e.primaryKey()).addColumn("connectionId","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(e)=>e.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(e)=>e.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(e)=>e.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await t.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function Hi(t){await t.schema.dropTable("downstream_tokens").execute(),await t.schema.dropTable("oauth_refresh_tokens").execute(),await t.schema.dropTable("oauth_authorization_codes").execute(),await t.schema.dropTable("oauth_clients").execute(),await t.schema.dropTable("audit_logs").execute(),await t.schema.dropTable("api_keys").execute(),await t.schema.dropTable("connections").execute()}var yt={};i(yt,{up:()=>Yi,down:()=>Ii});import{sql as vn}from"kysely";async function Yi(t){await t.schema.createTable("organization_settings").addColumn("organizationId","text",(e)=>e.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(e)=>e.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(e)=>e.notNull().defaultTo(vn`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(e)=>e.notNull().defaultTo(vn`CURRENT_TIMESTAMP`)).execute()}async function Ii(t){await t.schema.dropTable("organization_settings").execute()}var st={};i(st,{up:()=>Bi,down:()=>Gi});async function Bi(t){await t.schema.alterTable("connections").renameColumn("name","title").execute(),await t.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await t.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await t.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await t.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await t.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await t.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await t.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await t.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await t.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await t.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await t.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function Gi(t){await t.schema.alterTable("connections").renameColumn("title","name").execute(),await t.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await t.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await t.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await t.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await t.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await t.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await t.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await t.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await t.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await t.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await t.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var ft={};i(ft,{up:()=>vi,down:()=>Vi});async function vi(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(e)=>e.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(e)=>e.notNull()).addColumn("updatedAt","text",(e)=>e.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((e)=>e.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await t.schema.dropTable("organization_settings").execute(),await t.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function Vi(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(e)=>e.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(e)=>e.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(e)=>e.notNull()).addColumn("updatedAt","text",(e)=>e.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((e)=>e.selectFrom("organization_settings").select(["organizationId",e.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await t.schema.dropTable("organization_settings").execute(),await t.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var Tt={};i(Tt,{up:()=>qi,down:()=>li});async function qi(t){await t.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await t.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function li(t){await t.schema.alterTable("connections").dropColumn("configuration_state").execute(),await t.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var pt={};i(pt,{up:()=>bi,down:()=>ta});import{sql as di}from"kysely";async function bi(t){await t.schema.alterTable("organization_settings").addColumn("sidebar_items",di`text`).execute()}async function ta(t){await t.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var wt={};i(wt,{up:()=>ea,down:()=>na});async function ea(t){await t.schema.createTable("monitoring_logs").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(e)=>e.notNull()).addColumn("tool_name","text",(e)=>e.notNull()).addColumn("input","text",(e)=>e.notNull()).addColumn("output","text",(e)=>e.notNull()).addColumn("is_error","integer",(e)=>e.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(e)=>e.notNull()).addColumn("timestamp","text",(e)=>e.notNull()).addColumn("user_id","text").addColumn("request_id","text",(e)=>e.notNull()).execute(),await t.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await t.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await t.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function na(t){await t.schema.dropIndex("monitoring_logs_is_error").execute(),await t.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await t.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await t.schema.dropTable("monitoring_logs").execute()}var Ct={};i(Ct,{up:()=>ia,down:()=>aa});import{sql as S}from"kysely";async function ia(t){await t.schema.createTable("events").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(e)=>e.notNull()).addColumn("source","text",(e)=>e.notNull()).addColumn("specversion","text",(e)=>e.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(e)=>e.notNull()).addColumn("datacontenttype","text",(e)=>e.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(e)=>e.notNull().defaultTo("pending")).addColumn("attempts","integer",(e)=>e.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(e)=>e.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_subscriptions").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(e)=>e.notNull()).addColumn("filter","text").addColumn("enabled","integer",(e)=>e.notNull().defaultTo(1)).addColumn("created_at","text",(e)=>e.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_deliveries").addColumn("id","text",(e)=>e.primaryKey()).addColumn("event_id","text",(e)=>e.notNull()).addColumn("subscription_id","text",(e)=>e.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(e)=>e.notNull().defaultTo("pending")).addColumn("attempts","integer",(e)=>e.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(e)=>e.notNull().defaultTo(S`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await t.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await t.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await t.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await t.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await t.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await t.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await t.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await t.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function aa(t){await t.schema.dropIndex("idx_deliveries_retry").execute(),await t.schema.dropIndex("idx_deliveries_subscription_status").execute(),await t.schema.dropIndex("idx_deliveries_event").execute(),await t.schema.dropIndex("idx_subscriptions_unique").execute(),await t.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await t.schema.dropIndex("idx_subscriptions_type").execute(),await t.schema.dropIndex("idx_subscriptions_connection").execute(),await t.schema.dropIndex("idx_events_retry").execute(),await t.schema.dropIndex("idx_events_type").execute(),await t.schema.dropIndex("idx_events_source").execute(),await t.schema.dropIndex("idx_events_org_status").execute(),await t.schema.dropTable("event_deliveries").execute(),await t.schema.dropTable("event_subscriptions").execute(),await t.schema.dropTable("events").execute()}var Nt={};i(Nt,{up:()=>oa,down:()=>_a});import{sql as ua}from"kysely";async function oa(t){await t.schema.dropTable("audit_logs").ifExists().execute()}async function _a(t){await t.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(e)=>e.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(e)=>e.references("user.id").onDelete("set null")).addColumn("connectionId","text",(e)=>e.references("connections.id").onDelete("set null")).addColumn("toolName","text",(e)=>e.notNull()).addColumn("allowed","integer",(e)=>e.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(e)=>e.notNull().defaultTo(ua`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await t.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await t.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var ht={};i(ht,{up:()=>ma,down:()=>xa});import{sql as v}from"kysely";async function ma(t){await t.schema.createTable("gateways").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(e)=>e.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(e)=>e.notNull().defaultTo("active")).addColumn("is_default","integer",(e)=>e.notNull().defaultTo(0)).addColumn("created_at","text",(e)=>e.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("gateway_connections").addColumn("id","text",(e)=>e.primaryKey()).addColumn("gateway_id","text",(e)=>e.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(e)=>e.notNull().defaultTo(v`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await v`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t),await t.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function xa(t){await t.schema.dropIndex("idx_gateway_connections_unique").execute(),await t.schema.dropIndex("idx_gateway_connections_connection").execute(),await t.schema.dropIndex("idx_gateway_connections_gateway").execute(),await t.schema.dropIndex("idx_gateways_default_per_org").execute(),await t.schema.dropIndex("idx_gateways_org_status").execute(),await t.schema.dropIndex("idx_gateways_org").execute(),await t.schema.dropTable("gateway_connections").execute(),await t.schema.dropTable("gateways").execute()}var Et={};i(Et,{up:()=>ra,down:()=>ca});async function ra(t){await t.schema.alterTable("gateways").addColumn("icon","text").execute()}async function ca(t){await t.schema.alterTable("gateways").dropColumn("icon").execute()}var Kt={};i(Kt,{up:()=>ya,down:()=>sa});import{sql as V}from"kysely";async function ya(t){await t.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(e)=>e.notNull().defaultTo("inclusion")).execute(),await V`
3
3
  UPDATE gateways
4
4
  SET tool_selection_mode = CASE
5
5
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
@@ -21,7 +21,7 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
21
21
  ) ranked
22
22
  WHERE rn = 1
23
23
  )
24
- `.execute(t),await t.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await t.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await t.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function Pa(t){await t.schema.dropIndex("idx_downstream_tokens_connection").execute(),await t.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await t.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Lt={};i(Lt,{up:()=>za,down:()=>Ua});async function za(t){await t.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function Ua(t){await t.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(e)=>e.notNull().defaultTo("passthrough")).execute()}var gt={};i(gt,{up:()=>Da,down:()=>La});import{sql as Vn}from"kysely";async function Da(t){await Vn`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(t),await t.schema.alterTable("gateways").dropColumn("is_default").execute()}async function La(t){await t.schema.alterTable("gateways").addColumn("is_default","integer",(e)=>e.notNull().defaultTo(0)).execute(),await Vn`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t)}var jt={};i(jt,{up:()=>ga,down:()=>ja});async function ga(t){await t.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function ja(t){await t.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Rt={};i(Rt,{up:()=>Ra,down:()=>Ja});import{sql as q}from"kysely";async function Ra(t){await t.schema.createTable("threads").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(e)=>e.notNull()).addColumn("description","text").addColumn("hidden","boolean",(e)=>e.notNull().defaultTo(!1)).addColumn("created_at","text",(e)=>e.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("thread_messages").addColumn("id","text",(e)=>e.primaryKey()).addColumn("thread_id","text",(e)=>e.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(e)=>e.notNull()).addColumn("role","text",(e)=>e.notNull()).addColumn("created_at","text",(e)=>e.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await t.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function Ja(t){await t.schema.dropIndex("idx_thread_messages_thread_created").execute(),await t.schema.dropIndex("idx_thread_messages_thread").execute(),await t.schema.dropIndex("idx_threads_org_updated").execute(),await t.schema.dropIndex("idx_threads_created_by").execute(),await t.schema.dropIndex("idx_threads_org").execute(),await t.schema.dropTable("thread_messages").execute(),await t.schema.dropTable("threads").execute()}var Jt={};i(Jt,{up:()=>Aa,down:()=>Wa});async function Aa(t){await t.schema.dropIndex("idx_gateway_connections_unique").execute(),await t.schema.dropIndex("idx_gateway_connections_connection").execute(),await t.schema.dropIndex("idx_gateway_connections_gateway").execute(),await t.schema.dropIndex("idx_gateways_org_status").execute(),await t.schema.dropIndex("idx_gateways_org").execute(),await t.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await t.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await t.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await t.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await t.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await t.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function Wa(t){await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await t.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await t.schema.dropIndex("idx_virtual_mcps_org").execute(),await t.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await t.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await t.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await t.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await t.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var At={};i(At,{up:()=>$a,down:()=>Sa});async function $a(t){await t.schema.dropIndex("idx_threads_org").execute(),await t.schema.dropIndex("idx_thread_messages_thread").execute(),await t.schema.dropIndex("idx_threads_org_updated").execute(),await t.schema.dropIndex("idx_threads_created_by").execute(),await t.schema.dropIndex("idx_thread_messages_thread_created").execute(),await t.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await t.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function Sa(t){await t.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await t.schema.dropIndex("idx_threads_created_by_updated").execute(),await t.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await t.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await t.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var Wt={};i(Wt,{up:()=>Xa,down:()=>Fa});import{sql as f}from"kysely";async function Xa(t){await f`
24
+ `.execute(t),await t.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await t.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await t.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function Pa(t){await t.schema.dropIndex("idx_downstream_tokens_connection").execute(),await t.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await t.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var Lt={};i(Lt,{up:()=>za,down:()=>Ua});async function za(t){await t.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function Ua(t){await t.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(e)=>e.notNull().defaultTo("passthrough")).execute()}var gt={};i(gt,{up:()=>Da,down:()=>La});import{sql as Vn}from"kysely";async function Da(t){await Vn`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(t),await t.schema.alterTable("gateways").dropColumn("is_default").execute()}async function La(t){await t.schema.alterTable("gateways").addColumn("is_default","integer",(e)=>e.notNull().defaultTo(0)).execute(),await Vn`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t)}var jt={};i(jt,{up:()=>ga,down:()=>ja});async function ga(t){await t.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function ja(t){await t.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Rt={};i(Rt,{up:()=>Ra,down:()=>Ja});import{sql as q}from"kysely";async function Ra(t){await t.schema.createTable("threads").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(e)=>e.notNull()).addColumn("description","text").addColumn("hidden","boolean",(e)=>e.notNull().defaultTo(!1)).addColumn("created_at","text",(e)=>e.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("thread_messages").addColumn("id","text",(e)=>e.primaryKey()).addColumn("thread_id","text",(e)=>e.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(e)=>e.notNull()).addColumn("role","text",(e)=>e.notNull()).addColumn("created_at","text",(e)=>e.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await t.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function Ja(t){await t.schema.dropIndex("idx_thread_messages_thread_created").execute(),await t.schema.dropIndex("idx_thread_messages_thread").execute(),await t.schema.dropIndex("idx_threads_org_updated").execute(),await t.schema.dropIndex("idx_threads_created_by").execute(),await t.schema.dropIndex("idx_threads_org").execute(),await t.schema.dropTable("thread_messages").execute(),await t.schema.dropTable("threads").execute()}var Jt={};i(Jt,{up:()=>Aa,down:()=>Wa});async function Aa(t){await t.schema.dropIndex("idx_gateway_connections_unique").execute(),await t.schema.dropIndex("idx_gateway_connections_connection").execute(),await t.schema.dropIndex("idx_gateway_connections_gateway").execute(),await t.schema.dropIndex("idx_gateways_org_status").execute(),await t.schema.dropIndex("idx_gateways_org").execute(),await t.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await t.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await t.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await t.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await t.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await t.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function Wa(t){await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await t.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await t.schema.dropIndex("idx_virtual_mcps_org").execute(),await t.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await t.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await t.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await t.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await t.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var At={};i(At,{up:()=>$a,down:()=>Xa});async function $a(t){await t.schema.dropIndex("idx_threads_org").execute(),await t.schema.dropIndex("idx_thread_messages_thread").execute(),await t.schema.dropIndex("idx_threads_org_updated").execute(),await t.schema.dropIndex("idx_threads_created_by").execute(),await t.schema.dropIndex("idx_thread_messages_thread_created").execute(),await t.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await t.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function Xa(t){await t.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await t.schema.dropIndex("idx_threads_created_by_updated").execute(),await t.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await t.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await t.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await t.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await t.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var Wt={};i(Wt,{up:()=>Fa,down:()=>Sa});import{sql as f}from"kysely";async function Fa(t){await f`
25
25
  INSERT INTO connections (
26
26
  id,
27
27
  organization_id,
@@ -68,7 +68,7 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
68
68
  created_at,
69
69
  updated_at
70
70
  FROM virtual_mcps
71
- `.execute(t),await t.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let e=await f`SELECT current_database()`.execute(t).then(()=>!0).catch(()=>!1);if(e)await f`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(t),await f`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(t),await f`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(t),await f`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(t);if(await t.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),e)await f`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(t),await f`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(t);await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await t.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await t.schema.dropIndex("idx_virtual_mcps_org").execute(),await t.schema.dropTable("virtual_mcps").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function Fa(t){await t.schema.createTable("virtual_mcps").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(e)=>e.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(e)=>e.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(e)=>e.notNull().defaultTo("active")).addColumn("created_at","text",(e)=>e.notNull().defaultTo(f`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(f`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await f`
71
+ `.execute(t),await t.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await t.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let e=await f`SELECT current_database()`.execute(t).then(()=>!0).catch(()=>!1);if(e)await f`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(t),await f`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(t),await f`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(t),await f`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(t);if(await t.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),e)await f`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(t),await f`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(t);await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await t.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await t.schema.dropIndex("idx_virtual_mcps_org").execute(),await t.schema.dropTable("virtual_mcps").execute(),await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function Sa(t){await t.schema.createTable("virtual_mcps").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(e)=>e.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(e)=>e.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(e)=>e.notNull().defaultTo("active")).addColumn("created_at","text",(e)=>e.notNull().defaultTo(f`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(e)=>e.notNull().defaultTo(f`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await f`
72
72
  INSERT INTO virtual_mcps (
73
73
  id, organization_id, title, description, icon, status,
74
74
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -78,7 +78,7 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
78
78
  created_at, updated_at, created_by, NULL, 'inclusion'
79
79
  FROM connections
80
80
  WHERE connection_type = 'VIRTUAL'
81
- `.execute(t),await t.schema.dropIndex("idx_conn_agg_unique").execute(),await t.schema.dropIndex("idx_conn_agg_child").execute(),await t.schema.dropIndex("idx_conn_agg_parent").execute(),await t.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await t.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await f`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(t),await t.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var $t={};i($t,{up:()=>Ma,down:()=>Qa});async function Ma(t){await t.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function Qa(t){await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await t.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var St={};i(St,{up:()=>Oa,down:()=>Za});import{sql as E}from"kysely";async function Oa(t){if(await t.schema.dropIndex("idx_conn_agg_unique").execute(),await t.schema.dropIndex("idx_conn_agg_child").execute(),await t.schema.dropIndex("idx_conn_agg_parent").execute(),await t.schema.createTable("connection_aggregations_new").addColumn("id","text",(n)=>n.primaryKey()).addColumn("parent_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(E`CURRENT_TIMESTAMP`)).execute(),await E`
81
+ `.execute(t),await t.schema.dropIndex("idx_conn_agg_unique").execute(),await t.schema.dropIndex("idx_conn_agg_child").execute(),await t.schema.dropIndex("idx_conn_agg_parent").execute(),await t.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await t.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await t.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await f`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(t),await t.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await t.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var $t={};i($t,{up:()=>Ma,down:()=>Qa});async function Ma(t){await t.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await t.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function Qa(t){await t.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await t.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await t.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var Xt={};i(Xt,{up:()=>Oa,down:()=>Za});import{sql as E}from"kysely";async function Oa(t){if(await t.schema.dropIndex("idx_conn_agg_unique").execute(),await t.schema.dropIndex("idx_conn_agg_child").execute(),await t.schema.dropIndex("idx_conn_agg_parent").execute(),await t.schema.createTable("connection_aggregations_new").addColumn("id","text",(n)=>n.primaryKey()).addColumn("parent_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(E`CURRENT_TIMESTAMP`)).execute(),await E`
82
82
  INSERT INTO connection_aggregations_new (
83
83
  id, parent_connection_id, child_connection_id,
84
84
  selected_tools, selected_resources, selected_prompts, created_at
@@ -96,7 +96,7 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
96
96
  id, parent_connection_id, child_connection_id,
97
97
  selected_tools, selected_resources, selected_prompts, created_at
98
98
  FROM connection_aggregations
99
- `.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await E`SELECT current_database()`.execute(t).then(()=>!0).catch(()=>!1))await E`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(t),await E`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(t);await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var Ft={};i(Ft,{up:()=>Ha,down:()=>Ya});import{sql as Xt}from"kysely";async function Ha(t){await Xt`
99
+ `.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await E`SELECT current_database()`.execute(t).then(()=>!0).catch(()=>!1))await E`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(t),await E`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(t);await t.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await t.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var St={};i(St,{up:()=>Ha,down:()=>Ya});import{sql as Ft}from"kysely";async function Ha(t){await Ft`
100
100
  UPDATE connections
101
101
  SET connection_url = connection_url || '/management',
102
102
  tools = NULL,
@@ -104,13 +104,13 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
104
104
  WHERE connection_url LIKE '%/mcp'
105
105
  AND connection_url NOT LIKE '%/mcp/management'
106
106
  AND app_name = '@deco/management-mcp'
107
- `.execute(t),await Xt`
107
+ `.execute(t),await Ft`
108
108
  UPDATE connections
109
109
  SET tools = NULL,
110
110
  updated_at = CURRENT_TIMESTAMP
111
111
  WHERE app_name = '@deco/management-mcp'
112
112
  AND tools IS NOT NULL
113
- `.execute(t)}async function Ya(t){await Xt`
113
+ `.execute(t)}async function Ya(t){await Ft`
114
114
  UPDATE connections
115
115
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
116
116
  updated_at = CURRENT_TIMESTAMP
@@ -204,7 +204,7 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
204
204
  `.execute(t),await ae`
205
205
  DELETE FROM project_plugin_configs
206
206
  WHERE plugin_id = 'object-storage'
207
- `.execute(t)}async function Wu(t){}var oe={};i(oe,{up:()=>$u,down:()=>Su});import{sql as ni}from"kysely";async function $u(t){await t.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await ni`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(t)}async function Su(t){await ni`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(t),await t.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var me={};i(me,{up:()=>Xu,down:()=>Fu});import{sql as _e}from"kysely";async function Xu(t){await t.schema.alterTable("connections").addColumn("subtype","text").execute(),await _e`
207
+ `.execute(t)}async function Wu(t){}var oe={};i(oe,{up:()=>$u,down:()=>Xu});import{sql as ni}from"kysely";async function $u(t){await t.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await ni`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(t)}async function Xu(t){await ni`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(t),await t.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var me={};i(me,{up:()=>Fu,down:()=>Su});import{sql as _e}from"kysely";async function Fu(t){await t.schema.alterTable("connections").addColumn("subtype","text").execute(),await _e`
208
208
  ALTER TABLE connections
209
209
  ADD CONSTRAINT chk_connections_subtype
210
210
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
@@ -212,7 +212,7 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
212
212
  UPDATE connections
213
213
  SET subtype = 'agent'
214
214
  WHERE connection_type = 'VIRTUAL'
215
- `.execute(t),await t.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(_)=>_.primaryKey()).addColumn("virtual_mcp_id","text",(_)=>_.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(_)=>_.notNull()).addColumn("connection_id","text",(_)=>_.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(_)=>_.notNull()).addColumn("updated_at","text",(_)=>_.notNull()).execute(),await t.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await t.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let e=await t.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),n=await t.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),u=new Map;for(let _ of n)u.set(_.organizationId,_.userId);let a=new Map;for(let _ of e){let x=`vir_${j()}`;a.set(_.id,x);let r=_.ui?JSON.parse(_.ui):null,c=JSON.stringify({enabled_plugins:_.enabled_plugins?JSON.parse(_.enabled_plugins):null,ui:r,migrated_from_project:_.id,migrated_project_slug:_.slug}),s=u.get(_.organization_id);if(!s)continue;await t.insertInto("connections").values({id:x,organization_id:_.organization_id,created_by:s,updated_by:null,title:_.name,description:_.description,icon:r?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${x}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:c,bindings:null,status:"active",subtype:"project",created_at:_.created_at,updated_at:_.updated_at}).execute()}let o=await t.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let _ of o){let x=a.get(_.project_id);if(!x)continue;await t.insertInto("connection_aggregations").values({id:`agg_${j()}`,parent_connection_id:x,child_connection_id:_.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:_.created_at}).onConflict((r)=>r.doNothing()).execute()}let m=await t.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let _ of m){let x=a.get(_.project_id);if(!x)continue;await t.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${j()}`,virtual_mcp_id:x,plugin_id:_.plugin_id,connection_id:_.connection_id,settings:_.settings,created_at:_.created_at,updated_at:_.updated_at}).execute()}await t.schema.dropTable("project_plugin_configs").execute(),await t.schema.dropTable("project_connections").execute(),await t.schema.dropTable("projects").execute()}async function Fu(t){await t.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await t.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await _e`
215
+ `.execute(t),await t.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(_)=>_.primaryKey()).addColumn("virtual_mcp_id","text",(_)=>_.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(_)=>_.notNull()).addColumn("connection_id","text",(_)=>_.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(_)=>_.notNull()).addColumn("updated_at","text",(_)=>_.notNull()).execute(),await t.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await t.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let e=await t.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),n=await t.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),u=new Map;for(let _ of n)u.set(_.organizationId,_.userId);let a=new Map;for(let _ of e){let x=`vir_${j()}`;a.set(_.id,x);let r=_.ui?JSON.parse(_.ui):null,c=JSON.stringify({enabled_plugins:_.enabled_plugins?JSON.parse(_.enabled_plugins):null,ui:r,migrated_from_project:_.id,migrated_project_slug:_.slug}),s=u.get(_.organization_id);if(!s)continue;await t.insertInto("connections").values({id:x,organization_id:_.organization_id,created_by:s,updated_by:null,title:_.name,description:_.description,icon:r?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${x}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:c,bindings:null,status:"active",subtype:"project",created_at:_.created_at,updated_at:_.updated_at}).execute()}let o=await t.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let _ of o){let x=a.get(_.project_id);if(!x)continue;await t.insertInto("connection_aggregations").values({id:`agg_${j()}`,parent_connection_id:x,child_connection_id:_.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:_.created_at}).onConflict((r)=>r.doNothing()).execute()}let m=await t.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let _ of m){let x=a.get(_.project_id);if(!x)continue;await t.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${j()}`,virtual_mcp_id:x,plugin_id:_.plugin_id,connection_id:_.connection_id,settings:_.settings,created_at:_.created_at,updated_at:_.updated_at}).execute()}await t.schema.dropTable("project_plugin_configs").execute(),await t.schema.dropTable("project_connections").execute(),await t.schema.dropTable("projects").execute()}async function Su(t){await t.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await t.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await _e`
216
216
  ALTER TABLE connections
217
217
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
218
218
  `.execute(t),await t.schema.alterTable("connections").dropColumn("subtype").execute()}var xe={};i(xe,{up:()=>Qu,down:()=>Ou});import{sql as Mu}from"kysely";async function Qu(t){await Mu`
@@ -267,13 +267,13 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
267
267
  metadata = ${r},
268
268
  updated_at = NOW()
269
269
  WHERE id = ${n.id}
270
- `.execute(t)}}}async function Uo(t){}var ge={};i(ge,{up:()=>Lo,down:()=>go});import{sql as Do}from"kysely";async function Lo(t){await t.schema.alterTable("threads").addColumn("metadata","jsonb",(e)=>e.notNull().defaultTo(Do`'{}'::jsonb`)).execute()}async function go(t){await t.schema.alterTable("threads").dropColumn("metadata").execute()}var je={};i(je,{up:()=>jo,down:()=>Ro});async function jo(t){await t.schema.alterTable("threads").addColumn("branch","text").execute()}async function Ro(t){await t.schema.alterTable("threads").dropColumn("branch").execute()}var Re={};i(Re,{up:()=>Jo,down:()=>Ao});async function Jo(t){await t.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(e)=>e.notNull()).addColumn("project_ref","text",(e)=>e.notNull()).addColumn("runner_kind","text",(e)=>e.notNull()).addColumn("handle","text",(e)=>e.notNull()).addColumn("state","jsonb",(e)=>e.notNull()).addColumn("updated_at","timestamptz",(e)=>e.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await t.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function Ao(t){await t.schema.dropTable("sandbox_runner_state").execute()}var Je={};i(Je,{up:()=>Wo,down:()=>$o});async function Wo(t){await t.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function $o(t){await t.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Ae={};i(Ae,{up:()=>So,down:()=>Xo});async function So(t){await t.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function Xo(t){await t.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var We={};i(We,{up:()=>Fo,down:()=>Mo});async function Fo(t){await t.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function Mo(t){await t.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var $e={};i($e,{up:()=>Oo,down:()=>Zo});import{sql as _i}from"kysely";var Qo=["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","AUTOMATION_GET","AUTOMATION_LIST","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","VM_START","VM_DELETE"];async function Oo(t){let e=await _i`
270
+ `.execute(t)}}}async function Uo(t){}var ge={};i(ge,{up:()=>Lo,down:()=>go});import{sql as Do}from"kysely";async function Lo(t){await t.schema.alterTable("threads").addColumn("metadata","jsonb",(e)=>e.notNull().defaultTo(Do`'{}'::jsonb`)).execute()}async function go(t){await t.schema.alterTable("threads").dropColumn("metadata").execute()}var je={};i(je,{up:()=>jo,down:()=>Ro});async function jo(t){await t.schema.alterTable("threads").addColumn("branch","text").execute()}async function Ro(t){await t.schema.alterTable("threads").dropColumn("branch").execute()}var Re={};i(Re,{up:()=>Jo,down:()=>Ao});async function Jo(t){await t.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(e)=>e.notNull()).addColumn("project_ref","text",(e)=>e.notNull()).addColumn("runner_kind","text",(e)=>e.notNull()).addColumn("handle","text",(e)=>e.notNull()).addColumn("state","jsonb",(e)=>e.notNull()).addColumn("updated_at","timestamptz",(e)=>e.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await t.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function Ao(t){await t.schema.dropTable("sandbox_runner_state").execute()}var Je={};i(Je,{up:()=>Wo,down:()=>$o});async function Wo(t){await t.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function $o(t){await t.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var Ae={};i(Ae,{up:()=>Xo,down:()=>Fo});async function Xo(t){await t.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function Fo(t){await t.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var We={};i(We,{up:()=>So,down:()=>Mo});async function So(t){await t.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function Mo(t){await t.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var $e={};i($e,{up:()=>Oo,down:()=>Zo});import{sql as _i}from"kysely";var Qo=["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","AUTOMATION_GET","AUTOMATION_LIST","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","VM_START","VM_DELETE"];async function Oo(t){let e=await _i`
271
271
  SELECT id, permission FROM "organizationRole"
272
272
  `.execute(t);for(let n of e.rows){if(!n.permission)continue;let u;try{u=JSON.parse(n.permission)}catch{continue}let a=u.self;if(!Array.isArray(a))continue;if(a.length===1&&a[0]==="*")continue;let o=a,m=Array.from(new Set([...o,...Qo]));if(m.length===o.length)continue;u.self=m;let _=JSON.stringify(u);await _i`
273
273
  UPDATE "organizationRole"
274
274
  SET permission = ${_}
275
275
  WHERE id = ${n.id}
276
- `.execute(t)}}async function Zo(t){}var Se={};i(Se,{up:()=>Ho,down:()=>Yo});async function Ho(t){await t.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await t.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function Yo(t){await t.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await t.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var Xe={};i(Xe,{up:()=>Io,down:()=>Bo});async function Io(t){await t.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function Bo(t){await t.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Fe={};i(Fe,{up:()=>Go,down:()=>vo});import{sql as O}from"kysely";async function Go(t){await O`
276
+ `.execute(t)}}async function Zo(t){}var Xe={};i(Xe,{up:()=>Ho,down:()=>Yo});async function Ho(t){await t.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await t.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function Yo(t){await t.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await t.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var Fe={};i(Fe,{up:()=>Io,down:()=>Bo});async function Io(t){await t.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function Bo(t){await t.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var Se={};i(Se,{up:()=>Go,down:()=>vo});import{sql as O}from"kysely";async function Go(t){await O`
277
277
  UPDATE automations
278
278
  SET virtual_mcp_id = (agent::json ->> 'id')
279
279
  WHERE virtual_mcp_id IS NULL
@@ -790,16 +790,16 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
790
790
  WHERE c.connection_type = 'VIRTUAL'
791
791
  AND c.metadata IS NOT NULL
792
792
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
793
- `.execute(t)}async function A_(t){}var nn={};i(nn,{up:()=>$_,down:()=>S_});import{sql as Ti}from"kysely";var W_=["GLOBAL_SEARCH"];async function $_(t){let e=await Ti`
793
+ `.execute(t)}async function A_(t){}var nn={};i(nn,{up:()=>$_,down:()=>X_});import{sql as Ti}from"kysely";var W_=["GLOBAL_SEARCH"];async function $_(t){let e=await Ti`
794
794
  SELECT id, permission FROM "organizationRole"
795
795
  `.execute(t);for(let n of e.rows){if(!n.permission)continue;let u;try{u=JSON.parse(n.permission)}catch{continue}let a=u.self;if(!Array.isArray(a))continue;if(a.length===1&&a[0]==="*")continue;let o=a,m=Array.from(new Set([...o,...W_]));if(m.length===o.length)continue;u.self=m;let _=JSON.stringify(u);await Ti`
796
796
  UPDATE "organizationRole"
797
797
  SET permission = ${_}
798
798
  WHERE id = ${n.id}
799
- `.execute(t)}}async function S_(t){}var un={};i(un,{up:()=>X_,down:()=>F_});import{sql as an}from"kysely";async function X_(t){await t.schema.createTable("org_file_configs").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(e)=>e.notNull()).addColumn("description","text").addColumn("bucket","text",(e)=>e.notNull()).addColumn("region","text",(e)=>e.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(e)=>e.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(e)=>e.notNull()).addColumn("created_by","text",(e)=>e.notNull()).addColumn("created_at","timestamptz",(e)=>e.notNull().defaultTo(an`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(e)=>e.notNull()).addColumn("updated_at","timestamptz",(e)=>e.notNull().defaultTo(an`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await an`
799
+ `.execute(t)}}async function X_(t){}var un={};i(un,{up:()=>F_,down:()=>S_});import{sql as an}from"kysely";async function F_(t){await t.schema.createTable("org_file_configs").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(e)=>e.notNull()).addColumn("description","text").addColumn("bucket","text",(e)=>e.notNull()).addColumn("region","text",(e)=>e.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(e)=>e.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(e)=>e.notNull()).addColumn("created_by","text",(e)=>e.notNull()).addColumn("created_at","timestamptz",(e)=>e.notNull().defaultTo(an`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(e)=>e.notNull()).addColumn("updated_at","timestamptz",(e)=>e.notNull().defaultTo(an`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await an`
800
800
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
801
801
  ON org_file_configs (organization_id, lower(name))
802
- `.execute(t)}async function F_(t){await t.schema.dropTable("org_file_configs").execute()}var on={};i(on,{up:()=>M_,down:()=>Q_});import{sql as P}from"kysely";async function M_(t){await P`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await P`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await P`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await P`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await P`
802
+ `.execute(t)}async function S_(t){await t.schema.dropTable("org_file_configs").execute()}var on={};i(on,{up:()=>M_,down:()=>Q_});import{sql as P}from"kysely";async function M_(t){await P`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await P`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await P`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await P`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await P`
803
803
  ALTER TABLE automations
804
804
  ALTER COLUMN virtual_mcp_id SET NOT NULL
805
805
  `.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function Q_(t){await t.schema.alterTable("automations").addColumn("kind","text",(e)=>e.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await P`
@@ -940,11 +940,11 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
940
940
  `.execute(t),await T`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(t),await T`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(t),await T`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(t),await T`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(t),await T`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(t),await T`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(t),await T`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(t),await T`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(t),await t.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await t.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function Wm(t){await t.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await t.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(e)=>e.notNull().defaultTo(!1)).execute(),await T`
941
941
  UPDATE organization_domains
942
942
  SET auto_join_enabled = (join_mode = 'auto')
943
- `.execute(t),await T`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(t),await T`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(t),await t.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var Jn={};i(Jn,{up:()=>$m,down:()=>Sm});import{sql as ut}from"kysely";async function $m(t){await t.schema.createTable("organization_join_requests").addColumn("id","text",(e)=>e.primaryKey().defaultTo(ut`gen_random_uuid()::text`)).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(e)=>e.notNull().defaultTo("pending")).addColumn("decided_by","text",(e)=>e.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(e)=>e.notNull().defaultTo(ut`now()`)).addColumn("updated_at","timestamptz",(e)=>e.notNull().defaultTo(ut`now()`)).execute(),await ut`
943
+ `.execute(t),await T`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(t),await T`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(t),await t.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var Jn={};i(Jn,{up:()=>$m,down:()=>Xm});import{sql as ut}from"kysely";async function $m(t){await t.schema.createTable("organization_join_requests").addColumn("id","text",(e)=>e.primaryKey().defaultTo(ut`gen_random_uuid()::text`)).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(e)=>e.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(e)=>e.notNull().defaultTo("pending")).addColumn("decided_by","text",(e)=>e.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(e)=>e.notNull().defaultTo(ut`now()`)).addColumn("updated_at","timestamptz",(e)=>e.notNull().defaultTo(ut`now()`)).execute(),await ut`
944
944
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
945
945
  ON organization_join_requests (organization_id, user_id)
946
946
  WHERE status = 'pending'
947
- `.execute(t),await t.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function Sm(t){await t.schema.dropTable("organization_join_requests").execute()}var An={};i(An,{up:()=>Xm,down:()=>Fm});async function Xm(t){await t.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(e)=>e.notNull().defaultTo(!1)).execute()}async function Fm(t){await t.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Wn={};i(Wn,{up:()=>Mm,down:()=>Qm});async function Mm(t){await t.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function Qm(t){await t.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Xn={};i(Xn,{up:()=>Hm,splitWebResearchTier:()=>Sn,down:()=>Ym,__testing:()=>Zm});function Om(t){return t.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function $n(t){if(!t||typeof t!=="object")return!1;let e=t.tiers;if(!e||typeof e!=="object")return!1;return"web_search"in e||"deep_research"in e}function Sn(t){if(!t||$n(t))return t;let e=t.tiers??{},n=e.web_research??null,{web_research:u,...a}=e,o=null,m=null;if(n)if(Om(n.modelId))m=n;else o=n;return{...t,tiers:{...a,web_search:o,deep_research:m}}}var Zm={splitWebResearchTier:Sn,isAlreadySplit:$n};async function Hm(t){let e=await t.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let n of e){if(!n.simple_mode)continue;let u=typeof n.simple_mode==="string"?JSON.parse(n.simple_mode):n.simple_mode;if($n(u))continue;let a=Sn(u);await t.updateTable("organization_settings").set({simple_mode:JSON.stringify(a)}).where("organizationId","=",n.organizationId).execute()}}async function Ym(t){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Fn={};i(Fn,{up:()=>Im,down:()=>Bm});import{sql as Y}from"kysely";async function Im(t){await t.schema.createTable("connection_workload_tokens").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(e)=>e.notNull().unique()).addColumn("token_prefix","text",(e)=>e.notNull()).addColumn("name","text",(e)=>e.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(e)=>e.notNull().defaultTo(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(e)=>e.notNull().defaultTo(Y`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await Y`
947
+ `.execute(t),await t.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function Xm(t){await t.schema.dropTable("organization_join_requests").execute()}var An={};i(An,{up:()=>Fm,down:()=>Sm});async function Fm(t){await t.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(e)=>e.notNull().defaultTo(!1)).execute()}async function Sm(t){await t.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var Wn={};i(Wn,{up:()=>Mm,down:()=>Qm});async function Mm(t){await t.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function Qm(t){await t.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var Fn={};i(Fn,{up:()=>Hm,splitWebResearchTier:()=>Xn,down:()=>Ym,__testing:()=>Zm});function Om(t){return t.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function $n(t){if(!t||typeof t!=="object")return!1;let e=t.tiers;if(!e||typeof e!=="object")return!1;return"web_search"in e||"deep_research"in e}function Xn(t){if(!t||$n(t))return t;let e=t.tiers??{},n=e.web_research??null,{web_research:u,...a}=e,o=null,m=null;if(n)if(Om(n.modelId))m=n;else o=n;return{...t,tiers:{...a,web_search:o,deep_research:m}}}var Zm={splitWebResearchTier:Xn,isAlreadySplit:$n};async function Hm(t){let e=await t.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let n of e){if(!n.simple_mode)continue;let u=typeof n.simple_mode==="string"?JSON.parse(n.simple_mode):n.simple_mode;if($n(u))continue;let a=Xn(u);await t.updateTable("organization_settings").set({simple_mode:JSON.stringify(a)}).where("organizationId","=",n.organizationId).execute()}}async function Ym(t){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var Sn={};i(Sn,{up:()=>Im,down:()=>Bm});import{sql as Y}from"kysely";async function Im(t){await t.schema.createTable("connection_workload_tokens").addColumn("id","text",(e)=>e.primaryKey()).addColumn("organization_id","text",(e)=>e.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(e)=>e.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(e)=>e.notNull().unique()).addColumn("token_prefix","text",(e)=>e.notNull()).addColumn("name","text",(e)=>e.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(e)=>e.notNull().defaultTo(Y`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(e)=>e.notNull().defaultTo(Y`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await Y`
948
948
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
949
949
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
950
950
  WHERE revoked_at IS NULL
@@ -1007,27 +1007,27 @@ var Mi=Object.defineProperty;var Qi=(t)=>t;function Oi(t,e){this[t]=Qi.bind(null
1007
1007
  BEFORE INSERT ON connection_aggregations
1008
1008
  FOR EACH ROW
1009
1009
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1010
- `.execute(t)}async function qm(t){await L`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(t),await L`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(t),await L`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(t)}var lm={"001-initial-schema":ct,"002-organization-settings":yt,"003-connection-schema-align":st,"004-remove-models-binding":ft,"005-connection-configuration":Tt,"006-add-views-to-settings":pt,"007-monitoring-logs":wt,"008-event-bus":Ct,"009-drop-audit-logs":Nt,"010-gateways":ht,"011-gateway-icon":Et,"012-gateway-tool-selection-mode":Kt,"013-monitoring-user-agent-gateway":kt,"014-gateway-resources-prompts":Pt,"015-monitoring-properties":zt,"016-downstream-token-client-info":Ut,"017-downstream-token-remove-userid":Dt,"018-drop-gateway-tool-selection-strategy":Lt,"019-remove-gateway-is-default":gt,"020-enabled-plugins":jt,"021-threads":Rt,"022-rename-gateway-to-virtual-mcp":Jt,"023-optimize-thread-indexes":At,"024-consolidate-virtual-mcp":Wt,"025-add-monitoring-virtual-mcp-id":$t,"026-restrict-child-connection-delete":St,"027-update-management-mcp-url":Ft,"028-update-management-mcp-to-self":Qt,"029-add-updated-by-to-connections":Ot,"030-member-tags":Zt,"031-add-dependency-mode":Ht,"032-projects":Yt,"033-thread-status":It,"034-monitoring-dashboards":Bt,"035-project-connections":Gt,"036-update-registry-url":vt,"037-ai-provider-keys":Vt,"038-oauth-pkce-states":qt,"039-automations":lt,"040-replace-next-run-at-with-last-run-at":dt,"041-ai-provider-keys-unique-constraint":bt,"042-rename-mesh-mcp-to-cms-mcp":te,"043-rename-cms-mcp-to-deco-cms":ee,"044-drop-connections-tools-column":ne,"045-thread-context-start-message":ie,"046-remove-object-storage-plugin":ue,"047-add-next-run-at":oe,"048-merge-projects-agents":me,"049-remove-org-admin-projects":xe,"050-durable-agent-runs":re,"051-org-sso":ye,"052-thread-agent-ids":se,"053-registry-config":fe,"054-connection-slug":pe,"055-spaces":we,"056-automation-project-scope":Ce,"057-thread-virtual-mcp-id":Ne,"058-trigger-callback-tokens":he,"059-kv":Ee,"060-member-index":Ke,"061-downstream-token-connection-index":ke,"062-private-registry":Pe,"063-event-subscriptions-enabled-boolean":ze,"064-brand-context":Ue,"065-organization-domains":De,"066-brand-context-structured":Le,"067-threads-metadata":ge,"068-threads-branch":je,"069-sandbox-runner-state":Re,"070-model-categories":Je,"071-default-home-agents":Ae,"072-ai-provider-key-preset-id":We,"073-backfill-basic-usage-roles":$e,"074-sandbox-runner-state-handle-nonunique":Se,"075-thread-inflight-async-jobs":Xe,"076-automations-drop-agent-json":Fe,"077-tier-only-model-selection":Qe,"078-automation-tool-call-kind":Oe,"079-strip-legacy-freestyle-vm-map-entries":Ze,"080-async-research-jobs":He,"081-async-research-jobs-result-content":Ye,"082-secrets":Ie,"083-thread-run-locally":Be,"084-drop-host-sandbox-rows":Ge,"085-rename-runner-kind":ve,"086-thread-pins-and-vm-map-rekey":Ve,"087-fix-vm-map-rekey":qe,"088-purge-cli-activate-keys":le,"089-rename-remote-user-to-desktop":de,"090-automation-webhook-triggers":be,"091-organization-domains-allow-multi":tn,"092-sandbox-naming-uniformization":en,"093-backfill-global-search-basic-usage":nn,"094-org-file-configs":un,"095-remove-automation-tool-call-kind":on,"096-org-file-configs-public-url-base":_n,"097-drop-local-docker-sandbox-state":xn,"098-thread-message-parts":rn,"099-run-fence":cn,"100-link-transport":yn,"101-cancel-requested-at":sn,"102-observational-agent":fn,"103-revert-observational-agent":Tn,"104-agent-sandbox-provider-kind":wn,"105-org-fs":Cn,"106-automation-tools":Nn,"107-org-fs-public-org":hn,"108-automation-max-agent-steps":En,"109-thread-message-parts-per-message-seq":Kn,"110-backfill-ghs-token-expiry":kn,"111-org-fs-thread-id":Pn,"112-org-file-configs-credential-type":zn,"113-thread-failure-reason":Un,"114-run-acked-seq":Dn,"115-thread-projected-seq":Ln,"116-org-sites":gn,"117-org-file-configs-site-slug":jn,"118-organization-domains-multi-verify":Rn,"119-organization-join-requests":Jn,"120-org-fs-read-public":An,"121-org-fs-share-password":Wn,"122-split-web-research-tier":Xn,"123-connection-credential-vault":Fn,"124-drop-thread-projected-seq":Mn,"125-github-child-single-parent":Qn},On=lm;import{getMigrations as gx}from"better-auth/db";import{sso as jx}from"@better-auth/sso";import{organization as Rx}from"@decocms/better-auth/plugins";import{admin as Jx,apiKey as Ax,jwt as Wx,magicLink as $x,mcp as Sx,openAPI as Xx}from"better-auth/plugins";import{emailOTP as Fx}from"better-auth/plugins/email-otp";import{Kysely as Kx,PostgresDialect as ji}from"kysely";import{Pool as Ri}from"pg";import{homedir as dm}from"os";var bm=new Set(["all","worker","api"]);function tx(t){let e=(t??"").trim();return bm.has(e)?e:"all"}function W(t){return t==="true"||t==="1"}function ex(t){if(t===void 0||t==="")return;return W(t)}function nx(t,e,n){if(e===void 0||e==="")return n;let u=Number(e);if(!Number.isSafeInteger(u)||u<=0)throw Error(`${t} must be a positive integer`);return u}function ix(t,e){if(t===void 0||t==="")return e;return t==="true"||t==="1"}function hi(t){if(!t)return null;try{let n=new URL(t).hostname;if(n==="localhost"||n==="127.0.0.1"||n==="::1")return null;return t}catch{return null}}var ax=new Set(["agent-sandbox","user-desktop"]);function ux(t){let e=t&&t.length>0?t:"user-desktop";if(e==="cluster")return"agent-sandbox";if(!ax.has(e))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return e}function Ei(t,e){let n=t.home||e.DATA_DIR||e.DECOCMS_HOME||`${dm()}/deco`,u=t.localMode,a=t.nodeEnv||e.NODE_ENV||"development",o=e.NATS_URL||"nats://localhost:4222",m=ex(e.NATS_TUNNEL_PUBLIC_ENABLED)??!!e.NATS_PUBLIC_URL;return{settings:{nodeEnv:a,port:Number(t.port)||Number(e.PORT)||3000,baseUrl:t.baseUrl||e.BASE_URL,dataDir:n,databasePgSsl:W(e.DATABASE_PG_SSL),databasePoolMax:Number(e.DATABASE_POOL_MAX)||5,betterAuthSecret:e.BETTER_AUTH_SECRET||"",encryptionKey:e.ENCRYPTION_KEY||"",meshJwtSecret:e.MESH_JWT_SECRET,localMode:u,disableRateLimit:W(e.DISABLE_RATE_LIMIT),studioProvisionSecretKey:e.STUDIO_PROVISION_SECRET_KEY,clickhouseUrl:e.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Number(e.CLICKHOUSE_MAX_MEMORY_USAGE)||void 0,monitoringOtlpEndpoint:e.MONITORING_OTLP_ENDPOINT,otelServiceName:e.OTEL_SERVICE_NAME||"studio",natsPublicUrl:e.NATS_PUBLIC_URL,natsTunnelPublicEnabled:m,natsTunnelSessionTtlSeconds:nx("NATS_TUNNEL_SESSION_TTL_SECONDS",e.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:e.NATS_OPERATOR_JWT,natsAccountJwt:e.NATS_ACCOUNT_JWT,natsAccountSigningKey:e.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:e.NATS_CREDS,configPath:e.CONFIG_PATH||"./config.json",aiGatewayEnabled:W(e.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:e.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",enableDecoImport:W(e.ENABLE_DECO_IMPORT),mcpCacheEnabled:ix(e.MCP_CACHE_ENABLED,a!=="development"),orgFsPublicSetsJson:e.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:W(e.DISABLE_ORGFS_MOUNTS),s3Endpoint:e.S3_ENDPOINT,s3Bucket:e.S3_BUCKET,s3Region:e.S3_REGION||"auto",s3AccessKeyId:e.S3_ACCESS_KEY_ID,s3SecretAccessKey:e.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:e.S3_FORCE_PATH_STYLE===void 0||e.S3_FORCE_PATH_STYLE===""||e.S3_FORCE_PATH_STYLE==="true"||e.S3_FORCE_PATH_STYLE==="1",monitoringS3Bucket:e.MONITORING_S3_BUCKET,monitoringS3Endpoint:e.MONITORING_S3_ENDPOINT,monitoringS3Region:e.MONITORING_S3_REGION,monitoringS3AccessKeyId:e.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:e.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:e.MONITORING_S3_PREFIX,duckdbExtensionDirectory:e.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:e.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:e.DUCKDB_THREADS?Number(e.DUCKDB_THREADS):void 0,isCli:!0,noTui:t.noTui===!0,podName:e.POD_NAME??crypto.randomUUID(),dispatchRole:tx(e.MESH_DISPATCH_ROLE),sandboxProviderKind:ux(e.STUDIO_SANDBOX_PROVIDER),decoSupabaseUrl:e.DECO_SUPABASE_URL,decoSupabaseServiceKey:e.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:e.FIRECRAWL_API_KEY,commerceDiscoveryInternalApiUrl:e.COMMERCE_DISCOVERY_INTERNAL_API_URL,commerceDiscoveryInternalApiKey:e.COMMERCE_DISCOVERY_INTERNAL_API_KEY,s3TenantBucket:e.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:e.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:e.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:e.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:e.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:e.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:e.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:hi(e.DATABASE_URL),externalNatsUrl:hi(o),skipMigrations:t.skipMigrations}}var ot=null;function $(){if(!ot)ox();return ot}function ox(){if(ot)return;let t={...process.env},e=Ei({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);ot=Object.freeze({...e.settings,databaseUrl:t.DATABASE_URL??"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((n)=>n.trim()).filter(Boolean)})}import{createContextKey as yx,metrics as sx,propagation as Sy,ROOT_CONTEXT as Xy,SpanStatusCode as Fy,trace as fx}from"@opentelemetry/api";import{logs as Tx,SeverityNumber as Zn}from"@opentelemetry/api-logs";import{OTLPLogExporter as Oy}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as px}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Yy}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as By}from"@opentelemetry/instrumentation-runtime-node";import{context as jc,propagation as Rc,SpanKind as Jc,SpanStatusCode as Ac}from"@opentelemetry/api";var $c=globalThis.fetch;import{ExportResultCode as Gc}from"@opentelemetry/core";import{ExportResultCode as _t}from"@opentelemetry/core";import{mkdir as _x,rename as mx,writeFile as xx}from"fs/promises";import{join as mt}from"path";class xt{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let e=t.flushIntervalMs??60000;if(e>0&&e<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((n)=>{console.error("[NDJSONExporter] Timer flush failed:",n)})},e),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:_t.FAILED});for(let e of t){let n=JSON.stringify(e),u=this.partitionKey?this.partitionKey(e):"";this.bufferItems.push({partition:u,json:n}),this.bufferBytes+=Buffer.byteLength(n,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:_t.SUCCESS})).catch((e)=>{return console.error("[NDJSONExporter] Flush failed:",e),{code:_t.FAILED}});return Promise.resolve({code:_t.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let e=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=e,e}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let e=new Map;for(let a of t){let o=e.get(a.partition);if(!o)o=[],e.set(a.partition,o);o.push(a.json)}let n=await Promise.allSettled(Array.from(e.entries()).map(([a,o])=>this.writeNDJSON(o,a).then(()=>a))),u=n.find((a)=>a.status==="rejected");if(u){let a=new Set;for(let m of n)if(m.status==="fulfilled")a.add(m.value);let o=t.filter((m)=>!a.has(m.partition));this.bufferItems=o.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw u.reason}}async writeNDJSON(t,e){let n=new Date,u=[String(n.getUTCFullYear()),String(n.getUTCMonth()+1).padStart(2,"0"),String(n.getUTCDate()).padStart(2,"0"),String(n.getUTCHours()).padStart(2,"0")],a=e?mt(this.basePath,e,...u):mt(this.basePath,...u);if(!this.knownDirs.has(a))await _x(a,{recursive:!0,mode:448}),this.knownDirs.add(a);let o=`${crypto.randomUUID()}.ndjson`,m=mt(a,`.${o}.tmp`),_=mt(a,o),x=t.join(`
1010
+ `.execute(t)}async function qm(t){await L`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(t),await L`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(t),await L`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(t)}var lm={"001-initial-schema":ct,"002-organization-settings":yt,"003-connection-schema-align":st,"004-remove-models-binding":ft,"005-connection-configuration":Tt,"006-add-views-to-settings":pt,"007-monitoring-logs":wt,"008-event-bus":Ct,"009-drop-audit-logs":Nt,"010-gateways":ht,"011-gateway-icon":Et,"012-gateway-tool-selection-mode":Kt,"013-monitoring-user-agent-gateway":kt,"014-gateway-resources-prompts":Pt,"015-monitoring-properties":zt,"016-downstream-token-client-info":Ut,"017-downstream-token-remove-userid":Dt,"018-drop-gateway-tool-selection-strategy":Lt,"019-remove-gateway-is-default":gt,"020-enabled-plugins":jt,"021-threads":Rt,"022-rename-gateway-to-virtual-mcp":Jt,"023-optimize-thread-indexes":At,"024-consolidate-virtual-mcp":Wt,"025-add-monitoring-virtual-mcp-id":$t,"026-restrict-child-connection-delete":Xt,"027-update-management-mcp-url":St,"028-update-management-mcp-to-self":Qt,"029-add-updated-by-to-connections":Ot,"030-member-tags":Zt,"031-add-dependency-mode":Ht,"032-projects":Yt,"033-thread-status":It,"034-monitoring-dashboards":Bt,"035-project-connections":Gt,"036-update-registry-url":vt,"037-ai-provider-keys":Vt,"038-oauth-pkce-states":qt,"039-automations":lt,"040-replace-next-run-at-with-last-run-at":dt,"041-ai-provider-keys-unique-constraint":bt,"042-rename-mesh-mcp-to-cms-mcp":te,"043-rename-cms-mcp-to-deco-cms":ee,"044-drop-connections-tools-column":ne,"045-thread-context-start-message":ie,"046-remove-object-storage-plugin":ue,"047-add-next-run-at":oe,"048-merge-projects-agents":me,"049-remove-org-admin-projects":xe,"050-durable-agent-runs":re,"051-org-sso":ye,"052-thread-agent-ids":se,"053-registry-config":fe,"054-connection-slug":pe,"055-spaces":we,"056-automation-project-scope":Ce,"057-thread-virtual-mcp-id":Ne,"058-trigger-callback-tokens":he,"059-kv":Ee,"060-member-index":Ke,"061-downstream-token-connection-index":ke,"062-private-registry":Pe,"063-event-subscriptions-enabled-boolean":ze,"064-brand-context":Ue,"065-organization-domains":De,"066-brand-context-structured":Le,"067-threads-metadata":ge,"068-threads-branch":je,"069-sandbox-runner-state":Re,"070-model-categories":Je,"071-default-home-agents":Ae,"072-ai-provider-key-preset-id":We,"073-backfill-basic-usage-roles":$e,"074-sandbox-runner-state-handle-nonunique":Xe,"075-thread-inflight-async-jobs":Fe,"076-automations-drop-agent-json":Se,"077-tier-only-model-selection":Qe,"078-automation-tool-call-kind":Oe,"079-strip-legacy-freestyle-vm-map-entries":Ze,"080-async-research-jobs":He,"081-async-research-jobs-result-content":Ye,"082-secrets":Ie,"083-thread-run-locally":Be,"084-drop-host-sandbox-rows":Ge,"085-rename-runner-kind":ve,"086-thread-pins-and-vm-map-rekey":Ve,"087-fix-vm-map-rekey":qe,"088-purge-cli-activate-keys":le,"089-rename-remote-user-to-desktop":de,"090-automation-webhook-triggers":be,"091-organization-domains-allow-multi":tn,"092-sandbox-naming-uniformization":en,"093-backfill-global-search-basic-usage":nn,"094-org-file-configs":un,"095-remove-automation-tool-call-kind":on,"096-org-file-configs-public-url-base":_n,"097-drop-local-docker-sandbox-state":xn,"098-thread-message-parts":rn,"099-run-fence":cn,"100-link-transport":yn,"101-cancel-requested-at":sn,"102-observational-agent":fn,"103-revert-observational-agent":Tn,"104-agent-sandbox-provider-kind":wn,"105-org-fs":Cn,"106-automation-tools":Nn,"107-org-fs-public-org":hn,"108-automation-max-agent-steps":En,"109-thread-message-parts-per-message-seq":Kn,"110-backfill-ghs-token-expiry":kn,"111-org-fs-thread-id":Pn,"112-org-file-configs-credential-type":zn,"113-thread-failure-reason":Un,"114-run-acked-seq":Dn,"115-thread-projected-seq":Ln,"116-org-sites":gn,"117-org-file-configs-site-slug":jn,"118-organization-domains-multi-verify":Rn,"119-organization-join-requests":Jn,"120-org-fs-read-public":An,"121-org-fs-share-password":Wn,"122-split-web-research-tier":Fn,"123-connection-credential-vault":Sn,"124-drop-thread-projected-seq":Mn,"125-github-child-single-parent":Qn},On=lm;import{getMigrations as gx}from"better-auth/db";import{sso as jx}from"@better-auth/sso";import{organization as Rx}from"@decocms/better-auth/plugins";import{admin as Jx,apiKey as Ax,jwt as Wx,magicLink as $x,mcp as Xx,openAPI as Fx}from"better-auth/plugins";import{emailOTP as Sx}from"better-auth/plugins/email-otp";import{Kysely as Kx,PostgresDialect as ji}from"kysely";import{Pool as Ri}from"pg";import{homedir as dm}from"os";var bm=new Set(["all","worker","api"]);function tx(t){let e=(t??"").trim();return bm.has(e)?e:"all"}function W(t){return t==="true"||t==="1"}function ex(t){if(t===void 0||t==="")return;return W(t)}function nx(t,e,n){if(e===void 0||e==="")return n;let u=Number(e);if(!Number.isSafeInteger(u)||u<=0)throw Error(`${t} must be a positive integer`);return u}function ix(t,e){if(t===void 0||t==="")return e;return t==="true"||t==="1"}function hi(t){if(!t)return null;try{let n=new URL(t).hostname;if(n==="localhost"||n==="127.0.0.1"||n==="::1")return null;return t}catch{return null}}var ax=new Set(["agent-sandbox","user-desktop"]);function ux(t){let e=t&&t.length>0?t:"user-desktop";if(e==="cluster")return"agent-sandbox";if(!ax.has(e))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return e}function Ei(t,e){let n=t.home||e.DATA_DIR||e.DECOCMS_HOME||`${dm()}/deco`,u=t.localMode,a=t.nodeEnv||e.NODE_ENV||"development",o=e.NATS_URL||"nats://localhost:4222",m=ex(e.NATS_TUNNEL_PUBLIC_ENABLED)??!!e.NATS_PUBLIC_URL;return{settings:{nodeEnv:a,port:Number(t.port)||Number(e.PORT)||3000,baseUrl:t.baseUrl||e.BASE_URL,dataDir:n,databasePgSsl:W(e.DATABASE_PG_SSL),databasePoolMax:Number(e.DATABASE_POOL_MAX)||5,betterAuthSecret:e.BETTER_AUTH_SECRET||"",encryptionKey:e.ENCRYPTION_KEY||"",meshJwtSecret:e.MESH_JWT_SECRET,localMode:u,disableRateLimit:W(e.DISABLE_RATE_LIMIT),studioProvisionSecretKey:e.STUDIO_PROVISION_SECRET_KEY,clickhouseUrl:e.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Number(e.CLICKHOUSE_MAX_MEMORY_USAGE)||void 0,monitoringOtlpEndpoint:e.MONITORING_OTLP_ENDPOINT,otelServiceName:e.OTEL_SERVICE_NAME||"studio",natsPublicUrl:e.NATS_PUBLIC_URL,natsTunnelPublicEnabled:m,natsTunnelSessionTtlSeconds:nx("NATS_TUNNEL_SESSION_TTL_SECONDS",e.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:e.NATS_OPERATOR_JWT,natsAccountJwt:e.NATS_ACCOUNT_JWT,natsAccountSigningKey:e.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:e.NATS_CREDS,configPath:e.CONFIG_PATH||"./config.json",aiGatewayEnabled:W(e.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:e.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",enableDecoImport:W(e.ENABLE_DECO_IMPORT),mcpCacheEnabled:ix(e.MCP_CACHE_ENABLED,a!=="development"),orgFsPublicSetsJson:e.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:W(e.DISABLE_ORGFS_MOUNTS),s3Endpoint:e.S3_ENDPOINT,s3Bucket:e.S3_BUCKET,s3Region:e.S3_REGION||"auto",s3AccessKeyId:e.S3_ACCESS_KEY_ID,s3SecretAccessKey:e.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:e.S3_FORCE_PATH_STYLE===void 0||e.S3_FORCE_PATH_STYLE===""||e.S3_FORCE_PATH_STYLE==="true"||e.S3_FORCE_PATH_STYLE==="1",monitoringS3Bucket:e.MONITORING_S3_BUCKET,monitoringS3Endpoint:e.MONITORING_S3_ENDPOINT,monitoringS3Region:e.MONITORING_S3_REGION,monitoringS3AccessKeyId:e.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:e.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:e.MONITORING_S3_PREFIX,duckdbExtensionDirectory:e.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:e.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:e.DUCKDB_THREADS?Number(e.DUCKDB_THREADS):void 0,isCli:!0,noTui:t.noTui===!0,podName:e.POD_NAME??crypto.randomUUID(),dispatchRole:tx(e.MESH_DISPATCH_ROLE),sandboxProviderKind:ux(e.STUDIO_SANDBOX_PROVIDER),decoSupabaseUrl:e.DECO_SUPABASE_URL,decoSupabaseServiceKey:e.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:e.FIRECRAWL_API_KEY,commerceDiscoveryInternalApiUrl:e.COMMERCE_DISCOVERY_INTERNAL_API_URL,commerceDiscoveryInternalApiKey:e.COMMERCE_DISCOVERY_INTERNAL_API_KEY,s3TenantBucket:e.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:e.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:e.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:e.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:e.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:e.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:e.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:hi(e.DATABASE_URL),externalNatsUrl:hi(o),skipMigrations:t.skipMigrations}}var ot=null;function $(){if(!ot)ox();return ot}function ox(){if(ot)return;let t={...process.env},e=Ei({port:t.PORT||"3000",home:t.DATA_DIR||t.DECOCMS_HOME||"",localMode:t.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:t.DECO_NO_TUI==="true",vitePort:t.VITE_PORT,baseUrl:t.BASE_URL},t);ot=Object.freeze({...e.settings,databaseUrl:t.DATABASE_URL??"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((n)=>n.trim()).filter(Boolean)})}import{createContextKey as yx,metrics as sx,propagation as Xy,ROOT_CONTEXT as Fy,SpanStatusCode as Sy,trace as fx}from"@opentelemetry/api";import{logs as Tx,SeverityNumber as Zn}from"@opentelemetry/api-logs";import{OTLPLogExporter as Oy}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as px}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Yy}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as By}from"@opentelemetry/instrumentation-runtime-node";import{context as jc,propagation as Rc,SpanKind as Jc,SpanStatusCode as Ac}from"@opentelemetry/api";var $c=globalThis.fetch;import{ExportResultCode as Gc}from"@opentelemetry/core";import{ExportResultCode as _t}from"@opentelemetry/core";import{mkdir as _x,rename as mx,writeFile as xx}from"fs/promises";import{join as mt}from"path";class xt{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(t){this.basePath=t.basePath,this.flushThreshold=t.flushThreshold??1000,this.maxBufferBytes=t.maxBufferBytes??10485760,this.partitionKey=t.partitionKey;let e=t.flushIntervalMs??60000;if(e>0&&e<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((n)=>{console.error("[NDJSONExporter] Timer flush failed:",n)})},e),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:_t.FAILED});for(let e of t){let n=JSON.stringify(e),u=this.partitionKey?this.partitionKey(e):"";this.bufferItems.push({partition:u,json:n}),this.bufferBytes+=Buffer.byteLength(n,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:_t.SUCCESS})).catch((e)=>{return console.error("[NDJSONExporter] Flush failed:",e),{code:_t.FAILED}});return Promise.resolve({code:_t.SUCCESS})}async shutdown(){if(this.isShutdown=!0,this.flushTimer)clearInterval(this.flushTimer),this.flushTimer=null;try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}async forceFlush(){try{await this.flushQueue}catch{}if(this.bufferItems.length>0)await this.flush()}flush(){let e=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=e,e}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let e=new Map;for(let a of t){let o=e.get(a.partition);if(!o)o=[],e.set(a.partition,o);o.push(a.json)}let n=await Promise.allSettled(Array.from(e.entries()).map(([a,o])=>this.writeNDJSON(o,a).then(()=>a))),u=n.find((a)=>a.status==="rejected");if(u){let a=new Set;for(let m of n)if(m.status==="fulfilled")a.add(m.value);let o=t.filter((m)=>!a.has(m.partition));this.bufferItems=o.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw u.reason}}async writeNDJSON(t,e){let n=new Date,u=[String(n.getUTCFullYear()),String(n.getUTCMonth()+1).padStart(2,"0"),String(n.getUTCDate()).padStart(2,"0"),String(n.getUTCHours()).padStart(2,"0")],a=e?mt(this.basePath,e,...u):mt(this.basePath,...u);if(!this.knownDirs.has(a))await _x(a,{recursive:!0,mode:448}),this.knownDirs.add(a);let o=`${crypto.randomUUID()}.ndjson`,m=mt(a,`.${o}.tmp`),_=mt(a,o),x=t.join(`
1011
1011
  `)+`
1012
- `;await xx(m,x,{mode:384}),await mx(m,_)}}import{ExportResultCode as dc}from"@opentelemetry/core";import{AggregationTemporality as ty,DataPointType as ey}from"@opentelemetry/sdk-metrics";import{ExportResultCode as _y}from"@opentelemetry/core";var cy=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as es,LoggerProvider as ns}from"@opentelemetry/sdk-logs";import{detectResources as as,envDetector as us,hostDetector as os,osDetector as _s,processDetector as ms,resourceFromAttributes as xs}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as cs}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as fy}from"@opentelemetry/api-logs";import{NodeSDK as fs}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as ps,SamplingDecision as S}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as Ny}from"@opentelemetry/api";var wx="__d",Cx=yx("Current request"),Nx=1;var ki=(t)=>{let n=new URL(t.url).searchParams.get(wx);if(n==="")return crypto.randomUUID();if(!n)n=t.headers.get("x-trace-debug-id");return n};class Pi{inner;constructor(t){this.inner=t}shouldSample(t,e,n,u,a,o){let m=t.getValue(Cx);if(!m){if(this.inner)return this.inner.shouldSample(t,e,n,u,a,o);return{decision:S.RECORD_AND_SAMPLED}}let _=ki(m);if(_)return{decision:S.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":_}};if(this.inner){let x=this.inner.shouldSample(t,e,n,u,a,o);if(x.decision===S.RECORD_AND_SAMPLED){let r=crypto.randomUUID();x.attributes={...x.attributes??{},"trace.debug.id":r}}return x}return{decision:S.NOT_RECORD}}toString(){return"DebugSampler"}}class zi{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:S.RECORD_AND_SAMPLED};return{decision:S.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var Cs=new px({preventServerStart:!0}),Ns=new Pi(new zi(Nx));var Ki=fx.getTracer("studio","1.0.0"),I=sx.getMeter("studio","1.0.0"),hx=Tx.getLogger("studio","1.0.0"),Hn=(t,e,n)=>{let u={},a=n,o=n[n.length-1];if(o!==null&&typeof o==="object"&&!Array.isArray(o)&&!(o instanceof Error)&&Object.getPrototypeOf(o)===Object.prototype)u=o,a=n.slice(0,-1);let m=a.map((_)=>{if(_ instanceof Error)return`${_.name}: ${_.message}`;if(typeof _==="object")try{return JSON.stringify(_)}catch{return"[Object]"}return String(_)}).join(" ");hx.emit({severityNumber:t,severityText:e,body:m,attributes:{"log.source":"console",...u}})},Yn={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{Hn(Zn.ERROR,"ERROR",t),Yn.error(...t)};console.warn=(...t)=>{Hn(Zn.WARN,"WARN",t),Yn.warn(...t)};console.debug=(...t)=>{Hn(Zn.DEBUG,"DEBUG",t),Yn.debug(...t)};var In,Ui=0,Bn=500;function Ex(){if(In)return;let t=performance.now()+Bn;In=setInterval(()=>{let e=performance.now();Ui=Math.max(0,e-t),t=e+Bn},Bn),In.unref?.()}function Di(){return Ex(),Ui}var kx=()=>I.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Li=()=>I.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),gi=400,Px=100,zx=(t)=>(e)=>{let n={"db.statement":e.query.sql,"db.status":e.level==="error"?"error":"success"};if(e.queryDurationMillis>gi){let u=Di(),a=u>gi/2;console.error(a?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:e.queryDurationMillis,eventLoopLagMs:Math.round(u),sql:e.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:rt()}})}if(kx().record(e.queryDurationMillis,n),e.level==="error")console.error("Query failed:",{durationMs:e.queryDurationMillis,error:e.error,sql:e.query.sql})};function Ux(t){let e=t.connect.bind(t);return t.connect=(n)=>{if(typeof n==="function")return e(n);let u=performance.now(),a=rt(),o=t.idleCount===0&&t.totalCount>=a,m=t.idleCount;return e().then((_)=>{let x=performance.now()-u;if(Li().record(x,{"db.pool.outcome":o?"contended":"available"}),x>Px)if(o)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:x,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:a});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:x,idleAtStart:m,total:t.totalCount,max:a});return _},(_)=>{throw Li().record(performance.now()-u,{"db.pool.outcome":"error"}),_})},t}var Ji={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Ai(){try{return $().databasePgSsl}catch{return!1}}function rt(){try{return $().databasePoolMax}catch{return 10}}function Dx(t){let e=Ux(new Ri({connectionString:t,max:rt(),ssl:Ai(),...Ji})),n=new ji({pool:e});return{type:"postgres",db:new Kx({dialect:n,log:zx(e)}),pool:e}}function G(){return $().databaseUrl}function Wi(t){let e=t||G();return new ji({pool:new Ri({connectionString:e,max:rt(),ssl:Ai(),...Ji})})}function Lx(t){let e=t||G();return Dx(e)}async function $i(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===B)B=null}var B=null;function Gn(){if(!B)B=Lx(G());return B}async function Si(t){let n={database:Wi(t||G()),plugins:[Rx({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),Jx(),Ax(),Wx(),Xx(),Sx({loginPage:"/login"}),jx(),$x({sendMagicLink:async()=>{}}),Fx({sendVerificationOTP:async()=>{}})]},{toBeAdded:u,toBeCreated:a,runMigrations:o}=await gx(n);if(!u.length&&!a.length)return"up to date";return await o(),`${a.length+u.length} table(s) migrated`}async function Fi(t,e){return(await X`
1012
+ `;await xx(m,x,{mode:384}),await mx(m,_)}}import{ExportResultCode as dc}from"@opentelemetry/core";import{AggregationTemporality as ty,DataPointType as ey}from"@opentelemetry/sdk-metrics";import{ExportResultCode as _y}from"@opentelemetry/core";var cy=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as es,LoggerProvider as ns}from"@opentelemetry/sdk-logs";import{detectResources as as,envDetector as us,hostDetector as os,osDetector as _s,processDetector as ms,resourceFromAttributes as xs}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as cs}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as fy}from"@opentelemetry/api-logs";import{NodeSDK as fs}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as ps,SamplingDecision as X}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as Ny}from"@opentelemetry/api";var wx="__d",Cx=yx("Current request"),Nx=1;var ki=(t)=>{let n=new URL(t.url).searchParams.get(wx);if(n==="")return crypto.randomUUID();if(!n)n=t.headers.get("x-trace-debug-id");return n};class Pi{inner;constructor(t){this.inner=t}shouldSample(t,e,n,u,a,o){let m=t.getValue(Cx);if(!m){if(this.inner)return this.inner.shouldSample(t,e,n,u,a,o);return{decision:X.RECORD_AND_SAMPLED}}let _=ki(m);if(_)return{decision:X.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":_}};if(this.inner){let x=this.inner.shouldSample(t,e,n,u,a,o);if(x.decision===X.RECORD_AND_SAMPLED){let r=crypto.randomUUID();x.attributes={...x.attributes??{},"trace.debug.id":r}}return x}return{decision:X.NOT_RECORD}}toString(){return"DebugSampler"}}class zi{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:X.RECORD_AND_SAMPLED};return{decision:X.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var Cs=new px({preventServerStart:!0}),Ns=new Pi(new zi(Nx));var Ki=fx.getTracer("studio","1.0.0"),I=sx.getMeter("studio","1.0.0"),hx=Tx.getLogger("studio","1.0.0"),Hn=(t,e,n)=>{let u={},a=n,o=n[n.length-1];if(o!==null&&typeof o==="object"&&!Array.isArray(o)&&!(o instanceof Error)&&Object.getPrototypeOf(o)===Object.prototype)u=o,a=n.slice(0,-1);let m=a.map((_)=>{if(_ instanceof Error)return`${_.name}: ${_.message}`;if(typeof _==="object")try{return JSON.stringify(_)}catch{return"[Object]"}return String(_)}).join(" ");hx.emit({severityNumber:t,severityText:e,body:m,attributes:{"log.source":"console",...u}})},Yn={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{Hn(Zn.ERROR,"ERROR",t),Yn.error(...t)};console.warn=(...t)=>{Hn(Zn.WARN,"WARN",t),Yn.warn(...t)};console.debug=(...t)=>{Hn(Zn.DEBUG,"DEBUG",t),Yn.debug(...t)};var In,Ui=0,Bn=500;function Ex(){if(In)return;let t=performance.now()+Bn;In=setInterval(()=>{let e=performance.now();Ui=Math.max(0,e-t),t=e+Bn},Bn),In.unref?.()}function Di(){return Ex(),Ui}var kx=()=>I.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Li=()=>I.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),gi=400,Px=100,zx=(t)=>(e)=>{let n={"db.statement":e.query.sql,"db.status":e.level==="error"?"error":"success"};if(e.queryDurationMillis>gi){let u=Di(),a=u>gi/2;console.error(a?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:e.queryDurationMillis,eventLoopLagMs:Math.round(u),sql:e.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:rt()}})}if(kx().record(e.queryDurationMillis,n),e.level==="error")console.error("Query failed:",{durationMs:e.queryDurationMillis,error:e.error,sql:e.query.sql})};function Ux(t){let e=t.connect.bind(t);return t.connect=(n)=>{if(typeof n==="function")return e(n);let u=performance.now(),a=rt(),o=t.idleCount===0&&t.totalCount>=a,m=t.idleCount;return e().then((_)=>{let x=performance.now()-u;if(Li().record(x,{"db.pool.outcome":o?"contended":"available"}),x>Px)if(o)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:x,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:a});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:x,idleAtStart:m,total:t.totalCount,max:a});return _},(_)=>{throw Li().record(performance.now()-u,{"db.pool.outcome":"error"}),_})},t}var Ji={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Ai(){try{return $().databasePgSsl}catch{return!1}}function rt(){try{return $().databasePoolMax}catch{return 10}}function Dx(t){let e=Ux(new Ri({connectionString:t,max:rt(),ssl:Ai(),...Ji})),n=new ji({pool:e});return{type:"postgres",db:new Kx({dialect:n,log:zx(e)}),pool:e}}function G(){return $().databaseUrl}function Wi(t){let e=t||G();return new ji({pool:new Ri({connectionString:e,max:rt(),ssl:Ai(),...Ji})})}function Lx(t){let e=t||G();return Dx(e)}async function $i(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===B)B=null}var B=null;function Gn(){if(!B)B=Lx(G());return B}async function Xi(t){let n={database:Wi(t||G()),plugins:[Rx({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),Jx(),Ax(),Wx(),Fx(),Xx({loginPage:"/login"}),jx(),$x({sendMagicLink:async()=>{}}),Sx({sendVerificationOTP:async()=>{}})]},{toBeAdded:u,toBeCreated:a,runMigrations:o}=await gx(n);if(!u.length&&!a.length)return"up to date";return await o(),`${a.length+u.length} table(s) migrated`}async function Si(t,e){return(await F`
1013
1013
  SELECT table_name FROM information_schema.tables
1014
1014
  WHERE table_schema='public' AND table_name=${e}
1015
- `.execute(t)).rows.length>0}async function Mx(t){if(await Fi(t,"plugin_migrations"))return;await X`
1015
+ `.execute(t)).rows.length>0}async function Mx(t){if(await Si(t,"plugin_migrations"))return;await F`
1016
1016
  CREATE TABLE plugin_migrations (
1017
1017
  plugin_id TEXT NOT NULL,
1018
1018
  name TEXT NOT NULL,
1019
1019
  timestamp TEXT NOT NULL,
1020
1020
  PRIMARY KEY (plugin_id, name)
1021
1021
  )
1022
- `.execute(t)}async function Qx(t){if(!await Fi(t,"kysely_migration"))return;let e=await X`
1022
+ `.execute(t)}async function Qx(t){if(!await Si(t,"kysely_migration"))return;let e=await F`
1023
1023
  SELECT name, timestamp FROM kysely_migration
1024
1024
  WHERE name LIKE '%/%'
1025
- `.execute(t);if(e.rows.length===0)return;for(let{name:n,timestamp:u}of e.rows){let a=n;if(n.includes("~plugins/"))a=n.substring(n.indexOf("~plugins/")+9);let o=a.indexOf("/");if(o===-1){console.warn(`Skipping malformed plugin migration: ${n}`);continue}let m=a.substring(0,o),_=a.substring(o+1);try{await X`
1025
+ `.execute(t);if(e.rows.length===0)return;for(let{name:n,timestamp:u}of e.rows){let a=n;if(n.includes("~plugins/"))a=n.substring(n.indexOf("~plugins/")+9);let o=a.indexOf("/");if(o===-1){console.warn(`Skipping malformed plugin migration: ${n}`);continue}let m=a.substring(0,o),_=a.substring(o+1);try{await F`
1026
1026
  INSERT INTO plugin_migrations (plugin_id, name, timestamp)
1027
1027
  VALUES (${m}, ${_}, ${u})
1028
- `.execute(t)}catch{let x=await X`
1028
+ `.execute(t)}catch{let x=await F`
1029
1029
  SELECT COUNT(*) as cnt FROM plugin_migrations
1030
1030
  WHERE plugin_id = ${m} AND name = ${_}
1031
- `.execute(t);if(Number(x.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${_}, keeping in old table`);continue}}await X`
1031
+ `.execute(t);if(Number(x.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${m}/${_}, keeping in old table`);continue}}await F`
1032
1032
  DELETE FROM kysely_migration WHERE name = ${n}
1033
- `.execute(t)}}async function Ox(t){await Mx(t),await Qx(t);let e=new Xi({db:t,provider:{getMigrations:()=>Promise.resolve(On)}}),{error:n,results:u}=await e.migrateToLatest(),a=0;if(u?.forEach((o)=>{if(o.status==="Success")a++;else if(o.status==="Error")console.error(`Failed to execute migration "${o.migrationName}"`)}),n)throw console.error("Failed to migrate"),console.error(n),n;return a}async function Zx(t){let{keepOpen:e=!1,database:n,skipBetterAuth:u=!1}=t??{},a="skipped";if(!u&&!n)a=await Si();let o=n??Gn(),m=async()=>{if(!e&&!n)await $i(o).catch((_)=>{console.warn("Warning: Error closing database:",_)})};try{let _=await Ox(o.db);return await m(),{betterAuth:a,kysely:_}}catch(_){throw await m(),_}}async function Vs(){let t=Gn(),e=new Xi({db:t.db,provider:{getMigrations:()=>Promise.resolve(On)}}),{error:n,results:u}=await e.migrateDown();if(u?.forEach((a)=>{if(a.status==="Success")console.log(`\u2705 Migration "${a.migrationName}" rolled back successfully`);else if(a.status==="Error")console.error(`\u274C Failed to rollback migration "${a.migrationName}"`)}),n)throw console.error("Failed to rollback migration"),console.error(n),n}if(import.meta.main)(async()=>{try{await Zx(),console.log("Migrations completed."),process.exit(0)}catch(t){console.error("Migration failed:",t),process.exit(1)}})();export{Ox as runKyselyMigrations,Zx as migrateToLatest,Vs as migrateDown};
1033
+ `.execute(t)}}async function Ox(t){await Mx(t),await Qx(t);let e=new Fi({db:t,provider:{getMigrations:()=>Promise.resolve(On)}}),{error:n,results:u}=await e.migrateToLatest(),a=0;if(u?.forEach((o)=>{if(o.status==="Success")a++;else if(o.status==="Error")console.error(`Failed to execute migration "${o.migrationName}"`)}),n)throw console.error("Failed to migrate"),console.error(n),n;return a}async function Zx(t){let{keepOpen:e=!1,database:n,skipBetterAuth:u=!1}=t??{},a="skipped";if(!u&&!n)a=await Xi();let o=n??Gn(),m=async()=>{if(!e&&!n)await $i(o).catch((_)=>{console.warn("Warning: Error closing database:",_)})};try{let _=await Ox(o.db);return await m(),{betterAuth:a,kysely:_}}catch(_){throw await m(),_}}async function Vs(){let t=Gn(),e=new Fi({db:t.db,provider:{getMigrations:()=>Promise.resolve(On)}}),{error:n,results:u}=await e.migrateDown();if(u?.forEach((a)=>{if(a.status==="Success")console.log(`\u2705 Migration "${a.migrationName}" rolled back successfully`);else if(a.status==="Error")console.error(`\u274C Failed to rollback migration "${a.migrationName}"`)}),n)throw console.error("Failed to rollback migration"),console.error(n),n}if(import.meta.main)(async()=>{try{await Zx(),console.log("Migrations completed."),process.exit(0)}catch(t){console.error("Migration failed:",t),process.exit(1)}})();export{Ox as runKyselyMigrations,Zx as migrateToLatest,Vs as migrateDown};