decocms 4.296.0 → 4.297.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/client/assets/{AlertCircle-CZfBGU8B.js → AlertCircle-DY4yhb2X.js} +1 -1
  2. package/dist/client/assets/{AreaChart-B3LpRrng.js → AreaChart-C-KHttTq.js} +1 -1
  3. package/dist/client/assets/{ArrowLeft-COLaH0_w.js → ArrowLeft-B3vuQTWv.js} +1 -1
  4. package/dist/client/assets/{ArrowUp-BIcIuQ1H.js → ArrowUp-CM5UOn_a.js} +1 -1
  5. package/dist/client/assets/{Check-fe47cxjW.js → Check-CF9DIWQP.js} +1 -1
  6. package/dist/client/assets/{CheckCircle-CgDIjBhL.js → CheckCircle-D9cA4CRE.js} +1 -1
  7. package/dist/client/assets/{ChevronDown-BnQY-Z0V.js → ChevronDown-NRfAjDFt.js} +1 -1
  8. package/dist/client/assets/{ChevronRight-CVuEM_PN.js → ChevronRight-zY0tv5tH.js} +1 -1
  9. package/dist/client/assets/{ChevronSelectorVertical-N3Pe3a6s.js → ChevronSelectorVertical-CvV8YHo5.js} +1 -1
  10. package/dist/client/assets/{ChevronUp-Bmhjc6Eb.js → ChevronUp-BEeHTdjo.js} +1 -1
  11. package/dist/client/assets/{Copy01-BXq8n9B8.js → Copy01-BM9IdzWT.js} +1 -1
  12. package/dist/client/assets/{CreditCard01-NAFBEp2T.js → CreditCard01-B3e06gev.js} +1 -1
  13. package/dist/client/assets/{DotsVertical-DK8reE6R.js → DotsVertical-CuA6Fl_H.js} +1 -1
  14. package/dist/client/assets/{Download01-DudIDEP2.js → Download01-BO7sVKdD.js} +1 -1
  15. package/dist/client/assets/{Eye-5cE72aDf.js → Eye-BjohGFzX.js} +1 -1
  16. package/dist/client/assets/{FilterLines-NrcAmNg8.js → FilterLines-CIfwktUX.js} +1 -1
  17. package/dist/client/assets/{Globe01-CXfqxejf.js → Globe01-BUTTkMS6.js} +1 -1
  18. package/dist/client/assets/{Globe04-DrlnhQld.js → Globe04-BdFdZfV1.js} +1 -1
  19. package/dist/client/assets/{HardDrive-WkZZ_dZq.js → HardDrive-Cqyc-RP4.js} +1 -1
  20. package/dist/client/assets/{Key01-fg9movk6.js → Key01-BNjag4Hx.js} +1 -1
  21. package/dist/client/assets/{LinkExternal01-C8r0pJO9.js → LinkExternal01-BqULaO7U.js} +1 -1
  22. package/dist/client/assets/{LockUnlocked01-gqxPJMbq.js → LockUnlocked01-x6FCZL3F.js} +1 -1
  23. package/dist/client/assets/{LogOut01-XzhZ2YzD.js → LogOut01-DhedSoCW.js} +1 -1
  24. package/dist/client/assets/{Monitor01-D2Z-psgb.js → Monitor01-DcEc8TIU.js} +1 -1
  25. package/dist/client/assets/{Palette-BCBcWlJl.js → Palette-AovRBald.js} +1 -1
  26. package/dist/client/assets/{Play-YT-3iby-.js → Play-DLpWLBaz.js} +1 -1
  27. package/dist/client/assets/{Plus-BtQxkwsq.js → Plus-puCvfSwE.js} +1 -1
  28. package/dist/client/assets/{SearchLg-BTZf8k2O.js → SearchLg-yBDEQJKb.js} +1 -1
  29. package/dist/client/assets/{SearchMd-DzH739Y1.js → SearchMd-BO5ynStl.js} +1 -1
  30. package/dist/client/assets/{Settings02-B_QXxgxh.js → Settings02-Cpfa5_3X.js} +1 -1
  31. package/dist/client/assets/{Share07-CGNsCcb1.js → Share07-IZEk11Tl.js} +1 -1
  32. package/dist/client/assets/{Shield01-Dts7Y-tk.js → Shield01-Cpvr7Goq.js} +1 -1
  33. package/dist/client/assets/{Stars01-BrVr4qbN.js → Stars01-C1C7OD8t.js} +1 -1
  34. package/dist/client/assets/{Stars02-BQ9feLPQ.js → Stars02-BBuPcHQd.js} +1 -1
  35. package/dist/client/assets/{Sun-B8FV-cIf.js → Sun-DMI9wAna.js} +1 -1
  36. package/dist/client/assets/{SwitchHorizontal01-D6EyhTK2.js → SwitchHorizontal01-BwPd3a-K.js} +1 -1
  37. package/dist/client/assets/{Tool01-gcu5nGou.js → Tool01-1LcuYc1j.js} +1 -1
  38. package/dist/client/assets/{Tool02-DBiec0Vb.js → Tool02-CMg0T1zc.js} +1 -1
  39. package/dist/client/assets/{Trash01-BNQm6TEL.js → Trash01-C1kZac1x.js} +1 -1
  40. package/dist/client/assets/{TrendUp01-Ctqc2afD.js → TrendUp01-CdkOF9gf.js} +1 -1
  41. package/dist/client/assets/{Upload01-BIv_xGaQ.js → Upload01-DLq_ytHP.js} +1 -1
  42. package/dist/client/assets/{User01-D1SASah-.js → User01-Byq8_wCC.js} +1 -1
  43. package/dist/client/assets/{UserSquare-CMDdMSl8.js → UserSquare-DtoPkdJE.js} +1 -1
  44. package/dist/client/assets/{Users01-Cni-pD2k.js → Users01-CewFkN6M.js} +1 -1
  45. package/dist/client/assets/{Users03-BsVkHK2-.js → Users03-B7qf6LQl.js} +1 -1
  46. package/dist/client/assets/{XCircle-BOYujaQm.js → XCircle-CHdIxUPG.js} +1 -1
  47. package/dist/client/assets/{XClose-BFCeDBRO.js → XClose-DCt94zuj.js} +1 -1
  48. package/dist/client/assets/{YAxis-DXg3Cozq.js → YAxis-Bko6jkV1.js} +1 -1
  49. package/dist/client/assets/{Zap-PoB7AWgX.js → Zap-61fViwM8.js} +1 -1
  50. package/dist/client/assets/{ZapSquare-BrRRz7w1.js → ZapSquare-CInGliPy.js} +1 -1
  51. package/dist/client/assets/{access-gate-83X4fsgl.js → access-gate-DlAaTUbz.js} +1 -1
  52. package/dist/client/assets/{agent-icon-CfsMdClO.js → agent-icon-BremhXL4.js} +1 -1
  53. package/dist/client/assets/{agents-list-DMhHBN_r.js → agents-list-qMUr4xLz.js} +1 -1
  54. package/dist/client/assets/{ai-providers-Cpn7hKRN.js → ai-providers-B7DFi-lK.js} +1 -1
  55. package/dist/client/assets/{alert-B4_QkfY_.js → alert-Czqzn1MJ.js} +1 -1
  56. package/dist/client/assets/{alert-dialog-ZV54OvBs.js → alert-dialog-BgwLHGxe.js} +1 -1
  57. package/dist/client/assets/{api-keys-BKgx_aXh.js → api-keys-Cws0y9fo.js} +1 -1
  58. package/dist/client/assets/{app-editor-DLs3Pn4x.js → app-editor-poLiztRm.js} +1 -1
  59. package/dist/client/assets/{auth-djTlgbPf.js → auth-C325UYEn.js} +1 -1
  60. package/dist/client/assets/{auth-catchall-BH507XoT.js → auth-catchall-CR2jpfU7.js} +1 -1
  61. package/dist/client/assets/{auth-entry-fl81cB4d.js → auth-entry-C_erjFKd.js} +1 -1
  62. package/dist/client/assets/{auth-split-layout-CgR_nVCl.js → auth-split-layout-B07cMCFz.js} +1 -1
  63. package/dist/client/assets/{authenticate-and-persist-oauth-B-A5xJOl.js → authenticate-and-persist-oauth-BVsGRy2f.js} +1 -1
  64. package/dist/client/assets/{automation-list-row-XS7q49Mj.js → automation-list-row-D3Q3CvSp.js} +1 -1
  65. package/dist/client/assets/{automation-runs-Byj31EjG.js → automation-runs-CXXmRUU2.js} +1 -1
  66. package/dist/client/assets/{automations-DVDyjTTt.js → automations-DDV3NiX8.js} +1 -1
  67. package/dist/client/assets/{avatar-Cu_gc7fn.js → avatar-C9Jm6ev7.js} +1 -1
  68. package/dist/client/assets/{badge-CeSW-dVP.js → badge-DAkD25ol.js} +1 -1
  69. package/dist/client/assets/{block-document-B93-taWe.js → block-document-CJsNYF9w.js} +1 -1
  70. package/dist/client/assets/{breadcrumb-C-B2My4I.js → breadcrumb-CbNJbtul.js} +1 -1
  71. package/dist/client/assets/{buckets-Da-qIALi.js → buckets-DSnCvDSa.js} +1 -1
  72. package/dist/client/assets/{bulk-category-panel-vZ5JEGyd.js → bulk-category-panel-BhjOMCX9.js} +1 -1
  73. package/dist/client/assets/{capability-load-error-Dc0LXt6J.js → capability-load-error-DmfpYmTm.js} +1 -1
  74. package/dist/client/assets/{cards-CcxkRf9y.js → cards-DXBFSNjv.js} +1 -1
  75. package/dist/client/assets/{category-editor-D8cJA3RJ.js → category-editor-C8xQp33W.js} +1 -1
  76. package/dist/client/assets/{chart-OXfOtO0w.js → chart-BN0_mhrq.js} +1 -1
  77. package/dist/client/assets/{chat-context-DwAiqrDV.js → chat-context-maahktTE.js} +1 -1
  78. package/dist/client/assets/{checkbox-BV_g39Kt.js → checkbox-BPxAEI4l.js} +1 -1
  79. package/dist/client/assets/{choose-editor-BKR4goa7.js → choose-editor-Bgym-F0n.js} +1 -1
  80. package/dist/client/assets/{cli-auth-success-CfMIefBt.js → cli-auth-success-DxqHQnCr.js} +1 -1
  81. package/dist/client/assets/{collection-detail-kcYHPXGB.js → collection-detail-XC5yOs6r.js} +1 -1
  82. package/dist/client/assets/{collection-display-button-CgTodUvF.js → collection-display-button-ChvTE9MH.js} +1 -1
  83. package/dist/client/assets/{collection-search-CzPhdreX.js → collection-search-DGkc92q1.js} +1 -1
  84. package/dist/client/assets/{collection-table-wrapper-BPt17xzw.js → collection-table-wrapper-D5uHjtB-.js} +1 -1
  85. package/dist/client/assets/{collection-tabs-CwviE7z9.js → collection-tabs-CymmXV6F.js} +1 -1
  86. package/dist/client/assets/{command-CZSmPjZ0.js → command-VvW1D-E-.js} +1 -1
  87. package/dist/client/assets/{commerce-onboarding-BZtvpyPO.js → commerce-onboarding-BAoFDaKE.js} +1 -1
  88. package/dist/client/assets/{config-DxmQOjjU.js → config-X0puGZG3.js} +1 -1
  89. package/dist/client/assets/{connect-m1m3oS-g.js → connect-B-bEFjSx.js} +1 -1
  90. package/dist/client/assets/{connection-DGq-SITE.js → connection-CnD6s0_a.js} +1 -1
  91. package/dist/client/assets/{connection-card-CsXPS235.js → connection-card-QRRDXh9i.js} +1 -1
  92. package/dist/client/assets/{connection-detail-B8br4N_3.js → connection-detail-DRDgBMyG.js} +1 -1
  93. package/dist/client/assets/{connection-form-helpers-i5U1qhKh.js → connection-form-helpers-DmElzcRm.js} +1 -1
  94. package/dist/client/assets/{connections-O3dWSIq7.js → connections-C7ViQNfN.js} +1 -1
  95. package/dist/client/assets/{decopilot-sse-pool-Lta7qPGg.js → decopilot-sse-pool-DE6bnpVF.js} +1 -1
  96. package/dist/client/assets/{dialog-CFv8OG8h.js → dialog-DrWzPy4q.js} +1 -1
  97. package/dist/client/assets/{domain-settings-Ddk07V1v.js → domain-settings-CP5wVZXG.js} +1 -1
  98. package/dist/client/assets/{drawer-Du2jTn0w.js → drawer-CI6llX4s.js} +1 -1
  99. package/dist/client/assets/{dropdown-menu-DJn1P5Nx.js → dropdown-menu-D3mKjCrK.js} +1 -1
  100. package/dist/client/assets/{empty-state-DvcdAIGy.js → empty-state-BxJOYP0r.js} +1 -1
  101. package/dist/client/assets/{extract-connection-data-Ss0XB7Qd.js → extract-connection-data-D7Ymj5w2.js} +1 -1
  102. package/dist/client/assets/{file-explorer-B95SymYB.js → file-explorer-BBzJUVoZ.js} +1 -1
  103. package/dist/client/assets/{file-type-icon-C7UcH4op.js → file-type-icon-CUSMa-8B.js} +1 -1
  104. package/dist/client/assets/{form-TZAhpjP3.js → form-CharXNoQ.js} +1 -1
  105. package/dist/client/assets/{general-BkK3qavh.js → general-DBdEFDkC.js} +1 -1
  106. package/dist/client/assets/{github-repo-picker-unWaoDXV.js → github-repo-picker-BNBZhBsB.js} +1 -1
  107. package/dist/client/assets/{hooks-BMtSYZ0v.js → hooks-CLEQArwj.js} +1 -1
  108. package/dist/client/assets/{index-9TSwxL88.js → index-AjrR_hy3.js} +1 -1
  109. package/dist/client/assets/{index-BBXhycgg.js → index-B-FPuiEV.js} +1 -1
  110. package/dist/client/assets/{index-BbthLk-e.js → index-Bovl5wjA.js} +1 -1
  111. package/dist/client/assets/{index-BUZivOFP.js → index-CNRz6jnx.js} +1 -1
  112. package/dist/client/assets/{index-UCluqlYY.js → index-CZfyZWN5.js} +1 -1
  113. package/dist/client/assets/{index-zAeDJLLC.js → index-CaFP1kAP.js} +1 -1
  114. package/dist/client/assets/{index-DwBRo20n.js → index-Cf2hVaZA.js} +6 -6
  115. package/dist/client/assets/{index-CYXl_NEk.js → index-DJ4TGYlE.js} +1 -1
  116. package/dist/client/assets/{index-20hYG_0b.js → index-DLd_PPzq.js} +3 -3
  117. package/dist/client/assets/{index-redirect-qQh-JjKG.js → index-redirect-BevY1QWB.js} +1 -1
  118. package/dist/client/assets/{infra-billing-Cmb-vuCd.js → infra-billing-DGw1N_p_.js} +1 -1
  119. package/dist/client/assets/{input-B9i-tN6J.js → input-B2x5A66w.js} +1 -1
  120. package/dist/client/assets/{integration-icon-B-mNoHVd.js → integration-icon-D2MsjN1y.js} +1 -1
  121. package/dist/client/assets/{invite-member-dialog-CwHpsrAi.js → invite-member-dialog-CQ9oFK8D.js} +1 -1
  122. package/dist/client/assets/{label-Cynt50Eb.js → label-CzO1Xm-j.js} +1 -1
  123. package/dist/client/assets/{layout-CUbOPXRl.js → layout-DKGN6cDK.js} +1 -1
  124. package/dist/client/assets/{login-0SicSnzZ.js → login-BmbsSDNl.js} +1 -1
  125. package/dist/client/assets/{mcp-oauth-emG93PuO.js → mcp-oauth-DxoF-Tb-.js} +1 -1
  126. package/dist/client/assets/{members-anBZPtbu.js → members-Cx6R1Zfo.js} +1 -1
  127. package/dist/client/assets/{monaco-editor-KQzbdzPC.js → monaco-editor-zcWOFvcF.js} +1 -1
  128. package/dist/client/assets/{monitoring-stats-row-BVCbHyhZ.js → monitoring-stats-row-C8fRLZJJ.js} +1 -1
  129. package/dist/client/assets/{multi-select-Br7nHX-x.js → multi-select-BvtOWKto.js} +1 -1
  130. package/dist/client/assets/{oauth-callback-ai-provider-DGAUORi1.js → oauth-callback-ai-provider-BDO0QXs6.js} +1 -1
  131. package/dist/client/assets/{oauth-callback-C0mNR2Ce.js → oauth-callback-e_QeD_Je.js} +1 -1
  132. package/dist/client/assets/{onboarding-BHLgzAAS.js → onboarding-c9uXxrn7.js} +1 -1
  133. package/dist/client/assets/{org-layout-Defnsyze.js → org-layout-CmfycfIf.js} +1 -1
  134. package/dist/client/assets/{organization-choice-Bzo2yDjV.js → organization-choice-B7zA-J0W.js} +1 -1
  135. package/dist/client/assets/{orgs-cCUFigSS.js → orgs-CzfnOIoO.js} +1 -1
  136. package/dist/client/assets/{page-seo-form-DvMzx12X.js → page-seo-form-BzE5IDHY.js} +1 -1
  137. package/dist/client/assets/{popover-B2i-RC00.js → popover-BSx7WFWI.js} +1 -1
  138. package/dist/client/assets/{post-calendar-fItDqPLv.js → post-calendar-B3uJiyD2.js} +1 -1
  139. package/dist/client/assets/{post-editor-BmhPC97o.js → post-editor-B66upBOl.js} +1 -1
  140. package/dist/client/assets/{primitives-DM9uMkae.js → primitives-efSxeF-v.js} +1 -1
  141. package/dist/client/assets/{profile-DrpQagO4.js → profile-BV8T5nT7.js} +1 -1
  142. package/dist/client/assets/{project-app-view-DL0Z1QjS.js → project-app-view-DswPocPS.js} +1 -1
  143. package/dist/client/assets/{prompts-CqeiLutr.js → prompts-kbmX8Lbv.js} +1 -1
  144. package/dist/client/assets/record-editor-bbOop5EZ.js +1 -0
  145. package/dist/client/assets/redirect-editor-BdMlpVlw.js +1 -0
  146. package/dist/client/assets/registry-BGjS5QS0.js +2 -0
  147. package/dist/client/assets/{registry-layout-D1VmxKlT.js → registry-layout-D1aabJGO.js} +1 -1
  148. package/dist/client/assets/{reports-B7oekoe6.js → reports-Dsc8lb0L.js} +1 -1
  149. package/dist/client/assets/{require-capability-CGy0Iptk.js → require-capability-DllXYhGQ.js} +1 -1
  150. package/dist/client/assets/{required-auth-layout-Dr75unuO.js → required-auth-layout-CKd6wL53.js} +1 -1
  151. package/dist/client/assets/{reset-password-BxZMUV3b.js → reset-password-IDahqCh-.js} +1 -1
  152. package/dist/client/assets/{review-settings-DXRV0BsH.js → review-settings-Bafy7nSY.js} +1 -1
  153. package/dist/client/assets/{roles-FXEm6yBy.js → roles-CoYUWR-A.js} +1 -1
  154. package/dist/client/assets/{scroll-area-CHUlS7BV.js → scroll-area-O8w7gGme.js} +1 -1
  155. package/dist/client/assets/{search-input-zJbk_pJL.js → search-input-PUWYzKIy.js} +1 -1
  156. package/dist/client/assets/{secrets-BsNBmM8-.js → secrets-VFEJ_tPq.js} +1 -1
  157. package/dist/client/assets/{sections-editor-PfUVMP4z.js → sections-editor-B1cAA2G5.js} +1 -1
  158. package/dist/client/assets/{select-BArF_ZRn.js → select-C--Qny2d.js} +1 -1
  159. package/dist/client/assets/{select-model-Bfj448kp.js → select-model-BsoYyJX9.js} +1 -1
  160. package/dist/client/assets/{self-tool-result-Cy0Ef-1E.js → self-tool-result-CRaomkhs.js} +1 -1
  161. package/dist/client/assets/{seo-editor-BCS447KS.js → seo-editor-B-osqSfS.js} +1 -1
  162. package/dist/client/assets/{settings-layout-C_j6vU-l.js → settings-layout-Dx3zWYLa.js} +1 -1
  163. package/dist/client/assets/{shell-controls-Bd2fGP3g.js → shell-controls-_dm1Gdpn.js} +1 -1
  164. package/dist/client/assets/{shell-layout-CYBwVXmq.js → shell-layout-DiOI30mQ.js} +1 -1
  165. package/dist/client/assets/{spinner-BzEza_nr.js → spinner-BlvK0dLC.js} +1 -1
  166. package/dist/client/assets/{sso-CJNq3kOo.js → sso-CYLeRWow.js} +1 -1
  167. package/dist/client/assets/{store-ePlGWNTd.js → store-DivWManF.js} +1 -1
  168. package/dist/client/assets/store-registry-Cp6R1a_R.js +2 -0
  169. package/dist/client/assets/{super-agent-icon-BgsMVyAb.js → super-agent-icon-DBQhg1aH.js} +1 -1
  170. package/dist/client/assets/{switch-FTgOBCpo.js → switch-DbcBfDTL.js} +1 -1
  171. package/dist/client/assets/{synced-repos-DKaVFdzW.js → synced-repos-Cw35K8TM.js} +1 -1
  172. package/dist/client/assets/{table-efVESZLW.js → table-BiOelfz1.js} +1 -1
  173. package/dist/client/assets/{tabs-DObxbnT1.js → tabs-WKXjMcND.js} +1 -1
  174. package/dist/client/assets/task-board-B998G0YM.js +1 -0
  175. package/dist/client/assets/{tasks-PS3qh1E9.js → tasks-Bxn4sxX1.js} +1 -1
  176. package/dist/client/assets/{textarea-ClPOROdp.js → textarea--bTdOZ8-.js} +1 -1
  177. package/dist/client/assets/{toggle-group-B4KyreRg.js → toggle-group-B9IT3Ejm.js} +1 -1
  178. package/dist/client/assets/{toolbar-VKXK1J6w.js → toolbar-5qzrRBnN.js} +1 -1
  179. package/dist/client/assets/{track-Ct9Uf5s6.js → track-gmxs6li0.js} +1 -1
  180. package/dist/client/assets/{types-BREutt3h.js → types-CzxSR9Nj.js} +1 -1
  181. package/dist/client/assets/{use-ai-providers-rgfPEE06.js → use-ai-providers-ws3AiNGB.js} +1 -1
  182. package/dist/client/assets/{use-api-keys-Ig-R5zp2.js → use-api-keys-D1m-54TA.js} +1 -1
  183. package/dist/client/assets/{use-automations-BxfFrje_.js → use-automations-6jRSgwOf.js} +1 -1
  184. package/dist/client/assets/{use-autosave-CY9bUilA.js → use-autosave-DNtz-ayV.js} +1 -1
  185. package/dist/client/assets/{use-connection-DNt4mM2_.js → use-connection-CrvSnoMf.js} +1 -1
  186. package/dist/client/assets/{use-copy-Be8Z9bn5.js → use-copy-CHKWM-cY.js} +1 -1
  187. package/dist/client/assets/{use-create-virtual-mcp-aOdBEfFS.js → use-create-virtual-mcp-mnKhn0vE.js} +1 -1
  188. package/dist/client/assets/{use-debounced-autosave-DlXCfl6A.js → use-debounced-autosave-BPk5Tidy.js} +1 -1
  189. package/dist/client/assets/{use-debounced-value-Ddi_tBrI.js → use-debounced-value-BN1lRohi.js} +1 -1
  190. package/dist/client/assets/{use-decopilot-events-CkL2HEKi.js → use-decopilot-events-DJyhkSYU.js} +1 -1
  191. package/dist/client/assets/{use-delete-connection-BSNnQTiz.js → use-delete-connection-q-_ABnvU.js} +1 -1
  192. package/dist/client/assets/{use-deployment-admin-kG9OtIO4.js → use-deployment-admin-DgwNJVPJ.js} +1 -1
  193. package/dist/client/assets/{use-destination-route-D3DCRthe.js → use-destination-route-BwTz91qS.js} +1 -1
  194. package/dist/client/assets/{use-file-configs-SeZ0l5qE.js → use-file-configs-BK4bs9nK.js} +1 -1
  195. package/dist/client/assets/{use-infinite-scroll-0UWAcN9g.js → use-infinite-scroll-C2JsvEtT.js} +1 -1
  196. package/dist/client/assets/{use-join-requests-B5BBP7I4.js → use-join-requests-BpLHnqmb.js} +1 -1
  197. package/dist/client/assets/{use-mcp-auth-status-w6BMAXFw.js → use-mcp-auth-status-CqyzZ0WL.js} +1 -1
  198. package/dist/client/assets/{use-mcp-client-CvtL5U7z.js → use-mcp-client-CX1Ejcam.js} +1 -1
  199. package/dist/client/assets/{use-mcp-tools-B7K1t_gk.js → use-mcp-tools-cMeG8deR.js} +1 -1
  200. package/dist/client/assets/{use-members-rkquxKZs.js → use-members-CO3Tmtd9.js} +1 -1
  201. package/dist/client/assets/{use-navigate-to-agent-CliJIvrn.js → use-navigate-to-agent-orFJlnng.js} +1 -1
  202. package/dist/client/assets/{use-org-auth-client-trVxm4Jn.js → use-org-auth-client-DujueYIp.js} +1 -1
  203. package/dist/client/assets/{use-org-repo-syncs-BZwiHs-k.js → use-org-repo-syncs-DZ3WYIWE.js} +1 -1
  204. package/dist/client/assets/{use-org-sso-Doj3jJVb.js → use-org-sso-vo48poNe.js} +1 -1
  205. package/dist/client/assets/{use-organization-roles-CiFF335K.js → use-organization-roles-BInKN3-9.js} +1 -1
  206. package/dist/client/assets/{use-organization-settings-Dz2zPGai.js → use-organization-settings-CjOqICBp.js} +1 -1
  207. package/dist/client/assets/{use-panel-navigate-CuHf94Gb.js → use-panel-navigate-B8blpBGR.js} +1 -1
  208. package/dist/client/assets/{use-registry-connections-C-QLgWMs.js → use-registry-connections-Dhc1QaTy.js} +1 -1
  209. package/dist/client/assets/{use-secrets-ezYm6n4W.js → use-secrets-CUdEXa0U.js} +1 -1
  210. package/dist/client/assets/{use-section-preview-base-B5pmWcbq.js → use-section-preview-base-C7e340_s.js} +1 -1
  211. package/dist/client/assets/{use-status-sounds-BO_ChCBX.js → use-status-sounds-BhNbjERQ.js} +1 -1
  212. package/dist/client/assets/{use-tags-DMQzzWHX.js → use-tags-Ba6NmpQU.js} +1 -1
  213. package/dist/client/assets/{use-view-mode-CuVV9Jxq.js → use-view-mode-BxcOm-RP.js} +1 -1
  214. package/dist/client/assets/{use-virtual-mcp-Gfh3s5CM.js → use-virtual-mcp-xk1y7cd_.js} +1 -1
  215. package/dist/client/assets/useInfiniteQuery-C0h_Ahlt.js +1 -0
  216. package/dist/client/assets/useSuspenseInfiniteQuery-DPBUK0Tq.js +1 -0
  217. package/dist/client/assets/{users-BXGt8UYN.js → users-BJHG7YTw.js} +1 -1
  218. package/dist/client/assets/{variant-calendar-BgOwzxyY.js → variant-calendar-B7TB90J7.js} +1 -1
  219. package/dist/client/assets/{view-mode-toggle-TXkSFkFO.js → view-mode-toggle-CKRUsxUy.js} +1 -1
  220. package/dist/client/index.html +1 -1
  221. package/dist/server/cli.js +486 -486
  222. package/dist/server/migrate.js +124 -124
  223. package/dist/server/server.js +338 -338
  224. package/package.json +1 -1
  225. package/dist/client/assets/record-editor-8XYo6qoZ.js +0 -1
  226. package/dist/client/assets/redirect-editor-zlCJ_G1a.js +0 -1
  227. package/dist/client/assets/registry-90Xvkilb.js +0 -2
  228. package/dist/client/assets/store-registry-DUglVxzH.js +0 -2
  229. package/dist/client/assets/task-board-DfrTfUI2.js +0 -1
  230. package/dist/client/assets/useInfiniteQuery-DMOKbTb9.js +0 -1
  231. package/dist/client/assets/useSuspenseInfiniteQuery-BLZ-xHHV.js +0 -1
