decocms 4.512.1 → 4.513.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 (405) hide show
  1. package/dist/client/assets/{ActiveShapeUtils-C6Fs9E2F.js → ActiveShapeUtils-LBvsEtIF.js} +1 -1
  2. package/dist/client/assets/{AlertCircle-DR5UeRTA.js → AlertCircle-Cvem4Y6m.js} +1 -1
  3. package/dist/client/assets/{AreaChart-DV-iOsCB.js → AreaChart-I34_ZlKp.js} +1 -1
  4. package/dist/client/assets/{ArrowLeft-BiN2Ipdx.js → ArrowLeft-BJyRuK9C.js} +1 -1
  5. package/dist/client/assets/{ArrowUp-DEFigDC2.js → ArrowUp-QuecNIl2.js} +1 -1
  6. package/dist/client/assets/{BarChart-Bbq-n3DJ.js → BarChart-pbqGOvnz.js} +1 -1
  7. package/dist/client/assets/{Building02-CbIsQoEr.js → Building02-BN2ObsvL.js} +1 -1
  8. package/dist/client/assets/{CartesianChart-BZAKmLkb.js → CartesianChart-BedGXqvm.js} +1 -1
  9. package/dist/client/assets/{CategoricalChart-DkGMj5lu.js → CategoricalChart--HklPf_2.js} +1 -1
  10. package/dist/client/assets/{CheckCircle-DSb6tteH.js → CheckCircle-CGmhPfvZ.js} +1 -1
  11. package/dist/client/assets/{ChevronSelectorVertical-Brer4XXD.js → ChevronSelectorVertical-U9ccH2nL.js} +1 -1
  12. package/dist/client/assets/{ChevronUp-CptD1h9C.js → ChevronUp-lK1rs_GL.js} +1 -1
  13. package/dist/client/assets/{Copy01-Dj8FmdTt.js → Copy01-Bx8Y-gRl.js} +1 -1
  14. package/dist/client/assets/{CreditCard01-BesXT_Xu.js → CreditCard01-DJaSdmGa.js} +1 -1
  15. package/dist/client/assets/{DotsVertical-DLYxn826.js → DotsVertical-BNZNyNFz.js} +1 -1
  16. package/dist/client/assets/{ErrorBarContext--steek4a.js → ErrorBarContext-DzKnIsKK.js} +1 -1
  17. package/dist/client/assets/{Globe04-CauVwu4U.js → Globe04-De900zqZ.js} +1 -1
  18. package/dist/client/assets/{Image01-96m1QWCE.js → Image01-B8PoGELO.js} +1 -1
  19. package/dist/client/assets/{Key01-DRdx1k44.js → Key01-BljyWDFA.js} +1 -1
  20. package/dist/client/assets/{Link01-D8-ED5Lm.js → Link01-C3oYUEbC.js} +1 -1
  21. package/dist/client/assets/{LinkBroken01-DjSCAxhU.js → LinkBroken01-Y3mt2hVL.js} +1 -1
  22. package/dist/client/assets/{Monitor01-C4zSWuxi.js → Monitor01-HFhvTdbN.js} +1 -1
  23. package/dist/client/assets/{Play-B0x3aRHH.js → Play-d5F43Knt.js} +1 -1
  24. package/dist/client/assets/{Plus-CJw0emkH.js → Plus-Bqqgzhs9.js} +1 -1
  25. package/dist/client/assets/{ReferenceLine-D4U-vEvp.js → ReferenceLine-BJB76XEK.js} +1 -1
  26. package/dist/client/assets/{SearchMd-BruhitCB.js → SearchMd-B9CuCbEU.js} +1 -1
  27. package/dist/client/assets/{Sector-DOteZcnG.js → Sector-5t1y_8w7.js} +1 -1
  28. package/dist/client/assets/{ShoppingBag01-DIQxb9pD.js → ShoppingBag01-CKzXoaBh.js} +1 -1
  29. package/dist/client/assets/{Sun-OmdWefoI.js → Sun-e4Jz5epu.js} +1 -1
  30. package/dist/client/assets/{SwitchHorizontal01-D00oXUbs.js → SwitchHorizontal01-DUci_dzf.js} +1 -1
  31. package/dist/client/assets/{Tool01-A3_y2IK8.js → Tool01-BE48oOYM.js} +1 -1
  32. package/dist/client/assets/{Trash01-nvc1VLYD.js → Trash01-hjqx0xiP.js} +1 -1
  33. package/dist/client/assets/{Upload01-ZHUbBvHI.js → Upload01-Dui_BQYy.js} +1 -1
  34. package/dist/client/assets/{User01-UnZJz84G.js → User01-DBEYfJmD.js} +1 -1
  35. package/dist/client/assets/{UserSquare-Bu_gh_JM.js → UserSquare-BQx0PoRd.js} +1 -1
  36. package/dist/client/assets/{Users01-QclqzJOt.js → Users01-eugfopoG.js} +1 -1
  37. package/dist/client/assets/{XClose-FtCQqtba.js → XClose-Bowm5HJz.js} +1 -1
  38. package/dist/client/assets/{ZoomOut-DICI9YBf.js → ZoomOut-ChtZny13.js} +1 -1
  39. package/dist/client/assets/{access-gate-CVnPEoz-.js → access-gate-DPS87CJq.js} +1 -1
  40. package/dist/client/assets/{add-connection-dialog-CRPEYW8X.js → add-connection-dialog-DAySVccA.js} +1 -1
  41. package/dist/client/assets/{agent-analytics-CZTQyeOb.js → agent-analytics-CrMNgewv.js} +1 -1
  42. package/dist/client/assets/agent-app-WJHllD8s.js +1 -0
  43. package/dist/client/assets/{agent-assets-qf4n3r_c.js → agent-assets-DWhf_SEf.js} +1 -1
  44. package/dist/client/assets/{agent-automation-CtJn2CUS.js → agent-automation-lORFyc9I.js} +1 -1
  45. package/dist/client/assets/{agent-automations-B-J1xaI4.js → agent-automations-RkIafiu4.js} +1 -1
  46. package/dist/client/assets/{agent-connect-sources-D4mA9x4x.js → agent-connect-sources-CMhIynuO.js} +1 -1
  47. package/dist/client/assets/agent-deck-Dd6sBGr8.js +1 -0
  48. package/dist/client/assets/{agent-e2e-D-ObEuFM.js → agent-e2e-D4ENm6k_.js} +1 -1
  49. package/dist/client/assets/{agent-experiments-ChjWbmkZ.js → agent-experiments-BtEg3B74.js} +1 -1
  50. package/dist/client/assets/{agent-file-DmYYwFMY.js → agent-file-Cv4GNKAu.js} +1 -1
  51. package/dist/client/assets/{agent-hosting-CIAyMVpQ.js → agent-hosting-QFiH6VR3.js} +1 -1
  52. package/dist/client/assets/{agent-icon-BVryNvTA.js → agent-icon-DlDNTTdr.js} +1 -1
  53. package/dist/client/assets/agent-library-DrqQUbdQ.js +1 -0
  54. package/dist/client/assets/agent-library-file-6uox-pXr.js +1 -0
  55. package/dist/client/assets/{agent-monitor-CWp5pRJX.js → agent-monitor-BHnCA5z7.js} +1 -1
  56. package/dist/client/assets/agent-overview-BwDPLgMe.js +1 -0
  57. package/dist/client/assets/{agent-releases-DlBDIm6N.js → agent-releases-Bofb2T7R.js} +1 -1
  58. package/dist/client/assets/agent-settings-DFZRcTqc.js +1 -0
  59. package/dist/client/assets/{agent-site-editor-ZHE6UjBF.js → agent-site-editor-D7rBmOw2.js} +1 -1
  60. package/dist/client/assets/agent-site-editor-code-CHHgreNV.js +2 -0
  61. package/dist/client/assets/agent-site-editor-content-DpXXf6a-.js +1 -0
  62. package/dist/client/assets/agent-site-editor-preview-GazN0kVi.js +1 -0
  63. package/dist/client/assets/agent-view-C8Skk6kr.js +1 -0
  64. package/dist/client/assets/{agent-view-guard-CS-HfXhG.js → agent-view-guard-DyDnDg7y.js} +1 -1
  65. package/dist/client/assets/{agents-list-DtlgWaf2.js → agents-list-T2KWhjOT.js} +1 -1
  66. package/dist/client/assets/{ai-providers-AFvnJSdu.js → ai-providers-Bnd-GLut.js} +1 -1
  67. package/dist/client/assets/{alert-KYE0TQrO.js → alert-BwaNqkbw.js} +1 -1
  68. package/dist/client/assets/{alert-dialog-Dl77oXmN.js → alert-dialog-CmKQuDkV.js} +1 -1
  69. package/dist/client/assets/{analytics-sections-Cl89nQSg.js → analytics-sections-DwtWSdAK.js} +1 -1
  70. package/dist/client/assets/api-keys-D-DVIp0w.js +1 -0
  71. package/dist/client/assets/{api-keys-BVcb7fRq.js → api-keys-KcVvFrOK.js} +1 -1
  72. package/dist/client/assets/{app-editor-B8PS-ZOt.js → app-editor-BxQO_X8O.js} +1 -1
  73. package/dist/client/assets/{asset-utils-CCrCk1sD.js → asset-utils-DBfxeqs4.js} +1 -1
  74. package/dist/client/assets/{auth-6SgcD5Dx.js → auth-CxzzB0A-.js} +1 -1
  75. package/dist/client/assets/{auth-catchall-BwSRJnKb.js → auth-catchall-YU9hssz4.js} +1 -1
  76. package/dist/client/assets/{auth-entry-RQ1NBGke.js → auth-entry-BDxcstat.js} +1 -1
  77. package/dist/client/assets/{auth-split-layout-Cvtlp72R.js → auth-split-layout-uPIZ06pl.js} +1 -1
  78. package/dist/client/assets/{authenticate-and-persist-oauth-kcRr1Lvl.js → authenticate-and-persist-oauth-pViKD1Gc.js} +1 -1
  79. package/dist/client/assets/{automation-list-row-uoMirqBM.js → automation-list-row-VbClolLO.js} +1 -1
  80. package/dist/client/assets/{automation-runs-BLmAdrkw.js → automation-runs-Ji-ZINaE.js} +1 -1
  81. package/dist/client/assets/{automations-DPAR7b3F.js → automations-D-FftS8j.js} +1 -1
  82. package/dist/client/assets/{autosend-Bm0JBFwL.js → autosend-DpLh7dWJ.js} +1 -1
  83. package/dist/client/assets/{avatar-TcYqr2bL.js → avatar-B7fJfb4h.js} +1 -1
  84. package/dist/client/assets/{badge-COrqNUp7.js → badge-jakYyc_g.js} +1 -1
  85. package/dist/client/assets/{block-document-Dh83TdBh.js → block-document-DG8gJAvd.js} +1 -1
  86. package/dist/client/assets/{blocks-preview-workspace-context-7j98T4qH.js → blocks-preview-workspace-context-BDcQiasN.js} +1 -1
  87. package/dist/client/assets/{blocks-tab-states-BVgp0CQk.js → blocks-tab-states-MA76RVeA.js} +3 -3
  88. package/dist/client/assets/{blog-schema-83GsIvus.js → blog-schema-D9C9kwxP.js} +1 -1
  89. package/dist/client/assets/{board-analytics-C6wAx2NK.js → board-analytics-DalD9fQ3.js} +1 -1
  90. package/dist/client/assets/{buckets-ZZs1S-a7.js → buckets-Dn6CexmT.js} +1 -1
  91. package/dist/client/assets/{build-improve-prompt-doc-C0ttY47K.js → build-improve-prompt-doc-BBxdElnJ.js} +1 -1
  92. package/dist/client/assets/{calendar-B2wI2rfH.js → calendar-C3YpQYuA.js} +1 -1
  93. package/dist/client/assets/{capability-load-error-BZ6dZLnb.js → capability-load-error-BiQECpRV.js} +1 -1
  94. package/dist/client/assets/{category-editor-DbHtkb3J.js → category-editor-DTbDHa8_.js} +1 -1
  95. package/dist/client/assets/{chart-DMhgnBCh.js → chart-Br89Gn0m.js} +1 -1
  96. package/dist/client/assets/{chat-context-C2lqBj2K.js → chat-context-Bt_IpHdn.js} +1 -1
  97. package/dist/client/assets/{chat-draft-rAXLRx9S.js → chat-draft-BGbvxGKi.js} +1 -1
  98. package/dist/client/assets/{checkbox-rjtYcldp.js → checkbox-ltNhNDM4.js} +1 -1
  99. package/dist/client/assets/{choose-editor-D2cSGwlX.js → choose-editor-BPKHXrR8.js} +1 -1
  100. package/dist/client/assets/{cli-auth-success-CQEn4vCM.js → cli-auth-success-LMenui54.js} +1 -1
  101. package/dist/client/assets/{client-icons-B2PS_vCz.js → client-icons-DZCTBLc_.js} +1 -1
  102. package/dist/client/assets/cms-settings-editor-Bx8oZCiE.js +1 -0
  103. package/dist/client/assets/{collapsible-6AOnEydE.js → collapsible-zZWIPLJZ.js} +1 -1
  104. package/dist/client/assets/{collection-detail-BgKBWS9i.js → collection-detail-DIQzmK8m.js} +1 -1
  105. package/dist/client/assets/{collection-display-button-B1jhQJpb.js → collection-display-button-KTr_BPyD.js} +1 -1
  106. package/dist/client/assets/{collection-search-CcosURSz.js → collection-search-YuTRrSRO.js} +1 -1
  107. package/dist/client/assets/{collection-table-wrapper-CaqlMtSJ.js → collection-table-wrapper-DLVMl8sg.js} +1 -1
  108. package/dist/client/assets/{collection-tabs-oFY4b5yb.js → collection-tabs-c6VqSBVf.js} +1 -1
  109. package/dist/client/assets/{column-rules-CthIWRdS.js → column-rules-CjQsEHE1.js} +1 -1
  110. package/dist/client/assets/{combobox-B3k9r9UV.js → combobox-NN0PZi2X.js} +1 -1
  111. package/dist/client/assets/{coming-soon-page-BoZjTnKL.js → coming-soon-page-BJ9pltmN.js} +1 -1
  112. package/dist/client/assets/{command-DlrXHhzl.js → command-De4hkzkI.js} +1 -1
  113. package/dist/client/assets/{companion-mcps-section-69_UXZEe.js → companion-mcps-section-Czb-JWAm.js} +1 -1
  114. package/dist/client/assets/config-C3xx9JGl.js +1 -0
  115. package/dist/client/assets/{connect-Dz8fqjF0.js → connect-CnHwICLf.js} +1 -1
  116. package/dist/client/assets/{connect-layout-CGZ2Lo2Y.js → connect-layout-CyExoM2e.js} +1 -1
  117. package/dist/client/assets/{connection-Dv1lQiVf.js → connection-DNHX-zI2.js} +1 -1
  118. package/dist/client/assets/{connection-card-DrhNSo5x.js → connection-card-D-zYcnvX.js} +1 -1
  119. package/dist/client/assets/{connection-detail-DAwl2PHC.js → connection-detail-D0Ov4Y6W.js} +1 -1
  120. package/dist/client/assets/{connection-form-helpers-C_6fqHcU.js → connection-form-helpers-B4YACDyO.js} +1 -1
  121. package/dist/client/assets/{connections-AjkQM2AL.js → connections-CxrYf-kX.js} +1 -1
  122. package/dist/client/assets/{content-tab-uNzTIlfp.js → content-tab-DGigAgtr.js} +3 -3
  123. package/dist/client/assets/{context-DvA4zGON.js → context-CqSnYEDh.js} +1 -1
  124. package/dist/client/assets/{context-menu-CLTetIKp.js → context-menu-DytMQMuj.js} +1 -1
  125. package/dist/client/assets/{context-shell-C72ncwaE.js → context-shell-B_t5yOoc.js} +3 -3
  126. package/dist/client/assets/{core.esm-BIeF2Ts-.js → core.esm-ELTg1p5B.js} +1 -1
  127. package/dist/client/assets/{create-organization-dialog-BdRGC30a.js → create-organization-dialog-OyCDluH-.js} +1 -1
  128. package/dist/client/assets/daily-pulse-B8GWVVWD.js +1 -0
  129. package/dist/client/assets/{discover-AmxN2LDy.js → discover-CY6WK9ZB.js} +1 -1
  130. package/dist/client/assets/{domain-settings-Bjkv8r6j.js → domain-settings-BPxde74J.js} +1 -1
  131. package/dist/client/assets/{drawer-DBZ5ZAhv.js → drawer-tVqfqfgS.js} +1 -1
  132. package/dist/client/assets/{editor-classes-B61HxyxG.js → editor-classes-DuHYsQXo.js} +1 -1
  133. package/dist/client/assets/{editor-DnL9yoU1.js → editor-u4-EEM31.js} +1 -1
  134. package/dist/client/assets/{empty-state-Dxa_xgK8.js → empty-state-DOXszr-G.js} +1 -1
  135. package/dist/client/assets/{empty-state-CeOW7zUm.js → empty-state-DhQ6b-4X.js} +1 -1
  136. package/dist/client/assets/{extract-connection-data-Aoi__dRh.js → extract-connection-data-Noi2laOR.js} +1 -1
  137. package/dist/client/assets/{feature-gate-uXrT3MyH.js → feature-gate-BCWJGTl6.js} +1 -1
  138. package/dist/client/assets/{feature-paywall-BdcZUi0k.js → feature-paywall-DSUE7uWN.js} +1 -1
  139. package/dist/client/assets/{file-explorer-M5p-WAu6.js → file-explorer-cyqbbj8g.js} +1 -1
  140. package/dist/client/assets/{file-preview-BceBv2XZ.js → file-preview-BjiRATef.js} +1 -1
  141. package/dist/client/assets/{file-share-button-CExiW_JJ.js → file-share-button-D64rdBSQ.js} +1 -1
  142. package/dist/client/assets/{file-type-icon-D2g_bbj8.js → file-type-icon-C8TsjujV.js} +1 -1
  143. package/dist/client/assets/flat-project-CSSZxBOE.js +1 -0
  144. package/dist/client/assets/{folder-icon-Bcz5KKyQ.js → folder-icon-B9zlfCiB.js} +1 -1
  145. package/dist/client/assets/{form-T68JwS6H.js → form-CSFIwIoN.js} +1 -1
  146. package/dist/client/assets/{general-o6XObMrb.js → general-BXsEOlZ5.js} +1 -1
  147. package/dist/client/assets/home-CBma7wvX.js +1 -0
  148. package/dist/client/assets/{hosted-publish-feedback-AnSpscEi.js → hosted-publish-feedback-Dg4Y4bkK.js} +1 -1
  149. package/dist/client/assets/{icon-button-C1YrL0K0.js → icon-button-DJlTsKMg.js} +1 -1
  150. package/dist/client/assets/{index-BTqgDnae.js → index-B2TzlpQ3.js} +29 -29
  151. package/dist/client/assets/{index-BhJ27tZN.js → index-B9bk7VCc.js} +1 -1
  152. package/dist/client/assets/{index-2NqOHAe7.js → index-BFpWqRZ0.js} +1 -1
  153. package/dist/client/assets/index-BY2lzf-u.js +81 -0
  154. package/dist/client/assets/{index-DgOdyu0m.js → index-CWXy03he.js} +1 -1
  155. package/dist/client/assets/{index-MvGXP8DU.js → index-CY0geMFq.js} +1 -1
  156. package/dist/client/assets/{index-DXP5abna.js → index-DHfIFZth.js} +1 -1
  157. package/dist/client/assets/{index-C9fa3ZDI.js → index-DsQzKhrM.js} +1 -1
  158. package/dist/client/assets/{index-CAl0fAJl.js → index-Dv5iQt6B.js} +1 -1
  159. package/dist/client/assets/{index-DHBZE8Dv.js → index-KNQWtaCb.js} +1 -1
  160. package/dist/client/assets/{index-BeXGyjlY.js → index-LRv4COmF.js} +2 -2
  161. package/dist/client/assets/index-dF7Fpxre.css +1 -0
  162. package/dist/client/assets/{index-BBIWEDUk.js → index-eSoO1i0F.js} +1 -1
  163. package/dist/client/assets/{index-DqkaXdqt.js → index-fTp2wmQ3.js} +1 -1
  164. package/dist/client/assets/{index-B1EavYHo.js → index-lvF8BPVu.js} +1 -1
  165. package/dist/client/assets/{index-WEPaRkE5.js → index-ooKcIXhe.js} +1 -1
  166. package/dist/client/assets/{index-redirect-BzGqrK-W.js → index-redirect-BeoaztAB.js} +1 -1
  167. package/dist/client/assets/{index-DwzvgC1G.js → index-yL8irnL4.js} +1 -1
  168. package/dist/client/assets/{infiniteQueryObserver-CuqNZvBh.js → infiniteQueryObserver-BPxNO74V.js} +1 -1
  169. package/dist/client/assets/{infra-billing-GJryu2kj.js → infra-billing-DAC7xXxq.js} +1 -1
  170. package/dist/client/assets/{input-COXcRy3V.js → input-C6aPvUej.js} +3 -3
  171. package/dist/client/assets/{input-DGSbECOu.js → input-Ct6LNWBH.js} +1 -1
  172. package/dist/client/assets/{integration-icon-tp1HAisx.js → integration-icon-GE6gXozG.js} +1 -1
  173. package/dist/client/assets/{jira-icon-3Yea657m.js → jira-icon-DJu4VOlJ.js} +1 -1
  174. package/dist/client/assets/{label-BylrY27f.js → label-BZWf9QYv.js} +1 -1
  175. package/dist/client/assets/{layout-dQubHv6S.js → layout-DFE-VkxR.js} +1 -1
  176. package/dist/client/assets/{legacy-agents-deep-CSHJFXCt.js → legacy-agents-deep-BoBSHh4p.js} +1 -1
  177. package/dist/client/assets/{legacy-main-redirect-CNJjOybo.js → legacy-main-redirect-BzTdSNma.js} +1 -1
  178. package/dist/client/assets/library-D0guJwzz.js +1 -0
  179. package/dist/client/assets/{library-tab-DqbBFY4P.js → library-tab-BotaUMxF.js} +1 -1
  180. package/dist/client/assets/{login-Et8I9H-Z.js → login-BGNHu7VT.js} +1 -1
  181. package/dist/client/assets/{markdown-mOwmupl9.js → markdown-BDFrzJxg.js} +1 -1
  182. package/dist/client/assets/{mcp-app-renderer-DvIKe0Aw.js → mcp-app-renderer-DrvF9Pa7.js} +1 -1
  183. package/dist/client/assets/{mcp-oauth-Drr0IsGs.js → mcp-oauth-Cz4ZcdFq.js} +1 -1
  184. package/dist/client/assets/{mcp-oauth-Csc8NhVf.js → mcp-oauth-DCzrBgix.js} +1 -1
  185. package/dist/client/assets/{members-NXw92IoR.js → members-i_wujRIe.js} +1 -1
  186. package/dist/client/assets/{memory-DLq-S4Bt.js → memory-BQXcCBLH.js} +1 -1
  187. package/dist/client/assets/{mini-report-page-BBnfkQRE.js → mini-report-page-tiAHPa9i.js} +1 -1
  188. package/dist/client/assets/mock-board-BR-zRSgi.js +1 -0
  189. package/dist/client/assets/{monaco-editor-r3ZhKinU.js → monaco-editor-BhXbxyIo.js} +1 -1
  190. package/dist/client/assets/monitoring-ByTqoKkm.js +1 -0
  191. package/dist/client/assets/{monitoring-stats-row-CM62Vixu.js → monitoring-stats-row-WEAYPHMD.js} +1 -1
  192. package/dist/client/assets/{multi-select-sAhDlmTu.js → multi-select-BbCHHIsr.js} +1 -1
  193. package/dist/client/assets/{mustache-NywtC1RW.js → mustache-CLs-t0EC.js} +1 -1
  194. package/dist/client/assets/{new-project-dialog-YEpaHAzS.js → new-project-dialog-Ceh0T8Zf.js} +1 -1
  195. package/dist/client/assets/{oauth-callback-BsBgfAXR.js → oauth-callback-DoEjttDw.js} +1 -1
  196. package/dist/client/assets/{oauth-callback-ai-provider-B5dEVX3X.js → oauth-callback-ai-provider-DoDUw7wL.js} +1 -1
  197. package/dist/client/assets/{onboarding-aE9LnNMJ.js → onboarding-L82roMb_.js} +1 -1
  198. package/dist/client/assets/{openai-conversation-BtRBu_DC.js → openai-conversation-DAtvucBP.js} +1 -1
  199. package/dist/client/assets/{optimistic-project-sidebar-views-DzGPBwU-.js → optimistic-project-sidebar-views-BasKJepJ.js} +1 -1
  200. package/dist/client/assets/{order-monitor-day-CXTQZWmI.js → order-monitor-day-k6dr4Zbg.js} +1 -1
  201. package/dist/client/assets/{organization-choice-D-daZCwM.js → organization-choice-PC77U28J.js} +1 -1
  202. package/dist/client/assets/{orgs-ADqY3P61.js → orgs-CIp7lq46.js} +1 -1
  203. package/dist/client/assets/{page-seo-form-vDiGQjtu.js → page-seo-form-CpA9AjIr.js} +1 -1
  204. package/dist/client/assets/{pair-CEsWAMh-.js → pair-CDXhexja.js} +1 -1
  205. package/dist/client/assets/plan-DMGu-u0K.js +1 -0
  206. package/dist/client/assets/{plan-ladder-Bt63H-4x.js → plan-ladder-ChIYVMh8.js} +1 -1
  207. package/dist/client/assets/{popover-B-OtuWzT.js → popover-DSQOAh-c.js} +1 -1
  208. package/dist/client/assets/{post-calendar-C3gkftBE.js → post-calendar-DZAFc_0t.js} +1 -1
  209. package/dist/client/assets/{post-editor-Dg8h32Sk.js → post-editor-hE-yOtFr.js} +1 -1
  210. package/dist/client/assets/{preview-content-2XfscqPW.js → preview-content-C1y4Cni-.js} +1 -1
  211. package/dist/client/assets/{preview-dialog-3XL-_vR4.js → preview-dialog-BXoibHar.js} +1 -1
  212. package/dist/client/assets/{preview-panel-D51v3UbU.js → preview-panel-DwwDdJ8h.js} +1 -1
  213. package/dist/client/assets/{preview-tab-B2h3zySq.js → preview-tab-B17aL0uv.js} +3 -3
  214. package/dist/client/assets/{product-picker-dialog-BIvZ8gz_.js → product-picker-dialog-hqwivccT.js} +1 -1
  215. package/dist/client/assets/{profile-C9rICw-j.js → profile-D1aXcB6j.js} +1 -1
  216. package/dist/client/assets/{project-app-view-CRHvpl1I.js → project-app-view-c32i0SfA.js} +1 -1
  217. package/dist/client/assets/{project-apps-CmZayEX4.js → project-apps-D81NGCcl.js} +1 -1
  218. package/dist/client/assets/project-feed-CEyfQQlk.js +1 -0
  219. package/dist/client/assets/{project-icon-BbODfzZl.js → project-icon-DMkjvbD2.js} +1 -1
  220. package/dist/client/assets/project-reports-C__FSGIV.js +1 -0
  221. package/dist/client/assets/project-tasks-Cc3a2zti.js +1 -0
  222. package/dist/client/assets/{projects-BSlp01Or.js → projects-CVwQvEzi.js} +1 -1
  223. package/dist/client/assets/{projects-empty-state-C09yZqTY.js → projects-empty-state-DaO_LK3i.js} +1 -1
  224. package/dist/client/assets/{prompts-DA7ZVo4a.js → prompts-C_XE1PBe.js} +1 -1
  225. package/dist/client/assets/record-editor-DCZHnUOF.js +1 -0
  226. package/dist/client/assets/{redirect-editor-BcftPPuf.js → redirect-editor-D1A3peeB.js} +1 -1
  227. package/dist/client/assets/{reports-BLS0Aipn.js → reports-BI-WplZi.js} +1 -1
  228. package/dist/client/assets/reports-BLOeTE2J.js +1 -0
  229. package/dist/client/assets/{reports-onboarding-DALo8lVE.js → reports-onboarding-Bny-I2Ds.js} +1 -1
  230. package/dist/client/assets/{reports-tab-C0_Y8gdg.js → reports-tab-BJw03qVv.js} +2 -2
  231. package/dist/client/assets/{repositories-Ck1JqgbR.js → repositories-D-ENxt9m.js} +1 -1
  232. package/dist/client/assets/repositories-DcSyG13S.js +1 -0
  233. package/dist/client/assets/{repository-binding-EnguF1UG.js → repository-binding-BHR5kpih.js} +1 -1
  234. package/dist/client/assets/{repository-import-picker-BbHTKbQl.js → repository-import-picker-Qyk6d7Zu.js} +1 -1
  235. package/dist/client/assets/{repository-picker-Du0m6sue.js → repository-picker-Bj1Nc6kr.js} +1 -1
  236. package/dist/client/assets/{require-capability-CHuKw_cg.js → require-capability-CAruTncm.js} +1 -1
  237. package/dist/client/assets/{required-auth-layout-6WijMpsu.js → required-auth-layout-C77EYaMY.js} +1 -1
  238. package/dist/client/assets/{reset-password-BUAflUla.js → reset-password-BkBiknMt.js} +1 -1
  239. package/dist/client/assets/{resizable-BQs5PBk6.js → resizable-Cdm-hXXC.js} +1 -1
  240. package/dist/client/assets/{resolve-tab-icon-DroZ8G45.js → resolve-tab-icon-CLxwJMYD.js} +1 -1
  241. package/dist/client/assets/{review-settings-C9UnRi8j.js → review-settings-DJcdSi1O.js} +1 -1
  242. package/dist/client/assets/{roles-CH4STzuD.js → roles-Ctu--JGK.js} +1 -1
  243. package/dist/client/assets/route-BcljPCXS.js +1 -0
  244. package/dist/client/assets/{route-9-w4kQvD.js → route-Bv7zngSu.js} +1 -1
  245. package/dist/client/assets/route-C_XW9SML.js +1 -0
  246. package/dist/client/assets/{sandbox-lifecycle-context-DVqxhV_Z.js → sandbox-lifecycle-context-DiQubSE3.js} +1 -1
  247. package/dist/client/assets/{schema-B77JO-sT.js → schema-BJSITXJ8.js} +1 -1
  248. package/dist/client/assets/{schema-CRcfT8N-.js → schema-C7iS0wFx.js} +1 -1
  249. package/dist/client/assets/{scroll-area-B-5y3cMp.js → scroll-area-PyP08N60.js} +1 -1
  250. package/dist/client/assets/{search-input-DZA7D_R-.js → search-input-C1UN1o4M.js} +1 -1
  251. package/dist/client/assets/{search-toggle-QObJiG8M.js → search-toggle-XARujNee.js} +1 -1
  252. package/dist/client/assets/{secret-ciphertext-DZ_rO1Cm.js → secret-ciphertext-C105RZR8.js} +1 -1
  253. package/dist/client/assets/{secret-picker-C_qgWtAC.js → secret-picker--t9IEGre.js} +1 -1
  254. package/dist/client/assets/{secrets-BmdLCOGm.js → secrets-a886ZQjo.js} +1 -1
  255. package/dist/client/assets/{sections-BFsagOJw.js → sections--OK8BqVo.js} +1 -1
  256. package/dist/client/assets/{sections-editor-CE6Rti5c.js → sections-editor-ODb5eT5K.js} +1 -1
  257. package/dist/client/assets/{select-Bi_swPw3.js → select-CbXBky5o.js} +1 -1
  258. package/dist/client/assets/{select-model-B_9mfn7v.js → select-model-DnqdlTY0.js} +1 -1
  259. package/dist/client/assets/{seo-editor-CB3QjMWj.js → seo-editor-_gXa0jQZ.js} +1 -1
  260. package/dist/client/assets/{separator-CNbmHNQt.js → separator-BvB_O5R3.js} +1 -1
  261. package/dist/client/assets/settings-tab-CQaLGUBt.js +1 -0
  262. package/dist/client/assets/{sheet-D1qR_4mo.js → sheet-DJ-bT8ZN.js} +1 -1
  263. package/dist/client/assets/{shell-layout-Dch0EAKj.js → shell-layout-zTHQ8o3e.js} +1 -1
  264. package/dist/client/assets/{site-editor-toast-CCW8Cqyx.js → site-editor-toast-VSiTWj1-.js} +1 -1
  265. package/dist/client/assets/site-editor-xZY1UAX7.js +1 -0
  266. package/dist/client/assets/{skills-CFNE-x97.js → skills-CY75dh6w.js} +1 -1
  267. package/dist/client/assets/{slider-BT_Bkt7C.js → slider-DLQnZK5w.js} +1 -1
  268. package/dist/client/assets/{sortable.esm-CJcktpA-.js → sortable.esm-C1Eh7IYA.js} +1 -1
  269. package/dist/client/assets/{sso-CKFS1XAd.js → sso-HvcRYsLs.js} +1 -1
  270. package/dist/client/assets/{suggestion-BJvcnUYI.js → suggestion-Bd2p1cFs.js} +1 -1
  271. package/dist/client/assets/{switch-CpQoPTWf.js → switch-CBoIFiQt.js} +1 -1
  272. package/dist/client/assets/{symbol-Dk0TrUWQ.js → symbol-DWwkR4VS.js} +1 -1
  273. package/dist/client/assets/{synced-repos-B5mKbYC_.js → synced-repos-BHAxDLjN.js} +1 -1
  274. package/dist/client/assets/{tab-icon-glyph-DaV44Ufa.js → tab-icon-glyph-4oa_teIT.js} +1 -1
  275. package/dist/client/assets/{table-CxjPT70R.js → table-DR5sKbqx.js} +1 -1
  276. package/dist/client/assets/{tabs-ilRnK5p0.js → tabs-CNGqHoIP.js} +1 -1
  277. package/dist/client/assets/task-assignee-avatar-DHQM3xug.js +1 -0
  278. package/dist/client/assets/{task-board-Cs8DEDmn.js → task-board-CcHSIY54.js} +1 -1
  279. package/dist/client/assets/{task-route-s3F5XvnT.js → task-route-SZvHObwH.js} +1 -1
  280. package/dist/client/assets/{task-status-DsN2C45o.js → task-status-DWiZUPkY.js} +1 -1
  281. package/dist/client/assets/taskboard-analytics-DudxlCXA.js +1 -0
  282. package/dist/client/assets/{tasks-Cz6oSNfT.js → tasks-DS6EMqnA.js} +1 -1
  283. package/dist/client/assets/tasks-DlxMQA6S.js +1 -0
  284. package/dist/client/assets/{textarea-BEbThkXY.js → textarea-DyZlrsVq.js} +1 -1
  285. package/dist/client/assets/{thread-analytics-BnBXFTPF.js → thread-analytics-DHjhymZ1.js} +1 -1
  286. package/dist/client/assets/{thread-intent-DXo0Yx31.js → thread-intent-DDbt1zFs.js} +1 -1
  287. package/dist/client/assets/{thread-route-DS8kciEr.js → thread-route-BfzBR-qP.js} +1 -1
  288. package/dist/client/assets/{thread-route-gSc-D8rX.js → thread-route-BuNjfRbE.js} +1 -1
  289. package/dist/client/assets/{thread-sheet-body-1_Ocjq-y.js → thread-sheet-body-DKb5Tkbf.js} +1 -1
  290. package/dist/client/assets/{time-range-picker-vYGjZCpQ.js → time-range-picker-C3KImImw.js} +1 -1
  291. package/dist/client/assets/{toggle-group-DJ_EVrmj.js → toggle-group-NHMm81uy.js} +1 -1
  292. package/dist/client/assets/{tool-namespace-D3kseGsk.js → tool-namespace-cOMZbGcB.js} +1 -1
  293. package/dist/client/assets/{toolbar-icon-button-d4x_0lro.js → toolbar-icon-button-BDnjVLQO.js} +1 -1
  294. package/dist/client/assets/{tooltip-Di2b3yPR.js → tooltip-CPnhEOeb.js} +1 -1
  295. package/dist/client/assets/{tooltipContext-msSnDY30.js → tooltipContext-CcxsGSie.js} +1 -1
  296. package/dist/client/assets/{track-CGRBegMd.js → track-CdsiPzAC.js} +1 -1
  297. package/dist/client/assets/{types-mV5yr6ci.js → types-B1hCJ-PH.js} +1 -1
  298. package/dist/client/assets/{url-slug-CkQjsKua.js → url-slug-BlavxIAd.js} +1 -1
  299. package/dist/client/assets/{usage-stats-DZzHg6NP.js → usage-stats-evHtcCgH.js} +1 -1
  300. package/dist/client/assets/{use-ai-providers-CfePNQNv.js → use-ai-providers-NTub8QOK.js} +1 -1
  301. package/dist/client/assets/{use-automations-DFmclwX9.js → use-automations-BwkvJGBq.js} +1 -1
  302. package/dist/client/assets/{use-autosave-DA5SNb7k.js → use-autosave-B6_j9303.js} +1 -1
  303. package/dist/client/assets/{use-chat-layout-state-D92JCuLJ.js → use-chat-layout-state-Bq1kK1d0.js} +1 -1
  304. package/dist/client/assets/{use-clock-tick-C9-eN1I1.js → use-clock-tick-AQvE7bKr.js} +1 -1
  305. package/dist/client/assets/{use-connect-companion-BuMTRaf9.js → use-connect-companion-wPVbpX2v.js} +1 -1
  306. package/dist/client/assets/{use-connection-D_Adgv-E.js → use-connection-Brqa7Ss0.js} +1 -1
  307. package/dist/client/assets/{use-content-sync-BHkKeVYd.js → use-content-sync-CMGC5Qk5.js} +1 -1
  308. package/dist/client/assets/{use-copy-gSYL8v3F.js → use-copy-DuLRO-Fh.js} +1 -1
  309. package/dist/client/assets/{use-create-virtual-mcp-CiXMmUXs.js → use-create-virtual-mcp-DtbsfC0A.js} +1 -1
  310. package/dist/client/assets/{use-date-fns-locale-CUrZA5fh.js → use-date-fns-locale-BPO9eUd-.js} +1 -1
  311. package/dist/client/assets/{use-debounced-autosave-RCgfQ6lg.js → use-debounced-autosave-Bqicbzgb.js} +1 -1
  312. package/dist/client/assets/{use-debounced-value-Dr9ceBNF.js → use-debounced-value-vhxkuBRI.js} +1 -1
  313. package/dist/client/assets/{use-deco-credits-B6L0zhxv.js → use-deco-credits-DYXvHZvv.js} +1 -1
  314. package/dist/client/assets/{use-decopilot-events-DwzcMuux.js → use-decopilot-events-DuEo5esR.js} +1 -1
  315. package/dist/client/assets/{use-delete-connection-CSAEE8UP.js → use-delete-connection-B6sEpykr.js} +1 -1
  316. package/dist/client/assets/{use-deployment-admin-ejLZC9WR.js → use-deployment-admin-CXTN6dcC.js} +1 -1
  317. package/dist/client/assets/{use-ensure-project-folder--YaMAyE0.js → use-ensure-project-folder-BjmSBA08.js} +1 -1
  318. package/dist/client/assets/{use-fast-preview-draft-url-CzRakA4K.js → use-fast-preview-draft-url-MiSihGpC.js} +1 -1
  319. package/dist/client/assets/{use-file-configs-3SlF1xWQ.js → use-file-configs-DqTgPICU.js} +1 -1
  320. package/dist/client/assets/use-inbox-feed-CW81Gsok.js +1 -0
  321. package/dist/client/assets/{use-infinite-scroll-CDmBlMpL.js → use-infinite-scroll-rQID4ALa.js} +1 -1
  322. package/dist/client/assets/{use-join-requests-nf4bxYtm.js → use-join-requests-hKm0f1kJ.js} +1 -1
  323. package/dist/client/assets/{use-main-panel-tabs-DW3fs079.js → use-main-panel-tabs-AvyS9cfs.js} +1 -1
  324. package/dist/client/assets/{use-main-schema-v8-BQO21JEm.js → use-main-schema-v8-HicBcdhy.js} +1 -1
  325. package/dist/client/assets/{use-mcp-auth-status-CO6Ub53T.js → use-mcp-auth-status-C9h87_Be.js} +1 -1
  326. package/dist/client/assets/{use-mcp-client-D29AxZQu.js → use-mcp-client-BtBrdGJv.js} +1 -1
  327. package/dist/client/assets/{use-mcp-prompts-DKkh50MF.js → use-mcp-prompts-BHoghaTR.js} +1 -1
  328. package/dist/client/assets/{use-mcp-tools-BsMRX2A4.js → use-mcp-tools-C9XRg5hE.js} +1 -1
  329. package/dist/client/assets/{use-members-C9MurgI-.js → use-members-BdFbg_Mm.js} +1 -1
  330. package/dist/client/assets/{use-mobile-BD5770i1.js → use-mobile-B3guCu1w.js} +1 -1
  331. package/dist/client/assets/{use-navigate-to-agent-CQPUzJNe.js → use-navigate-to-agent-DzJ4GpEZ.js} +1 -1
  332. package/dist/client/assets/{use-open-billing-url-SSSm6FQF.js → use-open-billing-url-CdXn5_vW.js} +1 -1
  333. package/dist/client/assets/{use-org-auth-client-BSIUb5i_.js → use-org-auth-client-eVmapzts.js} +1 -1
  334. package/dist/client/assets/{use-org-fs-15RZy3eU.js → use-org-fs-CIqZsziN.js} +1 -1
  335. package/dist/client/assets/{use-org-repo-syncs-Di1vUnzC.js → use-org-repo-syncs-dS9FSvkG.js} +1 -1
  336. package/dist/client/assets/{use-org-sso-B5CMkJ67.js → use-org-sso-DwazSX6k.js} +1 -1
  337. package/dist/client/assets/{use-organization-roles-DxAVB6ag.js → use-organization-roles-BiMGfJ70.js} +1 -1
  338. package/dist/client/assets/{use-organization-settings-C_9pJ6vL.js → use-organization-settings-BcZ9BFJG.js} +1 -1
  339. package/dist/client/assets/{use-panel-navigate-DFiUWrm5.js → use-panel-navigate-B-vjXQrO.js} +1 -1
  340. package/dist/client/assets/{use-project-native-view-presence-DfqhV3L4.js → use-project-native-view-presence-0vSzphBC.js} +1 -1
  341. package/dist/client/assets/{use-project-scope-CLtdVNeV.js → use-project-scope-DEadi158.js} +1 -1
  342. package/dist/client/assets/{use-recent-apps-BWLn1QZY.js → use-recent-apps-BbY9Gh07.js} +1 -1
  343. package/dist/client/assets/{use-releases-BDWioTKt.js → use-releases-CgicO3CW.js} +1 -1
  344. package/dist/client/assets/{use-reports-diagnostic-C_hy66Cu.js → use-reports-diagnostic-GYWr-M97.js} +1 -1
  345. package/dist/client/assets/{use-secrets-hIVP4T5b.js → use-secrets-CHPX0iF7.js} +1 -1
  346. package/dist/client/assets/{use-section-preview-base-7QQlGHiW.js → use-section-preview-base-BdGcCaRc.js} +1 -1
  347. package/dist/client/assets/{use-sidebar-collapsed-roW3ic3U.js → use-sidebar-collapsed-CFQZVlEf.js} +1 -1
  348. package/dist/client/assets/{use-tags-Dq4Zp-D4.js → use-tags-ZJAZZKBe.js} +1 -1
  349. package/dist/client/assets/{use-task-board-analytics-BQ2BW9J5.js → use-task-board-analytics-u_O6doFC.js} +1 -1
  350. package/dist/client/assets/{use-task-board-events-DO55s7EG.js → use-task-board-events-Bc0NLtD6.js} +1 -1
  351. package/dist/client/assets/{use-task-board-item-prs-C86PykdL.js → use-task-board-item-prs-Bll-IQgK.js} +1 -1
  352. package/dist/client/assets/{use-task-metadata-DYbH5DN-.js → use-task-metadata-DiCUjyvF.js} +1 -1
  353. package/dist/client/assets/{use-thread-analytics-B4qGYgUX.js → use-thread-analytics-YIvbbfjU.js} +1 -1
  354. package/dist/client/assets/{use-thread-outputs-DvzAtT_v.js → use-thread-outputs-CFKmmshn.js} +1 -1
  355. package/dist/client/assets/useInfiniteQuery-CkPcoq7e.js +1 -0
  356. package/dist/client/assets/{useQueries-DVlsSUM_.js → useQueries--n-b-7z3.js} +1 -1
  357. package/dist/client/assets/useSuspenseInfiniteQuery-DWp7pfSN.js +1 -0
  358. package/dist/client/assets/{users-COkj6WNb.js → users--QRo4rfP.js} +1 -1
  359. package/dist/client/assets/{utils-DwvthgIR.js → utils-CmBQ_sIU.js} +1 -1
  360. package/dist/client/assets/{variant-calendar-BPuIFpIS.js → variant-calendar-Bh20TlOL.js} +1 -1
  361. package/dist/client/assets/{variant-draft-pointer-CvyltHJF.js → variant-draft-pointer-Bs4oKxZX.js} +1 -1
  362. package/dist/client/assets/{view-mode-toggle-MMR8E-NZ.js → view-mode-toggle-Bg52aP2b.js} +1 -1
  363. package/dist/client/assets/{virtual-mcp-D1u7mRMF.js → virtual-mcp-DHr3dTxJ.js} +1 -1
  364. package/dist/client/assets/{watch-sse-pool-DRahqQTv.js → watch-sse-pool-DLxI6U1q.js} +1 -1
  365. package/dist/client/index.html +2 -2
  366. package/dist/server/migrate.js +234 -221
  367. package/dist/server/server.js +699 -689
  368. package/package.json +1 -1
  369. package/dist/client/assets/agent-app-C_yF1v6O.js +0 -1
  370. package/dist/client/assets/agent-deck-DsYCNFpm.js +0 -1
  371. package/dist/client/assets/agent-library-Qtkhy2nb.js +0 -1
  372. package/dist/client/assets/agent-library-file-C8Yom_Nu.js +0 -1
  373. package/dist/client/assets/agent-overview-pa8Qr8Tn.js +0 -1
  374. package/dist/client/assets/agent-settings-0lkeomvL.js +0 -1
  375. package/dist/client/assets/agent-site-editor-code-CTqhydBe.js +0 -2
  376. package/dist/client/assets/agent-site-editor-content-DaddJtjp.js +0 -1
  377. package/dist/client/assets/agent-site-editor-preview-Dgqcz7I_.js +0 -1
  378. package/dist/client/assets/agent-view-CFFsLXPM.js +0 -1
  379. package/dist/client/assets/api-keys-CBrXKW3-.js +0 -1
  380. package/dist/client/assets/cms-settings-editor-iPvkYdeb.js +0 -1
  381. package/dist/client/assets/config-CCjjAABV.js +0 -1
  382. package/dist/client/assets/daily-pulse-C2CfC5Du.js +0 -1
  383. package/dist/client/assets/flat-project-Bds3JnVf.js +0 -1
  384. package/dist/client/assets/home-voXT5IXm.js +0 -1
  385. package/dist/client/assets/index-BBO2fF_k.js +0 -81
  386. package/dist/client/assets/index-JiORW7MK.css +0 -1
  387. package/dist/client/assets/library-CNSd4bFF.js +0 -1
  388. package/dist/client/assets/mock-board-U_yPR8oM.js +0 -1
  389. package/dist/client/assets/monitoring-DwToM-Fq.js +0 -1
  390. package/dist/client/assets/plan-BaQzNf2E.js +0 -1
  391. package/dist/client/assets/project-feed-Bgtj6ns1.js +0 -1
  392. package/dist/client/assets/project-reports-Dx3swybt.js +0 -1
  393. package/dist/client/assets/project-tasks-B-8Ejpte.js +0 -1
  394. package/dist/client/assets/record-editor-JArnXxFC.js +0 -1
  395. package/dist/client/assets/reports-KPb1fX8W.js +0 -1
  396. package/dist/client/assets/repositories-pcMxwkjs.js +0 -1
  397. package/dist/client/assets/route-Bvue6_Qd.js +0 -1
  398. package/dist/client/assets/route-QNmiM3Dx.js +0 -1
  399. package/dist/client/assets/settings-tab-fNGP1A-K.js +0 -1
  400. package/dist/client/assets/site-editor-DD5bj1jp.js +0 -1
  401. package/dist/client/assets/taskboard-analytics-COf2H0kA.js +0 -1
  402. package/dist/client/assets/tasks-tgqI80tO.js +0 -1
  403. package/dist/client/assets/use-task-board-items-LNHYxCky.js +0 -1
  404. package/dist/client/assets/useInfiniteQuery-CfCJ12GJ.js +0 -1
  405. package/dist/client/assets/useSuspenseInfiniteQuery-DXDHy0j2.js +0 -1
@@ -1,9 +1,22 @@
1
1
  // @bun
2
- var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null,x)}var C=(_,x)=>{for(var u in x)Iz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:Vz.bind(x,u)})};import{Migrator as Az,sql as o}from"kysely";var $x={};C($x,{up:()=>wz,down:()=>kz});import{sql as im}from"kysely";async function wz(_){await im`
2
+ var Vz=Object.defineProperty;var wz=(_)=>_;function kz(_,x){this[_]=wz.bind(null,x)}var C=(_,x)=>{for(var u in x)Vz(_,u,{get:x[u],enumerable:!0,configurable:!0,set:kz.bind(x,u)})};import{Migrator as yz,sql as o}from"kysely";var Ux={};C(Ux,{up:()=>nz,down:()=>vz});import{sql as hm}from"kysely";async function nz(_){await hm`
3
3
  ALTER TABLE task_board_items
4
4
  ADD COLUMN IF NOT EXISTS harness_id text NOT NULL DEFAULT 'claude-code'
5
5
  CHECK (harness_id IN ('claude-code', 'codex'))
6
- `.execute(_)}async function kz(_){await im`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Ux={};C(Ux,{up:()=>nz,down:()=>vz});async function nz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function vz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Jx={};C(Jx,{up:()=>pz,down:()=>gz,TYPES:()=>Px});import{sql as m_}from"kysely";var Px=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function pz(_){await _.schema.createTable("order_monitor_state").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("rule","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("since","timestamptz",(x)=>x.notNull()).addColumn("evaluated_at","timestamptz",(x)=>x.notNull()).addColumn("verdict","jsonb",(x)=>x.notNull()).addColumn("prev_status","text").addColumn("task_board_item_id","text",(x)=>x.references("task_board_items.id").onDelete("set null")).addPrimaryKeyConstraint("order_monitor_state_pkey",["organization_id","connection_id","rule"]).execute(),await cm(_,Px)}async function gz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await cm(_,Px.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function cm(_,x){await m_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await m_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Xx={};C(Xx,{up:()=>qz,down:()=>iz});import{sql as hm}from"kysely";async function qz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",hm`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",hm`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function iz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Qx={};C(Qx,{up:()=>cz,down:()=>hz});import{sql as a}from"kysely";async function cz(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
6
+ `.execute(_)}async function vz(_){await hm`ALTER TABLE task_board_items DROP COLUMN IF EXISTS harness_id`.execute(_)}var Px={};C(Px,{up:()=>pz,down:()=>gz});import{sql as G_}from"kysely";async function pz(_){await G_`
7
+ ALTER TABLE task_board_items
8
+ ADD COLUMN IF NOT EXISTS parent_id text NULL
9
+ REFERENCES task_board_items(id) ON DELETE SET NULL,
10
+ ADD COLUMN IF NOT EXISTS is_epic boolean NOT NULL DEFAULT false
11
+ `.execute(_),await G_`
12
+ CREATE INDEX IF NOT EXISTS idx_task_board_items_parent_id
13
+ ON task_board_items (parent_id)
14
+ WHERE parent_id IS NOT NULL
15
+ `.execute(_)}async function gz(_){await G_`DROP INDEX IF EXISTS idx_task_board_items_parent_id`.execute(_),await G_`
16
+ ALTER TABLE task_board_items
17
+ DROP COLUMN IF EXISTS parent_id,
18
+ DROP COLUMN IF EXISTS is_epic
19
+ `.execute(_)}var Jx={};C(Jx,{up:()=>qz,down:()=>iz});async function qz(_){await _.schema.createTable("codex_subscriptions").addColumn("user_id","text",(x)=>x.primaryKey().references("user.id").onDelete("cascade")).addColumn("encrypted_auth","text",(x)=>x.notNull()).addColumn("auth_hash","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull()).execute()}async function iz(_){await _.schema.dropTable("codex_subscriptions").ifExists().execute()}var Qx={};C(Qx,{up:()=>cz,down:()=>hz,TYPES:()=>Xx});import{sql as m_}from"kysely";var Xx=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed","order_incident"];async function cz(_){await _.schema.createTable("order_monitor_state").addColumn("organization_id","text",(x)=>x.notNull()).addColumn("connection_id","text",(x)=>x.notNull().references("connections.id").onDelete("cascade")).addColumn("rule","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull()).addColumn("since","timestamptz",(x)=>x.notNull()).addColumn("evaluated_at","timestamptz",(x)=>x.notNull()).addColumn("verdict","jsonb",(x)=>x.notNull()).addColumn("prev_status","text").addColumn("task_board_item_id","text",(x)=>x.references("task_board_items.id").onDelete("set null")).addPrimaryKeyConstraint("order_monitor_state_pkey",["organization_id","connection_id","rule"]).execute(),await tm(_,Xx)}async function hz(_){await m_`DELETE FROM notifications WHERE type = 'order_incident'`.execute(_),await tm(_,Xx.filter((x)=>x!=="order_incident")),await _.schema.dropTable("order_monitor_state").ifExists().execute()}async function tm(_,x){await m_`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await m_`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${m_.join(x.map((u)=>m_.lit(u)))}))`.execute(_)}var Zx={};C(Zx,{up:()=>tz,down:()=>oz});import{sql as om}from"kysely";async function tz(_){await _.schema.alterTable("organization_settings").addColumn("voice_provider","text").addColumn("voice_model","text").execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_provider_check",om`voice_provider in ('elevenlabs', 'openai')`).execute(),await _.schema.alterTable("organization_settings").addCheckConstraint("organization_settings_voice_model_check",om`voice_model is null or (voice_provider is not null and length(btrim(voice_model)) between 1 and 128)`).execute()}async function oz(_){await _.schema.alterTable("organization_settings").dropColumn("voice_model").dropColumn("voice_provider").execute()}var Wx={};C(Wx,{up:()=>az,down:()=>rz});import{sql as a}from"kysely";async function az(_){for(let x of["private_registry_monitor_result","private_registry_monitor_run","private_registry_monitor_connection","private_registry_publish_api_key","private_registry_publish_request","private_registry_item","virtual_mcp_plugin_configs"])await _.schema.dropTable(x).ifExists().execute();await a`ALTER TABLE organization_settings
7
20
  DROP COLUMN IF EXISTS registry_config,
8
21
  DROP COLUMN IF EXISTS enabled_plugins`.execute(_),await a`CREATE OR REPLACE FUNCTION registry_try_jsonb(value text) RETURNS jsonb AS $fn$
9
22
  BEGIN RETURN value::jsonb;
@@ -18,20 +31,20 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
18
31
  )`.execute(_),await a`DELETE FROM connections
19
32
  WHERE (id = organization_id || '_registry' AND app_name = 'deco-registry')
20
33
  OR (id = organization_id || '_community-registry' AND app_name = 'mcp-registry')
21
- OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function hz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var Zx={};C(Zx,{up:()=>tz,down:()=>oz});import{sql as tm}from"kysely";async function tz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await tm`
34
+ OR (app_name = 'private-registry-monitor' AND app_id = 'private-registry:monitor')`.execute(_)}async function rz(){throw Error("The private registry data was removed. Restore a database backup before reverting this migration.")}var jx={};C(jx,{up:()=>lz,down:()=>ez});import{sql as am}from"kysely";async function lz(_){await _.schema.alterTable("organization_settings").addColumn("submodule_credentials","text").execute();let x=await am`
22
35
  select organization_id, metadata
23
36
  from connections
24
37
  where connection_type = 'VIRTUAL'
25
38
  and metadata like '%submoduleCredentials%'
26
39
  order by updated_at asc
27
- `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await tm`
40
+ `.execute(_),u=new Map;for(let K of x.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)?.runtime?.submoduleCredentials}catch{continue}if(!Array.isArray(m))continue;for(let T of m){let z=T?.host,E=T?.secretId;if(typeof z!=="string"||!z)continue;if(typeof E!=="string"||!E)continue;let $=u.get(K.organization_id)??new Map;$.set(z,E),u.set(K.organization_id,$)}}let N=new Date().toISOString();for(let[K,m]of u){let T=JSON.stringify([...m].map(([z,E])=>({host:z,secretId:E})));await am`
28
41
  insert into organization_settings
29
42
  ("organizationId", submodule_credentials, "createdAt", "updatedAt")
30
43
  values (${K}, ${T}, ${N}, ${N})
31
44
  on conflict ("organizationId") do update
32
45
  set submodule_credentials = excluded.submodule_credentials,
33
46
  "updatedAt" = excluded."updatedAt"
34
- `.execute(_)}}async function oz(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Wx={};C(Wx,{up:()=>az,down:()=>rz});async function az(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function rz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var jx={};C(jx,{up:()=>lz,down:()=>ez});import{sql as Lx}from"kysely";async function lz(_){await Lx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Lx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Lx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function ez(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Yx={};C(Yx,{up:()=>bz,down:()=>_E});import{sql as G}from"kysely";var dz={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},sz={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Fx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function om(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function am(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,dz],[G`'commerce-discovery_' || organization_id`,sz]])for(let T of["title","description"]){let{from:z,to:E}=om(m[T],x);await G`
47
+ `.execute(_)}}async function ez(_){await _.schema.alterTable("organization_settings").dropColumn("submodule_credentials").execute()}var Lx={};C(Lx,{up:()=>dz,down:()=>bz});async function dz(_){await _.schema.alterTable("repositories").addColumn("sandbox_image","text").execute()}async function bz(_){await _.schema.alterTable("repositories").dropColumn("sandbox_image").execute()}var Yx={};C(Yx,{up:()=>sz,down:()=>_E});import{sql as Fx}from"kysely";async function sz(_){await Fx`CREATE INDEX idx_tmp_finish_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'finish'`.execute(_),await Fx`CREATE INDEX idx_threads_updated_at ON threads (updated_at DESC)`.execute(_),await Fx`CREATE INDEX idx_threads_active_status ON threads (status) WHERE status IN ('in_progress', 'requires_action')`.execute(_)}async function _E(_){await _.schema.dropIndex("idx_threads_active_status").execute(),await _.schema.dropIndex("idx_threads_updated_at").execute(),await _.schema.dropIndex("idx_tmp_finish_persisted_at").execute()}var Hx={};C(Hx,{up:()=>CE,down:()=>KE});import{sql as G}from"kysely";var xE={title:{old:["Store Report","Commerce Discovery"],new:"Deco Score"},description:{old:["Your store's report and diagnostics","Commerce report and diagnostics","Commerce Discovery report and commerce diagnostics."],new:"Your store's Deco Score"}},uE={title:{old:["Report Agent","Commerce Discovery"],new:"Deco Score Agent"},description:{old:["Ask anything about your store's report","Commerce report and diagnostics","Commerce Discovery report workspace."],new:"Ask anything about your store's Deco Score"}},Dx={toolName:"get_my_diagnostic",label:{old:["Report","Commerce Discovery"],new:"Deco Score"}};function rm(_,x){return x==="up"?{from:_.old,to:_.new}:{from:[_.new],to:_.old[0]}}async function lm(_,x){for(let[K,m]of[[G`organization_id || '_commerce-discovery'`,xE],[G`'commerce-discovery_' || organization_id`,uE]])for(let T of["title","description"]){let{from:z,to:E}=rm(m[T],x);await G`
35
48
  UPDATE connections
36
49
  SET ${G.ref(T)} = ${E}
37
50
  WHERE id = ${K}
@@ -45,7 +58,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
45
58
  RETURN NULL;
46
59
  END;
47
60
  $fn$ LANGUAGE plpgsql IMMUTABLE;
48
- `.execute(_);let{from:u,to:N}=om(Fx.label,x);await G`
61
+ `.execute(_);let{from:u,to:N}=rm(Dx.label,x);await G`
49
62
  WITH agents AS (
50
63
  SELECT id, deco_score_try_jsonb(metadata) AS m
51
64
  FROM connections
@@ -60,7 +73,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
60
73
  (
61
74
  SELECT jsonb_agg(
62
75
  CASE
63
- WHEN v ->> 'toolName' = ${Fx.toolName}
76
+ WHEN v ->> 'toolName' = ${Dx.toolName}
64
77
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
65
78
  THEN v || jsonb_build_object('label', ${N}::text)
66
79
  ELSE v
@@ -76,7 +89,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
76
89
  AND EXISTS (
77
90
  SELECT 1
78
91
  FROM jsonb_array_elements(a.m -> 'ui' -> 'pinnedViews') AS e(v)
79
- WHERE v ->> 'toolName' = ${Fx.toolName}
92
+ WHERE v ->> 'toolName' = ${Dx.toolName}
80
93
  AND v ->> 'label' = ANY(${G.val(u)}::text[])
81
94
  )
82
95
  )
@@ -84,38 +97,38 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
84
97
  SET metadata = r.m::text
85
98
  FROM relabeled r
86
99
  WHERE c.id = r.id
87
- `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function bz(_){await am(_,"up")}async function _E(_){await am(_,"down")}var Hx={};C(Hx,{up:()=>uE,down:()=>CE,ACTIONS:()=>Dx});import{sql as T_}from"kysely";var Dx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],xE=Dx.filter((_)=>_!=="finding_resolved");async function uE(_){await rm(_,Dx)}async function CE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await rm(_,xE)}async function rm(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Mx={};C(Mx,{up:()=>KE,down:()=>NE});import{sql as G_}from"kysely";async function KE(_){await G_`
100
+ `.execute(_),await G`DROP FUNCTION IF EXISTS deco_score_try_jsonb(text)`.execute(_)}async function CE(_){await lm(_,"up")}async function KE(_){await lm(_,"down")}var Rx={};C(Rx,{up:()=>mE,down:()=>TE,ACTIONS:()=>Mx});import{sql as T_}from"kysely";var Mx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved"],NE=Mx.filter((_)=>_!=="finding_resolved");async function mE(_){await em(_,Mx)}async function TE(_){await T_`DELETE FROM task_board_activity WHERE action = 'finding_resolved'`.execute(_),await em(_,NE)}async function em(_,x){await T_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await T_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${T_.join(x.map((u)=>T_.lit(u)))}))`.execute(_)}var Bx={};C(Bx,{up:()=>zE,down:()=>EE});import{sql as O_}from"kysely";async function zE(_){await O_`
88
101
  ALTER TABLE org_jira_column_automations
89
102
  ADD COLUMN IF NOT EXISTS from_kind text NOT NULL DEFAULT 'any'
90
103
  CONSTRAINT chk_org_jira_column_automations_from_kind
91
104
  CHECK (from_kind IN ('any', 'earlier', 'later', 'statuses')),
92
105
  ADD COLUMN IF NOT EXISTS from_statuses text[] NOT NULL DEFAULT '{}',
93
106
  ADD COLUMN IF NOT EXISTS from_key text NOT NULL DEFAULT 'any'
94
- `.execute(_),await G_`
107
+ `.execute(_),await O_`
95
108
  ALTER TABLE org_jira_column_automations
96
109
  DROP CONSTRAINT org_jira_column_automations_pkey,
97
110
  ADD PRIMARY KEY (organization_id, jira_status, from_key)
98
- `.execute(_)}async function NE(_){await G_`
111
+ `.execute(_)}async function EE(_){await O_`
99
112
  DELETE FROM org_jira_column_automations WHERE from_key <> 'any'
100
- `.execute(_),await G_`
113
+ `.execute(_),await O_`
101
114
  ALTER TABLE org_jira_column_automations
102
115
  DROP CONSTRAINT org_jira_column_automations_pkey,
103
116
  ADD PRIMARY KEY (organization_id, jira_status),
104
117
  DROP COLUMN from_key,
105
118
  DROP COLUMN from_statuses,
106
119
  DROP COLUMN from_kind
107
- `.execute(_)}var Rx={};C(Rx,{up:()=>mE,down:()=>TE});import{sql as lm}from"kysely";async function mE(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(lm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_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("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(lm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function TE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Bx={};C(Bx,{up:()=>zE,down:()=>EE});async function zE(){}async function EE(){}var Ox={};C(Ox,{up:()=>$E,down:()=>UE});import{sql as Gx}from"kysely";async function $E(_){await Gx`
120
+ `.execute(_)}var Gx={};C(Gx,{up:()=>$E,down:()=>UE});import{sql as dm}from"kysely";async function $E(_){await _.schema.createTable("org_project_folders").addColumn("organization_id","text",(x)=>x.primaryKey().references("organization.id").onDelete("cascade")).addColumn("folders","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dm`CURRENT_TIMESTAMP`)).execute(),await _.schema.createTable("user_sidebar_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("preferences","jsonb",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(dm`CURRENT_TIMESTAMP`)).addPrimaryKeyConstraint("user_sidebar_preferences_pkey",["user_id","organization_id"]).execute(),await _.schema.createIndex("user_sidebar_preferences_organization_id_idx").on("user_sidebar_preferences").column("organization_id").execute()}async function UE(_){await _.schema.dropTable("user_sidebar_preferences").execute(),await _.schema.dropTable("org_project_folders").execute()}var Ox={};C(Ox,{up:()=>PE,down:()=>JE});async function PE(){}async function JE(){}var fx={};C(fx,{up:()=>XE,down:()=>QE});import{sql as Sx}from"kysely";async function XE(_){await Sx`
108
121
  ALTER TABLE task_board_prompts
109
122
  ADD COLUMN IF NOT EXISTS skills text[] NOT NULL DEFAULT '{}'
110
- `.execute(_)}async function UE(_){await Gx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Gx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var fx={};C(fx,{up:()=>PE,down:()=>JE});import{sql as Sx}from"kysely";async function PE(_){await Sx`
123
+ `.execute(_)}async function QE(_){await Sx`DELETE FROM task_board_prompts WHERE prompt = ''`.execute(_),await Sx`ALTER TABLE task_board_prompts DROP COLUMN skills`.execute(_)}var Ix={};C(Ix,{up:()=>ZE,down:()=>WE});import{sql as Ax}from"kysely";async function ZE(_){await Ax`
111
124
  DELETE FROM threads WHERE virtual_mcp_id LIKE 'studio-jira\\_%'
112
- `.execute(_),await Sx`
125
+ `.execute(_),await Ax`
113
126
  DELETE FROM connection_aggregations
114
127
  WHERE parent_connection_id LIKE 'studio-jira\\_%'
115
- `.execute(_),await Sx`
128
+ `.execute(_),await Ax`
116
129
  DELETE FROM connections
117
130
  WHERE id LIKE 'studio-jira\\_%' AND connection_type = 'VIRTUAL'
118
- `.execute(_)}async function JE(){}var Ax={};C(Ax,{up:()=>XE,down:()=>QE});import{sql as em}from"kysely";async function XE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(em`audience in ('human', 'internal')`)).execute(),await em`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function QE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Ix={};C(Ix,{up:()=>WE,down:()=>LE});import{sql as ZE}from"kysely";async function WE(_){await ZE`
131
+ `.execute(_)}async function WE(){}var yx={};C(yx,{up:()=>jE,down:()=>LE});import{sql as bm}from"kysely";async function jE(_){await _.schema.alterTable("task_board_comments").addColumn("audience","text",(x)=>x.notNull().defaultTo("human").check(bm`audience in ('human', 'internal')`)).execute(),await bm`update task_board_comments set audience = 'internal' where author_id = 'super-agent'`.execute(_)}async function LE(_){await _.schema.alterTable("task_board_comments").dropColumn("audience").execute()}var Vx={};C(Vx,{up:()=>YE,down:()=>DE});import{sql as FE}from"kysely";async function YE(_){await FE`
119
132
  UPDATE org_fs_entry AS d
120
133
  SET deleted_at = now(),
121
134
  updated_at = now(),
@@ -134,7 +147,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
134
147
  AND c.parent = d.path
135
148
  AND c.deleted_at IS NULL
136
149
  )
137
- `.execute(_)}async function LE(){}var Vx={};C(Vx,{up:()=>FE,down:()=>YE,ACTIONS:()=>yx});import{sql as F}from"kysely";var yx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],jE=yx.filter((_)=>_!=="sprint_changed");async function FE(_){await F`
150
+ `.execute(_)}async function DE(){}var kx={};C(kx,{up:()=>ME,down:()=>RE,ACTIONS:()=>wx});import{sql as F}from"kysely";var wx=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported","finding_resolved","sprint_changed"],HE=wx.filter((_)=>_!=="sprint_changed");async function ME(_){await F`
138
151
  CREATE TABLE task_board_sprints (
139
152
  id text PRIMARY KEY,
140
153
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -160,12 +173,12 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
160
173
  CREATE INDEX idx_task_board_items_sprint
161
174
  ON task_board_items (organization_id, sprint_id)
162
175
  WHERE sprint_id IS NOT NULL
163
- `.execute(_),await dm(_,yx)}async function YE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await dm(_,jE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function dm(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var wx={};C(wx,{up:()=>HE,planOrgSiteProjectLinks:()=>_T,down:()=>ME,applyOrgSiteProjectLinks:()=>xT});import{sql as J}from"kysely";var DE="migration-237",sm=1000;async function bm(_){return(await J`
176
+ `.execute(_),await sm(_,wx)}async function RE(_){await F`DELETE FROM task_board_activity WHERE action = 'sprint_changed'`.execute(_),await sm(_,HE),await F`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await F`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await F`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}async function sm(_,x){await F`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await F`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${F.join(x.map((u)=>F.lit(u)))}))`.execute(_)}var nx={};C(nx,{up:()=>GE,planOrgSiteProjectLinks:()=>uT,down:()=>OE,applyOrgSiteProjectLinks:()=>CT});import{sql as J}from"kysely";var BE="migration-237",_T=1000;async function xT(_){return(await J`
164
177
  SELECT conname FROM pg_constraint
165
178
  WHERE conrelid = 'org_sites'::regclass
166
179
  AND confrelid = 'organization'::regclass
167
180
  AND contype = 'f'
168
- `.execute(_)).rows[0]?.conname??null}async function _T(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
181
+ `.execute(_)).rows[0]?.conname??null}async function uT(_){let x={links:[],none:0,ambiguous:[],unparseableMetadata:0},u=await J`
169
182
  SELECT slug, organization_id FROM org_sites
170
183
  WHERE organization_id IS NOT NULL
171
184
  ORDER BY organization_id, slug
@@ -176,17 +189,17 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
176
189
  SELECT organization_id FROM org_sites WHERE organization_id IS NOT NULL
177
190
  )
178
191
  ORDER BY organization_id, id
179
- `.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function xT(_,x){let u=0;for(let N=0;N<x.length;N+=sm){let K=J.join(x.slice(N,N+sm).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
192
+ `.execute(_),K=new Map;for(let m of N.rows){if(!m.metadata)continue;let T;try{let $=JSON.parse(m.metadata);if($&&typeof $==="object")T=$.siteSlug}catch{x.unparseableMetadata++;continue}if(typeof T!=="string"||!T)continue;let z=`${m.organization_id}\x00${T}`,E=K.get(z)??[];E.push(m.id),K.set(z,E)}for(let{slug:m,organization_id:T}of u.rows){let z=K.get(`${T}\x00${m}`)??[];if(z.length===0)x.none++;else if(z.length>1)x.ambiguous.push({slug:m,projectIds:z});else x.links.push({slug:m,projectId:z[0]})}return x}async function CT(_,x){let u=0;for(let N=0;N<x.length;N+=_T){let K=J.join(x.slice(N,N+_T).map((T)=>J`(${T.slug}::text, ${T.projectId}::text)`)),m=await J`
180
193
  UPDATE org_sites o
181
194
  SET project_id = v.pid,
182
195
  linked_at = now(),
183
- updated_by = ${DE},
196
+ updated_by = ${BE},
184
197
  updated_at = now()
185
198
  FROM (VALUES ${K}) AS v(slug, pid)
186
199
  WHERE o.slug = v.slug
187
200
  AND o.project_id IS NULL
188
201
  AND EXISTS (SELECT 1 FROM connections c WHERE c.id = v.pid)
189
- `.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function HE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await _T(_);await J`
202
+ `.execute(_);u+=Number(m.numAffectedRows??0n)}return u}async function GE(_){await J`SET LOCAL lock_timeout = '5s'`.execute(_);let x=await uT(_);await J`
190
203
  ALTER TABLE org_sites
191
204
  ADD COLUMN project_id text NULL
192
205
  REFERENCES connections(id) ON DELETE SET NULL,
@@ -194,7 +207,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
194
207
  `.execute(_),await J`
195
208
  CREATE UNIQUE INDEX org_sites_project_id_uq
196
209
  ON org_sites (project_id) WHERE project_id IS NOT NULL
197
- `.execute(_);let u=await bm(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
210
+ `.execute(_);let u=await xT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
198
211
  ALTER TABLE org_sites ALTER COLUMN organization_id DROP NOT NULL
199
212
  `.execute(_),await J`
200
213
  ALTER TABLE org_sites
@@ -203,12 +216,12 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
203
216
  ON DELETE SET NULL NOT VALID
204
217
  `.execute(_),await J`
205
218
  ALTER TABLE org_sites VALIDATE CONSTRAINT org_sites_organization_id_fkey
206
- `.execute(_);let N=await xT(_,x.links),K=await J`
219
+ `.execute(_);let N=await CT(_,x.links),K=await J`
207
220
  UPDATE org_sites SET linked_at = created_at
208
221
  WHERE organization_id IS NOT NULL AND linked_at IS NULL
209
- `.execute(_);await J`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function ME(_){if((await J`
222
+ `.execute(_);await J`SET LOCAL lock_timeout = DEFAULT`.execute(_),console.log(`[migration 237] org_sites: linked=${N} (planned=${x.links.length}, skipped_deleted_project=${x.links.length-N}) none=${x.none} ambiguous=${x.ambiguous.length} unlinked_marked_used=${Number(K.numAffectedRows??0n)} unparseable_project_metadata=${x.unparseableMetadata}`);for(let{slug:m,projectIds:T}of x.ambiguous)console.log(`[migration 237] left unlinked, several projects use "${m}": ${T.join(", ")}`)}async function OE(_){if((await J`
210
223
  SELECT 1 FROM org_sites WHERE organization_id IS NULL LIMIT 1
211
- `.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await bm(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
224
+ `.execute(_)).rows.length>0)throw Error("migration 237 down: tombstoned slugs exist (org_sites.organization_id IS NULL); refusing to free them");let u=await xT(_);if(u)await J`ALTER TABLE org_sites DROP CONSTRAINT ${J.id(u)}`.execute(_);await J`
212
225
  ALTER TABLE org_sites ALTER COLUMN organization_id SET NOT NULL
213
226
  `.execute(_),await J`
214
227
  ALTER TABLE org_sites
@@ -217,7 +230,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
217
230
  ON DELETE CASCADE
218
231
  `.execute(_),await J`DROP INDEX IF EXISTS org_sites_project_id_uq`.execute(_),await J`
219
232
  ALTER TABLE org_sites DROP COLUMN project_id, DROP COLUMN linked_at
220
- `.execute(_)}var kx={};C(kx,{up:()=>RE,moveRules:()=>Y,down:()=>BE});import{sql as c}from"kysely";async function RE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
233
+ `.execute(_)}var vx={};C(vx,{up:()=>SE,moveRules:()=>Y,down:()=>fE});import{sql as c}from"kysely";async function SE(_){await Y(_,"task_board_prompts","tbp_","in_progress","in_review"),await Y(_,"task_board_prompts","tbp_","todo","in_progress"),await Y(_,"task_board_prompts","tbp_","approved","ready_for_deployment"),await Y(_,"task_board_prompts","tbp_","merged","post_deploy_validation"),await c`
221
234
  DELETE FROM task_board_column_automations WHERE column_key = 'in_review'
222
235
  `.execute(_),await Y(_,"task_board_column_automations","tbca_","todo","in_progress"),await Y(_,"task_board_column_automations","tbca_","approved","ready_for_deployment"),await Y(_,"task_board_column_automations","tbca_","merged","post_deploy_validation"),await c`
223
236
  WITH moved AS (
@@ -245,7 +258,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
245
258
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
246
259
  now()
247
260
  FROM moved
248
- `.execute(_)}async function BE(){}async function Y(_,x,u,N,K){await c`
261
+ `.execute(_)}async function fE(){}async function Y(_,x,u,N,K){await c`
249
262
  DELETE FROM ${c.table(x)} AS src
250
263
  WHERE src.column_key = ${N}
251
264
  AND EXISTS (
@@ -259,7 +272,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
259
272
  id = ${u} || organization_id || '_' || ${K},
260
273
  updated_at = now()
261
274
  WHERE column_key = ${N}
262
- `.execute(_)}var nx={};C(nx,{up:()=>OE,down:()=>SE});import{sql as GE}from"kysely";async function OE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await GE`
275
+ `.execute(_)}var px={};C(px,{up:()=>IE,down:()=>yE});import{sql as AE}from"kysely";async function IE(_){for(let x of["task_board_prompts","task_board_column_automations"]){let u=x==="task_board_prompts"?"tbp_":"tbca_";await Y(_,x,u,"todo","in_progress"),await Y(_,x,u,"approved","ready_for_deployment"),await Y(_,x,u,"merged","post_deploy_validation")}await AE`
263
276
  WITH moved AS (
264
277
  UPDATE task_board_items AS i
265
278
  SET status = CASE prev.status
@@ -283,7 +296,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
283
296
  jsonb_build_object('from', from_status, 'to', to_status, 'reason', 'board_lanes'),
284
297
  now()
285
298
  FROM moved
286
- `.execute(_)}async function SE(){}var vx={};C(vx,{up:()=>AE,down:()=>IE});import{sql as fE}from"kysely";async function AE(_){await fE`
299
+ `.execute(_)}async function yE(){}var gx={};C(gx,{up:()=>wE,down:()=>kE});import{sql as VE}from"kysely";async function wE(_){await VE`
287
300
  WITH restored AS (
288
301
  UPDATE task_board_items AS i
289
302
  SET status = 'todo', updated_at = now()
@@ -310,45 +323,45 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
310
323
  jsonb_build_object('from', 'triage', 'to', 'todo', 'reason', 'board_lanes'),
311
324
  now()
312
325
  FROM restored
313
- `.execute(_)}async function IE(){}var px={};C(px,{up:()=>yE,down:()=>VE});import{sql as j}from"kysely";async function yE(_){await j`
326
+ `.execute(_)}async function kE(){}var qx={};C(qx,{up:()=>nE,down:()=>vE});import{sql as L}from"kysely";async function nE(_){await L`
314
327
  ALTER TABLE automation_triggers
315
328
  ADD COLUMN column_key text,
316
329
  ADD COLUMN from_kind text,
317
330
  ADD COLUMN from_statuses text[] NOT NULL DEFAULT '{}'
318
- `.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await j`
331
+ `.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
319
332
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
320
333
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
321
- `.execute(_),await j`
334
+ `.execute(_),await L`
322
335
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_board_column_transition_trigger
323
336
  CHECK (
324
337
  type != 'board_column_transition'
325
338
  OR (column_key IS NOT NULL
326
339
  AND from_kind IN ('any', 'earlier', 'later', 'statuses'))
327
340
  )
328
- `.execute(_),await j`
341
+ `.execute(_),await L`
329
342
  CREATE TABLE automation_trigger_fires (
330
343
  trigger_id text NOT NULL REFERENCES automation_triggers(id) ON DELETE CASCADE,
331
344
  event_key text NOT NULL,
332
345
  created_at timestamptz NOT NULL DEFAULT now(),
333
346
  PRIMARY KEY (trigger_id, event_key)
334
347
  )
335
- `.execute(_),await j`
348
+ `.execute(_),await L`
336
349
  CREATE INDEX IF NOT EXISTS idx_task_board_activity_status_changed_at
337
350
  ON task_board_activity (occurred_at)
338
351
  WHERE action = 'status_changed'
339
- `.execute(_)}async function VE(_){await j`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await j`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await j`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await j`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await j`
352
+ `.execute(_)}async function vE(_){await L`DROP INDEX IF EXISTS idx_task_board_activity_status_changed_at`.execute(_),await L`DROP TABLE IF EXISTS automation_trigger_fires`.execute(_),await L`DELETE FROM automation_triggers WHERE type = 'board_column_transition'`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT IF EXISTS chk_board_column_transition_trigger`.execute(_),await L`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await L`
340
353
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
341
354
  CHECK (type IN ('cron', 'event', 'webhook'))
342
- `.execute(_),await j`
355
+ `.execute(_),await L`
343
356
  ALTER TABLE automation_triggers
344
357
  DROP COLUMN IF EXISTS column_key,
345
358
  DROP COLUMN IF EXISTS from_kind,
346
359
  DROP COLUMN IF EXISTS from_statuses
347
- `.execute(_)}var gx={};C(gx,{up:()=>vE,down:()=>pE,backfillUrlSlugs:()=>O_});import{sql as D}from"kysely";var CT=64,wE=new Set(["new","edit","settings","apps","projects","connections"]);function kE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function nE(_,x){let u=kE(_??"").slice(0,CT).replace(/-+$/,"");return u.length>=2&&!wE.has(u)?u:x}function uT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,CT-u.length).replace(/-+$/,"")}${u}`}async function O_(_){let{rows:x}=await D`
360
+ `.execute(_)}var ix={};C(ix,{up:()=>iE,down:()=>cE,backfillUrlSlugs:()=>S_});import{sql as D}from"kysely";var NT=64,pE=new Set(["new","edit","settings","apps","projects","connections"]);function gE(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function qE(_,x){let u=gE(_??"").slice(0,NT).replace(/-+$/,"");return u.length>=2&&!pE.has(u)?u:x}function KT(_,x){if(x<=1)return _;let u=`-${x}`;return`${_.slice(0,NT-u.length).replace(/-+$/,"")}${u}`}async function S_(_){let{rows:x}=await D`
348
361
  SELECT id, organization_id, title, connection_type, url_slug
349
362
  FROM connections
350
363
  ORDER BY organization_id, created_at, id
351
- `.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=nE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(uT(E,$)))$++;let P=uT(E,$);z.add(P),m.push({id:T.id,slug:P})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
364
+ `.execute(_),{rows:u}=await D`SELECT organization_id, slug FROM connection_slug_aliases`.execute(_),N=new Map,K=(T)=>{let z=N.get(T);if(!z)N.set(T,z=new Set);return z};for(let T of x)if(T.url_slug)K(T.organization_id).add(T.url_slug);for(let T of u)K(T.organization_id).add(T.slug);let m=[];for(let T of x){if(T.url_slug)continue;let z=K(T.organization_id),E=qE(T.title,T.connection_type==="VIRTUAL"?"project":"app"),$=1;while(z.has(KT(E,$)))$++;let P=KT(E,$);z.add(P),m.push({id:T.id,slug:P})}for(let T=0;T<m.length;T+=1000){let z=m.slice(T,T+1000);await D`
352
365
  UPDATE connections c
353
366
  SET url_slug = v.slug
354
367
  FROM unnest(
@@ -356,7 +369,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
356
369
  ${D.val(z.map((E)=>E.slug))}::text[]
357
370
  ) AS v(id, slug)
358
371
  WHERE c.id = v.id AND c.url_slug IS NULL
359
- `.execute(_)}}async function vE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
372
+ `.execute(_)}}async function iE(_){await D`ALTER TABLE connections ADD COLUMN url_slug text`.execute(_),await D`
360
373
  CREATE TABLE connection_slug_aliases (
361
374
  organization_id text NOT NULL,
362
375
  slug text NOT NULL,
@@ -367,21 +380,21 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
367
380
  `.execute(_),await D`
368
381
  CREATE INDEX idx_connection_slug_aliases_connection
369
382
  ON connection_slug_aliases (connection_id)
370
- `.execute(_),await O_(_),await D`
383
+ `.execute(_),await S_(_),await D`
371
384
  CREATE UNIQUE INDEX idx_connections_org_url_slug
372
385
  ON connections (organization_id, url_slug)
373
- `.execute(_)}async function pE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var qx={};C(qx,{up:()=>gE,down:()=>qE});async function gE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function qE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var ix={};C(ix,{up:()=>iE,down:()=>cE});async function iE(_){await O_(_)}async function cE(){}var cx={};C(cx,{up:()=>hE,down:()=>tE});import{sql as S_}from"kysely";async function hE(_){await S_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await S_`
386
+ `.execute(_)}async function cE(_){await D`DROP TABLE connection_slug_aliases`.execute(_),await D`DROP INDEX idx_connections_org_url_slug`.execute(_),await D`ALTER TABLE connections DROP COLUMN url_slug`.execute(_)}var cx={};C(cx,{up:()=>hE,down:()=>tE});async function hE(_){await _.schema.alterTable("experiments").addColumn("task_board_item_id","text").execute()}async function tE(_){await _.schema.alterTable("experiments").dropColumn("task_board_item_id").execute()}var hx={};C(hx,{up:()=>oE,down:()=>aE});async function oE(_){await S_(_)}async function aE(){}var tx={};C(tx,{up:()=>rE,down:()=>lE});import{sql as f_}from"kysely";async function rE(_){await f_`ALTER TABLE automations ADD COLUMN system_key text`.execute(_),await f_`
374
387
  CREATE UNIQUE INDEX idx_automations_org_system_key
375
388
  ON automations (organization_id, system_key)
376
389
  WHERE system_key IS NOT NULL
377
- `.execute(_)}async function tE(_){await S_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await S_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var hx={};C(hx,{up:()=>oE,down:()=>aE});import{sql as z_}from"kysely";async function oE(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
390
+ `.execute(_)}async function lE(_){await f_`DROP INDEX IF EXISTS idx_automations_org_system_key`.execute(_),await f_`ALTER TABLE automations DROP COLUMN IF EXISTS system_key`.execute(_)}var ox={};C(ox,{up:()=>eE,down:()=>dE});import{sql as z_}from"kysely";async function eE(_){await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
378
391
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
379
392
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition',
380
393
  'board_pr_ready'))
381
- `.execute(_)}async function aE(_){await z_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
394
+ `.execute(_)}async function dE(_){await z_`DELETE FROM automation_triggers WHERE type = 'board_pr_ready'`.execute(_),await z_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await z_`
382
395
  ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type
383
396
  CHECK (type IN ('cron', 'event', 'webhook', 'board_column_transition'))
384
- `.execute(_)}var tx={};C(tx,{up:()=>rE,down:()=>dE});import{sql as H}from"kysely";async function rE(_){let{rows:x}=await H`
397
+ `.execute(_)}var ax={};C(ax,{up:()=>bE,down:()=>x0});import{sql as H}from"kysely";async function bE(_){let{rows:x}=await H`
385
398
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
386
399
  WHERE conname = 'chk_trigger_type'
387
400
  AND conrelid = 'automation_triggers'::regclass
@@ -408,8 +421,8 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
408
421
  INSERT INTO automations
409
422
  (id, organization_id, name, active, created_by, messages, models,
410
423
  virtual_mcp_id)
411
- VALUES (${T}, ${K.organization_id}, ${lE(K)}, true,
412
- ${K.created_by}, ${JSON.stringify(eE(K.prompt))},
424
+ VALUES (${T}, ${K.organization_id}, ${sE(K)}, true,
425
+ ${K.created_by}, ${JSON.stringify(_0(K.prompt))},
413
426
  '{"tier":"smart"}', ${`decopilot_${K.organization_id}`})
414
427
  ON CONFLICT (id) DO NOTHING
415
428
  `.execute(_),await H`
@@ -418,11 +431,11 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
418
431
  VALUES (${`trg_${T}`}, ${T}, 'jira_transition', ${K.jira_status},
419
432
  ${K.from_kind}, ${K.from_statuses})
420
433
  ON CONFLICT (id) DO NOTHING
421
- `.execute(_)}}function lE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function eE(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
422
- `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function dE(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
434
+ `.execute(_)}}function sE(_){let x=_.from_kind==="earlier"?" (from an earlier column)":_.from_kind==="later"?" (from a later column)":_.from_kind==="statuses"?` (from ${_.from_statuses.join(", ")})`:"";return`Jira: ${_.jira_status}${x}`}function _0(_){if(!_?.trim())return[];return[{role:"user",parts:[{type:"text",text:_}],metadata:{tiptapDoc:{type:"doc",content:_.split(`
435
+ `).map((x)=>x?{type:"paragraph",content:[{type:"text",text:x}]}:{type:"paragraph"})}}}]}async function x0(_){await H`DELETE FROM automations WHERE id LIKE 'auto_jira_%'`.execute(_),await H`DELETE FROM automation_triggers WHERE type = 'jira_transition'`.execute(_),await H`
423
436
  ALTER TABLE automation_triggers
424
437
  DROP CONSTRAINT IF EXISTS chk_jira_transition_trigger
425
- `.execute(_)}var ox={};C(ox,{up:()=>sE,down:()=>bE});import{sql as E_}from"kysely";async function sE(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function bE(_){await E_`
438
+ `.execute(_)}var rx={};C(rx,{up:()=>u0,down:()=>C0});import{sql as E_}from"kysely";async function u0(_){await E_`DROP TABLE IF EXISTS task_board_column_automations`.execute(_),await E_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_)}async function C0(_){await E_`
426
439
  CREATE TABLE IF NOT EXISTS task_board_column_automations (
427
440
  id text PRIMARY KEY,
428
441
  organization_id text NOT NULL,
@@ -449,30 +462,30 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
449
462
  updated_at timestamptz NOT NULL DEFAULT now(),
450
463
  PRIMARY KEY (organization_id, jira_status, from_key)
451
464
  )
452
- `.execute(_)}var ax={};C(ax,{up:()=>_0,down:()=>x0});import{sql as f_}from"kysely";async function _0(_){await f_`
465
+ `.execute(_)}var lx={};C(lx,{up:()=>K0,down:()=>N0});import{sql as A_}from"kysely";async function K0(_){await A_`
453
466
  ALTER TABLE task_board_items
454
467
  ADD COLUMN IF NOT EXISTS virtual_mcp_id text NULL
455
468
  REFERENCES connections(id) ON DELETE SET NULL
456
- `.execute(_),await f_`
469
+ `.execute(_),await A_`
457
470
  CREATE INDEX IF NOT EXISTS idx_task_board_items_virtual_mcp_id
458
471
  ON task_board_items (virtual_mcp_id)
459
472
  WHERE virtual_mcp_id IS NOT NULL
460
- `.execute(_)}async function x0(_){await f_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await f_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var rx={};C(rx,{up:()=>u0,down:()=>C0});async function u0(_){await _.schema.createTable("github_copilot_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 C0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var lx={};C(lx,{up:()=>K0,down:()=>N0});async function K0(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function N0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var ex={};C(ex,{up:()=>m0,down:()=>T0});import{sql as r}from"kysely";var A_=["linked_chat_run"];async function KT(_){let{rows:x}=await r`
473
+ `.execute(_)}async function N0(_){await A_`DROP INDEX IF EXISTS idx_task_board_items_virtual_mcp_id`.execute(_),await A_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS virtual_mcp_id`.execute(_)}var ex={};C(ex,{up:()=>m0,down:()=>T0});async function m0(_){await _.schema.createTable("github_copilot_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 T0(_){await _.schema.dropTable("github_copilot_subscriptions").ifExists().execute()}var dx={};C(dx,{up:()=>z0,down:()=>E0});async function z0(_){await _.schema.createTable("org_shared_plans").addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("provider_id","text",(x)=>x.notNull()).addColumn("user_id","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("created_at","timestamptz",(x)=>x.notNull()).addPrimaryKeyConstraint("org_shared_plans_pkey",["organization_id","provider_id","user_id"]).execute()}async function E0(_){await _.schema.dropTable("org_shared_plans").ifExists().execute()}var bx={};C(bx,{up:()=>$0,down:()=>U0});import{sql as r}from"kysely";var I_=["linked_chat_run"];async function mT(_){let{rows:x}=await r`
461
474
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
462
475
  WHERE conname = 'chk_trigger_type'
463
476
  AND conrelid = 'automation_triggers'::regclass
464
- `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function NT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
477
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function TT(_,x){let u=r.join([...x].map((N)=>r.lit(N)));await r`
465
478
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
466
479
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
467
- `.execute(_)}async function m0(_){let x=await KT(_);if(A_.every((u)=>x.has(u)))return;for(let u of A_)x.add(u);await NT(_,x)}async function T0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(A_)})`.execute(_);let x=await KT(_);for(let u of A_)x.delete(u);await NT(_,x)}var dx={};C(dx,{up:()=>z0,down:()=>E0});import{sql as l}from"kysely";var I_=["board_pr_merged","chat_pr_opened"];async function mT(_){let{rows:x}=await l`
480
+ `.execute(_)}async function $0(_){let x=await mT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await TT(_,x)}async function U0(_){await r`DELETE FROM automation_triggers WHERE type IN (${r.join(I_)})`.execute(_);let x=await mT(_);for(let u of I_)x.delete(u);await TT(_,x)}var sx={};C(sx,{up:()=>P0,down:()=>J0});import{sql as l}from"kysely";var y_=["board_pr_merged","chat_pr_opened"];async function zT(_){let{rows:x}=await l`
468
481
  SELECT pg_get_constraintdef(oid) AS def FROM pg_constraint
469
482
  WHERE conname = 'chk_trigger_type'
470
483
  AND conrelid = 'automation_triggers'::regclass
471
- `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function TT(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
484
+ `.execute(_);return new Set([...(x[0]?.def??"").matchAll(/'([a-z_]+)'/g)].map((u)=>u[1]))}async function ET(_,x){let u=l.join([...x].map((N)=>l.lit(N)));await l`
472
485
  ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type,
473
486
  ADD CONSTRAINT chk_trigger_type CHECK (type IN (${u}))
474
- `.execute(_)}async function z0(_){let x=await mT(_);if(I_.every((u)=>x.has(u)))return;for(let u of I_)x.add(u);await TT(_,x)}async function E0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(I_)})`.execute(_);let x=await mT(_);for(let u of I_)x.delete(u);await TT(_,x)}var sx={};C(sx,{up:()=>U0,down:()=>P0});import{sql as $0}from"kysely";async function U0(_){await $0`ALTER TABLE organization_settings
475
- DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function P0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var bx={};C(bx,{up:()=>J0,down:()=>X0});import{sql as zT}from"kysely";async function J0(_){await zT`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function X0(_){await zT`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var _u={};C(_u,{up:()=>Q0,down:()=>Z0});import{sql as O}from"kysely";async function Q0(_){await O`
487
+ `.execute(_)}async function P0(_){let x=await zT(_);if(y_.every((u)=>x.has(u)))return;for(let u of y_)x.add(u);await ET(_,x)}async function J0(_){await l`DELETE FROM automation_triggers WHERE type IN (${l.join(y_)})`.execute(_);let x=await zT(_);for(let u of y_)x.delete(u);await ET(_,x)}var _u={};C(_u,{up:()=>Q0,down:()=>Z0});import{sql as X0}from"kysely";async function Q0(_){await X0`ALTER TABLE organization_settings
488
+ DROP COLUMN IF EXISTS main_agent_id`.execute(_)}async function Z0(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}var xu={};C(xu,{up:()=>W0,down:()=>j0});import{sql as $T}from"kysely";async function W0(_){await $T`CREATE INDEX idx_connections_sanitized_id ON connections (replace(id, '-', '_'))`.execute(_)}async function j0(_){await $T`DROP INDEX IF EXISTS idx_connections_sanitized_id`.execute(_)}var uu={};C(uu,{up:()=>L0,down:()=>F0});import{sql as O}from"kysely";async function L0(_){await O`
476
489
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
477
490
  RETURNS jsonb AS $fn$
478
491
  BEGIN
@@ -546,7 +559,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
546
559
  || '/' ||
547
560
  coalesce(cd_repo_try_jsonb(a.metadata) #>> '{githubRepo,name}', '')
548
561
  ) = lower(p.path)
549
- `.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function Z0(_){await O`
562
+ `.execute(_),await O`DROP VIEW IF EXISTS cd_repo_picks`.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}async function F0(_){await O`
550
563
  CREATE OR REPLACE FUNCTION cd_repo_try_jsonb(t text)
551
564
  RETURNS jsonb AS $fn$
552
565
  BEGIN
@@ -573,17 +586,17 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
573
586
  )::text
574
587
  WHERE a.id = 'commerce-discovery_' || a.organization_id
575
588
  AND cd_repo_try_jsonb(a.metadata) #> '{githubRepo,repositoryId}' IS NOT NULL
576
- `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var uu={};C(uu,{up:()=>W0,down:()=>L0});import{sql as xu}from"kysely";async function W0(_){await xu`ALTER TABLE git_provider_accounts
589
+ `.execute(_),await O`DROP FUNCTION IF EXISTS cd_repo_try_jsonb(text)`.execute(_)}var Ku={};C(Ku,{up:()=>Y0,down:()=>D0});import{sql as Cu}from"kysely";async function Y0(_){await Cu`ALTER TABLE git_provider_accounts
577
590
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
578
591
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
579
592
  CHECK (auth_kind IN ('github_app', 'oauth', 'token', 'github_cli')),
580
593
  ADD CONSTRAINT git_provider_accounts_cli_check
581
594
  CHECK (auth_kind <> 'github_cli' OR
582
- (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function L0(_){await xu`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await xu`ALTER TABLE git_provider_accounts
595
+ (type = 'github' AND host = 'github.com' AND installation_id IS NULL))`.execute(_)}async function D0(_){await Cu`DELETE FROM git_provider_accounts WHERE auth_kind = 'github_cli'`.execute(_),await Cu`ALTER TABLE git_provider_accounts
583
596
  DROP CONSTRAINT git_provider_accounts_cli_check,
584
597
  DROP CONSTRAINT git_provider_accounts_auth_kind_check,
585
598
  ADD CONSTRAINT git_provider_accounts_auth_kind_check
586
- CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Cu={};C(Cu,{up:()=>j0,down:()=>F0});import{sql as ET}from"kysely";async function j0(_){await ET`
599
+ CHECK (auth_kind IN ('github_app', 'oauth', 'token'))`.execute(_)}var Nu={};C(Nu,{up:()=>H0,down:()=>M0});import{sql as UT}from"kysely";async function H0(_){await UT`
587
600
  INSERT INTO "organization" (id, name, slug, "createdAt")
588
601
  SELECT
589
602
  'org_user_fs',
@@ -597,9 +610,9 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
597
610
  END,
598
611
  now()
599
612
  ON CONFLICT (id) DO NOTHING
600
- `.execute(_)}async function F0(_){await ET`
613
+ `.execute(_)}async function M0(_){await UT`
601
614
  DELETE FROM "organization" WHERE id = 'org_user_fs'
602
- `.execute(_)}var Ku={};C(Ku,{up:()=>Y0,down:()=>D0});async function Y0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function D0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Nu={};C(Nu,{up:()=>H0,down:()=>M0});async function H0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function M0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var mu={};C(mu,{up:()=>B0,down:()=>G0});import{sql as $_}from"kysely";var R0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function $T(_,x){for(let{table:u,column:N}of R0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await $_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await $_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function B0(_){await $T(_,["github","gitlab","bitbucket"])}async function G0(_){await $_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await $T(_,["github","gitlab"])}var Tu={};C(Tu,{up:()=>O0,down:()=>S0});import{sql as y_}from"kysely";async function O0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(y_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(y_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function S0(_){await _.schema.dropTable("experiments").execute()}var zu={};C(zu,{up:()=>A0,down:()=>I0});import{sql as f0}from"kysely";async function A0(_){await f0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function I0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var $u={};C($u,{up:()=>V0,down:()=>w0,ACTIONS:()=>Eu});import{sql as U_}from"kysely";var Eu=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],y0=Eu.filter((_)=>_!=="duplicate_reported");async function V0(_){await UT(_,Eu)}async function w0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await UT(_,y0)}async function UT(_,x){await U_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await U_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${U_.join(x.map((u)=>U_.lit(u)))}))`.execute(_)}var Uu={};C(Uu,{up:()=>k0,down:()=>n0});async function k0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function n0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0});async function v0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function p0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Ju={};C(Ju,{up:()=>q0,down:()=>i0});import{sql as g0}from"kysely";async function q0(_){await g0`
615
+ `.execute(_)}var mu={};C(mu,{up:()=>R0,down:()=>B0});async function R0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_repository_ids","jsonb").execute()}async function B0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_repository_ids").execute()}var Tu={};C(Tu,{up:()=>G0,down:()=>O0});async function G0(_){await _.schema.alterTable("organization_settings").addColumn("coding_agent_mcp_excluded","text").execute()}async function O0(_){await _.schema.alterTable("organization_settings").dropColumn("coding_agent_mcp_excluded").execute()}var zu={};C(zu,{up:()=>f0,down:()=>A0});import{sql as $_}from"kysely";var S0=[{table:"git_provider_accounts",column:"type"},{table:"git_provider_oauth_states",column:"provider"},{table:"repositories",column:"provider"}];async function PT(_,x){for(let{table:u,column:N}of S0){let K=`${u}_${N}_check`,m=x.map((T)=>`'${T}'`).join(", ");await $_.raw(`ALTER TABLE ${u} DROP CONSTRAINT IF EXISTS ${K}`).execute(_),await $_.raw(`ALTER TABLE ${u} ADD CONSTRAINT ${K} CHECK (${N} IN (${m}))`).execute(_)}}async function f0(_){await PT(_,["github","gitlab","bitbucket"])}async function A0(_){await $_`DELETE FROM repositories WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_oauth_states WHERE provider = 'bitbucket'`.execute(_),await $_`DELETE FROM git_provider_accounts WHERE type = 'bitbucket'`.execute(_),await PT(_,["github","gitlab"])}var Eu={};C(Eu,{up:()=>I0,down:()=>y0});import{sql as V_}from"kysely";async function I0(_){await _.schema.createTable("experiments").addColumn("id","text",(x)=>x.primaryKey().notNull()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("site","text",(x)=>x.notNull()).addColumn("key","text",(x)=>x.notNull()).addColumn("name","text",(x)=>x.notNull()).addColumn("status","text",(x)=>x.notNull().defaultTo("draft")).addColumn("goals","jsonb",(x)=>x.notNull().defaultTo(V_`'[]'::jsonb`)).addColumn("variants","jsonb",(x)=>x.notNull().defaultTo(V_`'[]'::jsonb`)).addColumn("started_at","timestamptz").addColumn("ended_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(V_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(V_`now()`)).addUniqueConstraint("experiments_org_site_key_unique",["organization_id","site","key"]).execute(),await _.schema.createIndex("idx_experiments_org_site").on("experiments").columns(["organization_id","site"]).execute()}async function y0(_){await _.schema.dropTable("experiments").execute()}var $u={};C($u,{up:()=>w0,down:()=>k0});import{sql as V0}from"kysely";async function w0(_){await V0`CREATE INDEX idx_tmp_error_persisted_at ON thread_message_parts (persisted_at DESC) WHERE kind = 'error'`.execute(_)}async function k0(_){await _.schema.dropIndex("idx_tmp_error_persisted_at").execute()}var Pu={};C(Pu,{up:()=>v0,down:()=>p0,ACTIONS:()=>Uu});import{sql as U_}from"kysely";var Uu=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","duplicate_reported"],n0=Uu.filter((_)=>_!=="duplicate_reported");async function v0(_){await JT(_,Uu)}async function p0(_){await U_`DELETE FROM task_board_activity WHERE action = 'duplicate_reported'`.execute(_),await JT(_,n0)}async function JT(_,x){await U_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await U_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${U_.join(x.map((u)=>U_.lit(u)))}))`.execute(_)}var Ju={};C(Ju,{up:()=>g0,down:()=>q0});async function g0(_){await _.schema.alterTable("org_jira_column_automations").addColumn("continue_pr","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function q0(_){await _.schema.alterTable("org_jira_column_automations").dropColumn("continue_pr").execute()}var Xu={};C(Xu,{up:()=>i0,down:()=>c0});async function i0(_){await _.schema.alterTable("git_provider_accounts").addColumn("installation_authorized_by","text").execute()}async function c0(_){await _.schema.alterTable("git_provider_accounts").dropColumn("installation_authorized_by").execute()}var Qu={};C(Qu,{up:()=>t0,down:()=>o0});import{sql as h0}from"kysely";async function t0(_){await h0`
603
616
  CREATE TABLE github_connect_flows (
604
617
  id text PRIMARY KEY,
605
618
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -609,7 +622,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
609
622
  );
610
623
  CREATE UNIQUE INDEX github_connect_flows_owner ON github_connect_flows(organization_id, user_id);
611
624
  CREATE INDEX github_connect_flows_expiry ON github_connect_flows(expires_at);
612
- `.execute(_)}async function i0(_){await _.schema.dropTable("github_connect_flows").execute()}var Xu={};C(Xu,{up:()=>c0,down:()=>h0});async function c0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function h0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Qu={};C(Qu,{up:()=>t0,down:()=>o0});import{sql as V_}from"kysely";async function t0(_){await V_`
625
+ `.execute(_)}async function o0(_){await _.schema.dropTable("github_connect_flows").execute()}var Zu={};C(Zu,{up:()=>a0,down:()=>r0});async function a0(_){await _.schema.createIndex("task_board_item_prs_repo_idx").on("task_board_item_prs").columns(["repo_owner","repo_name","pr_number"]).execute()}async function r0(_){await _.schema.dropIndex("task_board_item_prs_repo_idx").execute()}var Wu={};C(Wu,{up:()=>l0,down:()=>e0});import{sql as w_}from"kysely";async function l0(_){await w_`
613
626
  CREATE FUNCTION adopt_legacy_repository() RETURNS trigger AS $$
614
627
  DECLARE
615
628
  metadata_json jsonb;
@@ -660,24 +673,24 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
660
673
  AFTER INSERT OR UPDATE OF metadata ON connections
661
674
  FOR EACH ROW EXECUTE FUNCTION adopt_legacy_repository();
662
675
  UPDATE connections SET metadata = metadata WHERE slug = 'mcp-github';
663
- `.execute(_),await V_`
676
+ `.execute(_),await w_`
664
677
  UPDATE org_repo_sync s SET repository_id = r.id
665
678
  FROM repositories r WHERE s.repository_id IS NULL
666
679
  AND r.organization_id = s.organization_id AND r.host = 'github.com'
667
680
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name);
668
- `.execute(_)}async function o0(_){await V_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await V_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var Zu={};C(Zu,{up:()=>a0,down:()=>r0});import{sql as V}from"kysely";async function a0(_){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(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`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(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`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(V`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(V`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(V`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(V`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(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`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 r0(_){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 Wu={};C(Wu,{up:()=>l0,down:()=>e0});import{sql as PT}from"kysely";async function l0(_){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(PT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(PT`CURRENT_TIMESTAMP`)).execute()}async function e0(_){await _.schema.dropTable("organization_settings").execute()}var Lu={};C(Lu,{up:()=>d0,down:()=>s0});async function d0(_){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 s0(_){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 ju={};C(ju,{up:()=>b0,down:()=>_$});async function b0(_){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 _$(_){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 Fu={};C(Fu,{up:()=>x$,down:()=>u$});async function x$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function u$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Yu={};C(Yu,{up:()=>K$,down:()=>N$});import{sql as C$}from"kysely";async function K$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",C$`text`).execute()}async function N$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Du={};C(Du,{up:()=>m$,down:()=>T$});async function m$(_){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 T$(_){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 Hu={};C(Hu,{up:()=>z$,down:()=>E$});import{sql as P_}from"kysely";async function z$(_){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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`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 E$(_){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 Mu={};C(Mu,{up:()=>U$,down:()=>P$});import{sql as $$}from"kysely";async function U$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function P$(_){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($$`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 Ru={};C(Ru,{up:()=>J$,down:()=>X$});import{sql as w_}from"kysely";async function J$(_){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(w_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(w_`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(w_`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 w_`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 X$(_){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 Bu={};C(Bu,{up:()=>Q$,down:()=>Z$});async function Q$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function Z$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Gu={};C(Gu,{up:()=>W$,down:()=>L$});import{sql as k_}from"kysely";async function W$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await k_`
681
+ `.execute(_)}async function e0(_){await w_`DROP TRIGGER IF EXISTS connection_repository_compat ON connections`.execute(_),await w_`DROP FUNCTION IF EXISTS adopt_legacy_repository()`.execute(_)}var ju={};C(ju,{up:()=>d0,down:()=>b0});import{sql as V}from"kysely";async function d0(_){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(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`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(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`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(V`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(V`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(V`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(V`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(V`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(V`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 b0(_){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 Lu={};C(Lu,{up:()=>s0,down:()=>_$});import{sql as XT}from"kysely";async function s0(_){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(XT`CURRENT_TIMESTAMP`)).addColumn("updatedAt","text",(x)=>x.notNull().defaultTo(XT`CURRENT_TIMESTAMP`)).execute()}async function _$(_){await _.schema.dropTable("organization_settings").execute()}var Fu={};C(Fu,{up:()=>x$,down:()=>u$});async function x$(_){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 u$(_){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 Yu={};C(Yu,{up:()=>C$,down:()=>K$});async function C$(_){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 K$(_){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 Du={};C(Du,{up:()=>N$,down:()=>m$});async function N$(_){await _.schema.alterTable("connections").addColumn("configuration_state","text").execute(),await _.schema.alterTable("connections").addColumn("configuration_scopes","text").execute()}async function m$(_){await _.schema.alterTable("connections").dropColumn("configuration_state").execute(),await _.schema.alterTable("connections").dropColumn("configuration_scopes").execute()}var Hu={};C(Hu,{up:()=>z$,down:()=>E$});import{sql as T$}from"kysely";async function z$(_){await _.schema.alterTable("organization_settings").addColumn("sidebar_items",T$`text`).execute()}async function E$(_){await _.schema.alterTable("organization_settings").dropColumn("sidebar_items").execute()}var Mu={};C(Mu,{up:()=>$$,down:()=>U$});async function $$(_){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 U$(_){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 Ru={};C(Ru,{up:()=>P$,down:()=>J$});import{sql as P_}from"kysely";async function P$(_){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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(P_`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(P_`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 J$(_){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 Bu={};C(Bu,{up:()=>Q$,down:()=>Z$});import{sql as X$}from"kysely";async function Q$(_){await _.schema.dropTable("audit_logs").ifExists().execute()}async function Z$(_){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(X$`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 Gu={};C(Gu,{up:()=>W$,down:()=>j$});import{sql as k_}from"kysely";async function W$(_){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(k_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(k_`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(k_`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 k_`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 j$(_){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 Ou={};C(Ou,{up:()=>L$,down:()=>F$});async function L$(_){await _.schema.alterTable("gateways").addColumn("icon","text").execute()}async function F$(_){await _.schema.alterTable("gateways").dropColumn("icon").execute()}var Su={};C(Su,{up:()=>Y$,down:()=>D$});import{sql as n_}from"kysely";async function Y$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_mode","text",(x)=>x.notNull().defaultTo("inclusion")).execute(),await n_`
669
682
  UPDATE gateways
670
683
  SET tool_selection_mode = CASE
671
684
  WHEN tool_selection_strategy = 'exclusion' THEN 'exclusion'
672
685
  ELSE 'inclusion'
673
686
  END
674
- `.execute(_),await k_`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 L$(_){await k_`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 k_`
687
+ `.execute(_),await n_`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 D$(_){await n_`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 n_`
675
688
  UPDATE gateways
676
689
  SET tool_selection_strategy = CASE
677
690
  WHEN tool_selection_mode = 'exclusion' THEN 'exclusion'
678
691
  ELSE NULL
679
692
  END
680
- `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var Ou={};C(Ou,{up:()=>j$,down:()=>F$});async function j$(_){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 F$(_){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 Su={};C(Su,{up:()=>Y$,down:()=>D$});async function Y$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function D$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var fu={};C(fu,{up:()=>H$,down:()=>M$});async function H$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function M$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var Au={};C(Au,{up:()=>R$,down:()=>B$});async function R$(_){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 B$(_){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 Iu={};C(Iu,{up:()=>O$,down:()=>S$});import{sql as G$}from"kysely";async function O$(_){await G$`
693
+ `.execute(_),await _.schema.alterTable("gateways").dropColumn("_new_tool_selection_strategy").execute(),await _.schema.alterTable("gateways").dropColumn("tool_selection_mode").execute()}var fu={};C(fu,{up:()=>H$,down:()=>M$});async function H$(_){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 M$(_){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 Au={};C(Au,{up:()=>R$,down:()=>B$});async function R$(_){await _.schema.alterTable("gateway_connections").addColumn("selected_resources","text").execute(),await _.schema.alterTable("gateway_connections").addColumn("selected_prompts","text").execute()}async function B$(_){await _.schema.alterTable("gateway_connections").dropColumn("selected_resources").execute(),await _.schema.alterTable("gateway_connections").dropColumn("selected_prompts").execute()}var Iu={};C(Iu,{up:()=>G$,down:()=>O$});async function G$(_){await _.schema.alterTable("monitoring_logs").addColumn("properties","text").execute()}async function O$(_){await _.schema.alterTable("monitoring_logs").dropColumn("properties").execute()}var yu={};C(yu,{up:()=>S$,down:()=>f$});async function S$(_){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 f$(_){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 Vu={};C(Vu,{up:()=>I$,down:()=>y$});import{sql as A$}from"kysely";async function I$(_){await A$`
681
694
  DELETE FROM downstream_tokens
682
695
  WHERE id NOT IN (
683
696
  SELECT id FROM (
@@ -687,7 +700,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
687
700
  ) ranked
688
701
  WHERE rn = 1
689
702
  )
690
- `.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 S$(_){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 yu={};C(yu,{up:()=>f$,down:()=>A$});async function f$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function A$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var Vu={};C(Vu,{up:()=>I$,down:()=>y$});import{sql as JT}from"kysely";async function I$(_){await JT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function y$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await JT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var wu={};C(wu,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function w$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var ku={};C(ku,{up:()=>k$,down:()=>n$});import{sql as n_}from"kysely";async function k$(_){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(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("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(n_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(n_`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 n$(_){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 nu={};C(nu,{up:()=>v$,down:()=>p$});async function v$(_){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 p$(_){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 vu={};C(vu,{up:()=>g$,down:()=>q$});async function g$(_){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 q$(_){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 pu={};C(pu,{up:()=>i$,down:()=>c$});import{sql as M}from"kysely";async function i$(_){await M`
703
+ `.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 y$(_){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 wu={};C(wu,{up:()=>V$,down:()=>w$});async function V$(_){await _.schema.alterTable("gateways").dropColumn("tool_selection_strategy").execute()}async function w$(_){await _.schema.alterTable("gateways").addColumn("tool_selection_strategy","text",(x)=>x.notNull().defaultTo("passthrough")).execute()}var ku={};C(ku,{up:()=>k$,down:()=>n$});import{sql as QT}from"kysely";async function k$(_){await QT`DROP INDEX IF EXISTS idx_gateways_default_per_org`.execute(_),await _.schema.alterTable("gateways").dropColumn("is_default").execute()}async function n$(_){await _.schema.alterTable("gateways").addColumn("is_default","integer",(x)=>x.notNull().defaultTo(0)).execute(),await QT`CREATE UNIQUE INDEX idx_gateways_default_per_org ON gateways (organization_id) WHERE is_default = 1`.execute(_)}var nu={};C(nu,{up:()=>v$,down:()=>p$});async function v$(_){await _.schema.alterTable("organization_settings").addColumn("enabled_plugins","text").execute()}async function p$(_){await _.schema.alterTable("organization_settings").dropColumn("enabled_plugins").execute()}var vu={};C(vu,{up:()=>g$,down:()=>q$});import{sql as v_}from"kysely";async function g$(_){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(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`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(v_`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(v_`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 q$(_){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 pu={};C(pu,{up:()=>i$,down:()=>c$});async function i$(_){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 c$(_){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 gu={};C(gu,{up:()=>h$,down:()=>t$});async function h$(_){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 t$(_){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 qu={};C(qu,{up:()=>o$,down:()=>a$});import{sql as M}from"kysely";async function o$(_){await M`
691
704
  INSERT INTO connections (
692
705
  id,
693
706
  organization_id,
@@ -734,7 +747,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
734
747
  created_at,
735
748
  updated_at
736
749
  FROM virtual_mcps
737
- `.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 M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`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 M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`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 c$(_){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(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
750
+ `.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 M`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1);if(x)await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_gateway_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS gateway_connections_connection_id_fkey`.execute(_),await M`ALTER TABLE virtual_mcp_connections DROP CONSTRAINT IF EXISTS virtual_mcp_connections_virtual_mcp_id_fkey`.execute(_),await M`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 M`ALTER TABLE connection_aggregations ADD CONSTRAINT conn_agg_parent_fk FOREIGN KEY (parent_connection_id) REFERENCES connections(id) ON DELETE CASCADE`.execute(_),await M`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 a$(_){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(M`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(M`CURRENT_TIMESTAMP`)).addColumn("created_by","text",(x)=>x.notNull().references("user.id").onDelete("cascade")).addColumn("updated_by","text").execute(),await M`
738
751
  INSERT INTO virtual_mcps (
739
752
  id, organization_id, title, description, icon, status,
740
753
  created_at, updated_at, created_by, updated_by, tool_selection_mode
@@ -744,7 +757,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
744
757
  created_at, updated_at, created_by, NULL, 'inclusion'
745
758
  FROM connections
746
759
  WHERE connection_type = 'VIRTUAL'
747
- `.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 M`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 gu={};C(gu,{up:()=>h$,down:()=>t$});async function h$(_){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 t$(_){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 qu={};C(qu,{up:()=>o$,down:()=>a$});import{sql as w}from"kysely";async function o$(_){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(w`CURRENT_TIMESTAMP`)).execute(),await w`
760
+ `.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 M`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 iu={};C(iu,{up:()=>r$,down:()=>l$});async function r$(_){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 l$(_){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 cu={};C(cu,{up:()=>e$,down:()=>d$});import{sql as w}from"kysely";async function e$(_){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(w`CURRENT_TIMESTAMP`)).execute(),await w`
748
761
  INSERT INTO connection_aggregations_new (
749
762
  id, parent_connection_id, child_connection_id,
750
763
  selected_tools, selected_resources, selected_prompts, created_at
@@ -753,7 +766,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
753
766
  id, parent_connection_id, child_connection_id,
754
767
  selected_tools, selected_resources, selected_prompts, created_at
755
768
  FROM connection_aggregations
756
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`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 a$(_){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(w`CURRENT_TIMESTAMP`)).execute(),await w`
769
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`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 d$(_){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(w`CURRENT_TIMESTAMP`)).execute(),await w`
757
770
  INSERT INTO connection_aggregations_new (
758
771
  id, parent_connection_id, child_connection_id,
759
772
  selected_tools, selected_resources, selected_prompts, created_at
@@ -762,7 +775,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
762
775
  id, parent_connection_id, child_connection_id,
763
776
  selected_tools, selected_resources, selected_prompts, created_at
764
777
  FROM connection_aggregations
765
- `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`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 cu={};C(cu,{up:()=>r$,down:()=>l$});import{sql as iu}from"kysely";async function r$(_){await iu`
778
+ `.execute(_),await _.schema.dropTable("connection_aggregations").execute(),await _.schema.alterTable("connection_aggregations_new").renameTo("connection_aggregations").execute(),await w`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await w`ALTER TABLE connection_aggregations RENAME CONSTRAINT connection_aggregations_new_parent_connection_id_fkey TO conn_agg_parent_fk`.execute(_),await w`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 tu={};C(tu,{up:()=>b$,down:()=>s$});import{sql as hu}from"kysely";async function b$(_){await hu`
766
779
  UPDATE connections
767
780
  SET connection_url = connection_url || '/management',
768
781
  tools = NULL,
@@ -770,42 +783,42 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
770
783
  WHERE connection_url LIKE '%/mcp'
771
784
  AND connection_url NOT LIKE '%/mcp/management'
772
785
  AND app_name = '@deco/management-mcp'
773
- `.execute(_),await iu`
786
+ `.execute(_),await hu`
774
787
  UPDATE connections
775
788
  SET tools = NULL,
776
789
  updated_at = CURRENT_TIMESTAMP
777
790
  WHERE app_name = '@deco/management-mcp'
778
791
  AND tools IS NOT NULL
779
- `.execute(_)}async function l$(_){await iu`
792
+ `.execute(_)}async function s$(_){await hu`
780
793
  UPDATE connections
781
794
  SET connection_url = SUBSTR(connection_url, 1, LENGTH(connection_url) - LENGTH('/management')),
782
795
  updated_at = CURRENT_TIMESTAMP
783
796
  WHERE connection_url LIKE '%/mcp/management'
784
797
  AND app_name = '@deco/management-mcp'
785
- `.execute(_)}var tu={};C(tu,{up:()=>e$,down:()=>d$});import{sql as hu}from"kysely";async function e$(_){await hu`
798
+ `.execute(_)}var au={};C(au,{up:()=>_U,down:()=>xU});import{sql as ou}from"kysely";async function _U(_){await ou`
786
799
  UPDATE connections
787
800
  SET connection_url = REPLACE(connection_url, '/mcp/management', '/mcp/self'),
788
801
  tools = NULL,
789
802
  updated_at = CURRENT_TIMESTAMP
790
803
  WHERE connection_url LIKE '%/mcp/management'
791
804
  AND app_name = '@deco/management-mcp'
792
- `.execute(_),await hu`
805
+ `.execute(_),await ou`
793
806
  UPDATE connections
794
807
  SET tools = NULL,
795
808
  updated_at = CURRENT_TIMESTAMP
796
809
  WHERE connection_url LIKE '%/mcp/self'
797
810
  AND app_name = '@deco/management-mcp'
798
811
  AND tools IS NOT NULL
799
- `.execute(_)}async function d$(_){await hu`
812
+ `.execute(_)}async function xU(_){await ou`
800
813
  UPDATE connections
801
814
  SET connection_url = REPLACE(connection_url, '/mcp/self', '/mcp/management'),
802
815
  updated_at = CURRENT_TIMESTAMP
803
816
  WHERE connection_url LIKE '%/mcp/self'
804
817
  AND app_name = '@deco/management-mcp'
805
- `.execute(_)}var ou={};C(ou,{up:()=>s$,down:()=>b$});async function s$(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function b$(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var au={};C(au,{up:()=>_U,down:()=>xU});import{sql as XT}from"kysely";async function _U(_){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(XT`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(XT`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 xU(_){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 ru={};C(ru,{up:()=>uU,down:()=>CU});import{sql as J_}from"kysely";async function uU(_){await J_`
818
+ `.execute(_)}var ru={};C(ru,{up:()=>uU,down:()=>CU});async function uU(_){await _.schema.alterTable("connections").addColumn("updated_by","text").execute()}async function CU(_){await _.schema.alterTable("connections").dropColumn("updated_by").execute()}var lu={};C(lu,{up:()=>KU,down:()=>NU});import{sql as ZT}from"kysely";async function KU(_){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(ZT`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(ZT`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 NU(_){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 eu={};C(eu,{up:()=>mU,down:()=>TU});import{sql as J_}from"kysely";async function mU(_){await J_`
806
819
  ALTER TABLE connection_aggregations
807
820
  ADD COLUMN dependency_mode TEXT NOT NULL DEFAULT 'direct'
808
- `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function CU(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`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(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
821
+ `.execute(_),await _.schema.createIndex("idx_conn_agg_dependency_mode").on("connection_aggregations").columns(["parent_connection_id","dependency_mode"]).execute()}async function TU(_){if(await _.schema.dropIndex("idx_conn_agg_dependency_mode").execute(),await J_`SELECT current_database()`.execute(_).then(()=>!0).catch(()=>!1))await J_`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(J_`CURRENT_TIMESTAMP`)).execute(),await J_`
809
822
  INSERT INTO connection_aggregations_new (
810
823
  id, parent_connection_id, child_connection_id,
811
824
  selected_tools, selected_resources, selected_prompts, created_at
@@ -814,42 +827,42 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
814
827
  id, parent_connection_id, child_connection_id,
815
828
  selected_tools, selected_resources, selected_prompts, created_at
816
829
  FROM connection_aggregations
817
- `.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 lu={};C(lu,{up:()=>zU,down:()=>EU});import{webcrypto as ZT}from"crypto";var QT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var KU=128,h,e;function NU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*KU),ZT.getRandomValues(h),e=0;else if(e+_>h.length)ZT.getRandomValues(h),e=0;e+=_}function d(_=21){NU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=QT[h[u]&63];return x}var mU="org-admin",TU="Organization Admin";async function zU(_){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 N=new Date().toISOString(),K=`proj_${d()}`,m=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:mU,name:TU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function EU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var eu={};C(eu,{up:()=>$U,down:()=>UU});async function $U(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function UU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var du={};C(du,{up:()=>PU,down:()=>JU});async function PU(_){}async function JU(_){}var su={};C(su,{up:()=>XU,down:()=>QU});async function XU(_){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 QU(_){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 bu={};C(bu,{up:()=>ZU,down:()=>WU});import{sql as WT}from"kysely";async function ZU(_){await WT`
830
+ `.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 du={};C(du,{up:()=>PU,down:()=>JU});import{webcrypto as jT}from"crypto";var WT="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var zU=128,h,e;function EU(_){if(!h||h.length<_)h=Buffer.allocUnsafe(_*zU),jT.getRandomValues(h),e=0;else if(e+_>h.length)jT.getRandomValues(h),e=0;e+=_}function d(_=21){EU(_|=0);let x="";for(let u=e-_;u<e;u++)x+=WT[h[u]&63];return x}var $U="org-admin",UU="Organization Admin";async function PU(_){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 N=new Date().toISOString(),K=`proj_${d()}`,m=await _.selectFrom("organization_settings").select(["enabled_plugins"]).where("organizationId","=",u.id).executeTakeFirst();await _.insertInto("projects").values({id:K,organization_id:u.id,slug:$U,name:UU,description:null,enabled_plugins:m?.enabled_plugins??null,ui:null,created_at:N,updated_at:N}).execute()}}async function JU(_){await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("projects").execute()}var bu={};C(bu,{up:()=>XU,down:()=>QU});async function XU(_){await _.schema.alterTable("threads").addColumn("status","text",(x)=>x.notNull().defaultTo("completed")).execute()}async function QU(_){await _.schema.alterTable("threads").dropColumn("status").execute()}var su={};C(su,{up:()=>ZU,down:()=>WU});async function ZU(_){}async function WU(_){}var _C={};C(_C,{up:()=>jU,down:()=>LU});async function jU(_){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 LU(_){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 xC={};C(xC,{up:()=>FU,down:()=>YU});import{sql as LT}from"kysely";async function FU(_){await LT`
818
831
  UPDATE connections
819
832
  SET connection_url = 'https://studio.decocms.com/org/deco/registry/mcp',
820
833
  tools = NULL,
821
834
  updated_at = CURRENT_TIMESTAMP
822
835
  WHERE connection_url = 'https://api.decocms.com/mcp/registry'
823
836
  AND app_name = 'deco-registry'
824
- `.execute(_)}async function WU(_){await WT`
837
+ `.execute(_)}async function YU(_){await LT`
825
838
  UPDATE connections
826
839
  SET connection_url = 'https://api.decocms.com/mcp/registry',
827
840
  updated_at = CURRENT_TIMESTAMP
828
841
  WHERE connection_url = 'https://studio.decocms.com/org/deco/registry/mcp'
829
842
  AND app_name = 'deco-registry'
830
- `.execute(_)}var _C={};C(_C,{up:()=>jU,down:()=>FU});import{sql as LU}from"kysely";async function jU(_){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(LU`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 FU(_){await _.schema.dropTable("ai_provider_keys").execute()}var xC={};C(xC,{up:()=>DU,down:()=>HU});import{sql as YU}from"kysely";async function DU(_){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(YU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function HU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var uC={};C(uC,{up:()=>MU,down:()=>RU});import{sql as p}from"kysely";async function MU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`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(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`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(p`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(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`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 RU(_){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 CC={};C(CC,{up:()=>BU,down:()=>GU});async function BU(_){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 GU(_){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 KC={};C(KC,{up:()=>OU,down:()=>SU});async function OU(_){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 SU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var NC={};C(NC,{up:()=>fU,down:()=>AU});import{sql as LT}from"kysely";async function fU(_){await LT`
843
+ `.execute(_)}var uC={};C(uC,{up:()=>HU,down:()=>MU});import{sql as DU}from"kysely";async function HU(_){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(DU`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 MU(_){await _.schema.dropTable("ai_provider_keys").execute()}var CC={};C(CC,{up:()=>BU,down:()=>GU});import{sql as RU}from"kysely";async function BU(_){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(RU`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_oauth_pkce_states_expires_at").on("oauth_pkce_states").column("expires_at").execute()}async function GU(_){await _.schema.dropTable("oauth_pkce_states").execute()}var KC={};C(KC,{up:()=>OU,down:()=>SU});import{sql as p}from"kysely";async function OU(_){await _.schema.createTable("automations").addColumn("id","text",(x)=>x.primaryKey().defaultTo(p`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(p`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(p`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(p`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(p`CURRENT_TIMESTAMP`)).execute(),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_),await p`ALTER TABLE automation_triggers ADD CONSTRAINT chk_cron_trigger CHECK (type != 'cron' OR cron_expression IS NOT NULL)`.execute(_),await p`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 SU(_){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 NC={};C(NC,{up:()=>fU,down:()=>AU});async function fU(_){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 AU(_){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 mC={};C(mC,{up:()=>IU,down:()=>yU});async function IU(_){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 yU(_){await _.schema.dropIndex("idx_ai_provider_keys_unique_hash").execute(),await _.schema.alterTable("ai_provider_keys").dropColumn("key_hash").execute()}var TC={};C(TC,{up:()=>VU,down:()=>wU});import{sql as FT}from"kysely";async function VU(_){await FT`
831
844
  UPDATE connections
832
845
  SET title = 'CMS MCP',
833
846
  tools = NULL,
834
847
  updated_at = CURRENT_TIMESTAMP
835
848
  WHERE app_name = '@deco/management-mcp'
836
- `.execute(_)}async function AU(_){await LT`
849
+ `.execute(_)}async function wU(_){await FT`
837
850
  UPDATE connections
838
851
  SET title = 'Mesh MCP',
839
852
  updated_at = CURRENT_TIMESTAMP
840
853
  WHERE app_name = '@deco/management-mcp'
841
- `.execute(_)}var mC={};C(mC,{up:()=>IU,down:()=>yU});import{sql as jT}from"kysely";async function IU(_){await jT`
854
+ `.execute(_)}var zC={};C(zC,{up:()=>kU,down:()=>nU});import{sql as YT}from"kysely";async function kU(_){await YT`
842
855
  UPDATE connections
843
856
  SET title = 'Deco CMS',
844
857
  tools = NULL,
845
858
  updated_at = CURRENT_TIMESTAMP
846
859
  WHERE app_name = '@deco/management-mcp'
847
- `.execute(_)}async function yU(_){await jT`
860
+ `.execute(_)}async function nU(_){await YT`
848
861
  UPDATE connections
849
862
  SET title = 'CMS MCP',
850
863
  updated_at = CURRENT_TIMESTAMP
851
864
  WHERE app_name = '@deco/management-mcp'
852
- `.execute(_)}var TC={};C(TC,{up:()=>VU,down:()=>wU});async function VU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function wU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var zC={};C(zC,{up:()=>kU,down:()=>nU});async function kU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function nU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var $C={};C($C,{up:()=>vU,down:()=>pU});import{sql as EC}from"kysely";async function vU(_){await EC`
865
+ `.execute(_)}var EC={};C(EC,{up:()=>vU,down:()=>pU});async function vU(_){await _.schema.alterTable("connections").dropColumn("tools").execute()}async function pU(_){await _.schema.alterTable("connections").addColumn("tools","text").execute()}var $C={};C($C,{up:()=>gU,down:()=>qU});async function gU(_){await _.schema.alterTable("threads").addColumn("context_start_message_id","text").execute()}async function qU(_){await _.schema.alterTable("threads").dropColumn("context_start_message_id").execute()}var PC={};C(PC,{up:()=>iU,down:()=>cU});import{sql as UC}from"kysely";async function iU(_){await UC`
853
866
  UPDATE organization_settings
854
867
  SET enabled_plugins = (
855
868
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -858,7 +871,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
858
871
  )
859
872
  WHERE enabled_plugins IS NOT NULL
860
873
  AND enabled_plugins LIKE '%object-storage%'
861
- `.execute(_),await EC`
874
+ `.execute(_),await UC`
862
875
  UPDATE projects
863
876
  SET enabled_plugins = (
864
877
  SELECT COALESCE(json_agg(elem), '[]'::json)::text
@@ -867,65 +880,65 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
867
880
  )
868
881
  WHERE enabled_plugins IS NOT NULL
869
882
  AND enabled_plugins LIKE '%object-storage%'
870
- `.execute(_),await EC`
883
+ `.execute(_),await UC`
871
884
  DELETE FROM project_plugin_configs
872
885
  WHERE plugin_id = 'object-storage'
873
- `.execute(_)}async function pU(_){}var UC={};C(UC,{up:()=>gU,down:()=>qU});import{sql as FT}from"kysely";async function gU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await FT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function qU(_){await FT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var JC={};C(JC,{up:()=>iU,down:()=>cU});import{sql as PC}from"kysely";async function iU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await PC`
886
+ `.execute(_)}async function cU(_){}var JC={};C(JC,{up:()=>hU,down:()=>tU});import{sql as DT}from"kysely";async function hU(_){await _.schema.alterTable("automation_triggers").addColumn("next_run_at","text").execute(),await DT`CREATE INDEX idx_automation_triggers_next_run ON automation_triggers (next_run_at) WHERE type = 'cron'`.execute(_)}async function tU(_){await DT`DROP INDEX IF EXISTS idx_automation_triggers_next_run`.execute(_),await _.schema.alterTable("automation_triggers").dropColumn("next_run_at").execute()}var QC={};C(QC,{up:()=>oU,down:()=>aU});import{sql as XC}from"kysely";async function oU(_){await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await XC`
874
887
  ALTER TABLE connections
875
888
  ADD CONSTRAINT chk_connections_subtype
876
889
  CHECK (subtype IN ('agent', 'project') OR subtype IS NULL)
877
- `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await PC`
890
+ `.execute(_),await _.schema.createIndex("idx_connections_org_type_subtype").on("connections").columns(["organization_id","connection_type","subtype"]).execute(),await XC`
878
891
  UPDATE connections
879
892
  SET subtype = 'agent'
880
893
  WHERE connection_type = 'VIRTUAL'
881
- `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.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(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,P=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),L=N.get(z.organization_id);if(!L)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:L,updated_by:null,title:z.name,description:z.description,icon:$?.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:P,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let m=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let T=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function cU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await PC`
894
+ `.execute(_),await _.schema.createTable("virtual_mcp_plugin_configs").addColumn("id","text",(z)=>z.primaryKey()).addColumn("virtual_mcp_id","text",(z)=>z.notNull().references("connections.id").onDelete("cascade")).addColumn("plugin_id","text",(z)=>z.notNull()).addColumn("connection_id","text",(z)=>z.references("connections.id").onDelete("set null")).addColumn("settings","text").addColumn("created_at","text",(z)=>z.notNull()).addColumn("updated_at","text",(z)=>z.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(),N=new Map;for(let z of u)N.set(z.organizationId,z.userId);let K=new Map;for(let z of x){let E=`vir_${d()}`;K.set(z.id,E);let $=z.ui?JSON.parse(z.ui):null,P=JSON.stringify({enabled_plugins:z.enabled_plugins?JSON.parse(z.enabled_plugins):null,ui:$,migrated_from_project:z.id,migrated_project_slug:z.slug}),j=N.get(z.organization_id);if(!j)continue;await _.insertInto("connections").values({id:E,organization_id:z.organization_id,created_by:j,updated_by:null,title:z.name,description:z.description,icon:$?.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:P,bindings:null,status:"active",subtype:"project",created_at:z.created_at,updated_at:z.updated_at}).execute()}let m=await _.selectFrom("project_connections").select(["project_id","connection_id","created_at"]).execute();for(let z of m){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("connection_aggregations").values({id:`agg_${d()}`,parent_connection_id:E,child_connection_id:z.connection_id,selected_tools:null,selected_resources:null,selected_prompts:null,dependency_mode:"direct",created_at:z.created_at}).onConflict(($)=>$.doNothing()).execute()}let T=await _.selectFrom("project_plugin_configs").select(["id","project_id","plugin_id","connection_id","settings","created_at","updated_at"]).execute();for(let z of T){let E=K.get(z.project_id);if(!E)continue;await _.insertInto("virtual_mcp_plugin_configs").values({id:`vpc_${d()}`,virtual_mcp_id:E,plugin_id:z.plugin_id,connection_id:z.connection_id,settings:z.settings,created_at:z.created_at,updated_at:z.updated_at}).execute()}await _.schema.dropTable("project_plugin_configs").execute(),await _.schema.dropTable("project_connections").execute(),await _.schema.dropTable("projects").execute()}async function aU(_){await _.schema.dropTable("virtual_mcp_plugin_configs").ifExists().execute(),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await XC`
882
895
  ALTER TABLE connections
883
896
  DROP CONSTRAINT IF EXISTS chk_connections_subtype
884
- `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var XC={};C(XC,{up:()=>tU,down:()=>oU});import{sql as hU}from"kysely";async function tU(_){await hU`
897
+ `.execute(_),await _.schema.alterTable("connections").dropColumn("subtype").execute()}var ZC={};C(ZC,{up:()=>lU,down:()=>eU});import{sql as rU}from"kysely";async function lU(_){await rU`
885
898
  DELETE FROM connections
886
899
  WHERE connection_type = 'VIRTUAL'
887
900
  AND subtype = 'project'
888
901
  AND metadata::json->>'migrated_project_slug' = 'org-admin'
889
- `.execute(_)}async function oU(_){}var QC={};C(QC,{up:()=>rU,down:()=>lU});import{sql as aU}from"kysely";async function rU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await aU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function lU(_){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 WC={};C(WC,{up:()=>eU,down:()=>dU});import{sql as ZC}from"kysely";async function eU(_){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(ZC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(ZC`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(ZC`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 dU(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var LC={};C(LC,{up:()=>sU,down:()=>bU});async function sU(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function bU(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var jC={};C(jC,{up:()=>_P,down:()=>xP});async function _P(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function xP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var YC={};C(YC,{up:()=>CP,down:()=>KP});import{sql as YT}from"kysely";function FC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function uP(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return FC(N)}catch{return FC(_.connection_url)}if(_.title)return FC(_.title);return _.id}async function CP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await YT`
902
+ `.execute(_)}async function eU(_){}var WC={};C(WC,{up:()=>bU,down:()=>sU});import{sql as dU}from"kysely";async function bU(_){await _.schema.alterTable("threads").addColumn("run_owner_pod","text").addColumn("run_config","jsonb").addColumn("run_started_at","timestamptz").execute(),await dU`CREATE INDEX idx_threads_run_owner ON threads (status, run_owner_pod) WHERE status = 'in_progress'`.execute(_)}async function sU(_){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 LC={};C(LC,{up:()=>_P,down:()=>xP});import{sql as jC}from"kysely";async function _P(_){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(jC`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(jC`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(jC`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 xP(_){await _.schema.dropTable("org_sso_sessions").execute(),await _.schema.dropTable("org_sso_config").execute()}var FC={};C(FC,{up:()=>uP,down:()=>CP});async function uP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute()}async function CP(_){await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}var YC={};C(YC,{up:()=>KP,down:()=>NP});async function KP(_){await _.schema.alterTable("organization_settings").addColumn("registry_config","text").execute()}async function NP(_){await _.schema.alterTable("organization_settings").dropColumn("registry_config").execute()}var HC={};C(HC,{up:()=>TP,down:()=>zP});import{sql as HT}from"kysely";function DC(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function mP(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return DC(N)}catch{return DC(_.connection_url)}if(_.title)return DC(_.title);return _.id}async function TP(_){await _.schema.alterTable("connections").addColumn("slug","text").execute();let x=await HT`
890
903
  SELECT id, app_name, connection_url, title FROM connections
891
- `.execute(_);for(let u of x.rows){let N=uP(u);await YT`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function KP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var DC={};C(DC,{up:()=>NP,down:()=>mP});import{sql as X_}from"kysely";async function NP(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await X_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await X_`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 mP(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await X_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await X_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await X_`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 HC={};C(HC,{up:()=>TP,down:()=>zP});async function TP(_){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 zP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var MC={};C(MC,{up:()=>EP,down:()=>$P});import{sql as v_}from"kysely";async function EP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await v_`
904
+ `.execute(_);for(let u of x.rows){let N=mP(u);await HT`UPDATE connections SET slug = ${N} WHERE id = ${u.id}`.execute(_)}await _.schema.createIndex("idx_connections_org_slug").on("connections").columns(["organization_id","slug"]).execute()}async function zP(_){await _.schema.dropIndex("idx_connections_org_slug").execute(),await _.schema.alterTable("connections").dropColumn("slug").execute()}var MC={};C(MC,{up:()=>EP,down:()=>$P});import{sql as X_}from"kysely";async function EP(_){await _.schema.alterTable("connections").addColumn("pinned","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await X_`UPDATE connections SET pinned = true WHERE subtype = 'project' AND connection_type = 'VIRTUAL'`.execute(_),await _.schema.dropIndex("idx_connections_org_type_subtype").ifExists().execute(),await X_`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 $P(_){await _.schema.dropIndex("idx_connections_org_type_pinned").ifExists().execute(),await _.schema.alterTable("connections").addColumn("subtype","text").execute(),await X_`UPDATE connections SET subtype = 'project' WHERE pinned = true AND connection_type = 'VIRTUAL'`.execute(_),await X_`UPDATE connections SET subtype = 'agent' WHERE pinned = false AND connection_type = 'VIRTUAL'`.execute(_),await X_`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 RC={};C(RC,{up:()=>UP,down:()=>PP});async function UP(_){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 PP(_){await _.schema.dropIndex("idx_automations_virtual_mcp").execute(),await _.schema.alterTable("automations").dropColumn("virtual_mcp_id").execute()}var BC={};C(BC,{up:()=>JP,down:()=>XP});import{sql as p_}from"kysely";async function JP(_){await _.schema.alterTable("threads").addColumn("virtual_mcp_id","text",(x)=>x.notNull().defaultTo("")).execute(),await p_`
892
905
  UPDATE threads
893
906
  SET virtual_mcp_id = (agent_ids::jsonb ->> 0)
894
907
  WHERE agent_ids IS NOT NULL
895
908
  AND agent_ids != '[]'
896
909
  AND agent_ids != ''
897
910
  AND (agent_ids::jsonb ->> 0) IS NOT NULL
898
- `.execute(_),await v_`
911
+ `.execute(_),await p_`
899
912
  CREATE INDEX idx_threads_virtual_mcp_id
900
913
  ON threads (organization_id, virtual_mcp_id, hidden, updated_at DESC)
901
- `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function $P(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await v_`
914
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("agent_ids").execute()}async function XP(_){await _.schema.alterTable("threads").addColumn("agent_ids","text",(x)=>x.defaultTo("[]")).execute(),await p_`
902
915
  UPDATE threads
903
916
  SET agent_ids = CASE
904
917
  WHEN virtual_mcp_id IS NOT NULL AND virtual_mcp_id != ''
905
918
  THEN jsonb_build_array(virtual_mcp_id)::text
906
919
  ELSE '[]'
907
920
  END
908
- `.execute(_),await v_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var RC={};C(RC,{up:()=>UP,down:()=>PP});async function UP(_){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 PP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var BC={};C(BC,{up:()=>JP,down:()=>XP});async function JP(_){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 XP(_){await _.schema.dropTable("kv").execute()}var GC={};C(GC,{up:()=>QP,down:()=>ZP});async function QP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function ZP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var OC={};C(OC,{up:()=>WP,down:()=>LP});async function WP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function LP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var SC={};C(SC,{up:()=>jP,down:()=>FP});import{sql as S}from"kysely";async function jP(_){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(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`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 S`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(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`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 S`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(S`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(S`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(S`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(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`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 FP(_){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 fC={};C(fC,{up:()=>YP,down:()=>DP});import{sql as s}from"kysely";async function YP(_){await s`
921
+ `.execute(_),await p_`DROP INDEX IF EXISTS idx_threads_virtual_mcp_id`.execute(_),await _.schema.alterTable("threads").dropColumn("virtual_mcp_id").execute()}var GC={};C(GC,{up:()=>QP,down:()=>ZP});async function QP(_){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 ZP(_){await _.schema.dropTable("trigger_callback_tokens").execute()}var OC={};C(OC,{up:()=>WP,down:()=>jP});async function WP(_){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 jP(_){await _.schema.dropTable("kv").execute()}var SC={};C(SC,{up:()=>LP,down:()=>FP});async function LP(_){await _.schema.createIndex("idx_member_user_org").ifNotExists().on("member").columns(["userId","organizationId"]).execute()}async function FP(_){await _.schema.dropIndex("idx_member_user_org").execute()}var fC={};C(fC,{up:()=>YP,down:()=>DP});async function YP(_){await _.schema.createIndex("idx_downstream_tokens_connectionId").ifNotExists().on("downstream_tokens").column("connectionId").unique().execute()}async function DP(_){await _.schema.dropIndex("idx_downstream_tokens_connectionId").ifExists().execute()}var AC={};C(AC,{up:()=>HP,down:()=>MP});import{sql as S}from"kysely";async function HP(_){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(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`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 S`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(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`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 S`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(S`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(S`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(S`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(S`CURRENT_TIMESTAMP`)).addColumn("updated_at","text",(x)=>x.notNull().defaultTo(S`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 MP(_){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 IC={};C(IC,{up:()=>RP,down:()=>BP});import{sql as b}from"kysely";async function RP(_){await b`
909
922
  ALTER TABLE event_subscriptions
910
923
  ALTER COLUMN enabled DROP DEFAULT
911
- `.execute(_),await s`
924
+ `.execute(_),await b`
912
925
  ALTER TABLE event_subscriptions
913
926
  ALTER COLUMN enabled TYPE boolean
914
927
  USING enabled::boolean
915
- `.execute(_),await s`
928
+ `.execute(_),await b`
916
929
  ALTER TABLE event_subscriptions
917
930
  ALTER COLUMN enabled SET DEFAULT true
918
- `.execute(_)}async function DP(_){await s`
931
+ `.execute(_)}async function BP(_){await b`
919
932
  ALTER TABLE event_subscriptions
920
933
  ALTER COLUMN enabled DROP DEFAULT
921
- `.execute(_),await s`
934
+ `.execute(_),await b`
922
935
  ALTER TABLE event_subscriptions
923
936
  ALTER COLUMN enabled TYPE integer
924
937
  USING enabled::integer
925
- `.execute(_),await s`
938
+ `.execute(_),await b`
926
939
  ALTER TABLE event_subscriptions
927
940
  ALTER COLUMN enabled SET DEFAULT 1
928
- `.execute(_)}var AC={};C(AC,{up:()=>HP,down:()=>MP});import{sql as DT}from"kysely";async function HP(_){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(DT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(DT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function MP(_){await _.schema.dropTable("brand_context").execute()}var IC={};C(IC,{up:()=>RP,down:()=>BP});import{sql as HT}from"kysely";async function RP(_){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(HT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(HT`now()`)).execute()}async function BP(_){await _.schema.dropTable("organization_domains").execute()}var yC={};C(yC,{up:()=>fP,down:()=>AP});import{sql as MT}from"kysely";var p_=new Set(["primary","secondary","accent","background","foreground"]),GP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function OP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>p_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(p_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(p_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(p_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function SP(_){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 N of _){let K=N,m=K.name??K.family??void 0,T=K.role?.toLowerCase?.()??"";if(!m)continue;let z=GP[T];if(z&&!x[z])x[z]=m;else u.push(m)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function fP(_){let x=await MT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,m=!1,T=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let P=OP($);if(T=P.structured,N=!0,Object.keys(P.extra).length>0)E.extraColors=P.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=SP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await MT`
941
+ `.execute(_)}var yC={};C(yC,{up:()=>GP,down:()=>OP});import{sql as MT}from"kysely";async function GP(_){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(MT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(MT`now()`)).execute(),await _.schema.createIndex("brand_context_organization_id_idx").on("brand_context").column("organization_id").execute()}async function OP(_){await _.schema.dropTable("brand_context").execute()}var VC={};C(VC,{up:()=>SP,down:()=>fP});import{sql as RT}from"kysely";async function SP(_){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(RT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(RT`now()`)).execute()}async function fP(_){await _.schema.dropTable("organization_domains").execute()}var wC={};C(wC,{up:()=>VP,down:()=>wP});import{sql as BT}from"kysely";var g_=new Set(["primary","secondary","accent","background","foreground"]),AP={heading:"heading",headings:"heading",head:"heading",title:"heading",body:"body",primary:"body",text:"body",code:"code",monospace:"code",mono:"code"};function IP(_){let x={};if(!_)return{structured:null,extra:x};if(!Array.isArray(_)&&typeof _==="object"){let u=_;if(Object.keys(u).some((K)=>g_.has(K))){let K={};for(let[m,T]of Object.entries(u)){if(typeof T!=="string")continue;if(g_.has(m))K[m]=T;else x[m]=T}return{structured:Object.keys(K).length>0?JSON.stringify(K):null,extra:x}}let N={};for(let[K,m]of Object.entries(u)){if(typeof m!=="string")continue;if(g_.has(K.toLowerCase()))N[K.toLowerCase()]=m;else x[K]=m}return{structured:Object.keys(N).length>0?JSON.stringify(N):null,extra:x}}if(Array.isArray(_)){let u={};for(let N of _){let K=N,m=K.label?.toLowerCase?.(),T=K.value;if(!m||!T)continue;if(g_.has(m))u[m]=T;else x[m]=T}return{structured:Object.keys(u).length>0?JSON.stringify(u):null,extra:x}}return{structured:null,extra:x}}function yP(_){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 N of _){let K=N,m=K.name??K.family??void 0,T=K.role?.toLowerCase?.()??"";if(!m)continue;let z=AP[T];if(z&&!x[z])x[z]=m;else u.push(m)}if(!x.body&&u[0])x.body=u[0];return Object.keys(x).length>0?JSON.stringify(x):null}return null}async function VP(_){let x=await BT`SELECT id, colors, fonts, metadata FROM brand_context`.execute(_);for(let u of x.rows){let N=!1,K=!1,m=!1,T=u.colors,z=u.fonts,E={};try{E=u.metadata?JSON.parse(u.metadata):{}}catch{}if(u.colors)try{let $=JSON.parse(u.colors);if(Array.isArray($)){let P=IP($);if(T=P.structured,N=!0,Object.keys(P.extra).length>0)E.extraColors=P.extra,m=!0}}catch{}if(u.fonts)try{let $=JSON.parse(u.fonts);if(Array.isArray($))z=yP($),K=!0}catch{}if(N||K||m){let $=m?JSON.stringify(E):u.metadata;await BT`
929
942
  UPDATE brand_context
930
943
  SET
931
944
  colors = ${T},
@@ -933,20 +946,20 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
933
946
  metadata = ${$},
934
947
  updated_at = NOW()
935
948
  WHERE id = ${u.id}
936
- `.execute(_)}}}async function AP(_){}var VC={};C(VC,{up:()=>yP,down:()=>VP});import{sql as IP}from"kysely";async function yP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(IP`'{}'::jsonb`)).execute()}async function VP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var wC={};C(wC,{up:()=>wP,down:()=>kP});async function wP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function kP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var kC={};C(kC,{up:()=>nP,down:()=>vP});async function nP(_){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 vP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var nC={};C(nC,{up:()=>pP,down:()=>gP});async function pP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function gP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var vC={};C(vC,{up:()=>qP,down:()=>iP});async function qP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function iP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var pC={};C(pC,{up:()=>cP,down:()=>hP});async function cP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function hP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var gC={};C(gC,{up:()=>oP,down:()=>aP});import{sql as RT}from"kysely";var tP=["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 oP(_){let x=await RT`
949
+ `.execute(_)}}}async function wP(_){}var kC={};C(kC,{up:()=>nP,down:()=>vP});import{sql as kP}from"kysely";async function nP(_){await _.schema.alterTable("threads").addColumn("metadata","jsonb",(x)=>x.notNull().defaultTo(kP`'{}'::jsonb`)).execute()}async function vP(_){await _.schema.alterTable("threads").dropColumn("metadata").execute()}var nC={};C(nC,{up:()=>pP,down:()=>gP});async function pP(_){await _.schema.alterTable("threads").addColumn("branch","text").execute()}async function gP(_){await _.schema.alterTable("threads").dropColumn("branch").execute()}var vC={};C(vC,{up:()=>qP,down:()=>iP});async function qP(_){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 iP(_){await _.schema.dropTable("sandbox_runner_state").execute()}var pC={};C(pC,{up:()=>cP,down:()=>hP});async function cP(_){await _.schema.alterTable("organization_settings").addColumn("simple_mode","text").execute()}async function hP(_){await _.schema.alterTable("organization_settings").dropColumn("simple_mode").execute()}var gC={};C(gC,{up:()=>tP,down:()=>oP});async function tP(_){await _.schema.alterTable("organization_settings").addColumn("default_home_agents","text").execute()}async function oP(_){await _.schema.alterTable("organization_settings").dropColumn("default_home_agents").execute()}var qC={};C(qC,{up:()=>aP,down:()=>rP});async function aP(_){await _.schema.alterTable("ai_provider_keys").addColumn("preset_id","text").execute()}async function rP(_){await _.schema.alterTable("ai_provider_keys").dropColumn("preset_id").execute()}var iC={};C(iC,{up:()=>eP,down:()=>dP});import{sql as GT}from"kysely";var lP=["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 eP(_){let x=await GT`
937
950
  SELECT id, permission FROM "organizationRole"
938
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...tP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await RT`
951
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...lP]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await GT`
939
952
  UPDATE "organizationRole"
940
953
  SET permission = ${z}
941
954
  WHERE id = ${u.id}
942
- `.execute(_)}}async function aP(_){}var qC={};C(qC,{up:()=>rP,down:()=>lP});async function rP(_){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 lP(_){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 iC={};C(iC,{up:()=>eP,down:()=>dP});async function eP(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function dP(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var cC={};C(cC,{up:()=>sP,down:()=>bP});import{sql as Q_}from"kysely";async function sP(_){await Q_`
955
+ `.execute(_)}}async function dP(_){}var cC={};C(cC,{up:()=>bP,down:()=>sP});async function bP(_){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 sP(_){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 hC={};C(hC,{up:()=>_J,down:()=>xJ});async function _J(_){await _.schema.alterTable("threads").addColumn("inflight_async_jobs","jsonb").execute()}async function xJ(_){await _.schema.alterTable("threads").dropColumn("inflight_async_jobs").execute()}var tC={};C(tC,{up:()=>uJ,down:()=>CJ});import{sql as Q_}from"kysely";async function uJ(_){await Q_`
943
956
  UPDATE automations
944
957
  SET virtual_mcp_id = (agent::json ->> 'id')
945
958
  WHERE virtual_mcp_id IS NULL
946
959
  `.execute(_),await Q_`
947
960
  ALTER TABLE automations
948
961
  ALTER COLUMN virtual_mcp_id SET NOT NULL
949
- `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function bP(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
962
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("agent").execute()}async function CJ(_){await _.schema.alterTable("automations").addColumn("agent","text").execute(),await Q_`
950
963
  UPDATE automations
951
964
  SET agent = json_build_object('id', virtual_mcp_id)::text
952
965
  `.execute(_),await Q_`
@@ -955,7 +968,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
955
968
  `.execute(_),await Q_`
956
969
  ALTER TABLE automations
957
970
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
958
- `.execute(_)}var tC={};C(tC,{up:()=>CJ,reshapeSimpleMode:()=>BT,inferAutomationTier:()=>GT,down:()=>KJ,__testing:()=>uJ});var _J={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},xJ=["fast","smart","thinking","image","web_research"];function hC(_){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 xJ.some((N)=>(N in u))}function BT(_){if(hC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return _J;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function GT(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function OT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var uJ={isAlreadyReshapedSimpleMode:hC,isAlreadyReshapedAutomationModels:OT};async function CJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(hC(K))continue;let m=BT(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(m)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(OT(K))continue;let m=GT(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:m})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${m}"`)}}async function KJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var oC={};C(oC,{up:()=>NJ,down:()=>mJ});import{sql as n}from"kysely";async function NJ(_){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 n`
971
+ `.execute(_)}var aC={};C(aC,{up:()=>TJ,reshapeSimpleMode:()=>OT,inferAutomationTier:()=>ST,down:()=>zJ,__testing:()=>mJ});var KJ={tiers:{fast:null,smart:null,thinking:null,image:null,web_research:null}},NJ=["fast","smart","thinking","image","web_research"];function oC(_){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 NJ.some((N)=>(N in u))}function OT(_){if(oC(_))return _;let x=_,u=x?.enabled===!0,N=(K)=>K&&K.keyId&&K.modelId?{keyId:K.keyId,modelId:K.modelId,title:K.title}:null;if(!u)return KJ;return{tiers:{fast:N(x?.chat?.fast),smart:N(x?.chat?.smart),thinking:N(x?.chat?.thinking),image:N(x?.image),web_research:N(x?.webResearch)}}}function ST(_){if(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking")return _.tier;if(_.thinking?.capabilities?.reasoning===!0)return"thinking";return"smart"}function fT(_){if(!(_.tier==="fast"||_.tier==="smart"||_.tier==="thinking"))return!1;return["credentialId","thinking","coding","fast","smart"].every((N)=>_[N]===void 0)}var mJ={isAlreadyReshapedSimpleMode:oC,isAlreadyReshapedAutomationModels:fT};async function TJ(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let N of x){let K=N.simple_mode?typeof N.simple_mode==="string"?JSON.parse(N.simple_mode):N.simple_mode:null;if(oC(K))continue;let m=OT(K);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(m)}).where("organizationId","=",N.organizationId).execute()}let u=await _.selectFrom("automations").select(["id","organization_id","models"]).execute();for(let N of u){let K;try{K=typeof N.models==="string"?JSON.parse(N.models):N.models}catch{K={}}if(fT(K))continue;let m=ST(K);if(await _.updateTable("automations").set({models:JSON.stringify({tier:m})}).where("id","=",N.id).execute(),K.thinking?.capabilities?.image)console.log(`[migration 077] automation ${N.id} previously used an image-only model; mapped to "${m}"`)}}async function zJ(_){throw Error("077-tier-only-model-selection is not reversible. Restore from snapshot.")}var rC={};C(rC,{up:()=>EJ,down:()=>$J});import{sql as n}from"kysely";async function EJ(_){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 n`
959
972
  ALTER TABLE automations
960
973
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
961
974
  `.execute(_),await n`
@@ -977,19 +990,19 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
977
990
  AND tool_input IS NOT NULL
978
991
  )
979
992
  )
980
- `.execute(_)}async function mJ(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
993
+ `.execute(_)}async function $J(_){await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await n`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await n`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await n`
981
994
  ALTER TABLE automations
982
995
  ALTER COLUMN virtual_mcp_id SET NOT NULL
983
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var aC={};C(aC,{up:()=>zJ,down:()=>EJ});import{sql as ST}from"kysely";var TJ=new Set(["host","docker","agent-sandbox"]);async function zJ(_){let x=await ST`
996
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}var lC={};C(lC,{up:()=>PJ,down:()=>JJ});import{sql as AT}from"kysely";var UJ=new Set(["host","docker","agent-sandbox"]);async function PJ(_){let x=await AT`
984
997
  SELECT id, metadata FROM "connections"
985
998
  WHERE connection_type = 'VIRTUAL'
986
999
  AND metadata IS NOT NULL
987
1000
  AND metadata LIKE '%vmMap%'
988
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[L,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}let y=Q.runnerKind;if(y!==void 0&&!TJ.has(y)){m=!0;continue}P[L]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await ST`
1001
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.vmMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}let y=Q.runnerKind;if(y!==void 0&&!UJ.has(y)){m=!0;continue}P[j]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.vmMap=T;let z=JSON.stringify(N);await AT`
989
1002
  UPDATE "connections"
990
1003
  SET metadata = ${z}
991
1004
  WHERE id = ${u.id}
992
- `.execute(_)}}async function EJ(_){}var rC={};C(rC,{up:()=>$J,down:()=>UJ});import{sql as Z_}from"kysely";async function $J(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Z_`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(Z_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`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 Z_`
1005
+ `.execute(_)}}async function JJ(_){}var eC={};C(eC,{up:()=>XJ,down:()=>QJ});import{sql as Z_}from"kysely";async function XJ(_){await _.schema.createTable("async_research_jobs").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(Z_`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(Z_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Z_`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 Z_`
993
1006
  CREATE INDEX async_research_jobs_active_idx
994
1007
  ON async_research_jobs (status, last_polled_at)
995
1008
  WHERE status IN ('pending', 'polling')
@@ -997,27 +1010,27 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
997
1010
  ALTER TABLE async_research_jobs
998
1011
  ADD CONSTRAINT chk_async_research_jobs_status
999
1012
  CHECK (status IN ('pending','polling','completed','failed','cancelled','abandoned'))
1000
- `.execute(_)}async function UJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var lC={};C(lC,{up:()=>PJ,down:()=>JJ});async function PJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function JJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var eC={};C(eC,{up:()=>XJ,down:()=>QJ});import{sql as b}from"kysely";async function XJ(_){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(b`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(b`CURRENT_TIMESTAMP`)).execute(),await b`
1013
+ `.execute(_)}async function QJ(_){await _.schema.dropTable("async_research_jobs").ifExists().execute()}var dC={};C(dC,{up:()=>ZJ,down:()=>WJ});async function ZJ(_){await _.schema.alterTable("async_research_jobs").addColumn("result_content","text").execute()}async function WJ(_){await _.schema.alterTable("async_research_jobs").dropColumn("result_content").execute()}var bC={};C(bC,{up:()=>jJ,down:()=>LJ});import{sql as s}from"kysely";async function jJ(_){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(s`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(s`CURRENT_TIMESTAMP`)).execute(),await s`
1001
1014
  ALTER TABLE secrets
1002
1015
  ADD CONSTRAINT chk_secrets_scope CHECK (scope IN ('user', 'organization'))
1003
- `.execute(_),await b`
1016
+ `.execute(_),await s`
1004
1017
  ALTER TABLE secrets
1005
1018
  ADD CONSTRAINT chk_secrets_scope_user_id CHECK (
1006
1019
  (scope = 'user' AND user_id IS NOT NULL)
1007
1020
  OR (scope = 'organization' AND user_id IS NULL)
1008
1021
  )
1009
- `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await b`
1022
+ `.execute(_),await _.schema.createIndex("idx_secrets_org").on("secrets").column("organization_id").execute(),await s`
1010
1023
  CREATE UNIQUE INDEX idx_secrets_user_name
1011
1024
  ON secrets (organization_id, user_id, lower(name))
1012
1025
  WHERE scope = 'user'
1013
- `.execute(_),await b`
1026
+ `.execute(_),await s`
1014
1027
  CREATE UNIQUE INDEX idx_secrets_org_name
1015
1028
  ON secrets (organization_id, lower(name))
1016
1029
  WHERE scope = 'organization'
1017
- `.execute(_)}async function QJ(_){await _.schema.dropTable("secrets").execute()}var dC={};C(dC,{up:()=>ZJ,down:()=>WJ});async function ZJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function WJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var sC={};C(sC,{up:()=>jJ,down:()=>FJ});import{sql as LJ}from"kysely";async function jJ(_){await LJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function FJ(_){}var bC={};C(bC,{up:()=>YJ,down:()=>DJ});import{sql as g_}from"kysely";async function YJ(_){await g_`
1030
+ `.execute(_)}async function LJ(_){await _.schema.dropTable("secrets").execute()}var sC={};C(sC,{up:()=>FJ,down:()=>YJ});async function FJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function YJ(_){await _.schema.alterTable("threads").dropColumn("run_locally").execute()}var _K={};C(_K,{up:()=>HJ,down:()=>MJ});import{sql as DJ}from"kysely";async function HJ(_){await DJ`delete from sandbox_runner_state where runner_kind = 'host'`.execute(_)}async function MJ(_){}var xK={};C(xK,{up:()=>RJ,down:()=>BJ});import{sql as q_}from"kysely";async function RJ(_){await q_`
1018
1031
  ALTER TABLE sandbox_runner_state
1019
1032
  RENAME COLUMN runner_kind TO sandbox_provider_kind
1020
- `.execute(_),await g_`
1033
+ `.execute(_),await q_`
1021
1034
  DO $$ BEGIN
1022
1035
  UPDATE virtualmcps v
1023
1036
  SET metadata = jsonb_set(
@@ -1052,10 +1065,10 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1052
1065
  EXCEPTION WHEN undefined_table THEN
1053
1066
  NULL;
1054
1067
  END; $$
1055
- `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function DJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await g_`
1068
+ `.execute(_),await _.schema.alterTable("threads").dropColumn("run_locally").execute()}async function BJ(_){await _.schema.alterTable("threads").addColumn("run_locally","boolean",(x)=>x.notNull().defaultTo(!1)).execute(),await q_`
1056
1069
  ALTER TABLE sandbox_runner_state
1057
1070
  RENAME COLUMN sandbox_provider_kind TO runner_kind
1058
- `.execute(_),await g_`
1071
+ `.execute(_),await q_`
1059
1072
  DO $$ BEGIN
1060
1073
  UPDATE virtualmcps v
1061
1074
  SET metadata = jsonb_set(
@@ -1090,7 +1103,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1090
1103
  EXCEPTION WHEN undefined_table THEN
1091
1104
  NULL;
1092
1105
  END; $$
1093
- `.execute(_)}var _K={};C(_K,{up:()=>HJ,down:()=>MJ});import{sql as fT}from"kysely";async function HJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await fT`
1106
+ `.execute(_)}var uK={};C(uK,{up:()=>GJ,down:()=>OJ});import{sql as IT}from"kysely";async function GJ(_){await _.schema.alterTable("threads").addColumn("sandbox_provider_kind","text").execute(),await _.schema.alterTable("threads").addColumn("harness_id","text").execute(),await IT`
1094
1107
  DO $$ BEGIN
1095
1108
  UPDATE virtualmcps v
1096
1109
  SET metadata = jsonb_set(
@@ -1129,7 +1142,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1129
1142
  -- PGlite migration order: virtualmcps not yet created. Safe no-op.
1130
1143
  NULL;
1131
1144
  END; $$
1132
- `.execute(_)}async function MJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await fT`
1145
+ `.execute(_)}async function OJ(_){await _.schema.alterTable("threads").dropColumn("harness_id").execute(),await _.schema.alterTable("threads").dropColumn("sandbox_provider_kind").execute(),await IT`
1133
1146
  DO $$ BEGIN
1134
1147
  UPDATE virtualmcps v
1135
1148
  SET metadata = jsonb_set(
@@ -1162,7 +1175,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1162
1175
  EXCEPTION WHEN undefined_table THEN
1163
1176
  NULL;
1164
1177
  END; $$
1165
- `.execute(_)}var xK={};C(xK,{up:()=>RJ,down:()=>BJ});import{sql as AT}from"kysely";async function RJ(_){await AT`
1178
+ `.execute(_)}var CK={};C(CK,{up:()=>SJ,down:()=>fJ});import{sql as yT}from"kysely";async function SJ(_){await yT`
1166
1179
  UPDATE connections c
1167
1180
  SET metadata = (
1168
1181
  jsonb_set(
@@ -1206,7 +1219,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1206
1219
  JOIN jsonb_each(user_map) AS branches(branch_key, entry) ON true
1207
1220
  WHERE entry ? 'vmId'
1208
1221
  );
1209
- `.execute(_),await AT`
1222
+ `.execute(_),await yT`
1210
1223
  UPDATE connections c
1211
1224
  SET metadata = (
1212
1225
  jsonb_set(
@@ -1260,14 +1273,14 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1260
1273
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1261
1274
  WHERE inner_entry ? 'runnerKind'
1262
1275
  );
1263
- `.execute(_)}async function BJ(_){}var uK={};C(uK,{up:()=>OJ,down:()=>SJ});import{sql as GJ}from"kysely";async function OJ(_){await GJ`
1276
+ `.execute(_)}async function fJ(_){}var KK={};C(KK,{up:()=>IJ,down:()=>yJ});import{sql as AJ}from"kysely";async function IJ(_){await AJ`
1264
1277
  DELETE FROM ai_provider_keys
1265
1278
  WHERE provider_id IN ('claude-code', 'codex')
1266
- `.execute(_)}async function SJ(_){}var CK={};C(CK,{up:()=>fJ,down:()=>AJ});import{sql as q_}from"kysely";async function fJ(_){await q_`
1279
+ `.execute(_)}async function yJ(_){}var NK={};C(NK,{up:()=>VJ,down:()=>wJ});import{sql as i_}from"kysely";async function VJ(_){await i_`
1267
1280
  UPDATE sandbox_runner_state
1268
1281
  SET sandbox_provider_kind = 'desktop'
1269
1282
  WHERE sandbox_provider_kind = 'remote-user'
1270
- `.execute(_),await q_`
1283
+ `.execute(_),await i_`
1271
1284
  UPDATE connections c
1272
1285
  SET metadata = (
1273
1286
  jsonb_set(
@@ -1310,7 +1323,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1310
1323
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1311
1324
  WHERE kind_key = 'remote-user'
1312
1325
  );
1313
- `.execute(_),await q_`
1326
+ `.execute(_),await i_`
1314
1327
  UPDATE connections c
1315
1328
  SET metadata = (
1316
1329
  jsonb_set(
@@ -1357,17 +1370,17 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1357
1370
  JOIN jsonb_each(branch_entry) AS kinds(kind_key, inner_entry) ON true
1358
1371
  WHERE inner_entry->>'sandboxProviderKind' = 'remote-user'
1359
1372
  );
1360
- `.execute(_),await q_`
1373
+ `.execute(_),await i_`
1361
1374
  UPDATE threads
1362
1375
  SET sandbox_provider_kind = 'desktop'
1363
1376
  WHERE sandbox_provider_kind = 'remote-user'
1364
- `.execute(_)}async function AJ(_){}var KK={};C(KK,{up:()=>IJ,down:()=>yJ});import{sql as W_}from"kysely";async function IJ(_){await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`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 yJ(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await W_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var NK={};C(NK,{up:()=>VJ,down:()=>wJ});import{sql as IT}from"kysely";async function VJ(_){await IT`
1377
+ `.execute(_)}async function wJ(_){}var mK={};C(mK,{up:()=>kJ,down:()=>nJ});import{sql as W_}from"kysely";async function kJ(_){await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`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 nJ(_){await _.schema.alterTable("automation_triggers").dropColumn("api_key_id").execute(),await W_`DELETE FROM automation_triggers WHERE type = 'webhook'`.execute(_),await W_`ALTER TABLE automation_triggers DROP CONSTRAINT chk_trigger_type`.execute(_),await W_`ALTER TABLE automation_triggers ADD CONSTRAINT chk_trigger_type CHECK (type IN ('cron', 'event'))`.execute(_)}var TK={};C(TK,{up:()=>vJ,down:()=>pJ});import{sql as VT}from"kysely";async function vJ(_){await VT`
1365
1378
  ALTER TABLE organization_domains
1366
1379
  DROP CONSTRAINT IF EXISTS organization_domains_domain_key
1367
- `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function wJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await IT`
1380
+ `.execute(_),await _.schema.createIndex("organization_domains_domain_idx").ifNotExists().on("organization_domains").column("domain").execute()}async function pJ(_){await _.schema.dropIndex("organization_domains_domain_idx").ifExists().execute(),await VT`
1368
1381
  ALTER TABLE organization_domains
1369
1382
  ADD CONSTRAINT organization_domains_domain_key UNIQUE (domain)
1370
- `.execute(_)}var mK={};C(mK,{up:()=>kJ,down:()=>nJ});import{sql as i_}from"kysely";async function kJ(_){await i_`
1383
+ `.execute(_)}var zK={};C(zK,{up:()=>gJ,down:()=>qJ});import{sql as c_}from"kysely";async function gJ(_){await c_`
1371
1384
  UPDATE sandbox_runner_state
1372
1385
  SET sandbox_provider_kind = CASE sandbox_provider_kind
1373
1386
  WHEN 'docker' THEN 'local-docker'
@@ -1377,7 +1390,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1377
1390
  ELSE sandbox_provider_kind
1378
1391
  END
1379
1392
  WHERE sandbox_provider_kind IN ('docker','agent-sandbox','desktop','remote-user')
1380
- `.execute(_),await i_`
1393
+ `.execute(_),await c_`
1381
1394
  UPDATE connections c
1382
1395
  SET metadata = (
1383
1396
  (c.metadata::jsonb - 'vmMap')
@@ -1386,7 +1399,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1386
1399
  WHERE c.connection_type = 'VIRTUAL'
1387
1400
  AND c.metadata IS NOT NULL
1388
1401
  AND c.metadata::jsonb ? 'vmMap'
1389
- `.execute(_),await i_`
1402
+ `.execute(_),await c_`
1390
1403
  UPDATE connections c
1391
1404
  SET metadata = (
1392
1405
  jsonb_set(
@@ -1447,7 +1460,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1447
1460
  WHERE kind_key IN ('docker','agent-sandbox','desktop','remote-user','host','freestyle')
1448
1461
  OR inner_entry->>'sandboxProviderKind' IN ('docker','agent-sandbox','desktop','remote-user')
1449
1462
  );
1450
- `.execute(_),await i_`
1463
+ `.execute(_),await c_`
1451
1464
  UPDATE connections c
1452
1465
  SET metadata = REPLACE(
1453
1466
  REPLACE(c.metadata, '"VM_START"', '"SANDBOX_START"'),
@@ -1456,19 +1469,19 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1456
1469
  WHERE c.connection_type = 'VIRTUAL'
1457
1470
  AND c.metadata IS NOT NULL
1458
1471
  AND (c.metadata LIKE '%"VM_START"%' OR c.metadata LIKE '%"VM_DELETE"%')
1459
- `.execute(_)}async function nJ(_){}var TK={};C(TK,{up:()=>pJ,down:()=>gJ});import{sql as yT}from"kysely";var vJ=["GLOBAL_SEARCH"];async function pJ(_){let x=await yT`
1472
+ `.execute(_)}async function qJ(_){}var EK={};C(EK,{up:()=>cJ,down:()=>hJ});import{sql as wT}from"kysely";var iJ=["GLOBAL_SEARCH"];async function cJ(_){let x=await wT`
1460
1473
  SELECT id, permission FROM "organizationRole"
1461
- `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...vJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await yT`
1474
+ `.execute(_);for(let u of x.rows){if(!u.permission)continue;let N;try{N=JSON.parse(u.permission)}catch{continue}let K=N.self;if(!Array.isArray(K))continue;if(K.length===1&&K[0]==="*")continue;let m=K,T=Array.from(new Set([...m,...iJ]));if(T.length===m.length)continue;N.self=T;let z=JSON.stringify(N);await wT`
1462
1475
  UPDATE "organizationRole"
1463
1476
  SET permission = ${z}
1464
1477
  WHERE id = ${u.id}
1465
- `.execute(_)}}async function gJ(_){}var EK={};C(EK,{up:()=>qJ,down:()=>iJ});import{sql as zK}from"kysely";async function qJ(_){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(zK`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(zK`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await zK`
1478
+ `.execute(_)}}async function hJ(_){}var UK={};C(UK,{up:()=>tJ,down:()=>oJ});import{sql as $K}from"kysely";async function tJ(_){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($K`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($K`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_org_file_configs_org").on("org_file_configs").column("organization_id").execute(),await $K`
1466
1479
  CREATE UNIQUE INDEX idx_org_file_configs_org_name
1467
1480
  ON org_file_configs (organization_id, lower(name))
1468
- `.execute(_)}async function iJ(_){await _.schema.dropTable("org_file_configs").execute()}var $K={};C($K,{up:()=>cJ,down:()=>hJ});import{sql as v}from"kysely";async function cJ(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
1481
+ `.execute(_)}async function oJ(_){await _.schema.dropTable("org_file_configs").execute()}var PK={};C(PK,{up:()=>aJ,down:()=>rJ});import{sql as v}from"kysely";async function aJ(_){await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_tool_call_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_agent_fields`.execute(_),await v`ALTER TABLE automations DROP CONSTRAINT chk_automation_kind`.execute(_),await v`DELETE FROM automations WHERE kind = 'tool_call'`.execute(_),await v`
1469
1482
  ALTER TABLE automations
1470
1483
  ALTER COLUMN virtual_mcp_id SET NOT NULL
1471
- `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function hJ(_){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 v`
1484
+ `.execute(_),await _.schema.alterTable("automations").dropColumn("tool_input").dropColumn("tool_name").dropColumn("connection_id").dropColumn("kind").execute()}async function rJ(_){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 v`
1472
1485
  ALTER TABLE automations
1473
1486
  ALTER COLUMN virtual_mcp_id DROP NOT NULL
1474
1487
  `.execute(_),await v`
@@ -1490,25 +1503,25 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1490
1503
  AND tool_input IS NOT NULL
1491
1504
  )
1492
1505
  )
1493
- `.execute(_)}var UK={};C(UK,{up:()=>tJ,down:()=>oJ});async function tJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function oJ(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var JK={};C(JK,{up:()=>aJ,down:()=>rJ});import{sql as PK}from"kysely";var c_="local-docker";async function aJ(_){await PK`delete from sandbox_runner_state where sandbox_provider_kind = ${c_}`.execute(_);let x=await PK`
1506
+ `.execute(_)}var JK={};C(JK,{up:()=>lJ,down:()=>eJ});async function lJ(_){await _.schema.alterTable("org_file_configs").addColumn("public_url_base","text").execute()}async function eJ(_){await _.schema.alterTable("org_file_configs").dropColumn("public_url_base").execute()}var QK={};C(QK,{up:()=>dJ,down:()=>bJ});import{sql as XK}from"kysely";var h_="local-docker";async function dJ(_){await XK`delete from sandbox_runner_state where sandbox_provider_kind = ${h_}`.execute(_);let x=await XK`
1494
1507
  SELECT id, metadata FROM "connections"
1495
1508
  WHERE connection_type = 'VIRTUAL'
1496
1509
  AND metadata IS NOT NULL
1497
- AND metadata LIKE ${"%"+c_+"%"}
1498
- `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[L,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}if(c_ in Q){m=!0;let y={...Q};if(delete y[c_],Object.keys(y).length>0)P[L]=y}else P[L]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await PK`
1510
+ AND metadata LIKE ${"%"+h_+"%"}
1511
+ `.execute(_);for(let u of x.rows){if(!u.metadata)continue;let N;try{N=JSON.parse(u.metadata)}catch{continue}let K=N.sandboxMap;if(!K||typeof K!=="object")continue;let m=!1,T={};for(let[E,$]of Object.entries(K)){if(!$||typeof $!=="object"){m=!0;continue}let P={};for(let[j,Q]of Object.entries($)){if(!Q||typeof Q!=="object"){m=!0;continue}if(h_ in Q){m=!0;let y={...Q};if(delete y[h_],Object.keys(y).length>0)P[j]=y}else P[j]=Q}if(Object.keys(P).length>0)T[E]=P;else m=!0}if(!m)continue;N.sandboxMap=T;let z=JSON.stringify(N);await XK`
1499
1512
  UPDATE "connections"
1500
1513
  SET metadata = ${z}
1501
1514
  WHERE id = ${u.id}
1502
- `.execute(_)}}async function rJ(_){}var XK={};C(XK,{up:()=>lJ,down:()=>eJ});import{sql as h_}from"kysely";async function lJ(_){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 h_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await h_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await h_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await h_`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 eJ(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var QK={};C(QK,{up:()=>dJ,down:()=>sJ});async function dJ(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function sJ(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var ZK={};C(ZK,{up:()=>bJ,down:()=>_X});async function bJ(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function _X(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var WK={};C(WK,{up:()=>xX,down:()=>uX});async function xX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function uX(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var LK={};C(LK,{up:()=>CX,down:()=>KX});async function CX(_){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 KX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var jK={};C(jK,{up:()=>NX,down:()=>mX});async function NX(_){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 mX(_){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 YK={};C(YK,{up:()=>zX,down:()=>EX});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function FK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function t_(_){if(!__(_))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!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.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 TX(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[m,T]of Object.entries(_)){if(!__(T)){K[m]=T;continue}let z={};for(let[E,$]of Object.entries(T)){if(!__($)){z[E]=$;continue}let P={};for(let[L,Q]of Object.entries($)){if(L===x){if(N=!0,!(u in $))P[u]=FK(Q,x,u);else if(!t_($[u])&&t_(Q))P[u]=FK(Q,x,u);continue}let y=FK(Q,x,u);if(y!==Q)N=!0;if(L===u&&L in P&&t_(P[L])&&!t_(y))continue;P[L]=y}z[E]=P}K[m]=z}return{sandboxMap:K,changed:N}}async function VT(_,x,u){let N=await k`
1515
+ `.execute(_)}}async function bJ(_){}var ZK={};C(ZK,{up:()=>sJ,down:()=>_X});import{sql as t_}from"kysely";async function sJ(_){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 t_`CREATE UNIQUE INDEX idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_),await t_`CREATE INDEX idx_tmp_thread_created_id ON thread_message_parts (thread_id, created_at, id)`.execute(_),await t_`CREATE INDEX idx_tmp_finish_anchor ON thread_message_parts (thread_id, created_at DESC, id DESC) WHERE kind = 'finish'`.execute(_),await t_`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 _X(_){await _.schema.alterTable("threads").dropColumn("message_storage_version").dropColumn("last_progress_at").execute(),await _.schema.dropTable("thread_message_parts").ifExists().execute()}var WK={};C(WK,{up:()=>xX,down:()=>uX});async function xX(_){await _.schema.alterTable("threads").addColumn("run_fence_token","text").execute()}async function uX(_){await _.schema.alterTable("threads").dropColumn("run_fence_token").execute()}var jK={};C(jK,{up:()=>CX,down:()=>KX});async function CX(_){await _.schema.alterTable("threads").addColumn("link_transport","text").execute()}async function KX(_){await _.schema.alterTable("threads").dropColumn("link_transport").execute()}var LK={};C(LK,{up:()=>NX,down:()=>mX});async function NX(_){await _.schema.alterTable("threads").addColumn("cancel_requested_at","timestamptz").execute()}async function mX(_){await _.schema.alterTable("threads").dropColumn("cancel_requested_at").execute()}var FK={};C(FK,{up:()=>TX,down:()=>zX});async function TX(_){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 zX(_){await _.schema.dropTable("thread_observations").execute(),await _.schema.alterTable("threads").dropColumn("is_observation").execute(),await _.schema.alterTable("organization_settings").dropColumn("observational_config").execute()}var YK={};C(YK,{up:()=>EX,down:()=>$X});async function EX(_){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 $X(_){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 HK={};C(HK,{up:()=>PX,down:()=>JX});import{sql as k}from"kysely";var f="cluster",A="agent-sandbox";function __(_){return _!==null&&typeof _==="object"&&!Array.isArray(_)}function DK(_,x,u){if(!__(_))return _;if(_.sandboxProviderKind!==x)return _;return{..._,sandboxProviderKind:u}}function o_(_){if(!__(_))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!==f&&_.sandboxProviderKind!==A&&_.sandboxProviderKind!=="user-desktop")return!1;if(_.createdAt!==void 0&&typeof _.createdAt!=="number")return!1;if(_.startedWith!==void 0){if(!__(_.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 UX(_,x,u){if(!__(_))return null;let N=!1,K={};for(let[m,T]of Object.entries(_)){if(!__(T)){K[m]=T;continue}let z={};for(let[E,$]of Object.entries(T)){if(!__($)){z[E]=$;continue}let P={};for(let[j,Q]of Object.entries($)){if(j===x){if(N=!0,!(u in $))P[u]=DK(Q,x,u);else if(!o_($[u])&&o_(Q))P[u]=DK(Q,x,u);continue}let y=DK(Q,x,u);if(y!==Q)N=!0;if(j===u&&j in P&&o_(P[j])&&!o_(y))continue;P[j]=y}z[E]=P}K[m]=z}return{sandboxMap:K,changed:N}}async function kT(_,x,u){let N=await k`
1503
1516
  SELECT id, metadata FROM connections
1504
1517
  WHERE connection_type = 'VIRTUAL'
1505
1518
  AND metadata IS NOT NULL
1506
1519
  AND metadata LIKE ${"%"+x+"%"}
1507
- `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=TX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
1520
+ `.execute(_);for(let K of N.rows){if(!K.metadata)continue;let m;try{m=JSON.parse(K.metadata)}catch{continue}let T=UX(m.sandboxMap,x,u);if(!T?.changed)continue;m.sandboxMap=T.sandboxMap,await k`
1508
1521
  UPDATE connections
1509
1522
  SET metadata = ${JSON.stringify(m)}
1510
1523
  WHERE id = ${K.id}
1511
- `.execute(_)}}async function zX(_){await k`
1524
+ `.execute(_)}}async function PX(_){await k`
1512
1525
  UPDATE threads
1513
1526
  SET sandbox_provider_kind = ${A}
1514
1527
  WHERE sandbox_provider_kind = ${f}
@@ -1537,7 +1550,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1537
1550
  UPDATE sandbox_runner_state
1538
1551
  SET sandbox_provider_kind = ${A}
1539
1552
  WHERE sandbox_provider_kind = ${f}
1540
- `.execute(_),await VT(_,f,A)}async function EX(_){await k`
1553
+ `.execute(_),await kT(_,f,A)}async function JX(_){await k`
1541
1554
  UPDATE threads
1542
1555
  SET sandbox_provider_kind = ${f}
1543
1556
  WHERE sandbox_provider_kind = ${A}
@@ -1566,7 +1579,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1566
1579
  UPDATE sandbox_runner_state
1567
1580
  SET sandbox_provider_kind = ${f}
1568
1581
  WHERE sandbox_provider_kind = ${A}
1569
- `.execute(_),await VT(_,A,f)}var DK={};C(DK,{up:()=>$X,down:()=>UX});import{sql as g}from"kysely";async function $X(_){await g`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(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`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 g`
1582
+ `.execute(_),await kT(_,A,f)}var MK={};C(MK,{up:()=>XX,down:()=>QX});import{sql as g}from"kysely";async function XX(_){await g`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(g`kind in ('file', 'dir')`)).addColumn("content_hash","text").addColumn("size","bigint",(x)=>x.notNull().defaultTo(0)).addColumn("seq","bigint",(x)=>x.notNull().defaultTo(g`nextval('org_fs_entry_seq')`)).addColumn("deleted_at","timestamptz").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(g`CURRENT_TIMESTAMP`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(g`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 g`
1570
1583
  CREATE INDEX idx_org_fs_entry_parent
1571
1584
  ON org_fs_entry (organization_id, volume, parent)
1572
1585
  WHERE deleted_at IS NULL
@@ -1574,7 +1587,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1574
1587
  CREATE INDEX idx_org_fs_entry_usage
1575
1588
  ON org_fs_entry (organization_id, volume, size)
1576
1589
  WHERE kind = 'file' AND deleted_at IS NULL
1577
- `.execute(_)}async function UX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var HK={};C(HK,{up:()=>PX,down:()=>JX});async function PX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function JX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var MK={};C(MK,{up:()=>XX,down:()=>QX});import{sql as wT}from"kysely";async function XX(_){await wT`
1590
+ `.execute(_)}async function QX(_){await _.schema.dropTable("org_fs_entry").execute(),await g`DROP SEQUENCE IF EXISTS org_fs_entry_seq`.execute(_)}var RK={};C(RK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("automations").addColumn("tools","text").execute()}async function WX(_){await _.schema.alterTable("automations").dropColumn("tools").execute()}var BK={};C(BK,{up:()=>jX,down:()=>LX});import{sql as nT}from"kysely";async function jX(_){await nT`
1578
1591
  INSERT INTO "organization" (id, name, slug, "createdAt")
1579
1592
  SELECT
1580
1593
  'org_orgfs_public_skills',
@@ -1588,13 +1601,13 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1588
1601
  END,
1589
1602
  now()
1590
1603
  ON CONFLICT (id) DO NOTHING
1591
- `.execute(_)}async function QX(_){await wT`
1604
+ `.execute(_)}async function LX(_){await nT`
1592
1605
  DELETE FROM "organization" WHERE id = 'org_orgfs_public_skills'
1593
- `.execute(_)}var RK={};C(RK,{up:()=>ZX,down:()=>WX});async function ZX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function WX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var BK={};C(BK,{up:()=>LX,down:()=>jX});import{sql as kT}from"kysely";async function LX(_){await kT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function jX(_){await kT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var GK={};C(GK,{up:()=>YX,down:()=>DX});import{sql as FX}from"kysely";async function YX(_){await FX`
1606
+ `.execute(_)}var GK={};C(GK,{up:()=>FX,down:()=>YX});async function FX(_){await _.schema.alterTable("automations").addColumn("max_agent_steps","integer").execute()}async function YX(_){await _.schema.alterTable("automations").dropColumn("max_agent_steps").execute()}var OK={};C(OK,{up:()=>DX,down:()=>HX});import{sql as vT}from"kysely";async function DX(_){await vT`DROP INDEX IF EXISTS idx_tmp_run_seq`.execute(_)}async function HX(_){await vT`CREATE UNIQUE INDEX IF NOT EXISTS idx_tmp_run_seq ON thread_message_parts (run_id, seq)`.execute(_)}var SK={};C(SK,{up:()=>RX,down:()=>BX});import{sql as MX}from"kysely";async function RX(_){await MX`
1594
1607
  UPDATE downstream_tokens
1595
1608
  SET "expiresAt" = "createdAt"::timestamptz + INTERVAL '55 minutes'
1596
1609
  WHERE "expiresAt" IS NULL
1597
- `.execute(_)}async function DX(_){}var OK={};C(OK,{up:()=>HX,down:()=>MX});async function HX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function MX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var SK={};C(SK,{up:()=>RX,down:()=>BX});async function RX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function BX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var fK={};C(fK,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function OX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var AK={};C(AK,{up:()=>SX,down:()=>fX});async function SX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function fX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var IK={};C(IK,{up:()=>AX,down:()=>IX});async function AX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function IX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var yK={};C(yK,{up:()=>yX,down:()=>VX});import{sql as nT}from"kysely";async function yX(_){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(nT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(nT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function VX(_){await _.schema.dropTable("org_sites").execute()}var VK={};C(VK,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function kX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var wK={};C(wK,{up:()=>nX,down:()=>vX});import{sql as R}from"kysely";async function nX(_){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 R`
1610
+ `.execute(_)}async function BX(_){}var fK={};C(fK,{up:()=>GX,down:()=>OX});async function GX(_){await _.schema.alterTable("org_fs_entry").addColumn("thread_id","text").execute()}async function OX(_){await _.schema.alterTable("org_fs_entry").dropColumn("thread_id").execute()}var AK={};C(AK,{up:()=>SX,down:()=>fX});async function SX(_){await _.schema.alterTable("org_file_configs").addColumn("credential_type","text",(x)=>x.notNull().defaultTo("static")).addColumn("refresh_url","text").execute()}async function fX(_){await _.schema.alterTable("org_file_configs").dropColumn("credential_type").dropColumn("refresh_url").execute()}var IK={};C(IK,{up:()=>AX,down:()=>IX});async function AX(_){await _.schema.alterTable("threads").addColumn("failure_reason","text").execute(),await _.schema.alterTable("threads").addColumn("failure_kind","text").execute()}async function IX(_){await _.schema.alterTable("threads").dropColumn("failure_kind").execute(),await _.schema.alterTable("threads").dropColumn("failure_reason").execute()}var yK={};C(yK,{up:()=>yX,down:()=>VX});async function yX(_){await _.schema.alterTable("threads").addColumn("run_acked_seq","integer").execute()}async function VX(_){await _.schema.alterTable("threads").dropColumn("run_acked_seq").execute()}var VK={};C(VK,{up:()=>wX,down:()=>kX});async function wX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}async function kX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}var wK={};C(wK,{up:()=>nX,down:()=>vX});import{sql as pT}from"kysely";async function nX(_){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(pT`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(pT`now()`)).execute(),await _.schema.createIndex("idx_org_sites_org").on("org_sites").column("organization_id").execute()}async function vX(_){await _.schema.dropTable("org_sites").execute()}var kK={};C(kK,{up:()=>pX,down:()=>gX});async function pX(_){await _.schema.alterTable("org_file_configs").addColumn("site_slug","text").execute()}async function gX(_){await _.schema.alterTable("org_file_configs").dropColumn("site_slug").execute()}var nK={};C(nK,{up:()=>qX,down:()=>iX});import{sql as R}from"kysely";async function qX(_){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 R`
1598
1611
  UPDATE organization_domains
1599
1612
  SET
1600
1613
  id = gen_random_uuid()::text,
@@ -1603,18 +1616,18 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1603
1616
  verification_method = 'email',
1604
1617
  verified_at = created_at
1605
1618
  WHERE id IS NULL
1606
- `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`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 vX(_){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 R`
1619
+ `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN id SET DEFAULT gen_random_uuid()::text`.execute(_),await R`ALTER TABLE organization_domains ADD PRIMARY KEY (id)`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET NOT NULL`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN join_mode SET DEFAULT 'off'`.execute(_),await R`ALTER TABLE organization_domains ALTER COLUMN verification_status SET NOT NULL`.execute(_),await R`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 iX(_){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 R`
1607
1620
  UPDATE organization_domains
1608
1621
  SET auto_join_enabled = (join_mode = 'auto')
1609
- `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`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 kK={};C(kK,{up:()=>pX,down:()=>gX});import{sql as o_}from"kysely";async function pX(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(o_`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(o_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(o_`now()`)).execute(),await o_`
1622
+ `.execute(_),await R`ALTER TABLE organization_domains DROP CONSTRAINT organization_domains_pkey`.execute(_),await R`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 vK={};C(vK,{up:()=>cX,down:()=>hX});import{sql as a_}from"kysely";async function cX(_){await _.schema.createTable("organization_join_requests").addColumn("id","text",(x)=>x.primaryKey().defaultTo(a_`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(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).execute(),await a_`
1610
1623
  CREATE UNIQUE INDEX organization_join_requests_pending_unique
1611
1624
  ON organization_join_requests (organization_id, user_id)
1612
1625
  WHERE status = 'pending'
1613
- `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function gX(_){await _.schema.dropTable("organization_join_requests").execute()}var nK={};C(nK,{up:()=>qX,down:()=>iX});async function qX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function iX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var vK={};C(vK,{up:()=>cX,down:()=>hX});async function cX(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function hX(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var qK={};C(qK,{up:()=>aX,splitWebResearchTier:()=>gK,down:()=>rX,__testing:()=>oX});function tX(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function pK(_){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 gK(_){if(!_||pK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(tX(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var oX={splitWebResearchTier:gK,isAlreadySplit:pK};async function aX(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(pK(N))continue;let K=gK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function rX(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var iK={};C(iK,{up:()=>lX,down:()=>eX});import{sql as L_}from"kysely";async function lX(_){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(L_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(L_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await L_`
1626
+ `.execute(_),await _.schema.createIndex("organization_join_requests_org_status_idx").on("organization_join_requests").columns(["organization_id","status"]).execute()}async function hX(_){await _.schema.dropTable("organization_join_requests").execute()}var pK={};C(pK,{up:()=>tX,down:()=>oX});async function tX(_){await _.schema.alterTable("org_fs_entry").addColumn("read_public","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}async function oX(_){await _.schema.alterTable("org_fs_entry").dropColumn("read_public").execute()}var gK={};C(gK,{up:()=>aX,down:()=>rX});async function aX(_){await _.schema.alterTable("org_fs_entry").addColumn("share_password_hash","text").addColumn("share_secret","text").execute()}async function rX(_){await _.schema.alterTable("org_fs_entry").dropColumn("share_password_hash").dropColumn("share_secret").execute()}var cK={};C(cK,{up:()=>dX,splitWebResearchTier:()=>iK,down:()=>bX,__testing:()=>eX});function lX(_){return _.toLowerCase().replace(/[^a-z0-9]/g,"").includes("deepresearch")}function qK(_){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 iK(_){if(!_||qK(_))return _;let x=_.tiers??{},u=x.web_research??null,{web_research:N,...K}=x,m=null,T=null;if(u)if(lX(u.modelId))T=u;else m=u;return{..._,tiers:{...K,web_search:m,deep_research:T}}}var eX={splitWebResearchTier:iK,isAlreadySplit:qK};async function dX(_){let x=await _.selectFrom("organization_settings").select(["organizationId","simple_mode"]).execute();for(let u of x){if(!u.simple_mode)continue;let N=typeof u.simple_mode==="string"?JSON.parse(u.simple_mode):u.simple_mode;if(qK(N))continue;let K=iK(N);await _.updateTable("organization_settings").set({simple_mode:JSON.stringify(K)}).where("organizationId","=",u.organizationId).execute()}}async function bX(_){throw Error("122-split-web-research-tier is not reversible. Restore from snapshot.")}var hK={};C(hK,{up:()=>sX,down:()=>_Q});import{sql as j_}from"kysely";async function sX(_){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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`CURRENT_TIMESTAMP`)).execute(),await _.schema.createIndex("idx_connection_workload_tokens_subject").on("connection_workload_tokens").columns(["organization_id","subject_connection_id"]).execute(),await j_`
1614
1627
  CREATE UNIQUE INDEX idx_connection_workload_tokens_active_unique
1615
1628
  ON connection_workload_tokens (organization_id, subject_connection_id, name)
1616
1629
  WHERE revoked_at IS NULL
1617
- `.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(L_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(L_`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 eX(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var cK={};C(cK,{up:()=>dX,down:()=>sX});async function dX(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function sX(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var hK={};C(hK,{up:()=>bX,down:()=>_Q});import{sql as t}from"kysely";async function bX(_){await t`
1630
+ `.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(j_`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(j_`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 _Q(_){await _.schema.dropTable("connection_credential_grants").ifExists().execute(),await _.schema.dropTable("connection_workload_tokens").ifExists().execute()}var tK={};C(tK,{up:()=>xQ,down:()=>uQ});async function xQ(_){await _.schema.alterTable("threads").dropColumn("projected_seq").execute()}async function uQ(_){await _.schema.alterTable("threads").addColumn("projected_seq","integer",(x)=>x.notNull().defaultTo(0)).execute()}var oK={};C(oK,{up:()=>CQ,down:()=>KQ});import{sql as t}from"kysely";async function CQ(_){await t`
1618
1631
  CREATE OR REPLACE FUNCTION try_parse_jsonb(t text)
1619
1632
  RETURNS jsonb AS $fn$
1620
1633
  BEGIN
@@ -1673,7 +1686,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1673
1686
  BEFORE INSERT ON connection_aggregations
1674
1687
  FOR EACH ROW
1675
1688
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1676
- `.execute(_)}async function _Q(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var oK={};C(oK,{up:()=>xQ,down:()=>uQ});import{sql as tK}from"kysely";async function xQ(_){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(tK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(tK`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(tK`false`)).execute()}async function uQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var aK={};C(aK,{up:()=>CQ,down:()=>KQ});async function CQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function KQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var rK={};C(rK,{up:()=>NQ,down:()=>mQ});async function NQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function mQ(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var lK={};C(lK,{up:()=>TQ,down:()=>zQ});async function TQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function zQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var eK={};C(eK,{up:()=>$Q,down:()=>UQ});import{sql as EQ}from"kysely";async function $Q(_){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(EQ`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 UQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var dK={};C(dK,{up:()=>PQ,down:()=>JQ});async function PQ(_){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 JQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var sK={};C(sK,{up:()=>QQ,down:()=>ZQ});import{sql as XQ}from"kysely";async function QQ(_){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(XQ`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 ZQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var bK={};C(bK,{up:()=>LQ,down:()=>jQ});import{sql as WQ}from"kysely";async function LQ(_){await WQ`
1689
+ `.execute(_)}async function KQ(_){await t`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await t`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_),await t`DROP FUNCTION IF EXISTS try_parse_jsonb(text);`.execute(_)}var rK={};C(rK,{up:()=>NQ,down:()=>mQ});import{sql as aK}from"kysely";async function NQ(_){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(aK`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(aK`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(aK`false`)).execute()}async function mQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute(),await _.schema.dropTable("task_board_items").execute()}var lK={};C(lK,{up:()=>TQ,down:()=>zQ});async function TQ(_){await _.schema.alterTable("task_board_items").addColumn("due_date","timestamptz").execute()}async function zQ(_){await _.schema.alterTable("task_board_items").dropColumn("due_date").execute()}var eK={};C(eK,{up:()=>EQ,down:()=>$Q});async function EQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute()}async function $Q(_){await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}var dK={};C(dK,{up:()=>UQ,down:()=>PQ});async function UQ(_){await _.schema.alterTable("task_board_items").addColumn("assigned_by","text").execute()}async function PQ(_){await _.schema.alterTable("task_board_items").dropColumn("assigned_by").execute()}var bK={};C(bK,{up:()=>XQ,down:()=>QQ});import{sql as JQ}from"kysely";async function XQ(_){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(JQ`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 QQ(_){await _.schema.dropTable("task_board_item_threads").execute()}var sK={};C(sK,{up:()=>ZQ,down:()=>WQ});async function ZQ(_){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 WQ(_){await _.schema.alterTable("task_board_item_threads").dropConstraint("task_board_item_threads_thread_id_fkey").execute()}var _N={};C(_N,{up:()=>LQ,down:()=>FQ});import{sql as jQ}from"kysely";async function LQ(_){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(jQ`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 FQ(_){await _.schema.dropTable("task_board_item_prs").execute()}var xN={};C(xN,{up:()=>DQ,down:()=>HQ});import{sql as YQ}from"kysely";async function DQ(_){await YQ`
1677
1690
  DELETE FROM member
1678
1691
  WHERE id IN (
1679
1692
  SELECT id FROM (
@@ -1692,38 +1705,38 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1692
1705
  ) ranked
1693
1706
  WHERE ranked.rn > 1
1694
1707
  )
1695
- `.execute(_)}async function jQ(_){}var _N={};C(_N,{up:()=>FQ,down:()=>YQ});async function FQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function YQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var xN={};C(xN,{up:()=>DQ,down:()=>HQ});async function DQ(_){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 HQ(_){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 uN={};C(uN,{up:()=>RQ,down:()=>BQ});import{sql as MQ}from"kysely";async function RQ(_){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(MQ`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 BQ(_){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 CN={};C(CN,{up:()=>OQ,down:()=>SQ});import{sql as GQ}from"kysely";async function OQ(_){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(GQ`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 SQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var KN={};C(KN,{up:()=>fQ,down:()=>AQ});import{sql as a_}from"kysely";async function fQ(_){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(a_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(a_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",a_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",a_`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 AQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var NN={};C(NN,{up:()=>IQ,down:()=>yQ});import{sql as r_}from"kysely";async function IQ(_){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(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`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(r_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await r_`
1708
+ `.execute(_)}async function HQ(_){}var uN={};C(uN,{up:()=>MQ,down:()=>RQ});async function MQ(_){await _.schema.alterTable("organization_settings").dropColumn("task_board_enabled").execute()}async function RQ(_){await _.schema.alterTable("organization_settings").addColumn("task_board_enabled","boolean",(x)=>x.notNull().defaultTo(!1)).execute()}var CN={};C(CN,{up:()=>BQ,down:()=>GQ});async function BQ(_){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 GQ(_){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 KN={};C(KN,{up:()=>SQ,down:()=>fQ});import{sql as OQ}from"kysely";async function SQ(_){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(OQ`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 fQ(_){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 NN={};C(NN,{up:()=>IQ,down:()=>yQ});import{sql as AQ}from"kysely";async function IQ(_){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(AQ`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 yQ(_){await _.schema.dropTable("agent_sandbox_runner_state").execute()}var mN={};C(mN,{up:()=>VQ,down:()=>wQ});import{sql as r_}from"kysely";async function VQ(_){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(r_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(r_`now()`)).addPrimaryKeyConstraint("agent_sandbox_sessions_pkey",["organization_id","virtual_mcp_id","branch"]).addCheckConstraint("agent_sandbox_sessions_desired_state_check",r_`desired_state in ('running', 'stopped')`).addCheckConstraint("agent_sandbox_sessions_status_check",r_`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 wQ(_){await _.schema.dropTable("agent_sandbox_sessions").execute()}var TN={};C(TN,{up:()=>kQ,down:()=>nQ});import{sql as l_}from"kysely";async function kQ(_){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(l_`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(l_`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(l_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pkey",["organization_id","user_id"]).execute(),await l_`
1696
1709
  insert into organization_billing (organization_id, legacy)
1697
1710
  select id, true from organization
1698
1711
  on conflict (organization_id) do nothing
1699
- `.execute(_)}async function yQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var mN={};C(mN,{up:()=>VQ,down:()=>wQ});import{sql as vT}from"kysely";async function VQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(vT`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(vT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function wQ(_){await _.schema.dropTable("seat_change_log").execute()}var TN={};C(TN,{up:()=>kQ,down:()=>nQ});async function kQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function nQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var zN={};C(zN,{up:()=>vQ,down:()=>pQ});import{sql as pT}from"kysely";async function vQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await pT`
1712
+ `.execute(_)}async function nQ(_){await _.schema.dropTable("organization_paid_seat").execute(),await _.schema.dropTable("organization_billing").execute()}var zN={};C(zN,{up:()=>vQ,down:()=>pQ});import{sql as gT}from"kysely";async function vQ(_){await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(gT`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(gT`now()`)).execute(),await _.schema.createIndex("idx_seat_change_log_org_created").on("seat_change_log").columns(["organization_id","created_at"]).execute()}async function pQ(_){await _.schema.dropTable("seat_change_log").execute()}var EN={};C(EN,{up:()=>gQ,down:()=>qQ});async function gQ(_){await _.schema.alterTable("organization_billing").addColumn("benefits_reference_id","text").execute()}async function qQ(_){await _.schema.alterTable("organization_billing").dropColumn("benefits_reference_id").execute()}var $N={};C($N,{up:()=>iQ,down:()=>cQ});import{sql as qT}from"kysely";async function iQ(_){await _.schema.alterTable("organization_billing").addColumn("last_stripe_event_at","timestamptz").execute(),await qT`
1700
1713
  create unique index organization_billing_stripe_subscription_id_uq
1701
1714
  on organization_billing (stripe_subscription_id)
1702
1715
  where stripe_subscription_id is not null
1703
- `.execute(_)}async function pQ(_){await pT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var EN={};C(EN,{up:()=>gQ,down:()=>qQ});async function gQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function qQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var $N={};C($N,{up:()=>iQ,down:()=>cQ});import{sql as gT}from"kysely";async function iQ(_){await gT`
1716
+ `.execute(_)}async function cQ(_){await qT`drop index organization_billing_stripe_subscription_id_uq`.execute(_),await _.schema.alterTable("organization_billing").dropColumn("last_stripe_event_at").execute()}var UN={};C(UN,{up:()=>hQ,down:()=>tQ});async function hQ(_){await _.schema.alterTable("organization_billing").addColumn("armed_report_url","text").execute()}async function tQ(_){await _.schema.alterTable("organization_billing").dropColumn("armed_report_url").execute()}var PN={};C(PN,{up:()=>oQ,down:()=>aQ});import{sql as iT}from"kysely";async function oQ(_){await iT`
1704
1717
  create index idx_org_billing_benefits_pending
1705
1718
  on organization_billing (updated_at)
1706
1719
  where benefits_reference_id is not null
1707
- `.execute(_)}async function cQ(_){await gT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var UN={};C(UN,{up:()=>hQ,down:()=>tQ});import{sql as qT}from"kysely";async function hQ(_){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(qT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(qT`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 tQ(_){await _.schema.dropTable("user_model_preferences").execute()}var PN={};C(PN,{up:()=>oQ,down:()=>aQ});async function oQ(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function aQ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var JN={};C(JN,{up:()=>rQ,down:()=>lQ});async function rQ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function lQ(_){}var XN={};C(XN,{up:()=>eQ,down:()=>dQ});import{sql as iT}from"kysely";async function eQ(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await iT`
1720
+ `.execute(_)}async function aQ(_){await iT`drop index if exists idx_org_billing_benefits_pending`.execute(_)}var JN={};C(JN,{up:()=>rQ,down:()=>lQ});import{sql as cT}from"kysely";async function rQ(_){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(cT`CURRENT_TIMESTAMP`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(cT`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 lQ(_){await _.schema.dropTable("user_model_preferences").execute()}var XN={};C(XN,{up:()=>eQ,down:()=>dQ});async function eQ(_){await _.schema.alterTable("organization_settings").addColumn("main_agent_id","text").execute()}async function dQ(_){await _.schema.alterTable("organization_settings").dropColumn("main_agent_id").execute()}var QN={};C(QN,{up:()=>bQ,down:()=>sQ});async function bQ(_){await _.schema.dropTable("agent_sandbox_sessions").ifExists().execute(),await _.schema.dropTable("agent_sandbox_runner_state").ifExists().execute()}async function sQ(_){}var ZN={};C(ZN,{up:()=>_Z,down:()=>xZ});import{sql as hT}from"kysely";async function _Z(_){await _.schema.alterTable("organization_settings").addColumn("flags","jsonb").execute(),await hT`
1708
1721
  UPDATE organization_settings
1709
1722
  SET flags = jsonb_build_object('reports_only', reports_only)
1710
1723
  WHERE reports_only IS NOT NULL
1711
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function dQ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await iT`
1724
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("reports_only").execute()}async function xZ(_){await _.schema.alterTable("organization_settings").addColumn("reports_only","boolean").execute(),await hT`
1712
1725
  UPDATE organization_settings
1713
1726
  SET reports_only = (flags ->> 'reports_only')::boolean
1714
1727
  WHERE flags ? 'reports_only'
1715
- `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var QN={};C(QN,{up:()=>bQ,down:()=>_Z});import{sql as sQ}from"kysely";async function bQ(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await sQ`
1728
+ `.execute(_),await _.schema.alterTable("organization_settings").dropColumn("flags").execute()}var WN={};C(WN,{up:()=>CZ,down:()=>KZ});import{sql as uZ}from"kysely";async function CZ(_){await _.schema.alterTable("task_board_items").addColumn("sort_order","double precision",(x)=>x.notNull().defaultTo(0)).execute(),await uZ`
1716
1729
  update task_board_items
1717
1730
  set sort_order = -extract(epoch from created_at)
1718
- `.execute(_)}async function _Z(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var ZN={};C(ZN,{up:()=>xZ,down:()=>uZ,ACTIONS:()=>cT});import{sql as l_}from"kysely";var cT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function xZ(_){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(l_`now()`)).addCheckConstraint("chk_task_board_activity_action",l_`action IN (${l_.join(cT.map((x)=>l_.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 uZ(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var LN={};C(LN,{up:()=>CZ,down:()=>KZ,ACTIONS:()=>WN});import{sql as j_}from"kysely";var WN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function CZ(_){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(j_`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 hT(_,WN)}async function KZ(_){await hT(_,WN.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 hT(_,x){await j_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await j_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${j_.join(x.map((u)=>j_.lit(u)))}))`.execute(_)}var FN={};C(FN,{up:()=>mZ,down:()=>TZ});import{sql as tT}from"kysely";function jN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function NZ(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return jN(N)}catch{return jN(_.connection_url)}if(_.title)return jN(_.title);return _.id}async function mZ(_){let x=await tT`
1731
+ `.execute(_)}async function KZ(_){await _.schema.alterTable("task_board_items").dropColumn("sort_order").execute()}var jN={};C(jN,{up:()=>NZ,down:()=>mZ,ACTIONS:()=>tT});import{sql as e_}from"kysely";var tT=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed"];async function NZ(_){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(e_`now()`)).addCheckConstraint("chk_task_board_activity_action",e_`action IN (${e_.join(tT.map((x)=>e_.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 mZ(_){await _.schema.dropIndex("idx_task_board_activity_item").execute(),await _.schema.dropTable("task_board_activity").execute()}var FN={};C(FN,{up:()=>TZ,down:()=>zZ,ACTIONS:()=>LN});import{sql as L_}from"kysely";var LN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed"];async function TZ(_){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 oT(_,LN)}async function zZ(_){await oT(_,LN.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 oT(_,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 DN={};C(DN,{up:()=>$Z,down:()=>UZ});import{sql as aT}from"kysely";function YN(_){return _.toLowerCase().trim().replace(/\//g,"-").replace(/[^a-z0-9\s_-]+/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function EZ(_){if(_.app_name)return _.app_name;if(_.connection_url)try{let x=new URL(_.connection_url),N=((x.port?`${x.hostname}-${x.port}`:x.hostname)+x.pathname).replace(/\/+$/,"");return YN(N)}catch{return YN(_.connection_url)}if(_.title)return YN(_.title);return _.id}async function $Z(_){let x=await aT`
1719
1732
  SELECT id, app_name, connection_url, title, slug
1720
1733
  FROM connections
1721
1734
  WHERE connection_type != 'VIRTUAL'
1722
- `.execute(_),u=0;for(let N of x.rows){let K=NZ(N);if(K===N.slug)continue;await tT`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function TZ(){}var YN={};C(YN,{up:()=>EZ,down:()=>$Z});import{sql as zZ}from"kysely";async function EZ(_){await zZ`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 $Z(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var HN={};C(HN,{up:()=>PZ,down:()=>JZ,ACTIONS:()=>DN});import{sql as e_}from"kysely";var DN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],UZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function PZ(_){await oT(_,DN)}async function JZ(_){await oT(_,DN.filter((x)=>!UZ.has(x)))}async function oT(_,x){await e_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await e_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${e_.join(x.map((u)=>e_.lit(u)))}))`.execute(_)}var MN={};C(MN,{up:()=>QZ,down:()=>ZZ});import{sql as XZ}from"kysely";async function QZ(_){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(XZ`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 ZZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var BN={};C(BN,{up:()=>LZ,down:()=>jZ,ACTIONS:()=>RN});import{sql as d_}from"kysely";var RN=["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"],WZ=new Set(["merge_conflict_resolution"]);async function LZ(_){await aT(_,RN)}async function jZ(_){await aT(_,RN.filter((x)=>!WZ.has(x)))}async function aT(_,x){await d_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d_.join(x.map((u)=>d_.lit(u)))}))`.execute(_)}var GN={};C(GN,{up:()=>FZ,down:()=>YZ});import{sql as F_}from"kysely";async function FZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`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 YZ(_){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 F_`
1735
+ `.execute(_),u=0;for(let N of x.rows){let K=EZ(N);if(K===N.slug)continue;await aT`UPDATE connections SET slug = ${K} WHERE id = ${N.id}`.execute(_),u++}if(u>0)console.log(`[152] repaired ${u} drifted connection slug(s)`)}async function UZ(){}var HN={};C(HN,{up:()=>JZ,down:()=>XZ});import{sql as PZ}from"kysely";async function JZ(_){await PZ`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 XZ(_){await _.schema.dropIndex("idx_tmp_latest_assistant_text").execute()}var RN={};C(RN,{up:()=>ZZ,down:()=>WZ,ACTIONS:()=>MN});import{sql as d_}from"kysely";var MN=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested"],QZ=new Set(["review_requested","review_approved","review_changes_requested"]);async function ZZ(_){await rT(_,MN)}async function WZ(_){await rT(_,MN.filter((x)=>!QZ.has(x)))}async function rT(_,x){await d_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await d_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${d_.join(x.map((u)=>d_.lit(u)))}))`.execute(_)}var BN={};C(BN,{up:()=>LZ,down:()=>FZ});import{sql as jZ}from"kysely";async function LZ(_){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(jZ`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 FZ(_){await _.schema.dropIndex("idx_task_board_review_claims_token").execute(),await _.schema.dropTable("task_board_review_claims").execute()}var ON={};C(ON,{up:()=>DZ,down:()=>HZ,ACTIONS:()=>GN});import{sql as b_}from"kysely";var GN=["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"],YZ=new Set(["merge_conflict_resolution"]);async function DZ(_){await lT(_,GN)}async function HZ(_){await lT(_,GN.filter((x)=>!YZ.has(x)))}async function lT(_,x){await b_`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await b_`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${b_.join(x.map((u)=>b_.lit(u)))}))`.execute(_)}var SN={};C(SN,{up:()=>MZ,down:()=>RZ});import{sql as F_}from"kysely";async function MZ(_){await _.schema.dropTable("seat_change_log").ifExists().execute(),await _.schema.dropTable("organization_paid_seat").ifExists().execute(),await F_`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 RZ(_){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 F_`
1723
1736
  create index idx_org_billing_benefits_pending
1724
1737
  on organization_billing (updated_at)
1725
1738
  where benefits_reference_id is not null
1726
- `.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(F_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).execute()}var ON={};C(ON,{up:()=>DZ,down:()=>HZ});import{sql as s_}from"kysely";async function DZ(_){await s_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await s_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function HZ(_){await s_`
1739
+ `.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(F_`now()`)).addPrimaryKeyConstraint("organization_paid_seat_pk",["organization_id","user_id"]).execute(),await _.schema.createTable("seat_change_log").addColumn("id","uuid",(x)=>x.primaryKey().defaultTo(F_`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(F_`now()`)).execute()}var fN={};C(fN,{up:()=>BZ,down:()=>GZ});import{sql as s_}from"kysely";async function BZ(_){await s_`DROP TRIGGER IF EXISTS trg_repo_github_child_single_parent ON connection_aggregations;`.execute(_),await s_`DROP FUNCTION IF EXISTS enforce_repo_github_child_single_parent();`.execute(_)}async function GZ(_){await s_`
1727
1740
  CREATE OR REPLACE FUNCTION enforce_repo_github_child_single_parent()
1728
1741
  RETURNS trigger AS $fn$
1729
1742
  BEGIN
@@ -1749,35 +1762,35 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1749
1762
  BEFORE INSERT ON connection_aggregations
1750
1763
  FOR EACH ROW
1751
1764
  EXECUTE FUNCTION enforce_repo_github_child_single_parent();
1752
- `.execute(_)}var SN={};C(SN,{up:()=>MZ,down:()=>RZ});import{sql as rT}from"kysely";async function MZ(_){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(rT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(rT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function RZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var fN={};C(fN,{up:()=>BZ,down:()=>GZ});import{sql as lT}from"kysely";async function BZ(_){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 GZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var IN={};C(IN,{up:()=>OZ,down:()=>SZ});import{sql as AN}from"kysely";async function OZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(AN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await AN`
1765
+ `.execute(_)}var AN={};C(AN,{up:()=>OZ,down:()=>SZ});import{sql as eT}from"kysely";async function OZ(_){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(eT`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(eT`now()`)).execute(),await _.schema.createIndex("idx_task_board_comments_item").on("task_board_comments").columns(["task_board_item_id","created_at"]).execute()}async function SZ(_){await _.schema.dropIndex("idx_task_board_comments_item").execute(),await _.schema.dropTable("task_board_comments").execute()}var IN={};C(IN,{up:()=>fZ,down:()=>AZ});import{sql as dT}from"kysely";async function fZ(_){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 AZ(_){await _.schema.dropTable("subsidized_gateway_keys").ifExists().execute(),await _.schema.dropTable("task_quota_claims").ifExists().execute()}var VN={};C(VN,{up:()=>IZ,down:()=>yZ});import{sql as yN}from"kysely";async function IZ(_){await _.schema.alterTable("task_quota_claims").addColumn("state","text",(x)=>x.notNull().defaultTo("held").check(yN`state in ('held', 'released')`)).execute(),await _.schema.dropIndex("idx_task_quota_claims_org_period").execute(),await yN`
1753
1766
  create index idx_task_quota_claims_org_period_live
1754
1767
  on task_quota_claims (organization_id, period_key)
1755
1768
  where state <> 'released'
1756
- `.execute(_)}async function SZ(_){await AN`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 yN={};C(yN,{up:()=>fZ,down:()=>AZ});async function fZ(_){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 AZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var VN={};C(VN,{up:()=>IZ,down:()=>yZ});async function IZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function yZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var wN={};C(wN,{up:()=>VZ,down:()=>wZ});import{sql as eT}from"kysely";async function VZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(eT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(eT`monthly_task_executions > 0`)).execute()}async function wZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var kN={};C(kN,{up:()=>nZ,down:()=>vZ});import{sql as kZ}from"kysely";async function nZ(_){await kZ`
1769
+ `.execute(_)}async function yZ(_){await yN`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 wN={};C(wN,{up:()=>VZ,down:()=>wZ});async function VZ(_){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 wZ(_){await _.schema.dropTable("claude_subscriptions").ifExists().execute()}var kN={};C(kN,{up:()=>kZ,down:()=>nZ});async function kZ(_){await _.schema.alterTable("task_board_items").addColumn("dismissed_at","timestamptz").execute()}async function nZ(_){await _.schema.alterTable("task_board_items").dropColumn("dismissed_at").execute()}var nN={};C(nN,{up:()=>vZ,down:()=>pZ});import{sql as bT}from"kysely";async function vZ(_){await _.schema.alterTable("organization_billing").addColumn("free_task_executions","integer",(x)=>x.check(bT`free_task_executions > 0`)).addColumn("monthly_task_executions","integer",(x)=>x.check(bT`monthly_task_executions > 0`)).execute()}async function pZ(_){await _.schema.alterTable("organization_billing").dropColumn("free_task_executions").dropColumn("monthly_task_executions").execute()}var vN={};C(vN,{up:()=>qZ,down:()=>iZ});import{sql as gZ}from"kysely";async function qZ(_){await gZ`
1757
1770
  CREATE INDEX idx_task_board_items_pending_review
1758
1771
  ON task_board_items (updated_at, id)
1759
1772
  WHERE status = 'in_review'
1760
1773
  AND assignee_id = 'super-agent'
1761
1774
  AND dismissed_at IS NULL
1762
- `.execute(_)}async function vZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var nN={};C(nN,{up:()=>pZ,down:()=>gZ});import{sql as dT}from"kysely";async function pZ(_){await dT`
1775
+ `.execute(_)}async function iZ(_){await _.schema.dropIndex("idx_task_board_items_pending_review").execute()}var pN={};C(pN,{up:()=>cZ,down:()=>hZ});import{sql as sT}from"kysely";async function cZ(_){await sT`
1763
1776
  ALTER TABLE task_board_items
1764
1777
  ADD COLUMN last_swept_at timestamptz
1765
- `.execute(_)}async function gZ(_){await dT`
1778
+ `.execute(_)}async function hZ(_){await sT`
1766
1779
  ALTER TABLE task_board_items
1767
1780
  DROP COLUMN last_swept_at
1768
- `.execute(_)}var vN={};C(vN,{up:()=>qZ,down:()=>iZ});import{sql as b_}from"kysely";async function qZ(_){await b_`
1781
+ `.execute(_)}var gN={};C(gN,{up:()=>tZ,down:()=>oZ});import{sql as _x}from"kysely";async function tZ(_){await _x`
1769
1782
  ALTER TABLE task_board_items
1770
1783
  ADD COLUMN retry_at timestamptz,
1771
1784
  ADD COLUMN retry_attempts integer NOT NULL DEFAULT 0
1772
- `.execute(_),await b_`
1785
+ `.execute(_),await _x`
1773
1786
  CREATE INDEX idx_task_board_items_retry_due
1774
1787
  ON task_board_items (retry_at)
1775
1788
  WHERE retry_at IS NOT NULL
1776
- `.execute(_)}async function iZ(_){await b_`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await b_`
1789
+ `.execute(_)}async function oZ(_){await _x`DROP INDEX IF EXISTS idx_task_board_items_retry_due`.execute(_),await _x`
1777
1790
  ALTER TABLE task_board_items
1778
1791
  DROP COLUMN retry_at,
1779
1792
  DROP COLUMN retry_attempts
1780
- `.execute(_)}var gN={};C(gN,{up:()=>cZ,down:()=>hZ});import{sql as pN}from"kysely";async function cZ(_){await pN`
1793
+ `.execute(_)}var iN={};C(iN,{up:()=>aZ,down:()=>rZ});import{sql as qN}from"kysely";async function aZ(_){await qN`
1781
1794
  CREATE TABLE org_repo_sync (
1782
1795
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1783
1796
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1795,11 +1808,11 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1795
1808
  updated_at timestamptz NOT NULL DEFAULT now(),
1796
1809
  UNIQUE (organization_id, volume)
1797
1810
  )
1798
- `.execute(_),await pN`
1811
+ `.execute(_),await qN`
1799
1812
  CREATE INDEX idx_org_repo_sync_enabled
1800
1813
  ON org_repo_sync (organization_id)
1801
1814
  WHERE enabled
1802
- `.execute(_)}async function hZ(_){await pN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var iN={};C(iN,{up:()=>oZ,down:()=>aZ,ACTIONS:()=>qN});import{sql as _x}from"kysely";var qN=["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"],tZ=new Set(["merge_failed"]);async function oZ(_){await sT(_,qN)}async function aZ(_){await sT(_,qN.filter((x)=>!tZ.has(x)))}async function sT(_,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 cN={};C(cN,{up:()=>rZ,down:()=>lZ});async function rZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function lZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var hN={};C(hN,{up:()=>eZ,down:()=>dZ});import{sql as x_}from"kysely";async function eZ(_){await x_`
1815
+ `.execute(_)}async function rZ(_){await qN`DROP TABLE IF EXISTS org_repo_sync`.execute(_)}var hN={};C(hN,{up:()=>eZ,down:()=>dZ,ACTIONS:()=>cN});import{sql as xx}from"kysely";var cN=["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"],lZ=new Set(["merge_failed"]);async function eZ(_){await _z(_,cN)}async function dZ(_){await _z(_,cN.filter((x)=>!lZ.has(x)))}async function _z(_,x){await xx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await xx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var tN={};C(tN,{up:()=>bZ,down:()=>sZ});async function bZ(_){await _.schema.alterTable("task_board_items").addColumn("repo","text").execute()}async function sZ(_){await _.schema.alterTable("task_board_items").dropColumn("repo").execute()}var oN={};C(oN,{up:()=>_6,down:()=>x6});import{sql as x_}from"kysely";async function _6(_){await x_`
1803
1816
  CREATE TABLE org_jira_integrations (
1804
1817
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
1805
1818
  organization_id text NOT NULL UNIQUE REFERENCES organization(id) ON DELETE CASCADE,
@@ -1838,7 +1851,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1838
1851
  created_at timestamptz NOT NULL DEFAULT now(),
1839
1852
  UNIQUE (organization_id, jira_comment_id)
1840
1853
  )
1841
- `.execute(_)}async function dZ(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var tN={};C(tN,{up:()=>bZ,down:()=>_6});import{sql as sZ}from"kysely";async function bZ(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await sZ`
1854
+ `.execute(_)}async function x6(_){await x_`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS task_board_item_jira_links`.execute(_),await x_`DROP TABLE IF EXISTS org_jira_integrations`.execute(_)}var aN={};C(aN,{up:()=>C6,down:()=>K6});import{sql as u6}from"kysely";async function C6(_){await _.schema.alterTable("task_board_items").addColumn("key_seq","integer").execute(),await u6`
1842
1855
  update task_board_items as t
1843
1856
  set key_seq = numbered.seq
1844
1857
  from (
@@ -1851,25 +1864,25 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1851
1864
  from task_board_items
1852
1865
  ) as numbered
1853
1866
  where t.id = numbered.id
1854
- `.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 _6(_){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 oN={};C(oN,{up:()=>x6,down:()=>u6});import{sql as bT}from"kysely";async function x6(_){await bT`
1867
+ `.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 K6(_){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 rN={};C(rN,{up:()=>N6,down:()=>m6});import{sql as xz}from"kysely";async function N6(_){await xz`
1855
1868
  CREATE INDEX IF NOT EXISTS idx_threads_github_repo_connection_id
1856
1869
  ON threads ((metadata -> 'githubRepo' ->> 'connectionId'))
1857
1870
  WHERE metadata -> 'githubRepo' ->> 'connectionId' IS NOT NULL
1858
- `.execute(_)}async function u6(_){await bT`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var rN={};C(rN,{up:()=>C6,down:()=>K6});import{sql as aN}from"kysely";async function C6(_){await aN`
1871
+ `.execute(_)}async function m6(_){await xz`DROP INDEX IF EXISTS idx_threads_github_repo_connection_id`.execute(_)}var eN={};C(eN,{up:()=>T6,down:()=>z6});import{sql as lN}from"kysely";async function T6(_){await lN`
1859
1872
  ALTER TABLE thread_message_parts
1860
1873
  ADD COLUMN IF NOT EXISTS persisted_at timestamptz
1861
- `.execute(_),await aN`
1874
+ `.execute(_),await lN`
1862
1875
  ALTER TABLE thread_message_parts
1863
1876
  ALTER COLUMN persisted_at SET DEFAULT now()
1864
- `.execute(_)}async function K6(_){await aN`
1877
+ `.execute(_)}async function z6(_){await lN`
1865
1878
  ALTER TABLE thread_message_parts DROP COLUMN IF EXISTS persisted_at
1866
- `.execute(_)}var lN={};C(lN,{up:()=>N6,down:()=>m6});async function N6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function m6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var eN={};C(eN,{up:()=>z6,down:()=>E6});import{sql as T6}from"kysely";async function z6(_){await T6`
1879
+ `.execute(_)}var dN={};C(dN,{up:()=>E6,down:()=>$6});async function E6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute()}async function $6(_){await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}var bN={};C(bN,{up:()=>P6,down:()=>J6});import{sql as U6}from"kysely";async function P6(_){await U6`
1867
1880
  CREATE INDEX idx_task_board_items_done_sweep
1868
1881
  ON task_board_items (updated_at)
1869
1882
  WHERE status = 'done' AND dismissed_at IS NULL
1870
- `.execute(_)}async function E6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var dN={};C(dN,{up:()=>$6,down:()=>U6,TYPES:()=>_z});import{sql as q}from"kysely";var _z=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function $6(_){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(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`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(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(_z.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1883
+ `.execute(_)}async function J6(_){await _.schema.dropIndex("idx_task_board_items_done_sweep").execute()}var sN={};C(sN,{up:()=>X6,down:()=>Q6,TYPES:()=>uz});import{sql as q}from"kysely";var uz=["created","commented","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"];async function X6(_){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(q`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(q`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(q`now()`)).addCheckConstraint("notifications_type_check",q`type IN (${q.join(uz.map((x)=>q.lit(x)))})`).execute(),await q`CREATE INDEX notifications_user_unread ON notifications
1871
1884
  (user_id, organization_id, created_at DESC) WHERE read_at IS NULL`.execute(_),await q`CREATE INDEX notifications_digest ON notifications
1872
- (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function U6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var sN={};C(sN,{up:()=>P6,down:()=>J6});import{sql as xz}from"kysely";async function P6(_){await xz`
1885
+ (created_at) WHERE emailed_at IS NULL AND read_at IS NULL`.execute(_)}async function Q6(_){await _.schema.dropTable("notifications").execute(),await _.schema.dropTable("notification_subscriptions").execute()}var _m={};C(_m,{up:()=>Z6,down:()=>W6});import{sql as Cz}from"kysely";async function Z6(_){await Cz`
1873
1886
  UPDATE org_jira_integrations
1874
1887
  SET status_mapping = (
1875
1888
  SELECT COALESCE(jsonb_object_agg(lane, statuses), '{}'::jsonb)
@@ -1884,7 +1897,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1884
1897
  SELECT 1 FROM jsonb_each(status_mapping)
1885
1898
  WHERE jsonb_typeof(value) = 'array'
1886
1899
  )
1887
- `.execute(_)}async function J6(_){await xz`
1900
+ `.execute(_)}async function W6(_){await Cz`
1888
1901
  UPDATE org_jira_integrations
1889
1902
  SET status_mapping = (
1890
1903
  SELECT COALESCE(jsonb_object_agg(status, lane), '{}'::jsonb)
@@ -1899,7 +1912,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1899
1912
  SELECT 1 FROM jsonb_each(status_mapping)
1900
1913
  WHERE jsonb_typeof(value) = 'array'
1901
1914
  )
1902
- `.execute(_)}var _m={};C(_m,{up:()=>Q6,down:()=>Z6,TYPES:()=>bN});import{sql as xx}from"kysely";var bN=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],X6=new Set(["mentioned"]);async function Q6(_){await uz(_,bN)}async function Z6(_){await uz(_,bN.filter((x)=>!X6.has(x)))}async function uz(_,x){await xx`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await xx`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${xx.join(x.map((u)=>xx.lit(u)))}))`.execute(_)}var um={};C(um,{up:()=>j6,down:()=>F6,ACTIONS:()=>xm});import{sql as i}from"kysely";var W6=["bug","feature","chore","spike","security"],xm=["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"],L6=new Set(["type_changed"]);async function j6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(W6.map((x)=>i.lit(x)))}))`.execute(_),await Cz(_,xm)}async function F6(_){await Cz(_,xm.filter((x)=>!L6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function Cz(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var Cm={};C(Cm,{up:()=>Y6,down:()=>D6});import{sql as W}from"kysely";var Nz=["bug","feature","chore","spike","security"],Kz="chore";async function Y6(_){await W`UPDATE task_board_items SET type = ${W.lit(Kz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(Kz)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(Nz.map((x)=>W.lit(x)))}))`.execute(_)}async function D6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(Nz.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var Km={};C(Km,{up:()=>H6,down:()=>M6});import{sql as u_}from"kysely";async function H6(_){await u_`
1915
+ `.execute(_)}var um={};C(um,{up:()=>L6,down:()=>F6,TYPES:()=>xm});import{sql as ux}from"kysely";var xm=["created","commented","mentioned","status_changed","assignee_changed","review_requested","review_approved","review_changes_requested","merge_failed"],j6=new Set(["mentioned"]);async function L6(_){await Kz(_,xm)}async function F6(_){await Kz(_,xm.filter((x)=>!j6.has(x)))}async function Kz(_,x){await ux`ALTER TABLE notifications DROP CONSTRAINT notifications_type_check`.execute(_),await ux`ALTER TABLE notifications ADD CONSTRAINT notifications_type_check CHECK (type IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Km={};C(Km,{up:()=>H6,down:()=>M6,ACTIONS:()=>Cm});import{sql as i}from"kysely";var Y6=["bug","feature","chore","spike","security"],Cm=["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"],D6=new Set(["type_changed"]);async function H6(_){await _.schema.alterTable("task_board_items").addColumn("type","text").execute(),await i`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${i.join(Y6.map((x)=>i.lit(x)))}))`.execute(_),await Nz(_,Cm)}async function M6(_){await Nz(_,Cm.filter((x)=>!D6.has(x))),await i`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("type").execute()}async function Nz(_,x){await i`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await i`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${i.join(x.map((u)=>i.lit(u)))}))`.execute(_)}var Nm={};C(Nm,{up:()=>R6,down:()=>B6});import{sql as W}from"kysely";var Tz=["bug","feature","chore","spike","security"],mz="chore";async function R6(_){await W`UPDATE task_board_items SET type = ${W.lit(mz)} WHERE type IS NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET DEFAULT ${W.lit(mz)}`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type SET NOT NULL`.execute(_),await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IN (${W.join(Tz.map((x)=>W.lit(x)))}))`.execute(_)}async function B6(_){await W`ALTER TABLE task_board_items DROP CONSTRAINT chk_task_board_items_type`.execute(_),await W`ALTER TABLE task_board_items ADD CONSTRAINT chk_task_board_items_type CHECK (type IS NULL OR type IN (${W.join(Tz.map((x)=>W.lit(x)))}))`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP NOT NULL`.execute(_),await W`ALTER TABLE task_board_items ALTER COLUMN type DROP DEFAULT`.execute(_)}var mm={};C(mm,{up:()=>G6,down:()=>O6});import{sql as u_}from"kysely";async function G6(_){await u_`
1903
1916
  CREATE TABLE task_board_sprints (
1904
1917
  id text PRIMARY KEY,
1905
1918
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -1924,34 +1937,34 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1924
1937
  CREATE INDEX idx_task_board_items_sprint
1925
1938
  ON task_board_items (organization_id, sprint_id)
1926
1939
  WHERE sprint_id IS NOT NULL
1927
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function M6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var Nm={};C(Nm,{up:()=>B6,down:()=>G6});import{sql as R6}from"kysely";async function B6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function G6(_){await R6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var mm={};C(mm,{up:()=>S6,down:()=>f6});import{sql as O6}from"kysely";async function S6(_){await O6`
1940
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint").execute(),await _.schema.alterTable("organization_settings").dropColumn("sprint_config").execute()}async function O6(_){await _.schema.alterTable("organization_settings").addColumn("sprint_config","jsonb").execute(),await _.schema.alterTable("task_board_items").addColumn("sprint","integer").execute(),await u_`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("sprint_id").execute(),await u_`DROP TABLE IF EXISTS task_board_sprints`.execute(_)}var Tm={};C(Tm,{up:()=>f6,down:()=>A6});import{sql as S6}from"kysely";async function f6(_){await _.schema.alterTable("org_jira_integrations").dropColumn("jql_filter").execute()}async function A6(_){await S6`ALTER TABLE org_jira_integrations ADD COLUMN jql_filter text`.execute(_)}var zm={};C(zm,{up:()=>y6,down:()=>V6});import{sql as I6}from"kysely";async function y6(_){await I6`
1928
1941
  UPDATE org_jira_integrations
1929
1942
  SET last_synced_at = NULL,
1930
1943
  last_sync_error = NULL
1931
1944
  WHERE last_synced_at IS NOT NULL
1932
- `.execute(_)}async function f6(){}var Tm={};C(Tm,{up:()=>I6,down:()=>y6});import{sql as A6}from"kysely";async function I6(_){await A6`
1945
+ `.execute(_)}async function V6(){}var Em={};C(Em,{up:()=>k6,down:()=>n6});import{sql as w6}from"kysely";async function k6(_){await w6`
1933
1946
  UPDATE org_jira_integrations
1934
1947
  SET last_synced_at = NULL,
1935
1948
  last_sync_error = NULL
1936
1949
  WHERE last_synced_at IS NOT NULL
1937
- `.execute(_)}async function y6(){}var Em={};C(Em,{up:()=>V6,down:()=>w6});import{sql as zm}from"kysely";async function V6(_){await zm`
1950
+ `.execute(_)}async function n6(){}var Um={};C(Um,{up:()=>v6,down:()=>p6});import{sql as $m}from"kysely";async function v6(_){await $m`
1938
1951
  ALTER TABLE org_jira_integrations
1939
1952
  ADD COLUMN rescan_pending boolean NOT NULL DEFAULT false
1940
- `.execute(_),await zm`
1953
+ `.execute(_),await $m`
1941
1954
  UPDATE org_jira_integrations
1942
1955
  SET rescan_pending = true
1943
1956
  WHERE last_synced_at IS NULL
1944
- `.execute(_)}async function w6(_){await zm`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var $m={};C($m,{up:()=>k6,down:()=>n6});async function k6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function n6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Um={};C(Um,{up:()=>v6,down:()=>p6});import{sql as mz}from"kysely";async function v6(_){await mz`
1957
+ `.execute(_)}async function p6(_){await $m`ALTER TABLE org_jira_integrations DROP COLUMN rescan_pending`.execute(_)}var Pm={};C(Pm,{up:()=>g6,down:()=>q6});async function g6(_){await _.schema.alterTable("task_board_comments").addColumn("thread_id","text").execute()}async function q6(_){await _.schema.alterTable("task_board_comments").dropColumn("thread_id").execute()}var Jm={};C(Jm,{up:()=>i6,down:()=>c6});import{sql as zz}from"kysely";async function i6(_){await zz`
1945
1958
  ALTER TABLE invitation
1946
1959
  ADD COLUMN "autoAccept" boolean NOT NULL DEFAULT false
1947
- `.execute(_)}async function p6(_){await mz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Jm={};C(Jm,{up:()=>g6,down:()=>q6});import{sql as Pm}from"kysely";async function g6(_){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(Pm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Pm`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 Pm`
1960
+ `.execute(_)}async function c6(_){await zz`ALTER TABLE invitation DROP COLUMN "autoAccept"`.execute(_)}var Qm={};C(Qm,{up:()=>h6,down:()=>t6});import{sql as Xm}from"kysely";async function h6(_){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(Xm`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Xm`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 Xm`
1948
1961
  INSERT INTO task_board_column_automations
1949
1962
  (id, organization_id, column_key, prompt)
1950
1963
  SELECT 'tbca_' || organization_id || '_todo', organization_id, 'todo', NULL
1951
1964
  FROM org_jira_integrations
1952
1965
  WHERE auto_delegate = true
1953
1966
  ON CONFLICT DO NOTHING
1954
- `.execute(_)}async function q6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Xm={};C(Xm,{up:()=>i6,down:()=>c6});import{sql as Y_}from"kysely";async function i6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
1967
+ `.execute(_)}async function t6(_){await _.schema.dropTable("task_board_column_automations").ifExists().execute()}var Zm={};C(Zm,{up:()=>o6,down:()=>a6});import{sql as Y_}from"kysely";async function o6(_){await _.schema.alterTable("task_board_items").addColumn("review_cycle_started_at","timestamptz").execute(),await Y_`
1955
1968
  UPDATE task_board_items i
1956
1969
  SET review_cycle_started_at = (
1957
1970
  SELECT max(a.occurred_at)
@@ -1967,29 +1980,29 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
1967
1980
  WHERE (review_cycle_started_at IS NOT NULL OR status = 'in_review')
1968
1981
  AND assignee_id = 'super-agent'
1969
1982
  AND dismissed_at IS NULL
1970
- `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function c6(_){await Y_`
1983
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_pending_review`.execute(_)}async function a6(_){await Y_`
1971
1984
  CREATE INDEX idx_task_board_items_pending_review
1972
1985
  ON task_board_items (updated_at, id)
1973
1986
  WHERE status = 'in_review'
1974
1987
  AND assignee_id = 'super-agent'
1975
1988
  AND dismissed_at IS NULL
1976
- `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Qm={};C(Qm,{up:()=>h6,down:()=>t6});import{sql as Tz}from"kysely";async function h6(_){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(Tz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Tz`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 t6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Wm={};C(Wm,{up:()=>a6,down:()=>r6,ACTIONS:()=>Zm});import{sql as ux}from"kysely";var Zm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],o6=new Set(["review_verdict_requested"]);async function a6(_){await zz(_,Zm)}async function r6(_){await zz(_,Zm.filter((x)=>!o6.has(x)))}async function zz(_,x){await ux`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await ux`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${ux.join(x.map((u)=>ux.lit(u)))}))`.execute(_)}var Lm={};C(Lm,{up:()=>l6,down:()=>e6});import{sql as Cx}from"kysely";async function l6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Cx`
1989
+ `.execute(_),await Y_`DROP INDEX IF EXISTS idx_task_board_items_review_cycle`.execute(_),await _.schema.alterTable("task_board_items").dropColumn("review_cycle_started_at").execute()}var Wm={};C(Wm,{up:()=>r6,down:()=>l6});import{sql as Ez}from"kysely";async function r6(_){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(Ez`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Ez`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 l6(_){await _.schema.dropTable("task_board_columns").ifExists().execute()}var Lm={};C(Lm,{up:()=>d6,down:()=>b6,ACTIONS:()=>jm});import{sql as Cx}from"kysely";var jm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"],e6=new Set(["review_verdict_requested"]);async function d6(_){await $z(_,jm)}async function b6(_){await $z(_,jm.filter((x)=>!e6.has(x)))}async function $z(_,x){await Cx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Cx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Cx.join(x.map((u)=>Cx.lit(u)))}))`.execute(_)}var Fm={};C(Fm,{up:()=>s6,down:()=>_W});import{sql as Kx}from"kysely";async function s6(_){await _.schema.alterTable("task_board_items").addColumn("board_column_org","text").execute(),await Kx`
1977
1990
  ALTER TABLE task_board_items
1978
1991
  ADD CONSTRAINT chk_task_board_items_column_org
1979
1992
  CHECK (board_column_org IS NULL OR board_column_org = organization_id)
1980
- `.execute(_),await Cx`
1993
+ `.execute(_),await Kx`
1981
1994
  ALTER TABLE task_board_items
1982
1995
  ADD CONSTRAINT task_board_items_board_column_fkey
1983
1996
  FOREIGN KEY (board_column_org, status)
1984
1997
  REFERENCES task_board_columns (organization_id, key)
1985
1998
  ON DELETE RESTRICT
1986
- `.execute(_)}async function e6(_){await Cx`
1999
+ `.execute(_)}async function _W(_){await Kx`
1987
2000
  ALTER TABLE task_board_items
1988
2001
  DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey
1989
- `.execute(_),await Cx`
2002
+ `.execute(_),await Kx`
1990
2003
  ALTER TABLE task_board_items
1991
2004
  DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org
1992
- `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var jm={};C(jm,{up:()=>d6,down:()=>s6});async function d6(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function s6(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Ym={};C(Ym,{up:()=>_W,down:()=>xW,ACTIONS:()=>Fm});import{sql as Kx}from"kysely";var Fm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],b6=new Set(["sprint_changed"]);async function _W(_){await Ez(_,Fm)}async function xW(_){await Ez(_,Fm.filter((x)=>!b6.has(x)))}async function Ez(_,x){await Kx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Kx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Kx.join(x.map((u)=>Kx.lit(u)))}))`.execute(_)}var Dm={};C(Dm,{up:()=>CW,down:()=>KW});import{sql as uW}from"kysely";async function CW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(uW`'[]'::jsonb`)).execute()}async function KW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Hm={};C(Hm,{up:()=>NW,down:()=>mW});import{sql as $z}from"kysely";async function NW(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo($z`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo($z`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function mW(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Mm={};C(Mm,{up:()=>zW,down:()=>EW});import{sql as TW}from"kysely";async function zW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await TW`
2005
+ `.execute(_),await _.schema.alterTable("task_board_items").dropColumn("board_column_org").execute()}var Ym={};C(Ym,{up:()=>xW,down:()=>uW});async function xW(_){await _.schema.alterTable("task_board_item_jira_links").addColumn("jira_sprint_id","text").execute()}async function uW(_){await _.schema.alterTable("task_board_item_jira_links").dropColumn("jira_sprint_id").execute()}var Hm={};C(Hm,{up:()=>KW,down:()=>NW,ACTIONS:()=>Dm});import{sql as Nx}from"kysely";var Dm=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed","sprint_changed"],CW=new Set(["sprint_changed"]);async function KW(_){await Uz(_,Dm)}async function NW(_){await Uz(_,Dm.filter((x)=>!CW.has(x)))}async function Uz(_,x){await Nx`ALTER TABLE task_board_activity DROP CONSTRAINT chk_task_board_activity_action`.execute(_),await Nx`ALTER TABLE task_board_activity ADD CONSTRAINT chk_task_board_activity_action CHECK (action IN (${Nx.join(x.map((u)=>Nx.lit(u)))}))`.execute(_)}var Mm={};C(Mm,{up:()=>TW,down:()=>zW});import{sql as mW}from"kysely";async function TW(_){await _.schema.alterTable("task_board_columns").addColumn("tracker_statuses","jsonb",(x)=>x.notNull().defaultTo(mW`'[]'::jsonb`)).execute()}async function zW(_){await _.schema.alterTable("task_board_columns").dropColumn("tracker_statuses").execute()}var Rm={};C(Rm,{up:()=>EW,down:()=>$W});import{sql as Pz}from"kysely";async function EW(_){await _.schema.createTable("task_board_prompts").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull()).addColumn("column_key","text").addColumn("prompt","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(Pz`now()`)).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(Pz`now()`)).execute(),await _.schema.createIndex("task_board_prompts_org_idx").ifNotExists().on("task_board_prompts").column("organization_id").execute()}async function $W(_){await _.schema.dropTable("task_board_prompts").ifExists().execute()}var Bm={};C(Bm,{up:()=>PW,down:()=>JW});import{sql as UW}from"kysely";async function PW(_){await _.schema.alterTable("task_board_items").addColumn("external_url","text").execute(),await UW`
1993
2006
  UPDATE task_board_items i
1994
2007
  SET external_url = t.url,
1995
2008
  description = CASE
@@ -2008,11 +2021,11 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
2008
2021
  ON g.organization_id = l.organization_id
2009
2022
  ) t
2010
2023
  WHERE t.item_id = i.id
2011
- `.execute(_)}async function EW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Rm={};C(Rm,{up:()=>UW,down:()=>PW,ACTIONS:()=>Uz});import{sql as X}from"kysely";var $W=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Uz=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function UW(_){await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await X`DROP TABLE IF EXISTS task_board_columns`.execute(_),await X`
2024
+ `.execute(_)}async function JW(_){await _.schema.alterTable("task_board_items").dropColumn("external_url").execute()}var Gm={};C(Gm,{up:()=>QW,down:()=>ZW,ACTIONS:()=>Jz});import{sql as X}from"kysely";var XW=["triage","todo","in_progress","in_review","approved","merged","post_deploy_validation","done","archived"],Jz=["created","status_changed","assignee_changed","priority_changed","due_date_changed","title_changed","description_changed","tags_changed","review_requested","review_approved","review_changes_requested","review_verdict_requested","merge_conflict_resolution","merge_failed","type_changed"];async function QW(_){await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS task_board_items_board_column_fkey`.execute(_),await X`ALTER TABLE task_board_items DROP CONSTRAINT IF EXISTS chk_task_board_items_column_org`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS board_column_org`.execute(_),await X`DROP TABLE IF EXISTS task_board_columns`.execute(_),await X`
2012
2025
  UPDATE task_board_items
2013
2026
  SET status = 'triage'
2014
- WHERE status NOT IN (${X.join($W.map((x)=>X.lit(x)))})
2015
- `.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await JW(_,Uz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
2027
+ WHERE status NOT IN (${X.join(XW.map((x)=>X.lit(x)))})
2028
+ `.execute(_),await X`DROP INDEX IF EXISTS idx_task_board_items_sprint`.execute(_),await X`ALTER TABLE task_board_items DROP COLUMN IF EXISTS sprint_id`.execute(_),await X`DROP TABLE IF EXISTS task_board_sprints`.execute(_),await WW(_,Jz),await X`DROP TABLE IF EXISTS task_board_comment_jira_links`.execute(_),await X`
2016
2029
  ALTER TABLE task_board_item_jira_links
2017
2030
  DROP COLUMN IF EXISTS jira_updated_at,
2018
2031
  DROP COLUMN IF EXISTS jira_status,
@@ -2024,7 +2037,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
2024
2037
  DROP COLUMN IF EXISTS last_synced_at,
2025
2038
  DROP COLUMN IF EXISTS last_sync_error,
2026
2039
  DROP COLUMN IF EXISTS rescan_pending
2027
- `.execute(_)}async function PW(){}async function JW(_,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 Bm={};C(Bm,{up:()=>XW,down:()=>QW});import{sql as C_}from"kysely";async function XW(_){await C_`
2040
+ `.execute(_)}async function ZW(){}async function WW(_,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 Om={};C(Om,{up:()=>jW,down:()=>LW});import{sql as C_}from"kysely";async function jW(_){await C_`
2028
2041
  ALTER TABLE task_board_items
2029
2042
  ADD COLUMN IF NOT EXISTS source text
2030
2043
  CONSTRAINT chk_task_board_items_source CHECK (source IN ('jira'))
@@ -2045,24 +2058,24 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
2045
2058
  created_at timestamptz NOT NULL DEFAULT now(),
2046
2059
  PRIMARY KEY (organization_id, jira_issue_id, changelog_id)
2047
2060
  )
2048
- `.execute(_)}async function QW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var Gm={};C(Gm,{up:()=>ZW,down:()=>WW});import{sql as D_}from"kysely";async function ZW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(D_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).execute(),await D_`
2061
+ `.execute(_)}async function LW(_){await C_`DROP TABLE IF EXISTS jira_trigger_claims`.execute(_),await C_`DROP TABLE IF EXISTS org_jira_column_automations`.execute(_),await C_`ALTER TABLE task_board_items DROP COLUMN IF EXISTS source`.execute(_)}var Sm={};C(Sm,{up:()=>FW,down:()=>YW});import{sql as D_}from"kysely";async function FW(_){await _.schema.createTable("organization_notices").ifNotExists().addColumn("id","text",(x)=>x.primaryKey()).addColumn("organization_id","text",(x)=>x.notNull().references("organization.id").onDelete("cascade")).addColumn("severity","text",(x)=>x.notNull().check(D_`severity IN ('warn', 'block')`)).addColumn("title","text",(x)=>x.notNull()).addColumn("message","text",(x)=>x.notNull()).addColumn("cta_label","text").addColumn("cta_url","text").addColumn("source","text",(x)=>x.notNull().defaultTo("manual")).addColumn("resolved_at","timestamptz").addColumn("resolved_by","text").addColumn("created_by","text",(x)=>x.notNull()).addColumn("created_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).addColumn("updated_by","text",(x)=>x.notNull()).addColumn("updated_at","timestamptz",(x)=>x.notNull().defaultTo(D_`now()`)).execute(),await D_`
2049
2062
  CREATE UNIQUE INDEX IF NOT EXISTS organization_notices_active_uniq
2050
2063
  ON organization_notices (organization_id)
2051
2064
  WHERE resolved_at IS NULL
2052
2065
  `.execute(_),await D_`
2053
2066
  CREATE INDEX IF NOT EXISTS organization_notices_org_created_idx
2054
2067
  ON organization_notices (organization_id, created_at DESC)
2055
- `.execute(_)}async function WW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Sm={};C(Sm,{up:()=>GW,down:()=>OW});import{sql as Om}from"kysely";import{sql as zj}from"kysely";var Pz=50000000,LW=1e5;function jW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>LW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var FW=/\u0000/g,YW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,DW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,HW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,MW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function RW(_){return _.replace(FW,"").replace(YW,"\uFFFD").replace(DW,"$1***@").replace(HW,"$1***").replace(MW,"[base64 data omitted]")}function BW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function Jz(_){if(jW(_,Pz)>Pz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return RW(u);if(BW(u))return{type:"text",text:"[image omitted]"};return u})}var Xz=20;async function GW(_){let x=await Om`
2068
+ `.execute(_)}async function YW(_){await _.schema.dropTable("organization_notices").ifExists().execute()}var Am={};C(Am,{up:()=>AW,down:()=>IW});import{sql as fm}from"kysely";import{sql as J5}from"kysely";var Xz=50000000,DW=1e5;function HW(_,x){let u=0,N=0,K=[_];while(K.length>0){if(u>x||++N>DW)return 1/0;let m=K.pop();if(typeof m==="string")u+=m.length;else if(Array.isArray(m))for(let T of m)K.push(T);else if(m!==null&&typeof m==="object")for(let T of Object.values(m))K.push(T)}return u}var MW=/\u0000/g,RW=/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,BW=/([a-z][a-z0-9+.-]{0,30}:\/\/)[^\s/@]{1,512}@/gi,GW=/\b(gh[pousr]_|github_pat_)[A-Za-z0-9_]{20,}/g,OW=/data:[a-z0-9.+-]{0,60}\/[a-z0-9.+-]{0,60};base64,[A-Za-z0-9+/=]{100,}/gi;function SW(_){return _.replace(MW,"").replace(RW,"\uFFFD").replace(BW,"$1***@").replace(GW,"$1***").replace(OW,"[base64 data omitted]")}function fW(_){if(typeof _!=="object"||_===null)return!1;let x=_;if(x.type!=="image")return!1;if(typeof x.data==="string")return!0;let u=x.source;return typeof u==="object"&&u!==null&&typeof u.data==="string"}function Qz(_){if(HW(_,Xz)>Xz)return JSON.stringify({truncated:!0,reason:"payload exceeds max stored size"});return JSON.stringify(_,(x,u)=>{if(typeof u==="string")return SW(u);if(fW(u))return{type:"text",text:"[image omitted]"};return u})}var Zz=20;async function AW(_){let x=await fm`
2056
2069
  SELECT id FROM thread_message_parts
2057
2070
  WHERE pg_column_size(payload) > 8192
2058
2071
  AND (payload::text LIKE '%"type": "image"%' OR payload::text LIKE '%;base64,%')
2059
- `.execute(_);for(let u=0;u<x.rows.length;u+=Xz){let N=x.rows.slice(u,u+Xz).map((m)=>m.id),K=await Om`
2072
+ `.execute(_);for(let u=0;u<x.rows.length;u+=Zz){let N=x.rows.slice(u,u+Zz).map((m)=>m.id),K=await fm`
2060
2073
  SELECT id, payload FROM thread_message_parts WHERE id = ANY(${N})
2061
- `.execute(_);for(let m of K.rows){let T=Jz(m.payload);if(T===JSON.stringify(m.payload))continue;await Om`
2074
+ `.execute(_);for(let m of K.rows){let T=Qz(m.payload);if(T===JSON.stringify(m.payload))continue;await fm`
2062
2075
  UPDATE thread_message_parts
2063
2076
  SET payload = ${T}::jsonb
2064
2077
  WHERE id = ${m.id}
2065
- `.execute(_)}}}async function OW(){}var fm={};C(fm,{up:()=>SW,down:()=>fW});async function SW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function fW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var Am={};C(Am,{up:()=>AW,down:()=>IW});import{sql as U}from"kysely";async function AW(_){await U`
2078
+ `.execute(_)}}}async function IW(){}var Im={};C(Im,{up:()=>yW,down:()=>VW});async function yW(_){await _.schema.alterTable("task_board_items").addColumn("preview_routes","jsonb").execute()}async function VW(_){await _.schema.alterTable("task_board_items").dropColumn("preview_routes").execute()}var ym={};C(ym,{up:()=>wW,down:()=>kW});import{sql as U}from"kysely";async function wW(_){await U`
2066
2079
  CREATE TABLE git_provider_accounts (
2067
2080
  id text PRIMARY KEY DEFAULT gen_random_uuid(),
2068
2081
  organization_id text NOT NULL REFERENCES organization(id) ON DELETE CASCADE,
@@ -2306,11 +2319,11 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
2306
2319
  AND r.organization_id = s.organization_id
2307
2320
  AND r.host = 'github.com'
2308
2321
  AND lower(r.path) = lower(s.repo_owner || '/' || s.repo_name)
2309
- `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function IW(_){await U`
2322
+ `.execute(_),await U`DROP FUNCTION IF EXISTS git_provider_try_jsonb(text)`.execute(_)}async function kW(_){await U`
2310
2323
  ALTER TABLE org_repo_sync DROP CONSTRAINT IF EXISTS org_repo_sync_source_present
2311
2324
  `.execute(_),await U`DELETE FROM org_repo_sync WHERE connection_id IS NULL`.execute(_),await U`
2312
2325
  ALTER TABLE org_repo_sync ALTER COLUMN connection_id SET NOT NULL
2313
- `.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var Im={};C(Im,{up:()=>VW,down:()=>wW});import{sql as I}from"kysely";var yW=I`
2326
+ `.execute(_),await U`ALTER TABLE org_repo_sync DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_item_prs DROP COLUMN IF EXISTS repository_id`.execute(_),await U`ALTER TABLE task_board_items DROP COLUMN IF EXISTS repository_id`.execute(_),await U`DROP TABLE IF EXISTS repositories`.execute(_),await U`DROP TABLE IF EXISTS git_provider_oauth_states`.execute(_),await U`DROP TABLE IF EXISTS git_provider_account_credentials`.execute(_),await U`DROP TABLE IF EXISTS git_provider_accounts`.execute(_)}var Vm={};C(Vm,{up:()=>vW,down:()=>pW});import{sql as I}from"kysely";var nW=I`
2314
2327
  CREATE OR REPLACE FUNCTION repo_ref_try_jsonb(value text)
2315
2328
  RETURNS jsonb LANGUAGE plpgsql IMMUTABLE AS $$
2316
2329
  BEGIN
@@ -2319,7 +2332,7 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
2319
2332
  RETURN NULL;
2320
2333
  END;
2321
2334
  $$
2322
- `;async function VW(_){await yW.execute(_),await I`
2335
+ `;async function vW(_){await nW.execute(_),await I`
2323
2336
  ALTER TABLE connections
2324
2337
  ADD COLUMN repository_id text REFERENCES repositories(id) ON DELETE SET NULL
2325
2338
  `.execute(_),await I`
@@ -2381,21 +2394,21 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
2381
2394
  AND r.host = 'github.com'
2382
2395
  AND lower(r.path) = lower((entry ->> 'owner') || '/' || (entry ->> 'name'))
2383
2396
  ON CONFLICT (thread_id, repository_id) DO NOTHING
2384
- `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function wW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2397
+ `.execute(_),await I`DROP FUNCTION IF EXISTS repo_ref_try_jsonb(text)`.execute(_)}async function pW(_){await I`DROP TABLE IF EXISTS thread_repositories`.execute(_),await I`
2385
2398
  ALTER TABLE connections DROP COLUMN IF EXISTS repository_id
2386
- `.execute(_)}var kW={"001-initial-schema":Zu,"002-organization-settings":Wu,"003-connection-schema-align":Lu,"004-remove-models-binding":ju,"005-connection-configuration":Fu,"006-add-views-to-settings":Yu,"007-monitoring-logs":Du,"008-event-bus":Hu,"009-drop-audit-logs":Mu,"010-gateways":Ru,"011-gateway-icon":Bu,"012-gateway-tool-selection-mode":Gu,"013-monitoring-user-agent-gateway":Ou,"014-gateway-resources-prompts":Su,"015-monitoring-properties":fu,"016-downstream-token-client-info":Au,"017-downstream-token-remove-userid":Iu,"018-drop-gateway-tool-selection-strategy":yu,"019-remove-gateway-is-default":Vu,"020-enabled-plugins":wu,"021-threads":ku,"022-rename-gateway-to-virtual-mcp":nu,"023-optimize-thread-indexes":vu,"024-consolidate-virtual-mcp":pu,"025-add-monitoring-virtual-mcp-id":gu,"026-restrict-child-connection-delete":qu,"027-update-management-mcp-url":cu,"028-update-management-mcp-to-self":tu,"029-add-updated-by-to-connections":ou,"030-member-tags":au,"031-add-dependency-mode":ru,"032-projects":lu,"033-thread-status":eu,"034-monitoring-dashboards":du,"035-project-connections":su,"036-update-registry-url":bu,"037-ai-provider-keys":_C,"038-oauth-pkce-states":xC,"039-automations":uC,"040-replace-next-run-at-with-last-run-at":CC,"041-ai-provider-keys-unique-constraint":KC,"042-rename-mesh-mcp-to-cms-mcp":NC,"043-rename-cms-mcp-to-deco-cms":mC,"044-drop-connections-tools-column":TC,"045-thread-context-start-message":zC,"046-remove-object-storage-plugin":$C,"047-add-next-run-at":UC,"048-merge-projects-agents":JC,"049-remove-org-admin-projects":XC,"050-durable-agent-runs":QC,"051-org-sso":WC,"052-thread-agent-ids":LC,"053-registry-config":jC,"054-connection-slug":YC,"055-spaces":DC,"056-automation-project-scope":HC,"057-thread-virtual-mcp-id":MC,"058-trigger-callback-tokens":RC,"059-kv":BC,"060-member-index":GC,"061-downstream-token-connection-index":OC,"062-private-registry":SC,"063-event-subscriptions-enabled-boolean":fC,"064-brand-context":AC,"065-organization-domains":IC,"066-brand-context-structured":yC,"067-threads-metadata":VC,"068-threads-branch":wC,"069-sandbox-runner-state":kC,"070-model-categories":nC,"071-default-home-agents":vC,"072-ai-provider-key-preset-id":pC,"073-backfill-basic-usage-roles":gC,"074-sandbox-runner-state-handle-nonunique":qC,"075-thread-inflight-async-jobs":iC,"076-automations-drop-agent-json":cC,"077-tier-only-model-selection":tC,"078-automation-tool-call-kind":oC,"079-strip-legacy-freestyle-vm-map-entries":aC,"080-async-research-jobs":rC,"081-async-research-jobs-result-content":lC,"082-secrets":eC,"083-thread-run-locally":dC,"084-drop-host-sandbox-rows":sC,"085-rename-runner-kind":bC,"086-thread-pins-and-vm-map-rekey":_K,"087-fix-vm-map-rekey":xK,"088-purge-cli-activate-keys":uK,"089-rename-remote-user-to-desktop":CK,"090-automation-webhook-triggers":KK,"091-organization-domains-allow-multi":NK,"092-sandbox-naming-uniformization":mK,"093-backfill-global-search-basic-usage":TK,"094-org-file-configs":EK,"095-remove-automation-tool-call-kind":$K,"096-org-file-configs-public-url-base":UK,"097-drop-local-docker-sandbox-state":JK,"098-thread-message-parts":XK,"099-run-fence":QK,"100-link-transport":ZK,"101-cancel-requested-at":WK,"102-observational-agent":LK,"103-revert-observational-agent":jK,"104-agent-sandbox-provider-kind":YK,"105-org-fs":DK,"106-automation-tools":HK,"107-org-fs-public-org":MK,"108-automation-max-agent-steps":RK,"109-thread-message-parts-per-message-seq":BK,"110-backfill-ghs-token-expiry":GK,"111-org-fs-thread-id":OK,"112-org-file-configs-credential-type":SK,"113-thread-failure-reason":fK,"114-run-acked-seq":AK,"115-thread-projected-seq":IK,"116-org-sites":yK,"117-org-file-configs-site-slug":VK,"118-organization-domains-multi-verify":wK,"119-organization-join-requests":kK,"120-org-fs-read-public":nK,"121-org-fs-share-password":vK,"122-split-web-research-tier":qK,"123-connection-credential-vault":iK,"124-drop-thread-projected-seq":cK,"125-github-child-single-parent":hK,"126-task-board":oK,"127-task-board-due-date":aK,"128-reports-only":rK,"129-task-board-assigned-by":lK,"130-task-board-thread-id":eK,"131-task-board-thread-link-cascade":dK,"132-task-board-item-prs":sK,"133-dedupe-duplicate-members":bK,"134-drop-task-board-enabled":_N,"135-task-board-item-fk-cascade":xN,"136-task-board-import-idempotency":uN,"137-agent-sandbox-runner-state":CN,"138-agent-sandbox-sessions":KN,"139-organization-billing":NN,"140-seat-change-log":mN,"141-benefits-sync-pending":TN,"142-stripe-event-watermark":zN,"143-armed-report-url":EN,"144-benefits-pending-index":$N,"145-user-model-preferences":UN,"146-organization-main-agent":PN,"147-drop-agent-sandbox-tables":JN,"148-org-flags":XN,"149-task-board-item-sort-order":QN,"150-task-board-activity":ZN,"151-task-board-tags":LN,"152-repair-connection-slug":FN,"153-task-board-latest-assistant-part-index":YN,"154-task-board-qa-activity":HN,"155-task-board-review-claims":MN,"156-task-board-conflict-activity":BN,"157-drop-seat-billing":GN,"158-drop-github-child-single-parent":ON,"159-task-board-comments":SN,"160-task-quota-billing":fN,"161-task-quota-claim-state":IN,"162-claude-subscriptions":yN,"163-task-board-item-dismissed":VN,"164-per-org-task-quota":wN,"165-task-board-pending-review-index":kN,"166-task-board-last-swept-at":nN,"167-task-board-run-retry":vN,"168-org-repo-sync":gN,"169-task-board-merge-failed-activity":iN,"170-task-board-item-repo":cN,"171-jira-integration":hN,"172-task-board-item-key-seq":tN,"173-thread-github-repo-connection-index":oN,"174-thread-message-parts-persisted-at":rN,"175-task-board-sprints":lN,"176-task-board-done-sweep-index":eN,"177-notifications":dN,"178-jira-status-mapping-array":sN,"179-notification-mentioned":_m,"180-task-board-item-type":um,"181-task-board-item-type-required":Cm,"182-task-board-sprints-entities":Km,"183-drop-jira-jql-filter":Nm,"184-jira-rescan-after-scope-change":mm,"185-jira-rescan-existing-cards":Tm,"186-jira-rescan-pending-flag":Em,"187-task-board-comment-thread":$m,"188-invitation-auto-accept":Um,"189-task-board-column-automations":Jm,"190-task-board-review-cycle-started-at":Xm,"191-task-board-columns":Qm,"192-task-board-verdict-nudge-activity":Wm,"193-task-board-status-column-fk":Lm,"194-jira-link-sprint":jm,"195-task-board-sprint-activity":Ym,"196-task-board-column-tracker-statuses":Dm,"197-task-board-prompts":Hm,"198-task-board-external-url":Mm,"199-drop-jira-mirror-and-org-columns":Rm,"200-jira-run-trigger":Bm,"201-organization-notices":Gm,"202-redact-base64-thread-parts":Sm,"203-task-board-preview-routes":fm,"204-git-provider-accounts-and-repositories":Am,"205-repository-references":Im,"206-repository-consumers":Qu,"207-task-board-prs-repo-idx":Xu,"208-github-connect-flows":Ju,"209-github-installation-authorization":Pu,"210-github-repository-authorization":Ku,"211-user-fs-org":Cu,"212-coding-agent-mcp-excluded":Nu,"213-bitbucket-git-provider":mu,"214-connections-sanitized-id-idx":bx,"215-commerce-discovery-repository":_u,"216-github-cli-auth":uu,"217-experiments":Tu,"218-thread-message-parts-error-idx":zu,"219-task-board-duplicate-reported-activity":$u,"220-jira-automation-continue-pr":Uu,"221-remove-private-registry":Qx,"222-org-git-credentials":Zx,"223-drop-org-main-agent-id":sx,"224-repository-sandbox-image":Wx,"225-thread-analytics-indexes":jx,"226-deco-score-names":Yx,"227-task-board-finding-resolved-activity":Hx,"228-org-voice-config":Xx,"229-jira-automation-from":Mx,"230-project-sidebar":Rx,"231-jira-chat-agent":Bx,"232-task-board-prompt-skills":Ox,"233-remove-jira-chat-agent":fx,"234-task-board-comment-audience":Ax,"235-prune-empty-thread-dirs":Ix,"236-task-board-sprints":Vx,"237-org-sites-project-link":wx,"238-task-board-default-lanes":kx,"239-task-board-retire-old-lanes":nx,"240-task-board-restore-todo":vx,"241-automation-board-column-transition":px,"242-connection-url-slug":gx,"243-experiment-task-board-item":qx,"244-connection-url-slug-rollout-backfill":ix,"245-automation-system-key":cx,"246-automation-pr-ready-trigger":hx,"247-automation-jira-transition":tx,"248-drop-retired-rule-tables":ox,"249-task-board-item-project":ax,"250-github-copilot-subscriptions":rx,"251-org-shared-plans":lx,"252-automation-linked-chat-trigger":ex,"253-automation-pr-builtin-triggers":dx,"254-codex-subscriptions":Ux,"255-order-monitor":Jx,"256-task-board-harness":$x},Nx=kW;import{getMigrations as Q9}from"better-auth/db";import{sso as Z9}from"@better-auth/sso";import{organization as W9}from"@decocms/better-auth/plugins";import{admin as L9,apiKey as j9,jwt as F9,magicLink as Y9,mcp as D9,openAPI as H9}from"better-auth/plugins";import{emailOTP as M9}from"better-auth/plugins/email-otp";import{Kysely as T9,PostgresDialect as Mz}from"kysely";import{Pool as Rz}from"pg";import{homedir as nW}from"os";var vW=new Set(["all","worker","api"]);function pW(_){let x=(_??"").trim();return vW.has(x)?x:"all"}var gW=new Set(["production","development","test"]);function qW(_){let x=(_??"").trim();return gW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function Vm(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return Vm(_,x,N)??u}function iW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function cW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function ym(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function hW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Qz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${nW()}/deco`,u=qW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:Vm("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:iW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:cW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:ym(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:ym(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:hW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:Vm("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:pW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:ym(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var tW=null;function K_(){return tW??=Object.freeze(Qz(process.env))}import{createContextKey as dW,metrics as sW,propagation as G5,ROOT_CONTEXT as O5,SpanStatusCode as S5,trace as bW}from"@opentelemetry/api";import{logs as _9,SeverityNumber as wm}from"@opentelemetry/api-logs";import{OTLPLogExporter as I5}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as x9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as w5}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as n5}from"@opentelemetry/instrumentation-runtime-node";import{context as Yj,propagation as Dj,SpanKind as Hj,SpanStatusCode as Mj}from"@opentelemetry/api";var Bj=globalThis.fetch;import{ExportResultCode as vj}from"@opentelemetry/core";import{ExportResultCode as mx}from"@opentelemetry/core";import{mkdir as oW,rename as aW,writeFile as rW}from"fs/promises";import{join as Tx}from"path";class zx{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:mx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:mx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:mx.FAILED}});return Promise.resolve({code:mx.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 K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?Tx(this.basePath,x,...N):Tx(this.basePath,...N);if(!this.knownDirs.has(K))await oW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=Tx(K,`.${m}.tmp`),z=Tx(K,m),E=_.join(`
2399
+ `.execute(_)}var gW={"001-initial-schema":ju,"002-organization-settings":Lu,"003-connection-schema-align":Fu,"004-remove-models-binding":Yu,"005-connection-configuration":Du,"006-add-views-to-settings":Hu,"007-monitoring-logs":Mu,"008-event-bus":Ru,"009-drop-audit-logs":Bu,"010-gateways":Gu,"011-gateway-icon":Ou,"012-gateway-tool-selection-mode":Su,"013-monitoring-user-agent-gateway":fu,"014-gateway-resources-prompts":Au,"015-monitoring-properties":Iu,"016-downstream-token-client-info":yu,"017-downstream-token-remove-userid":Vu,"018-drop-gateway-tool-selection-strategy":wu,"019-remove-gateway-is-default":ku,"020-enabled-plugins":nu,"021-threads":vu,"022-rename-gateway-to-virtual-mcp":pu,"023-optimize-thread-indexes":gu,"024-consolidate-virtual-mcp":qu,"025-add-monitoring-virtual-mcp-id":iu,"026-restrict-child-connection-delete":cu,"027-update-management-mcp-url":tu,"028-update-management-mcp-to-self":au,"029-add-updated-by-to-connections":ru,"030-member-tags":lu,"031-add-dependency-mode":eu,"032-projects":du,"033-thread-status":bu,"034-monitoring-dashboards":su,"035-project-connections":_C,"036-update-registry-url":xC,"037-ai-provider-keys":uC,"038-oauth-pkce-states":CC,"039-automations":KC,"040-replace-next-run-at-with-last-run-at":NC,"041-ai-provider-keys-unique-constraint":mC,"042-rename-mesh-mcp-to-cms-mcp":TC,"043-rename-cms-mcp-to-deco-cms":zC,"044-drop-connections-tools-column":EC,"045-thread-context-start-message":$C,"046-remove-object-storage-plugin":PC,"047-add-next-run-at":JC,"048-merge-projects-agents":QC,"049-remove-org-admin-projects":ZC,"050-durable-agent-runs":WC,"051-org-sso":LC,"052-thread-agent-ids":FC,"053-registry-config":YC,"054-connection-slug":HC,"055-spaces":MC,"056-automation-project-scope":RC,"057-thread-virtual-mcp-id":BC,"058-trigger-callback-tokens":GC,"059-kv":OC,"060-member-index":SC,"061-downstream-token-connection-index":fC,"062-private-registry":AC,"063-event-subscriptions-enabled-boolean":IC,"064-brand-context":yC,"065-organization-domains":VC,"066-brand-context-structured":wC,"067-threads-metadata":kC,"068-threads-branch":nC,"069-sandbox-runner-state":vC,"070-model-categories":pC,"071-default-home-agents":gC,"072-ai-provider-key-preset-id":qC,"073-backfill-basic-usage-roles":iC,"074-sandbox-runner-state-handle-nonunique":cC,"075-thread-inflight-async-jobs":hC,"076-automations-drop-agent-json":tC,"077-tier-only-model-selection":aC,"078-automation-tool-call-kind":rC,"079-strip-legacy-freestyle-vm-map-entries":lC,"080-async-research-jobs":eC,"081-async-research-jobs-result-content":dC,"082-secrets":bC,"083-thread-run-locally":sC,"084-drop-host-sandbox-rows":_K,"085-rename-runner-kind":xK,"086-thread-pins-and-vm-map-rekey":uK,"087-fix-vm-map-rekey":CK,"088-purge-cli-activate-keys":KK,"089-rename-remote-user-to-desktop":NK,"090-automation-webhook-triggers":mK,"091-organization-domains-allow-multi":TK,"092-sandbox-naming-uniformization":zK,"093-backfill-global-search-basic-usage":EK,"094-org-file-configs":UK,"095-remove-automation-tool-call-kind":PK,"096-org-file-configs-public-url-base":JK,"097-drop-local-docker-sandbox-state":QK,"098-thread-message-parts":ZK,"099-run-fence":WK,"100-link-transport":jK,"101-cancel-requested-at":LK,"102-observational-agent":FK,"103-revert-observational-agent":YK,"104-agent-sandbox-provider-kind":HK,"105-org-fs":MK,"106-automation-tools":RK,"107-org-fs-public-org":BK,"108-automation-max-agent-steps":GK,"109-thread-message-parts-per-message-seq":OK,"110-backfill-ghs-token-expiry":SK,"111-org-fs-thread-id":fK,"112-org-file-configs-credential-type":AK,"113-thread-failure-reason":IK,"114-run-acked-seq":yK,"115-thread-projected-seq":VK,"116-org-sites":wK,"117-org-file-configs-site-slug":kK,"118-organization-domains-multi-verify":nK,"119-organization-join-requests":vK,"120-org-fs-read-public":pK,"121-org-fs-share-password":gK,"122-split-web-research-tier":cK,"123-connection-credential-vault":hK,"124-drop-thread-projected-seq":tK,"125-github-child-single-parent":oK,"126-task-board":rK,"127-task-board-due-date":lK,"128-reports-only":eK,"129-task-board-assigned-by":dK,"130-task-board-thread-id":bK,"131-task-board-thread-link-cascade":sK,"132-task-board-item-prs":_N,"133-dedupe-duplicate-members":xN,"134-drop-task-board-enabled":uN,"135-task-board-item-fk-cascade":CN,"136-task-board-import-idempotency":KN,"137-agent-sandbox-runner-state":NN,"138-agent-sandbox-sessions":mN,"139-organization-billing":TN,"140-seat-change-log":zN,"141-benefits-sync-pending":EN,"142-stripe-event-watermark":$N,"143-armed-report-url":UN,"144-benefits-pending-index":PN,"145-user-model-preferences":JN,"146-organization-main-agent":XN,"147-drop-agent-sandbox-tables":QN,"148-org-flags":ZN,"149-task-board-item-sort-order":WN,"150-task-board-activity":jN,"151-task-board-tags":FN,"152-repair-connection-slug":DN,"153-task-board-latest-assistant-part-index":HN,"154-task-board-qa-activity":RN,"155-task-board-review-claims":BN,"156-task-board-conflict-activity":ON,"157-drop-seat-billing":SN,"158-drop-github-child-single-parent":fN,"159-task-board-comments":AN,"160-task-quota-billing":IN,"161-task-quota-claim-state":VN,"162-claude-subscriptions":wN,"163-task-board-item-dismissed":kN,"164-per-org-task-quota":nN,"165-task-board-pending-review-index":vN,"166-task-board-last-swept-at":pN,"167-task-board-run-retry":gN,"168-org-repo-sync":iN,"169-task-board-merge-failed-activity":hN,"170-task-board-item-repo":tN,"171-jira-integration":oN,"172-task-board-item-key-seq":aN,"173-thread-github-repo-connection-index":rN,"174-thread-message-parts-persisted-at":eN,"175-task-board-sprints":dN,"176-task-board-done-sweep-index":bN,"177-notifications":sN,"178-jira-status-mapping-array":_m,"179-notification-mentioned":um,"180-task-board-item-type":Km,"181-task-board-item-type-required":Nm,"182-task-board-sprints-entities":mm,"183-drop-jira-jql-filter":Tm,"184-jira-rescan-after-scope-change":zm,"185-jira-rescan-existing-cards":Em,"186-jira-rescan-pending-flag":Um,"187-task-board-comment-thread":Pm,"188-invitation-auto-accept":Jm,"189-task-board-column-automations":Qm,"190-task-board-review-cycle-started-at":Zm,"191-task-board-columns":Wm,"192-task-board-verdict-nudge-activity":Lm,"193-task-board-status-column-fk":Fm,"194-jira-link-sprint":Ym,"195-task-board-sprint-activity":Hm,"196-task-board-column-tracker-statuses":Mm,"197-task-board-prompts":Rm,"198-task-board-external-url":Bm,"199-drop-jira-mirror-and-org-columns":Gm,"200-jira-run-trigger":Om,"201-organization-notices":Sm,"202-redact-base64-thread-parts":Am,"203-task-board-preview-routes":Im,"204-git-provider-accounts-and-repositories":ym,"205-repository-references":Vm,"206-repository-consumers":Wu,"207-task-board-prs-repo-idx":Zu,"208-github-connect-flows":Qu,"209-github-installation-authorization":Xu,"210-github-repository-authorization":mu,"211-user-fs-org":Nu,"212-coding-agent-mcp-excluded":Tu,"213-bitbucket-git-provider":zu,"214-connections-sanitized-id-idx":xu,"215-commerce-discovery-repository":uu,"216-github-cli-auth":Ku,"217-experiments":Eu,"218-thread-message-parts-error-idx":$u,"219-task-board-duplicate-reported-activity":Pu,"220-jira-automation-continue-pr":Ju,"221-remove-private-registry":Wx,"222-org-git-credentials":jx,"223-drop-org-main-agent-id":_u,"224-repository-sandbox-image":Lx,"225-thread-analytics-indexes":Yx,"226-deco-score-names":Hx,"227-task-board-finding-resolved-activity":Rx,"228-org-voice-config":Zx,"229-jira-automation-from":Bx,"230-project-sidebar":Gx,"231-jira-chat-agent":Ox,"232-task-board-prompt-skills":fx,"233-remove-jira-chat-agent":Ix,"234-task-board-comment-audience":yx,"235-prune-empty-thread-dirs":Vx,"236-task-board-sprints":kx,"237-org-sites-project-link":nx,"238-task-board-default-lanes":vx,"239-task-board-retire-old-lanes":px,"240-task-board-restore-todo":gx,"241-automation-board-column-transition":qx,"242-connection-url-slug":ix,"243-experiment-task-board-item":cx,"244-connection-url-slug-rollout-backfill":hx,"245-automation-system-key":tx,"246-automation-pr-ready-trigger":ox,"247-automation-jira-transition":ax,"248-drop-retired-rule-tables":rx,"249-task-board-item-project":lx,"250-github-copilot-subscriptions":ex,"251-org-shared-plans":dx,"252-automation-linked-chat-trigger":bx,"253-automation-pr-builtin-triggers":sx,"254-codex-subscriptions":Jx,"255-order-monitor":Qx,"256-task-board-harness":Ux,"257-task-board-item-hierarchy":Px},mx=gW;import{getMigrations as L9}from"better-auth/db";import{sso as F9}from"@better-auth/sso";import{organization as Y9}from"@decocms/better-auth/plugins";import{admin as D9,apiKey as H9,jwt as M9,magicLink as R9,mcp as B9,openAPI as G9}from"better-auth/plugins";import{emailOTP as O9}from"better-auth/plugins/email-otp";import{Kysely as U9,PostgresDialect as Bz}from"kysely";import{Pool as Gz}from"pg";import{homedir as qW}from"os";var iW=new Set(["all","worker","api"]);function cW(_){let x=(_??"").trim();return iW.has(x)?x:"all"}var hW=new Set(["production","development","test"]);function tW(_){let x=(_??"").trim();return hW.has(x)?x:"development"}function Z(_){return _==="true"||_==="1"}function km(_,x,u){if(x===void 0||x==="")return;let N=Number(x);if(!Number.isSafeInteger(N)||N<=0)throw Error(`${_} must be a positive integer`);if(u!==void 0&&N>u)throw Error(`${_} must be at most ${u}`);return N}function B(_,x,u,N){return km(_,x,N)??u}function oW(_){let x={};for(let u of(_??"").split(",")){let N=u.trim();if(!N)continue;let K=N.indexOf("="),m=K>0?N.slice(0,K).trim():"",T=K>0?N.slice(K+1).trim():"";if(!m||!T){console.warn(`STRIPE_PLAN_PRICE_IDS: ignoring unparseable entry "${N}" \u2014 expected price_xxx=planId`);continue}x[m]=T}return x}function aW(_,x,u,N){if(x===void 0||x==="")return u;let K=Number(x);if(!Number.isSafeInteger(K)||K<0)throw Error(`${_} must be a non-negative integer`);if(N!==void 0&&K>N)throw Error(`${_} must be at most ${N}`);return K}function wm(_,x){if(_===void 0||_==="")return x;return _==="true"||_==="1"}function rW(_){return _===void 0||_===""||_==="true"||_==="1"}function H_(_,x){return _||x}function Wz(_){let x=_.DATA_DIR||_.DECOCMS_HOME||`${qW()}/deco`,u=tW(_.NODE_ENV),N=_.VOICE_CONVERSATION_PROVIDER?.trim()||"elevenlabs",K={nodeEnv:u,port:B("PORT",_.PORT,3000,65535),baseUrl:_.BASE_URL,publicUrl:H_(_.STUDIO_PUBLIC_URL,_.MESH_PUBLIC_URL),dataDir:x,voiceConversationProvider:N==="elevenlabs"||N==="openai"?N:null,openaiLiveApiKey:_.OPENAI_LIVE_API_KEY,openaiLiveModel:_.OPENAI_LIVE_MODEL?.trim()||"gpt-live-1",openaiLiveVoice:_.OPENAI_LIVE_VOICE?.trim()||"marin",elevenlabsApiKey:_.ELEVENLABS_API_KEY,elevenlabsVoiceId:_.ELEVENLABS_VOICE_ID||"JBFqnCBsd6RMkjVDRZzb",elevenlabsVoiceModel:_.ELEVENLABS_VOICE_MODEL||"eleven_v4_turbo",elevenlabsConversationModel:_.ELEVENLABS_CONVERSATION_MODEL?.trim()||"gemini-2.5-flash",databaseUrl:_.DATABASE_URL||"postgresql://postgres:postgres@localhost:5432/postgres",databasePgSsl:Z(_.DATABASE_PG_SSL),databasePoolMax:B("DATABASE_POOL_MAX",_.DATABASE_POOL_MAX,5),dbosPoolSize:B("DBOS_POOL_SIZE",_.DBOS_POOL_SIZE,5),betterAuthSecret:_.BETTER_AUTH_SECRET||"",encryptionKey:_.ENCRYPTION_KEY||"",studioJwtSecret:H_(_.STUDIO_JWT_SECRET,_.MESH_JWT_SECRET),localMode:Z(_.DECOCMS_LOCAL_MODE),disableRateLimit:Z(_.DISABLE_RATE_LIMIT),jiraAllowLocalSiteUrl:Z(_.JIRA_ALLOW_LOCAL_SITE_URL),codexUsageUrl:_.CODEX_USAGE_URL||"https://chatgpt.com/backend-api/wham/usage",claudeUsageUrl:_.CLAUDE_USAGE_URL||"https://api.anthropic.com/api/oauth/usage",jiraSettleSeconds:B("JIRA_SETTLE_SECONDS",_.JIRA_SETTLE_SECONDS,20,3600),studioProvisionSecretKey:_.STUDIO_PROVISION_SECRET_KEY,deploymentAdminEmails:(_.DEPLOYMENT_ADMIN_EMAILS??"").split(",").map((m)=>m.trim().toLowerCase()).filter(Boolean),taskBoardAdminOrgIds:(_.STUDIO_ADMIN_ORG_IDS??"").split(",").map((m)=>m.trim()).filter(Boolean),deploymentAdminToken:_.DEPLOYMENT_ADMIN_TOKEN||void 0,clickhouseUrl:_.CLICKHOUSE_URL,clickhouseMaxMemoryUsage:km("CLICKHOUSE_MAX_MEMORY_USAGE",_.CLICKHOUSE_MAX_MEMORY_USAGE),monitoringOtlpEndpoint:_.MONITORING_OTLP_ENDPOINT,otelServiceName:_.OTEL_SERVICE_NAME||"studio",natsUrls:(_.NATS_URL||"nats://localhost:4222").split(",").map((m)=>m.trim()).filter(Boolean),natsCredsPath:_.NATS_CREDS,natsUser:_.NATS_USER||void 0,natsPassword:_.NATS_PASSWORD||void 0,configPath:_.CONFIG_PATH||"./config.json",aiGatewayEnabled:Z(_.DECO_AI_GATEWAY_ENABLED),aiGatewayUrl:_.DECO_AI_GATEWAY_URL||"https://ai-site.deco.site",aiGatewayAdminToken:_.DECO_AI_GATEWAY_ADMIN_TOKEN,stripeWebhookSecret:_.STRIPE_WEBHOOK_SECRET,stripeSecretKey:_.STRIPE_SECRET_KEY,stripeOrgPriceId:_.STRIPE_ORG_PRICE_ID,stripePlanPriceIds:oW(_.STRIPE_PLAN_PRICE_IDS),stripePortalConfigurationId:_.STRIPE_PORTAL_CONFIGURATION_ID,stripeTopupProductId:_.STRIPE_TOPUP_PRODUCT_ID,topupFeePercent:aW("STUDIO_TOPUP_FEE_PERCENT",_.STUDIO_TOPUP_FEE_PERCENT,15,100),taskQuotaEnforced:Z(_.STUDIO_TASK_QUOTA_ENFORCED),freeTaskExecutions:B("STUDIO_FREE_TASKS",_.STUDIO_FREE_TASKS,3),monthlyTaskExecutions:B("STUDIO_MONTHLY_TASKS",_.STUDIO_MONTHLY_TASKS,10),maxRunsPerTask:B("STUDIO_MAX_RUNS_PER_TASK",_.STUDIO_MAX_RUNS_PER_TASK,5),enableDecoImport:Z(_.ENABLE_DECO_IMPORT),hostingControlPlaneGa:Z(_.HOSTING_CONTROL_PLANE_GA),monitorGa:Z(_.MONITOR_GA),plansEnabled:Z(_.STUDIO_PLANS_ENABLED),mcpCacheEnabled:wm(_.MCP_CACHE_ENABLED,u!=="development"),orgFsPublicSetsJson:_.ORGFS_PUBLIC_SETS,orgFsMountsDisabled:Z(_.DISABLE_ORGFS_MOUNTS),decopilotMaxConcurrentSubagents:B("DECOPILOT_MAX_CONCURRENT_SUBAGENTS",_.DECOPILOT_MAX_CONCURRENT_SUBAGENTS,4),decopilotMaxConcurrentHostedRuns:B("DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS",_.DECOPILOT_MAX_CONCURRENT_HOSTED_RUNS,3),taskBoardReviewSweeperEnabled:wm(_.TASK_BOARD_REVIEW_SWEEPER_ENABLED,!0),boardTransitionSettleSeconds:B("BOARD_TRANSITION_SETTLE_SECONDS",_.BOARD_TRANSITION_SETTLE_SECONDS,20,3600),sandboxMaxConcurrentHostedRuns:B("SANDBOX_MAX_CONCURRENT_HOSTED_RUNS",_.SANDBOX_MAX_CONCURRENT_HOSTED_RUNS,12),s3Endpoint:_.S3_ENDPOINT,s3Bucket:_.S3_BUCKET,s3Region:_.S3_REGION||"auto",s3AccessKeyId:_.S3_ACCESS_KEY_ID,s3SecretAccessKey:_.S3_SECRET_ACCESS_KEY,s3ForcePathStyle:rW(_.S3_FORCE_PATH_STYLE),monitoringS3Bucket:_.MONITORING_S3_BUCKET,monitoringS3Endpoint:_.MONITORING_S3_ENDPOINT,monitoringS3Region:_.MONITORING_S3_REGION,monitoringS3AccessKeyId:_.MONITORING_S3_ACCESS_KEY_ID,monitoringS3SecretAccessKey:_.MONITORING_S3_SECRET_ACCESS_KEY,monitoringS3Prefix:_.MONITORING_S3_PREFIX,duckdbExtensionDirectory:_.DUCKDB_EXTENSION_DIRECTORY||"/opt/duckdb/extensions",duckdbMemoryLimit:_.DUCKDB_MEMORY_LIMIT||void 0,duckdbThreads:km("DUCKDB_THREADS",_.DUCKDB_THREADS),podName:_.POD_NAME||crypto.randomUUID(),dispatchRole:cW(H_(_.STUDIO_DISPATCH_ROLE,_.MESH_DISPATCH_ROLE)),agentSandboxEnabled:Z(_.STUDIO_AGENT_SANDBOX_ENABLED),sandboxStickyHeadRefEnabled:Z(_.SANDBOX_STICKY_HEAD_REF),taskBoardRerunReusesPrBranch:wm(_.TASK_BOARD_RERUN_REUSES_PR_BRANCH,!0),sandboxReleaseOnRunEndEnabled:Z(_.SANDBOX_RELEASE_ON_RUN_END),sandboxPrewarmOnThreadCreateEnabled:Z(_.SANDBOX_PREWARM_ON_THREAD_CREATE),sandboxPersistentHarnessEnabled:Z(_.SANDBOX_PERSISTENT_HARNESS),sandboxReleaseGraceMs:B("SANDBOX_RELEASE_GRACE_MS",_.SANDBOX_RELEASE_GRACE_MS,120000),decoSupabaseUrl:_.DECO_SUPABASE_URL,decoSupabaseServiceKey:_.DECO_SUPABASE_SERVICE_KEY,controlplaneRestUrl:_.CONTROLPLANE_REST_URL,controlplaneServiceToken:_.CONTROLPLANE_SERVICE_TOKEN,analyticsDataUrl:_.ANALYTICS_URL,analyticsMasterToken:_.ANALYTICS_MASTER_TOKEN,clickhouseAnalyticsUrl:_.CLICKHOUSE_ANALYTICS_ADDRESS,clickhouseAnalyticsUsername:_.CLICKHOUSE_ANALYTICS_USERNAME||"admin_monitor",clickhouseAnalyticsPassword:_.CLICKHOUSE_ANALYTICS_PASSWORD,customerLakeUrl:_.CUSTOMER_LAKE_URL,customerLakeAdminUsername:_.CUSTOMER_LAKE_ADMIN_USERNAME||"customer_lake_user_admin",customerLakeAdminPassword:_.CUSTOMER_LAKE_ADMIN_PASSWORD,customerLakeTenantSecret:_.CUSTOMER_LAKE_TENANT_SECRET,orderMonitorIngestUrl:_.ORDER_MONITOR_INGEST_URL,oneDollarStatsApiKey:_.ONEDOLLAR_BACKEND_API_KEY,reportsInternalApiUrl:H_(_.REPORTS_INTERNAL_API_URL,_.COMMERCE_DISCOVERY_INTERNAL_API_URL),reportsInternalApiKey:H_(_.REPORTS_INTERNAL_API_KEY,_.COMMERCE_DISCOVERY_INTERNAL_API_KEY),s3TenantBucket:_.S3_TENANT_BUCKET||"new-deco-sites-assets",s3TenantRegion:_.S3_TENANT_REGION||"us-west-2",s3TenantEndpoint:_.S3_TENANT_ENDPOINT,s3TenantPublicUrlBase:_.S3_TENANT_PUBLIC_URL_BASE||"https://assets.decocms.com",awsS3TenantRoleArn:_.AWS_S3_TENANT_ROLE_ARN,awsS3TenantProvisionerAccessKeyId:_.AWS_S3_TENANT_PROVISIONER_ACCESS_KEY_ID,awsS3TenantProvisionerSecretAccessKey:_.AWS_S3_TENANT_PROVISIONER_SECRET_ACCESS_KEY,deliveryR2AccountId:_.DELIVERY_R2_ACCOUNT_ID,deliveryR2AccessKeyId:_.DELIVERY_R2_ACCESS_KEY_ID,deliveryR2SecretAccessKey:_.DELIVERY_R2_SECRET_ACCESS_KEY,deliveryR2Bucket:_.DELIVERY_R2_BUCKET,deliveryR2Endpoint:_.DELIVERY_R2_ENDPOINT,deliveryPublicOrigin:_.DELIVERY_PUBLIC_ORIGIN,siteTokenSigningKey:_.DECO_SITE_TOKEN_SIGNING_KEY,cfDeliveryZoneId:_.CF_DELIVERY_ZONE_ID,cfPurgeApiToken:_.CF_PURGE_API_TOKEN};if(Boolean(K.natsUser)!==Boolean(K.natsPassword))throw Error("NATS_USER and NATS_PASSWORD must be set together");if(K.natsCredsPath&&K.natsUser)throw Error("Use either NATS_CREDS or NATS_USER/NATS_PASSWORD");if(K.plansEnabled&&!K.studioJwtSecret)throw Error("STUDIO_PLANS_ENABLED requires an explicit gateway JWT secret. Set STUDIO_JWT_SECRET (or its legacy alias MESH_JWT_SECRET) to the same value as the gateway's MESH_JWT_SECRET. Refusing to fall back to BETTER_AUTH_SECRET: that mismatch 401s every entitlements call, which every feature gate reads as 'no answer' and fails OPEN.");if(K.plansEnabled&&!K.studioProvisionSecretKey)throw Error("STUDIO_PLANS_ENABLED requires STUDIO_PROVISION_SECRET_KEY, set to the same value as the gateway's STUDIO_PROVISION_KEY. Without it the gateway cannot identify this server, falls back to a per-user membership callback that 401s for any user who never completed the gateway OAuth flow, and every feature gate then fails OPEN.");if(K.plansEnabled&&!K.aiGatewayEnabled)throw Error("STUDIO_PLANS_ENABLED requires DECO_AI_GATEWAY_ENABLED=true. Plans are read from the gateway; with it disabled there is no adapter to ask, so every feature gate fails OPEN on both server and client and the paid product is free fleet-wide.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>0&&!K.aiGatewayAdminToken)throw Error("STRIPE_PLAN_PRICE_IDS is set but DECO_AI_GATEWAY_ADMIN_TOKEN is not. The Stripe webhook places the paid tier through the gateway's admin API, so without the token a customer is charged and the entitlement "+"is never granted \u2014 and AI_PLAN_SET cannot repair it, it accepts only "+"'free'.");if(K.plansEnabled&&Object.keys(K.stripePlanPriceIds).length>1&&!K.stripePortalConfigurationId)console.warn("STRIPE_PLAN_PRICE_IDS maps more than one plan but STRIPE_PORTAL_CONFIGURATION_ID is unset. An org that already has a subscription cannot change tier: the account's default portal configuration lists only the legacy plans, not the tiers, so Stripe refuses the update flow. First-time checkout is unaffected.");return K}var lW=null;function K_(){return lW??=Object.freeze(Wz(process.env))}import{createContextKey as x9,metrics as u9,propagation as I8,ROOT_CONTEXT as y8,SpanStatusCode as V8,trace as C9}from"@opentelemetry/api";import{logs as K9,SeverityNumber as nm}from"@opentelemetry/api-logs";import{OTLPLogExporter as n8}from"@opentelemetry/exporter-logs-otlp-proto";import{PrometheusExporter as N9}from"@opentelemetry/exporter-prometheus";import{OTLPTraceExporter as g8}from"@opentelemetry/exporter-trace-otlp-proto";import{RuntimeNodeInstrumentation as i8}from"@opentelemetry/instrumentation-runtime-node";import{context as B5,propagation as G5,SpanKind as O5,SpanStatusCode as S5}from"@opentelemetry/api";var A5=globalThis.fetch;import{ExportResultCode as c5}from"@opentelemetry/core";import{ExportResultCode as Tx}from"@opentelemetry/core";import{mkdir as eW,rename as dW,writeFile as bW}from"fs/promises";import{join as zx}from"path";class Ex{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:Tx.FAILED});for(let x of _){let u=JSON.stringify(x),N=this.partitionKey?this.partitionKey(x):"";this.bufferItems.push({partition:N,json:u}),this.bufferBytes+=Buffer.byteLength(u,"utf8")+1}if(this.bufferItems.length>=this.flushThreshold||this.bufferBytes>=this.maxBufferBytes)return this.flush().then(()=>({code:Tx.SUCCESS})).catch((x)=>{return console.error("[NDJSONExporter] Flush failed:",x),{code:Tx.FAILED}});return Promise.resolve({code:Tx.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 K of _){let m=x.get(K.partition);if(!m)m=[],x.set(K.partition,m);m.push(K.json)}let u=await Promise.allSettled(Array.from(x.entries()).map(([K,m])=>this.writeNDJSON(m,K).then(()=>K))),N=u.find((K)=>K.status==="rejected");if(N){let K=new Set;for(let T of u)if(T.status==="fulfilled")K.add(T.value);let m=_.filter((T)=>!K.has(T.partition));this.bufferItems=m.concat(this.bufferItems),this.bufferBytes=0;for(let T of this.bufferItems)this.bufferBytes+=Buffer.byteLength(T.json,"utf8")+1;throw N.reason}}async writeNDJSON(_,x){let u=new Date,N=[String(u.getUTCFullYear()),String(u.getUTCMonth()+1).padStart(2,"0"),String(u.getUTCDate()).padStart(2,"0"),String(u.getUTCHours()).padStart(2,"0")],K=x?zx(this.basePath,x,...N):zx(this.basePath,...N);if(!this.knownDirs.has(K))await eW(K,{recursive:!0,mode:448}),this.knownDirs.add(K);let m=`${crypto.randomUUID()}.ndjson`,T=zx(K,`.${m}.tmp`),z=zx(K,m),E=_.join(`
2387
2400
  `)+`
2388
- `;await rW(T,E,{mode:384}),await aW(T,z)}}import{ExportResultCode as cj}from"@opentelemetry/core";import{AggregationTemporality as tj,DataPointType as oj}from"@opentelemetry/sdk-metrics";import{ExportResultCode as sj}from"@opentelemetry/core";var u5=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as o5,LoggerProvider as a5}from"@opentelemetry/sdk-logs";import{detectResources as l5,envDetector as e5,hostDetector as d5,osDetector as s5,processDetector as b5,resourceFromAttributes as _8}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as u8}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as N5}from"@opentelemetry/api-logs";import{NodeSDK as N8}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as T8,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as $5}from"@opentelemetry/api";var u9="__d",C9=dW("Current request"),K9=1;var Wz=(_)=>{let u=new URL(_.url).searchParams.get(u9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Lz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(C9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Wz(T);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,m);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class jz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var E8=new x9({preventServerStart:!0}),$8=new Lz(new jz(K9));var Zz=bW.getTracer("studio","1.0.0"),M_=sW.getMeter("studio","1.0.0"),N9=_9.getLogger("studio","1.0.0"),km=(_,x,u)=>{let N={},K=u,m=u[u.length-1];if(m!==null&&typeof m==="object"&&!Array.isArray(m)&&!(m instanceof Error)&&Object.getPrototypeOf(m)===Object.prototype)N=m,K=u.slice(0,-1);let T=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");N9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},nm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{km(wm.ERROR,"ERROR",_),nm.error(..._)};console.warn=(..._)=>{km(wm.WARN,"WARN",_),nm.warn(..._)};console.debug=(..._)=>{km(wm.DEBUG,"DEBUG",_),nm.debug(..._)};var vm,Fz=0,pm=500;function m9(){if(vm)return;let _=performance.now()+pm;vm=setInterval(()=>{let x=performance.now();Fz=Math.max(0,x-_),_=x+pm},pm),vm.unref?.()}function Yz(){return m9(),Fz}var z9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Dz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Hz=400,E9=100,$9=(_)=>({"db.status":_.level==="error"?"error":"success"}),U9=(_)=>(x)=>{let u=$9(x);if(x.queryDurationMillis>Hz){let N=Yz(),K=N>Hz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:Ex()}})}if(z9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function P9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=Ex(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Dz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>E9)if(m)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:T,total:_.totalCount,max:K});return z},(z)=>{throw Dz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Bz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Gz(){try{return K_().databasePgSsl}catch{return!1}}function Ex(){try{return K_().databasePoolMax}catch{return 10}}function J9(_){let x=P9(new Rz({connectionString:_,max:Ex(),ssl:Gz(),...Bz})),u=new Mz({pool:x});return{type:"postgres",db:new T9({dialect:u,log:U9(x)}),pool:x}}function B_(){return K_().databaseUrl}function Oz(_){let x=_||B_();return new Mz({pool:new Rz({connectionString:x,max:Ex(),ssl:Gz(),...Bz})})}function X9(_){let x=_||B_();return J9(x)}async function Sz(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function gm(){if(!R_)R_=X9(B_());return R_}async function fz(_){let u={database:Oz(_||B_()),plugins:[W9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),L9(),j9(),F9(),H9(),D9({loginPage:"/login"}),Z9(),Y9({sendMagicLink:async()=>{}}),M9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await Q9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function qm(_,x){return(await o`
2401
+ `;await bW(T,E,{mode:384}),await dW(T,z)}}import{ExportResultCode as r5}from"@opentelemetry/core";import{AggregationTemporality as e5,DataPointType as d5}from"@opentelemetry/sdk-metrics";import{ExportResultCode as C8}from"@opentelemetry/core";var T8=Buffer.byteLength("... [TRUNCATED]","utf8");import{BatchLogRecordProcessor as d8,LoggerProvider as b8}from"@opentelemetry/sdk-logs";import{detectResources as _3,envDetector as x3,hostDetector as u3,osDetector as C3,processDetector as K3,resourceFromAttributes as N3}from"@opentelemetry/resources";import{PeriodicExportingMetricReader as T3}from"@opentelemetry/sdk-metrics";import{NOOP_LOGGER as $8}from"@opentelemetry/api-logs";import{NodeSDK as $3}from"@opentelemetry/sdk-node";import{BatchSpanProcessor as P3,SamplingDecision as N_}from"@opentelemetry/sdk-trace-base";import{SpanStatusCode as Q8}from"@opentelemetry/api";var m9="__d",T9=x9("Current request"),z9=1;var Lz=(_)=>{let u=new URL(_.url).searchParams.get(m9);if(u==="")return crypto.randomUUID();if(!u)u=_.headers.get("x-trace-debug-id");return u};class Fz{inner;constructor(_){this.inner=_}shouldSample(_,x,u,N,K,m){let T=_.getValue(T9);if(!T){if(this.inner)return this.inner.shouldSample(_,x,u,N,K,m);return{decision:N_.RECORD_AND_SAMPLED}}let z=Lz(T);if(z)return{decision:N_.RECORD_AND_SAMPLED,attributes:{"trace.debug.id":z}};if(this.inner){let E=this.inner.shouldSample(_,x,u,N,K,m);if(E.decision===N_.RECORD_AND_SAMPLED){let $=crypto.randomUUID();E.attributes={...E.attributes??{},"trace.debug.id":$}}return E}return{decision:N_.NOT_RECORD}}toString(){return"DebugSampler"}}class Yz{ratio;constructor(_){this.ratio=_}shouldSample(){if(Math.random()<this.ratio)return{decision:N_.RECORD_AND_SAMPLED};return{decision:N_.NOT_RECORD}}toString(){return`RatioSampler(${this.ratio})`}}var X3=new N9({preventServerStart:!0}),Q3=new Fz(new Yz(z9));var jz=C9.getTracer("studio","1.0.0"),M_=u9.getMeter("studio","1.0.0"),E9=K9.getLogger("studio","1.0.0"),vm=(_,x,u)=>{let N={},K=u,m=u[u.length-1];if(m!==null&&typeof m==="object"&&!Array.isArray(m)&&!(m instanceof Error)&&Object.getPrototypeOf(m)===Object.prototype)N=m,K=u.slice(0,-1);let T=K.map((z)=>{if(z instanceof Error)return`${z.name}: ${z.message}`;if(typeof z==="object")try{return JSON.stringify(z)}catch{return"[Object]"}return String(z)}).join(" ");E9.emit({severityNumber:_,severityText:x,body:T,attributes:{"log.source":"console",...N}})},pm={error:console.error.bind(console),warn:console.warn.bind(console),debug:console.debug.bind(console)};console.error=(..._)=>{vm(nm.ERROR,"ERROR",_),pm.error(..._)};console.warn=(..._)=>{vm(nm.WARN,"WARN",_),pm.warn(..._)};console.debug=(..._)=>{vm(nm.DEBUG,"DEBUG",_),pm.debug(..._)};var gm,Dz=0,qm=500;function $9(){if(gm)return;let _=performance.now()+qm;gm=setInterval(()=>{let x=performance.now();Dz=Math.max(0,x-_),_=x+qm},qm),gm.unref?.()}function Hz(){return $9(),Dz}var P9=()=>M_.createHistogram("db.query.duration",{description:"Database query execution duration in milliseconds",unit:"ms"}),Mz=()=>M_.createHistogram("db.pool.acquire.duration",{description:"Time spent waiting to acquire a connection from the pool",unit:"ms"}),Rz=400,J9=100,X9=(_)=>({"db.status":_.level==="error"?"error":"success"}),Q9=(_)=>(x)=>{let u=X9(x);if(x.queryDurationMillis>Rz){let N=Hz(),K=N>Rz/2;console.error(K?"Slow query measurement \u2014 likely event-loop lag, not slow SQL:":"Slow query detected:",{durationMs:x.queryDurationMillis,eventLoopLagMs:Math.round(N),sql:x.query.sql,pool:{total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:$x()}})}if(P9().record(x.queryDurationMillis,u),x.level==="error")console.error("Query failed:",{durationMs:x.queryDurationMillis,error:x.error,sql:x.query.sql})};function Z9(_){let x=_.connect.bind(_);return _.connect=(u)=>{if(typeof u==="function")return x(u);let N=performance.now(),K=$x(),m=_.idleCount===0&&_.totalCount>=K,T=_.idleCount;return x().then((z)=>{let E=performance.now()-N;if(Mz().record(E,{"db.pool.outcome":m?"contended":"available"}),E>J9)if(m)console.error("Slow db pool acquire \u2014 pool saturated:",{waitMs:E,total:_.totalCount,idle:_.idleCount,waiting:_.waitingCount,max:K});else console.warn("Slow db pool acquire \u2014 event-loop lag (not pool):",{waitMs:E,idleAtStart:T,total:_.totalCount,max:K});return z},(z)=>{throw Mz().record(performance.now()-N,{"db.pool.outcome":"error"}),z})},_}var Oz={keepAlive:!0,keepAliveInitialDelayMillis:1e4,idleTimeoutMillis:300000,connectionTimeoutMillis:30000,allowExitOnIdle:!0};function Sz(){try{return K_().databasePgSsl}catch{return!1}}function $x(){try{return K_().databasePoolMax}catch{return 10}}function W9(_){let x=Z9(new Gz({connectionString:_,max:$x(),ssl:Sz(),...Oz})),u=new Bz({pool:x});return{type:"postgres",db:new U9({dialect:u,log:Q9(x)}),pool:x}}function B_(){return K_().databaseUrl}function fz(_){let x=_||B_();return new Bz({pool:new Gz({connectionString:x,max:$x(),ssl:Sz(),...Oz})})}function j9(_){let x=_||B_();return W9(x)}async function Az(_){if(await _.db.destroy(),!_.pool.ended)await _.pool.end();if(_===R_)R_=null}var R_=null;function im(){if(!R_)R_=j9(B_());return R_}async function Iz(_){let u={database:fz(_||B_()),plugins:[Y9({dynamicAccessControl:{enabled:!0,enableCustomResources:!0}}),D9(),H9(),M9(),G9(),B9({loginPage:"/login"}),F9(),R9({sendMagicLink:async()=>{}}),O9({sendVerificationOTP:async()=>{}})]},{toBeAdded:N,toBeCreated:K,runMigrations:m}=await L9(u);if(!N.length&&!K.length)return"up to date";return await m(),`${K.length+N.length} table(s) migrated`}async function cm(_,x){return(await o`
2389
2402
  SELECT table_name FROM information_schema.tables
2390
2403
  WHERE table_schema='public' AND table_name=${x}
2391
- `.execute(_)).rows.length>0}async function R9(_){if(await qm(_,"plugin_migrations"))return;await o`
2404
+ `.execute(_)).rows.length>0}async function S9(_){if(await cm(_,"plugin_migrations"))return;await o`
2392
2405
  CREATE TABLE plugin_migrations (
2393
2406
  plugin_id TEXT NOT NULL,
2394
2407
  name TEXT NOT NULL,
2395
2408
  timestamp TEXT NOT NULL,
2396
2409
  PRIMARY KEY (plugin_id, name)
2397
2410
  )
2398
- `.execute(_)}async function B9(_){if(!await qm(_,"kysely_migration"))return;let x=await o`
2411
+ `.execute(_)}async function f9(_){if(!await cm(_,"kysely_migration"))return;let x=await o`
2399
2412
  SELECT name, timestamp FROM kysely_migration
2400
2413
  WHERE name LIKE '%/%'
2401
2414
  `.execute(_);if(x.rows.length===0)return;for(let{name:u,timestamp:N}of x.rows){let K=u;if(u.includes("~plugins/"))K=u.substring(u.indexOf("~plugins/")+9);let m=K.indexOf("/");if(m===-1){console.warn(`Skipping malformed plugin migration: ${u}`);continue}let T=K.substring(0,m),z=K.substring(m+1);try{await o`
@@ -2406,6 +2419,6 @@ var Iz=Object.defineProperty;var yz=(_)=>_;function Vz(_,x){this[_]=yz.bind(null
2406
2419
  WHERE plugin_id = ${T} AND name = ${z}
2407
2420
  `.execute(_);if(Number(E.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${T}/${z}, keeping in old table`);continue}}await o`
2408
2421
  DELETE FROM kysely_migration WHERE name = ${u}
2409
- `.execute(_)}}async function G9(_){if(!await qm(_,"kysely_migration"))return{};let{rows:x}=await o`
2422
+ `.execute(_)}}async function A9(_){if(!await cm(_,"kysely_migration"))return{};let{rows:x}=await o`
2410
2423
  SELECT name FROM kysely_migration
2411
- `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(Nx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function O9(_){await R9(_),await B9(_);let x=new Az({db:_,provider:{getMigrations:async()=>({...await G9(_),...Nx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function S9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await fz();let m=u??gm(),T=async()=>{if(!x&&!u)await Sz(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await O9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function g8(){let _=gm(),x=new Az({db:_.db,provider:{getMigrations:()=>Promise.resolve(Nx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await S9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{O9 as runKyselyMigrations,S9 as migrateToLatest,g8 as migrateDown};
2424
+ `.execute(_),u=x.map((N)=>N.name).filter((N)=>!Object.hasOwn(mx,N));if(u.length>0)console.warn(`Database has migrations this build does not know, assuming a newer release applied them: ${u.join(", ")}`);return Object.fromEntries(u.map((N)=>[N,{up:async()=>{}}]))}async function I9(_){await S9(_),await f9(_);let x=new yz({db:_,provider:{getMigrations:async()=>({...await A9(_),...mx})}}),{error:u,results:N}=await x.migrateToLatest(),K=0;if(N?.forEach((m)=>{if(m.status==="Success")K++;else if(m.status==="Error")console.error(`Failed to execute migration "${m.migrationName}"`)}),u)throw console.error("Failed to migrate"),console.error(u),u;return K}async function y9(_){let{keepOpen:x=!1,database:u,skipBetterAuth:N=!1}=_??{},K="skipped";if(!N&&!u)K=await Iz();let m=u??im(),T=async()=>{if(!x&&!u)await Az(m).catch((z)=>{console.warn("Warning: Error closing database:",z)})};try{let z=await I9(m.db);return await T(),{betterAuth:K,kysely:z}}catch(z){throw await T(),z}}async function t3(){let _=im(),x=new yz({db:_.db,provider:{getMigrations:()=>Promise.resolve(mx)}}),{error:u,results:N}=await x.migrateDown();if(N?.forEach((K)=>{if(K.status==="Success")console.log(`\u2705 Migration "${K.migrationName}" rolled back successfully`);else if(K.status==="Error")console.error(`\u274C Failed to rollback migration "${K.migrationName}"`)}),u)throw console.error("Failed to rollback migration"),console.error(u),u}if(import.meta.main)(async()=>{try{await y9(),console.log("Migrations completed."),process.exit(0)}catch(_){console.error("Migration failed:",_),process.exit(1)}})();export{I9 as runKyselyMigrations,y9 as migrateToLatest,t3 as migrateDown};