decocms 4.150.19 → 4.150.21

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 (222) hide show
  1. package/dist/client/assets/{AlertCircle-DlSYUhhJ.js → AlertCircle-BaA3X0Vc.js} +1 -1
  2. package/dist/client/assets/{AreaChart-Bug3Ayx7.js → AreaChart-B4pcuH23.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-C6IdQ4Rw.js → ArrowUp-Df4rbgne.js} +1 -1
  4. package/dist/client/assets/{ArrowUpRight-2UBzQU8F.js → ArrowUpRight-fq20wgvL.js} +1 -1
  5. package/dist/client/assets/{Check-C2SHqL1z.js → Check-DdyKCl8O.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-DKn0NYt4.js → CheckCircle-IiUO6eKZ.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-Cn6ogkEs.js → ChevronDown-BSVV4L9A.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-DFFYZU4j.js → ChevronRight-CSgj0z6i.js} +1 -1
  9. package/dist/client/assets/{ChevronUp-DhTMlsX_.js → ChevronUp-GR0-Yt4d.js} +1 -1
  10. package/dist/client/assets/{Copy01-DdAbCNOp.js → Copy01-Cv0Vuqbe.js} +1 -1
  11. package/dist/client/assets/{CpuChip01-DjJbFGcN.js → CpuChip01-UMJdnf1a.js} +1 -1
  12. package/dist/client/assets/{DotsVertical-DbiSyDeJ.js → DotsVertical-OBlENp_a.js} +1 -1
  13. package/dist/client/assets/{Eye-CAJuwNcI.js → Eye-CkjEvMwH.js} +1 -1
  14. package/dist/client/assets/{FilterLines-5mK4tkWD.js → FilterLines-Ca7W3tHb.js} +1 -1
  15. package/dist/client/assets/{HardDrive-0rFPC5TH.js → HardDrive-B91rzidb.js} +1 -1
  16. package/dist/client/assets/{Key01-zOjc9MTI.js → Key01-DVGzNfoY.js} +1 -1
  17. package/dist/client/assets/{LayoutLeft-BU786hWD.js → LayoutLeft-Ciug-ep8.js} +1 -1
  18. package/dist/client/assets/{LinkExternal01-CEtC-Y1R.js → LinkExternal01-CbfqV87q.js} +1 -1
  19. package/dist/client/assets/{LogOut01-BwC-5Qgg.js → LogOut01-B0JVxGo4.js} +1 -1
  20. package/dist/client/assets/{Monitor01-DliyLag8.js → Monitor01-CEdUOtdj.js} +1 -1
  21. package/dist/client/assets/{Palette-7rfbgqXo.js → Palette-DgmLnO_l.js} +1 -1
  22. package/dist/client/assets/{Play-CESoZt50.js → Play-DcSuTxiG.js} +1 -1
  23. package/dist/client/assets/{Plus-ClptGdKW.js → Plus-DUvbS-Yy.js} +1 -1
  24. package/dist/client/assets/{SearchLg-BjGhynue.js → SearchLg-CSWY8viA.js} +1 -1
  25. package/dist/client/assets/{SearchMd-CaUeXTov.js → SearchMd-D0poZQV_.js} +1 -1
  26. package/dist/client/assets/{Settings02-DFgk8xib.js → Settings02-Sy5kNpSu.js} +1 -1
  27. package/dist/client/assets/{Shield01-DZGUsmxL.js → Shield01-Bcql6hT4.js} +1 -1
  28. package/dist/client/assets/{Star01-DdohD5Pt.js → Star01-2mO5G0Xw.js} +1 -1
  29. package/dist/client/assets/{Stars01-BFiXE03I.js → Stars01-DqIThrOc.js} +1 -1
  30. package/dist/client/assets/{Stars02-5-YOV7bU.js → Stars02-cKtwD-F2.js} +1 -1
  31. package/dist/client/assets/{Sun-BivegFnN.js → Sun-DsnsEGXF.js} +1 -1
  32. package/dist/client/assets/{SwitchHorizontal01-gfwGyIBw.js → SwitchHorizontal01-BwAs_KcG.js} +1 -1
  33. package/dist/client/assets/{Tool01-NPc3h9k6.js → Tool01-D2fd-Mg5.js} +1 -1
  34. package/dist/client/assets/{Tool02-Ce6Zs6Sn.js → Tool02-C17Y4pBP.js} +1 -1
  35. package/dist/client/assets/{Trash01-BQyhs2bx.js → Trash01-BiVOd2DS.js} +1 -1
  36. package/dist/client/assets/{TrendUp01-d5BuhRAe.js → TrendUp01-D1GkdBOV.js} +1 -1
  37. package/dist/client/assets/{Upload01-Dvnl-BDq.js → Upload01-k2Sn0RXQ.js} +1 -1
  38. package/dist/client/assets/{User01-CAUBoJic.js → User01-cC3unvvx.js} +1 -1
  39. package/dist/client/assets/{Users01-CtxuIY4r.js → Users01-BdNSg6CC.js} +1 -1
  40. package/dist/client/assets/{Users03-Bh6lOZcY.js → Users03-CqyDxwt6.js} +1 -1
  41. package/dist/client/assets/{X-pcpfoSUj.js → X-Baqkpp1k.js} +1 -1
  42. package/dist/client/assets/{XCircle-aY4lZd4c.js → XCircle-8Wd2-AR5.js} +1 -1
  43. package/dist/client/assets/{XClose-BkVqInnI.js → XClose-CBFLmbVP.js} +1 -1
  44. package/dist/client/assets/{Zap-BB732fZe.js → Zap-C4qF8Cn-.js} +1 -1
  45. package/dist/client/assets/{ZapSquare-CY-TRmUj.js → ZapSquare-BH7ie7zg.js} +1 -1
  46. package/dist/client/assets/{access-gate-CcNxjqvs.js → access-gate-CxXZPkIw.js} +1 -1
  47. package/dist/client/assets/{add-section-modal-BqjxY4rN.js → add-section-modal-C7ktQCug.js} +1 -1
  48. package/dist/client/assets/{agent-icon-C9EboqQo.js → agent-icon-q4cV7U67.js} +1 -1
  49. package/dist/client/assets/{agents-list-Dm8MNhb3.js → agents-list-UZwnNOjT.js} +1 -1
  50. package/dist/client/assets/{ai-providers-ClSebpyq.js → ai-providers-Cput0kVL.js} +1 -1
  51. package/dist/client/assets/{alert-C-LmaOBK.js → alert-DjeIAXMV.js} +1 -1
  52. package/dist/client/assets/{alert-dialog-BssDvvMF.js → alert-dialog-DIwINRgW.js} +1 -1
  53. package/dist/client/assets/{app-editor-BkDNHhm0.js → app-editor-DdSH3pAD.js} +1 -1
  54. package/dist/client/assets/{auth-DZmQnSls.js → auth-FouChJbb.js} +1 -1
  55. package/dist/client/assets/{auth-catchall-Dzgjob5l.js → auth-catchall-6cph4qce.js} +1 -1
  56. package/dist/client/assets/auth-entry-i0rNcujn.js +1 -0
  57. package/dist/client/assets/{auth-split-layout-DWihF_-L.js → auth-split-layout-3qPwGE8Z.js} +1 -1
  58. package/dist/client/assets/{authenticate-and-persist-oauth-BVLOVyHO.js → authenticate-and-persist-oauth-Dx2DT3YD.js} +1 -1
  59. package/dist/client/assets/{automation-list-row-ClyJypF9.js → automation-list-row-Brn7k31U.js} +1 -1
  60. package/dist/client/assets/{automation-runs-Iq3rwpg7.js → automation-runs-CP1cxXFo.js} +2 -2
  61. package/dist/client/assets/{automations-Dc1-M4pc.js → automations-BlJndOBe.js} +1 -1
  62. package/dist/client/assets/{avatar-CjXOLD2i.js → avatar-Du8HEobV.js} +1 -1
  63. package/dist/client/assets/{badge-DTMILv2r.js → badge-swCoKQnC.js} +1 -1
  64. package/dist/client/assets/{block-document-WgiJXWkX.js → block-document-DiB0SOp5.js} +1 -1
  65. package/dist/client/assets/{brand-context-DZrzTO2e.js → brand-context-C8l7XNKr.js} +1 -1
  66. package/dist/client/assets/{buckets-6YXBaInP.js → buckets-Bs0sTGAu.js} +1 -1
  67. package/dist/client/assets/{bulk-category-panel-D3jY7E_o.js → bulk-category-panel-DE5pUVzi.js} +1 -1
  68. package/dist/client/assets/{calendar-C8za-BWH.js → calendar-BZcldUNV.js} +1 -1
  69. package/dist/client/assets/{capability-load-error-CtOZ-Swh.js → capability-load-error-CqwI-nav.js} +1 -1
  70. package/dist/client/assets/{card-DqPRLWMO.js → card-9OUE6Bzl.js} +1 -1
  71. package/dist/client/assets/{category-editor-CeqgNkSk.js → category-editor-JK7DojfI.js} +1 -1
  72. package/dist/client/assets/{chat-context-B_wQ6evS.js → chat-context-DYO1ODPB.js} +1 -1
  73. package/dist/client/assets/{checkbox-DTtudZuO.js → checkbox-Dd_rqLvT.js} +1 -1
  74. package/dist/client/assets/{cli-auth-success-CMhyp_Zr.js → cli-auth-success-CFsjKhGa.js} +1 -1
  75. package/dist/client/assets/{collection-detail-C6adjump.js → collection-detail-D0rtc2gf.js} +1 -1
  76. package/dist/client/assets/{collection-display-button-XfcxRJgX.js → collection-display-button-iD10GGdW.js} +1 -1
  77. package/dist/client/assets/{collection-search-BypSOIoH.js → collection-search-5SFjfCC8.js} +1 -1
  78. package/dist/client/assets/{collection-table-wrapper-Dt68wYfR.js → collection-table-wrapper-fW-dsmLE.js} +1 -1
  79. package/dist/client/assets/{collection-tabs-Dz9VyTIu.js → collection-tabs-DnykrgWW.js} +1 -1
  80. package/dist/client/assets/{command-CPMlZIjd.js → command-CDVbjOi5.js} +1 -1
  81. package/dist/client/assets/{commerce-onboarding-B8gWc7bn.js → commerce-onboarding-CAOuADZ6.js} +1 -1
  82. package/dist/client/assets/{companions-core-a9SF0m4Y.js → companions-core-6m5dy3es.js} +1 -1
  83. package/dist/client/assets/{connect-BzEB0VtU.js → connect-B_K53Vaa.js} +1 -1
  84. package/dist/client/assets/{connection-Czmc2tuv.js → connection-DhlrJlFw.js} +1 -1
  85. package/dist/client/assets/{connection-card-BB3fSDPW.js → connection-card-CzF-xjYn.js} +1 -1
  86. package/dist/client/assets/{connection-detail-vrPNxp5T.js → connection-detail-DmWTCewb.js} +1 -1
  87. package/dist/client/assets/{connection-form-helpers-ClYK3_mG.js → connection-form-helpers-DRviH-Au.js} +1 -1
  88. package/dist/client/assets/{connections-DZtxHEYZ.js → connections-DGvaZBx3.js} +1 -1
  89. package/dist/client/assets/{decopilot-sse-pool-Bs-tVvz6.js → decopilot-sse-pool-BXMXu1gQ.js} +1 -1
  90. package/dist/client/assets/{dialog-lmnhZbAE.js → dialog-C82H2S70.js} +1 -1
  91. package/dist/client/assets/{domain-settings-J25txbg1.js → domain-settings-DPn_9rd3.js} +1 -1
  92. package/dist/client/assets/{drawer-D_GDdd71.js → drawer-lnIGl-vb.js} +1 -1
  93. package/dist/client/assets/{dropdown-menu-CFAXuc0v.js → dropdown-menu-CRGAwBji.js} +1 -1
  94. package/dist/client/assets/{empty-state-8ilzCDbs.js → empty-state-BKzUesA7.js} +1 -1
  95. package/dist/client/assets/{extract-connection-data-BAifnWzb.js → extract-connection-data-B9TIJ0UC.js} +1 -1
  96. package/dist/client/assets/{file-explorer-DrVIjwMq.js → file-explorer-tNI79jXo.js} +1 -1
  97. package/dist/client/assets/{form-CRAasio0.js → form-DAiRK0vx.js} +1 -1
  98. package/dist/client/assets/{general-CAW-cEsK.js → general-CXtIEOrf.js} +1 -1
  99. package/dist/client/assets/{github-repo-picker-zbKMYosT.js → github-repo-picker-DUNQ1oJW.js} +1 -1
  100. package/dist/client/assets/{hooks-DwsLBuwO.js → hooks-Bom1QoTc.js} +1 -1
  101. package/dist/client/assets/{index-G-8OgRMW.js → index-2KxPRjw5.js} +7 -7
  102. package/dist/client/assets/{index-BWJ_-Xh2.js → index-BDQ6Ogmu.js} +5 -5
  103. package/dist/client/assets/{index-1UvSqm4I.js → index-B_kqSbsO.js} +1 -1
  104. package/dist/client/assets/{index-D7nd7n59.js → index-C-JAJ-o5.js} +1 -1
  105. package/dist/client/assets/{index-BFKuotW_.js → index-C_5SQGG6.js} +1 -1
  106. package/dist/client/assets/{index-IEBaTluN.js → index-D7cNsGmf.js} +3 -3
  107. package/dist/client/assets/{index-CczEp9IM.js → index-DK8HHLRp.js} +1 -1
  108. package/dist/client/assets/{index-By_AmIsM.js → index-Df7LGqDK.js} +1 -1
  109. package/dist/client/assets/{index-BFH8_Y33.js → index-Dv8k1EHh.js} +1 -1
  110. package/dist/client/assets/{index-DW9Agr8b.js → index-Z4CG7jJp.js} +1 -1
  111. package/dist/client/assets/{index-RiTJyK4Q.js → index-oBYlsJ_o.js} +1 -1
  112. package/dist/client/assets/{index-redirect-Ch7Nrj0f.js → index-redirect-Cj-NIgvU.js} +1 -1
  113. package/dist/client/assets/{input-BJT4p59F.js → input-BAuCATqg.js} +1 -1
  114. package/dist/client/assets/{integration-icon-3h0fRTkl.js → integration-icon-DKBuU8Fr.js} +1 -1
  115. package/dist/client/assets/{invite-member-dialog-CshBP-tC.js → invite-member-dialog-BiHY2r7m.js} +1 -1
  116. package/dist/client/assets/{label-DEUPAsEw.js → label-onkw7wrh.js} +1 -1
  117. package/dist/client/assets/{layout-BLNUkP51.js → layout-D8O9_Poo.js} +1 -1
  118. package/dist/client/assets/{login-MizHz_jd.js → login-B0j1yr6w.js} +1 -1
  119. package/dist/client/assets/{mcp-oauth-Db4hNN9v.js → mcp-oauth-95IH3VKT.js} +1 -1
  120. package/dist/client/assets/{members-l8zC-hr-.js → members-Y7A-UiF5.js} +1 -1
  121. package/dist/client/assets/{monaco-editor-BU7VpLqH.js → monaco-editor-CSUtCvVX.js} +1 -1
  122. package/dist/client/assets/{monitoring-stats-row-D0FDipm5.js → monitoring-stats-row-Dcug_wR7.js} +1 -1
  123. package/dist/client/assets/{multi-select-MuGZnRVq.js → multi-select-C68tqs9V.js} +1 -1
  124. package/dist/client/assets/{oauth-callback-BmBa3kc7.js → oauth-callback-CqH1tIve.js} +1 -1
  125. package/dist/client/assets/{oauth-callback-ai-provider-Ctjknw6y.js → oauth-callback-ai-provider-C0UAY-58.js} +1 -1
  126. package/dist/client/assets/{onboarding-CWrMv3B_.js → onboarding-2ZJYmqTH.js} +1 -1
  127. package/dist/client/assets/{org-layout-Du6e1Kd0.js → org-layout-qZcaYBLo.js} +1 -1
  128. package/dist/client/assets/{organization-choice-4c42IBvW.js → organization-choice-CduZOMP9.js} +1 -1
  129. package/dist/client/assets/{orgs-CihSY5Ex.js → orgs-DU0BEJAc.js} +1 -1
  130. package/dist/client/assets/{page-seo-form-BASC5n5J.js → page-seo-form-nxKDUI-6.js} +1 -1
  131. package/dist/client/assets/{popover-BPOX0Hzx.js → popover-x1qHvmwD.js} +1 -1
  132. package/dist/client/assets/{post-editor-DJey7B16.js → post-editor-BhfI7Odx.js} +1 -1
  133. package/dist/client/assets/{primitives-D6fK2zo-.js → primitives-DITXbj-2.js} +1 -1
  134. package/dist/client/assets/{profile-BILxxCCs.js → profile-Dl3k4wub.js} +1 -1
  135. package/dist/client/assets/project-app-view-CrBgtatz.js +1 -0
  136. package/dist/client/assets/record-editor-DUGdKTe8.js +1 -0
  137. package/dist/client/assets/{redirect-editor-BdUi3i3s.js → redirect-editor-BamLe0Vb.js} +1 -1
  138. package/dist/client/assets/registry-B4ci0gM-.js +2 -0
  139. package/dist/client/assets/{registry-layout-xgeSgS_-.js → registry-layout-Cfgh3Q9S.js} +1 -1
  140. package/dist/client/assets/{reports-ChDgqGgw.js → reports-2omVoMUm.js} +1 -1
  141. package/dist/client/assets/{require-capability-DeZjzvG5.js → require-capability-B1pg4EtO.js} +1 -1
  142. package/dist/client/assets/{required-auth-layout-DmCcpwr1.js → required-auth-layout-wB2bMMGI.js} +1 -1
  143. package/dist/client/assets/{reset-password-BMzkkaTE.js → reset-password-BmxFRY37.js} +1 -1
  144. package/dist/client/assets/{roles-GCbrcpl9.js → roles-ClU1umGx.js} +1 -1
  145. package/dist/client/assets/{search-input-BGWve8hu.js → search-input-DtCL1YcZ.js} +1 -1
  146. package/dist/client/assets/{secrets-CjWBoI95.js → secrets-B-dmTgLw.js} +1 -1
  147. package/dist/client/assets/{sections-editor-MgNWlsn6.js → sections-editor-DqY5dzLX.js} +1 -1
  148. package/dist/client/assets/{select-BPv9yhWd.js → select-DfQiZ-4J.js} +1 -1
  149. package/dist/client/assets/{select-model-td-EZ5fT.js → select-model-Clf7Hlwn.js} +1 -1
  150. package/dist/client/assets/{self-tool-result-C577LfVs.js → self-tool-result-BCgUr0ik.js} +1 -1
  151. package/dist/client/assets/{seo-editor-DSG8yNU8.js → seo-editor-CEUCMyKF.js} +1 -1
  152. package/dist/client/assets/{settings-layout-CALf7AqK.js → settings-layout-DJLSOlbv.js} +1 -1
  153. package/dist/client/assets/{settings-section-C0kg54gL.js → settings-section-BaFcIjo5.js} +1 -1
  154. package/dist/client/assets/{shell-controls-B2Hh7m6h.js → shell-controls-DIMDYHkk.js} +1 -1
  155. package/dist/client/assets/{shell-layout-DvaKHR0F.js → shell-layout-B56j-p5N.js} +1 -1
  156. package/dist/client/assets/{sidebar-B3TEJIxk.js → sidebar-DpVJgBAa.js} +1 -1
  157. package/dist/client/assets/{skeleton-6WFihZY6.js → skeleton-BtiEyhAl.js} +1 -1
  158. package/dist/client/assets/{spinner-Bog_L1J8.js → spinner-DPfrt4Tp.js} +1 -1
  159. package/dist/client/assets/{sso-C7ensYzW.js → sso-CICOFYfX.js} +1 -1
  160. package/dist/client/assets/{store-BxIhcrSd.js → store-BJgQ6scG.js} +1 -1
  161. package/dist/client/assets/store-registry-Di0pCo7I.js +2 -0
  162. package/dist/client/assets/{studio-tools-Acw1tHi6.js → studio-tools-CTJuN7Yy.js} +1 -1
  163. package/dist/client/assets/{switch-DIomMWOl.js → switch-DIwoxI1y.js} +1 -1
  164. package/dist/client/assets/{tab-id-t9DwJFBC.js → tab-id-DJIms9m1.js} +1 -1
  165. package/dist/client/assets/{table-4SpY1BTk.js → table-BbRTH9fF.js} +1 -1
  166. package/dist/client/assets/{tabs-DKXlBcXz.js → tabs-DKyQ4Qe1.js} +1 -1
  167. package/dist/client/assets/{textarea-BpBBQR8E.js → textarea-Y242n44c.js} +1 -1
  168. package/dist/client/assets/{toggle-group-CUODdYa_.js → toggle-group-BBsmjOfV.js} +1 -1
  169. package/dist/client/assets/{toolbar-DgjRZSnQ.js → toolbar-BaZp82JP.js} +1 -1
  170. package/dist/client/assets/{tooltip-B9wTF3aq.js → tooltip-CEu_we5y.js} +1 -1
  171. package/dist/client/assets/{use-ai-providers-PcwG8Cp4.js → use-ai-providers-B2nAOoUO.js} +1 -1
  172. package/dist/client/assets/{use-automations-C7OhRUcV.js → use-automations-irLGHKpI.js} +1 -1
  173. package/dist/client/assets/{use-autosave-DdZx2QhY.js → use-autosave-BAjK3u8R.js} +1 -1
  174. package/dist/client/assets/{use-capability-w8KqTXM4.js → use-capability-Y4a4cK2y.js} +1 -1
  175. package/dist/client/assets/{use-clock-tick-CobicVDs.js → use-clock-tick-kQx_nmDK.js} +1 -1
  176. package/dist/client/assets/{use-connection-VavB0C6a.js → use-connection-CvBcj0iA.js} +1 -1
  177. package/dist/client/assets/{use-copy-Dh4gLRwM.js → use-copy-POYUhIaM.js} +1 -1
  178. package/dist/client/assets/{use-create-virtual-mcp-RXRfzwuV.js → use-create-virtual-mcp-Df8fpCi4.js} +1 -1
  179. package/dist/client/assets/{use-debounced-autosave-De7BabWw.js → use-debounced-autosave-EvVOUA6S.js} +1 -1
  180. package/dist/client/assets/{use-debounced-value-BYiowHDi.js → use-debounced-value-IOz7dnNR.js} +1 -1
  181. package/dist/client/assets/{use-deco-credits-v6nyF6YO.js → use-deco-credits-CBOWsaT-.js} +1 -1
  182. package/dist/client/assets/{use-decopilot-events-Dpwv9K7h.js → use-decopilot-events-Dc8-pFMU.js} +1 -1
  183. package/dist/client/assets/{use-delete-connection-7C5oykm1.js → use-delete-connection-CxX7cCR_.js} +1 -1
  184. package/dist/client/assets/{use-deployment-admin-BZqJ-ctu.js → use-deployment-admin-ucDRDdNR.js} +1 -1
  185. package/dist/client/assets/{use-file-configs-DSwRkfhM.js → use-file-configs-BsCj6gUu.js} +1 -1
  186. package/dist/client/assets/{use-infinite-scroll-BeeHVBvb.js → use-infinite-scroll-ccrh4_KW.js} +1 -1
  187. package/dist/client/assets/{use-join-requests-DBSdL3kF.js → use-join-requests-DjYbXyL8.js} +1 -1
  188. package/dist/client/assets/{use-mcp-auth-status-B-sj5sZB.js → use-mcp-auth-status-vzmxIRHi.js} +1 -1
  189. package/dist/client/assets/{use-mcp-client-CN9F4rJC.js → use-mcp-client-DRwUSZdO.js} +1 -1
  190. package/dist/client/assets/{use-mcp-tools-CpoAeloT.js → use-mcp-tools-PCSBjtNq.js} +1 -1
  191. package/dist/client/assets/{use-members-CcoL_164.js → use-members-DjRi0Onl.js} +1 -1
  192. package/dist/client/assets/{use-mobile-CsgUGWeL.js → use-mobile-CLE626Yq.js} +1 -1
  193. package/dist/client/assets/{use-navigate-to-agent-DJz0Xu14.js → use-navigate-to-agent-CXMG3HNZ.js} +1 -1
  194. package/dist/client/assets/{use-org-auth-client-Dx3L9CFc.js → use-org-auth-client-BxtVWNiI.js} +1 -1
  195. package/dist/client/assets/{use-org-sso-BXR2O8Zw.js → use-org-sso-DBExuOVV.js} +1 -1
  196. package/dist/client/assets/{use-organization-roles-DDR6R1p7.js → use-organization-roles-DFLLP3Qo.js} +1 -1
  197. package/dist/client/assets/{use-organization-settings-BGULtPas.js → use-organization-settings-DKSNQ1_z.js} +1 -1
  198. package/dist/client/assets/{use-registry-connections-Cut79VZN.js → use-registry-connections-BRZCHKHD.js} +1 -1
  199. package/dist/client/assets/{use-secrets-BwX1AK3v.js → use-secrets-DfGoccAw.js} +1 -1
  200. package/dist/client/assets/{use-status-sounds-BAYX2hpP.js → use-status-sounds-DcgHuUFX.js} +1 -1
  201. package/dist/client/assets/{use-tags-weNKAUYZ.js → use-tags-DRM6xsgU.js} +1 -1
  202. package/dist/client/assets/{use-view-mode-BghlKtMr.js → use-view-mode-DvgBYhz6.js} +1 -1
  203. package/dist/client/assets/{use-virtual-mcp-DAFqjJdJ.js → use-virtual-mcp-D7SVi-2E.js} +1 -1
  204. package/dist/client/assets/useInfiniteQuery-BWd6o-wh.js +1 -0
  205. package/dist/client/assets/{useQueries-BRp6m0B1.js → useQueries-DVb_HjzV.js} +1 -1
  206. package/dist/client/assets/{useRouterState-DDtTYBra.js → useRouterState-CJ97gzOK.js} +1 -1
  207. package/dist/client/assets/useSuspenseInfiniteQuery-DPyRMURT.js +1 -0
  208. package/dist/client/assets/{users-uwnrrHMH.js → users-CX6W_kiO.js} +1 -1
  209. package/dist/client/assets/{variant-calendar-D-VisYce.js → variant-calendar-BSUlgs-W.js} +1 -1
  210. package/dist/client/assets/{view-mode-toggle-6-wiVO49.js → view-mode-toggle-DULJqLEB.js} +1 -1
  211. package/dist/client/index.html +1 -1
  212. package/dist/server/cli.js +452 -452
  213. package/dist/server/migrate.js +34 -34
  214. package/dist/server/server.js +310 -310
  215. package/package.json +1 -1
  216. package/dist/client/assets/auth-entry-D5ixglik.js +0 -1
  217. package/dist/client/assets/project-app-view-BTTYDF6S.js +0 -1
  218. package/dist/client/assets/record-editor-cLhljAom.js +0 -1
  219. package/dist/client/assets/registry-MkdBZbPs.js +0 -2
  220. package/dist/client/assets/store-registry-C0l7_EX3.js +0 -2
  221. package/dist/client/assets/useInfiniteQuery-wwMkQW_z.js +0 -1
  222. package/dist/client/assets/useSuspenseInfiniteQuery-DfQWovFc.js +0 -1
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null,n)}var i=(t,n)=>{for(var u in n)ke(t,u,{get:n[u],enumerable:!0,configurable:!0,set:Xe.bind(n,u)})};import{Migrator as Re,sql as Y}from"kysely";var wt={};i(wt,{up:()=>Qe,down:()=>Ze});import{sql as z}from"kysely";async function Qe(t){await t.schema.createTable("connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(n)=>n.notNull()).addColumn("connectionUrl","text",(n)=>n.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(n)=>n.notNull().defaultTo("active")).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("api_keys").addColumn("id","text",(n)=>n.primaryKey()).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("hashedKey","text",(n)=>n.notNull().unique()).addColumn("permissions","text",(n)=>n.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("audit_logs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("connectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("toolName","text",(n)=>n.notNull()).addColumn("allowed","integer",(n)=>n.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createTable("oauth_clients").addColumn("id","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(n)=>n.notNull()).addColumn("redirectUris","text",(n)=>n.notNull()).addColumn("grantTypes","text",(n)=>n.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_authorization_codes").addColumn("code","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(n)=>n.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(n)=>n.notNull()).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("downstream_tokens").addColumn("id","text",(n)=>n.primaryKey()).addColumn("connectionId","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(n)=>n.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(n)=>n.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(z`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 Ze(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 Kt={};i(Kt,{up:()=>Fe,down:()=>He});import{sql as ki}from"kysely";async function Fe(t){await t.schema.createTable("organization_settings").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(ki`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(ki`CURRENT_TIMESTAMP`)).execute()}async function He(t){await t.schema.dropTable("organization_settings").execute()}var ct={};i(ct,{up:()=>Me,down:()=>Ye});async function Me(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 Ye(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 pt={};i(pt,{up:()=>he,down:()=>Ae});async function he(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(n)=>n.notNull()).addColumn("updatedAt","text",(n)=>n.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((n)=>n.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 Ae(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(n)=>n.notNull()).addColumn("updatedAt","text",(n)=>n.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((n)=>n.selectFrom("organization_settings").select(["organizationId",n.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 zt={};i(zt,{up:()=>Be,down:()=>Se});async function Be(t){await t.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await t.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function Se(t){await t.schema.alterTable("connections").dropColumn("configuration_state").execute(),await t.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Pt={};i(Pt,{up:()=>Ge,down:()=>Ie});import{sql as Oe}from"kysely";async function Ge(t){await t.schema.alterTable("organization_settings").addColumn("sidebar_items",Oe`text`).execute()}async function Ie(t){await t.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var rt={};i(rt,{up:()=>ge,down:()=>se});async function ge(t){await t.schema.createTable("monitoring_logs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(n)=>n.notNull()).addColumn("tool_name","text",(n)=>n.notNull()).addColumn("input","text",(n)=>n.notNull()).addColumn("output","text",(n)=>n.notNull()).addColumn("is_error","integer",(n)=>n.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(n)=>n.notNull()).addColumn("timestamp","text",(n)=>n.notNull()).addColumn("user_id","text").addColumn("request_id","text",(n)=>n.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 se(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 Ut={};i(Ut,{up:()=>Ve,down:()=>ve});import{sql as h}from"kysely";async function Ve(t){await t.schema.createTable("events").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(n)=>n.notNull()).addColumn("source","text",(n)=>n.notNull()).addColumn("specversion","text",(n)=>n.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(n)=>n.notNull()).addColumn("datacontenttype","text",(n)=>n.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("attempts","integer",(n)=>n.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_subscriptions").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(n)=>n.notNull()).addColumn("filter","text").addColumn("enabled","integer",(n)=>n.notNull().defaultTo(1)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_deliveries").addColumn("id","text",(n)=>n.primaryKey()).addColumn("event_id","text",(n)=>n.notNull()).addColumn("subscription_id","text",(n)=>n.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("attempts","integer",(n)=>n.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(h`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 ve(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 Dt={};i(Dt,{up:()=>le,down:()=>de});import{sql as qe}from"kysely";async function le(t){await t.schema.dropTable("audit_logs").ifExists().execute()}async function de(t){await t.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("connectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("toolName","text",(n)=>n.notNull()).addColumn("allowed","integer",(n)=>n.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(n)=>n.notNull().defaultTo(qe`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 jt={};i(jt,{up:()=>be,down:()=>t_});import{sql as q}from"kysely";async function be(t){await t.schema.createTable("gateways").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(n)=>n.notNull().defaultTo("active")).addColumn("is_default","integer",(n)=>n.notNull().defaultTo(0)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("gateway_connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("gateway_id","text",(n)=>n.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(q`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 q`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 t_(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 Jt={};i(Jt,{up:()=>n_,down:()=>u_});async function n_(t){await t.schema.alterTable("gateways").addColumn("icon","text").execute()}async function u_(t){await t.schema.alterTable("gateways").dropColumn("icon").execute()}var Lt={};i(Lt,{up:()=>i_,down:()=>e_});import{sql as l}from"kysely";async function i_(t){await t.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(n)=>n.notNull().defaultTo("inclusion")).execute(),await l`
2
+ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null,n)}var i=(t,n)=>{for(var u in n)ke(t,u,{get:n[u],enumerable:!0,configurable:!0,set:Xe.bind(n,u)})};import{Migrator as Re,sql as Y}from"kysely";var wt={};i(wt,{up:()=>Qe,down:()=>Ze});import{sql as z}from"kysely";async function Qe(t){await t.schema.createTable("connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(n)=>n.notNull()).addColumn("connectionUrl","text",(n)=>n.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(n)=>n.notNull().defaultTo("active")).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("api_keys").addColumn("id","text",(n)=>n.primaryKey()).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("hashedKey","text",(n)=>n.notNull().unique()).addColumn("permissions","text",(n)=>n.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("audit_logs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("connectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("toolName","text",(n)=>n.notNull()).addColumn("allowed","integer",(n)=>n.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await t.schema.createTable("oauth_clients").addColumn("id","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(n)=>n.notNull()).addColumn("redirectUris","text",(n)=>n.notNull()).addColumn("grantTypes","text",(n)=>n.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_authorization_codes").addColumn("code","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(n)=>n.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(n)=>n.notNull()).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(n)=>n.primaryKey()).addColumn("clientId","text",(n)=>n.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("downstream_tokens").addColumn("id","text",(n)=>n.primaryKey()).addColumn("connectionId","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(n)=>n.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(n)=>n.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(n)=>n.notNull().defaultTo(z`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(z`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 Ze(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 Kt={};i(Kt,{up:()=>Fe,down:()=>He});import{sql as ki}from"kysely";async function Fe(t){await t.schema.createTable("organization_settings").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(n)=>n.notNull().defaultTo(ki`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(n)=>n.notNull().defaultTo(ki`CURRENT_TIMESTAMP`)).execute()}async function He(t){await t.schema.dropTable("organization_settings").execute()}var ct={};i(ct,{up:()=>Me,down:()=>Ye});async function Me(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 Ye(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 pt={};i(pt,{up:()=>he,down:()=>Ae});async function he(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(n)=>n.notNull()).addColumn("updatedAt","text",(n)=>n.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((n)=>n.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 Ae(t){await t.schema.createTable("organization_settings_new").addColumn("organizationId","text",(n)=>n.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(n)=>n.notNull()).addColumn("updatedAt","text",(n)=>n.notNull()).execute(),await t.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((n)=>n.selectFrom("organization_settings").select(["organizationId",n.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 zt={};i(zt,{up:()=>Be,down:()=>Se});async function Be(t){await t.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await t.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function Se(t){await t.schema.alterTable("connections").dropColumn("configuration_state").execute(),await t.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Pt={};i(Pt,{up:()=>Ge,down:()=>Ie});import{sql as Oe}from"kysely";async function Ge(t){await t.schema.alterTable("organization_settings").addColumn("sidebar_items",Oe`text`).execute()}async function Ie(t){await t.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var rt={};i(rt,{up:()=>ge,down:()=>se});async function ge(t){await t.schema.createTable("monitoring_logs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(n)=>n.notNull()).addColumn("tool_name","text",(n)=>n.notNull()).addColumn("input","text",(n)=>n.notNull()).addColumn("output","text",(n)=>n.notNull()).addColumn("is_error","integer",(n)=>n.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(n)=>n.notNull()).addColumn("timestamp","text",(n)=>n.notNull()).addColumn("user_id","text").addColumn("request_id","text",(n)=>n.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 se(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 Ut={};i(Ut,{up:()=>Ve,down:()=>ve});import{sql as h}from"kysely";async function Ve(t){await t.schema.createTable("events").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(n)=>n.notNull()).addColumn("source","text",(n)=>n.notNull()).addColumn("specversion","text",(n)=>n.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(n)=>n.notNull()).addColumn("datacontenttype","text",(n)=>n.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("attempts","integer",(n)=>n.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_subscriptions").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(n)=>n.notNull()).addColumn("filter","text").addColumn("enabled","integer",(n)=>n.notNull().defaultTo(1)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await t.schema.createTable("event_deliveries").addColumn("id","text",(n)=>n.primaryKey()).addColumn("event_id","text",(n)=>n.notNull()).addColumn("subscription_id","text",(n)=>n.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("attempts","integer",(n)=>n.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(h`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 ve(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 jt={};i(jt,{up:()=>le,down:()=>de});import{sql as qe}from"kysely";async function le(t){await t.schema.dropTable("audit_logs").ifExists().execute()}async function de(t){await t.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("connectionId","text",(n)=>n.references("connections.id").onDelete("set null")).addColumn("toolName","text",(n)=>n.notNull()).addColumn("allowed","integer",(n)=>n.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(n)=>n.notNull().defaultTo(qe`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 Dt={};i(Dt,{up:()=>be,down:()=>t_});import{sql as q}from"kysely";async function be(t){await t.schema.createTable("gateways").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(n)=>n.notNull().defaultTo("active")).addColumn("is_default","integer",(n)=>n.notNull().defaultTo(0)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(q`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("gateway_connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("gateway_id","text",(n)=>n.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(q`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 q`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 t_(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 Jt={};i(Jt,{up:()=>n_,down:()=>u_});async function n_(t){await t.schema.alterTable("gateways").addColumn("icon","text").execute()}async function u_(t){await t.schema.alterTable("gateways").dropColumn("icon").execute()}var Lt={};i(Lt,{up:()=>i_,down:()=>e_});import{sql as l}from"kysely";async function i_(t){await t.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(n)=>n.notNull().defaultTo("inclusion")).execute(),await l`
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 ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.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 f_(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 Qt={};i(Qt,{up:()=>w_,down:()=>K_});async function w_(t){await t.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function K_(t){await t.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(n)=>n.notNull().defaultTo("passthrough")).execute()}var Zt={};i(Zt,{up:()=>c_,down:()=>p_});import{sql as $i}from"kysely";async function c_(t){await $i`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(t),await t.schema.alterTable("gateways").dropColumn("is_default").execute()}async function p_(t){await t.schema.alterTable("gateways").addColumn("is_default","integer",(n)=>n.notNull().defaultTo(0)).execute(),await $i`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t)}var Ft={};i(Ft,{up:()=>z_,down:()=>P_});async function z_(t){await t.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function P_(t){await t.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Ht={};i(Ht,{up:()=>r_,down:()=>U_});import{sql as d}from"kysely";async function r_(t){await t.schema.createTable("threads").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("hidden","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("thread_messages").addColumn("id","text",(n)=>n.primaryKey()).addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(n)=>n.notNull()).addColumn("role","text",(n)=>n.notNull()).addColumn("created_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(d`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 U_(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 Mt={};i(Mt,{up:()=>D_,down:()=>j_});async function D_(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 j_(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 Yt={};i(Yt,{up:()=>J_,down:()=>L_});async function J_(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 L_(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 ht={};i(ht,{up:()=>R_,down:()=>W_});import{sql as E}from"kysely";async function R_(t){await E`
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 f_(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 Qt={};i(Qt,{up:()=>w_,down:()=>K_});async function w_(t){await t.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function K_(t){await t.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(n)=>n.notNull().defaultTo("passthrough")).execute()}var Zt={};i(Zt,{up:()=>c_,down:()=>p_});import{sql as $i}from"kysely";async function c_(t){await $i`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(t),await t.schema.alterTable("gateways").dropColumn("is_default").execute()}async function p_(t){await t.schema.alterTable("gateways").addColumn("is_default","integer",(n)=>n.notNull().defaultTo(0)).execute(),await $i`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(t)}var Ft={};i(Ft,{up:()=>z_,down:()=>P_});async function z_(t){await t.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function P_(t){await t.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var Ht={};i(Ht,{up:()=>r_,down:()=>U_});import{sql as d}from"kysely";async function r_(t){await t.schema.createTable("threads").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("hidden","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await t.schema.createTable("thread_messages").addColumn("id","text",(n)=>n.primaryKey()).addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(n)=>n.notNull()).addColumn("role","text",(n)=>n.notNull()).addColumn("created_at","text",(n)=>n.notNull().defaultTo(d`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(d`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 U_(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 Mt={};i(Mt,{up:()=>j_,down:()=>D_});async function j_(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 D_(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 Yt={};i(Yt,{up:()=>J_,down:()=>L_});async function J_(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 L_(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 ht={};i(ht,{up:()=>R_,down:()=>W_});import{sql as E}from"kysely";async function R_(t){await E`
25
25
  INSERT INTO connections (
26
26
  id,
27
27
  organization_id,
@@ -148,7 +148,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
148
148
  id, parent_connection_id, child_connection_id,
149
149
  selected_tools, selected_resources, selected_prompts, created_at
150
150
  FROM connection_aggregations
151
- `.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").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()}var vt={};i(vt,{up:()=>V_,down:()=>v_});import{webcrypto as Zi}from"crypto";var Qi="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var G_=128,L,k;function I_(t){if(!L||L.length<t)L=Buffer.allocUnsafe(t*G_),Zi.getRandomValues(L),k=0;else if(k+t>L.length)Zi.getRandomValues(L),k=0;k+=t}function $(t=21){I_(t|=0);let n="";for(let u=k-t;u<k;u++)n+=Qi[L[u]&63];return n}var g_="org-admin",s_="Organization Admin";async function V_(t){await t.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await t.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await t.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await t.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await t.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let n=await t.selectFrom("organization").select(["id"]).execute();for(let u of n){let _=new Date().toISOString(),e=`proj_${$()}`,a=await t.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await t.insertInto("projects").values({id:e,organization_id:u.id,slug:g_,name:s_,description:null,enabled_plugins:a?.enabled_plugins??null,ui:null,created_at:_,updated_at:_}).execute()}}async function v_(t){await t.schema.dropTable("project_plugin_configs").execute(),await t.schema.dropTable("projects").execute()}var qt={};i(qt,{up:()=>q_,down:()=>l_});async function q_(t){await t.schema.alterTable("threads").addColumn("status","text",(n)=>n.notNull().defaultTo("completed")).execute()}async function l_(t){await t.schema.alterTable("threads").dropColumn("status").execute()}var lt={};i(lt,{up:()=>d_,down:()=>b_});async function d_(t){}async function b_(t){}var dt={};i(dt,{up:()=>ta,down:()=>na});async function ta(t){await t.schema.createTable("project_connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("project_id","text",(n)=>n.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(n)=>n.notNull()).execute(),await t.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await t.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function na(t){await t.schema.dropIndex("project_connections_project_id_idx").execute(),await t.schema.dropIndex("project_connections_project_conn_unique").execute(),await t.schema.dropTable("project_connections").execute()}var bt={};i(bt,{up:()=>ua,down:()=>ia});import{sql as Fi}from"kysely";async function ua(t){await Fi`
151
+ `.execute(t),await t.schema.dropTable("connection_aggregations").execute(),await t.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").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()}var vt={};i(vt,{up:()=>V_,down:()=>v_});import{webcrypto as Zi}from"crypto";var Qi="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var G_=128,L,$;function I_(t){if(!L||L.length<t)L=Buffer.allocUnsafe(t*G_),Zi.getRandomValues(L),$=0;else if($+t>L.length)Zi.getRandomValues(L),$=0;$+=t}function X(t=21){I_(t|=0);let n="";for(let u=$-t;u<$;u++)n+=Qi[L[u]&63];return n}var g_="org-admin",s_="Organization Admin";async function V_(t){await t.schema.createTable("projects").addColumn("id","text",(u)=>u.primaryKey()).addColumn("organization_id","text",(u)=>u.notNull().references("organization.id").onDelete("cascade")).addColumn("slug","text",(u)=>u.notNull()).addColumn("name","text",(u)=>u.notNull()).addColumn("description","text").addColumn("enabled_plugins","text").addColumn("ui","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await t.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await t.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await t.schema.createTable("project_plugin_configs").addColumn("id","text",(u)=>u.primaryKey()).addColumn("project_id","text",(u)=>u.notNull().references("projects.id").onDelete("cascade")).addColumn("plugin_id","text",(u)=>u.notNull()).addColumn("connection_id","text",(u)=>u.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(u)=>u.notNull()).addColumn("updated_at","text",(u)=>u.notNull()).execute(),await t.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let n=await t.selectFrom("organization").select(["id"]).execute();for(let u of n){let _=new Date().toISOString(),e=`proj_${X()}`,a=await t.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await t.insertInto("projects").values({id:e,organization_id:u.id,slug:g_,name:s_,description:null,enabled_plugins:a?.enabled_plugins??null,ui:null,created_at:_,updated_at:_}).execute()}}async function v_(t){await t.schema.dropTable("project_plugin_configs").execute(),await t.schema.dropTable("projects").execute()}var qt={};i(qt,{up:()=>q_,down:()=>l_});async function q_(t){await t.schema.alterTable("threads").addColumn("status","text",(n)=>n.notNull().defaultTo("completed")).execute()}async function l_(t){await t.schema.alterTable("threads").dropColumn("status").execute()}var lt={};i(lt,{up:()=>d_,down:()=>b_});async function d_(t){}async function b_(t){}var dt={};i(dt,{up:()=>ta,down:()=>na});async function ta(t){await t.schema.createTable("project_connections").addColumn("id","text",(n)=>n.primaryKey()).addColumn("project_id","text",(n)=>n.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(n)=>n.notNull()).execute(),await t.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await t.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function na(t){await t.schema.dropIndex("project_connections_project_id_idx").execute(),await t.schema.dropIndex("project_connections_project_conn_unique").execute(),await t.schema.dropTable("project_connections").execute()}var bt={};i(bt,{up:()=>ua,down:()=>ia});import{sql as Fi}from"kysely";async function ua(t){await Fi`
152
152
  UPDATE connections
153
153
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
154
154
  tools = NULL,
@@ -161,7 +161,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
161
161
  updated_at = CURRENT_TIMESTAMP
162
162
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
163
163
  AND app_name = 'deco-registry'
164
- `.execute(t)}var tn={};i(tn,{up:()=>_a,down:()=>aa});import{sql as ea}from"kysely";async function _a(t){await t.schema.createTable("ai_provider_keys").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(n)=>n.notNull()).addColumn("label","text",(n)=>n.notNull()).addColumn("encrypted_api_key","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ea`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await t.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function aa(t){await t.schema.dropTable("ai_provider_keys").execute()}var nn={};i(nn,{up:()=>ma,down:()=>oa});import{sql as xa}from"kysely";async function ma(t){await t.schema.createTable("oauth_pkce_states").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("user_id","text",(n)=>n.notNull()).addColumn("code_verifier","text",(n)=>n.notNull()).addColumn("expires_at","timestamptz",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(xa`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function oa(t){await t.schema.dropTable("oauth_pkce_states").execute()}var un={};i(un,{up:()=>ya,down:()=>Ta});import{sql as j}from"kysely";async function ya(t){await t.schema.createTable("automations").addColumn("id","text",(n)=>n.primaryKey().defaultTo(j`gen_random_uuid()`)).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("name","text",(n)=>n.notNull()).addColumn("active","boolean",(n)=>n.notNull().defaultTo(!0)).addColumn("created_by","text",(n)=>n.notNull()).addColumn("agent","text",(n)=>n.notNull()).addColumn("messages","text",(n)=>n.notNull()).addColumn("models","text",(n)=>n.notNull()).addColumn("temperature","real",(n)=>n.notNull().defaultTo(0.5)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await t.schema.createTable("automation_triggers").addColumn("id","text",(n)=>n.primaryKey().defaultTo(j`gen_random_uuid()`)).addColumn("automation_id","text",(n)=>n.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(n)=>n.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await j`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(t),await j`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(t),await j`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(t),await t.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await t.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await t.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await t.schema.alterTable("threads").addColumn("trigger_id","text",(n)=>n.references("automation_triggers.id").onDelete("set null")).execute(),await t.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function Ta(t){await t.schema.dropIndex("idx_threads_trigger_status").execute(),await t.schema.alterTable("threads").dropColumn("trigger_id").execute(),await t.schema.dropIndex("idx_automation_triggers_cron").execute(),await t.schema.dropIndex("idx_automation_triggers_event").execute(),await t.schema.dropIndex("idx_automation_triggers_automation").execute(),await t.schema.dropTable("automation_triggers").execute(),await t.schema.dropIndex("idx_automations_active").execute(),await t.schema.dropIndex("idx_automations_org").execute(),await t.schema.dropTable("automations").execute()}var en={};i(en,{up:()=>Ca,down:()=>Na});async function Ca(t){await t.schema.dropIndex("idx_automation_triggers_cron").execute(),await t.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await t.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function Na(t){await t.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await t.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await t.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var _n={};i(_n,{up:()=>Ea,down:()=>fa});async function Ea(t){await t.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await t.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function fa(t){await t.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await t.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var an={};i(an,{up:()=>wa,down:()=>Ka});import{sql as Hi}from"kysely";async function wa(t){await Hi`
164
+ `.execute(t)}var tn={};i(tn,{up:()=>_a,down:()=>aa});import{sql as ea}from"kysely";async function _a(t){await t.schema.createTable("ai_provider_keys").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(n)=>n.notNull()).addColumn("label","text",(n)=>n.notNull()).addColumn("encrypted_api_key","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ea`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await t.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function aa(t){await t.schema.dropTable("ai_provider_keys").execute()}var nn={};i(nn,{up:()=>ma,down:()=>oa});import{sql as xa}from"kysely";async function ma(t){await t.schema.createTable("oauth_pkce_states").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("user_id","text",(n)=>n.notNull()).addColumn("code_verifier","text",(n)=>n.notNull()).addColumn("expires_at","timestamptz",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(xa`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function oa(t){await t.schema.dropTable("oauth_pkce_states").execute()}var un={};i(un,{up:()=>ya,down:()=>Ta});import{sql as D}from"kysely";async function ya(t){await t.schema.createTable("automations").addColumn("id","text",(n)=>n.primaryKey().defaultTo(D`gen_random_uuid()`)).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("name","text",(n)=>n.notNull()).addColumn("active","boolean",(n)=>n.notNull().defaultTo(!0)).addColumn("created_by","text",(n)=>n.notNull()).addColumn("agent","text",(n)=>n.notNull()).addColumn("messages","text",(n)=>n.notNull()).addColumn("models","text",(n)=>n.notNull()).addColumn("temperature","real",(n)=>n.notNull().defaultTo(0.5)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await t.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await t.schema.createTable("automation_triggers").addColumn("id","text",(n)=>n.primaryKey().defaultTo(D`gen_random_uuid()`)).addColumn("automation_id","text",(n)=>n.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(n)=>n.notNull()).addColumn("cron_expression","text").addColumn("connection_id","text").addColumn("event_type","text").addColumn("params","text").addColumn("next_run_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await D`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(t),await D`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(t),await D`ALTER TABLE automation_triggers ADD CONSTRAINT chk_event_trigger CHECK (type != 'event' OR (connection_id IS NOT NULL AND event_type IS NOT NULL))`.execute(t),await t.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await t.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await t.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await t.schema.alterTable("threads").addColumn("trigger_id","text",(n)=>n.references("automation_triggers.id").onDelete("set null")).execute(),await t.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function Ta(t){await t.schema.dropIndex("idx_threads_trigger_status").execute(),await t.schema.alterTable("threads").dropColumn("trigger_id").execute(),await t.schema.dropIndex("idx_automation_triggers_cron").execute(),await t.schema.dropIndex("idx_automation_triggers_event").execute(),await t.schema.dropIndex("idx_automation_triggers_automation").execute(),await t.schema.dropTable("automation_triggers").execute(),await t.schema.dropIndex("idx_automations_active").execute(),await t.schema.dropIndex("idx_automations_org").execute(),await t.schema.dropTable("automations").execute()}var en={};i(en,{up:()=>Ca,down:()=>Na});async function Ca(t){await t.schema.dropIndex("idx_automation_triggers_cron").execute(),await t.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await t.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function Na(t){await t.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await t.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await t.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var _n={};i(_n,{up:()=>Ea,down:()=>fa});async function Ea(t){await t.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await t.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function fa(t){await t.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await t.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var an={};i(an,{up:()=>wa,down:()=>Ka});import{sql as Hi}from"kysely";async function wa(t){await Hi`
165
165
  UPDATE connections
166
166
  SET title = 'CMS MCP',
167
167
  tools = NULL,
@@ -183,7 +183,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
183
183
  SET title = 'CMS MCP',
184
184
  updated_at = CURRENT_TIMESTAMP
185
185
  WHERE app_name = '@deco/management-mcp'
186
- `.execute(t)}var mn={};i(mn,{up:()=>za,down:()=>Pa});async function za(t){await t.schema.alterTable("connections").dropColumn("tools").execute()}async function Pa(t){await t.schema.alterTable("connections").addColumn("tools","text").execute()}var on={};i(on,{up:()=>ra,down:()=>Ua});async function ra(t){await t.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function Ua(t){await t.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Tn={};i(Tn,{up:()=>Da,down:()=>ja});import{sql as yn}from"kysely";async function Da(t){await yn`
186
+ `.execute(t)}var mn={};i(mn,{up:()=>za,down:()=>Pa});async function za(t){await t.schema.alterTable("connections").dropColumn("tools").execute()}async function Pa(t){await t.schema.alterTable("connections").addColumn("tools","text").execute()}var on={};i(on,{up:()=>ra,down:()=>Ua});async function ra(t){await t.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function Ua(t){await t.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Tn={};i(Tn,{up:()=>ja,down:()=>Da});import{sql as yn}from"kysely";async function ja(t){await yn`
187
187
  UPDATE organization_settings
188
188
  SET enabled_plugins = (
189
189
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -204,7 +204,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
204
204
  `.execute(t),await yn`
205
205
  DELETE FROM project_plugin_configs
206
206
  WHERE plugin_id = 'object-storage'
207
- `.execute(t)}async function ja(t){}var Cn={};i(Cn,{up:()=>Ja,down:()=>La});import{sql as Yi}from"kysely";async function Ja(t){await t.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Yi`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(t)}async function La(t){await Yi`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(t),await t.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var En={};i(En,{up:()=>Ra,down:()=>Wa});import{sql as Nn}from"kysely";async function Ra(t){await t.schema.alterTable("connections").addColumn("subtype","text").execute(),await Nn`
207
+ `.execute(t)}async function Da(t){}var Cn={};i(Cn,{up:()=>Ja,down:()=>La});import{sql as Yi}from"kysely";async function Ja(t){await t.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await Yi`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(t)}async function La(t){await Yi`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(t),await t.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var En={};i(En,{up:()=>Ra,down:()=>Wa});import{sql as Nn}from"kysely";async function Ra(t){await t.schema.alterTable("connections").addColumn("subtype","text").execute(),await Nn`
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 ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.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",(x)=>x.primaryKey()).addColumn("virtual_mcp_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(x)=>x.notNull()).addColumn("updated_at","text",(x)=>x.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 n=await t.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await t.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),_=new Map;for(let x of u)_.set(x.organizationId,x.userId);let e=new Map;for(let x of n){let o=`vir_${$()}`;e.set(x.id,o);let y=x.ui?JSON.parse(x.ui):null,T=JSON.stringify({enabled_plugins:x.enabled_plugins?JSON.parse(x.enabled_plugins):null,ui:y,migrated_from_project:x.id,migrated_project_slug:x.slug}),N=_.get(x.organization_id);if(!N)continue;await t.insertInto("connections").values({id:o,organization_id:x.organization_id,created_by:N,updated_by:null,title:x.name,description:x.description,icon:y?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${o}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:T,bindings:null,status:"active",subtype:"project",created_at:x.created_at,updated_at:x.updated_at}).execute()}let a=await t.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let x of a){let o=e.get(x.project_id);if(!o)continue;await t.insertInto("connection_aggregations").values({id:`agg_${$()}`,parent_connection_id:o,child_connection_id:x.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:x.created_at}).onConflict((y)=>y.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 x of m){let o=e.get(x.project_id);if(!o)continue;await t.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${$()}`,virtual_mcp_id:o,plugin_id:x.plugin_id,connection_id:x.connection_id,settings:x.settings,created_at:x.created_at,updated_at:x.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 Wa(t){await t.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await t.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Nn`
215
+ `.execute(t),await t.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("virtual_mcp_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(x)=>x.notNull()).addColumn("updated_at","text",(x)=>x.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 n=await t.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await t.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),_=new Map;for(let x of u)_.set(x.organizationId,x.userId);let e=new Map;for(let x of n){let o=`vir_${X()}`;e.set(x.id,o);let y=x.ui?JSON.parse(x.ui):null,T=JSON.stringify({enabled_plugins:x.enabled_plugins?JSON.parse(x.enabled_plugins):null,ui:y,migrated_from_project:x.id,migrated_project_slug:x.slug}),N=_.get(x.organization_id);if(!N)continue;await t.insertInto("connections").values({id:o,organization_id:x.organization_id,created_by:N,updated_by:null,title:x.name,description:x.description,icon:y?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${o}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:T,bindings:null,status:"active",subtype:"project",created_at:x.created_at,updated_at:x.updated_at}).execute()}let a=await t.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let x of a){let o=e.get(x.project_id);if(!o)continue;await t.insertInto("connection_aggregations").values({id:`agg_${X()}`,parent_connection_id:o,child_connection_id:x.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:x.created_at}).onConflict((y)=>y.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 x of m){let o=e.get(x.project_id);if(!o)continue;await t.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${X()}`,virtual_mcp_id:o,plugin_id:x.plugin_id,connection_id:x.connection_id,settings:x.settings,created_at:x.created_at,updated_at:x.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 Wa(t){await t.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await t.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Nn`
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 fn={};i(fn,{up:()=>$a,down:()=>Xa});import{sql as ka}from"kysely";async function $a(t){await ka`
@@ -222,7 +222,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
222
222
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
223
223
  `.execute(t)}async function Xa(t){}var wn={};i(wn,{up:()=>Za,down:()=>Fa});import{sql as Qa}from"kysely";async function Za(t){await t.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await Qa`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(t)}async function Fa(t){await t.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await t.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var cn={};i(cn,{up:()=>Ha,down:()=>Ma});import{sql as Kn}from"kysely";async function Ha(t){await t.schema.createTable("org_sso_config").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(n)=>n.notNull()).addColumn("client_id","text",(n)=>n.notNull()).addColumn("client_secret","text",(n)=>n.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(n)=>n.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(n)=>n.notNull()).addColumn("enforced","integer",(n)=>n.notNull().defaultTo(0)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(Kn`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(Kn`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await t.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await t.schema.createTable("org_sso_sessions").addColumn("id","text",(n)=>n.primaryKey()).addColumn("user_id","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(n)=>n.notNull()).addColumn("expires_at","text",(n)=>n.notNull()).addColumn("created_at","text",(n)=>n.notNull().defaultTo(Kn`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function Ma(t){await t.schema.dropTable("org_sso_sessions").execute(),await t.schema.dropTable("org_sso_config").execute()}var pn={};i(pn,{up:()=>Ya,down:()=>ha});async function Ya(t){await t.schema.alterTable("threads").addColumn("agent_ids","text",(n)=>n.defaultTo("[]")).execute()}async function ha(t){await t.schema.alterTable("threads").dropColumn("agent_ids").execute()}var zn={};i(zn,{up:()=>Aa,down:()=>Ba});async function Aa(t){await t.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function Ba(t){await t.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var rn={};i(rn,{up:()=>Oa,down:()=>Ga});import{sql as hi}from"kysely";function Pn(t){return t.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function Sa(t){if(t.app_name)return t.app_name;if(t.connection_url)try{let n=new URL(t.connection_url),_=((n.port?`${n.hostname}-${n.port}`:n.hostname)+n.pathname).replace(/\/+$/,"");return Pn(_)}catch{return Pn(t.connection_url)}if(t.title)return Pn(t.title);return t.id}async function Oa(t){await t.schema.alterTable("connections").addColumn("slug","text").execute();let n=await hi`
224
224
  SELECT id, app_name, connection_url, title FROM connections
225
- `.execute(t);for(let u of n.rows){let _=Sa(u);await hi`UPDATE connections SET slug = ${_} WHERE id = ${u.id}`.execute(t)}await t.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function Ga(t){await t.schema.dropIndex("idx_connections_org_slug").execute(),await t.schema.alterTable("connections").dropColumn("slug").execute()}var Un={};i(Un,{up:()=>Ia,down:()=>ga});import{sql as B}from"kysely";async function Ia(t){await t.schema.alterTable("connections").addColumn("pinned","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await B`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(t),await t.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await B`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(t),await t.schema.alterTable("connections").dropColumn("subtype").execute(),await t.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function ga(t){await t.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await t.schema.alterTable("connections").addColumn("subtype","text").execute(),await B`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(t),await B`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(t),await B`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(t),await t.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await t.schema.alterTable("connections").dropColumn("pinned").execute()}var Dn={};i(Dn,{up:()=>sa,down:()=>Va});async function sa(t){await t.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await t.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function Va(t){await t.schema.dropIndex("idx_automations_virtual_mcp").execute(),await t.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var jn={};i(jn,{up:()=>va,down:()=>qa});import{sql as b}from"kysely";async function va(t){await t.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(n)=>n.notNull().defaultTo("")).execute(),await b`
225
+ `.execute(t);for(let u of n.rows){let _=Sa(u);await hi`UPDATE connections SET slug = ${_} WHERE id = ${u.id}`.execute(t)}await t.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function Ga(t){await t.schema.dropIndex("idx_connections_org_slug").execute(),await t.schema.alterTable("connections").dropColumn("slug").execute()}var Un={};i(Un,{up:()=>Ia,down:()=>ga});import{sql as B}from"kysely";async function Ia(t){await t.schema.alterTable("connections").addColumn("pinned","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await B`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(t),await t.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await B`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(t),await t.schema.alterTable("connections").dropColumn("subtype").execute(),await t.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function ga(t){await t.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await t.schema.alterTable("connections").addColumn("subtype","text").execute(),await B`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(t),await B`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(t),await B`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(t),await t.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await t.schema.alterTable("connections").dropColumn("pinned").execute()}var jn={};i(jn,{up:()=>sa,down:()=>Va});async function sa(t){await t.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await t.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function Va(t){await t.schema.dropIndex("idx_automations_virtual_mcp").execute(),await t.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var Dn={};i(Dn,{up:()=>va,down:()=>qa});import{sql as b}from"kysely";async function va(t){await t.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(n)=>n.notNull().defaultTo("")).execute(),await b`
226
226
  UPDATE threads
227
227
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
228
228
  WHERE agent_ids IS NOT NULL
@@ -239,24 +239,24 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
239
239
  THEN jsonb_build_array(virtual_mcp_id)::text
240
240
  ELSE '[]'
241
241
  END
242
- `.execute(t),await b`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(t),await t.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Jn={};i(Jn,{up:()=>la,down:()=>da});async function la(t){await t.schema.createTable("trigger_callback_tokens").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(n)=>n.notNull().unique()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo("now()")).execute(),await t.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function da(t){await t.schema.dropTable("trigger_callback_tokens").execute()}var Ln={};i(Ln,{up:()=>ba,down:()=>tx});async function ba(t){await t.schema.createTable("kv").addColumn("organization_id","text",(n)=>n.notNull()).addColumn("key","text",(n)=>n.notNull()).addColumn("value","jsonb",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function tx(t){await t.schema.dropTable("kv").execute()}var Rn={};i(Rn,{up:()=>nx,down:()=>ux});async function nx(t){await t.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function ux(t){await t.schema.dropIndex("idx_member_user_org").execute()}var Wn={};i(Wn,{up:()=>ix,down:()=>ex});async function ix(t){await t.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function ex(t){await t.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var kn={};i(kn,{up:()=>_x,down:()=>ax});import{sql as w}from"kysely";async function _x(t){await t.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("server_json","text",(n)=>n.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(n)=>n.notNull().defaultTo(0)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.references("user.id").onDelete("set null")).execute(),await t.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await t.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await w`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(t),await t.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("server_json","text",(n)=>n.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await w`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(t),await t.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("key_hash","text",(n)=>n.notNull()).addColumn("prefix","text",(n)=>n.notNull()).addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await t.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("tested_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("passed_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("failed_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("skipped_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await t.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("run_id","text",(n)=>n.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(n)=>n.notNull()).addColumn("item_title","text",(n)=>n.notNull()).addColumn("status","text",(n)=>n.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(n)=>n.notNull().defaultTo(0)).addColumn("tools_listed","integer",(n)=>n.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(n)=>n.notNull().defaultTo(0)).addColumn("action_taken","text",(n)=>n.notNull().defaultTo("none")).addColumn("tested_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await t.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await t.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(n)=>n.notNull()).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(n)=>n.notNull().defaultTo("none")).addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function ax(t){await t.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await t.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await t.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await t.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await t.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await t.schema.dropTable("private_registry_publish_request").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await t.schema.dropTable("private_registry_item").ifExists().execute()}var $n={};i($n,{up:()=>xx,down:()=>mx});import{sql as X}from"kysely";async function xx(t){await X`
242
+ `.execute(t),await b`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(t),await t.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var Jn={};i(Jn,{up:()=>la,down:()=>da});async function la(t){await t.schema.createTable("trigger_callback_tokens").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull()).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(n)=>n.notNull().unique()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo("now()")).execute(),await t.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function da(t){await t.schema.dropTable("trigger_callback_tokens").execute()}var Ln={};i(Ln,{up:()=>ba,down:()=>tx});async function ba(t){await t.schema.createTable("kv").addColumn("organization_id","text",(n)=>n.notNull()).addColumn("key","text",(n)=>n.notNull()).addColumn("value","jsonb",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function tx(t){await t.schema.dropTable("kv").execute()}var Rn={};i(Rn,{up:()=>nx,down:()=>ux});async function nx(t){await t.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function ux(t){await t.schema.dropIndex("idx_member_user_org").execute()}var Wn={};i(Wn,{up:()=>ix,down:()=>ex});async function ix(t){await t.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function ex(t){await t.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var kn={};i(kn,{up:()=>_x,down:()=>ax});import{sql as w}from"kysely";async function _x(t){await t.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("server_json","text",(n)=>n.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(n)=>n.notNull().defaultTo(0)).addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(n)=>n.references("user.id").onDelete("set null")).execute(),await t.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await t.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await w`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(t),await t.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("title","text",(n)=>n.notNull()).addColumn("description","text").addColumn("server_json","text",(n)=>n.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await w`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(t),await t.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("key_hash","text",(n)=>n.notNull()).addColumn("prefix","text",(n)=>n.notNull()).addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await t.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("tested_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("passed_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("failed_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("skipped_items","integer",(n)=>n.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await t.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("run_id","text",(n)=>n.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(n)=>n.notNull()).addColumn("item_title","text",(n)=>n.notNull()).addColumn("status","text",(n)=>n.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(n)=>n.notNull().defaultTo(0)).addColumn("tools_listed","integer",(n)=>n.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(n)=>n.notNull().defaultTo(0)).addColumn("action_taken","text",(n)=>n.notNull().defaultTo("none")).addColumn("tested_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await t.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await t.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(n)=>n.notNull()).addColumn("connection_id","text",(n)=>n.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(n)=>n.notNull().defaultTo("none")).addColumn("created_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(n)=>n.notNull().defaultTo(w`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function ax(t){await t.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await t.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await t.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await t.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await t.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await t.schema.dropTable("private_registry_publish_request").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await t.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await t.schema.dropTable("private_registry_item").ifExists().execute()}var $n={};i($n,{up:()=>xx,down:()=>mx});import{sql as Q}from"kysely";async function xx(t){await Q`
243
243
  ALTER TABLE event_subscriptions
244
244
  ALTER COLUMN enabled DROP DEFAULT
245
- `.execute(t),await X`
245
+ `.execute(t),await Q`
246
246
  ALTER TABLE event_subscriptions
247
247
  ALTER COLUMN enabled TYPE boolean
248
248
  USING enabled::boolean
249
- `.execute(t),await X`
249
+ `.execute(t),await Q`
250
250
  ALTER TABLE event_subscriptions
251
251
  ALTER COLUMN enabled SET DEFAULT true
252
- `.execute(t)}async function mx(t){await X`
252
+ `.execute(t)}async function mx(t){await Q`
253
253
  ALTER TABLE event_subscriptions
254
254
  ALTER COLUMN enabled DROP DEFAULT
255
- `.execute(t),await X`
255
+ `.execute(t),await Q`
256
256
  ALTER TABLE event_subscriptions
257
257
  ALTER COLUMN enabled TYPE integer
258
258
  USING enabled::integer
259
- `.execute(t),await X`
259
+ `.execute(t),await Q`
260
260
  ALTER TABLE event_subscriptions
261
261
  ALTER COLUMN enabled SET DEFAULT 1
262
262
  `.execute(t)}var Xn={};i(Xn,{up:()=>ox,down:()=>yx});import{sql as Ai}from"kysely";async function ox(t){await t.schema.createTable("brand_context").addColumn("id","text",(n)=>n.primaryKey().notNull()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("domain","text",(n)=>n.notNull()).addColumn("overview","text",(n)=>n.notNull()).addColumn("logo","text").addColumn("favicon","text").addColumn("og_image","text").addColumn("fonts","text").addColumn("colors","text").addColumn("images","text").addColumn("metadata","text").addColumn("archived_at","timestamptz").addColumn("is_default","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Ai`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Ai`now()`)).execute(),await t.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function yx(t){await t.schema.dropTable("brand_context").execute()}var Qn={};i(Qn,{up:()=>Tx,down:()=>Cx});import{sql as Bi}from"kysely";async function Tx(t){await t.schema.createTable("organization_domains").addColumn("organization_id","text",(n)=>n.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(n)=>n.notNull().unique()).addColumn("auto_join_enabled","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Bi`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Bi`now()`)).execute()}async function Cx(t){await t.schema.dropTable("organization_domains").execute()}var Zn={};i(Zn,{up:()=>wx,down:()=>Kx});import{sql as Si}from"kysely";var tt=new Set(["primary","secondary","accent","background","foreground"]),Nx={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function Ex(t){let n={};if(!t)return{structured:null,extra:n};if(!Array.isArray(t)&&typeof t==="object"){let u=t;if(Object.keys(u).some((e)=>tt.has(e))){let e={};for(let[a,m]of Object.entries(u)){if(typeof m!=="string")continue;if(tt.has(a))e[a]=m;else n[a]=m}return{structured:Object.keys(e).length>0?JSON.stringify(e):null,extra:n}}let _={};for(let[e,a]of Object.entries(u)){if(typeof a!=="string")continue;if(tt.has(e.toLowerCase()))_[e.toLowerCase()]=a;else n[e]=a}return{structured:Object.keys(_).length>0?JSON.stringify(_):null,extra:n}}if(Array.isArray(t)){let u={};for(let _ of t){let e=_,a=e.label?.toLowerCase?.(),m=e.value;if(!a||!m)continue;if(tt.has(a))u[a]=m;else n[a]=m}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:n}}return{structured:null,extra:n}}function fx(t){if(!t)return null;if(!Array.isArray(t)&&typeof t==="object"){let n=t;if(typeof n.heading==="string"||typeof n.body==="string"||typeof n.code==="string")return JSON.stringify(n);return null}if(Array.isArray(t)){let n={},u=[];for(let _ of t){let e=_,a=e.name??e.family??void 0,m=e.role?.toLowerCase?.()??"";if(!a)continue;let x=Nx[m];if(x&&!n[x])n[x]=a;else u.push(a)}if(!n.body&&u[0])n.body=u[0];return Object.keys(n).length>0?JSON.stringify(n):null}return null}async function wx(t){let n=await Si`SELECT id, colors, fonts, metadata FROM brand_context`.execute(t);for(let u of n.rows){let _=!1,e=!1,a=!1,m=u.colors,x=u.fonts,o={};try{o=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let y=JSON.parse(u.colors);if(Array.isArray(y)){let T=Ex(y);if(m=T.structured,_=!0,Object.keys(T.extra).length>0)o.extraColors=T.extra,a=!0}}catch{}if(u.fonts)try{let y=JSON.parse(u.fonts);if(Array.isArray(y))x=fx(y),e=!0}catch{}if(_||e||a){let y=a?JSON.stringify(o):u.metadata;await Si`
@@ -267,7 +267,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
267
267
  metadata = ${y},
268
268
  updated_at = NOW()
269
269
  WHERE id = ${u.id}
270
- `.execute(t)}}}async function Kx(t){}var Fn={};i(Fn,{up:()=>px,down:()=>zx});import{sql as cx}from"kysely";async function px(t){await t.schema.alterTable("threads").addColumn("metadata","jsonb",(n)=>n.notNull().defaultTo(cx`'{}'::jsonb`)).execute()}async function zx(t){await t.schema.alterTable("threads").dropColumn("metadata").execute()}var Hn={};i(Hn,{up:()=>Px,down:()=>rx});async function Px(t){await t.schema.alterTable("threads").addColumn("branch","text").execute()}async function rx(t){await t.schema.alterTable("threads").dropColumn("branch").execute()}var Mn={};i(Mn,{up:()=>Ux,down:()=>Dx});async function Ux(t){await t.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(n)=>n.notNull()).addColumn("project_ref","text",(n)=>n.notNull()).addColumn("runner_kind","text",(n)=>n.notNull()).addColumn("handle","text",(n)=>n.notNull()).addColumn("state","jsonb",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.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 Dx(t){await t.schema.dropTable("sandbox_runner_state").execute()}var Yn={};i(Yn,{up:()=>jx,down:()=>Jx});async function jx(t){await t.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function Jx(t){await t.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var hn={};i(hn,{up:()=>Lx,down:()=>Rx});async function Lx(t){await t.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function Rx(t){await t.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var An={};i(An,{up:()=>Wx,down:()=>kx});async function Wx(t){await t.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function kx(t){await t.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Bn={};i(Bn,{up:()=>Xx,down:()=>Qx});import{sql as Oi}from"kysely";var $x=["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 Xx(t){let n=await Oi`
270
+ `.execute(t)}}}async function Kx(t){}var Fn={};i(Fn,{up:()=>px,down:()=>zx});import{sql as cx}from"kysely";async function px(t){await t.schema.alterTable("threads").addColumn("metadata","jsonb",(n)=>n.notNull().defaultTo(cx`'{}'::jsonb`)).execute()}async function zx(t){await t.schema.alterTable("threads").dropColumn("metadata").execute()}var Hn={};i(Hn,{up:()=>Px,down:()=>rx});async function Px(t){await t.schema.alterTable("threads").addColumn("branch","text").execute()}async function rx(t){await t.schema.alterTable("threads").dropColumn("branch").execute()}var Mn={};i(Mn,{up:()=>Ux,down:()=>jx});async function Ux(t){await t.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(n)=>n.notNull()).addColumn("project_ref","text",(n)=>n.notNull()).addColumn("runner_kind","text",(n)=>n.notNull()).addColumn("handle","text",(n)=>n.notNull()).addColumn("state","jsonb",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.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 jx(t){await t.schema.dropTable("sandbox_runner_state").execute()}var Yn={};i(Yn,{up:()=>Dx,down:()=>Jx});async function Dx(t){await t.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function Jx(t){await t.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var hn={};i(hn,{up:()=>Lx,down:()=>Rx});async function Lx(t){await t.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function Rx(t){await t.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var An={};i(An,{up:()=>Wx,down:()=>kx});async function Wx(t){await t.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function kx(t){await t.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var Bn={};i(Bn,{up:()=>Xx,down:()=>Qx});import{sql as Oi}from"kysely";var $x=["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 Xx(t){let n=await Oi`
271
271
  SELECT id, permission FROM "organizationRole"
272
272
  `.execute(t);for(let u of n.rows){if(!u.permission)continue;let _;try{_=JSON.parse(u.permission)}catch{continue}let e=_.self;if(!Array.isArray(e))continue;if(e.length===1&&e[0]==="*")continue;let a=e,m=Array.from(new Set([...a,...$x]));if(m.length===a.length)continue;_.self=m;let x=JSON.stringify(_);await Oi`
273
273
  UPDATE "organizationRole"
@@ -331,20 +331,20 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
331
331
  ALTER TABLE async_research_jobs
332
332
  ADD CONSTRAINT chk_async_research_jobs_status
333
333
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
334
- `.execute(t)}async function lx(t){await t.schema.dropTable("async_research_jobs").ifExists().execute()}var qn={};i(qn,{up:()=>dx,down:()=>bx});async function dx(t){await t.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function bx(t){await t.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var ln={};i(ln,{up:()=>tm,down:()=>nm});import{sql as Q}from"kysely";async function tm(t){await t.schema.createTable("secrets").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(n)=>n.notNull()).addColumn("user_id","text",(n)=>n.references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("encrypted_value","text",(n)=>n.notNull()).addColumn("description","text").addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await Q`
334
+ `.execute(t)}async function lx(t){await t.schema.dropTable("async_research_jobs").ifExists().execute()}var qn={};i(qn,{up:()=>dx,down:()=>bx});async function dx(t){await t.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function bx(t){await t.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var ln={};i(ln,{up:()=>tm,down:()=>nm});import{sql as Z}from"kysely";async function tm(t){await t.schema.createTable("secrets").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(n)=>n.notNull()).addColumn("user_id","text",(n)=>n.references("user.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("encrypted_value","text",(n)=>n.notNull()).addColumn("description","text").addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(Z`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(Z`CURRENT_TIMESTAMP`)).execute(),await Z`
335
335
  ALTER TABLE secrets
336
336
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
337
- `.execute(t),await Q`
337
+ `.execute(t),await Z`
338
338
  ALTER TABLE secrets
339
339
  ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
340
340
  (scope = 'user' AND user_id IS NOT NULL)
341
341
  OR (scope = 'organization' AND user_id IS NULL)
342
342
  )
343
- `.execute(t),await t.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await Q`
343
+ `.execute(t),await t.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await Z`
344
344
  CREATE UNIQUE INDEX idx_secrets_user_name
345
345
  ON secrets (organization_id, user_id, lower(name))
346
346
  WHERE scope = 'user'
347
- `.execute(t),await Q`
347
+ `.execute(t),await Z`
348
348
  CREATE UNIQUE INDEX idx_secrets_org_name
349
349
  ON secrets (organization_id, lower(name))
350
350
  WHERE scope = 'organization'
@@ -790,30 +790,30 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.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 Um(t){}var mu={};i(mu,{up:()=>jm,down:()=>Jm});import{sql as li}from"kysely";var Dm=["GLOBAL_SEARCH"];async function jm(t){let n=await li`
793
+ `.execute(t)}async function Um(t){}var mu={};i(mu,{up:()=>Dm,down:()=>Jm});import{sql as li}from"kysely";var jm=["GLOBAL_SEARCH"];async function Dm(t){let n=await li`
794
794
  SELECT id, permission FROM "organizationRole"
795
- `.execute(t);for(let u of n.rows){if(!u.permission)continue;let _;try{_=JSON.parse(u.permission)}catch{continue}let e=_.self;if(!Array.isArray(e))continue;if(e.length===1&&e[0]==="*")continue;let a=e,m=Array.from(new Set([...a,...Dm]));if(m.length===a.length)continue;_.self=m;let x=JSON.stringify(_);await li`
795
+ `.execute(t);for(let u of n.rows){if(!u.permission)continue;let _;try{_=JSON.parse(u.permission)}catch{continue}let e=_.self;if(!Array.isArray(e))continue;if(e.length===1&&e[0]==="*")continue;let a=e,m=Array.from(new Set([...a,...jm]));if(m.length===a.length)continue;_.self=m;let x=JSON.stringify(_);await li`
796
796
  UPDATE "organizationRole"
797
797
  SET permission = ${x}
798
798
  WHERE id = ${u.id}
799
799
  `.execute(t)}}async function Jm(t){}var yu={};i(yu,{up:()=>Lm,down:()=>Rm});import{sql as ou}from"kysely";async function Lm(t){await t.schema.createTable("org_file_configs").addColumn("id","text",(n)=>n.primaryKey()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(n)=>n.notNull()).addColumn("description","text").addColumn("bucket","text",(n)=>n.notNull()).addColumn("region","text",(n)=>n.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(n)=>n.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(n)=>n.notNull()).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ou`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(ou`CURRENT_TIMESTAMP`)).execute(),await t.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await ou`
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 Rm(t){await t.schema.dropTable("org_file_configs").execute()}var Tu={};i(Tu,{up:()=>Wm,down:()=>km});import{sql as D}from"kysely";async function Wm(t){await D`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await D`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await D`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await D`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await D`
802
+ `.execute(t)}async function Rm(t){await t.schema.dropTable("org_file_configs").execute()}var Tu={};i(Tu,{up:()=>Wm,down:()=>km});import{sql as j}from"kysely";async function Wm(t){await j`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(t),await j`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(t),await j`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(t),await j`DELETE FROM automations WHERE kind = 'tool_call'`.execute(t),await j`
803
803
  ALTER TABLE automations
804
804
  ALTER COLUMN virtual_mcp_id SET NOT NULL
805
- `.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function km(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await D`
805
+ `.execute(t),await t.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function km(t){await t.schema.alterTable("automations").addColumn("kind","text",(n)=>n.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await j`
806
806
  ALTER TABLE automations
807
807
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
808
- `.execute(t),await D`
808
+ `.execute(t),await j`
809
809
  ALTER TABLE automations
810
810
  ADD CONSTRAINT chk_automation_kind
811
811
  CHECK (kind IN ('agent', 'tool_call'))
812
- `.execute(t),await D`
812
+ `.execute(t),await j`
813
813
  ALTER TABLE automations
814
814
  ADD CONSTRAINT chk_automation_agent_fields
815
815
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
816
- `.execute(t),await D`
816
+ `.execute(t),await j`
817
817
  ALTER TABLE automations
818
818
  ADD CONSTRAINT chk_automation_tool_call_fields
819
819
  CHECK (
@@ -833,7 +833,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
833
833
  UPDATE "connections"
834
834
  SET metadata = ${x}
835
835
  WHERE id = ${u.id}
836
- `.execute(t)}}async function Zm(t){}var fu={};i(fu,{up:()=>Fm,down:()=>Hm});import{sql as _t}from"kysely";async function Fm(t){await t.schema.createTable("thread_message_parts").addColumn("id","text",(n)=>n.primaryKey()).addColumn("seq","integer",(n)=>n.notNull()).addColumn("org_id","text",(n)=>n.notNull()).addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(n)=>n.notNull()).addColumn("message_id","text",(n)=>n.notNull()).addColumn("role","text",(n)=>n.notNull()).addColumn("kind","text",(n)=>n.notNull()).addColumn("payload","jsonb",(n)=>n.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(n)=>n.notNull()).execute(),await _t`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(t),await _t`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(t),await _t`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(t),await _t`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(t),await t.schema.alterTable("threads").addColumn("message_storage_version","integer",(n)=>n.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function Hm(t){await t.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await t.schema.dropTable("thread_message_parts").ifExists().execute()}var wu={};i(wu,{up:()=>Mm,down:()=>Ym});async function Mm(t){await t.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function Ym(t){await t.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var Ku={};i(Ku,{up:()=>hm,down:()=>Am});async function hm(t){await t.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function Am(t){await t.schema.alterTable("threads").dropColumn("link_transport").execute()}var cu={};i(cu,{up:()=>Bm,down:()=>Sm});async function Bm(t){await t.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function Sm(t){await t.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var pu={};i(pu,{up:()=>Om,down:()=>Gm});async function Om(t){await t.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await t.schema.alterTable("threads").addColumn("is_observation","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await t.schema.createTable("thread_observations").addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(n)=>n.notNull()).addColumn("last_observed_at","text",(n)=>n.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function Gm(t){await t.schema.dropTable("thread_observations").execute(),await t.schema.alterTable("threads").dropColumn("is_observation").execute(),await t.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var zu={};i(zu,{up:()=>Im,down:()=>gm});async function Im(t){await t.schema.dropTable("thread_observations").ifExists().execute(),await t.schema.alterTable("threads").dropColumn("is_observation").execute(),await t.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function gm(t){await t.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await t.schema.alterTable("threads").addColumn("is_observation","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await t.schema.createTable("thread_observations").addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(n)=>n.notNull()).addColumn("last_observed_at","text",(n)=>n.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var ru={};i(ru,{up:()=>Vm,down:()=>vm});import{sql as r}from"kysely";var K="cluster",c="agent-sandbox";function Z(t){return t!==null&&typeof t==="object"&&!Array.isArray(t)}function Pu(t,n,u){if(!Z(t))return t;if(t.sandboxProviderKind!==n)return t;return{...t,sandboxProviderKind:u}}function at(t){if(!Z(t))return!1;if(typeof t.sandboxHandle!=="string")return!1;if(t.previewUrl!==null&&typeof t.previewUrl!=="string")return!1;if(t.sandboxApiUrl!==void 0&&t.sandboxApiUrl!==null&&typeof t.sandboxApiUrl!=="string")return!1;if(t.sandboxProviderKind!==void 0&&t.sandboxProviderKind!==K&&t.sandboxProviderKind!==c&&t.sandboxProviderKind!=="user-desktop")return!1;if(t.createdAt!==void 0&&typeof t.createdAt!=="number")return!1;if(t.startedWith!==void 0){if(!Z(t.startedWith))return!1;for(let n of["packageManager","port","path"]){let u=t.startedWith[n];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function sm(t,n,u){if(!Z(t))return null;let _=!1,e={};for(let[a,m]of Object.entries(t)){if(!Z(m)){e[a]=m;continue}let x={};for(let[o,y]of Object.entries(m)){if(!Z(y)){x[o]=y;continue}let T={};for(let[N,C]of Object.entries(y)){if(N===n){if(_=!0,!(u in y))T[u]=Pu(C,n,u);else if(!at(y[u])&&at(C))T[u]=Pu(C,n,u);continue}let p=Pu(C,n,u);if(p!==C)_=!0;if(N===u&&N in T&&at(T[N])&&!at(p))continue;T[N]=p}x[o]=T}e[a]=x}return{sandboxMap:e,changed:_}}async function di(t,n,u){let _=await r`
836
+ `.execute(t)}}async function Zm(t){}var fu={};i(fu,{up:()=>Fm,down:()=>Hm});import{sql as _t}from"kysely";async function Fm(t){await t.schema.createTable("thread_message_parts").addColumn("id","text",(n)=>n.primaryKey()).addColumn("seq","integer",(n)=>n.notNull()).addColumn("org_id","text",(n)=>n.notNull()).addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(n)=>n.notNull()).addColumn("message_id","text",(n)=>n.notNull()).addColumn("role","text",(n)=>n.notNull()).addColumn("kind","text",(n)=>n.notNull()).addColumn("payload","jsonb",(n)=>n.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(n)=>n.notNull()).execute(),await _t`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(t),await _t`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(t),await _t`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(t),await _t`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(t),await t.schema.alterTable("threads").addColumn("message_storage_version","integer",(n)=>n.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function Hm(t){await t.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await t.schema.dropTable("thread_message_parts").ifExists().execute()}var wu={};i(wu,{up:()=>Mm,down:()=>Ym});async function Mm(t){await t.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function Ym(t){await t.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var Ku={};i(Ku,{up:()=>hm,down:()=>Am});async function hm(t){await t.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function Am(t){await t.schema.alterTable("threads").dropColumn("link_transport").execute()}var cu={};i(cu,{up:()=>Bm,down:()=>Sm});async function Bm(t){await t.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function Sm(t){await t.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var pu={};i(pu,{up:()=>Om,down:()=>Gm});async function Om(t){await t.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await t.schema.alterTable("threads").addColumn("is_observation","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await t.schema.createTable("thread_observations").addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(n)=>n.notNull()).addColumn("last_observed_at","text",(n)=>n.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function Gm(t){await t.schema.dropTable("thread_observations").execute(),await t.schema.alterTable("threads").dropColumn("is_observation").execute(),await t.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var zu={};i(zu,{up:()=>Im,down:()=>gm});async function Im(t){await t.schema.dropTable("thread_observations").ifExists().execute(),await t.schema.alterTable("threads").dropColumn("is_observation").execute(),await t.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function gm(t){await t.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await t.schema.alterTable("threads").addColumn("is_observation","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await t.schema.createTable("thread_observations").addColumn("thread_id","text",(n)=>n.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(n)=>n.notNull()).addColumn("last_observed_at","text",(n)=>n.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var ru={};i(ru,{up:()=>Vm,down:()=>vm});import{sql as r}from"kysely";var K="cluster",c="agent-sandbox";function F(t){return t!==null&&typeof t==="object"&&!Array.isArray(t)}function Pu(t,n,u){if(!F(t))return t;if(t.sandboxProviderKind!==n)return t;return{...t,sandboxProviderKind:u}}function at(t){if(!F(t))return!1;if(typeof t.sandboxHandle!=="string")return!1;if(t.previewUrl!==null&&typeof t.previewUrl!=="string")return!1;if(t.sandboxApiUrl!==void 0&&t.sandboxApiUrl!==null&&typeof t.sandboxApiUrl!=="string")return!1;if(t.sandboxProviderKind!==void 0&&t.sandboxProviderKind!==K&&t.sandboxProviderKind!==c&&t.sandboxProviderKind!=="user-desktop")return!1;if(t.createdAt!==void 0&&typeof t.createdAt!=="number")return!1;if(t.startedWith!==void 0){if(!F(t.startedWith))return!1;for(let n of["packageManager","port","path"]){let u=t.startedWith[n];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function sm(t,n,u){if(!F(t))return null;let _=!1,e={};for(let[a,m]of Object.entries(t)){if(!F(m)){e[a]=m;continue}let x={};for(let[o,y]of Object.entries(m)){if(!F(y)){x[o]=y;continue}let T={};for(let[N,C]of Object.entries(y)){if(N===n){if(_=!0,!(u in y))T[u]=Pu(C,n,u);else if(!at(y[u])&&at(C))T[u]=Pu(C,n,u);continue}let p=Pu(C,n,u);if(p!==C)_=!0;if(N===u&&N in T&&at(T[N])&&!at(p))continue;T[N]=p}x[o]=T}e[a]=x}return{sandboxMap:e,changed:_}}async function di(t,n,u){let _=await r`
837
837
  SELECT id, metadata FROM connections
838
838
  WHERE connection_type = 'VIRTUAL'
839
839
  AND metadata IS NOT NULL
@@ -908,7 +908,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
908
908
  CREATE INDEX idx_org_fs_entry_usage
909
909
  ON org_fs_entry (organization_id, volume, size)
910
910
  WHERE kind = 'file' AND deleted_at IS NULL
911
- `.execute(t)}async function lm(t){await t.schema.dropTable("org_fs_entry").execute(),await J`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(t)}var Du={};i(Du,{up:()=>dm,down:()=>bm});async function dm(t){await t.schema.alterTable("automations").addColumn("tools","text").execute()}async function bm(t){await t.schema.alterTable("automations").dropColumn("tools").execute()}var ju={};i(ju,{up:()=>to,down:()=>no});import{sql as bi}from"kysely";async function to(t){await bi`
911
+ `.execute(t)}async function lm(t){await t.schema.dropTable("org_fs_entry").execute(),await J`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(t)}var ju={};i(ju,{up:()=>dm,down:()=>bm});async function dm(t){await t.schema.alterTable("automations").addColumn("tools","text").execute()}async function bm(t){await t.schema.alterTable("automations").dropColumn("tools").execute()}var Du={};i(Du,{up:()=>to,down:()=>no});import{sql as bi}from"kysely";async function to(t){await bi`
912
912
  INSERT INTO "organization" (id, name, slug, "createdAt")
913
913
  SELECT
914
914
  'org_orgfs_public_skills',
@@ -928,7 +928,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
928
928
  UPDATE downstream_tokens
929
929
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
930
930
  WHERE "expiresAt" IS NULL
931
- `.execute(t)}async function mo(t){}var Wu={};i(Wu,{up:()=>oo,down:()=>yo});async function oo(t){await t.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function yo(t){await t.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var ku={};i(ku,{up:()=>To,down:()=>Co});async function To(t){await t.schema.alterTable("org_file_configs").addColumn("credential_type","text",(n)=>n.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function Co(t){await t.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var $u={};i($u,{up:()=>No,down:()=>Eo});async function No(t){await t.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await t.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function Eo(t){await t.schema.alterTable("threads").dropColumn("failure_kind").execute(),await t.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Xu={};i(Xu,{up:()=>fo,down:()=>wo});async function fo(t){await t.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function wo(t){await t.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Qu={};i(Qu,{up:()=>Ko,down:()=>co});async function Ko(t){await t.schema.alterTable("threads").addColumn("projected_seq","integer",(n)=>n.notNull().defaultTo(0)).execute()}async function co(t){await t.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Zu={};i(Zu,{up:()=>po,down:()=>zo});import{sql as ne}from"kysely";async function po(t){await t.schema.createTable("org_sites").addColumn("slug","text",(n)=>n.primaryKey().notNull()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(n)=>n.notNull().defaultTo("deco-import")).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ne`now()`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(ne`now()`)).execute(),await t.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function zo(t){await t.schema.dropTable("org_sites").execute()}var Fu={};i(Fu,{up:()=>Po,down:()=>ro});async function Po(t){await t.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function ro(t){await t.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Hu={};i(Hu,{up:()=>Uo,down:()=>Do});import{sql as f}from"kysely";async function Uo(t){await t.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await f`
931
+ `.execute(t)}async function mo(t){}var Wu={};i(Wu,{up:()=>oo,down:()=>yo});async function oo(t){await t.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function yo(t){await t.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var ku={};i(ku,{up:()=>To,down:()=>Co});async function To(t){await t.schema.alterTable("org_file_configs").addColumn("credential_type","text",(n)=>n.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function Co(t){await t.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var $u={};i($u,{up:()=>No,down:()=>Eo});async function No(t){await t.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await t.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function Eo(t){await t.schema.alterTable("threads").dropColumn("failure_kind").execute(),await t.schema.alterTable("threads").dropColumn("failure_reason").execute()}var Xu={};i(Xu,{up:()=>fo,down:()=>wo});async function fo(t){await t.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function wo(t){await t.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var Qu={};i(Qu,{up:()=>Ko,down:()=>co});async function Ko(t){await t.schema.alterTable("threads").addColumn("projected_seq","integer",(n)=>n.notNull().defaultTo(0)).execute()}async function co(t){await t.schema.alterTable("threads").dropColumn("projected_seq").execute()}var Zu={};i(Zu,{up:()=>po,down:()=>zo});import{sql as ne}from"kysely";async function po(t){await t.schema.createTable("org_sites").addColumn("slug","text",(n)=>n.primaryKey().notNull()).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(n)=>n.notNull().defaultTo("deco-import")).addColumn("created_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ne`now()`)).addColumn("updated_by","text",(n)=>n.notNull()).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(ne`now()`)).execute(),await t.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function zo(t){await t.schema.dropTable("org_sites").execute()}var Fu={};i(Fu,{up:()=>Po,down:()=>ro});async function Po(t){await t.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function ro(t){await t.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var Hu={};i(Hu,{up:()=>Uo,down:()=>jo});import{sql as f}from"kysely";async function Uo(t){await t.schema.alterTable("organization_domains").addColumn("id","text").addColumn("join_mode","text").addColumn("verification_status","text").addColumn("verification_method","text").addColumn("verification_token","text").addColumn("verified_at","timestamptz").execute(),await f`
932
932
  UPDATE organization_domains
933
933
  SET
934
934
  id = gen_random_uuid()::text,
@@ -937,10 +937,10 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
937
937
  verification_method = 'email',
938
938
  verified_at = created_at
939
939
  WHERE id IS NULL
940
- `.execute(t),await f`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(t),await f`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(t),await f`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 Do(t){await t.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await t.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await f`
940
+ `.execute(t),await f`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(t),await f`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(t),await f`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(t),await f`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 jo(t){await t.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await t.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(n)=>n.notNull().defaultTo(!1)).execute(),await f`
941
941
  UPDATE organization_domains
942
942
  SET auto_join_enabled = (join_mode = 'auto')
943
- `.execute(t),await f`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(t),await f`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 Mu={};i(Mu,{up:()=>jo,down:()=>Jo});import{sql as xt}from"kysely";async function jo(t){await t.schema.createTable("organization_join_requests").addColumn("id","text",(n)=>n.primaryKey().defaultTo(xt`gen_random_uuid()::text`)).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("decided_by","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(xt`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(xt`now()`)).execute(),await xt`
943
+ `.execute(t),await f`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(t),await f`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 Mu={};i(Mu,{up:()=>Do,down:()=>Jo});import{sql as xt}from"kysely";async function Do(t){await t.schema.createTable("organization_join_requests").addColumn("id","text",(n)=>n.primaryKey().defaultTo(xt`gen_random_uuid()::text`)).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(n)=>n.notNull().defaultTo("pending")).addColumn("decided_by","text",(n)=>n.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(xt`now()`)).addColumn("updated_at","timestamptz",(n)=>n.notNull().defaultTo(xt`now()`)).execute(),await xt`
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'
@@ -1030,7 +1030,7 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
1030
1030
  insert into organization_billing (organization_id, legacy)
1031
1031
  select id, true from organization
1032
1032
  on conflict (organization_id) do nothing
1033
- `.execute(t)}async function zy(t){await t.schema.dropTable("organization_paid_seat").execute(),await t.schema.dropTable("organization_billing").execute()}var xi={};i(xi,{up:()=>Py,down:()=>ry});import{sql as ue}from"kysely";async function Py(t){await t.schema.createTable("seat_change_log").addColumn("id","uuid",(n)=>n.primaryKey().defaultTo(ue`gen_random_uuid()`)).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull()).addColumn("seat","text",(n)=>n.notNull()).addColumn("changed_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ue`now()`)).execute(),await t.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function ry(t){await t.schema.dropTable("seat_change_log").execute()}var mi={};i(mi,{up:()=>Uy,down:()=>Dy});async function Uy(t){await t.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function Dy(t){await t.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var oi={};i(oi,{up:()=>jy,down:()=>Jy});import{sql as ie}from"kysely";async function jy(t){await t.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await ie`
1033
+ `.execute(t)}async function zy(t){await t.schema.dropTable("organization_paid_seat").execute(),await t.schema.dropTable("organization_billing").execute()}var xi={};i(xi,{up:()=>Py,down:()=>ry});import{sql as ue}from"kysely";async function Py(t){await t.schema.createTable("seat_change_log").addColumn("id","uuid",(n)=>n.primaryKey().defaultTo(ue`gen_random_uuid()`)).addColumn("organization_id","text",(n)=>n.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(n)=>n.notNull()).addColumn("seat","text",(n)=>n.notNull()).addColumn("changed_by","text",(n)=>n.notNull()).addColumn("created_at","timestamptz",(n)=>n.notNull().defaultTo(ue`now()`)).execute(),await t.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function ry(t){await t.schema.dropTable("seat_change_log").execute()}var mi={};i(mi,{up:()=>Uy,down:()=>jy});async function Uy(t){await t.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function jy(t){await t.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var oi={};i(oi,{up:()=>Dy,down:()=>Jy});import{sql as ie}from"kysely";async function Dy(t){await t.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await ie`
1034
1034
  create unique index organization_billing_stripe_subscription_id_uq
1035
1035
  on organization_billing (stripe_subscription_id)
1036
1036
  where stripe_subscription_id is not null
@@ -1053,9 +1053,9 @@ var ke=Object.defineProperty;var $e=(t)=>t;function Xe(t,n){this[t]=$e.bind(null
1053
1053
  SELECT id, app_name, connection_url, title, slug
1054
1054
  FROM connections
1055
1055
  WHERE connection_type != 'VIRTUAL'
1056
- `.execute(t),u=0;for(let _ of n.rows){let e=gy(_);if(e===_.slug)continue;await oe`UPDATE connections SET slug = ${e} WHERE id = ${_.id}`.execute(t),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function Vy(){}var ri={};i(ri,{up:()=>qy,down:()=>ly});import{sql as vy}from"kysely";async function qy(t){await vy`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(t)}async function ly(t){await t.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var dy={"001-initial-schema":wt,"002-organization-settings":Kt,"003-connection-schema-align":ct,"004-remove-models-binding":pt,"005-connection-configuration":zt,"006-add-views-to-settings":Pt,"007-monitoring-logs":rt,"008-event-bus":Ut,"009-drop-audit-logs":Dt,"010-gateways":jt,"011-gateway-icon":Jt,"012-gateway-tool-selection-mode":Lt,"013-monitoring-user-agent-gateway":Rt,"014-gateway-resources-prompts":Wt,"015-monitoring-properties":kt,"016-downstream-token-client-info":$t,"017-downstream-token-remove-userid":Xt,"018-drop-gateway-tool-selection-strategy":Qt,"019-remove-gateway-is-default":Zt,"020-enabled-plugins":Ft,"021-threads":Ht,"022-rename-gateway-to-virtual-mcp":Mt,"023-optimize-thread-indexes":Yt,"024-consolidate-virtual-mcp":ht,"025-add-monitoring-virtual-mcp-id":At,"026-restrict-child-connection-delete":Bt,"027-update-management-mcp-url":Ot,"028-update-management-mcp-to-self":It,"029-add-updated-by-to-connections":gt,"030-member-tags":st,"031-add-dependency-mode":Vt,"032-projects":vt,"033-thread-status":qt,"034-monitoring-dashboards":lt,"035-project-connections":dt,"036-update-registry-url":bt,"037-ai-provider-keys":tn,"038-oauth-pkce-states":nn,"039-automations":un,"040-replace-next-run-at-with-last-run-at":en,"041-ai-provider-keys-unique-constraint":_n,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":xn,"044-drop-connections-tools-column":mn,"045-thread-context-start-message":on,"046-remove-object-storage-plugin":Tn,"047-add-next-run-at":Cn,"048-merge-projects-agents":En,"049-remove-org-admin-projects":fn,"050-durable-agent-runs":wn,"051-org-sso":cn,"052-thread-agent-ids":pn,"053-registry-config":zn,"054-connection-slug":rn,"055-spaces":Un,"056-automation-project-scope":Dn,"057-thread-virtual-mcp-id":jn,"058-trigger-callback-tokens":Jn,"059-kv":Ln,"060-member-index":Rn,"061-downstream-token-connection-index":Wn,"062-private-registry":kn,"063-event-subscriptions-enabled-boolean":$n,"064-brand-context":Xn,"065-organization-domains":Qn,"066-brand-context-structured":Zn,"067-threads-metadata":Fn,"068-threads-branch":Hn,"069-sandbox-runner-state":Mn,"070-model-categories":Yn,"071-default-home-agents":hn,"072-ai-provider-key-preset-id":An,"073-backfill-basic-usage-roles":Bn,"074-sandbox-runner-state-handle-nonunique":Sn,"075-thread-inflight-async-jobs":On,"076-automations-drop-agent-json":Gn,"077-tier-only-model-selection":gn,"078-automation-tool-call-kind":sn,"079-strip-legacy-freestyle-vm-map-entries":Vn,"080-async-research-jobs":vn,"081-async-research-jobs-result-content":qn,"082-secrets":ln,"083-thread-run-locally":dn,"084-drop-host-sandbox-rows":bn,"085-rename-runner-kind":tu,"086-thread-pins-and-vm-map-rekey":nu,"087-fix-vm-map-rekey":uu,"088-purge-cli-activate-keys":iu,"089-rename-remote-user-to-desktop":eu,"090-automation-webhook-triggers":_u,"091-organization-domains-allow-multi":au,"092-sandbox-naming-uniformization":xu,"093-backfill-global-search-basic-usage":mu,"094-org-file-configs":yu,"095-remove-automation-tool-call-kind":Tu,"096-org-file-configs-public-url-base":Cu,"097-drop-local-docker-sandbox-state":Eu,"098-thread-message-parts":fu,"099-run-fence":wu,"100-link-transport":Ku,"101-cancel-requested-at":cu,"102-observational-agent":pu,"103-revert-observational-agent":zu,"104-agent-sandbox-provider-kind":ru,"105-org-fs":Uu,"106-automation-tools":Du,"107-org-fs-public-org":ju,"108-automation-max-agent-steps":Ju,"109-thread-message-parts-per-message-seq":Lu,"110-backfill-ghs-token-expiry":Ru,"111-org-fs-thread-id":Wu,"112-org-file-configs-credential-type":ku,"113-thread-failure-reason":$u,"114-run-acked-seq":Xu,"115-thread-projected-seq":Qu,"116-org-sites":Zu,"117-org-file-configs-site-slug":Fu,"118-organization-domains-multi-verify":Hu,"119-organization-join-requests":Mu,"120-org-fs-read-public":Yu,"121-org-fs-share-password":hu,"122-split-web-research-tier":Su,"123-connection-credential-vault":Ou,"124-drop-thread-projected-seq":Gu,"125-github-child-single-parent":Iu,"126-task-board":su,"127-task-board-due-date":Vu,"128-reports-only":vu,"129-task-board-assigned-by":qu,"130-task-board-thread-id":lu,"131-task-board-thread-link-cascade":du,"132-task-board-item-prs":bu,"133-dedupe-duplicate-members":ti,"134-drop-task-board-enabled":ni,"135-task-board-item-fk-cascade":ui,"136-task-board-import-idempotency":ii,"137-agent-sandbox-runner-state":ei,"138-agent-sandbox-sessions":_i,"139-organization-billing":ai,"140-seat-change-log":xi,"141-benefits-sync-pending":mi,"142-stripe-event-watermark":oi,"143-armed-report-url":yi,"144-benefits-pending-index":Ti,"145-user-model-preferences":Ci,"146-organization-main-agent":Ni,"147-drop-agent-sandbox-tables":Ei,"148-org-flags":fi,"149-task-board-item-sort-order":wi,"150-task-board-activity":Ki,"151-task-board-tags":pi,"152-repair-connection-slug":Pi,"153-task-board-latest-assistant-part-index":ri},Ui=dy;import{getMigrations as XT}from"better-auth/db";import{sso as QT}from"@better-auth/sso";import{organization as ZT}from"@decocms/better-auth/plugins";import{admin as FT,apiKey as HT,jwt as MT,magicLink as YT,mcp as hT,openAPI as AT}from"better-auth/plugins";import{emailOTP as BT}from"better-auth/plugins/email-otp";import{Kysely as jT,PostgresDialect as Pe}from"kysely";import{Pool as re}from"pg";import{homedir as by}from"os";var tT=new Set(["all","worker","api"]);function nT(t){let n=(t??"").trim();return tT.has(n)?n:"all"}var uT=new Set(["production","development","test"]);function iT(t){let n=(t??"").trim();return uT.has(n)?n:"development"}function W(t){return t==="true"||t==="1"}function eT(t){if(t===void 0||t==="")return;return W(t)}function Te(t,n){if(n===void 0||n==="")return;let u=Number(n);if(!Number.isSafeInteger(u)||u<=0)throw Error(`${t} must be a positive integer`);return u}function F(t,n,u){return Te(t,n)??u}function _T(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function ye(t){if(!t)return null;try{let u=new URL(t).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return t}catch{return null}}function aT(t){return t===void 0||t===""||t==="true"||t==="1"}var xT=new Set(["agent-sandbox","user-desktop"]);function mT(t){let n=(t??"").trim(),u=n.length>0?n:"user-desktop";if(u==="cluster")return"agent-sandbox";if(!xT.has(u))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return u}function Ce(t,n){let u=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${by()}/deco`,_=t.localMode,e=t.nodeEnv||iT(n.NODE_ENV),a=n.NATS_URL||"nats://localhost:4222",m=eT(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:e,port:F("PORT",t.port||n.PORT,3000),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:n.STUDIO_PUBLIC_URL??n.MESH_PUBLIC_URL,dataDir:u,databasePgSsl:W(n.DATABASE_PG_SSL),databasePoolMax:F("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:n.STUDIO_JWT_SECRET??n.MESH_JWT_SECRET,localMode:_,disableRateLimit:W(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((o)=>o.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Te("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:m,natsTunnelSessionTtlSeconds:F("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:W(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,seatAllowanceCents:F("STUDIO_SEAT_ALLOWANCE_CENTS",n.STUDIO_SEAT_ALLOWANCE_CENTS,500),stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeSeatPriceId:n.STRIPE_SEAT_PRICE_ID,topupFeePercent:F("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15),enableDecoImport:W(n.ENABLE_DECO_IMPORT),billingEnforced:W(n.STUDIO_BILLING_ENFORCED),mcpCacheEnabled:_T(n.MCP_CACHE_ENABLED,e!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:W(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:F("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:aT(n.S3_FORCE_PATH_STYLE),monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:n.DUCKDB_THREADS?Number(n.DUCKDB_THREADS):void 0,isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME??crypto.randomUUID(),dispatchRole:nT(n.STUDIO_DISPATCH_ROLE??n.MESH_DISPATCH_ROLE),sandboxProviderKind:mT(n.STUDIO_SANDBOX_PROVIDER),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:n.REPORTS_INTERNAL_API_URL??n.COMMERCE_DISCOVERY_INTERNAL_API_URL,reportsInternalApiKey:n.REPORTS_INTERNAL_API_KEY??n.COMMERCE_DISCOVERY_INTERNAL_API_KEY,s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:ye(n.DATABASE_URL),externalNatsUrl:ye(a),skipMigrations:t.skipMigrations}}var Tt=null;function H(){if(!Tt)oT();return Tt}function oT(){if(Tt)return;let t={...process.env},n=Ce({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);Tt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as fT,metrics as wT,propagation as ef,ROOT_CONTEXT as _f,SpanStatusCode as af,trace as KT}from"@opentelemetry/api";import{logs as cT,SeverityNumber as Di}from"@opentelemetry/api-logs";import{OTLPLogExporter as of}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as pT}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Cf}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Ef}from"@opentelemetry/instrumentation-runtime-node";import{context as lN,propagation as dN,SpanKind as bN,SpanStatusCode as tE}from"@opentelemetry/api";var uE=globalThis.fetch;import{ExportResultCode as EE}from"@opentelemetry/core";import{ExportResultCode as Ct}from"@opentelemetry/core";import{mkdir as yT,rename as TT,writeFile as CT}from"fs/promises";import{join as Nt}from"path";class Et{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 n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:Ct.FAILED});for(let n of t){let u=JSON.stringify(n),_=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:_,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Ct.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:Ct.FAILED}});return Promise.resolve({code:Ct.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 n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let e of t){let a=n.get(e.partition);if(!a)a=[],n.set(e.partition,a);a.push(e.json)}let u=await Promise.allSettled(Array.from(n.entries()).map(([e,a])=>this.writeNDJSON(a,e).then(()=>e))),_=u.find((e)=>e.status==="rejected");if(_){let e=new Set;for(let m of u)if(m.status==="fulfilled")e.add(m.value);let a=t.filter((m)=>!e.has(m.partition));this.bufferItems=a.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw _.reason}}async writeNDJSON(t,n){let u=new Date,_=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],e=n?Nt(this.basePath,n,..._):Nt(this.basePath,..._);if(!this.knownDirs.has(e))await yT(e,{recursive:!0,mode:448}),this.knownDirs.add(e);let a=`${crypto.randomUUID()}.ndjson`,m=Nt(e,`.${a}.tmp`),x=Nt(e,a),o=t.join(`
1056
+ `.execute(t),u=0;for(let _ of n.rows){let e=gy(_);if(e===_.slug)continue;await oe`UPDATE connections SET slug = ${e} WHERE id = ${_.id}`.execute(t),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function Vy(){}var ri={};i(ri,{up:()=>qy,down:()=>ly});import{sql as vy}from"kysely";async function qy(t){await vy`CREATE INDEX idx_tmp_latest_assistant_text ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE role = 'assistant' AND kind = 'text'`.execute(t)}async function ly(t){await t.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var dy={"001-initial-schema":wt,"002-organization-settings":Kt,"003-connection-schema-align":ct,"004-remove-models-binding":pt,"005-connection-configuration":zt,"006-add-views-to-settings":Pt,"007-monitoring-logs":rt,"008-event-bus":Ut,"009-drop-audit-logs":jt,"010-gateways":Dt,"011-gateway-icon":Jt,"012-gateway-tool-selection-mode":Lt,"013-monitoring-user-agent-gateway":Rt,"014-gateway-resources-prompts":Wt,"015-monitoring-properties":kt,"016-downstream-token-client-info":$t,"017-downstream-token-remove-userid":Xt,"018-drop-gateway-tool-selection-strategy":Qt,"019-remove-gateway-is-default":Zt,"020-enabled-plugins":Ft,"021-threads":Ht,"022-rename-gateway-to-virtual-mcp":Mt,"023-optimize-thread-indexes":Yt,"024-consolidate-virtual-mcp":ht,"025-add-monitoring-virtual-mcp-id":At,"026-restrict-child-connection-delete":Bt,"027-update-management-mcp-url":Ot,"028-update-management-mcp-to-self":It,"029-add-updated-by-to-connections":gt,"030-member-tags":st,"031-add-dependency-mode":Vt,"032-projects":vt,"033-thread-status":qt,"034-monitoring-dashboards":lt,"035-project-connections":dt,"036-update-registry-url":bt,"037-ai-provider-keys":tn,"038-oauth-pkce-states":nn,"039-automations":un,"040-replace-next-run-at-with-last-run-at":en,"041-ai-provider-keys-unique-constraint":_n,"042-rename-mesh-mcp-to-cms-mcp":an,"043-rename-cms-mcp-to-deco-cms":xn,"044-drop-connections-tools-column":mn,"045-thread-context-start-message":on,"046-remove-object-storage-plugin":Tn,"047-add-next-run-at":Cn,"048-merge-projects-agents":En,"049-remove-org-admin-projects":fn,"050-durable-agent-runs":wn,"051-org-sso":cn,"052-thread-agent-ids":pn,"053-registry-config":zn,"054-connection-slug":rn,"055-spaces":Un,"056-automation-project-scope":jn,"057-thread-virtual-mcp-id":Dn,"058-trigger-callback-tokens":Jn,"059-kv":Ln,"060-member-index":Rn,"061-downstream-token-connection-index":Wn,"062-private-registry":kn,"063-event-subscriptions-enabled-boolean":$n,"064-brand-context":Xn,"065-organization-domains":Qn,"066-brand-context-structured":Zn,"067-threads-metadata":Fn,"068-threads-branch":Hn,"069-sandbox-runner-state":Mn,"070-model-categories":Yn,"071-default-home-agents":hn,"072-ai-provider-key-preset-id":An,"073-backfill-basic-usage-roles":Bn,"074-sandbox-runner-state-handle-nonunique":Sn,"075-thread-inflight-async-jobs":On,"076-automations-drop-agent-json":Gn,"077-tier-only-model-selection":gn,"078-automation-tool-call-kind":sn,"079-strip-legacy-freestyle-vm-map-entries":Vn,"080-async-research-jobs":vn,"081-async-research-jobs-result-content":qn,"082-secrets":ln,"083-thread-run-locally":dn,"084-drop-host-sandbox-rows":bn,"085-rename-runner-kind":tu,"086-thread-pins-and-vm-map-rekey":nu,"087-fix-vm-map-rekey":uu,"088-purge-cli-activate-keys":iu,"089-rename-remote-user-to-desktop":eu,"090-automation-webhook-triggers":_u,"091-organization-domains-allow-multi":au,"092-sandbox-naming-uniformization":xu,"093-backfill-global-search-basic-usage":mu,"094-org-file-configs":yu,"095-remove-automation-tool-call-kind":Tu,"096-org-file-configs-public-url-base":Cu,"097-drop-local-docker-sandbox-state":Eu,"098-thread-message-parts":fu,"099-run-fence":wu,"100-link-transport":Ku,"101-cancel-requested-at":cu,"102-observational-agent":pu,"103-revert-observational-agent":zu,"104-agent-sandbox-provider-kind":ru,"105-org-fs":Uu,"106-automation-tools":ju,"107-org-fs-public-org":Du,"108-automation-max-agent-steps":Ju,"109-thread-message-parts-per-message-seq":Lu,"110-backfill-ghs-token-expiry":Ru,"111-org-fs-thread-id":Wu,"112-org-file-configs-credential-type":ku,"113-thread-failure-reason":$u,"114-run-acked-seq":Xu,"115-thread-projected-seq":Qu,"116-org-sites":Zu,"117-org-file-configs-site-slug":Fu,"118-organization-domains-multi-verify":Hu,"119-organization-join-requests":Mu,"120-org-fs-read-public":Yu,"121-org-fs-share-password":hu,"122-split-web-research-tier":Su,"123-connection-credential-vault":Ou,"124-drop-thread-projected-seq":Gu,"125-github-child-single-parent":Iu,"126-task-board":su,"127-task-board-due-date":Vu,"128-reports-only":vu,"129-task-board-assigned-by":qu,"130-task-board-thread-id":lu,"131-task-board-thread-link-cascade":du,"132-task-board-item-prs":bu,"133-dedupe-duplicate-members":ti,"134-drop-task-board-enabled":ni,"135-task-board-item-fk-cascade":ui,"136-task-board-import-idempotency":ii,"137-agent-sandbox-runner-state":ei,"138-agent-sandbox-sessions":_i,"139-organization-billing":ai,"140-seat-change-log":xi,"141-benefits-sync-pending":mi,"142-stripe-event-watermark":oi,"143-armed-report-url":yi,"144-benefits-pending-index":Ti,"145-user-model-preferences":Ci,"146-organization-main-agent":Ni,"147-drop-agent-sandbox-tables":Ei,"148-org-flags":fi,"149-task-board-item-sort-order":wi,"150-task-board-activity":Ki,"151-task-board-tags":pi,"152-repair-connection-slug":Pi,"153-task-board-latest-assistant-part-index":ri},Ui=dy;import{getMigrations as XT}from"better-auth/db";import{sso as QT}from"@better-auth/sso";import{organization as ZT}from"@decocms/better-auth/plugins";import{admin as FT,apiKey as HT,jwt as MT,magicLink as YT,mcp as hT,openAPI as AT}from"better-auth/plugins";import{emailOTP as BT}from"better-auth/plugins/email-otp";import{Kysely as DT,PostgresDialect as Pe}from"kysely";import{Pool as re}from"pg";import{homedir as by}from"os";var tT=new Set(["all","worker","api"]);function nT(t){let n=(t??"").trim();return tT.has(n)?n:"all"}var uT=new Set(["production","development","test"]);function iT(t){let n=(t??"").trim();return uT.has(n)?n:"development"}function k(t){return t==="true"||t==="1"}function eT(t){if(t===void 0||t==="")return;return k(t)}function Te(t,n){if(n===void 0||n==="")return;let u=Number(n);if(!Number.isSafeInteger(u)||u<=0)throw Error(`${t} must be a positive integer`);return u}function W(t,n,u){return Te(t,n)??u}function _T(t,n){if(t===void 0||t==="")return n;return t==="true"||t==="1"}function ye(t){if(!t)return null;try{let u=new URL(t).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return t}catch{return null}}function aT(t){return t===void 0||t===""||t==="true"||t==="1"}var xT=new Set(["agent-sandbox","user-desktop"]);function mT(t){let n=(t??"").trim(),u=n.length>0?n:"user-desktop";if(u==="cluster")return"agent-sandbox";if(!xT.has(u))throw Error(`Unknown STUDIO_SANDBOX_PROVIDER="${t}" \u2014 expected "agent-sandbox", legacy "cluster", or "user-desktop".`);return u}function Ce(t,n){let u=t.home||n.DATA_DIR||n.DECOCMS_HOME||`${by()}/deco`,_=t.localMode,e=t.nodeEnv||iT(n.NODE_ENV),a=n.NATS_URL||"nats://localhost:4222",m=eT(n.NATS_TUNNEL_PUBLIC_ENABLED)??!!n.NATS_PUBLIC_URL;return{settings:{nodeEnv:e,port:W("PORT",t.port||n.PORT,3000),baseUrl:t.baseUrl||n.BASE_URL,publicUrl:n.STUDIO_PUBLIC_URL??n.MESH_PUBLIC_URL,dataDir:u,databasePgSsl:k(n.DATABASE_PG_SSL),databasePoolMax:W("DATABASE_POOL_MAX",n.DATABASE_POOL_MAX,5),betterAuthSecret:n.BETTER_AUTH_SECRET||"",encryptionKey:n.ENCRYPTION_KEY||"",studioJwtSecret:n.STUDIO_JWT_SECRET??n.MESH_JWT_SECRET,localMode:_,disableRateLimit:k(n.DISABLE_RATE_LIMIT),studioProvisionSecretKey:n.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(n.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((o)=>o.trim().toLowerCase()).filter(Boolean),clickhouseUrl:n.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Te("CLICKHOUSE_MAX_MEMORY_USAGE",n.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:n.MONITORING_OTLP_ENDPOINT,otelServiceName:n.OTEL_SERVICE_NAME||"studio",natsPublicUrl:n.NATS_PUBLIC_URL,natsTunnelPublicEnabled:m,natsTunnelSessionTtlSeconds:W("NATS_TUNNEL_SESSION_TTL_SECONDS",n.NATS_TUNNEL_SESSION_TTL_SECONDS,900),natsOperatorJwt:n.NATS_OPERATOR_JWT,natsAccountJwt:n.NATS_ACCOUNT_JWT,natsAccountSigningKey:n.NATS_ACCOUNT_SIGNING_KEY,natsCredsPath:n.NATS_CREDS,configPath:n.CONFIG_PATH||"./config.json",aiGatewayEnabled:k(n.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:n.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:n.DECO_AI_GATEWAY_ADMIN_TOKEN,seatAllowanceCents:W("STUDIO_SEAT_ALLOWANCE_CENTS",n.STUDIO_SEAT_ALLOWANCE_CENTS,500),stripeWebhookSecret:n.STRIPE_WEBHOOK_SECRET,stripeSecretKey:n.STRIPE_SECRET_KEY,stripeSeatPriceId:n.STRIPE_SEAT_PRICE_ID,topupFeePercent:W("STUDIO_TOPUP_FEE_PERCENT",n.STUDIO_TOPUP_FEE_PERCENT,15),enableDecoImport:k(n.ENABLE_DECO_IMPORT),billingEnforced:k(n.STUDIO_BILLING_ENFORCED),mcpCacheEnabled:_T(n.MCP_CACHE_ENABLED,e!=="development"),orgFsPublicSetsJson:n.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:k(n.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:W("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",n.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:W("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",n.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),s3Endpoint:n.S3_ENDPOINT,s3Bucket:n.S3_BUCKET,s3Region:n.S3_REGION||"auto",s3AccessKeyId:n.S3_ACCESS_KEY_ID,s3SecretAccessKey:n.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:aT(n.S3_FORCE_PATH_STYLE),monitoringS3Bucket:n.MONITORING_S3_BUCKET,monitoringS3Endpoint:n.MONITORING_S3_ENDPOINT,monitoringS3Region:n.MONITORING_S3_REGION,monitoringS3AccessKeyId:n.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:n.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:n.MONITORING_S3_PREFIX,duckdbExtensionDirectory:n.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:n.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:n.DUCKDB_THREADS?Number(n.DUCKDB_THREADS):void 0,isCli:!0,noTui:t.noTui===!0,podName:n.POD_NAME??crypto.randomUUID(),dispatchRole:nT(n.STUDIO_DISPATCH_ROLE??n.MESH_DISPATCH_ROLE),sandboxProviderKind:mT(n.STUDIO_SANDBOX_PROVIDER),decoSupabaseUrl:n.DECO_SUPABASE_URL,decoSupabaseServiceKey:n.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:n.FIRECRAWL_API_KEY,reportsInternalApiUrl:n.REPORTS_INTERNAL_API_URL??n.COMMERCE_DISCOVERY_INTERNAL_API_URL,reportsInternalApiKey:n.REPORTS_INTERNAL_API_KEY??n.COMMERCE_DISCOVERY_INTERNAL_API_KEY,s3TenantBucket:n.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:n.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:n.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:n.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:n.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:n.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:n.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:ye(n.DATABASE_URL),externalNatsUrl:ye(a),skipMigrations:t.skipMigrations}}var Tt=null;function H(){if(!Tt)oT();return Tt}function oT(){if(Tt)return;let t={...process.env},n=Ce({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);Tt=Object.freeze({...n.settings,databaseUrl:t.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(t.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as fT,metrics as wT,propagation as ef,ROOT_CONTEXT as _f,SpanStatusCode as af,trace as KT}from"@opentelemetry/api";import{logs as cT,SeverityNumber as ji}from"@opentelemetry/api-logs";import{OTLPLogExporter as of}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as pT}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as Cf}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as Ef}from"@opentelemetry/instrumentation-runtime-node";import{context as lN,propagation as dN,SpanKind as bN,SpanStatusCode as tE}from"@opentelemetry/api";var uE=globalThis.fetch;import{ExportResultCode as EE}from"@opentelemetry/core";import{ExportResultCode as Ct}from"@opentelemetry/core";import{mkdir as yT,rename as TT,writeFile as CT}from"fs/promises";import{join as Nt}from"path";class Et{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 n=t.flushIntervalMs??60000;if(n>0&&n<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},n),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(t){if(this.isShutdown)return Promise.resolve({code:Ct.FAILED});for(let n of t){let u=JSON.stringify(n),_=this.partitionKey?this.partitionKey(n):"";this.bufferItems.push({partition:_,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Ct.SUCCESS})).catch((n)=>{return console.error("[NDJSONExporter] Flush failed:",n),{code:Ct.FAILED}});return Promise.resolve({code:Ct.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 n=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=n,n}async doFlush(){if(this.bufferItems.length===0)return;let t=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let n=new Map;for(let e of t){let a=n.get(e.partition);if(!a)a=[],n.set(e.partition,a);a.push(e.json)}let u=await Promise.allSettled(Array.from(n.entries()).map(([e,a])=>this.writeNDJSON(a,e).then(()=>e))),_=u.find((e)=>e.status==="rejected");if(_){let e=new Set;for(let m of u)if(m.status==="fulfilled")e.add(m.value);let a=t.filter((m)=>!e.has(m.partition));this.bufferItems=a.concat(this.bufferItems),this.bufferBytes=0;for(let m of this.bufferItems)this.bufferBytes+=Buffer.byteLength(m.json,"utf8")+1;throw _.reason}}async writeNDJSON(t,n){let u=new Date,_=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],e=n?Nt(this.basePath,n,..._):Nt(this.basePath,..._);if(!this.knownDirs.has(e))await yT(e,{recursive:!0,mode:448}),this.knownDirs.add(e);let a=`${crypto.randomUUID()}.ndjson`,m=Nt(e,`.${a}.tmp`),x=Nt(e,a),o=t.join(`
1057
1057
  `)+`
1058
- `;await CT(m,o,{mode:384}),await TT(m,x)}}import{ExportResultCode as pE}from"@opentelemetry/core";import{AggregationTemporality as PE,DataPointType as rE}from"@opentelemetry/sdk-metrics";import{ExportResultCode as RE}from"@opentelemetry/core";var XE=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as Uf,LoggerProvider as Df}from"@opentelemetry/sdk-logs";import{detectResources as Jf,envDetector as Lf,hostDetector as Rf,osDetector as Wf,processDetector as kf,resourceFromAttributes as $f}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as Qf}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as FE}from"@opentelemetry/api-logs";import{NodeSDK as Hf}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as Yf,SamplingDecision as M}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as AE}from"@opentelemetry/api";var zT="__d",PT=fT("Current request"),rT=1;var Ee=(t)=>{let u=new URL(t.url).searchParams.get(zT);if(u==="")return crypto.randomUUID();if(!u)u=t.headers.get("x-trace-debug-id");return u};class fe{inner;constructor(t){this.inner=t}shouldSample(t,n,u,_,e,a){let m=t.getValue(PT);if(!m){if(this.inner)return this.inner.shouldSample(t,n,u,_,e,a);return{decision:M.RECORD_AND_SAMPLED}}let x=Ee(m);if(x)return{decision:M.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":x}};if(this.inner){let o=this.inner.shouldSample(t,n,u,_,e,a);if(o.decision===M.RECORD_AND_SAMPLED){let y=crypto.randomUUID();o.attributes={...o.attributes??{},"trace.debug.id":y}}return o}return{decision:M.NOT_RECORD}}toString(){return"DebugSampler"}}class we{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:M.RECORD_AND_SAMPLED};return{decision:M.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var Af=new pT({preventServerStart:!0}),Bf=new fe(new we(rT));var Ne=KT.getTracer("studio","1.0.0"),s=wT.getMeter("studio","1.0.0"),UT=cT.getLogger("studio","1.0.0"),ji=(t,n,u)=>{let _={},e=u,a=u[u.length-1];if(a!==null&&typeof a==="object"&&!Array.isArray(a)&&!(a instanceof Error)&&Object.getPrototypeOf(a)===Object.prototype)_=a,e=u.slice(0,-1);let m=e.map((x)=>{if(x instanceof Error)return`${x.name}: ${x.message}`;if(typeof x==="object")try{return JSON.stringify(x)}catch{return"[Object]"}return String(x)}).join(" ");UT.emit({severityNumber:t,severityText:n,body:m,attributes:{"log.source":"console",..._}})},Ji={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{ji(Di.ERROR,"ERROR",t),Ji.error(...t)};console.warn=(...t)=>{ji(Di.WARN,"WARN",t),Ji.warn(...t)};console.debug=(...t)=>{ji(Di.DEBUG,"DEBUG",t),Ji.debug(...t)};var Li,Ke=0,Ri=500;function DT(){if(Li)return;let t=performance.now()+Ri;Li=setInterval(()=>{let n=performance.now();Ke=Math.max(0,n-t),t=n+Ri},Ri),Li.unref?.()}function ce(){return DT(),Ke}var JT=()=>s.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),pe=()=>s.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),ze=400,LT=100,RT=(t)=>(n)=>{let u={"db.statement":n.query.sql,"db.status":n.level==="error"?"error":"success"};if(n.queryDurationMillis>ze){let _=ce(),e=_>ze/2;console.error(e?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:n.queryDurationMillis,eventLoopLagMs:Math.round(_),sql:n.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:ft()}})}if(JT().record(n.queryDurationMillis,u),n.level==="error")console.error("Query failed:",{durationMs:n.queryDurationMillis,error:n.error,sql:n.query.sql})};function WT(t){let n=t.connect.bind(t);return t.connect=(u)=>{if(typeof u==="function")return n(u);let _=performance.now(),e=ft(),a=t.idleCount===0&&t.totalCount>=e,m=t.idleCount;return n().then((x)=>{let o=performance.now()-_;if(pe().record(o,{"db.pool.outcome":a?"contended":"available"}),o>LT)if(a)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:o,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:e});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:o,idleAtStart:m,total:t.totalCount,max:e});return x},(x)=>{throw pe().record(performance.now()-_,{"db.pool.outcome":"error"}),x})},t}var Ue={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function De(){try{return H().databasePgSsl}catch{return!1}}function ft(){try{return H().databasePoolMax}catch{return 10}}function kT(t){let n=WT(new re({connectionString:t,max:ft(),ssl:De(),...Ue})),u=new Pe({pool:n});return{type:"postgres",db:new jT({dialect:u,log:RT(n)}),pool:n}}function v(){return H().databaseUrl}function je(t){let n=t||v();return new Pe({pool:new re({connectionString:n,max:ft(),ssl:De(),...Ue})})}function $T(t){let n=t||v();return kT(n)}async function Je(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===V)V=null}var V=null;function Wi(){if(!V)V=$T(v());return V}async function Le(t){let u={database:je(t||v()),plugins:[ZT({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),FT(),HT(),MT(),AT(),hT({loginPage:"/login"}),QT(),YT({sendMagicLink:async()=>{}}),BT({sendVerificationOTP:async()=>{}})]},{toBeAdded:_,toBeCreated:e,runMigrations:a}=await XT(u);if(!_.length&&!e.length)return"up to date";return await a(),`${e.length+_.length} table(s) migrated`}async function We(t,n){return(await Y`
1058
+ `;await CT(m,o,{mode:384}),await TT(m,x)}}import{ExportResultCode as pE}from"@opentelemetry/core";import{AggregationTemporality as PE,DataPointType as rE}from"@opentelemetry/sdk-metrics";import{ExportResultCode as RE}from"@opentelemetry/core";var XE=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as Uf,LoggerProvider as jf}from"@opentelemetry/sdk-logs";import{detectResources as Jf,envDetector as Lf,hostDetector as Rf,osDetector as Wf,processDetector as kf,resourceFromAttributes as $f}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as Qf}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as FE}from"@opentelemetry/api-logs";import{NodeSDK as Hf}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as Yf,SamplingDecision as M}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as AE}from"@opentelemetry/api";var zT="__d",PT=fT("Current request"),rT=1;var Ee=(t)=>{let u=new URL(t.url).searchParams.get(zT);if(u==="")return crypto.randomUUID();if(!u)u=t.headers.get("x-trace-debug-id");return u};class fe{inner;constructor(t){this.inner=t}shouldSample(t,n,u,_,e,a){let m=t.getValue(PT);if(!m){if(this.inner)return this.inner.shouldSample(t,n,u,_,e,a);return{decision:M.RECORD_AND_SAMPLED}}let x=Ee(m);if(x)return{decision:M.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":x}};if(this.inner){let o=this.inner.shouldSample(t,n,u,_,e,a);if(o.decision===M.RECORD_AND_SAMPLED){let y=crypto.randomUUID();o.attributes={...o.attributes??{},"trace.debug.id":y}}return o}return{decision:M.NOT_RECORD}}toString(){return"DebugSampler"}}class we{ratio;constructor(t){this.ratio=t}shouldSample(){if(Math.random()<this.ratio)return{decision:M.RECORD_AND_SAMPLED};return{decision:M.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var Af=new pT({preventServerStart:!0}),Bf=new fe(new we(rT));var Ne=KT.getTracer("studio","1.0.0"),s=wT.getMeter("studio","1.0.0"),UT=cT.getLogger("studio","1.0.0"),Di=(t,n,u)=>{let _={},e=u,a=u[u.length-1];if(a!==null&&typeof a==="object"&&!Array.isArray(a)&&!(a instanceof Error)&&Object.getPrototypeOf(a)===Object.prototype)_=a,e=u.slice(0,-1);let m=e.map((x)=>{if(x instanceof Error)return`${x.name}: ${x.message}`;if(typeof x==="object")try{return JSON.stringify(x)}catch{return"[Object]"}return String(x)}).join(" ");UT.emit({severityNumber:t,severityText:n,body:m,attributes:{"log.source":"console",..._}})},Ji={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(...t)=>{Di(ji.ERROR,"ERROR",t),Ji.error(...t)};console.warn=(...t)=>{Di(ji.WARN,"WARN",t),Ji.warn(...t)};console.debug=(...t)=>{Di(ji.DEBUG,"DEBUG",t),Ji.debug(...t)};var Li,Ke=0,Ri=500;function jT(){if(Li)return;let t=performance.now()+Ri;Li=setInterval(()=>{let n=performance.now();Ke=Math.max(0,n-t),t=n+Ri},Ri),Li.unref?.()}function ce(){return jT(),Ke}var JT=()=>s.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),pe=()=>s.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),ze=400,LT=100,RT=(t)=>(n)=>{let u={"db.statement":n.query.sql,"db.status":n.level==="error"?"error":"success"};if(n.queryDurationMillis>ze){let _=ce(),e=_>ze/2;console.error(e?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:n.queryDurationMillis,eventLoopLagMs:Math.round(_),sql:n.query.sql,pool:{total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:ft()}})}if(JT().record(n.queryDurationMillis,u),n.level==="error")console.error("Query failed:",{durationMs:n.queryDurationMillis,error:n.error,sql:n.query.sql})};function WT(t){let n=t.connect.bind(t);return t.connect=(u)=>{if(typeof u==="function")return n(u);let _=performance.now(),e=ft(),a=t.idleCount===0&&t.totalCount>=e,m=t.idleCount;return n().then((x)=>{let o=performance.now()-_;if(pe().record(o,{"db.pool.outcome":a?"contended":"available"}),o>LT)if(a)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:o,total:t.totalCount,idle:t.idleCount,waiting:t.waitingCount,max:e});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:o,idleAtStart:m,total:t.totalCount,max:e});return x},(x)=>{throw pe().record(performance.now()-_,{"db.pool.outcome":"error"}),x})},t}var Ue={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function je(){try{return H().databasePgSsl}catch{return!1}}function ft(){try{return H().databasePoolMax}catch{return 10}}function kT(t){let n=WT(new re({connectionString:t,max:ft(),ssl:je(),...Ue})),u=new Pe({pool:n});return{type:"postgres",db:new DT({dialect:u,log:RT(n)}),pool:n}}function v(){return H().databaseUrl}function De(t){let n=t||v();return new Pe({pool:new re({connectionString:n,max:ft(),ssl:je(),...Ue})})}function $T(t){let n=t||v();return kT(n)}async function Je(t){if(await t.db.destroy(),!t.pool.ended)await t.pool.end();if(t===V)V=null}var V=null;function Wi(){if(!V)V=$T(v());return V}async function Le(t){let u={database:De(t||v()),plugins:[ZT({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),FT(),HT(),MT(),AT(),hT({loginPage:"/login"}),QT(),YT({sendMagicLink:async()=>{}}),BT({sendVerificationOTP:async()=>{}})]},{toBeAdded:_,toBeCreated:e,runMigrations:a}=await XT(u);if(!_.length&&!e.length)return"up to date";return await a(),`${e.length+_.length} table(s) migrated`}async function We(t,n){return(await Y`
1059
1059
  SELECT table_name FROM information_schema.tables
1060
1060
  WHERE table_schema='public' AND table_name=${n}
1061
1061
  `.execute(t)).rows.length>0}async function ST(t){if(await We(t,"plugin_migrations"))return;await Y`