@@ -1,17 +1,17 @@
1
1
  // @bun
2
- var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null,x)}var m=(_,x)=>{for(var u in x)bT(_,u,{get:x[u],enumerable:!0,configurable:!0,set:xC.bind(x,u)})};import{Migrator as lT,sql as g}from"kysely";var B_={};m(B_,{up:()=>uC,down:()=>mC});import{sql as Q}from"kysely";async function uC(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function mC(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var G_={};m(G_,{up:()=>nC,down:()=>TC});import{sql as pn}from"kysely";async function nC(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(pn`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(pn`CURRENT_TIMESTAMP`)).execute()}async function TC(_){await _.schema.dropTable("organization_settings").execute()}var O_={};m(O_,{up:()=>CC,down:()=>NC});async function CC(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function NC(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var A_={};m(A_,{up:()=>KC,down:()=>EC});async function KC(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function EC(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var w_={};m(w_,{up:()=>tC,down:()=>zC});async function tC(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function zC(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var S_={};m(S_,{up:()=>yC,down:()=>UC});import{sql as PC}from"kysely";async function yC(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",PC`text`).execute()}async function UC(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var I_={};m(I_,{up:()=>JC,down:()=>$C});async function JC(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function $C(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var i_={};m(i_,{up:()=>jC,down:()=>WC});import{sql as c}from"kysely";async function jC(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function WC(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var k_={};m(k_,{up:()=>ZC,down:()=>QC});import{sql as XC}from"kysely";async function ZC(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function QC(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(XC`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var p_={};m(p_,{up:()=>DC,down:()=>LC});import{sql as n_}from"kysely";async function DC(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await n_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function LC(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var V_={};m(V_,{up:()=>RC,down:()=>FC});async function RC(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function FC(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var v_={};m(v_,{up:()=>HC,down:()=>YC});import{sql as T_}from"kysely";async function HC(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await T_`
2
+ var xC=Object.defineProperty;var uC=(_)=>_;function mC(_,x){this[_]=uC.bind(null,x)}var m=(_,x)=>{for(var u in x)xC(_,u,{get:x[u],enumerable:!0,configurable:!0,set:mC.bind(x,u)})};import{Migrator as bT,sql as g}from"kysely";var f_={};m(f_,{up:()=>nC,down:()=>TC});import{sql as Q}from"kysely";async function nC(_){await _.schema.createTable("connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("createdById","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("icon","text").addColumn("appName","text").addColumn("appId","text").addColumn("connectionType","text",(x)=>x.notNull()).addColumn("connectionUrl","text",(x)=>x.notNull()).addColumn("connectionToken","text").addColumn("connectionHeaders","text").addColumn("oauthConfig","text").addColumn("metadata","text").addColumn("tools","text").addColumn("bindings","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("api_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("hashedKey","text",(x)=>x.notNull().unique()).addColumn("permissions","text",(x)=>x.notNull()).addColumn("expiresAt","text").addColumn("remaining","integer").addColumn("metadata","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("audit_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createTable("oauth_clients").addColumn("id","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().unique()).addColumn("clientSecret","text").addColumn("clientName","text",(x)=>x.notNull()).addColumn("redirectUris","text",(x)=>x.notNull()).addColumn("grantTypes","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("clientUri","text").addColumn("logoUri","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_authorization_codes").addColumn("code","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("redirectUri","text",(x)=>x.notNull()).addColumn("scope","text").addColumn("codeChallenge","text").addColumn("codeChallengeMethod","text").addColumn("expiresAt","text",(x)=>x.notNull()).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("oauth_refresh_tokens").addColumn("token","text",(x)=>x.primaryKey()).addColumn("clientId","text",(x)=>x.notNull().references("oauth_clients.clientId").onDelete("cascade")).addColumn("userId","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("downstream_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("connectionId","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("userId","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("accessToken","text",(x)=>x.notNull()).addColumn("refreshToken","text").addColumn("scope","text").addColumn("expiresAt","text").addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Q`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connections_organizationId").on("connections").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}async function TC(_){await _.schema.dropTable("downstream_tokens").execute(),await _.schema.dropTable("oauth_refresh_tokens").execute(),await _.schema.dropTable("oauth_authorization_codes").execute(),await _.schema.dropTable("oauth_clients").execute(),await _.schema.dropTable("audit_logs").execute(),await _.schema.dropTable("api_keys").execute(),await _.schema.dropTable("connections").execute()}var G_={};m(G_,{up:()=>CC,down:()=>NC});import{sql as Vn}from"kysely";async function CC(_){await _.schema.createTable("organization_settings").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull().defaultTo(Vn`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(Vn`CURRENT_TIMESTAMP`)).execute()}async function NC(_){await _.schema.dropTable("organization_settings").execute()}var O_={};m(O_,{up:()=>KC,down:()=>EC});async function KC(_){await _.schema.alterTable("connections").renameColumn("name","title").execute(),await _.schema.alterTable("connections").renameColumn("createdById","created_by").execute(),await _.schema.alterTable("connections").renameColumn("createdAt","created_at").execute(),await _.schema.alterTable("connections").renameColumn("updatedAt","updated_at").execute(),await _.schema.alterTable("connections").renameColumn("organizationId","organization_id").execute(),await _.schema.alterTable("connections").renameColumn("connectionType","connection_type").execute(),await _.schema.alterTable("connections").renameColumn("connectionUrl","connection_url").execute(),await _.schema.alterTable("connections").renameColumn("connectionToken","connection_token").execute(),await _.schema.alterTable("connections").renameColumn("connectionHeaders","connection_headers").execute(),await _.schema.alterTable("connections").renameColumn("oauthConfig","oauth_config").execute(),await _.schema.alterTable("connections").renameColumn("appName","app_name").execute(),await _.schema.alterTable("connections").renameColumn("appId","app_id").execute()}async function EC(_){await _.schema.alterTable("connections").renameColumn("title","name").execute(),await _.schema.alterTable("connections").renameColumn("created_by","createdById").execute(),await _.schema.alterTable("connections").renameColumn("created_at","createdAt").execute(),await _.schema.alterTable("connections").renameColumn("updated_at","updatedAt").execute(),await _.schema.alterTable("connections").renameColumn("organization_id","organizationId").execute(),await _.schema.alterTable("connections").renameColumn("connection_type","connectionType").execute(),await _.schema.alterTable("connections").renameColumn("connection_url","connectionUrl").execute(),await _.schema.alterTable("connections").renameColumn("connection_token","connectionToken").execute(),await _.schema.alterTable("connections").renameColumn("connection_headers","connectionHeaders").execute(),await _.schema.alterTable("connections").renameColumn("oauth_config","oauthConfig").execute(),await _.schema.alterTable("connections").renameColumn("app_name","appName").execute(),await _.schema.alterTable("connections").renameColumn("app_id","appId").execute()}var A_={};m(A_,{up:()=>zC,down:()=>tC});async function zC(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId","createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}async function tC(_){await _.schema.createTable("organization_settings_new").addColumn("organizationId","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("modelsBindingConnectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("createdAt","text",(x)=>x.notNull()).addColumn("updatedAt","text",(x)=>x.notNull()).execute(),await _.insertInto("organization_settings_new").columns(["organizationId","modelsBindingConnectionId","createdAt","updatedAt"]).expression((x)=>x.selectFrom("organization_settings").select(["organizationId",x.val(null).as("modelsBindingConnectionId"),"createdAt","updatedAt"])).execute(),await _.schema.dropTable("organization_settings").execute(),await _.schema.alterTable("organization_settings_new").renameTo("organization_settings").execute()}var I_={};m(I_,{up:()=>PC,down:()=>UC});async function PC(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function UC(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var S_={};m(S_,{up:()=>yC,down:()=>$C});import{sql as JC}from"kysely";async function yC(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",JC`text`).execute()}async function $C(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var w_={};m(w_,{up:()=>jC,down:()=>WC});async function jC(_){await _.schema.createTable("monitoring_logs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("connection_title","text",(x)=>x.notNull()).addColumn("tool_name","text",(x)=>x.notNull()).addColumn("input","text",(x)=>x.notNull()).addColumn("output","text",(x)=>x.notNull()).addColumn("is_error","integer",(x)=>x.notNull()).addColumn("error_message","text").addColumn("duration_ms","integer",(x)=>x.notNull()).addColumn("timestamp","text",(x)=>x.notNull()).addColumn("user_id","text").addColumn("request_id","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("monitoring_logs_org_timestamp").on("monitoring_logs").columns(["organization_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_connection_timestamp").on("monitoring_logs").columns(["connection_id","timestamp"]).execute(),await _.schema.createIndex("monitoring_logs_is_error").on("monitoring_logs").columns(["organization_id","is_error","timestamp"]).execute()}async function WC(_){await _.schema.dropIndex("monitoring_logs_is_error").execute(),await _.schema.dropIndex("monitoring_logs_connection_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_org_timestamp").execute(),await _.schema.dropTable("monitoring_logs").execute()}var i_={};m(i_,{up:()=>XC,down:()=>ZC});import{sql as c}from"kysely";async function XC(_){await _.schema.createTable("events").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("source","text",(x)=>x.notNull()).addColumn("specversion","text",(x)=>x.notNull().defaultTo("1.0")).addColumn("subject","text").addColumn("time","text",(x)=>x.notNull()).addColumn("datacontenttype","text",(x)=>x.notNull().defaultTo("application/json")).addColumn("dataschema","text").addColumn("data","text").addColumn("cron","varchar(255)").addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("publisher","text").addColumn("event_type","text",(x)=>x.notNull()).addColumn("filter","text").addColumn("enabled","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("event_deliveries").addColumn("id","text",(x)=>x.primaryKey()).addColumn("event_id","text",(x)=>x.notNull()).addColumn("subscription_id","text",(x)=>x.notNull().references("event_subscriptions.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_error","text").addColumn("delivered_at","text").addColumn("next_retry_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(c`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_events_org_status").on("events").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_events_source").on("events").columns(["source"]).execute(),await _.schema.createIndex("idx_events_type").on("events").columns(["type"]).execute(),await _.schema.createIndex("idx_events_retry").on("events").columns(["status","next_retry_at"]).execute(),await _.schema.createIndex("idx_subscriptions_connection").on("event_subscriptions").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_subscriptions_type").on("event_subscriptions").columns(["event_type"]).execute(),await _.schema.createIndex("idx_subscriptions_org_enabled").on("event_subscriptions").columns(["organization_id","enabled"]).execute(),await _.schema.createIndex("idx_subscriptions_unique").on("event_subscriptions").columns(["connection_id","event_type","publisher","filter"]).unique().execute(),await _.schema.createIndex("idx_deliveries_event").on("event_deliveries").columns(["event_id"]).execute(),await _.schema.createIndex("idx_deliveries_subscription_status").on("event_deliveries").columns(["subscription_id","status"]).execute(),await _.schema.createIndex("idx_deliveries_retry").on("event_deliveries").columns(["status","next_retry_at"]).execute()}async function ZC(_){await _.schema.dropIndex("idx_deliveries_retry").execute(),await _.schema.dropIndex("idx_deliveries_subscription_status").execute(),await _.schema.dropIndex("idx_deliveries_event").execute(),await _.schema.dropIndex("idx_subscriptions_unique").execute(),await _.schema.dropIndex("idx_subscriptions_org_enabled").execute(),await _.schema.dropIndex("idx_subscriptions_type").execute(),await _.schema.dropIndex("idx_subscriptions_connection").execute(),await _.schema.dropIndex("idx_events_retry").execute(),await _.schema.dropIndex("idx_events_type").execute(),await _.schema.dropIndex("idx_events_source").execute(),await _.schema.dropIndex("idx_events_org_status").execute(),await _.schema.dropTable("event_deliveries").execute(),await _.schema.dropTable("event_subscriptions").execute(),await _.schema.dropTable("events").execute()}var k_={};m(k_,{up:()=>DC,down:()=>LC});import{sql as QC}from"kysely";async function DC(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function LC(_){await _.schema.createTable("audit_logs").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organizationId","text").addColumn("userId","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("connectionId","text",(x)=>x.references("connections.id").onDelete("set null")).addColumn("toolName","text",(x)=>x.notNull()).addColumn("allowed","integer",(x)=>x.notNull()).addColumn("duration","integer").addColumn("timestamp","text",(x)=>x.notNull().defaultTo(QC`CURRENT_TIMESTAMP`)).addColumn("requestMetadata","text").execute(),await _.schema.createIndex("idx_audit_logs_organizationId").on("audit_logs").column("organizationId").execute(),await _.schema.createIndex("idx_audit_logs_userId").on("audit_logs").column("userId").execute(),await _.schema.createIndex("idx_audit_logs_timestamp").on("audit_logs").column("timestamp").execute()}var p_={};m(p_,{up:()=>FC,down:()=>RC});import{sql as n_}from"kysely";async function FC(_){await _.schema.createTable("gateways").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_strategy","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("gateway_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("gateway_id","text",(x)=>x.notNull().references("gateways.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(n_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await n_`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute()}async function RC(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_default_per_org").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropTable("gateway_connections").execute(),await _.schema.dropTable("gateways").execute()}var V_={};m(V_,{up:()=>HC,down:()=>YC});async function HC(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function YC(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var v_={};m(v_,{up:()=>MC,down:()=>BC});import{sql as T_}from"kysely";async function MC(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await T_`
3
3
  UPDATE gateways
4
4
  SET tool_selection_mode = CASE
5
5
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
6
6
  ELSE 'inclusion'
7
7
  END
8
- `.execute(_),await T_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function YC(_){await T_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await T_`
8
+ `.execute(_),await T_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _old_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute(),await _.schema.alterTable("gateways").dropColumn("_old_tool_selection_strategy").execute()}async function BC(_){await T_`ALTER TABLE gateways RENAME COLUMN tool_selection_strategy TO _new_tool_selection_strategy`.execute(_),await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text").execute(),await T_`
9
9
  UPDATE gateways
10
10
  SET tool_selection_strategy = CASE
11
11
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
12
12
  ELSE NULL
13
13
  END
14
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var q_={};m(q_,{up:()=>MC,down:()=>fC});async function MC(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function fC(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var g_={};m(g_,{up:()=>BC,down:()=>GC});async function BC(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function GC(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var c_={};m(c_,{up:()=>OC,down:()=>AC});async function OC(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function AC(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var h_={};m(h_,{up:()=>wC,down:()=>SC});async function wC(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function SC(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var o_={};m(o_,{up:()=>iC,down:()=>kC});import{sql as IC}from"kysely";async function iC(_){await IC`
14
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var q_={};m(q_,{up:()=>fC,down:()=>GC});async function fC(_){await _.schema.alterTable("monitoring_logs").addColumn("user_agent","text").execute(),await _.schema.alterTable("monitoring_logs").addColumn("gateway_id","text").execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}async function GC(_){await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("gateway_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("user_agent").execute()}var g_={};m(g_,{up:()=>OC,down:()=>AC});async function OC(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function AC(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var c_={};m(c_,{up:()=>IC,down:()=>SC});async function IC(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function SC(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var h_={};m(h_,{up:()=>wC,down:()=>iC});async function wC(_){await _.schema.alterTable("downstream_tokens").addColumn("clientId","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("clientSecret","text").execute(),await _.schema.alterTable("downstream_tokens").addColumn("tokenEndpoint","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}async function iC(_){await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("tokenEndpoint").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientSecret").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("clientId").execute()}var o_={};m(o_,{up:()=>pC,down:()=>VC});import{sql as kC}from"kysely";async function pC(_){await kC`
15
15
  DELETE FROM downstream_tokens
16
16
  WHERE id NOT IN (
17
17
  SELECT id FROM (
@@ -21,7 +21,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
21
21
  ) ranked
22
22
  WHERE rn = 1
23
23
  )
24
- `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function kC(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var a_={};m(a_,{up:()=>pC,down:()=>VC});async function pC(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function VC(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var r_={};m(r_,{up:()=>vC,down:()=>qC});import{sql as Vn}from"kysely";async function vC(_){await Vn`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function qC(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await Vn`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var e_={};m(e_,{up:()=>gC,down:()=>cC});async function gC(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function cC(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var s_={};m(s_,{up:()=>hC,down:()=>oC});import{sql as C_}from"kysely";async function hC(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function oC(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var l_={};m(l_,{up:()=>aC,down:()=>rC});async function aC(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function rC(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var d_={};m(d_,{up:()=>eC,down:()=>sC});async function eC(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function sC(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var b_={};m(b_,{up:()=>lC,down:()=>dC});import{sql as J}from"kysely";async function lC(_){await J`
24
+ `.execute(_),await _.schema.dropIndex("idx_downstream_tokens_connection_user").execute(),await _.schema.alterTable("downstream_tokens").dropColumn("userId").execute(),await _.schema.createIndex("idx_downstream_tokens_connection").on("downstream_tokens").column("connectionId").unique().execute()}async function VC(_){await _.schema.dropIndex("idx_downstream_tokens_connection").execute(),await _.schema.alterTable("downstream_tokens").addColumn("userId","text").execute(),await _.schema.createIndex("idx_downstream_tokens_connection_user").on("downstream_tokens").columns(["connectionId","userId"]).execute()}var a_={};m(a_,{up:()=>vC,down:()=>qC});async function vC(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function qC(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var r_={};m(r_,{up:()=>gC,down:()=>cC});import{sql as vn}from"kysely";async function gC(_){await vn`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function cC(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await vn`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var e_={};m(e_,{up:()=>hC,down:()=>oC});async function hC(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function oC(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var s_={};m(s_,{up:()=>aC,down:()=>rC});import{sql as C_}from"kysely";async function aC(_){await _.schema.createTable("threads").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("hidden","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await _.schema.createTable("thread_messages").addColumn("id","text",(x)=>x.primaryKey()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("metadata","text").addColumn("parts","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(C_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}async function rC(_){await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropTable("thread_messages").execute(),await _.schema.dropTable("threads").execute()}var l_={};m(l_,{up:()=>eC,down:()=>sC});async function eC(_){await _.schema.dropIndex("idx_gateway_connections_unique").execute(),await _.schema.dropIndex("idx_gateway_connections_connection").execute(),await _.schema.dropIndex("idx_gateway_connections_gateway").execute(),await _.schema.dropIndex("idx_gateways_org_status").execute(),await _.schema.dropIndex("idx_gateways_org").execute(),await _.schema.dropIndex("monitoring_logs_gateway_timestamp").execute(),await _.schema.alterTable("gateways").renameTo("virtual_mcps").execute(),await _.schema.alterTable("gateway_connections").renameTo("virtual_mcp_connections").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("gateway_id","virtual_mcp_id").execute(),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function sC(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.alterTable("monitoring_logs").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameColumn("virtual_mcp_id","gateway_id").execute(),await _.schema.alterTable("virtual_mcp_connections").renameTo("gateway_connections").execute(),await _.schema.alterTable("virtual_mcps").renameTo("gateways").execute(),await _.schema.createIndex("idx_gateways_org").on("gateways").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_gateways_org_status").on("gateways").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_gateway_connections_gateway").on("gateway_connections").columns(["gateway_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_connection").on("gateway_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_gateway_connections_unique").on("gateway_connections").columns(["gateway_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_gateway_timestamp").on("monitoring_logs").columns(["gateway_id","timestamp"]).execute()}var d_={};m(d_,{up:()=>lC,down:()=>dC});async function lC(_){await _.schema.dropIndex("idx_threads_org").execute(),await _.schema.dropIndex("idx_thread_messages_thread").execute(),await _.schema.dropIndex("idx_threads_org_updated").execute(),await _.schema.dropIndex("idx_threads_created_by").execute(),await _.schema.dropIndex("idx_thread_messages_thread_created").execute(),await _.schema.createIndex("idx_threads_org_hidden_updated").on("threads").columns(["organization_id","hidden","updated_at"]).execute(),await _.schema.createIndex("idx_threads_created_by_updated").on("threads").columns(["created_by","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created_id").on("thread_messages").columns(["thread_id","created_at","id"]).execute()}async function dC(_){await _.schema.dropIndex("idx_thread_messages_thread_created_id").execute(),await _.schema.dropIndex("idx_threads_created_by_updated").execute(),await _.schema.dropIndex("idx_threads_org_hidden_updated").execute(),await _.schema.createIndex("idx_threads_org").on("threads").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_threads_created_by").on("threads").columns(["created_by"]).execute(),await _.schema.createIndex("idx_threads_org_updated").on("threads").columns(["organization_id","updated_at"]).execute(),await _.schema.createIndex("idx_thread_messages_thread").on("thread_messages").columns(["thread_id"]).execute(),await _.schema.createIndex("idx_thread_messages_thread_created").on("thread_messages").columns(["thread_id","created_at"]).execute()}var b_={};m(b_,{up:()=>bC,down:()=>_N});import{sql as y}from"kysely";async function bC(_){await y`
25
25
  INSERT INTO connections (
26
26
  id,
27
27
  organization_id,
@@ -68,7 +68,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
68
68
  created_at,
69
69
  updated_at
70
70
  FROM virtual_mcps
71
- `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await J`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await J`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await J`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await J`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await J`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await J`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await J`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function dC(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(J`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(J`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await J`
71
+ `.execute(_),await _.schema.dropIndex("idx_virtual_mcp_connections_unique").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_connection").execute(),await _.schema.dropIndex("idx_virtual_mcp_connections_virtual_mcp").execute();let x=await y`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await y`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await y`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await y`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await y`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_connection_id_fkey`.execute(_);if(await _.schema.alterTable("virtual_mcp_connections").renameTo("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("virtual_mcp_id","parent_connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("connection_id","child_connection_id").execute(),x)await y`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await y`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_child_fk FOREIGN KEY (child_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_);await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute(),await _.schema.dropIndex("idx_virtual_mcps_org_status").execute(),await _.schema.dropIndex("idx_virtual_mcps_org").execute(),await _.schema.dropTable("virtual_mcps").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function _N(_){await _.schema.createTable("virtual_mcps").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).addColumn("icon","text").addColumn("status","text",(x)=>x.notNull().defaultTo("active")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(y`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await y`
72
72
  INSERT INTO virtual_mcps (
73
73
  id, organization_id, title, description, icon, status,
74
74
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -78,7 +78,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
78
78
  created_at, updated_at, created_by, NULL, 'inclusion'
79
79
  FROM connections
80
80
  WHERE connection_type = 'VIRTUAL'
81
- `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await J`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var _x={};m(_x,{up:()=>bC,down:()=>_N});async function bC(_){await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function _N(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var xx={};m(xx,{up:()=>xN,down:()=>uN});import{sql as D}from"kysely";async function xN(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await D`
81
+ `.execute(_),await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("child_connection_id","connection_id").execute(),await _.schema.alterTable("connection_aggregations").renameColumn("parent_connection_id","virtual_mcp_id").execute(),await _.schema.alterTable("connection_aggregations").renameTo("virtual_mcp_connections").execute(),await y`DELETE FROM connections WHERE connection_type = 'VIRTUAL'`.execute(_),await _.schema.createIndex("idx_virtual_mcps_org").on("virtual_mcps").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_virtual_mcps_org_status").on("virtual_mcps").columns(["organization_id","status"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_virtual_mcp").on("virtual_mcp_connections").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_connection").on("virtual_mcp_connections").columns(["connection_id"]).execute(),await _.schema.createIndex("idx_virtual_mcp_connections_unique").on("virtual_mcp_connections").columns(["virtual_mcp_id","connection_id"]).unique().execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}var _x={};m(_x,{up:()=>xN,down:()=>uN});async function xN(_){await _.schema.alterTable("monitoring_logs").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_id").on("monitoring_logs").columns(["virtual_mcp_id"]).execute(),await _.schema.createIndex("monitoring_logs_virtual_mcp_timestamp").on("monitoring_logs").columns(["virtual_mcp_id","timestamp"]).execute()}async function uN(_){await _.schema.dropIndex("monitoring_logs_virtual_mcp_timestamp").execute(),await _.schema.dropIndex("monitoring_logs_virtual_mcp_id").execute(),await _.schema.alterTable("monitoring_logs").dropColumn("virtual_mcp_id").execute()}var xx={};m(xx,{up:()=>mN,down:()=>nN});import{sql as D}from"kysely";async function mN(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await D`
82
82
  INSERT INTO connection_aggregations_new (
83
83
  id, parent_connection_id, child_connection_id,
84
84
  selected_tools, selected_resources, selected_prompts, created_at
@@ -87,7 +87,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
87
87
  id, parent_connection_id, child_connection_id,
88
88
  selected_tools, selected_resources, selected_prompts, created_at
89
89
  FROM connection_aggregations
90
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await D`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await D`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await D`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function uN(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await D`
90
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await D`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await D`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await D`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}async function nN(_){if(await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(D`CURRENT_TIMESTAMP`)).execute(),await D`
91
91
  INSERT INTO connection_aggregations_new (
92
92
  id, parent_connection_id, child_connection_id,
93
93
  selected_tools, selected_resources, selected_prompts, created_at
@@ -96,7 +96,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
96
96
  id, parent_connection_id, child_connection_id,
97
97
  selected_tools, selected_resources, selected_prompts, created_at
98
98
  FROM connection_aggregations
99
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await D`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await D`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await D`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var mx={};m(mx,{up:()=>mN,down:()=>nN});import{sql as ux}from"kysely";async function mN(_){await ux`
99
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await D`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await D`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await D`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_child_connection_id_fkey TO conn_agg_child_fk`.execute(_);await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var mx={};m(mx,{up:()=>TN,down:()=>CN});import{sql as ux}from"kysely";async function TN(_){await ux`
100
100
  UPDATE connections
101
101
  SET connection_url = connection_url || '/management',
102
102
  tools = NULL,
@@ -110,13 +110,13 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
110
110
  updated_at = CURRENT_TIMESTAMP
111
111
  WHERE app_name = '@deco/management-mcp'
112
112
  AND tools IS NOT NULL
113
- `.execute(_)}async function nN(_){await ux`
113
+ `.execute(_)}async function CN(_){await ux`
114
114
  UPDATE connections
115
115
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
116
116
  updated_at = CURRENT_TIMESTAMP
117
117
  WHERE connection_url LIKE '%/mcp/management'
118
118
  AND app_name = '@deco/management-mcp'
119
- `.execute(_)}var Tx={};m(Tx,{up:()=>TN,down:()=>CN});import{sql as nx}from"kysely";async function TN(_){await nx`
119
+ `.execute(_)}var Tx={};m(Tx,{up:()=>NN,down:()=>KN});import{sql as nx}from"kysely";async function NN(_){await nx`
120
120
  UPDATE connections
121
121
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
122
122
  tools = NULL,
@@ -130,16 +130,16 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
130
130
  WHERE connection_url LIKE '%/mcp/self'
131
131
  AND app_name = '@deco/management-mcp'
132
132
  AND tools IS NOT NULL
133
- `.execute(_)}async function CN(_){await nx`
133
+ `.execute(_)}async function KN(_){await nx`
134
134
  UPDATE connections
135
135
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
136
136
  updated_at = CURRENT_TIMESTAMP
137
137
  WHERE connection_url LIKE '%/mcp/self'
138
138
  AND app_name = '@deco/management-mcp'
139
- `.execute(_)}var Cx={};m(Cx,{up:()=>NN,down:()=>KN});async function NN(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function KN(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Nx={};m(Nx,{up:()=>EN,down:()=>tN});import{sql as vn}from"kysely";async function EN(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(vn`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(vn`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function tN(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var Kx={};m(Kx,{up:()=>zN,down:()=>PN});import{sql as h}from"kysely";async function zN(_){await h`
139
+ `.execute(_)}var Cx={};m(Cx,{up:()=>EN,down:()=>zN});async function EN(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function zN(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var Nx={};m(Nx,{up:()=>tN,down:()=>PN});import{sql as qn}from"kysely";async function tN(_){await _.schema.createTable("organization_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(qn`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("member_tags").addColumn("id","text",(x)=>x.primaryKey()).addColumn("member_id","text",(x)=>x.notNull().references("member.id").onDelete("cascade")).addColumn("tag_id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(qn`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_organization_tags_org").on("organization_tags").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_organization_tags_unique_name").on("organization_tags").columns(["organization_id","name"]).unique().execute(),await _.schema.createIndex("idx_member_tags_member").on("member_tags").columns(["member_id"]).execute(),await _.schema.createIndex("idx_member_tags_tag").on("member_tags").columns(["tag_id"]).execute(),await _.schema.createIndex("idx_member_tags_unique").on("member_tags").columns(["member_id","tag_id"]).unique().execute()}async function PN(_){await _.schema.dropIndex("idx_member_tags_unique").execute(),await _.schema.dropIndex("idx_member_tags_tag").execute(),await _.schema.dropIndex("idx_member_tags_member").execute(),await _.schema.dropIndex("idx_organization_tags_unique_name").execute(),await _.schema.dropIndex("idx_organization_tags_org").execute(),await _.schema.dropTable("member_tags").execute(),await _.schema.dropTable("organization_tags").execute()}var Kx={};m(Kx,{up:()=>UN,down:()=>JN});import{sql as h}from"kysely";async function UN(_){await h`
140
140
  ALTER TABLE connection_aggregations
141
141
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
142
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function PN(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await h`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await h`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await h`
142
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function JN(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await h`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await h`ALTER TABLE connection_aggregations DROP COLUMN dependency_mode`.execute(_);else await _.schema.dropIndex("idx_conn_agg_unique").execute(),await _.schema.dropIndex("idx_conn_agg_child").execute(),await _.schema.dropIndex("idx_conn_agg_parent").execute(),await _.schema.createTable("connection_aggregations_new").addColumn("id","text",(u)=>u.primaryKey()).addColumn("parent_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("cascade")).addColumn("child_connection_id","text",(u)=>u.notNull().references("connections.id").onDelete("restrict")).addColumn("selected_tools","text").addColumn("selected_resources","text").addColumn("selected_prompts","text").addColumn("created_at","text",(u)=>u.notNull().defaultTo(h`CURRENT_TIMESTAMP`)).execute(),await h`
143
143
  INSERT INTO connection_aggregations_new (
144
144
  id, parent_connection_id, child_connection_id,
145
145
  selected_tools, selected_resources, selected_prompts, created_at
@@ -148,42 +148,42 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.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(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var Ex={};m(Ex,{up:()=>jN,down:()=>WN});import{webcrypto as gn}from"crypto";var qn="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var yN=128,O,w;function UN(_){if(!O||O.length<_)O=Buffer.allocUnsafe(_*yN),gn.getRandomValues(O),w=0;else if(w+_>O.length)gn.getRandomValues(O),w=0;w+=_}function S(_=21){UN(_|=0);let x="";for(let u=w-_;u<w;u++)x+=qn[O[u]&63];return x}var JN="org-admin",$N="Organization Admin";async function jN(_){await _.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 _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.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 _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let T=new Date().toISOString(),n=`proj_${S()}`,C=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:n,organization_id:u.id,slug:JN,name:$N,description:null,enabled_plugins:C?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function WN(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var tx={};m(tx,{up:()=>XN,down:()=>ZN});async function XN(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function ZN(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var zx={};m(zx,{up:()=>QN,down:()=>DN});async function QN(_){}async function DN(_){}var Px={};m(Px,{up:()=>LN,down:()=>RN});async function LN(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function RN(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var yx={};m(yx,{up:()=>FN,down:()=>HN});import{sql as cn}from"kysely";async function FN(_){await cn`
151
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await _.schema.createIndex("idx_conn_agg_parent").on("connection_aggregations").columns(["parent_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_child").on("connection_aggregations").columns(["child_connection_id"]).execute(),await _.schema.createIndex("idx_conn_agg_unique").on("connection_aggregations").columns(["parent_connection_id","child_connection_id"]).unique().execute()}var Ex={};m(Ex,{up:()=>XN,down:()=>ZN});import{webcrypto as cn}from"crypto";var gn="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var yN=128,O,I;function $N(_){if(!O||O.length<_)O=Buffer.allocUnsafe(_*yN),cn.getRandomValues(O),I=0;else if(I+_>O.length)cn.getRandomValues(O),I=0;I+=_}function S(_=21){$N(_|=0);let x="";for(let u=I-_;u<I;u++)x+=gn[O[u]&63];return x}var jN="org-admin",WN="Organization Admin";async function XN(_){await _.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 _.schema.createIndex("projects_org_slug_unique").on("projects").columns(["organization_id","slug"]).unique().execute(),await _.schema.createIndex("projects_organization_id_idx").on("projects").column("organization_id").execute(),await _.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 _.schema.createIndex("project_plugin_configs_project_plugin_unique").on("project_plugin_configs").columns(["project_id","plugin_id"]).unique().execute();let x=await _.selectFrom("organization").select(["id"]).execute();for(let u of x){let T=new Date().toISOString(),n=`proj_${S()}`,C=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:n,organization_id:u.id,slug:jN,name:WN,description:null,enabled_plugins:C?.enabled_plugins??null,ui:null,created_at:T,updated_at:T}).execute()}}async function ZN(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var zx={};m(zx,{up:()=>QN,down:()=>DN});async function QN(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function DN(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var tx={};m(tx,{up:()=>LN,down:()=>FN});async function LN(_){}async function FN(_){}var Px={};m(Px,{up:()=>RN,down:()=>HN});async function RN(_){await _.schema.createTable("project_connections").addColumn("id","text",(x)=>x.primaryKey()).addColumn("project_id","text",(x)=>x.notNull().references("projects.id").onDelete("cascade")).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("created_at","text",(x)=>x.notNull()).execute(),await _.schema.createIndex("project_connections_project_conn_unique").on("project_connections").columns(["project_id","connection_id"]).unique().execute(),await _.schema.createIndex("project_connections_project_id_idx").on("project_connections").columns(["project_id"]).execute()}async function HN(_){await _.schema.dropIndex("project_connections_project_id_idx").execute(),await _.schema.dropIndex("project_connections_project_conn_unique").execute(),await _.schema.dropTable("project_connections").execute()}var Ux={};m(Ux,{up:()=>YN,down:()=>MN});import{sql as hn}from"kysely";async function YN(_){await hn`
152
152
  UPDATE connections
153
153
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
154
154
  tools = NULL,
155
155
  updated_at = CURRENT_TIMESTAMP
156
156
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
157
157
  AND app_name = 'deco-registry'
158
- `.execute(_)}async function HN(_){await cn`
158
+ `.execute(_)}async function MN(_){await hn`
159
159
  UPDATE connections
160
160
  SET connection_url = 'https://api.decocms.com/mcp/registry',
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(_)}var Ux={};m(Ux,{up:()=>MN,down:()=>fN});import{sql as YN}from"kysely";async function MN(_){await _.schema.createTable("ai_provider_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("label","text",(x)=>x.notNull()).addColumn("encrypted_api_key","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(YN`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function fN(_){await _.schema.dropTable("ai_provider_keys").execute()}var Jx={};m(Jx,{up:()=>GN,down:()=>ON});import{sql as BN}from"kysely";async function GN(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(BN`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function ON(_){await _.schema.dropTable("oauth_pkce_states").execute()}var $x={};m($x,{up:()=>AN,down:()=>wN});import{sql as M}from"kysely";async function AN(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(M`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(M`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.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",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await M`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await M`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await M`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(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function wN(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var jx={};m(jx,{up:()=>SN,down:()=>IN});async function SN(_){await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function IN(_){await _.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var Wx={};m(Wx,{up:()=>iN,down:()=>kN});async function iN(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function kN(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Xx={};m(Xx,{up:()=>pN,down:()=>VN});import{sql as hn}from"kysely";async function pN(_){await hn`
164
+ `.execute(_)}var Jx={};m(Jx,{up:()=>fN,down:()=>GN});import{sql as BN}from"kysely";async function fN(_){await _.schema.createTable("ai_provider_keys").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("label","text",(x)=>x.notNull()).addColumn("encrypted_api_key","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(BN`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_ai_provider_keys_org").on("ai_provider_keys").column("organization_id").execute(),await _.schema.createIndex("idx_ai_provider_keys_org_provider").on("ai_provider_keys").columns(["organization_id","provider_id"]).execute()}async function GN(_){await _.schema.dropTable("ai_provider_keys").execute()}var yx={};m(yx,{up:()=>AN,down:()=>IN});import{sql as ON}from"kysely";async function AN(_){await _.schema.createTable("oauth_pkce_states").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull()).addColumn("code_verifier","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(ON`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function IN(_){await _.schema.dropTable("oauth_pkce_states").execute()}var $x={};m($x,{up:()=>SN,down:()=>wN});import{sql as M}from"kysely";async function SN(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(M`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("active","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_by","text",(x)=>x.notNull()).addColumn("agent","text",(x)=>x.notNull()).addColumn("messages","text",(x)=>x.notNull()).addColumn("models","text",(x)=>x.notNull()).addColumn("temperature","real",(x)=>x.notNull().defaultTo(0.5)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_automations_org").on("automations").columns(["organization_id"]).execute(),await _.schema.createIndex("idx_automations_active").on("automations").columns(["organization_id","active"]).execute(),await _.schema.createTable("automation_triggers").addColumn("id","text",(x)=>x.primaryKey().defaultTo(M`gen_random_uuid()`)).addColumn("automation_id","text",(x)=>x.notNull().references("automations.id").onDelete("cascade")).addColumn("type","text",(x)=>x.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",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).execute(),await M`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await M`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await M`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(_),await _.schema.createIndex("idx_automation_triggers_automation").on("automation_triggers").columns(["automation_id"]).execute(),await _.schema.createIndex("idx_automation_triggers_event").on("automation_triggers").columns(["connection_id","event_type"]).execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute(),await _.schema.alterTable("threads").addColumn("trigger_id","text",(x)=>x.references("automation_triggers.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_threads_trigger_status").on("threads").columns(["trigger_id","status"]).execute()}async function wN(_){await _.schema.dropIndex("idx_threads_trigger_status").execute(),await _.schema.alterTable("threads").dropColumn("trigger_id").execute(),await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.dropIndex("idx_automation_triggers_event").execute(),await _.schema.dropIndex("idx_automation_triggers_automation").execute(),await _.schema.dropTable("automation_triggers").execute(),await _.schema.dropIndex("idx_automations_active").execute(),await _.schema.dropIndex("idx_automations_org").execute(),await _.schema.dropTable("automations").execute()}var jx={};m(jx,{up:()=>iN,down:()=>kN});async function iN(_){await _.schema.dropIndex("idx_automation_triggers_cron").execute(),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("last_run_at","text").execute()}async function kN(_){await _.schema.alterTable("automation_triggers").dropColumn("last_run_at").execute(),await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await _.schema.createIndex("idx_automation_triggers_cron").on("automation_triggers").columns(["next_run_at"]).execute()}var Wx={};m(Wx,{up:()=>pN,down:()=>VN});async function pN(_){await _.schema.alterTable("ai_provider_keys").addColumn("key_hash","text").execute(),await _.schema.createIndex("idx_ai_provider_keys_unique_hash").unique().on("ai_provider_keys").columns(["organization_id","provider_id","key_hash"]).execute()}async function VN(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var Xx={};m(Xx,{up:()=>vN,down:()=>qN});import{sql as on}from"kysely";async function vN(_){await on`
165
165
  UPDATE connections
166
166
  SET title = 'CMS MCP',
167
167
  tools = NULL,
168
168
  updated_at = CURRENT_TIMESTAMP
169
169
  WHERE app_name = '@deco/management-mcp'
170
- `.execute(_)}async function VN(_){await hn`
170
+ `.execute(_)}async function qN(_){await on`
171
171
  UPDATE connections
172
172
  SET title = 'Mesh MCP',
173
173
  updated_at = CURRENT_TIMESTAMP
174
174
  WHERE app_name = '@deco/management-mcp'
175
- `.execute(_)}var Zx={};m(Zx,{up:()=>vN,down:()=>qN});import{sql as on}from"kysely";async function vN(_){await on`
175
+ `.execute(_)}var Zx={};m(Zx,{up:()=>gN,down:()=>cN});import{sql as an}from"kysely";async function gN(_){await an`
176
176
  UPDATE connections
177
177
  SET title = 'Deco CMS',
178
178
  tools = NULL,
179
179
  updated_at = CURRENT_TIMESTAMP
180
180
  WHERE app_name = '@deco/management-mcp'
181
- `.execute(_)}async function qN(_){await on`
181
+ `.execute(_)}async function cN(_){await an`
182
182
  UPDATE connections
183
183
  SET title = 'CMS MCP',
184
184
  updated_at = CURRENT_TIMESTAMP
185
185
  WHERE app_name = '@deco/management-mcp'
186
- `.execute(_)}var Qx={};m(Qx,{up:()=>gN,down:()=>cN});async function gN(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function cN(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Dx={};m(Dx,{up:()=>hN,down:()=>oN});async function hN(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function oN(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Rx={};m(Rx,{up:()=>aN,down:()=>rN});import{sql as Lx}from"kysely";async function aN(_){await Lx`
186
+ `.execute(_)}var Qx={};m(Qx,{up:()=>hN,down:()=>oN});async function hN(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function oN(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var Dx={};m(Dx,{up:()=>aN,down:()=>rN});async function aN(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function rN(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var Fx={};m(Fx,{up:()=>eN,down:()=>sN});import{sql as Lx}from"kysely";async function eN(_){await Lx`
187
187
  UPDATE organization_settings
188
188
  SET enabled_plugins = (
189
189
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -204,7 +204,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
204
204
  `.execute(_),await Lx`
205
205
  DELETE FROM project_plugin_configs
206
206
  WHERE plugin_id = 'object-storage'
207
- `.execute(_)}async function rN(_){}var Fx={};m(Fx,{up:()=>eN,down:()=>sN});import{sql as an}from"kysely";async function eN(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await an`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function sN(_){await an`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Yx={};m(Yx,{up:()=>lN,down:()=>dN});import{sql as Hx}from"kysely";async function lN(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Hx`
207
+ `.execute(_)}async function sN(_){}var Rx={};m(Rx,{up:()=>lN,down:()=>dN});import{sql as rn}from"kysely";async function lN(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await rn`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function dN(_){await rn`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var Yx={};m(Yx,{up:()=>bN,down:()=>_K});import{sql as Hx}from"kysely";async function bN(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await Hx`
208
208
  ALTER TABLE connections
209
209
  ADD CONSTRAINT chk_connections_subtype
210
210
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
@@ -212,17 +212,17 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
212
212
  UPDATE connections
213
213
  SET subtype = 'agent'
214
214
  WHERE connection_type = 'VIRTUAL'
215
- `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(N)=>N.primaryKey()).addColumn("virtual_mcp_id","text",(N)=>N.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(N)=>N.notNull()).addColumn("connection_id","text",(N)=>N.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(N)=>N.notNull()).addColumn("updated_at","text",(N)=>N.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),T=new Map;for(let N of u)T.set(N.organizationId,N.userId);let n=new Map;for(let N of x){let E=`vir_${S()}`;n.set(N.id,E);let t=N.ui?JSON.parse(N.ui):null,z=JSON.stringify({enabled_plugins:N.enabled_plugins?JSON.parse(N.enabled_plugins):null,ui:t,migrated_from_project:N.id,migrated_project_slug:N.slug}),U=T.get(N.organization_id);if(!U)continue;await _.insertInto("connections").values({id:E,organization_id:N.organization_id,created_by:U,updated_by:null,title:N.name,description:N.description,icon:t?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:z,bindings:null,status:"active",subtype:"project",created_at:N.created_at,updated_at:N.updated_at}).execute()}let C=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let N of C){let E=n.get(N.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${S()}`,parent_connection_id:E,child_connection_id:N.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:N.created_at}).onConflict((t)=>t.doNothing()).execute()}let K=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let N of K){let E=n.get(N.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${S()}`,virtual_mcp_id:E,plugin_id:N.plugin_id,connection_id:N.connection_id,settings:N.settings,created_at:N.created_at,updated_at:N.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function dN(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Hx`
215
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(N)=>N.primaryKey()).addColumn("virtual_mcp_id","text",(N)=>N.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(N)=>N.notNull()).addColumn("connection_id","text",(N)=>N.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(N)=>N.notNull()).addColumn("updated_at","text",(N)=>N.notNull()).execute(),await _.schema.createIndex("idx_vmpc_unique").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id","plugin_id"]).unique().execute(),await _.schema.createIndex("idx_vmpc_virtual_mcp_id").on("virtual_mcp_plugin_configs").columns(["virtual_mcp_id"]).execute();let x=await _.selectFrom("projects").select(["id","organization_id","slug","name","description","enabled_plugins","ui","created_at","updated_at"]).execute(),u=await _.selectFrom("member").select(["organizationId","userId"]).where("role","=","owner").execute(),T=new Map;for(let N of u)T.set(N.organizationId,N.userId);let n=new Map;for(let N of x){let E=`vir_${S()}`;n.set(N.id,E);let z=N.ui?JSON.parse(N.ui):null,t=JSON.stringify({enabled_plugins:N.enabled_plugins?JSON.parse(N.enabled_plugins):null,ui:z,migrated_from_project:N.id,migrated_project_slug:N.slug}),J=T.get(N.organization_id);if(!J)continue;await _.insertInto("connections").values({id:E,organization_id:N.organization_id,created_by:J,updated_by:null,title:N.name,description:N.description,icon:z?.icon??null,app_name:null,app_id:null,connection_type:"VIRTUAL",connection_url:`virtual://${E}`,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:N.created_at,updated_at:N.updated_at}).execute()}let C=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let N of C){let E=n.get(N.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${S()}`,parent_connection_id:E,child_connection_id:N.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:N.created_at}).onConflict((z)=>z.doNothing()).execute()}let K=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let N of K){let E=n.get(N.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${S()}`,virtual_mcp_id:E,plugin_id:N.plugin_id,connection_id:N.connection_id,settings:N.settings,created_at:N.created_at,updated_at:N.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function _K(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await Hx`
216
216
  ALTER TABLE connections
217
217
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
218
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var Mx={};m(Mx,{up:()=>_K,down:()=>xK});import{sql as bN}from"kysely";async function _K(_){await bN`
218
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var Mx={};m(Mx,{up:()=>uK,down:()=>mK});import{sql as xK}from"kysely";async function uK(_){await xK`
219
219
  DELETE FROM connections
220
220
  WHERE connection_type = 'VIRTUAL'
221
221
  AND subtype = 'project'
222
222
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
223
- `.execute(_)}async function xK(_){}var fx={};m(fx,{up:()=>mK,down:()=>nK});import{sql as uK}from"kysely";async function mK(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await uK`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function nK(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var Gx={};m(Gx,{up:()=>TK,down:()=>CK});import{sql as Bx}from"kysely";async function TK(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(Bx`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(Bx`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(Bx`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function CK(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Ox={};m(Ox,{up:()=>NK,down:()=>KK});async function NK(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function KK(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Ax={};m(Ax,{up:()=>EK,down:()=>tK});async function EK(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function tK(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Sx={};m(Sx,{up:()=>PK,down:()=>yK});import{sql as rn}from"kysely";function wx(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function zK(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return wx(T)}catch{return wx(_.connection_url)}if(_.title)return wx(_.title);return _.id}async function PK(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await rn`
223
+ `.execute(_)}async function mK(_){}var Bx={};m(Bx,{up:()=>TK,down:()=>CK});import{sql as nK}from"kysely";async function TK(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await nK`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function CK(_){await _.schema.dropIndex("idx_threads_run_owner").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("run_owner_pod").dropColumn("run_config").dropColumn("run_started_at").execute()}var Gx={};m(Gx,{up:()=>NK,down:()=>KK});import{sql as fx}from"kysely";async function NK(_){await _.schema.createTable("org_sso_config").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("issuer","text",(x)=>x.notNull()).addColumn("client_id","text",(x)=>x.notNull()).addColumn("client_secret","text",(x)=>x.notNull()).addColumn("discovery_endpoint","text").addColumn("scopes","text",(x)=>x.notNull().defaultTo('["openid","email","profile"]')).addColumn("domain","text",(x)=>x.notNull()).addColumn("enforced","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(fx`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(fx`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_config_org_id").unique().on("org_sso_config").column("organization_id").execute(),await _.schema.createIndex("idx_org_sso_config_domain").on("org_sso_config").column("domain").execute(),await _.schema.createTable("org_sso_sessions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("authenticated_at","text",(x)=>x.notNull()).addColumn("expires_at","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(fx`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_sso_sessions_user_org").unique().on("org_sso_sessions").columns(["user_id","organization_id"]).execute()}async function KK(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var Ox={};m(Ox,{up:()=>EK,down:()=>zK});async function EK(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function zK(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var Ax={};m(Ax,{up:()=>tK,down:()=>PK});async function tK(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function PK(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var Sx={};m(Sx,{up:()=>JK,down:()=>yK});import{sql as en}from"kysely";function Ix(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function UK(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Ix(T)}catch{return Ix(_.connection_url)}if(_.title)return Ix(_.title);return _.id}async function JK(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await en`
224
224
  SELECT id, app_name, connection_url, title FROM connections
225
- `.execute(_);for(let u of x.rows){let T=zK(u);await rn`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function yK(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var Ix={};m(Ix,{up:()=>UK,down:()=>JK});import{sql as o}from"kysely";async function UK(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await o`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await o`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function JK(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await o`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await o`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await o`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var ix={};m(ix,{up:()=>$K,down:()=>jK});async function $K(_){await _.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function jK(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var kx={};m(kx,{up:()=>WK,down:()=>XK});import{sql as N_}from"kysely";async function WK(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await N_`
225
+ `.execute(_);for(let u of x.rows){let T=UK(u);await en`UPDATE connections SET slug = ${T} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function yK(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var wx={};m(wx,{up:()=>$K,down:()=>jK});import{sql as o}from"kysely";async function $K(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await o`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await o`ALTER TABLE connections DROP CONSTRAINT IF EXISTS chk_connections_subtype`.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute(),await _.schema.createIndex("idx_connections_org_type_pinned").on("connections").columns(["organization_id","connection_type","pinned"]).execute()}async function jK(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await o`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await o`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await o`ALTER TABLE connections ADD CONSTRAINT chk_connections_subtype CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)`.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await _.schema.alterTable("connections").dropColumn("pinned").execute()}var ix={};m(ix,{up:()=>WK,down:()=>XK});async function WK(_){await _.schema.alterTable("automations").addColumn("virtual_mcp_id","text").execute(),await _.schema.createIndex("idx_automations_virtual_mcp").on("automations").columns(["virtual_mcp_id"]).execute()}async function XK(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var kx={};m(kx,{up:()=>ZK,down:()=>QK});import{sql as N_}from"kysely";async function ZK(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await N_`
226
226
  UPDATE threads
227
227
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
228
228
  WHERE agent_ids IS NOT NULL
@@ -232,55 +232,55 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
232
232
  `.execute(_),await N_`
233
233
  CREATE INDEX idx_threads_virtual_mcp_id
234
234
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
235
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function XK(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await N_`
235
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function QK(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await N_`
236
236
  UPDATE threads
237
237
  SET agent_ids = CASE
238
238
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
239
239
  THEN jsonb_build_array(virtual_mcp_id)::text
240
240
  ELSE '[]'
241
241
  END
242
- `.execute(_),await N_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var px={};m(px,{up:()=>ZK,down:()=>QK});async function ZK(_){await _.schema.createTable("trigger_callback_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).execute(),await _.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function QK(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Vx={};m(Vx,{up:()=>DK,down:()=>LK});async function DK(_){await _.schema.createTable("kv").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("value","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function LK(_){await _.schema.dropTable("kv").execute()}var vx={};m(vx,{up:()=>RK,down:()=>FK});async function RK(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function FK(_){await _.schema.dropIndex("idx_member_user_org").execute()}var qx={};m(qx,{up:()=>HK,down:()=>YK});async function HK(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function YK(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var gx={};m(gx,{up:()=>MK,down:()=>fK});import{sql as j}from"kysely";async function MK(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await j`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await j`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function fK(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var cx={};m(cx,{up:()=>BK,down:()=>GK});import{sql as I}from"kysely";async function BK(_){await I`
242
+ `.execute(_),await N_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var px={};m(px,{up:()=>DK,down:()=>LK});async function DK(_){await _.schema.createTable("trigger_callback_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).execute(),await _.schema.createIndex("idx_trigger_callback_tokens_connection_org").on("trigger_callback_tokens").columns(["connection_id","organization_id"]).unique().execute()}async function LK(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var Vx={};m(Vx,{up:()=>FK,down:()=>RK});async function FK(_){await _.schema.createTable("kv").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("value","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("kv_pkey",["organization_id","key"]).execute()}async function RK(_){await _.schema.dropTable("kv").execute()}var vx={};m(vx,{up:()=>HK,down:()=>YK});async function HK(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function YK(_){await _.schema.dropIndex("idx_member_user_org").execute()}var qx={};m(qx,{up:()=>MK,down:()=>BK});async function MK(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function BK(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var gx={};m(gx,{up:()=>fK,down:()=>GK});import{sql as j}from"kysely";async function fK(_){await _.schema.createTable("private_registry_item").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("tags","text").addColumn("categories","text").addColumn("is_public","integer",(x)=>x.notNull().defaultTo(0)).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.references("user.id").onDelete("set null")).execute(),await _.schema.createIndex("idx_private_registry_item_org").ifNotExists().on("private_registry_item").column("organization_id").execute(),await _.schema.createIndex("idx_private_registry_item_org_public").ifNotExists().on("private_registry_item").columns(["organization_id","is_public"]).execute(),await j`ALTER TABLE private_registry_item ADD COLUMN IF NOT EXISTS is_unlisted integer NOT NULL DEFAULT 0`.execute(_),await _.schema.createTable("private_registry_publish_request").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("server_json","text",(x)=>x.notNull()).addColumn("meta_json","text").addColumn("requester_name","text").addColumn("requester_email","text").addColumn("reviewer_notes","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_request_org_status").ifNotExists().on("private_registry_publish_request").columns(["organization_id","status"]).execute(),await j`ALTER TABLE private_registry_publish_request ADD COLUMN IF NOT EXISTS requested_id text`.execute(_),await _.schema.createTable("private_registry_publish_api_key").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("key_hash","text",(x)=>x.notNull()).addColumn("prefix","text",(x)=>x.notNull()).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_publish_api_key_org").ifNotExists().on("private_registry_publish_api_key").columns(["organization_id"]).execute(),await _.schema.createTable("private_registry_monitor_run").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("config_snapshot","text").addColumn("total_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tested_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("passed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("failed_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("skipped_items","integer",(x)=>x.notNull().defaultTo(0)).addColumn("current_item_id","text").addColumn("started_at","text").addColumn("finished_at","text").addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_run_org_created").ifNotExists().on("private_registry_monitor_run").columns(["organization_id","created_at"]).execute(),await _.schema.createTable("private_registry_monitor_result").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("run_id","text",(x)=>x.notNull().references("private_registry_monitor_run.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("item_title","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("error_message","text").addColumn("connection_ok","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tools_listed","integer",(x)=>x.notNull().defaultTo(0)).addColumn("tool_results","text").addColumn("agent_summary","text").addColumn("duration_ms","integer",(x)=>x.notNull().defaultTo(0)).addColumn("action_taken","text",(x)=>x.notNull().defaultTo("none")).addColumn("tested_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run").ifNotExists().on("private_registry_monitor_result").columns(["run_id","tested_at"]).execute(),await _.schema.createIndex("idx_private_registry_monitor_result_run_status").ifNotExists().on("private_registry_monitor_result").columns(["run_id","status"]).execute(),await _.schema.createTable("private_registry_monitor_connection").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("item_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("auth_status","text",(x)=>x.notNull().defaultTo("none")).addColumn("created_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(j`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_private_registry_monitor_connection_org_item").ifNotExists().on("private_registry_monitor_connection").columns(["organization_id","item_id"]).unique().execute()}async function GK(_){await _.schema.dropIndex("idx_private_registry_monitor_connection_org_item").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_connection").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run_status").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_result_run").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_result").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_monitor_run_org_created").ifExists().execute(),await _.schema.dropTable("private_registry_monitor_run").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_api_key_org").ifExists().execute(),await _.schema.dropTable("private_registry_publish_api_key").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_publish_request_org_status").ifExists().execute(),await _.schema.dropTable("private_registry_publish_request").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org_public").ifExists().execute(),await _.schema.dropIndex("idx_private_registry_item_org").ifExists().execute(),await _.schema.dropTable("private_registry_item").ifExists().execute()}var cx={};m(cx,{up:()=>OK,down:()=>AK});import{sql as w}from"kysely";async function OK(_){await w`
243
243
  ALTER TABLE event_subscriptions
244
244
  ALTER COLUMN enabled DROP DEFAULT
245
- `.execute(_),await I`
245
+ `.execute(_),await w`
246
246
  ALTER TABLE event_subscriptions
247
247
  ALTER COLUMN enabled TYPE boolean
248
248
  USING enabled::boolean
249
- `.execute(_),await I`
249
+ `.execute(_),await w`
250
250
  ALTER TABLE event_subscriptions
251
251
  ALTER COLUMN enabled SET DEFAULT true
252
- `.execute(_)}async function GK(_){await I`
252
+ `.execute(_)}async function AK(_){await w`
253
253
  ALTER TABLE event_subscriptions
254
254
  ALTER COLUMN enabled DROP DEFAULT
255
- `.execute(_),await I`
255
+ `.execute(_),await w`
256
256
  ALTER TABLE event_subscriptions
257
257
  ALTER COLUMN enabled TYPE integer
258
258
  USING enabled::integer
259
- `.execute(_),await I`
259
+ `.execute(_),await w`
260
260
  ALTER TABLE event_subscriptions
261
261
  ALTER COLUMN enabled SET DEFAULT 1
262
- `.execute(_)}var hx={};m(hx,{up:()=>OK,down:()=>AK});import{sql as en}from"kysely";async function OK(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.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",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(en`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(en`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function AK(_){await _.schema.dropTable("brand_context").execute()}var ox={};m(ox,{up:()=>wK,down:()=>SK});import{sql as sn}from"kysely";async function wK(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(sn`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sn`now()`)).execute()}async function SK(_){await _.schema.dropTable("organization_domains").execute()}var ax={};m(ax,{up:()=>pK,down:()=>VK});import{sql as ln}from"kysely";var K_=new Set(["primary","secondary","accent","background","foreground"]),IK={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function iK(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((n)=>K_.has(n))){let n={};for(let[C,K]of Object.entries(u)){if(typeof K!=="string")continue;if(K_.has(C))n[C]=K;else x[C]=K}return{structured:Object.keys(n).length>0?JSON.stringify(n):null,extra:x}}let T={};for(let[n,C]of Object.entries(u)){if(typeof C!=="string")continue;if(K_.has(n.toLowerCase()))T[n.toLowerCase()]=C;else x[n]=C}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let n=T,C=n.label?.toLowerCase?.(),K=n.value;if(!C||!K)continue;if(K_.has(C))u[C]=K;else x[C]=K}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function kK(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let T of _){let n=T,C=n.name??n.family??void 0,K=n.role?.toLowerCase?.()??"";if(!C)continue;let N=IK[K];if(N&&!x[N])x[N]=C;else u.push(C)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function pK(_){let x=await ln`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,n=!1,C=!1,K=u.colors,N=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let t=JSON.parse(u.colors);if(Array.isArray(t)){let z=iK(t);if(K=z.structured,T=!0,Object.keys(z.extra).length>0)E.extraColors=z.extra,C=!0}}catch{}if(u.fonts)try{let t=JSON.parse(u.fonts);if(Array.isArray(t))N=kK(t),n=!0}catch{}if(T||n||C){let t=C?JSON.stringify(E):u.metadata;await ln`
262
+ `.execute(_)}var hx={};m(hx,{up:()=>IK,down:()=>SK});import{sql as sn}from"kysely";async function IK(_){await _.schema.createTable("brand_context").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("domain","text",(x)=>x.notNull()).addColumn("overview","text",(x)=>x.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",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(sn`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(sn`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function SK(_){await _.schema.dropTable("brand_context").execute()}var ox={};m(ox,{up:()=>wK,down:()=>iK});import{sql as ln}from"kysely";async function wK(_){await _.schema.createTable("organization_domains").addColumn("organization_id","text",(x)=>x.primaryKey().notNull().references("organization.id").onDelete("cascade")).addColumn("domain","text",(x)=>x.notNull().unique()).addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(ln`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(ln`now()`)).execute()}async function iK(_){await _.schema.dropTable("organization_domains").execute()}var ax={};m(ax,{up:()=>vK,down:()=>qK});import{sql as dn}from"kysely";var K_=new Set(["primary","secondary","accent","background","foreground"]),kK={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function pK(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((n)=>K_.has(n))){let n={};for(let[C,K]of Object.entries(u)){if(typeof K!=="string")continue;if(K_.has(C))n[C]=K;else x[C]=K}return{structured:Object.keys(n).length>0?JSON.stringify(n):null,extra:x}}let T={};for(let[n,C]of Object.entries(u)){if(typeof C!=="string")continue;if(K_.has(n.toLowerCase()))T[n.toLowerCase()]=C;else x[n]=C}return{structured:Object.keys(T).length>0?JSON.stringify(T):null,extra:x}}if(Array.isArray(_)){let u={};for(let T of _){let n=T,C=n.label?.toLowerCase?.(),K=n.value;if(!C||!K)continue;if(K_.has(C))u[C]=K;else x[C]=K}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function VK(_){if(!_)return null;if(!Array.isArray(_)&&typeof _==="object"){let x=_;if(typeof x.heading==="string"||typeof x.body==="string"||typeof x.code==="string")return JSON.stringify(x);return null}if(Array.isArray(_)){let x={},u=[];for(let T of _){let n=T,C=n.name??n.family??void 0,K=n.role?.toLowerCase?.()??"";if(!C)continue;let N=kK[K];if(N&&!x[N])x[N]=C;else u.push(C)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function vK(_){let x=await dn`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let T=!1,n=!1,C=!1,K=u.colors,N=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let z=JSON.parse(u.colors);if(Array.isArray(z)){let t=pK(z);if(K=t.structured,T=!0,Object.keys(t.extra).length>0)E.extraColors=t.extra,C=!0}}catch{}if(u.fonts)try{let z=JSON.parse(u.fonts);if(Array.isArray(z))N=VK(z),n=!0}catch{}if(T||n||C){let z=C?JSON.stringify(E):u.metadata;await dn`
263
263
  UPDATE brand_context
264
264
  SET
265
265
  colors = ${K},
266
266
  fonts = ${N},
267
- metadata = ${t},
267
+ metadata = ${z},
268
268
  updated_at = NOW()
269
269
  WHERE id = ${u.id}
270
- `.execute(_)}}}async function VK(_){}var rx={};m(rx,{up:()=>qK,down:()=>gK});import{sql as vK}from"kysely";async function qK(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(vK`'{}'::jsonb`)).execute()}async function gK(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var ex={};m(ex,{up:()=>cK,down:()=>hK});async function cK(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function hK(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var sx={};m(sx,{up:()=>oK,down:()=>aK});async function oK(_){await _.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(x)=>x.notNull()).addColumn("project_ref","text",(x)=>x.notNull()).addColumn("runner_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function aK(_){await _.schema.dropTable("sandbox_runner_state").execute()}var lx={};m(lx,{up:()=>rK,down:()=>eK});async function rK(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function eK(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var dx={};m(dx,{up:()=>sK,down:()=>lK});async function sK(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function lK(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var bx={};m(bx,{up:()=>dK,down:()=>bK});async function dK(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function bK(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var _u={};m(_u,{up:()=>xE,down:()=>uE});import{sql as dn}from"kysely";var _E=["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 xE(_){let x=await dn`
270
+ `.execute(_)}}}async function qK(_){}var rx={};m(rx,{up:()=>cK,down:()=>hK});import{sql as gK}from"kysely";async function cK(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(gK`'{}'::jsonb`)).execute()}async function hK(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var ex={};m(ex,{up:()=>oK,down:()=>aK});async function oK(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function aK(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var sx={};m(sx,{up:()=>rK,down:()=>eK});async function rK(_){await _.schema.createTable("sandbox_runner_state").addColumn("user_id","text",(x)=>x.notNull()).addColumn("project_ref","text",(x)=>x.notNull()).addColumn("runner_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo("now()")).addPrimaryKeyConstraint("sandbox_runner_state_pkey",["user_id","project_ref","runner_kind"]).execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}async function eK(_){await _.schema.dropTable("sandbox_runner_state").execute()}var lx={};m(lx,{up:()=>sK,down:()=>lK});async function sK(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function lK(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var dx={};m(dx,{up:()=>dK,down:()=>bK});async function dK(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function bK(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var bx={};m(bx,{up:()=>_E,down:()=>xE});async function _E(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function xE(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var _u={};m(_u,{up:()=>mE,down:()=>nE});import{sql as bn}from"kysely";var uE=["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 mE(_){let x=await bn`
271
271
  SELECT id, permission FROM "organizationRole"
272
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let n=T.self;if(!Array.isArray(n))continue;if(n.length===1&&n[0]==="*")continue;let C=n,K=Array.from(new Set([...C,..._E]));if(K.length===C.length)continue;T.self=K;let N=JSON.stringify(T);await dn`
272
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let n=T.self;if(!Array.isArray(n))continue;if(n.length===1&&n[0]==="*")continue;let C=n,K=Array.from(new Set([...C,...uE]));if(K.length===C.length)continue;T.self=K;let N=JSON.stringify(T);await bn`
273
273
  UPDATE "organizationRole"
274
274
  SET permission = ${N}
275
275
  WHERE id = ${u.id}
276
- `.execute(_)}}async function uE(_){}var xu={};m(xu,{up:()=>mE,down:()=>nE});async function mE(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function nE(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var uu={};m(uu,{up:()=>TE,down:()=>CE});async function TE(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function CE(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var mu={};m(mu,{up:()=>NE,down:()=>KE});import{sql as a}from"kysely";async function NE(_){await a`
276
+ `.execute(_)}}async function nE(_){}var xu={};m(xu,{up:()=>TE,down:()=>CE});async function TE(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").execute()}async function CE(_){await _.schema.dropIndex("sandbox_runner_state_handle_idx").execute(),await _.schema.createIndex("sandbox_runner_state_handle_idx").on("sandbox_runner_state").column("handle").unique().execute()}var uu={};m(uu,{up:()=>NE,down:()=>KE});async function NE(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function KE(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var mu={};m(mu,{up:()=>EE,down:()=>zE});import{sql as a}from"kysely";async function EE(_){await a`
277
277
  UPDATE automations
278
278
  SET virtual_mcp_id = (agent::json ->> 'id')
279
279
  WHERE virtual_mcp_id IS NULL
280
280
  `.execute(_),await a`
281
281
  ALTER TABLE automations
282
282
  ALTER COLUMN virtual_mcp_id SET NOT NULL
283
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function KE(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await a`
283
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function zE(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await a`
284
284
  UPDATE automations
285
285
  SET agent = json_build_object('id', virtual_mcp_id)::text
286
286
  `.execute(_),await a`
@@ -289,18 +289,18 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
289
289
  `.execute(_),await a`
290
290
  ALTER TABLE automations
291
291
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
292
- `.execute(_)}var Tu={};m(Tu,{up:()=>PE,reshapeSimpleMode:()=>bn,inferAutomationTier:()=>_T,down:()=>yE,__testing:()=>zE});var EE={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},tE=["fast","smart","thinking","image","web_research"];function nu(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return tE.some((T)=>(T in u))}function bn(_){if(nu(_))return _;let x=_,u=x?.enabled===!0,T=(n)=>n&&n.keyId&&n.modelId?{keyId:n.keyId,modelId:n.modelId,title:n.title}:null;if(!u)return EE;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function _T(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function xT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var zE={isAlreadyReshapedSimpleMode:nu,isAlreadyReshapedAutomationModels:xT};async function PE(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let n=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(nu(n))continue;let C=bn(n);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let n;try{n=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{n={}}if(xT(n))continue;let C=_T(n);if(await _.updateTable("automations").set({models:JSON.stringify({tier:C})}).where("id","=",T.id).execute(),n.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${C}"`)}}async function yE(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Cu={};m(Cu,{up:()=>UE,down:()=>JE});import{sql as F}from"kysely";async function UE(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await F`
292
+ `.execute(_)}var Tu={};m(Tu,{up:()=>JE,reshapeSimpleMode:()=>_T,inferAutomationTier:()=>xT,down:()=>yE,__testing:()=>UE});var tE={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},PE=["fast","smart","thinking","image","web_research"];function nu(_){if(!_||typeof _!=="object")return!1;let x=_;if(!("tiers"in x))return!1;let u=x.tiers;if(!u||typeof u!=="object")return!1;return PE.some((T)=>(T in u))}function _T(_){if(nu(_))return _;let x=_,u=x?.enabled===!0,T=(n)=>n&&n.keyId&&n.modelId?{keyId:n.keyId,modelId:n.modelId,title:n.title}:null;if(!u)return tE;return{tiers:{fast:T(x?.chat?.fast),smart:T(x?.chat?.smart),thinking:T(x?.chat?.thinking),image:T(x?.image),web_research:T(x?.webResearch)}}}function xT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function uT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((T)=>_[T]===void 0)}var UE={isAlreadyReshapedSimpleMode:nu,isAlreadyReshapedAutomationModels:uT};async function JE(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let T of x){let n=T.simple_mode?typeof T.simple_mode==="string"?JSON.parse(T.simple_mode):T.simple_mode:null;if(nu(n))continue;let C=_T(n);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(C)}).where("organizationId","=",T.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let T of u){let n;try{n=typeof T.models==="string"?JSON.parse(T.models):T.models}catch{n={}}if(uT(n))continue;let C=xT(n);if(await _.updateTable("automations").set({models:JSON.stringify({tier:C})}).where("id","=",T.id).execute(),n.thinking?.capabilities?.image)console.log(`[migration 077] automation ${T.id} previously used an image-only model; mapped to "${C}"`)}}async function yE(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var Cu={};m(Cu,{up:()=>$E,down:()=>jE});import{sql as R}from"kysely";async function $E(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await R`
293
293
  ALTER TABLE automations
294
294
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
295
- `.execute(_),await F`
295
+ `.execute(_),await R`
296
296
  ALTER TABLE automations
297
297
  ADD CONSTRAINT chk_automation_kind
298
298
  CHECK (kind IN ('agent', 'tool_call'))
299
- `.execute(_),await F`
299
+ `.execute(_),await R`
300
300
  ALTER TABLE automations
301
301
  ADD CONSTRAINT chk_automation_agent_fields
302
302
  CHECK (kind != 'agent' OR virtual_mcp_id IS NOT NULL)
303
- `.execute(_),await F`
303
+ `.execute(_),await R`
304
304
  ALTER TABLE automations
305
305
  ADD CONSTRAINT chk_automation_tool_call_fields
306
306
  CHECK (
@@ -311,19 +311,19 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
311
311
  AND tool_input IS NOT NULL
312
312
  )
313
313
  )
314
- `.execute(_)}async function JE(_){await F`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await F`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await F`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await F`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await F`
314
+ `.execute(_)}async function jE(_){await R`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await R`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await R`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await R`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await R`
315
315
  ALTER TABLE automations
316
316
  ALTER COLUMN virtual_mcp_id SET NOT NULL
317
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Nu={};m(Nu,{up:()=>jE,down:()=>WE});import{sql as uT}from"kysely";var $E=new Set(["host","docker","agent-sandbox"]);async function jE(_){let x=await uT`
317
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var Nu={};m(Nu,{up:()=>XE,down:()=>ZE});import{sql as mT}from"kysely";var WE=new Set(["host","docker","agent-sandbox"]);async function XE(_){let x=await mT`
318
318
  SELECT id, metadata FROM "connections"
319
319
  WHERE connection_type = 'VIRTUAL'
320
320
  AND metadata IS NOT NULL
321
321
  AND metadata LIKE '%vmMap%'
322
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let n=T.vmMap;if(!n||typeof n!=="object")continue;let C=!1,K={};for(let[E,t]of Object.entries(n)){if(!t||typeof t!=="object"){C=!0;continue}let z={};for(let[U,P]of Object.entries(t)){if(!P||typeof P!=="object"){C=!0;continue}let Z=P.runnerKind;if(Z!==void 0&&!$E.has(Z)){C=!0;continue}z[U]=P}if(Object.keys(z).length>0)K[E]=z;else C=!0}if(!C)continue;T.vmMap=K;let N=JSON.stringify(T);await uT`
322
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let n=T.vmMap;if(!n||typeof n!=="object")continue;let C=!1,K={};for(let[E,z]of Object.entries(n)){if(!z||typeof z!=="object"){C=!0;continue}let t={};for(let[J,P]of Object.entries(z)){if(!P||typeof P!=="object"){C=!0;continue}let Z=P.runnerKind;if(Z!==void 0&&!WE.has(Z)){C=!0;continue}t[J]=P}if(Object.keys(t).length>0)K[E]=t;else C=!0}if(!C)continue;T.vmMap=K;let N=JSON.stringify(T);await mT`
323
323
  UPDATE "connections"
324
324
  SET metadata = ${N}
325
325
  WHERE id = ${u.id}
326
- `.execute(_)}}async function WE(_){}var Ku={};m(Ku,{up:()=>XE,down:()=>ZE});import{sql as r}from"kysely";async function XE(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(r`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await r`
326
+ `.execute(_)}}async function ZE(_){}var Ku={};m(Ku,{up:()=>QE,down:()=>DE});import{sql as r}from"kysely";async function QE(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(r`gen_random_uuid()`)).addColumn("interaction_id","text").addColumn("tool_call_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("message_id","text").addColumn("provider","text",(x)=>x.notNull()).addColumn("model_id","text",(x)=>x.notNull()).addColumn("query","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("attempts","integer",(x)=>x.notNull().defaultTo(0)).addColumn("last_polled_at","timestamptz").addColumn("last_error","text").addColumn("input_tokens","integer").addColumn("output_tokens","integer").addColumn("citations","jsonb").addColumn("result_uri","text").addColumn("result_preview","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(r`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r`now()`)).addColumn("completed_at","timestamptz").execute(),await _.schema.createIndex("async_research_jobs_org_tool_call_unique").on("async_research_jobs").columns(["organization_id","tool_call_id"]).unique().execute(),await _.schema.createIndex("async_research_jobs_thread_created_idx").on("async_research_jobs").columns(["thread_id","created_at desc"]).execute(),await r`
327
327
  CREATE INDEX async_research_jobs_active_idx
328
328
  ON async_research_jobs (status, last_polled_at)
329
329
  WHERE status IN ('pending', 'polling')
@@ -331,7 +331,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.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(_)}async function ZE(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Eu={};m(Eu,{up:()=>QE,down:()=>DE});async function QE(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function DE(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var tu={};m(tu,{up:()=>LE,down:()=>RE});import{sql as i}from"kysely";async function LE(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).execute(),await i`
334
+ `.execute(_)}async function DE(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var Eu={};m(Eu,{up:()=>LE,down:()=>FE});async function LE(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function FE(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var zu={};m(zu,{up:()=>RE,down:()=>HE});import{sql as i}from"kysely";async function RE(_){await _.schema.createTable("secrets").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.references("user.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("encrypted_value","text",(x)=>x.notNull()).addColumn("description","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(i`CURRENT_TIMESTAMP`)).execute(),await i`
335
335
  ALTER TABLE secrets
336
336
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
337
337
  `.execute(_),await i`
@@ -348,7 +348,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
348
348
  CREATE UNIQUE INDEX idx_secrets_org_name
349
349
  ON secrets (organization_id, lower(name))
350
350
  WHERE scope = 'organization'
351
- `.execute(_)}async function RE(_){await _.schema.dropTable("secrets").execute()}var zu={};m(zu,{up:()=>FE,down:()=>HE});async function FE(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function HE(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Pu={};m(Pu,{up:()=>ME,down:()=>fE});import{sql as YE}from"kysely";async function ME(_){await YE`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function fE(_){}var yu={};m(yu,{up:()=>BE,down:()=>GE});import{sql as E_}from"kysely";async function BE(_){await E_`
351
+ `.execute(_)}async function HE(_){await _.schema.dropTable("secrets").execute()}var tu={};m(tu,{up:()=>YE,down:()=>ME});async function YE(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function ME(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var Pu={};m(Pu,{up:()=>fE,down:()=>GE});import{sql as BE}from"kysely";async function fE(_){await BE`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function GE(_){}var Uu={};m(Uu,{up:()=>OE,down:()=>AE});import{sql as E_}from"kysely";async function OE(_){await E_`
352
352
  ALTER TABLE sandbox_runner_state
353
353
  RENAME COLUMN runner_kind TO sandbox_provider_kind
354
354
  `.execute(_),await E_`
@@ -386,7 +386,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
386
386
  EXCEPTION WHEN undefined_table THEN
387
387
  NULL;
388
388
  END; $$
389
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function GE(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await E_`
389
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function AE(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await E_`
390
390
  ALTER TABLE sandbox_runner_state
391
391
  RENAME COLUMN sandbox_provider_kind TO runner_kind
392
392
  `.execute(_),await E_`
@@ -424,7 +424,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
424
424
  EXCEPTION WHEN undefined_table THEN
425
425
  NULL;
426
426
  END; $$
427
- `.execute(_)}var Uu={};m(Uu,{up:()=>OE,down:()=>AE});import{sql as mT}from"kysely";async function OE(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await mT`
427
+ `.execute(_)}var Ju={};m(Ju,{up:()=>IE,down:()=>SE});import{sql as nT}from"kysely";async function IE(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await nT`
428
428
  DO $$ BEGIN
429
429
  UPDATE virtualmcps v
430
430
  SET metadata = jsonb_set(
@@ -463,7 +463,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
463
463
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
464
464
  NULL;
465
465
  END; $$
466
- `.execute(_)}async function AE(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await mT`
466
+ `.execute(_)}async function SE(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await nT`
467
467
  DO $$ BEGIN
468
468
  UPDATE virtualmcps v
469
469
  SET metadata = jsonb_set(
@@ -496,7 +496,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
496
496
  EXCEPTION WHEN undefined_table THEN
497
497
  NULL;
498
498
  END; $$
499
- `.execute(_)}var Ju={};m(Ju,{up:()=>wE,down:()=>SE});import{sql as nT}from"kysely";async function wE(_){await nT`
499
+ `.execute(_)}var yu={};m(yu,{up:()=>wE,down:()=>iE});import{sql as TT}from"kysely";async function wE(_){await TT`
500
500
  UPDATE connections c
501
501
  SET metadata = (
502
502
  jsonb_set(
@@ -540,7 +540,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
540
540
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
541
541
  WHERE entry ? 'vmId'
542
542
  );
543
- `.execute(_),await nT`
543
+ `.execute(_),await TT`
544
544
  UPDATE connections c
545
545
  SET metadata = (
546
546
  jsonb_set(
@@ -594,14 +594,14 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
594
594
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
595
595
  WHERE inner_entry ? 'runnerKind'
596
596
  );
597
- `.execute(_)}async function SE(_){}var $u={};m($u,{up:()=>iE,down:()=>kE});import{sql as IE}from"kysely";async function iE(_){await IE`
597
+ `.execute(_)}async function iE(_){}var $u={};m($u,{up:()=>pE,down:()=>VE});import{sql as kE}from"kysely";async function pE(_){await kE`
598
598
  DELETE FROM ai_provider_keys
599
599
  WHERE provider_id IN ('claude-code', 'codex')
600
- `.execute(_)}async function kE(_){}var ju={};m(ju,{up:()=>pE,down:()=>VE});import{sql as t_}from"kysely";async function pE(_){await t_`
600
+ `.execute(_)}async function VE(_){}var ju={};m(ju,{up:()=>vE,down:()=>qE});import{sql as z_}from"kysely";async function vE(_){await z_`
601
601
  UPDATE sandbox_runner_state
602
602
  SET sandbox_provider_kind = 'desktop'
603
603
  WHERE sandbox_provider_kind = 'remote-user'
604
- `.execute(_),await t_`
604
+ `.execute(_),await z_`
605
605
  UPDATE connections c
606
606
  SET metadata = (
607
607
  jsonb_set(
@@ -644,7 +644,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
644
644
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
645
645
  WHERE kind_key = 'remote-user'
646
646
  );
647
- `.execute(_),await t_`
647
+ `.execute(_),await z_`
648
648
  UPDATE connections c
649
649
  SET metadata = (
650
650
  jsonb_set(
@@ -691,17 +691,17 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
691
691
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
692
692
  WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
693
693
  );
694
- `.execute(_),await t_`
694
+ `.execute(_),await z_`
695
695
  UPDATE threads
696
696
  SET sandbox_provider_kind = 'desktop'
697
697
  WHERE sandbox_provider_kind = 'remote-user'
698
- `.execute(_)}async function VE(_){}var Wu={};m(Wu,{up:()=>vE,down:()=>qE});import{sql as e}from"kysely";async function vE(_){await e`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await e`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function qE(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await e`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await e`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await e`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Xu={};m(Xu,{up:()=>gE,down:()=>cE});import{sql as TT}from"kysely";async function gE(_){await TT`
698
+ `.execute(_)}async function qE(_){}var Wu={};m(Wu,{up:()=>gE,down:()=>cE});import{sql as e}from"kysely";async function gE(_){await e`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await e`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event', 'webhook'))`.execute(_),await _.schema.alterTable("automation_triggers").addColumn("api_key_id","text").execute()}async function cE(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await e`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await e`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await e`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var Xu={};m(Xu,{up:()=>hE,down:()=>oE});import{sql as CT}from"kysely";async function hE(_){await CT`
699
699
  ALTER TABLE organization_domains
700
700
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
701
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function cE(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await TT`
701
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function oE(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await CT`
702
702
  ALTER TABLE organization_domains
703
703
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
704
- `.execute(_)}var Zu={};m(Zu,{up:()=>hE,down:()=>oE});import{sql as z_}from"kysely";async function hE(_){await z_`
704
+ `.execute(_)}var Zu={};m(Zu,{up:()=>aE,down:()=>rE});import{sql as t_}from"kysely";async function aE(_){await t_`
705
705
  UPDATE sandbox_runner_state
706
706
  SET sandbox_provider_kind = CASE sandbox_provider_kind
707
707
  WHEN 'docker' THEN 'local-docker'
@@ -711,7 +711,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
711
711
  ELSE sandbox_provider_kind
712
712
  END
713
713
  WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
714
- `.execute(_),await z_`
714
+ `.execute(_),await t_`
715
715
  UPDATE connections c
716
716
  SET metadata = (
717
717
  (c.metadata::jsonb - 'vmMap')
@@ -720,7 +720,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
720
720
  WHERE c.connection_type = 'VIRTUAL'
721
721
  AND c.metadata IS NOT NULL
722
722
  AND c.metadata::jsonb ? 'vmMap'
723
- `.execute(_),await z_`
723
+ `.execute(_),await t_`
724
724
  UPDATE connections c
725
725
  SET metadata = (
726
726
  jsonb_set(
@@ -781,7 +781,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
781
781
  WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
782
782
  OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
783
783
  );
784
- `.execute(_),await z_`
784
+ `.execute(_),await t_`
785
785
  UPDATE connections c
786
786
  SET metadata = REPLACE(
787
787
  REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
@@ -790,19 +790,19 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.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(_)}async function oE(_){}var Qu={};m(Qu,{up:()=>rE,down:()=>eE});import{sql as CT}from"kysely";var aE=["GLOBAL_SEARCH"];async function rE(_){let x=await CT`
793
+ `.execute(_)}async function rE(_){}var Qu={};m(Qu,{up:()=>sE,down:()=>lE});import{sql as NT}from"kysely";var eE=["GLOBAL_SEARCH"];async function sE(_){let x=await NT`
794
794
  SELECT id, permission FROM "organizationRole"
795
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let n=T.self;if(!Array.isArray(n))continue;if(n.length===1&&n[0]==="*")continue;let C=n,K=Array.from(new Set([...C,...aE]));if(K.length===C.length)continue;T.self=K;let N=JSON.stringify(T);await CT`
795
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let T;try{T=JSON.parse(u.permission)}catch{continue}let n=T.self;if(!Array.isArray(n))continue;if(n.length===1&&n[0]==="*")continue;let C=n,K=Array.from(new Set([...C,...eE]));if(K.length===C.length)continue;T.self=K;let N=JSON.stringify(T);await NT`
796
796
  UPDATE "organizationRole"
797
797
  SET permission = ${N}
798
798
  WHERE id = ${u.id}
799
- `.execute(_)}}async function eE(_){}var Lu={};m(Lu,{up:()=>sE,down:()=>lE});import{sql as Du}from"kysely";async function sE(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Du`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Du`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Du`
799
+ `.execute(_)}}async function lE(_){}var Lu={};m(Lu,{up:()=>dE,down:()=>bE});import{sql as Du}from"kysely";async function dE(_){await _.schema.createTable("org_file_configs").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("name","text",(x)=>x.notNull()).addColumn("description","text").addColumn("bucket","text",(x)=>x.notNull()).addColumn("region","text",(x)=>x.notNull()).addColumn("endpoint","text").addColumn("force_path_style","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("prefix","text").addColumn("encrypted_credentials","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Du`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Du`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await Du`
800
800
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
801
801
  ON org_file_configs (organization_id, lower(name))
802
- `.execute(_)}async function lE(_){await _.schema.dropTable("org_file_configs").execute()}var Ru={};m(Ru,{up:()=>dE,down:()=>bE});import{sql as H}from"kysely";async function dE(_){await H`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await H`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await H`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await H`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await H`
802
+ `.execute(_)}async function bE(_){await _.schema.dropTable("org_file_configs").execute()}var Fu={};m(Fu,{up:()=>_z,down:()=>xz});import{sql as H}from"kysely";async function _z(_){await H`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await H`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await H`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await H`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await H`
803
803
  ALTER TABLE automations
804
804
  ALTER COLUMN virtual_mcp_id SET NOT NULL
805
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function bE(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await H`
805
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function xz(_){await _.schema.alterTable("automations").addColumn("kind","text",(x)=>x.notNull().defaultTo("agent")).addColumn("connection_id","text").addColumn("tool_name","text").addColumn("tool_input","text").execute(),await H`
806
806
  ALTER TABLE automations
807
807
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
808
808
  `.execute(_),await H`
@@ -824,25 +824,25 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
824
824
  AND tool_input IS NOT NULL
825
825
  )
826
826
  )
827
- `.execute(_)}var Fu={};m(Fu,{up:()=>_t,down:()=>xt});async function _t(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function xt(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Yu={};m(Yu,{up:()=>ut,down:()=>mt});import{sql as Hu}from"kysely";var P_="local-docker";async function ut(_){await Hu`delete from sandbox_runner_state where sandbox_provider_kind = ${P_}`.execute(_);let x=await Hu`
827
+ `.execute(_)}var Ru={};m(Ru,{up:()=>uz,down:()=>mz});async function uz(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function mz(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var Yu={};m(Yu,{up:()=>nz,down:()=>Tz});import{sql as Hu}from"kysely";var P_="local-docker";async function nz(_){await Hu`delete from sandbox_runner_state where sandbox_provider_kind = ${P_}`.execute(_);let x=await Hu`
828
828
  SELECT id, metadata FROM "connections"
829
829
  WHERE connection_type = 'VIRTUAL'
830
830
  AND metadata IS NOT NULL
831
831
  AND metadata LIKE ${"%"+P_+"%"}
832
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let n=T.sandboxMap;if(!n||typeof n!=="object")continue;let C=!1,K={};for(let[E,t]of Object.entries(n)){if(!t||typeof t!=="object"){C=!0;continue}let z={};for(let[U,P]of Object.entries(t)){if(!P||typeof P!=="object"){C=!0;continue}if(P_ in P){C=!0;let Z={...P};if(delete Z[P_],Object.keys(Z).length>0)z[U]=Z}else z[U]=P}if(Object.keys(z).length>0)K[E]=z;else C=!0}if(!C)continue;T.sandboxMap=K;let N=JSON.stringify(T);await Hu`
832
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let T;try{T=JSON.parse(u.metadata)}catch{continue}let n=T.sandboxMap;if(!n||typeof n!=="object")continue;let C=!1,K={};for(let[E,z]of Object.entries(n)){if(!z||typeof z!=="object"){C=!0;continue}let t={};for(let[J,P]of Object.entries(z)){if(!P||typeof P!=="object"){C=!0;continue}if(P_ in P){C=!0;let Z={...P};if(delete Z[P_],Object.keys(Z).length>0)t[J]=Z}else t[J]=P}if(Object.keys(t).length>0)K[E]=t;else C=!0}if(!C)continue;T.sandboxMap=K;let N=JSON.stringify(T);await Hu`
833
833
  UPDATE "connections"
834
834
  SET metadata = ${N}
835
835
  WHERE id = ${u.id}
836
- `.execute(_)}}async function mt(_){}var Mu={};m(Mu,{up:()=>nt,down:()=>Tt});import{sql as y_}from"kysely";async function nt(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await y_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await y_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await y_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await y_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function Tt(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var fu={};m(fu,{up:()=>Ct,down:()=>Nt});async function Ct(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function Nt(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var Bu={};m(Bu,{up:()=>Kt,down:()=>Et});async function Kt(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function Et(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var Gu={};m(Gu,{up:()=>tt,down:()=>zt});async function tt(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function zt(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var Ou={};m(Ou,{up:()=>Pt,down:()=>yt});async function Pt(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function yt(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var Au={};m(Au,{up:()=>Ut,down:()=>Jt});async function Ut(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function Jt(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var Su={};m(Su,{up:()=>jt,down:()=>Wt});import{sql as L}from"kysely";var W="cluster",X="agent-sandbox";function k(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function wu(_,x,u){if(!k(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function U_(_){if(!k(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==W&&_.sandboxProviderKind!==X&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!k(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function $t(_,x,u){if(!k(_))return null;let T=!1,n={};for(let[C,K]of Object.entries(_)){if(!k(K)){n[C]=K;continue}let N={};for(let[E,t]of Object.entries(K)){if(!k(t)){N[E]=t;continue}let z={};for(let[U,P]of Object.entries(t)){if(U===x){if(T=!0,!(u in t))z[u]=wu(P,x,u);else if(!U_(t[u])&&U_(P))z[u]=wu(P,x,u);continue}let Z=wu(P,x,u);if(Z!==P)T=!0;if(U===u&&U in z&&U_(z[U])&&!U_(Z))continue;z[U]=Z}N[E]=z}n[C]=N}return{sandboxMap:n,changed:T}}async function NT(_,x,u){let T=await L`
836
+ `.execute(_)}}async function Tz(_){}var Mu={};m(Mu,{up:()=>Cz,down:()=>Nz});import{sql as U_}from"kysely";async function Cz(_){await _.schema.createTable("thread_message_parts").addColumn("id","text",(x)=>x.primaryKey()).addColumn("seq","integer",(x)=>x.notNull()).addColumn("org_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("message_id","text",(x)=>x.notNull()).addColumn("role","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull()).addColumn("payload","jsonb",(x)=>x.notNull()).addColumn("payload_ref","text").addColumn("metadata","jsonb").addColumn("created_at","text",(x)=>x.notNull()).execute(),await U_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await U_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await U_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await U_`CREATE INDEX idx_tmp_message ON thread_message_parts (thread_id, message_id)`.execute(_),await _.schema.alterTable("threads").addColumn("message_storage_version","integer",(x)=>x.notNull().defaultTo(1)).addColumn("last_progress_at","timestamptz").execute()}async function Nz(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var Bu={};m(Bu,{up:()=>Kz,down:()=>Ez});async function Kz(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function Ez(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var fu={};m(fu,{up:()=>zz,down:()=>tz});async function zz(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function tz(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var Gu={};m(Gu,{up:()=>Pz,down:()=>Uz});async function Pz(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function Uz(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var Ou={};m(Ou,{up:()=>Jz,down:()=>yz});async function Jz(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}async function yz(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var Au={};m(Au,{up:()=>$z,down:()=>jz});async function $z(_){await _.schema.dropTable("thread_observations").ifExists().execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}async function jz(_){await _.schema.alterTable("organization_settings").addColumn("observational_config","text").execute(),await _.schema.alterTable("threads").addColumn("is_observation","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.createTable("thread_observations").addColumn("thread_id","text",(x)=>x.notNull().references("threads.id").onDelete("cascade")).addColumn("observer_id","text",(x)=>x.notNull()).addColumn("last_observed_at","text",(x)=>x.notNull()).addPrimaryKeyConstraint("thread_observations_pkey",["thread_id","observer_id"]).execute()}var Su={};m(Su,{up:()=>Xz,down:()=>Zz});import{sql as L}from"kysely";var W="cluster",X="agent-sandbox";function k(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function Iu(_,x,u){if(!k(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function J_(_){if(!k(_))return!1;if(typeof _.sandboxHandle!=="string")return!1;if(_.previewUrl!==null&&typeof _.previewUrl!=="string")return!1;if(_.sandboxApiUrl!==void 0&&_.sandboxApiUrl!==null&&typeof _.sandboxApiUrl!=="string")return!1;if(_.sandboxProviderKind!==void 0&&_.sandboxProviderKind!==W&&_.sandboxProviderKind!==X&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!k(_.startedWith))return!1;for(let x of["packageManager","port","path"]){let u=_.startedWith[x];if(u!==void 0&&u!==null&&typeof u!=="string")return!1}}return!0}function Wz(_,x,u){if(!k(_))return null;let T=!1,n={};for(let[C,K]of Object.entries(_)){if(!k(K)){n[C]=K;continue}let N={};for(let[E,z]of Object.entries(K)){if(!k(z)){N[E]=z;continue}let t={};for(let[J,P]of Object.entries(z)){if(J===x){if(T=!0,!(u in z))t[u]=Iu(P,x,u);else if(!J_(z[u])&&J_(P))t[u]=Iu(P,x,u);continue}let Z=Iu(P,x,u);if(Z!==P)T=!0;if(J===u&&J in t&&J_(t[J])&&!J_(Z))continue;t[J]=Z}N[E]=t}n[C]=N}return{sandboxMap:n,changed:T}}async function KT(_,x,u){let T=await L`
837
837
  SELECT id, metadata FROM connections
838
838
  WHERE connection_type = 'VIRTUAL'
839
839
  AND metadata IS NOT NULL
840
840
  AND metadata LIKE ${"%"+x+"%"}
841
- `.execute(_);for(let n of T.rows){if(!n.metadata)continue;let C;try{C=JSON.parse(n.metadata)}catch{continue}let K=$t(C.sandboxMap,x,u);if(!K?.changed)continue;C.sandboxMap=K.sandboxMap,await L`
841
+ `.execute(_);for(let n of T.rows){if(!n.metadata)continue;let C;try{C=JSON.parse(n.metadata)}catch{continue}let K=Wz(C.sandboxMap,x,u);if(!K?.changed)continue;C.sandboxMap=K.sandboxMap,await L`
842
842
  UPDATE connections
843
843
  SET metadata = ${JSON.stringify(C)}
844
844
  WHERE id = ${n.id}
845
- `.execute(_)}}async function jt(_){await L`
845
+ `.execute(_)}}async function Xz(_){await L`
846
846
  UPDATE threads
847
847
  SET sandbox_provider_kind = ${X}
848
848
  WHERE sandbox_provider_kind = ${W}
@@ -871,7 +871,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
871
871
  UPDATE sandbox_runner_state
872
872
  SET sandbox_provider_kind = ${X}
873
873
  WHERE sandbox_provider_kind = ${W}
874
- `.execute(_),await NT(_,W,X)}async function Wt(_){await L`
874
+ `.execute(_),await KT(_,W,X)}async function Zz(_){await L`
875
875
  UPDATE threads
876
876
  SET sandbox_provider_kind = ${W}
877
877
  WHERE sandbox_provider_kind = ${X}
@@ -900,15 +900,15 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
900
900
  UPDATE sandbox_runner_state
901
901
  SET sandbox_provider_kind = ${W}
902
902
  WHERE sandbox_provider_kind = ${X}
903
- `.execute(_),await NT(_,X,W)}var Iu={};m(Iu,{up:()=>Xt,down:()=>Zt});import{sql as f}from"kysely";async function Xt(_){await f`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(f`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(f`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(f`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(f`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await f`
903
+ `.execute(_),await KT(_,X,W)}var wu={};m(wu,{up:()=>Qz,down:()=>Dz});import{sql as B}from"kysely";async function Qz(_){await B`CREATE SEQUENCE IF NOT EXISTS org_fs_entry_seq`.execute(_),await _.schema.createTable("org_fs_entry").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("volume","text",(x)=>x.notNull()).addColumn("path","text",(x)=>x.notNull()).addColumn("parent","text",(x)=>x.notNull()).addColumn("kind","text",(x)=>x.notNull().check(B`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(B`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(B`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(B`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("org_fs_entry_pk",["organization_id","volume","path"]).execute(),await _.schema.createIndex("idx_org_fs_entry_changes").on("org_fs_entry").columns(["organization_id","volume","seq"]).execute(),await B`
904
904
  CREATE INDEX idx_org_fs_entry_parent
905
905
  ON org_fs_entry (organization_id, volume, parent)
906
906
  WHERE deleted_at IS NULL
907
- `.execute(_),await f`
907
+ `.execute(_),await B`
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(_)}async function Zt(_){await _.schema.dropTable("org_fs_entry").execute(),await f`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var iu={};m(iu,{up:()=>Qt,down:()=>Dt});async function Qt(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function Dt(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var ku={};m(ku,{up:()=>Lt,down:()=>Rt});import{sql as KT}from"kysely";async function Lt(_){await KT`
911
+ `.execute(_)}async function Dz(_){await _.schema.dropTable("org_fs_entry").execute(),await B`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var iu={};m(iu,{up:()=>Lz,down:()=>Fz});async function Lz(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function Fz(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var ku={};m(ku,{up:()=>Rz,down:()=>Hz});import{sql as ET}from"kysely";async function Rz(_){await ET`
912
912
  INSERT INTO "organization" (id, name, slug, "createdAt")
913
913
  SELECT
914
914
  'org_orgfs_public_skills',
@@ -922,13 +922,13 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
922
922
  END,
923
923
  now()
924
924
  ON CONFLICT (id) DO NOTHING
925
- `.execute(_)}async function Rt(_){await KT`
925
+ `.execute(_)}async function Hz(_){await ET`
926
926
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
927
- `.execute(_)}var pu={};m(pu,{up:()=>Ft,down:()=>Ht});async function Ft(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function Ht(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Vu={};m(Vu,{up:()=>Yt,down:()=>Mt});import{sql as ET}from"kysely";async function Yt(_){await ET`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function Mt(_){await ET`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var vu={};m(vu,{up:()=>Bt,down:()=>Gt});import{sql as ft}from"kysely";async function Bt(_){await ft`
927
+ `.execute(_)}var pu={};m(pu,{up:()=>Yz,down:()=>Mz});async function Yz(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function Mz(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var Vu={};m(Vu,{up:()=>Bz,down:()=>fz});import{sql as zT}from"kysely";async function Bz(_){await zT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function fz(_){await zT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var vu={};m(vu,{up:()=>Oz,down:()=>Az});import{sql as Gz}from"kysely";async function Oz(_){await Gz`
928
928
  UPDATE downstream_tokens
929
929
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
930
930
  WHERE "expiresAt" IS NULL
931
- `.execute(_)}async function Gt(_){}var qu={};m(qu,{up:()=>Ot,down:()=>At});async function Ot(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function At(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var gu={};m(gu,{up:()=>wt,down:()=>St});async function wt(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function St(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var cu={};m(cu,{up:()=>It,down:()=>it});async function It(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function it(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var hu={};m(hu,{up:()=>kt,down:()=>pt});async function kt(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function pt(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var ou={};m(ou,{up:()=>Vt,down:()=>vt});async function Vt(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function vt(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var au={};m(au,{up:()=>qt,down:()=>gt});import{sql as tT}from"kysely";async function qt(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(tT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function gt(_){await _.schema.dropTable("org_sites").execute()}var ru={};m(ru,{up:()=>ct,down:()=>ht});async function ct(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function ht(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var eu={};m(eu,{up:()=>ot,down:()=>at});import{sql as $}from"kysely";async function ot(_){await _.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 $`
931
+ `.execute(_)}async function Az(_){}var qu={};m(qu,{up:()=>Iz,down:()=>Sz});async function Iz(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function Sz(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var gu={};m(gu,{up:()=>wz,down:()=>iz});async function wz(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function iz(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var cu={};m(cu,{up:()=>kz,down:()=>pz});async function kz(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function pz(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var hu={};m(hu,{up:()=>Vz,down:()=>vz});async function Vz(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function vz(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var ou={};m(ou,{up:()=>qz,down:()=>gz});async function qz(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function gz(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var au={};m(au,{up:()=>cz,down:()=>hz});import{sql as tT}from"kysely";async function cz(_){await _.schema.createTable("org_sites").addColumn("slug","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("source","text",(x)=>x.notNull().defaultTo("deco-import")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(tT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function hz(_){await _.schema.dropTable("org_sites").execute()}var ru={};m(ru,{up:()=>oz,down:()=>az});async function oz(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function az(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var eu={};m(eu,{up:()=>rz,down:()=>ez});import{sql as $}from"kysely";async function rz(_){await _.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 $`
932
932
  UPDATE organization_domains
933
933
  SET
934
934
  id = gen_random_uuid()::text,
@@ -937,18 +937,18 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
937
937
  verification_method = 'email',
938
938
  verified_at = created_at
939
939
  WHERE id IS NULL
940
- `.execute(_),await $`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await $`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function at(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await $`
940
+ `.execute(_),await $`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await $`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await $`ALTER TABLE organization_domains ALTER COLUMN verification_status SET DEFAULT 'pending'`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("auto_join_enabled").execute(),await _.schema.createIndex("organization_domains_org_domain_idx").unique().ifNotExists().on("organization_domains").columns(["organization_id","domain"]).execute()}async function ez(_){await _.schema.dropIndex("organization_domains_org_domain_idx").ifExists().execute(),await _.schema.alterTable("organization_domains").addColumn("auto_join_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await $`
941
941
  UPDATE organization_domains
942
942
  SET auto_join_enabled = (join_mode = 'auto')
943
- `.execute(_),await $`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await $`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var su={};m(su,{up:()=>rt,down:()=>et});import{sql as J_}from"kysely";async function rt(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(J_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(J_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(J_`now()`)).execute(),await J_`
943
+ `.execute(_),await $`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await $`ALTER TABLE organization_domains ADD PRIMARY KEY (organization_id)`.execute(_),await _.schema.alterTable("organization_domains").dropColumn("id").dropColumn("join_mode").dropColumn("verification_status").dropColumn("verification_method").dropColumn("verification_token").dropColumn("verified_at").execute()}var su={};m(su,{up:()=>sz,down:()=>lz});import{sql as y_}from"kysely";async function sz(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(y_`gen_random_uuid()::text`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("status","text",(x)=>x.notNull().defaultTo("pending")).addColumn("decided_by","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("decided_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).execute(),await y_`
944
944
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
945
945
  ON organization_join_requests (organization_id, user_id)
946
946
  WHERE status = 'pending'
947
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function et(_){await _.schema.dropTable("organization_join_requests").execute()}var lu={};m(lu,{up:()=>st,down:()=>lt});async function st(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function lt(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var du={};m(du,{up:()=>dt,down:()=>bt});async function dt(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function bt(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var xm={};m(xm,{up:()=>uz,splitWebResearchTier:()=>_m,down:()=>mz,__testing:()=>xz});function _z(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function bu(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function _m(_){if(!_||bu(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...n}=x,C=null,K=null;if(u)if(_z(u.modelId))K=u;else C=u;return{..._,tiers:{...n,web_search:C,deep_research:K}}}var xz={splitWebResearchTier:_m,isAlreadySplit:bu};async function uz(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(bu(T))continue;let n=_m(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(n)}).where("organizationId","=",u.organizationId).execute()}}async function mz(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var um={};m(um,{up:()=>nz,down:()=>Tz});import{sql as s}from"kysely";async function nz(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await s`
947
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function lz(_){await _.schema.dropTable("organization_join_requests").execute()}var lu={};m(lu,{up:()=>dz,down:()=>bz});async function dz(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function bz(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var du={};m(du,{up:()=>_t,down:()=>xt});async function _t(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function xt(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var xm={};m(xm,{up:()=>nt,splitWebResearchTier:()=>_m,down:()=>Tt,__testing:()=>mt});function ut(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function bu(_){if(!_||typeof _!=="object")return!1;let x=_.tiers;if(!x||typeof x!=="object")return!1;return"web_search"in x||"deep_research"in x}function _m(_){if(!_||bu(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:T,...n}=x,C=null,K=null;if(u)if(ut(u.modelId))K=u;else C=u;return{..._,tiers:{...n,web_search:C,deep_research:K}}}var mt={splitWebResearchTier:_m,isAlreadySplit:bu};async function nt(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let T=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(bu(T))continue;let n=_m(T);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(n)}).where("organizationId","=",u.organizationId).execute()}}async function Tt(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var um={};m(um,{up:()=>Ct,down:()=>Nt});import{sql as s}from"kysely";async function Ct(_){await _.schema.createTable("connection_workload_tokens").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("token_hash","text",(x)=>x.notNull().unique()).addColumn("token_prefix","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull().defaultTo("default")).addColumn("revoked_at","timestamptz").addColumn("last_used_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await s`
948
948
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
949
949
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
950
950
  WHERE revoked_at IS NULL
951
- `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function Tz(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var mm={};m(mm,{up:()=>Cz,down:()=>Nz});async function Cz(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function Nz(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var nm={};m(nm,{up:()=>Kz,down:()=>Ez});import{sql as A}from"kysely";async function Kz(_){await A`
951
+ `.execute(_),await _.schema.createTable("connection_credential_grants").addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("subject_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("target_connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("scope","text",(x)=>x.notNull()).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_credential_grants_subject").on("connection_credential_grants").columns(["organization_id","subject_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_target").on("connection_credential_grants").columns(["organization_id","target_connection_id"]).execute(),await _.schema.createIndex("idx_connection_credential_grants_unique").on("connection_credential_grants").columns(["organization_id","subject_connection_id","target_connection_id","scope"]).unique().execute()}async function Nt(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var mm={};m(mm,{up:()=>Kt,down:()=>Et});async function Kt(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function Et(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var nm={};m(nm,{up:()=>zt,down:()=>tt});import{sql as A}from"kysely";async function zt(_){await A`
952
952
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
953
953
  RETURNS jsonb AS $fn$
954
954
  BEGIN
@@ -1007,7 +1007,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1007
1007
  BEFORE INSERT ON connection_aggregations
1008
1008
  FOR EACH ROW
1009
1009
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1010
- `.execute(_)}async function Ez(_){await A`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await A`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await A`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Cm={};m(Cm,{up:()=>tz,down:()=>zz});import{sql as Tm}from"kysely";async function tz(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Tm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Tm`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(Tm`false`)).execute()}async function zz(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Nm={};m(Nm,{up:()=>Pz,down:()=>yz});async function Pz(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function yz(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Km={};m(Km,{up:()=>Uz,down:()=>Jz});async function Uz(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function Jz(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var Em={};m(Em,{up:()=>$z,down:()=>jz});async function $z(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function jz(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var tm={};m(tm,{up:()=>Xz,down:()=>Zz});import{sql as Wz}from"kysely";async function Xz(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Wz`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function Zz(_){await _.schema.dropTable("task_board_item_threads").execute()}var zm={};m(zm,{up:()=>Qz,down:()=>Dz});async function Qz(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function Dz(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Pm={};m(Pm,{up:()=>Rz,down:()=>Fz});import{sql as Lz}from"kysely";async function Rz(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Lz`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function Fz(_){await _.schema.dropTable("task_board_item_prs").execute()}var ym={};m(ym,{up:()=>Yz,down:()=>Mz});import{sql as Hz}from"kysely";async function Yz(_){await Hz`
1010
+ `.execute(_)}async function tt(_){await A`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await A`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await A`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var Cm={};m(Cm,{up:()=>Pt,down:()=>Ut});import{sql as Tm}from"kysely";async function Pt(_){await _.schema.createTable("task_board_items").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("title","text",(x)=>x.notNull()).addColumn("description","text").addColumn("status","text",(x)=>x.notNull().defaultTo("triage")).addColumn("priority","text",(x)=>x.notNull().defaultTo("medium")).addColumn("assignee_id","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Tm`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Tm`now()`)).execute(),await _.schema.createIndex("idx_task_board_items_org").on("task_board_items").column("organization_id").execute(),await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(Tm`false`)).execute()}async function Ut(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var Nm={};m(Nm,{up:()=>Jt,down:()=>yt});async function Jt(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function yt(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var Km={};m(Km,{up:()=>$t,down:()=>jt});async function $t(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function jt(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var Em={};m(Em,{up:()=>Wt,down:()=>Xt});async function Wt(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function Xt(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var zm={};m(zm,{up:()=>Qt,down:()=>Dt});import{sql as Zt}from"kysely";async function Qt(_){await _.schema.createTable("task_board_item_threads").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("thread_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Zt`now()`)).addPrimaryKeyConstraint("task_board_item_threads_pkey",["task_board_item_id","thread_id"]).execute(),await _.schema.createIndex("task_board_item_threads_item_idx").on("task_board_item_threads").columns(["organization_id","task_board_item_id"]).execute(),await _.schema.createIndex("task_board_item_threads_thread_idx").on("task_board_item_threads").column("thread_id").execute()}async function Dt(_){await _.schema.dropTable("task_board_item_threads").execute()}var tm={};m(tm,{up:()=>Lt,down:()=>Ft});async function Lt(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_thread_id_fkey",["thread_id"],"threads",["id"],(x)=>x.onDelete("cascade")).execute()}async function Ft(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var Pm={};m(Pm,{up:()=>Ht,down:()=>Yt});import{sql as Rt}from"kysely";async function Ht(_){await _.schema.createTable("task_board_item_prs").addColumn("task_board_item_id","text",(x)=>x.notNull()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("url","text",(x)=>x.notNull()).addColumn("pr_number","integer",(x)=>x.notNull()).addColumn("repo_owner","text",(x)=>x.notNull()).addColumn("repo_name","text",(x)=>x.notNull()).addColumn("connection_id","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Rt`now()`)).addPrimaryKeyConstraint("task_board_item_prs_pkey",["task_board_item_id","url"]).execute(),await _.schema.createIndex("task_board_item_prs_item_idx").on("task_board_item_prs").columns(["organization_id","task_board_item_id"]).execute()}async function Yt(_){await _.schema.dropTable("task_board_item_prs").execute()}var Um={};m(Um,{up:()=>Bt,down:()=>ft});import{sql as Mt}from"kysely";async function Bt(_){await Mt`
1011
1011
  DELETE FROM member
1012
1012
  WHERE id IN (
1013
1013
  SELECT id FROM (
@@ -1026,38 +1026,38 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1026
1026
  ) ranked
1027
1027
  WHERE ranked.rn > 1
1028
1028
  )
1029
- `.execute(_)}async function Mz(_){}var Um={};m(Um,{up:()=>fz,down:()=>Bz});async function fz(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function Bz(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var Jm={};m(Jm,{up:()=>Gz,down:()=>Oz});async function Gz(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function Oz(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var $m={};m($m,{up:()=>wz,down:()=>Sz});import{sql as Az}from"kysely";async function wz(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Az`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function Sz(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var jm={};m(jm,{up:()=>iz,down:()=>kz});import{sql as Iz}from"kysely";async function iz(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Iz`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function kz(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var Wm={};m(Wm,{up:()=>pz,down:()=>Vz});import{sql as $_}from"kysely";async function pz(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",$_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",$_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function Vz(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var Xm={};m(Xm,{up:()=>vz,down:()=>qz});import{sql as j_}from"kysely";async function vz(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await j_`
1029
+ `.execute(_)}async function ft(_){}var Jm={};m(Jm,{up:()=>Gt,down:()=>Ot});async function Gt(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function Ot(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var ym={};m(ym,{up:()=>At,down:()=>It});async function At(_){await _.schema.alterTable("task_board_item_threads").addForeignKeyConstraint("task_board_item_threads_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute(),await _.schema.alterTable("task_board_item_prs").addForeignKeyConstraint("task_board_item_prs_task_board_item_id_fkey",["task_board_item_id"],"task_board_items",["id"],(x)=>x.onDelete("cascade")).execute()}async function It(_){await _.schema.alterTable("task_board_item_prs").dropConstraint("task_board_item_prs_task_board_item_id_fkey").execute(),await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_task_board_item_id_fkey").execute()}var $m={};m($m,{up:()=>wt,down:()=>it});import{sql as St}from"kysely";async function wt(_){await _.schema.createTable("task_board_import_runs").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("run_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(St`now()`)).addPrimaryKeyConstraint("task_board_import_runs_pkey",["organization_id","run_id"]).execute(),await _.schema.alterTable("task_board_items").addColumn("external_key","text").execute(),await _.schema.createIndex("idx_task_board_items_org_external_key").on("task_board_items").columns(["organization_id","external_key"]).execute()}async function it(_){await _.schema.dropIndex("idx_task_board_items_org_external_key").execute(),await _.schema.alterTable("task_board_items").dropColumn("external_key").execute(),await _.schema.dropTable("task_board_import_runs").execute()}var jm={};m(jm,{up:()=>pt,down:()=>Vt});import{sql as kt}from"kysely";async function pt(_){await _.schema.createTable("agent_sandbox_runner_state").addColumn("project_ref","text",(x)=>x.notNull()).addColumn("sandbox_provider_kind","text",(x)=>x.notNull()).addColumn("handle","text",(x)=>x.notNull()).addColumn("state","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(kt`now()`)).addPrimaryKeyConstraint("agent_sandbox_runner_state_pkey",["project_ref","sandbox_provider_kind"]).execute(),await _.schema.createIndex("agent_sandbox_runner_state_handle_idx").on("agent_sandbox_runner_state").column("handle").execute()}async function Vt(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var Wm={};m(Wm,{up:()=>vt,down:()=>qt});import{sql as $_}from"kysely";async function vt(_){await _.schema.createTable("agent_sandbox_sessions").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("virtual_mcp_id","text",(x)=>x.notNull()).addColumn("branch","text",(x)=>x.notNull()).addColumn("thread_id","text").addColumn("sandbox_handle","text").addColumn("preview_url","text").addColumn("sandbox_api_url","text").addColumn("desired_state","text",(x)=>x.notNull().defaultTo("running")).addColumn("status","text",(x)=>x.notNull().defaultTo("provisioning")).addColumn("generation","integer",(x)=>x.notNull().defaultTo(1)).addColumn("started_with","jsonb").addColumn("failure_reason","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("last_started_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",$_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",$_`status in ('provisioning', 'ready', 'missing', 'failed', 'stopping', 'reaping', 'deleting', 'stopped')`).execute(),await _.schema.createIndex("agent_sandbox_sessions_vm_updated_idx").on("agent_sandbox_sessions").columns(["organization_id","virtual_mcp_id","updated_at"]).execute(),await _.schema.createIndex("agent_sandbox_sessions_thread_idx").on("agent_sandbox_sessions").columns(["organization_id","thread_id"]).execute()}async function qt(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var Xm={};m(Xm,{up:()=>gt,down:()=>ct});import{sql as j_}from"kysely";async function gt(_){await _.schema.createTable("organization_billing").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).addColumn("status","text",(x)=>x.notNull().defaultTo("none")).addColumn("stripe_customer_id","text").addColumn("stripe_subscription_id","text").addColumn("current_period_end","timestamptz").addColumn("included_report_url","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).execute(),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(j_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await j_`
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(_)}async function qz(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var Zm={};m(Zm,{up:()=>gz,down:()=>cz});import{sql as zT}from"kysely";async function gz(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(zT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(zT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function cz(_){await _.schema.dropTable("seat_change_log").execute()}var Qm={};m(Qm,{up:()=>hz,down:()=>oz});async function hz(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function oz(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var Dm={};m(Dm,{up:()=>az,down:()=>rz});import{sql as PT}from"kysely";async function az(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await PT`
1033
+ `.execute(_)}async function ct(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var Zm={};m(Zm,{up:()=>ht,down:()=>ot});import{sql as PT}from"kysely";async function ht(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(PT`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(PT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function ot(_){await _.schema.dropTable("seat_change_log").execute()}var Qm={};m(Qm,{up:()=>at,down:()=>rt});async function at(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function rt(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var Dm={};m(Dm,{up:()=>et,down:()=>st});import{sql as UT}from"kysely";async function et(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await UT`
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
1037
- `.execute(_)}async function rz(_){await PT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var Lm={};m(Lm,{up:()=>ez,down:()=>sz});async function ez(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function sz(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var Rm={};m(Rm,{up:()=>lz,down:()=>dz});import{sql as yT}from"kysely";async function lz(_){await yT`
1037
+ `.execute(_)}async function st(_){await UT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var Lm={};m(Lm,{up:()=>lt,down:()=>dt});async function lt(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function dt(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var Fm={};m(Fm,{up:()=>bt,down:()=>_0});import{sql as JT}from"kysely";async function bt(_){await JT`
1038
1038
  create index idx_org_billing_benefits_pending
1039
1039
  on organization_billing (updated_at)
1040
1040
  where benefits_reference_id is not null
1041
- `.execute(_)}async function dz(_){await yT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var Fm={};m(Fm,{up:()=>bz,down:()=>_0});import{sql as UT}from"kysely";async function bz(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(UT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(UT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function _0(_){await _.schema.dropTable("user_model_preferences").execute()}var Hm={};m(Hm,{up:()=>x0,down:()=>u0});async function x0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function u0(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var Ym={};m(Ym,{up:()=>m0,down:()=>n0});async function m0(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function n0(_){}var Mm={};m(Mm,{up:()=>T0,down:()=>C0});import{sql as JT}from"kysely";async function T0(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await JT`
1041
+ `.execute(_)}async function _0(_){await JT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var Rm={};m(Rm,{up:()=>x0,down:()=>u0});import{sql as yT}from"kysely";async function x0(_){await _.schema.createTable("user_model_preferences").addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("tiers","jsonb",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(yT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(yT`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_model_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_model_preferences_organization_id_idx").on("user_model_preferences").column("organization_id").execute()}async function u0(_){await _.schema.dropTable("user_model_preferences").execute()}var Hm={};m(Hm,{up:()=>m0,down:()=>n0});async function m0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function n0(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var Ym={};m(Ym,{up:()=>T0,down:()=>C0});async function T0(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function C0(_){}var Mm={};m(Mm,{up:()=>N0,down:()=>K0});import{sql as $T}from"kysely";async function N0(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await $T`
1042
1042
  UPDATE organization_settings
1043
1043
  SET flags = jsonb_build_object('reports_only', reports_only)
1044
1044
  WHERE reports_only IS NOT NULL
1045
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function C0(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await JT`
1045
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function K0(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await $T`
1046
1046
  UPDATE organization_settings
1047
1047
  SET reports_only = (flags ->> 'reports_only')::boolean
1048
1048
  WHERE flags ? 'reports_only'
1049
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var fm={};m(fm,{up:()=>K0,down:()=>E0});import{sql as N0}from"kysely";async function K0(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await N0`
1049
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var Bm={};m(Bm,{up:()=>z0,down:()=>t0});import{sql as E0}from"kysely";async function z0(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await E0`
1050
1050
  update task_board_items
1051
1051
  set sort_order = -extract(epoch from created_at)
1052
- `.execute(_)}async function E0(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var Bm={};m(Bm,{up:()=>t0,down:()=>z0,ACTIONS:()=>$T});import{sql as W_}from"kysely";var $T=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function t0(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(W_`now()`)).addCheckConstraint("chk_task_board_activity_action",W_`action IN (${W_.join($T.map((x)=>W_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function z0(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var Om={};m(Om,{up:()=>P0,down:()=>y0,ACTIONS:()=>Gm});import{sql as l}from"kysely";var Gm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function P0(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(l`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await jT(_,Gm)}async function y0(_){await jT(_,Gm.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function jT(_,x){await l`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await l`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${l.join(x.map((u)=>l.lit(u)))}))`.execute(_)}var wm={};m(wm,{up:()=>J0,down:()=>$0});import{sql as WT}from"kysely";function Am(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function U0(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Am(T)}catch{return Am(_.connection_url)}if(_.title)return Am(_.title);return _.id}async function J0(_){let x=await WT`
1052
+ `.execute(_)}async function t0(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var fm={};m(fm,{up:()=>P0,down:()=>U0,ACTIONS:()=>jT});import{sql as W_}from"kysely";var jT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function P0(_){await _.schema.createTable("task_board_activity").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("action","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb").addColumn("occurred_at","timestamptz",(x)=>x.notNull().defaultTo(W_`now()`)).addCheckConstraint("chk_task_board_activity_action",W_`action IN (${W_.join(jT.map((x)=>W_.lit(x)))})`).execute(),await _.schema.createIndex("idx_task_board_activity_item").on("task_board_activity").columns(["task_board_item_id","occurred_at"]).execute()}async function U0(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var Om={};m(Om,{up:()=>J0,down:()=>y0,ACTIONS:()=>Gm});import{sql as l}from"kysely";var Gm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function J0(_){await _.schema.alterTable("organization_tags").addColumn("color","text").execute(),await _.schema.createTable("task_board_item_tags").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("id","text",(x)=>x.notNull().references("organization_tags.id").onDelete("cascade")).addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(l`now()`)).addPrimaryKeyConstraint("task_board_item_tags_pkey",["task_board_item_id","id"]).execute(),await _.schema.createIndex("idx_task_board_item_tags_tag").on("task_board_item_tags").columns(["id"]).execute(),await WT(_,Gm)}async function y0(_){await WT(_,Gm.filter((x)=>x!=="tags_changed")),await _.schema.dropIndex("idx_task_board_item_tags_tag").execute(),await _.schema.dropTable("task_board_item_tags").execute(),await _.schema.alterTable("organization_tags").dropColumn("color").execute()}async function WT(_,x){await l`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await l`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${l.join(x.map((u)=>l.lit(u)))}))`.execute(_)}var Im={};m(Im,{up:()=>j0,down:()=>W0});import{sql as XT}from"kysely";function Am(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function $0(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),T=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return Am(T)}catch{return Am(_.connection_url)}if(_.title)return Am(_.title);return _.id}async function j0(_){let x=await XT`
1053
1053
  SELECT id, app_name, connection_url, title, slug
1054
1054
  FROM connections
1055
1055
  WHERE connection_type != 'VIRTUAL'
1056
- `.execute(_),u=0;for(let T of x.rows){let n=U0(T);if(n===T.slug)continue;await WT`UPDATE connections SET slug = ${n} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function $0(){}var Sm={};m(Sm,{up:()=>W0,down:()=>X0});import{sql as j0}from"kysely";async function W0(_){await j0`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(_)}async function X0(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var im={};m(im,{up:()=>Q0,down:()=>D0,ACTIONS:()=>Im});import{sql as X_}from"kysely";var Im=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],Z0=new Set(["review_requested","review_approved","review_changes_requested"]);async function Q0(_){await XT(_,Im)}async function D0(_){await XT(_,Im.filter((x)=>!Z0.has(x)))}async function XT(_,x){await X_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X_.join(x.map((u)=>X_.lit(u)))}))`.execute(_)}var km={};m(km,{up:()=>R0,down:()=>F0});import{sql as L0}from"kysely";async function R0(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(L0`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await _.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function F0(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var Vm={};m(Vm,{up:()=>Y0,down:()=>M0,ACTIONS:()=>pm});import{sql as Z_}from"kysely";var pm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],H0=new Set(["merge_conflict_resolution"]);async function Y0(_){await ZT(_,pm)}async function M0(_){await ZT(_,pm.filter((x)=>!H0.has(x)))}async function ZT(_,x){await Z_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Z_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Z_.join(x.map((u)=>Z_.lit(u)))}))`.execute(_)}var vm={};m(vm,{up:()=>f0,down:()=>B0});import{sql as d}from"kysely";async function f0(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await d`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function B0(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await d`
1056
+ `.execute(_),u=0;for(let T of x.rows){let n=$0(T);if(n===T.slug)continue;await XT`UPDATE connections SET slug = ${n} WHERE id = ${T.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function W0(){}var Sm={};m(Sm,{up:()=>Z0,down:()=>Q0});import{sql as X0}from"kysely";async function Z0(_){await X0`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(_)}async function Q0(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var im={};m(im,{up:()=>L0,down:()=>F0,ACTIONS:()=>wm});import{sql as X_}from"kysely";var wm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],D0=new Set(["review_requested","review_approved","review_changes_requested"]);async function L0(_){await ZT(_,wm)}async function F0(_){await ZT(_,wm.filter((x)=>!D0.has(x)))}async function ZT(_,x){await X_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await X_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${X_.join(x.map((u)=>X_.lit(u)))}))`.execute(_)}var km={};m(km,{up:()=>H0,down:()=>Y0});import{sql as R0}from"kysely";async function H0(_){await _.schema.createTable("task_board_review_claims").addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("reviewer","text",(x)=>x.notNull()).addColumn("cycle_at","timestamptz",(x)=>x.notNull()).addColumn("token","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(R0`now()`)).addPrimaryKeyConstraint("task_board_review_claims_pkey",["task_board_item_id","reviewer","cycle_at"]).execute(),await _.schema.createIndex("idx_task_board_review_claims_token").on("task_board_review_claims").columns(["task_board_item_id","token"]).execute()}async function Y0(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var Vm={};m(Vm,{up:()=>B0,down:()=>f0,ACTIONS:()=>pm});import{sql as Z_}from"kysely";var pm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution"],M0=new Set(["merge_conflict_resolution"]);async function B0(_){await QT(_,pm)}async function f0(_){await QT(_,pm.filter((x)=>!M0.has(x)))}async function QT(_,x){await Z_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Z_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Z_.join(x.map((u)=>Z_.lit(u)))}))`.execute(_)}var vm={};m(vm,{up:()=>G0,down:()=>O0});import{sql as d}from"kysely";async function G0(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await d`drop index if exists idx_org_billing_benefits_pending`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("billing_mode").execute(),await _.schema.alterTable("organization_billing").dropColumn("legacy").execute(),await _.schema.alterTable("organization_billing").dropColumn("included_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute(),await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}async function O0(_){await _.schema.alterTable("organization_billing").addColumn("legacy","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await _.schema.alterTable("organization_billing").addColumn("billing_mode","text",(x)=>x.notNull().defaultTo("self_serve")).execute(),await _.schema.alterTable("organization_billing").addColumn("included_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute(),await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute(),await d`
1057
1057
  create index idx_org_billing_benefits_pending
1058
1058
  on organization_billing (updated_at)
1059
1059
  where benefits_reference_id is not null
1060
- `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(d`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(d`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(d`now()`)).execute()}var qm={};m(qm,{up:()=>G0,down:()=>O0});import{sql as Q_}from"kysely";async function G0(_){await Q_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await Q_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function O0(_){await Q_`
1060
+ `.execute(_),await _.schema.createTable("organization_paid_seat").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(d`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(d`gen_random_uuid()`)).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("user_id","text",(x)=>x.notNull()).addColumn("seat","text",(x)=>x.notNull()).addColumn("changed_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(d`now()`)).execute()}var qm={};m(qm,{up:()=>A0,down:()=>I0});import{sql as Q_}from"kysely";async function A0(_){await Q_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await Q_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function I0(_){await Q_`
1061
1061
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1062
1062
  RETURNS trigger AS $fn$
1063
1063
  BEGIN
@@ -1083,23 +1083,23 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1083
1083
  BEFORE INSERT ON connection_aggregations
1084
1084
  FOR EACH ROW
1085
1085
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1086
- `.execute(_)}var gm={};m(gm,{up:()=>A0,down:()=>w0});import{sql as QT}from"kysely";async function A0(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(QT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(QT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function w0(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var cm={};m(cm,{up:()=>S0,down:()=>I0});import{sql as DT}from"kysely";async function S0(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(DT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(DT`now()`)).execute()}async function I0(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var om={};m(om,{up:()=>i0,down:()=>k0});import{sql as hm}from"kysely";async function i0(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(hm`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await hm`
1086
+ `.execute(_)}var gm={};m(gm,{up:()=>S0,down:()=>w0});import{sql as DT}from"kysely";async function S0(_){await _.schema.createTable("task_board_comments").addColumn("id","text",(x)=>x.primaryKey()).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("parent_id","text",(x)=>x.references("task_board_comments.id").onDelete("cascade")).addColumn("author_id","text",(x)=>x.notNull()).addColumn("body","text",(x)=>x.notNull()).addColumn("resolved","boolean",(x)=>x.notNull().defaultTo(!1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(DT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(DT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function w0(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var cm={};m(cm,{up:()=>i0,down:()=>k0});import{sql as LT}from"kysely";async function i0(_){await _.schema.createTable("task_quota_claims").addColumn("task_board_item_id","text",(x)=>x.primaryKey().references("task_board_items.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("period_key","text",(x)=>x.notNull()).addColumn("run_count","integer",(x)=>x.notNull().defaultTo(1)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(LT`now()`)).execute(),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.createTable("subsidized_gateway_keys").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("encrypted_key","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(LT`now()`)).execute()}async function k0(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var om={};m(om,{up:()=>p0,down:()=>V0});import{sql as hm}from"kysely";async function p0(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(hm`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await hm`
1087
1087
  create index idx_task_quota_claims_org_period_live
1088
1088
  on task_quota_claims (organization_id, period_key)
1089
1089
  where state <> 'released'
1090
- `.execute(_)}async function k0(_){await hm`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var am={};m(am,{up:()=>p0,down:()=>V0});async function p0(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function V0(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var rm={};m(rm,{up:()=>v0,down:()=>q0});async function v0(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function q0(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var em={};m(em,{up:()=>g0,down:()=>c0});import{sql as LT}from"kysely";async function g0(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(LT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(LT`monthly_task_executions > 0`)).execute()}async function c0(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var sm={};m(sm,{up:()=>o0,down:()=>a0});import{sql as h0}from"kysely";async function o0(_){await h0`
1090
+ `.execute(_)}async function V0(_){await hm`drop index if exists idx_task_quota_claims_org_period_live`.execute(_),await _.schema.createIndex("idx_task_quota_claims_org_period").on("task_quota_claims").columns(["organization_id","period_key"]).execute(),await _.schema.alterTable("task_quota_claims").dropColumn("state").execute()}var am={};m(am,{up:()=>v0,down:()=>q0});async function v0(_){await _.schema.createTable("claude_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey()).addColumn("encrypted_access_token","text",(x)=>x.notNull()).addColumn("expires_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function q0(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var rm={};m(rm,{up:()=>g0,down:()=>c0});async function g0(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function c0(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var em={};m(em,{up:()=>h0,down:()=>o0});import{sql as FT}from"kysely";async function h0(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(FT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(FT`monthly_task_executions > 0`)).execute()}async function o0(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var sm={};m(sm,{up:()=>r0,down:()=>e0});import{sql as a0}from"kysely";async function r0(_){await a0`
1091
1091
  CREATE INDEX idx_task_board_items_pending_review
1092
1092
  ON task_board_items (updated_at, id)
1093
1093
  WHERE status = 'in_review'
1094
1094
  AND assignee_id = 'super-agent'
1095
1095
  AND dismissed_at IS NULL
1096
- `.execute(_)}async function a0(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var lm={};m(lm,{up:()=>r0,down:()=>e0});import{sql as RT}from"kysely";async function r0(_){await RT`
1096
+ `.execute(_)}async function e0(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var lm={};m(lm,{up:()=>s0,down:()=>l0});import{sql as RT}from"kysely";async function s0(_){await RT`
1097
1097
  ALTER TABLE task_board_items
1098
1098
  ADD COLUMN last_swept_at timestamptz
1099
- `.execute(_)}async function e0(_){await RT`
1099
+ `.execute(_)}async function l0(_){await RT`
1100
1100
  ALTER TABLE task_board_items
1101
1101
  DROP COLUMN last_swept_at
1102
- `.execute(_)}var dm={};m(dm,{up:()=>s0,down:()=>l0});import{sql as D_}from"kysely";async function s0(_){await D_`
1102
+ `.execute(_)}var dm={};m(dm,{up:()=>d0,down:()=>b0});import{sql as D_}from"kysely";async function d0(_){await D_`
1103
1103
  ALTER TABLE task_board_items
1104
1104
  ADD COLUMN retry_at timestamptz,
1105
1105
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
@@ -1107,11 +1107,11 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1107
1107
  CREATE INDEX idx_task_board_items_retry_due
1108
1108
  ON task_board_items (retry_at)
1109
1109
  WHERE retry_at IS NOT NULL
1110
- `.execute(_)}async function l0(_){await D_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await D_`
1110
+ `.execute(_)}async function b0(_){await D_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await D_`
1111
1111
  ALTER TABLE task_board_items
1112
1112
  DROP COLUMN retry_at,
1113
1113
  DROP COLUMN retry_attempts
1114
- `.execute(_)}var _n={};m(_n,{up:()=>d0,down:()=>b0});import{sql as bm}from"kysely";async function d0(_){await bm`
1114
+ `.execute(_)}var _n={};m(_n,{up:()=>_P,down:()=>xP});import{sql as bm}from"kysely";async function _P(_){await bm`
1115
1115
  CREATE TABLE org_repo_sync (
1116
1116
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1117
1117
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1133,7 +1133,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1133
1133
  CREATE INDEX idx_org_repo_sync_enabled
1134
1134
  ON org_repo_sync (organization_id)
1135
1135
  WHERE enabled
1136
- `.execute(_)}async function b0(_){await bm`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var un={};m(un,{up:()=>xP,down:()=>uP,ACTIONS:()=>xn});import{sql as L_}from"kysely";var xn=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],_P=new Set(["merge_failed"]);async function xP(_){await FT(_,xn)}async function uP(_){await FT(_,xn.filter((x)=>!_P.has(x)))}async function FT(_,x){await L_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await L_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${L_.join(x.map((u)=>L_.lit(u)))}))`.execute(_)}var mn={};m(mn,{up:()=>mP,down:()=>nP});async function mP(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function nP(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var nn={};m(nn,{up:()=>TP,down:()=>CP});import{sql as p}from"kysely";async function TP(_){await p`
1136
+ `.execute(_)}async function xP(_){await bm`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var un={};m(un,{up:()=>mP,down:()=>nP,ACTIONS:()=>xn});import{sql as L_}from"kysely";var xn=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed"],uP=new Set(["merge_failed"]);async function mP(_){await HT(_,xn)}async function nP(_){await HT(_,xn.filter((x)=>!uP.has(x)))}async function HT(_,x){await L_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await L_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${L_.join(x.map((u)=>L_.lit(u)))}))`.execute(_)}var mn={};m(mn,{up:()=>TP,down:()=>CP});async function TP(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function CP(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var nn={};m(nn,{up:()=>NP,down:()=>KP});import{sql as p}from"kysely";async function NP(_){await p`
1137
1137
  CREATE TABLE org_jira_integrations (
1138
1138
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1139
1139
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1172,7 +1172,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1172
1172
  created_at timestamptz NOT NULL DEFAULT now(),
1173
1173
  UNIQUE (organization_id, jira_comment_id)
1174
1174
  )
1175
- `.execute(_)}async function CP(_){await p`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await p`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await p`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var Tn={};m(Tn,{up:()=>KP,down:()=>EP});import{sql as NP}from"kysely";async function KP(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await NP`
1175
+ `.execute(_)}async function KP(_){await p`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await p`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await p`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var Tn={};m(Tn,{up:()=>zP,down:()=>tP});import{sql as EP}from"kysely";async function zP(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await EP`
1176
1176
  update task_board_items as t
1177
1177
  set key_seq = numbered.seq
1178
1178
  from (
@@ -1185,11 +1185,11 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1185
1185
  from task_board_items
1186
1186
  ) as numbered
1187
1187
  where t.id = numbered.id
1188
- `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function EP(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var Cn={};m(Cn,{up:()=>tP,down:()=>zP});import{sql as HT}from"kysely";async function tP(_){await HT`
1188
+ `.execute(_),await _.schema.alterTable("task_board_items").alterColumn("key_seq",(x)=>x.setNotNull()).execute(),await _.schema.createIndex("task_board_items_org_key_seq_unique").on("task_board_items").columns(["organization_id","key_seq"]).unique().execute()}async function tP(_){await _.schema.dropIndex("task_board_items_org_key_seq_unique").on("task_board_items").execute(),await _.schema.alterTable("task_board_items").dropColumn("key_seq").execute()}var Cn={};m(Cn,{up:()=>PP,down:()=>UP});import{sql as YT}from"kysely";async function PP(_){await YT`
1189
1189
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1190
1190
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1191
1191
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1192
- `.execute(_)}async function zP(_){await HT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var Kn={};m(Kn,{up:()=>PP,down:()=>yP});import{sql as Nn}from"kysely";async function PP(_){await Nn`
1192
+ `.execute(_)}async function UP(_){await YT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var Kn={};m(Kn,{up:()=>JP,down:()=>yP});import{sql as Nn}from"kysely";async function JP(_){await Nn`
1193
1193
  ALTER TABLE thread_message_parts
1194
1194
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1195
1195
  `.execute(_),await Nn`
@@ -1197,13 +1197,13 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1197
1197
  ALTER COLUMN persisted_at SET DEFAULT now()
1198
1198
  `.execute(_)}async function yP(_){await Nn`
1199
1199
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1200
- `.execute(_)}var En={};m(En,{up:()=>UP,down:()=>JP});async function UP(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function JP(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var tn={};m(tn,{up:()=>jP,down:()=>WP});import{sql as $P}from"kysely";async function jP(_){await $P`
1200
+ `.execute(_)}var En={};m(En,{up:()=>$P,down:()=>jP});async function $P(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function jP(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var zn={};m(zn,{up:()=>XP,down:()=>ZP});import{sql as WP}from"kysely";async function XP(_){await WP`
1201
1201
  CREATE INDEX idx_task_board_items_done_sweep
1202
1202
  ON task_board_items (updated_at)
1203
1203
  WHERE status = 'done' AND dismissed_at IS NULL
1204
- `.execute(_)}async function WP(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var zn={};m(zn,{up:()=>XP,down:()=>ZP,TYPES:()=>YT});import{sql as B}from"kysely";var YT=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function XP(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(B`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(B`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(B`now()`)).addCheckConstraint("notifications_type_check",B`type IN (${B.join(YT.map((x)=>B.lit(x)))})`).execute(),await B`CREATE INDEX notifications_user_unread ON notifications
1205
- (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await B`CREATE INDEX notifications_digest ON notifications
1206
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function ZP(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var Pn={};m(Pn,{up:()=>QP,down:()=>DP});import{sql as MT}from"kysely";async function QP(_){await MT`
1204
+ `.execute(_)}async function ZP(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var tn={};m(tn,{up:()=>QP,down:()=>DP,TYPES:()=>MT});import{sql as f}from"kysely";var MT=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function QP(_){await _.schema.createTable("notification_subscriptions").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("subscribed","boolean",(x)=>x.notNull().defaultTo(!0)).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(f`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(f`now()`)).addUniqueConstraint("notification_subscriptions_user_item",["user_id","task_board_item_id"]).execute(),await _.schema.createTable("notifications").addColumn("id","text",(x)=>x.primaryKey()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("task_board_item_id","text",(x)=>x.notNull().references("task_board_items.id").onDelete("cascade")).addColumn("type","text",(x)=>x.notNull()).addColumn("actor_id","text",(x)=>x.references("user.id").onDelete("set null")).addColumn("data","jsonb",(x)=>x.notNull()).addColumn("read_at","timestamptz").addColumn("emailed_at","timestamptz").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(f`now()`)).addCheckConstraint("notifications_type_check",f`type IN (${f.join(MT.map((x)=>f.lit(x)))})`).execute(),await f`CREATE INDEX notifications_user_unread ON notifications
1205
+ (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await f`CREATE INDEX notifications_digest ON notifications
1206
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function DP(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var Pn={};m(Pn,{up:()=>LP,down:()=>FP});import{sql as BT}from"kysely";async function LP(_){await BT`
1207
1207
  UPDATE org_jira_integrations
1208
1208
  SET status_mapping = (
1209
1209
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1218,7 +1218,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1218
1218
  SELECT 1 FROM jsonb_each(status_mapping)
1219
1219
  WHERE jsonb_typeof(value) = 'array'
1220
1220
  )
1221
- `.execute(_)}async function DP(_){await MT`
1221
+ `.execute(_)}async function FP(_){await BT`
1222
1222
  UPDATE org_jira_integrations
1223
1223
  SET status_mapping = (
1224
1224
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1233,7 +1233,7 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1233
1233
  SELECT 1 FROM jsonb_each(status_mapping)
1234
1234
  WHERE jsonb_typeof(value) = 'array'
1235
1235
  )
1236
- `.execute(_)}var Un={};m(Un,{up:()=>RP,down:()=>FP,TYPES:()=>yn});import{sql as R_}from"kysely";var yn=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],LP=new Set(["mentioned"]);async function RP(_){await fT(_,yn)}async function FP(_){await fT(_,yn.filter((x)=>!LP.has(x)))}async function fT(_,x){await R_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await R_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${R_.join(x.map((u)=>R_.lit(u)))}))`.execute(_)}var $n={};m($n,{up:()=>MP,down:()=>fP,ACTIONS:()=>Jn});import{sql as G}from"kysely";var HP=["bug","feature","chore","spike","security"],Jn=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],YP=new Set(["type_changed"]);async function MP(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await G`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${G.join(HP.map((x)=>G.lit(x)))}))`.execute(_),await BT(_,Jn)}async function fP(_){await BT(_,Jn.filter((x)=>!YP.has(x))),await G`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function BT(_,x){await G`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await G`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${G.join(x.map((u)=>G.lit(u)))}))`.execute(_)}var jn={};m(jn,{up:()=>BP,down:()=>GP});import{sql as y}from"kysely";var OT=["bug","feature","chore","spike","security"],GT="chore";async function BP(_){await y`UPDATE task_board_items SET type = ${y.lit(GT)} WHERE type IS NULL`.execute(_),await y`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${y.lit(GT)}`.execute(_),await y`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await y`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await y`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${y.join(OT.map((x)=>y.lit(x)))}))`.execute(_)}async function GP(_){await y`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await y`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${y.join(OT.map((x)=>y.lit(x)))}))`.execute(_),await y`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await y`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var Wn={};m(Wn,{up:()=>OP,down:()=>AP});import{sql as V}from"kysely";async function OP(_){await V`
1236
+ `.execute(_)}var Jn={};m(Jn,{up:()=>HP,down:()=>YP,TYPES:()=>Un});import{sql as F_}from"kysely";var Un=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],RP=new Set(["mentioned"]);async function HP(_){await fT(_,Un)}async function YP(_){await fT(_,Un.filter((x)=>!RP.has(x)))}async function fT(_,x){await F_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await F_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${F_.join(x.map((u)=>F_.lit(u)))}))`.execute(_)}var $n={};m($n,{up:()=>fP,down:()=>GP,ACTIONS:()=>yn});import{sql as G}from"kysely";var MP=["bug","feature","chore","spike","security"],yn=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","merge_conflict_resolution","merge_failed","type_changed"],BP=new Set(["type_changed"]);async function fP(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await G`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${G.join(MP.map((x)=>G.lit(x)))}))`.execute(_),await GT(_,yn)}async function GP(_){await GT(_,yn.filter((x)=>!BP.has(x))),await G`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function GT(_,x){await G`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await G`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${G.join(x.map((u)=>G.lit(u)))}))`.execute(_)}var jn={};m(jn,{up:()=>OP,down:()=>AP});import{sql as U}from"kysely";var AT=["bug","feature","chore","spike","security"],OT="chore";async function OP(_){await U`UPDATE task_board_items SET type = ${U.lit(OT)} WHERE type IS NULL`.execute(_),await U`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${U.lit(OT)}`.execute(_),await U`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await U`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await U`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${U.join(AT.map((x)=>U.lit(x)))}))`.execute(_)}async function AP(_){await U`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await U`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${U.join(AT.map((x)=>U.lit(x)))}))`.execute(_),await U`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await U`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var Wn={};m(Wn,{up:()=>IP,down:()=>SP});import{sql as V}from"kysely";async function IP(_){await V`
1237
1237
  CREATE TABLE task_board_sprints (
1238
1238
  id text PRIMARY KEY,
1239
1239
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1258,34 +1258,34 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1258
1258
  CREATE INDEX idx_task_board_items_sprint
1259
1259
  ON task_board_items (organization_id, sprint_id)
1260
1260
  WHERE sprint_id IS NOT NULL
1261
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function AP(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await V`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await V`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var Xn={};m(Xn,{up:()=>SP,down:()=>IP});import{sql as wP}from"kysely";async function SP(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function IP(_){await wP`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var Zn={};m(Zn,{up:()=>kP,down:()=>pP});import{sql as iP}from"kysely";async function kP(_){await iP`
1261
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function SP(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await V`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await V`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var Xn={};m(Xn,{up:()=>iP,down:()=>kP});import{sql as wP}from"kysely";async function iP(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function kP(_){await wP`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var Zn={};m(Zn,{up:()=>VP,down:()=>vP});import{sql as pP}from"kysely";async function VP(_){await pP`
1262
1262
  UPDATE org_jira_integrations
1263
1263
  SET last_synced_at = NULL,
1264
1264
  last_sync_error = NULL
1265
1265
  WHERE last_synced_at IS NOT NULL
1266
- `.execute(_)}async function pP(){}var Qn={};m(Qn,{up:()=>vP,down:()=>qP});import{sql as VP}from"kysely";async function vP(_){await VP`
1266
+ `.execute(_)}async function vP(){}var Qn={};m(Qn,{up:()=>gP,down:()=>cP});import{sql as qP}from"kysely";async function gP(_){await qP`
1267
1267
  UPDATE org_jira_integrations
1268
1268
  SET last_synced_at = NULL,
1269
1269
  last_sync_error = NULL
1270
1270
  WHERE last_synced_at IS NOT NULL
1271
- `.execute(_)}async function qP(){}var Ln={};m(Ln,{up:()=>gP,down:()=>cP});import{sql as Dn}from"kysely";async function gP(_){await Dn`
1271
+ `.execute(_)}async function cP(){}var Ln={};m(Ln,{up:()=>hP,down:()=>oP});import{sql as Dn}from"kysely";async function hP(_){await Dn`
1272
1272
  ALTER TABLE org_jira_integrations
1273
1273
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1274
1274
  `.execute(_),await Dn`
1275
1275
  UPDATE org_jira_integrations
1276
1276
  SET rescan_pending = true
1277
1277
  WHERE last_synced_at IS NULL
1278
- `.execute(_)}async function cP(_){await Dn`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Rn={};m(Rn,{up:()=>hP,down:()=>oP});async function hP(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function oP(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Fn={};m(Fn,{up:()=>aP,down:()=>rP});import{sql as AT}from"kysely";async function aP(_){await AT`
1278
+ `.execute(_)}async function oP(_){await Dn`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Fn={};m(Fn,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function rP(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Rn={};m(Rn,{up:()=>eP,down:()=>sP});import{sql as IT}from"kysely";async function eP(_){await IT`
1279
1279
  ALTER TABLE invitation
1280
1280
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1281
- `.execute(_)}async function rP(_){await AT`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Yn={};m(Yn,{up:()=>eP,down:()=>sP});import{sql as Hn}from"kysely";async function eP(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Hn`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Hn`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await Hn`
1281
+ `.execute(_)}async function sP(_){await IT`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Yn={};m(Yn,{up:()=>lP,down:()=>dP});import{sql as Hn}from"kysely";async function lP(_){await _.schema.createTable("task_board_column_automations").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text",(x)=>x.notNull()).addColumn("prompt","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Hn`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Hn`now()`)).execute(),await _.schema.createIndex("task_board_column_automations_org_column_uniq").ifNotExists().on("task_board_column_automations").columns(["organization_id","column_key"]).unique().execute(),await Hn`
1282
1282
  INSERT INTO task_board_column_automations
1283
1283
  (id, organization_id, column_key, prompt)
1284
1284
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1285
1285
  FROM org_jira_integrations
1286
1286
  WHERE auto_delegate = true
1287
1287
  ON CONFLICT DO NOTHING
1288
- `.execute(_)}async function sP(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Mn={};m(Mn,{up:()=>lP,down:()=>dP});import{sql as b}from"kysely";async function lP(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await b`
1288
+ `.execute(_)}async function dP(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Mn={};m(Mn,{up:()=>bP,down:()=>_U});import{sql as b}from"kysely";async function bP(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await b`
1289
1289
  UPDATE task_board_items i
1290
1290
  SET review_cycle_started_at = (
1291
1291
  SELECT max(a.occurred_at)
@@ -1301,25 +1301,25 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1301
1301
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1302
1302
  AND assignee_id = 'super-agent'
1303
1303
  AND dismissed_at IS NULL
1304
- `.execute(_),await b`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function dP(_){await b`
1304
+ `.execute(_),await b`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function _U(_){await b`
1305
1305
  CREATE INDEX idx_task_board_items_pending_review
1306
1306
  ON task_board_items (updated_at, id)
1307
1307
  WHERE status = 'in_review'
1308
1308
  AND assignee_id = 'super-agent'
1309
1309
  AND dismissed_at IS NULL
1310
- `.execute(_),await b`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var bP={"001-initial-schema":B_,"002-organization-settings":G_,"003-connection-schema-align":O_,"004-remove-models-binding":A_,"005-connection-configuration":w_,"006-add-views-to-settings":S_,"007-monitoring-logs":I_,"008-event-bus":i_,"009-drop-audit-logs":k_,"010-gateways":p_,"011-gateway-icon":V_,"012-gateway-tool-selection-mode":v_,"013-monitoring-user-agent-gateway":q_,"014-gateway-resources-prompts":g_,"015-monitoring-properties":c_,"016-downstream-token-client-info":h_,"017-downstream-token-remove-userid":o_,"018-drop-gateway-tool-selection-strategy":a_,"019-remove-gateway-is-default":r_,"020-enabled-plugins":e_,"021-threads":s_,"022-rename-gateway-to-virtual-mcp":l_,"023-optimize-thread-indexes":d_,"024-consolidate-virtual-mcp":b_,"025-add-monitoring-virtual-mcp-id":_x,"026-restrict-child-connection-delete":xx,"027-update-management-mcp-url":mx,"028-update-management-mcp-to-self":Tx,"029-add-updated-by-to-connections":Cx,"030-member-tags":Nx,"031-add-dependency-mode":Kx,"032-projects":Ex,"033-thread-status":tx,"034-monitoring-dashboards":zx,"035-project-connections":Px,"036-update-registry-url":yx,"037-ai-provider-keys":Ux,"038-oauth-pkce-states":Jx,"039-automations":$x,"040-replace-next-run-at-with-last-run-at":jx,"041-ai-provider-keys-unique-constraint":Wx,"042-rename-mesh-mcp-to-cms-mcp":Xx,"043-rename-cms-mcp-to-deco-cms":Zx,"044-drop-connections-tools-column":Qx,"045-thread-context-start-message":Dx,"046-remove-object-storage-plugin":Rx,"047-add-next-run-at":Fx,"048-merge-projects-agents":Yx,"049-remove-org-admin-projects":Mx,"050-durable-agent-runs":fx,"051-org-sso":Gx,"052-thread-agent-ids":Ox,"053-registry-config":Ax,"054-connection-slug":Sx,"055-spaces":Ix,"056-automation-project-scope":ix,"057-thread-virtual-mcp-id":kx,"058-trigger-callback-tokens":px,"059-kv":Vx,"060-member-index":vx,"061-downstream-token-connection-index":qx,"062-private-registry":gx,"063-event-subscriptions-enabled-boolean":cx,"064-brand-context":hx,"065-organization-domains":ox,"066-brand-context-structured":ax,"067-threads-metadata":rx,"068-threads-branch":ex,"069-sandbox-runner-state":sx,"070-model-categories":lx,"071-default-home-agents":dx,"072-ai-provider-key-preset-id":bx,"073-backfill-basic-usage-roles":_u,"074-sandbox-runner-state-handle-nonunique":xu,"075-thread-inflight-async-jobs":uu,"076-automations-drop-agent-json":mu,"077-tier-only-model-selection":Tu,"078-automation-tool-call-kind":Cu,"079-strip-legacy-freestyle-vm-map-entries":Nu,"080-async-research-jobs":Ku,"081-async-research-jobs-result-content":Eu,"082-secrets":tu,"083-thread-run-locally":zu,"084-drop-host-sandbox-rows":Pu,"085-rename-runner-kind":yu,"086-thread-pins-and-vm-map-rekey":Uu,"087-fix-vm-map-rekey":Ju,"088-purge-cli-activate-keys":$u,"089-rename-remote-user-to-desktop":ju,"090-automation-webhook-triggers":Wu,"091-organization-domains-allow-multi":Xu,"092-sandbox-naming-uniformization":Zu,"093-backfill-global-search-basic-usage":Qu,"094-org-file-configs":Lu,"095-remove-automation-tool-call-kind":Ru,"096-org-file-configs-public-url-base":Fu,"097-drop-local-docker-sandbox-state":Yu,"098-thread-message-parts":Mu,"099-run-fence":fu,"100-link-transport":Bu,"101-cancel-requested-at":Gu,"102-observational-agent":Ou,"103-revert-observational-agent":Au,"104-agent-sandbox-provider-kind":Su,"105-org-fs":Iu,"106-automation-tools":iu,"107-org-fs-public-org":ku,"108-automation-max-agent-steps":pu,"109-thread-message-parts-per-message-seq":Vu,"110-backfill-ghs-token-expiry":vu,"111-org-fs-thread-id":qu,"112-org-file-configs-credential-type":gu,"113-thread-failure-reason":cu,"114-run-acked-seq":hu,"115-thread-projected-seq":ou,"116-org-sites":au,"117-org-file-configs-site-slug":ru,"118-organization-domains-multi-verify":eu,"119-organization-join-requests":su,"120-org-fs-read-public":lu,"121-org-fs-share-password":du,"122-split-web-research-tier":xm,"123-connection-credential-vault":um,"124-drop-thread-projected-seq":mm,"125-github-child-single-parent":nm,"126-task-board":Cm,"127-task-board-due-date":Nm,"128-reports-only":Km,"129-task-board-assigned-by":Em,"130-task-board-thread-id":tm,"131-task-board-thread-link-cascade":zm,"132-task-board-item-prs":Pm,"133-dedupe-duplicate-members":ym,"134-drop-task-board-enabled":Um,"135-task-board-item-fk-cascade":Jm,"136-task-board-import-idempotency":$m,"137-agent-sandbox-runner-state":jm,"138-agent-sandbox-sessions":Wm,"139-organization-billing":Xm,"140-seat-change-log":Zm,"141-benefits-sync-pending":Qm,"142-stripe-event-watermark":Dm,"143-armed-report-url":Lm,"144-benefits-pending-index":Rm,"145-user-model-preferences":Fm,"146-organization-main-agent":Hm,"147-drop-agent-sandbox-tables":Ym,"148-org-flags":Mm,"149-task-board-item-sort-order":fm,"150-task-board-activity":Bm,"151-task-board-tags":Om,"152-repair-connection-slug":wm,"153-task-board-latest-assistant-part-index":Sm,"154-task-board-qa-activity":im,"155-task-board-review-claims":km,"156-task-board-conflict-activity":Vm,"157-drop-seat-billing":vm,"158-drop-github-child-single-parent":qm,"159-task-board-comments":gm,"160-task-quota-billing":cm,"161-task-quota-claim-state":om,"162-claude-subscriptions":am,"163-task-board-item-dismissed":rm,"164-per-org-task-quota":em,"165-task-board-pending-review-index":sm,"166-task-board-last-swept-at":lm,"167-task-board-run-retry":dm,"168-org-repo-sync":_n,"169-task-board-merge-failed-activity":un,"170-task-board-item-repo":mn,"171-jira-integration":nn,"172-task-board-item-key-seq":Tn,"173-thread-github-repo-connection-index":Cn,"174-thread-message-parts-persisted-at":Kn,"175-task-board-sprints":En,"176-task-board-done-sweep-index":tn,"177-notifications":zn,"178-jira-status-mapping-array":Pn,"179-notification-mentioned":Un,"180-task-board-item-type":$n,"181-task-board-item-type-required":jn,"182-task-board-sprints-entities":Wn,"183-drop-jira-jql-filter":Xn,"184-jira-rescan-after-scope-change":Zn,"185-jira-rescan-existing-cards":Qn,"186-jira-rescan-pending-flag":Ln,"187-task-board-comment-thread":Rn,"188-invitation-auto-accept":Fn,"189-task-board-column-automations":Yn,"190-task-board-review-cycle-started-at":Mn},fn=bP;import{getMigrations as By}from"better-auth/db";import{sso as Gy}from"@better-auth/sso";import{organization as Oy}from"@decocms/better-auth/plugins";import{admin as Ay,apiKey as wy,jwt as Sy,magicLink as Iy,mcp as iy,openAPI as ky}from"better-auth/plugins";import{emailOTP as py}from"better-auth/plugins/email-otp";import{Kysely as Ly,PostgresDialect as cT}from"kysely";import{Pool as hT}from"pg";import{homedir as _y}from"os";var xy=new Set(["all","worker","api"]);function uy(_){let x=(_??"").trim();return xy.has(x)?x:"all"}var my=new Set(["production","development","test"]);function ny(_){let x=(_??"").trim();return my.has(x)?x:"development"}function Y(_){return _==="true"||_==="1"}function Gn(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function R(_,x,u,T){return Gn(_,x,T)??u}function Ty(_,x,u,T){if(x===void 0||x==="")return u;let n=Number(x);if(!Number.isSafeInteger(n)||n<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&n>T)throw Error(`${_} must be at most ${T}`);return n}function Bn(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function wT(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function Cy(_){return _===void 0||_===""||_==="true"||_==="1"}function __(_,x){return _||x}function ST(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${_y()}/deco`,T=_.localMode,n=_.nodeEnv||ny(x.NODE_ENV),C=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:n,port:R("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:__(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:Y(x.DATABASE_PG_SSL),databasePoolMax:R("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:R("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:__(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:Y(x.DISABLE_RATE_LIMIT),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((N)=>N.trim().toLowerCase()).filter(Boolean),clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Gn("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:Y(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:Ty("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Y(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:R("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:R("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:R("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Y(x.ENABLE_DECO_IMPORT),mcpCacheEnabled:Bn(x.MCP_CACHE_ENABLED,n!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Y(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:R("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:R("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:Bn(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:R("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:Cy(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:Gn("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:uy(__(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Y(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Y(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:Bn(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Y(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:R("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:__(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:__(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:wT(x.DATABASE_URL),externalNatsUrl:wT(C),skipMigrations:_.skipMigrations}}var F_=null;function v(){if(!F_)Ny();return F_}function Ny(){if(F_)return;let _={...process.env},x=ST({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);F_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as yy,metrics as Uy,propagation as Aj,ROOT_CONTEXT as wj,SpanStatusCode as Sj,trace as Jy}from"@opentelemetry/api";import{logs as $y,SeverityNumber as On}from"@opentelemetry/api-logs";import{OTLPLogExporter as kj}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as jy}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as vj}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as gj}from"@opentelemetry/instrumentation-runtime-node";import{context as Y$,propagation as M$,SpanKind as f$,SpanStatusCode as B$}from"@opentelemetry/api";var O$=globalThis.fetch;import{ExportResultCode as c$}from"@opentelemetry/core";import{ExportResultCode as H_}from"@opentelemetry/core";import{mkdir as Ky,rename as Ey,writeFile as ty}from"fs/promises";import{join as Y_}from"path";class M_{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:H_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:H_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:H_.FAILED}});return Promise.resolve({code:H_.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 x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let n of _){let C=x.get(n.partition);if(!C)C=[],x.set(n.partition,C);C.push(n.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([n,C])=>this.writeNDJSON(C,n).then(()=>n))),T=u.find((n)=>n.status==="rejected");if(T){let n=new Set;for(let K of u)if(K.status==="fulfilled")n.add(K.value);let C=_.filter((K)=>!n.has(K.partition));this.bufferItems=C.concat(this.bufferItems),this.bufferBytes=0;for(let K of this.bufferItems)this.bufferBytes+=Buffer.byteLength(K.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],n=x?Y_(this.basePath,x,...T):Y_(this.basePath,...T);if(!this.knownDirs.has(n))await Ky(n,{recursive:!0,mode:448}),this.knownDirs.add(n);let C=`${crypto.randomUUID()}.ndjson`,K=Y_(n,`.${C}.tmp`),N=Y_(n,C),E=_.join(`
1310
+ `.execute(_),await b`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Bn={};m(Bn,{up:()=>xU,down:()=>uU});import{sql as ST}from"kysely";async function xU(_){await _.schema.createTable("task_board_columns").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("title","text",(x)=>x.notNull()).addColumn("position","integer",(x)=>x.notNull()).addColumn("role","text").addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(ST`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(ST`now()`)).execute(),await _.schema.createIndex("task_board_columns_org_key_uniq").ifNotExists().on("task_board_columns").columns(["organization_id","key"]).unique().execute(),await _.schema.createIndex("task_board_columns_org_position_idx").ifNotExists().on("task_board_columns").columns(["organization_id","position"]).execute()}async function uU(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var mU={"001-initial-schema":f_,"002-organization-settings":G_,"003-connection-schema-align":O_,"004-remove-models-binding":A_,"005-connection-configuration":I_,"006-add-views-to-settings":S_,"007-monitoring-logs":w_,"008-event-bus":i_,"009-drop-audit-logs":k_,"010-gateways":p_,"011-gateway-icon":V_,"012-gateway-tool-selection-mode":v_,"013-monitoring-user-agent-gateway":q_,"014-gateway-resources-prompts":g_,"015-monitoring-properties":c_,"016-downstream-token-client-info":h_,"017-downstream-token-remove-userid":o_,"018-drop-gateway-tool-selection-strategy":a_,"019-remove-gateway-is-default":r_,"020-enabled-plugins":e_,"021-threads":s_,"022-rename-gateway-to-virtual-mcp":l_,"023-optimize-thread-indexes":d_,"024-consolidate-virtual-mcp":b_,"025-add-monitoring-virtual-mcp-id":_x,"026-restrict-child-connection-delete":xx,"027-update-management-mcp-url":mx,"028-update-management-mcp-to-self":Tx,"029-add-updated-by-to-connections":Cx,"030-member-tags":Nx,"031-add-dependency-mode":Kx,"032-projects":Ex,"033-thread-status":zx,"034-monitoring-dashboards":tx,"035-project-connections":Px,"036-update-registry-url":Ux,"037-ai-provider-keys":Jx,"038-oauth-pkce-states":yx,"039-automations":$x,"040-replace-next-run-at-with-last-run-at":jx,"041-ai-provider-keys-unique-constraint":Wx,"042-rename-mesh-mcp-to-cms-mcp":Xx,"043-rename-cms-mcp-to-deco-cms":Zx,"044-drop-connections-tools-column":Qx,"045-thread-context-start-message":Dx,"046-remove-object-storage-plugin":Fx,"047-add-next-run-at":Rx,"048-merge-projects-agents":Yx,"049-remove-org-admin-projects":Mx,"050-durable-agent-runs":Bx,"051-org-sso":Gx,"052-thread-agent-ids":Ox,"053-registry-config":Ax,"054-connection-slug":Sx,"055-spaces":wx,"056-automation-project-scope":ix,"057-thread-virtual-mcp-id":kx,"058-trigger-callback-tokens":px,"059-kv":Vx,"060-member-index":vx,"061-downstream-token-connection-index":qx,"062-private-registry":gx,"063-event-subscriptions-enabled-boolean":cx,"064-brand-context":hx,"065-organization-domains":ox,"066-brand-context-structured":ax,"067-threads-metadata":rx,"068-threads-branch":ex,"069-sandbox-runner-state":sx,"070-model-categories":lx,"071-default-home-agents":dx,"072-ai-provider-key-preset-id":bx,"073-backfill-basic-usage-roles":_u,"074-sandbox-runner-state-handle-nonunique":xu,"075-thread-inflight-async-jobs":uu,"076-automations-drop-agent-json":mu,"077-tier-only-model-selection":Tu,"078-automation-tool-call-kind":Cu,"079-strip-legacy-freestyle-vm-map-entries":Nu,"080-async-research-jobs":Ku,"081-async-research-jobs-result-content":Eu,"082-secrets":zu,"083-thread-run-locally":tu,"084-drop-host-sandbox-rows":Pu,"085-rename-runner-kind":Uu,"086-thread-pins-and-vm-map-rekey":Ju,"087-fix-vm-map-rekey":yu,"088-purge-cli-activate-keys":$u,"089-rename-remote-user-to-desktop":ju,"090-automation-webhook-triggers":Wu,"091-organization-domains-allow-multi":Xu,"092-sandbox-naming-uniformization":Zu,"093-backfill-global-search-basic-usage":Qu,"094-org-file-configs":Lu,"095-remove-automation-tool-call-kind":Fu,"096-org-file-configs-public-url-base":Ru,"097-drop-local-docker-sandbox-state":Yu,"098-thread-message-parts":Mu,"099-run-fence":Bu,"100-link-transport":fu,"101-cancel-requested-at":Gu,"102-observational-agent":Ou,"103-revert-observational-agent":Au,"104-agent-sandbox-provider-kind":Su,"105-org-fs":wu,"106-automation-tools":iu,"107-org-fs-public-org":ku,"108-automation-max-agent-steps":pu,"109-thread-message-parts-per-message-seq":Vu,"110-backfill-ghs-token-expiry":vu,"111-org-fs-thread-id":qu,"112-org-file-configs-credential-type":gu,"113-thread-failure-reason":cu,"114-run-acked-seq":hu,"115-thread-projected-seq":ou,"116-org-sites":au,"117-org-file-configs-site-slug":ru,"118-organization-domains-multi-verify":eu,"119-organization-join-requests":su,"120-org-fs-read-public":lu,"121-org-fs-share-password":du,"122-split-web-research-tier":xm,"123-connection-credential-vault":um,"124-drop-thread-projected-seq":mm,"125-github-child-single-parent":nm,"126-task-board":Cm,"127-task-board-due-date":Nm,"128-reports-only":Km,"129-task-board-assigned-by":Em,"130-task-board-thread-id":zm,"131-task-board-thread-link-cascade":tm,"132-task-board-item-prs":Pm,"133-dedupe-duplicate-members":Um,"134-drop-task-board-enabled":Jm,"135-task-board-item-fk-cascade":ym,"136-task-board-import-idempotency":$m,"137-agent-sandbox-runner-state":jm,"138-agent-sandbox-sessions":Wm,"139-organization-billing":Xm,"140-seat-change-log":Zm,"141-benefits-sync-pending":Qm,"142-stripe-event-watermark":Dm,"143-armed-report-url":Lm,"144-benefits-pending-index":Fm,"145-user-model-preferences":Rm,"146-organization-main-agent":Hm,"147-drop-agent-sandbox-tables":Ym,"148-org-flags":Mm,"149-task-board-item-sort-order":Bm,"150-task-board-activity":fm,"151-task-board-tags":Om,"152-repair-connection-slug":Im,"153-task-board-latest-assistant-part-index":Sm,"154-task-board-qa-activity":im,"155-task-board-review-claims":km,"156-task-board-conflict-activity":Vm,"157-drop-seat-billing":vm,"158-drop-github-child-single-parent":qm,"159-task-board-comments":gm,"160-task-quota-billing":cm,"161-task-quota-claim-state":om,"162-claude-subscriptions":am,"163-task-board-item-dismissed":rm,"164-per-org-task-quota":em,"165-task-board-pending-review-index":sm,"166-task-board-last-swept-at":lm,"167-task-board-run-retry":dm,"168-org-repo-sync":_n,"169-task-board-merge-failed-activity":un,"170-task-board-item-repo":mn,"171-jira-integration":nn,"172-task-board-item-key-seq":Tn,"173-thread-github-repo-connection-index":Cn,"174-thread-message-parts-persisted-at":Kn,"175-task-board-sprints":En,"176-task-board-done-sweep-index":zn,"177-notifications":tn,"178-jira-status-mapping-array":Pn,"179-notification-mentioned":Jn,"180-task-board-item-type":$n,"181-task-board-item-type-required":jn,"182-task-board-sprints-entities":Wn,"183-drop-jira-jql-filter":Xn,"184-jira-rescan-after-scope-change":Zn,"185-jira-rescan-existing-cards":Qn,"186-jira-rescan-pending-flag":Ln,"187-task-board-comment-thread":Fn,"188-invitation-auto-accept":Rn,"189-task-board-column-automations":Yn,"190-task-board-review-cycle-started-at":Mn,"191-task-board-columns":Bn},fn=mU;import{getMigrations as IU}from"better-auth/db";import{sso as SU}from"@better-auth/sso";import{organization as wU}from"@decocms/better-auth/plugins";import{admin as iU,apiKey as kU,jwt as pU,magicLink as VU,mcp as vU,openAPI as qU}from"better-auth/plugins";import{emailOTP as gU}from"better-auth/plugins/email-otp";import{Kysely as YU,PostgresDialect as oT}from"kysely";import{Pool as aT}from"pg";import{homedir as nU}from"os";var TU=new Set(["all","worker","api"]);function CU(_){let x=(_??"").trim();return TU.has(x)?x:"all"}var NU=new Set(["production","development","test"]);function KU(_){let x=(_??"").trim();return NU.has(x)?x:"development"}function Y(_){return _==="true"||_==="1"}function On(_,x,u){if(x===void 0||x==="")return;let T=Number(x);if(!Number.isSafeInteger(T)||T<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&T>u)throw Error(`${_} must be at most ${u}`);return T}function F(_,x,u,T){return On(_,x,T)??u}function EU(_,x,u,T){if(x===void 0||x==="")return u;let n=Number(x);if(!Number.isSafeInteger(n)||n<0)throw Error(`${_} must be a non-negative integer`);if(T!==void 0&&n>T)throw Error(`${_} must be at most ${T}`);return n}function Gn(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function wT(_){if(!_)return null;try{let u=new URL(_).hostname.replace(/^\[|\]$/g,"");if(u==="localhost"||u==="127.0.0.1"||u==="::1")return null;return _}catch{return null}}function zU(_){return _===void 0||_===""||_==="true"||_==="1"}function __(_,x){return _||x}function iT(_,x){let u=_.home||x.DATA_DIR||x.DECOCMS_HOME||`${nU()}/deco`,T=_.localMode,n=_.nodeEnv||KU(x.NODE_ENV),C=x.NATS_URL||"nats://localhost:4222";return{settings:{nodeEnv:n,port:F("PORT",_.port||x.PORT,3000,65535),baseUrl:_.baseUrl||x.BASE_URL,publicUrl:__(x.STUDIO_PUBLIC_URL,x.MESH_PUBLIC_URL),dataDir:u,databasePgSsl:Y(x.DATABASE_PG_SSL),databasePoolMax:F("DATABASE_POOL_MAX",x.DATABASE_POOL_MAX,5),dbosPoolSize:F("DBOS_POOL_SIZE",x.DBOS_POOL_SIZE,5),betterAuthSecret:x.BETTER_AUTH_SECRET||"",encryptionKey:x.ENCRYPTION_KEY||"",studioJwtSecret:__(x.STUDIO_JWT_SECRET,x.MESH_JWT_SECRET),localMode:T,disableRateLimit:Y(x.DISABLE_RATE_LIMIT),studioProvisionSecretKey:x.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(x.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((N)=>N.trim().toLowerCase()).filter(Boolean),clickhouseUrl:x.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:On("CLICKHOUSE_MAX_MEMORY_USAGE",x.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:x.MONITORING_OTLP_ENDPOINT,otelServiceName:x.OTEL_SERVICE_NAME||"studio",natsCredsPath:x.NATS_CREDS,configPath:x.CONFIG_PATH||"./config.json",aiGatewayEnabled:Y(x.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:x.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:x.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:x.STRIPE_WEBHOOK_SECRET,stripeSecretKey:x.STRIPE_SECRET_KEY,stripeOrgPriceId:x.STRIPE_ORG_PRICE_ID,stripeTopupProductId:x.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:EU("STUDIO_TOPUP_FEE_PERCENT",x.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Y(x.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:F("STUDIO_FREE_TASKS",x.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:F("STUDIO_MONTHLY_TASKS",x.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:F("STUDIO_MAX_RUNS_PER_TASK",x.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Y(x.ENABLE_DECO_IMPORT),mcpCacheEnabled:Gn(x.MCP_CACHE_ENABLED,n!=="development"),orgFsPublicSetsJson:x.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Y(x.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:F("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",x.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:F("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",x.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:Gn(x.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),sandboxMaxConcurrentHostedRuns:F("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",x.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:x.S3_ENDPOINT,s3Bucket:x.S3_BUCKET,s3Region:x.S3_REGION||"auto",s3AccessKeyId:x.S3_ACCESS_KEY_ID,s3SecretAccessKey:x.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:zU(x.S3_FORCE_PATH_STYLE),monitoringS3Bucket:x.MONITORING_S3_BUCKET,monitoringS3Endpoint:x.MONITORING_S3_ENDPOINT,monitoringS3Region:x.MONITORING_S3_REGION,monitoringS3AccessKeyId:x.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:x.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:x.MONITORING_S3_PREFIX,duckdbExtensionDirectory:x.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:x.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:On("DUCKDB_THREADS",x.DUCKDB_THREADS),isCli:!0,noTui:_.noTui===!0,podName:x.POD_NAME||crypto.randomUUID(),dispatchRole:CU(__(x.STUDIO_DISPATCH_ROLE,x.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Y(x.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Y(x.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:Gn(x.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Y(x.SANDBOX_RELEASE_ON_RUN_END),sandboxReleaseGraceMs:F("SANDBOX_RELEASE_GRACE_MS",x.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:x.DECO_SUPABASE_URL,decoSupabaseServiceKey:x.DECO_SUPABASE_SERVICE_KEY,firecrawlApiKey:x.FIRECRAWL_API_KEY,clickhouseAnalyticsUrl:x.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:x.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:x.CLICKHOUSE_ANALYTICS_PASSWORD,oneDollarStatsApiKey:x.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:__(x.REPORTS_INTERNAL_API_URL,x.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:__(x.REPORTS_INTERNAL_API_KEY,x.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:x.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:x.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:x.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:x.S3_TENANT_PUBLIC_URL_BASE||"https://decoims.com",awsS3TenantRoleArn:x.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:x.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:x.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY},externalDatabaseUrl:wT(x.DATABASE_URL),externalNatsUrl:wT(C),skipMigrations:_.skipMigrations}}var R_=null;function v(){if(!R_)tU();return R_}function tU(){if(R_)return;let _={...process.env},x=iT({port:_.PORT||"3000",home:_.DATA_DIR||_.DECOCMS_HOME||"",localMode:_.DECOCMS_LOCAL_MODE==="true",skipMigrations:!0,noTui:_.DECO_NO_TUI==="true",vitePort:_.VITE_PORT,baseUrl:_.BASE_URL},_);R_=Object.freeze({...x.settings,databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((u)=>u.trim()).filter(Boolean)})}import{createContextKey as jU,metrics as WU,propagation as kj,ROOT_CONTEXT as pj,SpanStatusCode as Vj,trace as XU}from"@opentelemetry/api";import{logs as ZU,SeverityNumber as An}from"@opentelemetry/api-logs";import{OTLPLogExporter as gj}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as QU}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as oj}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as rj}from"@opentelemetry/instrumentation-runtime-node";import{context as O$,propagation as A$,SpanKind as I$,SpanStatusCode as S$}from"@opentelemetry/api";var i$=globalThis.fetch;import{ExportResultCode as e$}from"@opentelemetry/core";import{ExportResultCode as H_}from"@opentelemetry/core";import{mkdir as PU,rename as UU,writeFile as JU}from"fs/promises";import{join as Y_}from"path";class M_{bufferItems=[];bufferBytes=0;flushTimer=null;flushQueue=Promise.resolve();basePath;flushThreshold;maxBufferBytes;isShutdown=!1;knownDirs=new Set;partitionKey;constructor(_){this.basePath=_.basePath,this.flushThreshold=_.flushThreshold??1000,this.maxBufferBytes=_.maxBufferBytes??10485760,this.partitionKey=_.partitionKey;let x=_.flushIntervalMs??60000;if(x>0&&x<3600000){if(this.flushTimer=setInterval(()=>{this.flush().catch((u)=>{console.error("[NDJSONExporter] Timer flush failed:",u)})},x),this.flushTimer&&typeof this.flushTimer==="object"&&"unref"in this.flushTimer)this.flushTimer.unref()}}exportRows(_){if(this.isShutdown)return Promise.resolve({code:H_.FAILED});for(let x of _){let u=JSON.stringify(x),T=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:T,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:H_.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:H_.FAILED}});return Promise.resolve({code:H_.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 x=this.flushQueue.catch(()=>{}).then(()=>this.doFlush());return this.flushQueue=x,x}async doFlush(){if(this.bufferItems.length===0)return;let _=this.bufferItems;this.bufferItems=[],this.bufferBytes=0;let x=new Map;for(let n of _){let C=x.get(n.partition);if(!C)C=[],x.set(n.partition,C);C.push(n.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([n,C])=>this.writeNDJSON(C,n).then(()=>n))),T=u.find((n)=>n.status==="rejected");if(T){let n=new Set;for(let K of u)if(K.status==="fulfilled")n.add(K.value);let C=_.filter((K)=>!n.has(K.partition));this.bufferItems=C.concat(this.bufferItems),this.bufferBytes=0;for(let K of this.bufferItems)this.bufferBytes+=Buffer.byteLength(K.json,"utf8")+1;throw T.reason}}async writeNDJSON(_,x){let u=new Date,T=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],n=x?Y_(this.basePath,x,...T):Y_(this.basePath,...T);if(!this.knownDirs.has(n))await PU(n,{recursive:!0,mode:448}),this.knownDirs.add(n);let C=`${crypto.randomUUID()}.ndjson`,K=Y_(n,`.${C}.tmp`),N=Y_(n,C),E=_.join(`
1311
1311
  `)+`
1312
- `;await ty(K,E,{mode:384}),await Ey(K,N)}}import{ExportResultCode as e$}from"@opentelemetry/core";import{AggregationTemporality as l$,DataPointType as d$}from"@opentelemetry/sdk-metrics";import{ExportResultCode as nj}from"@opentelemetry/core";var Kj=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as dj,LoggerProvider as bj}from"@opentelemetry/sdk-logs";import{detectResources as xW,envDetector as uW,hostDetector as mW,osDetector as nW,processDetector as TW,resourceFromAttributes as CW}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as KW}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as zj}from"@opentelemetry/api-logs";import{NodeSDK as zW}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as yW,SamplingDecision as q}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as $j}from"@opentelemetry/api";var Wy="__d",Xy=yy("Current request"),Zy=1;var iT=(_)=>{let u=new URL(_.url).searchParams.get(Wy);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class kT{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,n,C){let K=_.getValue(Xy);if(!K){if(this.inner)return this.inner.shouldSample(_,x,u,T,n,C);return{decision:q.RECORD_AND_SAMPLED}}let N=iT(K);if(N)return{decision:q.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":N}};if(this.inner){let E=this.inner.shouldSample(_,x,u,T,n,C);if(E.decision===q.RECORD_AND_SAMPLED){let t=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":t}}return E}return{decision:q.NOT_RECORD}}toString(){return"DebugSampler"}}class pT{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:q.RECORD_AND_SAMPLED};return{decision:q.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var JW=new jy({preventServerStart:!0}),$W=new kT(new pT(Zy));var IT=Jy.getTracer("studio","1.0.0"),x_=Uy.getMeter("studio","1.0.0"),Qy=$y.getLogger("studio","1.0.0"),An=(_,x,u)=>{let T={},n=u,C=u[u.length-1];if(C!==null&&typeof C==="object"&&!Array.isArray(C)&&!(C instanceof Error)&&Object.getPrototypeOf(C)===Object.prototype)T=C,n=u.slice(0,-1);let K=n.map((N)=>{if(N instanceof Error)return`${N.name}: ${N.message}`;if(typeof N==="object")try{return JSON.stringify(N)}catch{return"[Object]"}return String(N)}).join(" ");Qy.emit({severityNumber:_,severityText:x,body:K,attributes:{"log.source":"console",...T}})},wn={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{An(On.ERROR,"ERROR",_),wn.error(..._)};console.warn=(..._)=>{An(On.WARN,"WARN",_),wn.warn(..._)};console.debug=(..._)=>{An(On.DEBUG,"DEBUG",_),wn.debug(..._)};var Sn,VT=0,In=500;function Dy(){if(Sn)return;let _=performance.now()+In;Sn=setInterval(()=>{let x=performance.now();VT=Math.max(0,x-_),_=x+In},In),Sn.unref?.()}function vT(){return Dy(),VT}var Ry=()=>x_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),qT=()=>x_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),gT=400,Fy=100,Hy=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>gT){let T=vT(),n=T>gT/2;console.error(n?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:f_()}})}if(Ry().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function Yy(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),n=f_(),C=_.idleCount===0&&_.totalCount>=n,K=_.idleCount;return x().then((N)=>{let E=performance.now()-T;if(qT().record(E,{"db.pool.outcome":C?"contended":"available"}),E>Fy)if(C)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:n});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:K,total:_.totalCount,max:n});return N},(N)=>{throw qT().record(performance.now()-T,{"db.pool.outcome":"error"}),N})},_}var oT={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function aT(){try{return v().databasePgSsl}catch{return!1}}function f_(){try{return v().databasePoolMax}catch{return 10}}function My(_){let x=Yy(new hT({connectionString:_,max:f_(),ssl:aT(),...oT})),u=new cT({pool:x});return{type:"postgres",db:new Ly({dialect:u,log:Hy(x)}),pool:x}}function m_(){return v().databaseUrl}function rT(_){let x=_||m_();return new cT({pool:new hT({connectionString:x,max:f_(),ssl:aT(),...oT})})}function fy(_){let x=_||m_();return My(x)}async function eT(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===u_)u_=null}var u_=null;function kn(){if(!u_)u_=fy(m_());return u_}async function sT(_){let u={database:rT(_||m_()),plugins:[Oy({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),Ay(),wy(),Sy(),ky(),iy({loginPage:"/login"}),Gy(),Iy({sendMagicLink:async()=>{}}),py({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:n,runMigrations:C}=await By(u);if(!T.length&&!n.length)return"up to date";return await C(),`${n.length+T.length} table(s) migrated`}async function dT(_,x){return(await g`
1312
+ `;await JU(K,E,{mode:384}),await UU(K,N)}}import{ExportResultCode as _j}from"@opentelemetry/core";import{AggregationTemporality as uj,DataPointType as mj}from"@opentelemetry/sdk-metrics";import{ExportResultCode as Ej}from"@opentelemetry/core";var Uj=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as mW,LoggerProvider as nW}from"@opentelemetry/sdk-logs";import{detectResources as CW,envDetector as NW,hostDetector as KW,osDetector as EW,processDetector as zW,resourceFromAttributes as tW}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as UW}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as $j}from"@opentelemetry/api-logs";import{NodeSDK as $W}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as WW,SamplingDecision as q}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as Qj}from"@opentelemetry/api";var DU="__d",LU=jU("Current request"),FU=1;var pT=(_)=>{let u=new URL(_.url).searchParams.get(DU);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class VT{inner;constructor(_){this.inner=_}shouldSample(_,x,u,T,n,C){let K=_.getValue(LU);if(!K){if(this.inner)return this.inner.shouldSample(_,x,u,T,n,C);return{decision:q.RECORD_AND_SAMPLED}}let N=pT(K);if(N)return{decision:q.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":N}};if(this.inner){let E=this.inner.shouldSample(_,x,u,T,n,C);if(E.decision===q.RECORD_AND_SAMPLED){let z=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":z}}return E}return{decision:q.NOT_RECORD}}toString(){return"DebugSampler"}}class vT{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:q.RECORD_AND_SAMPLED};return{decision:q.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var ZW=new QU({preventServerStart:!0}),QW=new VT(new vT(FU));var kT=XU.getTracer("studio","1.0.0"),x_=WU.getMeter("studio","1.0.0"),RU=ZU.getLogger("studio","1.0.0"),In=(_,x,u)=>{let T={},n=u,C=u[u.length-1];if(C!==null&&typeof C==="object"&&!Array.isArray(C)&&!(C instanceof Error)&&Object.getPrototypeOf(C)===Object.prototype)T=C,n=u.slice(0,-1);let K=n.map((N)=>{if(N instanceof Error)return`${N.name}: ${N.message}`;if(typeof N==="object")try{return JSON.stringify(N)}catch{return"[Object]"}return String(N)}).join(" ");RU.emit({severityNumber:_,severityText:x,body:K,attributes:{"log.source":"console",...T}})},Sn={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{In(An.ERROR,"ERROR",_),Sn.error(..._)};console.warn=(..._)=>{In(An.WARN,"WARN",_),Sn.warn(..._)};console.debug=(..._)=>{In(An.DEBUG,"DEBUG",_),Sn.debug(..._)};var wn,qT=0,kn=500;function HU(){if(wn)return;let _=performance.now()+kn;wn=setInterval(()=>{let x=performance.now();qT=Math.max(0,x-_),_=x+kn},kn),wn.unref?.()}function gT(){return HU(),qT}var MU=()=>x_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),cT=()=>x_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),hT=400,BU=100,fU=(_)=>(x)=>{let u={"db.statement":x.query.sql,"db.status":x.level==="error"?"error":"success"};if(x.queryDurationMillis>hT){let T=gT(),n=T>hT/2;console.error(n?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(T),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:B_()}})}if(MU().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function GU(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let T=performance.now(),n=B_(),C=_.idleCount===0&&_.totalCount>=n,K=_.idleCount;return x().then((N)=>{let E=performance.now()-T;if(cT().record(E,{"db.pool.outcome":C?"contended":"available"}),E>BU)if(C)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:n});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:K,total:_.totalCount,max:n});return N},(N)=>{throw cT().record(performance.now()-T,{"db.pool.outcome":"error"}),N})},_}var rT={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function eT(){try{return v().databasePgSsl}catch{return!1}}function B_(){try{return v().databasePoolMax}catch{return 10}}function OU(_){let x=GU(new aT({connectionString:_,max:B_(),ssl:eT(),...rT})),u=new oT({pool:x});return{type:"postgres",db:new YU({dialect:u,log:fU(x)}),pool:x}}function m_(){return v().databaseUrl}function sT(_){let x=_||m_();return new oT({pool:new aT({connectionString:x,max:B_(),ssl:eT(),...rT})})}function AU(_){let x=_||m_();return OU(x)}async function lT(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===u_)u_=null}var u_=null;function pn(){if(!u_)u_=AU(m_());return u_}async function dT(_){let u={database:sT(_||m_()),plugins:[wU({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),iU(),kU(),pU(),qU(),vU({loginPage:"/login"}),SU(),VU({sendMagicLink:async()=>{}}),gU({sendVerificationOTP:async()=>{}})]},{toBeAdded:T,toBeCreated:n,runMigrations:C}=await IU(u);if(!T.length&&!n.length)return"up to date";return await C(),`${n.length+T.length} table(s) migrated`}async function _C(_,x){return(await g`
1313
1313
  SELECT table_name FROM information_schema.tables
1314
1314
  WHERE table_schema='public' AND table_name=${x}
1315
- `.execute(_)).rows.length>0}async function Vy(_){if(await dT(_,"plugin_migrations"))return;await g`
1315
+ `.execute(_)).rows.length>0}async function cU(_){if(await _C(_,"plugin_migrations"))return;await g`
1316
1316
  CREATE TABLE plugin_migrations (
1317
1317
  plugin_id TEXT NOT NULL,
1318
1318
  name TEXT NOT NULL,
1319
1319
  timestamp TEXT NOT NULL,
1320
1320
  PRIMARY KEY (plugin_id, name)
1321
1321
  )
1322
- `.execute(_)}async function vy(_){if(!await dT(_,"kysely_migration"))return;let x=await g`
1322
+ `.execute(_)}async function hU(_){if(!await _C(_,"kysely_migration"))return;let x=await g`
1323
1323
  SELECT name, timestamp FROM kysely_migration
1324
1324
  WHERE name LIKE '%/%'
1325
1325
  `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:T}of x.rows){let n=u;if(u.includes("~plugins/"))n=u.substring(u.indexOf("~plugins/")+9);let C=n.indexOf("/");if(C===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let K=n.substring(0,C),N=n.substring(C+1);try{await g`
@@ -1330,4 +1330,4 @@ var bT=Object.defineProperty;var _C=(_)=>_;function xC(_,x){this[_]=_C.bind(null
1330
1330
  WHERE plugin_id = ${K} AND name = ${N}
1331
1331
  `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${K}/${N}, keeping in old table`);continue}}await g`
1332
1332
  DELETE FROM kysely_migration WHERE name = ${u}
1333
- `.execute(_)}}async function qy(_){await Vy(_),await vy(_);let x=new lT({db:_,provider:{getMigrations:()=>Promise.resolve(fn)}}),{error:u,results:T}=await x.migrateToLatest(),n=0;if(T?.forEach((C)=>{if(C.status==="Success")n++;else if(C.status==="Error")console.error(`Failed to execute migration "${C.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return n}async function gy(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},n="skipped";if(!T&&!u)n=await sT();let C=u??kn(),K=async()=>{if(!x&&!u)await eT(C).catch((N)=>{console.warn("Warning: Error closing database:",N)})};try{let N=await qy(C.db);return await K(),{betterAuth:n,kysely:N}}catch(N){throw await K(),N}}async function oW(){let _=kn(),x=new lT({db:_.db,provider:{getMigrations:()=>Promise.resolve(fn)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((n)=>{if(n.status==="Success")console.log(`\u2705 Migration "${n.migrationName}" rolled back successfully`);else if(n.status==="Error")console.error(`\u274C Failed to rollback migration "${n.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await gy(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{qy as runKyselyMigrations,gy as migrateToLatest,oW as migrateDown};
1333
+ `.execute(_)}}async function oU(_){await cU(_),await hU(_);let x=new bT({db:_,provider:{getMigrations:()=>Promise.resolve(fn)}}),{error:u,results:T}=await x.migrateToLatest(),n=0;if(T?.forEach((C)=>{if(C.status==="Success")n++;else if(C.status==="Error")console.error(`Failed to execute migration "${C.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return n}async function aU(_){let{keepOpen:x=!1,database:u,skipBetterAuth:T=!1}=_??{},n="skipped";if(!T&&!u)n=await dT();let C=u??pn(),K=async()=>{if(!x&&!u)await lT(C).catch((N)=>{console.warn("Warning: Error closing database:",N)})};try{let N=await oU(C.db);return await K(),{betterAuth:n,kysely:N}}catch(N){throw await K(),N}}async function lW(){let _=pn(),x=new bT({db:_.db,provider:{getMigrations:()=>Promise.resolve(fn)}}),{error:u,results:T}=await x.migrateDown();if(T?.forEach((n)=>{if(n.status==="Success")console.log(`\u2705 Migration "${n.migrationName}" rolled back successfully`);else if(n.status==="Error")console.error(`\u274C Failed to rollback migration "${n.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await aU(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{oU as runKyselyMigrations,aU as migrateToLatest,lW as migrateDown};